merge trunk
bzr revid: nicolas.vanhoren@openerp.com-20130207131737-emnz924vodbl0qno
This commit is contained in:
@@ -3521,7 +3521,7 @@ class account_bank_accounts_wizard(osv.osv_memory):
|
||||
|
||||
_columns = {
|
||||
'acc_name': fields.char('Account Name.', size=64, required=True),
|
||||
'bank_account_id': fields.many2one('wizard.multi.charts.accounts', 'Bank Account', required=True),
|
||||
'bank_account_id': fields.many2one('wizard.multi.charts.accounts', 'Bank Account', required=True, ondelete='cascade'),
|
||||
'currency_id': fields.many2one('res.currency', 'Secondary Currency', help="Forces all moves for this account to have this secondary currency."),
|
||||
'account_type': fields.selection([('cash','Cash'), ('check','Check'), ('bank','Bank')], 'Account Type', size=32),
|
||||
}
|
||||
|
||||
@@ -41,7 +41,7 @@ class bank(osv.osv):
|
||||
|
||||
def _prepare_name(self, bank):
|
||||
"Return the name to use when creating a bank journal"
|
||||
return (bank.bank_name or '') + ' ' + bank.acc_number
|
||||
return (bank.bank_name or '') + ' ' + (bank.acc_number or '')
|
||||
|
||||
def _prepare_name_get(self, cr, uid, bank_dicts, context=None):
|
||||
"""Add ability to have %(currency_name)s in the format_layout of res.partner.bank.type"""
|
||||
|
||||
@@ -256,7 +256,7 @@
|
||||
</group>
|
||||
<group>
|
||||
<field name="move_id" groups="account.group_account_user"/>
|
||||
<field name="period_id" domain="[('state', '=', 'draft')]" groups="account.group_account_user" widget="selection"/>
|
||||
<field name="period_id" domain="[('state', '=', 'draft'), ('company_id', '=', company_id)]" groups="account.group_account_user"/>
|
||||
<field name="company_id" on_change="onchange_company_id(company_id,partner_id,type,invoice_line,currency_id)" widget="selection" groups="base.group_multi_company"/>
|
||||
</group>
|
||||
</group>
|
||||
@@ -393,7 +393,7 @@
|
||||
<field name="company_id" on_change="onchange_company_id(company_id,partner_id,type,invoice_line,currency_id)" widget="selection" groups="base.group_multi_company"/>
|
||||
<field name="user_id" groups="base.group_user"/>
|
||||
<field domain="[('partner_id.ref_companies', 'in', [company_id])]" name="partner_bank_id"/>
|
||||
<field name="period_id" domain="[('state', '=', 'draft')]"
|
||||
<field name="period_id" domain="[('state', '=', 'draft'), ('company_id', '=', company_id)]"
|
||||
groups="account.group_account_manager"
|
||||
string="Accounting Period"
|
||||
placeholder="force period"/>
|
||||
|
||||
@@ -347,6 +347,15 @@
|
||||
res_model="account.move.line"
|
||||
src_model="account.account"/>
|
||||
|
||||
<!-- Enable drill-down from Chart Of Accounts tree view -->
|
||||
<act_window
|
||||
id="action_account_items"
|
||||
name="Journal Items"
|
||||
context="{'search_default_account_id': [active_id]}"
|
||||
res_model="account.move.line"
|
||||
src_model="account.account"
|
||||
key2="tree_but_open"/>
|
||||
|
||||
<!-- Account Journal -->
|
||||
<record id="view_account_journal_tree" model="ir.ui.view">
|
||||
<field name="name">account.journal.tree</field>
|
||||
@@ -841,6 +850,16 @@
|
||||
res_model="account.move.line"
|
||||
src_model="account.tax.code"/>
|
||||
|
||||
<!-- Enable drill-down from Chart Of Taxes tree view -->
|
||||
<act_window
|
||||
id="action_tax_code_items"
|
||||
name="Journal Items"
|
||||
domain="[('tax_code_id','child_of',active_id),('state','!=','draft')]"
|
||||
res_model="account.move.line"
|
||||
src_model="account.tax.code"
|
||||
key2="tree_but_open"/>
|
||||
|
||||
|
||||
<!-- Tax -->
|
||||
<record id="view_tax_tree" model="ir.ui.view">
|
||||
<field name="name">account.tax.tree</field>
|
||||
|
||||
@@ -155,11 +155,13 @@
|
||||
<record id="mt_invoice_validated" model="mail.message.subtype">
|
||||
<field name="name">Validated</field>
|
||||
<field name="res_model">account.invoice</field>
|
||||
<field name="default" eval="False"/>
|
||||
<field name="description">Invoice validated</field>
|
||||
</record>
|
||||
<record id="mt_invoice_paid" model="mail.message.subtype">
|
||||
<field name="name">Paid</field>
|
||||
<field name="res_model">account.invoice</field>
|
||||
<field name="default" eval="False"/>
|
||||
<field name="description">Invoice paid</field>
|
||||
</record>
|
||||
</data>
|
||||
|
||||
@@ -12,9 +12,9 @@
|
||||
<field name="partner_id"/>
|
||||
<field name="code"/>
|
||||
<field name="date"/>
|
||||
<field name="date_start" invisible="1"/>
|
||||
<field name="date_start"/>
|
||||
<field name="user_id" invisible="1"/>
|
||||
<field name="manager_id" invisible="1"/>
|
||||
<field name="manager_id"/>
|
||||
<field name="parent_id" invisible="1"/>
|
||||
<field name="state" invisible="1"/>
|
||||
<field name="type" invisible="1"/>
|
||||
@@ -30,15 +30,18 @@
|
||||
<search string="Analytic Account">
|
||||
<field name="name" filter_domain="['|', ('name','ilike',self), ('code','ilike',self)]" string="Analytic Account"/>
|
||||
<field name="date"/>
|
||||
<filter icon="terp-gtk-media-pause" string="Pending" domain="[('state','=','pending')]" help="Pending Accounts"/>
|
||||
<filter icon="terp-camera_test" string="Current" domain="[('state','=','open')]" help="Current Accounts"/>
|
||||
<field name="partner_id"/>
|
||||
<field name="manager_id"/>
|
||||
<field name="parent_id"/>
|
||||
<field name="user_id"/>
|
||||
<filter string="Open" domain="[('state','=','open')]" help="Current Accounts"/>
|
||||
<filter string="Pending" domain="[('state','=','pending')]" help="Pending Accounts"/>
|
||||
<group expand="0" string="Group By...">
|
||||
<filter string="Associated Partner" icon="terp-partner" domain="[]" context="{'group_by':'partner_id'}"/>
|
||||
<filter string="Parent Account" icon="terp-folder-green" domain="[]" context="{'group_by':'parent_id'}"/>
|
||||
<filter string="Status" icon="terp-stock_effects-object-colorize" domain="[]" context="{'group_by':'state'}" groups="base.group_no_one"/>
|
||||
<filter string="Associated Partner" domain="[]" context="{'group_by':'partner_id'}"/>
|
||||
<filter string="Type" domain="[]" context="{'group_by':'type'}"/>
|
||||
<filter string="Template" domain="[]" context="{'group_by':'template_id'}"/>
|
||||
<filter string="Parent Account" domain="[]" context="{'group_by':'parent_id'}"/>
|
||||
<filter string="Status" domain="[]" context="{'group_by':'state'}" groups="base.group_no_one"/>
|
||||
</group>
|
||||
</search>
|
||||
</field>
|
||||
|
||||
@@ -58,6 +58,7 @@
|
||||
<separator/>
|
||||
<filter icon="terp-personal" string="Customer" name="customer" domain="['|', ('type','=','out_invoice'),('type','=','out_refund')]" help="Customer Invoices And Refunds"/>
|
||||
<filter icon="terp-personal" string="Supplier" domain="['|', ('type','=','in_invoice'),('type','=','in_refund')]" help="Supplier Invoices And Refunds"/>
|
||||
<separator/>
|
||||
<filter icon="terp-dolar" string="Invoice" domain="['|', ('type','=','out_invoice'),('type','=','in_invoice')]" help="Customer And Supplier Invoices"/>
|
||||
<filter icon="terp-dolar_ok!" string="Refund" domain="['|', ('type','=','out_refund'),('type','=','in_refund')]" help="Customer And Supplier Refunds"/>
|
||||
<field name="partner_id"/>
|
||||
|
||||
@@ -35,10 +35,7 @@ class third_party_ledger(report_sxw.rml_parse, common_report_header):
|
||||
'lines': self.lines,
|
||||
'sum_debit_partner': self._sum_debit_partner,
|
||||
'sum_credit_partner': self._sum_credit_partner,
|
||||
# 'sum_debit': self._sum_debit,
|
||||
# 'sum_credit': self._sum_credit,
|
||||
'get_currency': self._get_currency,
|
||||
'comma_me': self.comma_me,
|
||||
'get_start_period': self.get_start_period,
|
||||
'get_end_period': self.get_end_period,
|
||||
'get_account': self._get_account,
|
||||
@@ -78,11 +75,6 @@ class third_party_ledger(report_sxw.rml_parse, common_report_header):
|
||||
move_state = ['draft','posted']
|
||||
if self.target_move == 'posted':
|
||||
move_state = ['posted']
|
||||
|
||||
if (data['model'] == 'res.partner'):
|
||||
## Si on imprime depuis les partenaires
|
||||
if ids:
|
||||
PARTNER_REQUEST = "AND line.partner_id IN %s",(tuple(ids),)
|
||||
if self.result_selection == 'supplier':
|
||||
self.ACCOUNT_TYPE = ['payable']
|
||||
elif self.result_selection == 'customer':
|
||||
@@ -98,7 +90,11 @@ class third_party_ledger(report_sxw.rml_parse, common_report_header):
|
||||
'WHERE a.type IN %s' \
|
||||
"AND a.active", (tuple(self.ACCOUNT_TYPE), ))
|
||||
self.account_ids = [a for (a,) in self.cr.fetchall()]
|
||||
partner_to_use = []
|
||||
params = [tuple(move_state), tuple(self.account_ids)]
|
||||
#if we print from the partners, add a clause on active_ids
|
||||
if (data['model'] == 'res.partner') and ids:
|
||||
PARTNER_REQUEST = "AND l.partner_id IN %s"
|
||||
params += [tuple(ids)]
|
||||
self.cr.execute(
|
||||
"SELECT DISTINCT l.partner_id " \
|
||||
"FROM account_move_line AS l, account_account AS account, " \
|
||||
@@ -110,30 +106,10 @@ class third_party_ledger(report_sxw.rml_parse, common_report_header):
|
||||
# "AND " + self.query +" " \
|
||||
"AND l.account_id IN %s " \
|
||||
" " + PARTNER_REQUEST + " " \
|
||||
"AND account.active ",
|
||||
(tuple(move_state), tuple(self.account_ids),))
|
||||
|
||||
res = self.cr.dictfetchall()
|
||||
for res_line in res:
|
||||
partner_to_use.append(res_line['partner_id'])
|
||||
new_ids = partner_to_use
|
||||
self.partner_ids = new_ids
|
||||
objects = obj_partner.browse(self.cr, self.uid, new_ids)
|
||||
return super(third_party_ledger, self).set_context(objects, data, new_ids, report_type)
|
||||
|
||||
def comma_me(self, amount):
|
||||
if type(amount) is float:
|
||||
amount = str('%.2f'%amount)
|
||||
else:
|
||||
amount = str(amount)
|
||||
if (amount == '0'):
|
||||
return ' '
|
||||
orig = amount
|
||||
new = re.sub("^(-?\d+)(\d{3})", "\g<1>'\g<2>", amount)
|
||||
if orig == new:
|
||||
return new
|
||||
else:
|
||||
return self.comma_me(new)
|
||||
"AND account.active ", params)
|
||||
self.partner_ids = [res['partner_id'] for res in self.cr.dictfetchall()]
|
||||
objects = obj_partner.browse(self.cr, self.uid, self.partner_ids)
|
||||
return super(third_party_ledger, self).set_context(objects, data, self.partner_ids, report_type)
|
||||
|
||||
def lines(self, partner):
|
||||
move_state = ['draft','posted']
|
||||
@@ -290,105 +266,6 @@ class third_party_ledger(report_sxw.rml_parse, common_report_header):
|
||||
result_tmp = result_tmp + 0.0
|
||||
return result_tmp + result_init
|
||||
|
||||
# code is deprecated
|
||||
# def _sum_debit(self):
|
||||
# move_state = ['draft','posted']
|
||||
# if self.target_move == 'posted':
|
||||
# move_state = ['posted']
|
||||
#
|
||||
# if not self.ids:
|
||||
# return 0.0
|
||||
# result_tmp = 0.0
|
||||
# result_init = 0.0
|
||||
# if self.reconcil:
|
||||
# RECONCILE_TAG = " "
|
||||
# else:
|
||||
# RECONCILE_TAG = "AND reconcile_id IS NULL"
|
||||
# if self.initial_balance:
|
||||
# self.cr.execute(
|
||||
# "SELECT sum(debit) " \
|
||||
# "FROM account_move_line AS l, " \
|
||||
# "account_move AS m "
|
||||
# "WHERE partner_id IN %s" \
|
||||
# "AND m.id = l.move_id " \
|
||||
# "AND m.state IN %s "
|
||||
# "AND account_id IN %s" \
|
||||
# "AND reconcile_id IS NULL " \
|
||||
# "AND " + self.init_query + " ",
|
||||
# (tuple(self.partner_ids), tuple(move_state), tuple(self.account_ids)))
|
||||
# contemp = self.cr.fetchone()
|
||||
# if contemp != None:
|
||||
# result_init = contemp[0] or 0.0
|
||||
# else:
|
||||
# result_init = result_tmp + 0.0
|
||||
#
|
||||
# self.cr.execute(
|
||||
# "SELECT sum(debit) " \
|
||||
# "FROM account_move_line AS l, " \
|
||||
# "account_move AS m "
|
||||
# "WHERE partner_id IN %s" \
|
||||
# "AND m.id = l.move_id " \
|
||||
# "AND m.state IN %s "
|
||||
# "AND account_id IN %s" \
|
||||
# " " + RECONCILE_TAG + " " \
|
||||
# "AND " + self.query + " ",
|
||||
# (tuple(self.partner_ids), tuple(move_state) ,tuple(self.account_ids),))
|
||||
# contemp = self.cr.fetchone()
|
||||
# if contemp != None:
|
||||
# result_tmp = contemp[0] or 0.0
|
||||
# else:
|
||||
# result_tmp = result_tmp + 0.0
|
||||
# return result_tmp + result_init
|
||||
#
|
||||
# def _sum_credit(self):
|
||||
# move_state = ['draft','posted']
|
||||
# if self.target_move == 'posted':
|
||||
# move_state = ['posted']
|
||||
#
|
||||
# if not self.ids:
|
||||
# return 0.0
|
||||
# result_tmp = 0.0
|
||||
# result_init = 0.0
|
||||
# if self.reconcil:
|
||||
# RECONCILE_TAG = " "
|
||||
# else:
|
||||
# RECONCILE_TAG = "AND reconcile_id IS NULL"
|
||||
# if self.initial_balance:
|
||||
# self.cr.execute(
|
||||
# "SELECT sum(credit) " \
|
||||
# "FROM account_move_line AS l, " \
|
||||
# "account_move AS m "
|
||||
# "WHERE partner_id IN %s" \
|
||||
# "AND m.id = l.move_id " \
|
||||
# "AND m.state IN %s "
|
||||
# "AND account_id IN %s" \
|
||||
# "AND reconcile_id IS NULL " \
|
||||
# "AND " + self.init_query + " ",
|
||||
# (tuple(self.partner_ids), tuple(move_state), tuple(self.account_ids)))
|
||||
# contemp = self.cr.fetchone()
|
||||
# if contemp != None:
|
||||
# result_init = contemp[0] or 0.0
|
||||
# else:
|
||||
# result_init = result_tmp + 0.0
|
||||
#
|
||||
# self.cr.execute(
|
||||
# "SELECT sum(credit) " \
|
||||
# "FROM account_move_line AS l, " \
|
||||
# "account_move AS m "
|
||||
# "WHERE partner_id IN %s" \
|
||||
# "AND m.id = l.move_id " \
|
||||
# "AND m.state IN %s "
|
||||
# "AND account_id IN %s" \
|
||||
# " " + RECONCILE_TAG + " " \
|
||||
# "AND " + self.query + " ",
|
||||
# (tuple(self.partner_ids), tuple(move_state), tuple(self.account_ids),))
|
||||
# contemp = self.cr.fetchone()
|
||||
# if contemp != None:
|
||||
# result_tmp = contemp[0] or 0.0
|
||||
# else:
|
||||
# result_tmp = result_tmp + 0.0
|
||||
# return result_tmp + result_init
|
||||
|
||||
def _get_partners(self):
|
||||
if self.result_selection == 'customer':
|
||||
return 'Receivable Accounts'
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
</record>
|
||||
|
||||
<record id="action_account_partner_ledger" model="ir.actions.act_window">
|
||||
<field name="name">Select Period</field>
|
||||
<field name="name">Partner Ledger</field>
|
||||
<field name="res_model">account.partner.ledger</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="view_type">form</field>
|
||||
@@ -33,6 +33,13 @@
|
||||
<field name="target">new</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.values" id="ir_values_account_partner_ledger">
|
||||
<field name="key2" eval="'client_print_multi'"/>
|
||||
<field name="model" eval="'res.partner'"/>
|
||||
<field name="name">Print Partner Ledger</field>
|
||||
<field name="value" eval="'ir.actions.act_window,%d'%action_account_partner_ledger"/>
|
||||
</record>
|
||||
|
||||
<menuitem icon="STOCK_PRINT"
|
||||
name="Partner Ledger"
|
||||
action="action_account_partner_ledger"
|
||||
|
||||
@@ -25,19 +25,20 @@
|
||||
<field name="name">account.analytic.account.search</field>
|
||||
<field name="model">account.analytic.account</field>
|
||||
<field name="arch" type="xml">
|
||||
<search string="Analytic Account">
|
||||
<search string="Contracts">
|
||||
<field name="name" filter_domain="['|', ('name','ilike',self),('code','ilike',self)]" string="Contract"/>
|
||||
<field name="date"/>
|
||||
<filter icon="terp-camera_test" name="open" string="Open" domain="[('state','in',('open','draft'))]" help="Contracts in progress"/>
|
||||
<filter icon="terp-gtk-media-pause" name="pending" string="Pending" domain="[('state','=','pending')]" help="Pending contracts to renew with your customer"/>
|
||||
<filter icon="terp-go-today" string="To Renew" domain="['|', '&', ('date', '!=', False), ('date', '<=', time.strftime('%%Y-%%m-%%d')), ('is_overdue_quantity', '=', True)]" name="renew"
|
||||
help="The contracts to be renewed because the deadline is passed or the working hours are higher than the allocated hours" />
|
||||
<separator/>
|
||||
<filter string="Customer Contracts" help="A contract in OpenERP is an analytic account having a partner set on it." name="has_partner" domain="[('partner_id', '!=', False)]" icon="terp-partner" />
|
||||
<separator/>
|
||||
<filter string="Contracts not assigned" help="Contracts that are not assigned to an account manager." domain="[('manager_id', '=', False)]" icon="terp-personal-" />
|
||||
<field name="partner_id"/>
|
||||
<field name="manager_id"/>
|
||||
<field name="parent_id"/>
|
||||
<filter name="open" string="Open" domain="[('state','in',('open','draft'))]" help="Contracts in progress"/>
|
||||
<filter name="pending" string="Pending" domain="[('state','=','pending')]" help="Pending contracts to renew with your customer"/>
|
||||
<filter string="To Renew" domain="['|', '&', ('date', '!=', False), ('date', '<=', time.strftime('%%Y-%%m-%%d')), ('is_overdue_quantity', '=', True)]" name="renew"
|
||||
help="The contracts to be renewed because the deadline is passed or the working hours are higher than the allocated hours" />
|
||||
<separator/>
|
||||
<filter string="Customer Contracts" help="Contracts assigned to a customer." name="has_partner" domain="[('partner_id', '!=', False)]"/>
|
||||
<filter string="Contracts not assigned" help="Contracts that are not assigned to an account manager." domain="[('manager_id', '=', False)]"/>
|
||||
<separator/>
|
||||
<group expand="0" string="Group By...">
|
||||
<filter string="Status" domain="[]" context="{'group_by':'state'}"/>
|
||||
<filter string="Account Manager" domain="[]" context="{'group_by':'manager_id'}"/>
|
||||
|
||||
@@ -0,0 +1,174 @@
|
||||
# English (United Kingdom) translation for openobject-addons
|
||||
# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
|
||||
# This file is distributed under the same license as the openobject-addons package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2013.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-12-21 17:05+0000\n"
|
||||
"PO-Revision-Date: 2013-02-06 14:36+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: English (United Kingdom) <en_GB@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: 2013-02-07 04:53+0000\n"
|
||||
"X-Generator: Launchpad (build 16477)\n"
|
||||
|
||||
#. module: account_analytic_default
|
||||
#: model:ir.actions.act_window,name:account_analytic_default.analytic_rule_action_partner
|
||||
#: model:ir.actions.act_window,name:account_analytic_default.analytic_rule_action_product
|
||||
#: model:ir.actions.act_window,name:account_analytic_default.analytic_rule_action_user
|
||||
msgid "Analytic Rules"
|
||||
msgstr "Analytic Rules"
|
||||
|
||||
#. module: account_analytic_default
|
||||
#: view:account.analytic.default:0
|
||||
msgid "Group By..."
|
||||
msgstr "Group By..."
|
||||
|
||||
#. module: account_analytic_default
|
||||
#: help:account.analytic.default,date_stop:0
|
||||
msgid "Default end date for this Analytic Account."
|
||||
msgstr "Default end date for this Analytic Account."
|
||||
|
||||
#. module: account_analytic_default
|
||||
#: help:account.analytic.default,product_id:0
|
||||
msgid ""
|
||||
"Select a product which will use analytic account specified in analytic "
|
||||
"default (e.g. create new customer invoice or Sales order if we select this "
|
||||
"product, it will automatically take this as an analytic account)"
|
||||
msgstr ""
|
||||
"Select a product which will use analytic account specified in analytic "
|
||||
"default (e.g. create new customer invoice or Sales order if we select this "
|
||||
"product, it will automatically take this as an analytic account)"
|
||||
|
||||
#. module: account_analytic_default
|
||||
#: model:ir.model,name:account_analytic_default.model_stock_picking
|
||||
msgid "Picking List"
|
||||
msgstr "Picking List"
|
||||
|
||||
#. module: account_analytic_default
|
||||
#: view:account.analytic.default:0
|
||||
msgid "Conditions"
|
||||
msgstr "Conditions"
|
||||
|
||||
#. module: account_analytic_default
|
||||
#: view:account.analytic.default:0
|
||||
#: field:account.analytic.default,product_id:0
|
||||
msgid "Product"
|
||||
msgstr "Product"
|
||||
|
||||
#. module: account_analytic_default
|
||||
#: help:account.analytic.default,partner_id:0
|
||||
msgid ""
|
||||
"Select a partner which will use analytic account specified in analytic "
|
||||
"default (e.g. create new customer invoice or Sales order if we select this "
|
||||
"partner, it will automatically take this as an analytic account)"
|
||||
msgstr ""
|
||||
"Select a partner which will use analytic account specified in analytic "
|
||||
"default (e.g. create new customer invoice or Sales order if we select this "
|
||||
"partner, it will automatically take this as an analytic account)"
|
||||
|
||||
#. module: account_analytic_default
|
||||
#: view:account.analytic.default:0
|
||||
#: field:account.analytic.default,company_id:0
|
||||
msgid "Company"
|
||||
msgstr "Company"
|
||||
|
||||
#. module: account_analytic_default
|
||||
#: view:account.analytic.default:0
|
||||
#: field:account.analytic.default,user_id:0
|
||||
msgid "User"
|
||||
msgstr "User"
|
||||
|
||||
#. module: account_analytic_default
|
||||
#: model:ir.actions.act_window,name:account_analytic_default.act_account_acount_move_line_open
|
||||
msgid "Entries"
|
||||
msgstr "Entries"
|
||||
|
||||
#. module: account_analytic_default
|
||||
#: field:account.analytic.default,date_stop:0
|
||||
msgid "End Date"
|
||||
msgstr "End Date"
|
||||
|
||||
#. module: account_analytic_default
|
||||
#: view:account.analytic.default:0
|
||||
#: model:ir.actions.act_window,name:account_analytic_default.action_analytic_default_list
|
||||
#: model:ir.ui.menu,name:account_analytic_default.menu_analytic_default_list
|
||||
msgid "Analytic Defaults"
|
||||
msgstr "Analytic Defaults"
|
||||
|
||||
#. module: account_analytic_default
|
||||
#: field:account.analytic.default,sequence:0
|
||||
msgid "Sequence"
|
||||
msgstr "Sequence"
|
||||
|
||||
#. module: account_analytic_default
|
||||
#: help:account.analytic.default,user_id:0
|
||||
msgid ""
|
||||
"Select a user which will use analytic account specified in analytic default."
|
||||
msgstr ""
|
||||
"Select a user which will use analytic account specified in analytic default."
|
||||
|
||||
#. module: account_analytic_default
|
||||
#: model:ir.model,name:account_analytic_default.model_account_invoice_line
|
||||
msgid "Invoice Line"
|
||||
msgstr "Invoice Line"
|
||||
|
||||
#. module: account_analytic_default
|
||||
#: help:account.analytic.default,company_id:0
|
||||
msgid ""
|
||||
"Select a company which will use analytic account specified in analytic "
|
||||
"default (e.g. create new customer invoice or Sales order if we select this "
|
||||
"company, it will automatically take this as an analytic account)"
|
||||
msgstr ""
|
||||
"Select a company which will use analytic account specified in analytic "
|
||||
"default (e.g. create new customer invoice or Sales order if we select this "
|
||||
"company, it will automatically take this as an analytic account)"
|
||||
|
||||
#. module: account_analytic_default
|
||||
#: view:account.analytic.default:0
|
||||
#: field:account.analytic.default,analytic_id:0
|
||||
msgid "Analytic Account"
|
||||
msgstr "Analytic Account"
|
||||
|
||||
#. module: account_analytic_default
|
||||
#: model:ir.model,name:account_analytic_default.model_account_analytic_default
|
||||
msgid "Analytic Distribution"
|
||||
msgstr "Analytic Distribution"
|
||||
|
||||
#. module: account_analytic_default
|
||||
#: help:account.analytic.default,date_start:0
|
||||
msgid "Default start date for this Analytic Account."
|
||||
msgstr "Default start date for this Analytic Account."
|
||||
|
||||
#. module: account_analytic_default
|
||||
#: view:account.analytic.default:0
|
||||
msgid "Accounts"
|
||||
msgstr "Accounts"
|
||||
|
||||
#. module: account_analytic_default
|
||||
#: view:account.analytic.default:0
|
||||
#: field:account.analytic.default,partner_id:0
|
||||
msgid "Partner"
|
||||
msgstr "Partner"
|
||||
|
||||
#. module: account_analytic_default
|
||||
#: field:account.analytic.default,date_start:0
|
||||
msgid "Start Date"
|
||||
msgstr "Start Date"
|
||||
|
||||
#. module: account_analytic_default
|
||||
#: help:account.analytic.default,sequence:0
|
||||
msgid ""
|
||||
"Gives the sequence order when displaying a list of analytic distribution"
|
||||
msgstr ""
|
||||
"Gives the sequence order when displaying a list of analytic distribution"
|
||||
|
||||
#. module: account_analytic_default
|
||||
#: model:ir.model,name:account_analytic_default.model_sale_order_line
|
||||
msgid "Sales Order Line"
|
||||
msgstr "Sales Order Line"
|
||||
@@ -0,0 +1,241 @@
|
||||
# Mongolian translation for openobject-addons
|
||||
# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
|
||||
# This file is distributed under the same license as the openobject-addons package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2013.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-12-21 17:05+0000\n"
|
||||
"PO-Revision-Date: 2013-02-06 08:04+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Mongolian <mn@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: 2013-02-07 04:53+0000\n"
|
||||
"X-Generator: Launchpad (build 16477)\n"
|
||||
|
||||
#. module: account_test
|
||||
#: view:accounting.assert.test:0
|
||||
msgid ""
|
||||
"Code should always set a variable named `result` with the result of your "
|
||||
"test, that can be a list or\n"
|
||||
"a dictionary. If `result` is an empty list, it means that the test was "
|
||||
"succesful. Otherwise it will\n"
|
||||
"try to translate and print what is inside `result`.\n"
|
||||
"\n"
|
||||
"If the result of your test is a dictionary, you can set a variable named "
|
||||
"`column_order` to choose in\n"
|
||||
"what order you want to print `result`'s content.\n"
|
||||
"\n"
|
||||
"Should you need them, you can also use the following variables into your "
|
||||
"code:\n"
|
||||
" * cr: cursor to the database\n"
|
||||
" * uid: ID of the current user\n"
|
||||
"\n"
|
||||
"In any ways, the code must be legal python statements with correct "
|
||||
"indentation (if needed).\n"
|
||||
"\n"
|
||||
"Example: \n"
|
||||
" sql = '''SELECT id, name, ref, date\n"
|
||||
" FROM account_move_line \n"
|
||||
" WHERE account_id IN (SELECT id FROM account_account WHERE type "
|
||||
"= 'view')\n"
|
||||
" '''\n"
|
||||
" cr.execute(sql)\n"
|
||||
" result = cr.dictfetchall()"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_test
|
||||
#: model:accounting.assert.test,name:account_test.account_test_02
|
||||
msgid "Test 2: Opening a fiscal year"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_test
|
||||
#: model:accounting.assert.test,desc:account_test.account_test_05
|
||||
msgid ""
|
||||
"Check that reconciled invoice for Sales/Purchases has reconciled entries for "
|
||||
"Payable and Receivable Accounts"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_test
|
||||
#: model:accounting.assert.test,desc:account_test.account_test_03
|
||||
msgid ""
|
||||
"Check if movement lines are balanced and have the same date and period"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_test
|
||||
#: field:accounting.assert.test,name:0
|
||||
msgid "Test Name"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_test
|
||||
#: report:account.test.assert.print:0
|
||||
msgid "Accouting tests on"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_test
|
||||
#: model:accounting.assert.test,name:account_test.account_test_01
|
||||
msgid "Test 1: General balance"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_test
|
||||
#: model:accounting.assert.test,desc:account_test.account_test_06
|
||||
msgid "Check that paid/reconciled invoices are not in 'Open' state"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_test
|
||||
#: model:accounting.assert.test,desc:account_test.account_test_05_2
|
||||
msgid ""
|
||||
"Check that reconciled account moves, that define Payable and Receivable "
|
||||
"accounts, are belonging to reconciled invoices"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_test
|
||||
#: view:accounting.assert.test:0
|
||||
msgid "Tests"
|
||||
msgstr "Тестүүд"
|
||||
|
||||
#. module: account_test
|
||||
#: field:accounting.assert.test,desc:0
|
||||
msgid "Test Description"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_test
|
||||
#: view:accounting.assert.test:0
|
||||
msgid "Description"
|
||||
msgstr "Тайлбар"
|
||||
|
||||
#. module: account_test
|
||||
#: model:accounting.assert.test,desc:account_test.account_test_06_1
|
||||
msgid "Check that there's no move for any account with « View » account type"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_test
|
||||
#: model:accounting.assert.test,name:account_test.account_test_08
|
||||
msgid "Test 9 : Accounts and partners on account moves"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_test
|
||||
#: model:ir.actions.act_window,name:account_test.action_accounting_assert
|
||||
#: model:ir.actions.report.xml,name:account_test.account_assert_test_report
|
||||
#: model:ir.ui.menu,name:account_test.menu_action_license
|
||||
msgid "Accounting Tests"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_test
|
||||
#: code:addons/account_test/report/account_test_report.py:74
|
||||
#, python-format
|
||||
msgid "The test was passed successfully"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_test
|
||||
#: field:accounting.assert.test,active:0
|
||||
msgid "Active"
|
||||
msgstr "Идэвхитэй"
|
||||
|
||||
#. module: account_test
|
||||
#: model:accounting.assert.test,name:account_test.account_test_06
|
||||
msgid "Test 6 : Invoices status"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_test
|
||||
#: model:ir.model,name:account_test.model_accounting_assert_test
|
||||
msgid "accounting.assert.test"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_test
|
||||
#: model:accounting.assert.test,name:account_test.account_test_05
|
||||
msgid ""
|
||||
"Test 5.1 : Payable and Receivable accountant lines of reconciled invoices"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_test
|
||||
#: field:accounting.assert.test,code_exec:0
|
||||
msgid "Python code"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_test
|
||||
#: model:accounting.assert.test,desc:account_test.account_test_07
|
||||
msgid ""
|
||||
"Check on bank statement that the Closing Balance = Starting Balance + sum of "
|
||||
"statement lines"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_test
|
||||
#: model:accounting.assert.test,name:account_test.account_test_07
|
||||
msgid "Test 8 : Closing balance on bank statements"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_test
|
||||
#: model:accounting.assert.test,name:account_test.account_test_03
|
||||
msgid "Test 3: Movement lines"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_test
|
||||
#: model:accounting.assert.test,name:account_test.account_test_05_2
|
||||
msgid "Test 5.2 : Reconcilied invoices and Payable/Receivable accounts"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_test
|
||||
#: view:accounting.assert.test:0
|
||||
msgid "Expression"
|
||||
msgstr "Илэрхийлэл"
|
||||
|
||||
#. module: account_test
|
||||
#: model:accounting.assert.test,name:account_test.account_test_04
|
||||
msgid "Test 4: Totally reconciled mouvements"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_test
|
||||
#: model:accounting.assert.test,desc:account_test.account_test_04
|
||||
msgid "Check if the totally reconciled movements are balanced"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_test
|
||||
#: field:accounting.assert.test,sequence:0
|
||||
msgid "Sequence"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_test
|
||||
#: model:accounting.assert.test,desc:account_test.account_test_02
|
||||
msgid ""
|
||||
"Check if the balance of the new opened fiscal year matches with last year's "
|
||||
"balance"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_test
|
||||
#: view:accounting.assert.test:0
|
||||
msgid "Python Code"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_test
|
||||
#: model:ir.actions.act_window,help:account_test.action_accounting_assert
|
||||
msgid ""
|
||||
"<p class=\"oe_view_nocontent_create\">\n"
|
||||
" Click to create Accounting Test.\n"
|
||||
" </p>\n"
|
||||
" "
|
||||
msgstr ""
|
||||
|
||||
#. module: account_test
|
||||
#: model:accounting.assert.test,desc:account_test.account_test_01
|
||||
msgid "Check the balance: Debit sum = Credit sum"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_test
|
||||
#: model:accounting.assert.test,desc:account_test.account_test_08
|
||||
msgid "Check that general accounts and partners on account moves are active"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_test
|
||||
#: model:accounting.assert.test,name:account_test.account_test_06_1
|
||||
msgid "Test 7: « View » account type"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_test
|
||||
#: view:accounting.assert.test:0
|
||||
msgid "Code Help"
|
||||
msgstr ""
|
||||
@@ -42,7 +42,7 @@ This module manages:
|
||||
'category': 'Accounting & Finance',
|
||||
'sequence': 4,
|
||||
'website' : 'http://openerp.com',
|
||||
'images' : ['images/customer_payment.jpeg','images/journal_voucher.jpeg','images/sales_receipt.jpeg','images/supplier_voucher.jpeg'],
|
||||
'images' : ['images/customer_payment.jpeg','images/journal_voucher.jpeg','images/sales_receipt.jpeg','images/supplier_voucher.jpeg','images/customer_invoice.jpeg','images/customer_refunds.jpeg'],
|
||||
'depends' : ['account'],
|
||||
'demo' : [],
|
||||
'data' : [
|
||||
|
||||
@@ -962,7 +962,9 @@ class account_voucher(osv.osv):
|
||||
if not voucher_brw.journal_id.sequence_id.active:
|
||||
raise osv.except_osv(_('Configuration Error !'),
|
||||
_('Please activate the sequence of selected journal !'))
|
||||
name = seq_obj.next_by_id(cr, uid, voucher_brw.journal_id.sequence_id.id, context=context)
|
||||
c = dict(context)
|
||||
c.update({'fiscalyear_id': voucher_brw.period_id.fiscalyear_id.id})
|
||||
name = seq_obj.next_by_id(cr, uid, voucher_brw.journal_id.sequence_id.id, context=c)
|
||||
else:
|
||||
raise osv.except_osv(_('Error!'),
|
||||
_('Please define a sequence on the journal.'))
|
||||
@@ -977,7 +979,7 @@ class account_voucher(osv.osv):
|
||||
'narration': voucher_brw.narration,
|
||||
'date': voucher_brw.date,
|
||||
'ref': ref,
|
||||
'period_id': voucher_brw.period_id and voucher_brw.period_id.id or False
|
||||
'period_id': voucher_brw.period_id.id,
|
||||
}
|
||||
return move
|
||||
|
||||
|
||||
@@ -17,6 +17,7 @@
|
||||
<record id="mt_voucher_state_change" model="mail.message.subtype">
|
||||
<field name="name">Status Change</field>
|
||||
<field name="res_model">account.voucher</field>
|
||||
<field name="default" eval="False"/>
|
||||
<field name="description">Status changed</field>
|
||||
</record>
|
||||
|
||||
|
||||
@@ -172,7 +172,7 @@ class account_analytic_account(osv.osv):
|
||||
|
||||
_columns = {
|
||||
'name': fields.char('Account/Contract Name', size=128, required=True),
|
||||
'complete_name': fields.function(_get_full_name, type='char', string='Full Account Name'),
|
||||
'complete_name': fields.function(_get_full_name, type='char', string='Full Name'),
|
||||
'code': fields.char('Reference', select=True),
|
||||
'type': fields.selection([('view','Analytic View'), ('normal','Analytic Account'),('contract','Contract or Project'),('template','Template of Contract')], 'Type of Account', required=True,
|
||||
help="If you select the View Type, it means you won\'t allow to create journal entries using that account.\n"\
|
||||
|
||||
@@ -6,16 +6,19 @@
|
||||
<record id="mt_account_pending" model="mail.message.subtype">
|
||||
<field name="name">Contract to Renew</field>
|
||||
<field name="res_model">account.analytic.account</field>
|
||||
<field name="default" eval="False"/>
|
||||
<field name="description">Contract pending</field>
|
||||
</record>
|
||||
<record id="mt_account_closed" model="mail.message.subtype">
|
||||
<field name="name">Contract Finished</field>
|
||||
<field name="res_model">account.analytic.account</field>
|
||||
<field name="default" eval="False"/>
|
||||
<field name="description">Contract closed</field>
|
||||
</record>
|
||||
<record id="mt_account_opened" model="mail.message.subtype">
|
||||
<field name="name">Contract Opened</field>
|
||||
<field name="res_model">account.analytic.account</field>
|
||||
<field name="default" eval="False"/>
|
||||
<field name="description">Contract opened</field>
|
||||
</record>
|
||||
|
||||
|
||||
@@ -0,0 +1,72 @@
|
||||
# Mongolian translation for openobject-addons
|
||||
# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
|
||||
# This file is distributed under the same license as the openobject-addons package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2013.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-12-21 17:05+0000\n"
|
||||
"PO-Revision-Date: 2013-02-06 07:46+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Mongolian <mn@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: 2013-02-07 04:53+0000\n"
|
||||
"X-Generator: Launchpad (build 16477)\n"
|
||||
|
||||
#. module: analytic_contract_hr_expense
|
||||
#: view:account.analytic.account:0
|
||||
msgid "or view"
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic_contract_hr_expense
|
||||
#: view:account.analytic.account:0
|
||||
msgid "Nothing to invoice, create"
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic_contract_hr_expense
|
||||
#: view:account.analytic.account:0
|
||||
msgid "expenses"
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic_contract_hr_expense
|
||||
#: model:ir.model,name:analytic_contract_hr_expense.model_account_analytic_account
|
||||
msgid "Analytic Account"
|
||||
msgstr "Шинжилгээний Данс"
|
||||
|
||||
#. module: analytic_contract_hr_expense
|
||||
#: code:addons/analytic_contract_hr_expense/analytic_contract_hr_expense.py:129
|
||||
#, python-format
|
||||
msgid "Expenses to Invoice of %s"
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic_contract_hr_expense
|
||||
#: code:addons/analytic_contract_hr_expense/analytic_contract_hr_expense.py:121
|
||||
#, python-format
|
||||
msgid "Expenses of %s"
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic_contract_hr_expense
|
||||
#: field:account.analytic.account,expense_invoiced:0
|
||||
#: field:account.analytic.account,expense_to_invoice:0
|
||||
#: field:account.analytic.account,remaining_expense:0
|
||||
msgid "unknown"
|
||||
msgstr "тодорхой бус"
|
||||
|
||||
#. module: analytic_contract_hr_expense
|
||||
#: field:account.analytic.account,est_expenses:0
|
||||
msgid "Estimation of Expenses to Invoice"
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic_contract_hr_expense
|
||||
#: field:account.analytic.account,charge_expenses:0
|
||||
msgid "Charge Expenses"
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic_contract_hr_expense
|
||||
#: view:account.analytic.account:0
|
||||
msgid "⇒ Invoice"
|
||||
msgstr ""
|
||||
@@ -549,7 +549,7 @@ class ir_model_fields_anonymize_wizard(osv.osv_memory):
|
||||
key = (line['model_id'], line['field_id'])
|
||||
custom_updates = fixes.get(key)
|
||||
if custom_updates:
|
||||
custom_updates.sort(itemgetter('sequence'))
|
||||
custom_updates.sort(key=itemgetter('sequence'))
|
||||
queries = [(record['query'], record['query_type']) for record in custom_updates if record['query_type']]
|
||||
elif table_name:
|
||||
queries = [("update %(table)s set %(field)s = %%(value)s where id = %%(id)s" % {
|
||||
|
||||
@@ -1,77 +1,28 @@
|
||||
# English (United Kingdom) translation for openobject-addons
|
||||
# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
|
||||
# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
|
||||
# This file is distributed under the same license as the openobject-addons package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2013.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-12-03 16:03+0000\n"
|
||||
"PO-Revision-Date: 2011-08-25 11:52+0000\n"
|
||||
"POT-Creation-Date: 2012-12-21 17:05+0000\n"
|
||||
"PO-Revision-Date: 2013-02-06 14:35+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: English (United Kingdom) <en_GB@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-12-04 05:53+0000\n"
|
||||
"X-Generator: Launchpad (build 16335)\n"
|
||||
"X-Launchpad-Export-Date: 2013-02-07 04:53+0000\n"
|
||||
"X-Generator: Launchpad (build 16477)\n"
|
||||
|
||||
#. module: base_crypt
|
||||
#: model:ir.model,name:base_crypt.model_res_users
|
||||
#. module: auth_crypt
|
||||
#: field:res.users,password_crypt:0
|
||||
msgid "Encrypted Password"
|
||||
msgstr "Encrypted Password"
|
||||
|
||||
#. module: auth_crypt
|
||||
#: model:ir.model,name:auth_crypt.model_res_users
|
||||
msgid "Users"
|
||||
msgstr ""
|
||||
|
||||
#~ 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 ""
|
||||
#~ "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 is impossible to recover a forgotten user\n"
|
||||
#~ "password, 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"
|
||||
#~ " "
|
||||
|
||||
#, python-format
|
||||
#~ msgid "Error"
|
||||
#~ msgstr "Error"
|
||||
|
||||
#~ msgid "Base - Password Encryption"
|
||||
#~ msgstr "Base - Password Encryption"
|
||||
|
||||
#, python-format
|
||||
#~ msgid "Please specify the password !"
|
||||
#~ msgstr "Please specify the password !"
|
||||
|
||||
#~ msgid "The chosen company is not in the allowed companies for this user"
|
||||
#~ msgstr "The chosen company is not in the allowed companies for this user"
|
||||
|
||||
#~ msgid "res.users"
|
||||
#~ msgstr "res.users"
|
||||
|
||||
#~ msgid "You can not have two users with the same login !"
|
||||
#~ msgstr "You can not have two users with the same login !"
|
||||
msgstr "Users"
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
# English (United Kingdom) translation for openobject-addons
|
||||
# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
|
||||
# This file is distributed under the same license as the openobject-addons package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2013.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-12-21 17:05+0000\n"
|
||||
"PO-Revision-Date: 2013-02-06 14:33+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: English (United Kingdom) <en_GB@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: 2013-02-07 04:53+0000\n"
|
||||
"X-Generator: Launchpad (build 16477)\n"
|
||||
|
||||
#. module: auth_oauth_signup
|
||||
#: model:ir.model,name:auth_oauth_signup.model_res_users
|
||||
msgid "Users"
|
||||
msgstr "Users"
|
||||
@@ -0,0 +1,23 @@
|
||||
# Mongolian translation for openobject-addons
|
||||
# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
|
||||
# This file is distributed under the same license as the openobject-addons package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2013.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-12-21 17:05+0000\n"
|
||||
"PO-Revision-Date: 2013-02-06 07:44+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Mongolian <mn@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: 2013-02-07 04:53+0000\n"
|
||||
"X-Generator: Launchpad (build 16477)\n"
|
||||
|
||||
#. module: auth_oauth_signup
|
||||
#: model:ir.model,name:auth_oauth_signup.model_res_users
|
||||
msgid "Users"
|
||||
msgstr "Хэрэглэгчид"
|
||||
@@ -0,0 +1,97 @@
|
||||
# Mongolian translation for openobject-addons
|
||||
# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
|
||||
# This file is distributed under the same license as the openobject-addons package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2013.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-12-21 17:05+0000\n"
|
||||
"PO-Revision-Date: 2013-02-06 08:17+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Mongolian <mn@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: 2013-02-07 04:53+0000\n"
|
||||
"X-Generator: Launchpad (build 16477)\n"
|
||||
|
||||
#. module: auth_openid
|
||||
#. openerp-web
|
||||
#: code:addons/auth_openid/static/src/xml/auth_openid.xml:24
|
||||
#, python-format
|
||||
msgid "Username"
|
||||
msgstr "Хэрэглэгчийн нэр"
|
||||
|
||||
#. module: auth_openid
|
||||
#. openerp-web
|
||||
#: code:addons/auth_openid/static/src/xml/auth_openid.xml:12
|
||||
#: view:res.users:0
|
||||
#, python-format
|
||||
msgid "OpenID"
|
||||
msgstr ""
|
||||
|
||||
#. module: auth_openid
|
||||
#. openerp-web
|
||||
#: code:addons/auth_openid/static/src/xml/auth_openid.xml:30
|
||||
#: field:res.users,openid_url:0
|
||||
#, python-format
|
||||
msgid "OpenID URL"
|
||||
msgstr ""
|
||||
|
||||
#. module: auth_openid
|
||||
#. openerp-web
|
||||
#: code:addons/auth_openid/static/src/xml/auth_openid.xml:9
|
||||
#: code:addons/auth_openid/static/src/xml/auth_openid.xml:10
|
||||
#, python-format
|
||||
msgid "Google"
|
||||
msgstr ""
|
||||
|
||||
#. module: auth_openid
|
||||
#. openerp-web
|
||||
#: code:addons/auth_openid/static/src/xml/auth_openid.xml:11
|
||||
#, python-format
|
||||
msgid "Launchpad"
|
||||
msgstr "Launchpad"
|
||||
|
||||
#. module: auth_openid
|
||||
#: help:res.users,openid_email:0
|
||||
msgid "Used for disambiguation in case of a shared OpenID URL"
|
||||
msgstr ""
|
||||
|
||||
#. module: auth_openid
|
||||
#. openerp-web
|
||||
#: code:addons/auth_openid/static/src/xml/auth_openid.xml:18
|
||||
#, python-format
|
||||
msgid "Google Apps Domain"
|
||||
msgstr ""
|
||||
|
||||
#. module: auth_openid
|
||||
#: field:res.users,openid_email:0
|
||||
msgid "OpenID Email"
|
||||
msgstr ""
|
||||
|
||||
#. module: auth_openid
|
||||
#: field:res.users,openid_key:0
|
||||
msgid "OpenID Key"
|
||||
msgstr ""
|
||||
|
||||
#. module: auth_openid
|
||||
#. openerp-web
|
||||
#: code:addons/auth_openid/static/src/xml/auth_openid.xml:8
|
||||
#, python-format
|
||||
msgid "Password"
|
||||
msgstr "Нууц үг"
|
||||
|
||||
#. module: auth_openid
|
||||
#. openerp-web
|
||||
#: code:addons/auth_openid/static/src/xml/auth_openid.xml:10
|
||||
#, python-format
|
||||
msgid "Google Apps"
|
||||
msgstr ""
|
||||
|
||||
#. module: auth_openid
|
||||
#: model:ir.model,name:auth_openid.model_res_users
|
||||
msgid "Users"
|
||||
msgstr "Хэрэглэгчид"
|
||||
@@ -33,5 +33,39 @@
|
||||
<p>Note: If you do not expect this, you can safely ignore this email.</p>]]></field>
|
||||
</record>
|
||||
|
||||
<!-- Email template for new users -->
|
||||
<record id="set_password_email" model="email.template">
|
||||
<field name="name">OpenERP Enterprise Connection</field>
|
||||
<field name="model_id" ref="base.model_res_users"/>
|
||||
<field name="email_from"><![CDATA[${object.company_id.name} <${object.company_id.email}>]]></field>
|
||||
<field name="email_to">${object.email}</field>
|
||||
<field name="subject"><![CDATA[${object.company_id.name} invitation to connect on OpenERP]]></field>
|
||||
<field name="body_html">
|
||||
<![CDATA[
|
||||
<p>
|
||||
${object.name},
|
||||
</p>
|
||||
<p>
|
||||
You have been invited to connect to "${object.company_id.name}" in order to get access to your documents in OpenERP.
|
||||
</p>
|
||||
<p>
|
||||
To accept the invitation, click on the following link:
|
||||
</p>
|
||||
<ul>
|
||||
<li><a href="${object.signup_url}">Accept invitation to "${object.company_id.name}"</a></li>
|
||||
</ul>
|
||||
<p>
|
||||
Thanks,
|
||||
</p>
|
||||
<pre>
|
||||
--
|
||||
${object.company_id.name or ''}
|
||||
${object.company_id.email or ''}
|
||||
${object.company_id.phone or ''}
|
||||
</pre>
|
||||
]]>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</openerp>
|
||||
|
||||
@@ -246,8 +246,18 @@ class res_users(osv.Model):
|
||||
partner_ids = [user.partner_id.id for user in self.browse(cr, uid, ids, context)]
|
||||
res_partner.signup_prepare(cr, uid, partner_ids, signup_type="reset", expiration=now(days=+1), context=context)
|
||||
|
||||
if not context:
|
||||
context = {}
|
||||
|
||||
# send email to users with their signup url
|
||||
template = self.pool.get('ir.model.data').get_object(cr, uid, 'auth_signup', 'reset_password_email')
|
||||
template = False
|
||||
if context.get('create_user'):
|
||||
try:
|
||||
template = self.pool.get('ir.model.data').get_object(cr, uid, 'auth_signup', 'set_password_email')
|
||||
except ValueError:
|
||||
pass
|
||||
if not bool(template):
|
||||
template = self.pool.get('ir.model.data').get_object(cr, uid, 'auth_signup', 'reset_password_email')
|
||||
mail_obj = self.pool.get('mail.mail')
|
||||
assert template._name == 'email.template'
|
||||
for user in self.browse(cr, uid, ids, context):
|
||||
@@ -274,5 +284,6 @@ class res_users(osv.Model):
|
||||
user_id = super(res_users, self).create(cr, uid, values, context=context)
|
||||
user = self.browse(cr, uid, user_id, context=context)
|
||||
if context and context.get('reset_password') and user.email:
|
||||
user.action_reset_password()
|
||||
ctx = dict(context, create_user=True)
|
||||
self.action_reset_password(cr, uid, [user.id], context=ctx)
|
||||
return user_id
|
||||
|
||||
@@ -8,14 +8,14 @@ msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-12-21 17:05+0000\n"
|
||||
"PO-Revision-Date: 2012-05-10 17:34+0000\n"
|
||||
"Last-Translator: Raphael Collet (OpenERP) <Unknown>\n"
|
||||
"PO-Revision-Date: 2013-02-06 17:09+0000\n"
|
||||
"Last-Translator: Ediz Duman <neps1192@gmail.com>\n"
|
||||
"Language-Team: Turkish <tr@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-12-22 06:01+0000\n"
|
||||
"X-Generator: Launchpad (build 16378)\n"
|
||||
"X-Launchpad-Export-Date: 2013-02-07 04:53+0000\n"
|
||||
"X-Generator: Launchpad (build 16477)\n"
|
||||
|
||||
#. module: base_calendar
|
||||
#: selection:calendar.alarm,trigger_related:0
|
||||
@@ -44,7 +44,7 @@ msgstr ""
|
||||
#: selection:calendar.todo,rrule_type:0
|
||||
#: selection:crm.meeting,rrule_type:0
|
||||
msgid "Week(s)"
|
||||
msgstr ""
|
||||
msgstr "Hafta(lar)"
|
||||
|
||||
#. module: base_calendar
|
||||
#: field:calendar.event,we:0
|
||||
@@ -145,7 +145,7 @@ msgstr "Davet türünü belirle"
|
||||
#: view:crm.meeting:0
|
||||
#: field:crm.meeting,message_unread:0
|
||||
msgid "Unread Messages"
|
||||
msgstr ""
|
||||
msgstr "Okunmamış Mesajlar"
|
||||
|
||||
#. module: base_calendar
|
||||
#: selection:calendar.event,week_list:0
|
||||
@@ -166,7 +166,7 @@ msgstr "Tüm Gün"
|
||||
#: field:calendar.todo,vtimezone:0
|
||||
#: field:crm.meeting,vtimezone:0
|
||||
msgid "Timezone"
|
||||
msgstr "Saat dilimi"
|
||||
msgstr "ZamanDilimi"
|
||||
|
||||
#. module: base_calendar
|
||||
#: selection:calendar.attendee,availability:0
|
||||
@@ -180,7 +180,7 @@ msgstr "Serbest"
|
||||
#. module: base_calendar
|
||||
#: help:crm.meeting,message_unread:0
|
||||
msgid "If checked new messages require your attention."
|
||||
msgstr ""
|
||||
msgstr "Eğer işaretlenirse yeni mesajlar dikkatinizi gerektirecek"
|
||||
|
||||
#. module: base_calendar
|
||||
#: help:calendar.attendee,rsvp:0
|
||||
@@ -207,7 +207,7 @@ msgstr "Etkinlik Ref"
|
||||
#: field:calendar.todo,tu:0
|
||||
#: field:crm.meeting,tu:0
|
||||
msgid "Tue"
|
||||
msgstr "Sa"
|
||||
msgstr "Sal"
|
||||
|
||||
#. module: base_calendar
|
||||
#: selection:calendar.event,byday:0
|
||||
@@ -232,12 +232,12 @@ msgstr "Sonuncu"
|
||||
#. module: base_calendar
|
||||
#: help:crm.meeting,message_ids:0
|
||||
msgid "Messages and communication history"
|
||||
msgstr ""
|
||||
msgstr "Mesajlar ve İletişim Geçmişi"
|
||||
|
||||
#. module: base_calendar
|
||||
#: field:crm.meeting,message_ids:0
|
||||
msgid "Messages"
|
||||
msgstr ""
|
||||
msgstr "Mesajlar"
|
||||
|
||||
#. module: base_calendar
|
||||
#: selection:calendar.alarm,trigger_interval:0
|
||||
@@ -264,7 +264,7 @@ msgstr "Başkan"
|
||||
#. module: base_calendar
|
||||
#: view:crm.meeting:0
|
||||
msgid "My Meetings"
|
||||
msgstr ""
|
||||
msgstr "Toplantılarım"
|
||||
|
||||
#. module: base_calendar
|
||||
#: selection:calendar.alarm,action:0
|
||||
@@ -303,22 +303,22 @@ msgstr "Katılımcının iştirak durumu"
|
||||
#. module: base_calendar
|
||||
#: view:crm.meeting:0
|
||||
msgid "Mail To"
|
||||
msgstr ""
|
||||
msgstr "Kime"
|
||||
|
||||
#. module: base_calendar
|
||||
#: field:crm.meeting,name:0
|
||||
msgid "Meeting Subject"
|
||||
msgstr ""
|
||||
msgstr "Toplantı Konusu"
|
||||
|
||||
#. module: base_calendar
|
||||
#: view:calendar.event:0
|
||||
msgid "End of Recurrence"
|
||||
msgstr ""
|
||||
msgstr "Tekrar sonu"
|
||||
|
||||
#. module: base_calendar
|
||||
#: view:calendar.event:0
|
||||
msgid "Group By..."
|
||||
msgstr "Gruplandır..."
|
||||
msgstr "Gruplan İle..."
|
||||
|
||||
#. module: base_calendar
|
||||
#: view:calendar.event:0
|
||||
@@ -334,7 +334,7 @@ msgstr "Görüşmenin tekrarlanacağı günü seç"
|
||||
#: view:crm.meeting:0
|
||||
#: model:ir.actions.act_window,name:base_calendar.action_crm_meeting
|
||||
msgid "Meetings"
|
||||
msgstr ""
|
||||
msgstr "Toplantılar"
|
||||
|
||||
#. module: base_calendar
|
||||
#: field:calendar.event,recurrent_id_date:0
|
||||
@@ -444,7 +444,7 @@ msgstr "Katılımcılar"
|
||||
#. module: base_calendar
|
||||
#: view:calendar.event:0
|
||||
msgid "Confirm"
|
||||
msgstr "Onayla"
|
||||
msgstr "Onaylama"
|
||||
|
||||
#. module: base_calendar
|
||||
#: model:ir.model,name:base_calendar.model_calendar_todo
|
||||
@@ -483,14 +483,14 @@ msgstr "Ayın günü"
|
||||
#. module: base_calendar
|
||||
#: field:crm.meeting,message_follower_ids:0
|
||||
msgid "Followers"
|
||||
msgstr ""
|
||||
msgstr "Takipçiler"
|
||||
|
||||
#. module: base_calendar
|
||||
#: field:calendar.event,location:0
|
||||
#: field:calendar.todo,location:0
|
||||
#: field:crm.meeting,location:0
|
||||
msgid "Location"
|
||||
msgstr "Konum"
|
||||
msgstr "Lokasyon"
|
||||
|
||||
#. module: base_calendar
|
||||
#: selection:calendar.attendee,role:0
|
||||
@@ -503,7 +503,7 @@ msgstr "Katılım gerekli"
|
||||
#: field:calendar.todo,show_as:0
|
||||
#: field:crm.meeting,show_as:0
|
||||
msgid "Show Time as"
|
||||
msgstr "Saati şöyle göster"
|
||||
msgstr "Zamanı şöyle göster"
|
||||
|
||||
#. module: base_calendar
|
||||
#: selection:calendar.alarm,action:0
|
||||
@@ -530,26 +530,26 @@ msgstr "Etkinlik alarm bilgisi"
|
||||
#: code:addons/base_calendar/base_calendar.py:1010
|
||||
#, python-format
|
||||
msgid "Count cannot be negative or 0."
|
||||
msgstr ""
|
||||
msgstr "Sayım negatif ya da 0 olamaz."
|
||||
|
||||
#. module: base_calendar
|
||||
#: field:crm.meeting,create_date:0
|
||||
msgid "Creation Date"
|
||||
msgstr ""
|
||||
msgstr "Oluşturma Tarihi"
|
||||
|
||||
#. module: base_calendar
|
||||
#: view:crm.meeting:0
|
||||
#: model:ir.model,name:base_calendar.model_crm_meeting
|
||||
#: model:res.request.link,name:base_calendar.request_link_meeting
|
||||
msgid "Meeting"
|
||||
msgstr ""
|
||||
msgstr "Toplantı"
|
||||
|
||||
#. module: base_calendar
|
||||
#: selection:calendar.event,rrule_type:0
|
||||
#: selection:calendar.todo,rrule_type:0
|
||||
#: selection:crm.meeting,rrule_type:0
|
||||
msgid "Month(s)"
|
||||
msgstr ""
|
||||
msgstr "Ay"
|
||||
|
||||
#. module: base_calendar
|
||||
#: view:calendar.event:0
|
||||
@@ -571,7 +571,7 @@ msgstr "Caldav URL si"
|
||||
#. module: base_calendar
|
||||
#: model:ir.model,name:base_calendar.model_mail_wizard_invite
|
||||
msgid "Invite wizard"
|
||||
msgstr ""
|
||||
msgstr "Davet sihirbazı"
|
||||
|
||||
#. module: base_calendar
|
||||
#: selection:calendar.event,month_list:0
|
||||
@@ -595,7 +595,7 @@ msgstr "Per"
|
||||
#. module: base_calendar
|
||||
#: view:crm.meeting:0
|
||||
msgid "Meeting Details"
|
||||
msgstr ""
|
||||
msgstr "Toplantı Ayrıntıları"
|
||||
|
||||
#. module: base_calendar
|
||||
#: field:calendar.attendee,child_ids:0
|
||||
@@ -606,21 +606,21 @@ msgstr "Şuna Yetkilendirildi"
|
||||
#: code:addons/base_calendar/crm_meeting.py:102
|
||||
#, python-format
|
||||
msgid "The following contacts have no email address :"
|
||||
msgstr ""
|
||||
msgstr "Aşağıdaki kişilerin e-posta adresini Yok :"
|
||||
|
||||
#. module: base_calendar
|
||||
#: selection:calendar.event,rrule_type:0
|
||||
#: selection:calendar.todo,rrule_type:0
|
||||
#: selection:crm.meeting,rrule_type:0
|
||||
msgid "Year(s)"
|
||||
msgstr ""
|
||||
msgstr "Yıl"
|
||||
|
||||
#. module: base_calendar
|
||||
#: view:crm.meeting.type:0
|
||||
#: model:ir.actions.act_window,name:base_calendar.action_crm_meeting_type
|
||||
#: model:ir.ui.menu,name:base_calendar.menu_crm_meeting_type
|
||||
msgid "Meeting Types"
|
||||
msgstr ""
|
||||
msgstr "Toplantı Türü"
|
||||
|
||||
#. module: base_calendar
|
||||
#: field:calendar.event,create_date:0
|
||||
@@ -638,12 +638,12 @@ msgstr "Çalışanlara açık"
|
||||
#. module: base_calendar
|
||||
#: view:crm.meeting:0
|
||||
msgid "hours"
|
||||
msgstr ""
|
||||
msgstr "saat"
|
||||
|
||||
#. module: base_calendar
|
||||
#: field:calendar.attendee,partner_id:0
|
||||
msgid "Contact"
|
||||
msgstr "İlgili"
|
||||
msgstr "Kontak"
|
||||
|
||||
#. module: base_calendar
|
||||
#: field:calendar.attendee,language:0
|
||||
@@ -655,12 +655,12 @@ msgstr "Dil"
|
||||
#: field:calendar.todo,end_date:0
|
||||
#: field:crm.meeting,end_date:0
|
||||
msgid "Repeat Until"
|
||||
msgstr "kadar tekrarla"
|
||||
msgstr "Kadar Tekrarla"
|
||||
|
||||
#. module: base_calendar
|
||||
#: view:crm.meeting:0
|
||||
msgid "Options"
|
||||
msgstr ""
|
||||
msgstr "Şeçenekler"
|
||||
|
||||
#. module: base_calendar
|
||||
#: selection:calendar.event,byday:0
|
||||
@@ -699,7 +699,7 @@ msgstr "Salı"
|
||||
#. module: base_calendar
|
||||
#: field:crm.meeting,categ_ids:0
|
||||
msgid "Tags"
|
||||
msgstr ""
|
||||
msgstr "Etiketler"
|
||||
|
||||
#. module: base_calendar
|
||||
#: view:calendar.event:0
|
||||
@@ -733,12 +733,12 @@ msgstr "Belirli aralıklarla olayın otomatik olarak tekrarlamasına izin ver"
|
||||
#. module: base_calendar
|
||||
#: model:ir.ui.menu,name:base_calendar.mail_menu_calendar
|
||||
msgid "Calendar"
|
||||
msgstr ""
|
||||
msgstr "Takvim"
|
||||
|
||||
#. module: base_calendar
|
||||
#: field:calendar.attendee,cn:0
|
||||
msgid "Common name"
|
||||
msgstr "Genel ad"
|
||||
msgstr "Genel adı"
|
||||
|
||||
#. module: base_calendar
|
||||
#: selection:calendar.attendee,state:0
|
||||
@@ -750,6 +750,7 @@ msgstr "Reddedildi"
|
||||
#, python-format
|
||||
msgid "Group by date is not supported, use the calendar view instead."
|
||||
msgstr ""
|
||||
"Tarihe göre Grup desteklenmiyor, bunun yerine takvim görünümünü kullanın"
|
||||
|
||||
#. module: base_calendar
|
||||
#: view:calendar.event:0
|
||||
@@ -826,7 +827,7 @@ msgstr "Ek"
|
||||
#. module: base_calendar
|
||||
#: field:crm.meeting,date_closed:0
|
||||
msgid "Closed"
|
||||
msgstr ""
|
||||
msgstr "Kapatıldı"
|
||||
|
||||
#. module: base_calendar
|
||||
#: view:calendar.event:0
|
||||
@@ -851,7 +852,7 @@ msgstr "Tekrar Sayısı"
|
||||
#. module: base_calendar
|
||||
#: model:crm.meeting.type,name:base_calendar.categ_meet2
|
||||
msgid "Internal Meeting"
|
||||
msgstr ""
|
||||
msgstr "İç Toplantı"
|
||||
|
||||
#. module: base_calendar
|
||||
#: view:calendar.event:0
|
||||
@@ -868,7 +869,7 @@ msgstr "Olaylar"
|
||||
#: field:calendar.todo,state:0
|
||||
#: field:crm.meeting,state:0
|
||||
msgid "Status"
|
||||
msgstr ""
|
||||
msgstr "Durum"
|
||||
|
||||
#. module: base_calendar
|
||||
#: help:calendar.attendee,email:0
|
||||
@@ -878,7 +879,7 @@ msgstr "Davetli Kişinin Epostası"
|
||||
#. module: base_calendar
|
||||
#: model:crm.meeting.type,name:base_calendar.categ_meet1
|
||||
msgid "Customer Meeting"
|
||||
msgstr ""
|
||||
msgstr "Müşteri Toplantısı"
|
||||
|
||||
#. module: base_calendar
|
||||
#: help:calendar.attendee,dir:0
|
||||
@@ -904,7 +905,7 @@ msgstr "Pazartesi"
|
||||
#. module: base_calendar
|
||||
#: model:crm.meeting.type,name:base_calendar.categ_meet4
|
||||
msgid "Open Discussion"
|
||||
msgstr ""
|
||||
msgstr "Açık Tartışmaları"
|
||||
|
||||
#. module: base_calendar
|
||||
#: model:ir.model,name:base_calendar.model_ir_model
|
||||
@@ -928,7 +929,7 @@ msgstr "Etkinlik Tarihi"
|
||||
#. module: base_calendar
|
||||
#: view:crm.meeting:0
|
||||
msgid "Invitations"
|
||||
msgstr ""
|
||||
msgstr "Davetler"
|
||||
|
||||
#. module: base_calendar
|
||||
#: view:calendar.event:0
|
||||
@@ -939,7 +940,7 @@ msgstr "Bu"
|
||||
#. module: base_calendar
|
||||
#: field:crm.meeting,write_date:0
|
||||
msgid "Write Date"
|
||||
msgstr ""
|
||||
msgstr "Yazım Tarihi"
|
||||
|
||||
#. module: base_calendar
|
||||
#: field:calendar.attendee,delegated_from:0
|
||||
@@ -949,7 +950,7 @@ msgstr "Temsil Edilen"
|
||||
#. module: base_calendar
|
||||
#: field:crm.meeting,message_is_follower:0
|
||||
msgid "Is a Follower"
|
||||
msgstr ""
|
||||
msgstr "Takip ediyor"
|
||||
|
||||
#. module: base_calendar
|
||||
#: field:calendar.attendee,user_id:0
|
||||
@@ -1008,7 +1009,7 @@ msgstr "Belirsiz"
|
||||
#: constraint:calendar.todo:0
|
||||
#: constraint:crm.meeting:0
|
||||
msgid "Error ! End date cannot be set before start date."
|
||||
msgstr ""
|
||||
msgstr "Hata! Bitiş tarihi başlangıç tarihinden önce ayarlanamaz."
|
||||
|
||||
#. module: base_calendar
|
||||
#: field:calendar.alarm,trigger_occurs:0
|
||||
@@ -1027,7 +1028,7 @@ msgstr "Ocak"
|
||||
#: field:calendar.alarm,trigger_related:0
|
||||
#: field:res.alarm,trigger_related:0
|
||||
msgid "Related to"
|
||||
msgstr "Bağlı olduğu"
|
||||
msgstr "İlişkili"
|
||||
|
||||
#. module: base_calendar
|
||||
#: field:calendar.alarm,trigger_interval:0
|
||||
@@ -1040,7 +1041,7 @@ msgstr "Aralık"
|
||||
#: selection:calendar.todo,week_list:0
|
||||
#: selection:crm.meeting,week_list:0
|
||||
msgid "Wednesday"
|
||||
msgstr "Çarşamba"
|
||||
msgstr "Çarşamba"
|
||||
|
||||
#. module: base_calendar
|
||||
#: field:calendar.alarm,name:0
|
||||
@@ -1072,7 +1073,7 @@ msgstr "Ay içinde görüşmenin tekrarlanacağı günü seç"
|
||||
#. module: base_calendar
|
||||
#: field:calendar.alarm,action:0
|
||||
msgid "Action"
|
||||
msgstr "Eylem"
|
||||
msgstr "İşlem"
|
||||
|
||||
#. module: base_calendar
|
||||
#: help:calendar.alarm,duration:0
|
||||
@@ -1102,14 +1103,14 @@ msgstr "Alarm tetiklendiğinde başlatılacak eylemi tanımlar"
|
||||
#. module: base_calendar
|
||||
#: view:crm.meeting:0
|
||||
msgid "Starting at"
|
||||
msgstr ""
|
||||
msgstr "Başlama"
|
||||
|
||||
#. module: base_calendar
|
||||
#: selection:calendar.event,end_type:0
|
||||
#: selection:calendar.todo,end_type:0
|
||||
#: selection:crm.meeting,end_type:0
|
||||
msgid "End date"
|
||||
msgstr "Bitiş tarihi"
|
||||
msgstr "Tarihi'de"
|
||||
|
||||
#. module: base_calendar
|
||||
#: view:calendar.event:0
|
||||
@@ -1131,12 +1132,12 @@ msgstr ""
|
||||
#: field:calendar.todo,end_type:0
|
||||
#: field:crm.meeting,end_type:0
|
||||
msgid "Recurrence Termination"
|
||||
msgstr ""
|
||||
msgstr "Tekrar Sonlandırma"
|
||||
|
||||
#. module: base_calendar
|
||||
#: view:crm.meeting:0
|
||||
msgid "Until"
|
||||
msgstr ""
|
||||
msgstr "Kadar"
|
||||
|
||||
#. module: base_calendar
|
||||
#: view:res.alarm:0
|
||||
@@ -1146,17 +1147,17 @@ msgstr "Anımsatma Ayrıntıları"
|
||||
#. module: base_calendar
|
||||
#: model:crm.meeting.type,name:base_calendar.categ_meet3
|
||||
msgid "Off-site Meeting"
|
||||
msgstr ""
|
||||
msgstr "Dışarı Toplantısı"
|
||||
|
||||
#. module: base_calendar
|
||||
#: view:crm.meeting:0
|
||||
msgid "Day of Month"
|
||||
msgstr ""
|
||||
msgstr "Ayın Günü"
|
||||
|
||||
#. module: base_calendar
|
||||
#: selection:calendar.alarm,state:0
|
||||
msgid "Done"
|
||||
msgstr "Bitti"
|
||||
msgstr "Biten"
|
||||
|
||||
#. module: base_calendar
|
||||
#: help:calendar.event,interval:0
|
||||
@@ -1168,12 +1169,12 @@ msgstr "Her (Gün/Hafta/Ay/Yıl) Tekrarla"
|
||||
#. module: base_calendar
|
||||
#: view:crm.meeting:0
|
||||
msgid "All Day?"
|
||||
msgstr ""
|
||||
msgstr "Tüm Gün?"
|
||||
|
||||
#. module: base_calendar
|
||||
#: view:calendar.event:0
|
||||
msgid "Cancel"
|
||||
msgstr "Vazgeç"
|
||||
msgstr "İptal"
|
||||
|
||||
#. module: base_calendar
|
||||
#: model:ir.actions.act_window,help:base_calendar.action_crm_meeting
|
||||
@@ -1208,7 +1209,7 @@ msgstr "Sorumlu Kullanıcı"
|
||||
#. module: base_calendar
|
||||
#: view:crm.meeting:0
|
||||
msgid "Select Weekdays"
|
||||
msgstr ""
|
||||
msgstr "Haftanıngünleri seçin"
|
||||
|
||||
#. module: base_calendar
|
||||
#: code:addons/base_calendar/base_calendar.py:1514
|
||||
@@ -1245,14 +1246,14 @@ msgstr "Yineleme"
|
||||
#: selection:calendar.todo,week_list:0
|
||||
#: selection:crm.meeting,week_list:0
|
||||
msgid "Thursday"
|
||||
msgstr "Perşembe"
|
||||
msgstr "Perşembe"
|
||||
|
||||
#. module: base_calendar
|
||||
#: field:calendar.event,exrule:0
|
||||
#: field:calendar.todo,exrule:0
|
||||
#: field:crm.meeting,exrule:0
|
||||
msgid "Exception Rule"
|
||||
msgstr "Muafşyet Kuralı"
|
||||
msgstr "İstisna Kural"
|
||||
|
||||
#. module: base_calendar
|
||||
#: help:calendar.attendee,language:0
|
||||
@@ -1289,7 +1290,7 @@ msgstr "Ay"
|
||||
#: selection:calendar.todo,rrule_type:0
|
||||
#: selection:crm.meeting,rrule_type:0
|
||||
msgid "Day(s)"
|
||||
msgstr ""
|
||||
msgstr "Gün"
|
||||
|
||||
#. module: base_calendar
|
||||
#: view:calendar.event:0
|
||||
@@ -1338,7 +1339,7 @@ msgstr "ir.values"
|
||||
#. module: base_calendar
|
||||
#: view:crm.meeting:0
|
||||
msgid "Search Meetings"
|
||||
msgstr ""
|
||||
msgstr "Toplantı Aramam"
|
||||
|
||||
#. module: base_calendar
|
||||
#: model:ir.model,name:base_calendar.model_ir_attachment
|
||||
@@ -1348,7 +1349,7 @@ msgstr "ir.ek"
|
||||
#. module: base_calendar
|
||||
#: model:ir.model,name:base_calendar.model_crm_meeting_type
|
||||
msgid "Meeting Type"
|
||||
msgstr ""
|
||||
msgstr "Toplantı Türü"
|
||||
|
||||
#. module: base_calendar
|
||||
#: selection:calendar.attendee,state:0
|
||||
@@ -1378,7 +1379,7 @@ msgstr ""
|
||||
#. module: base_calendar
|
||||
#: selection:crm.meeting,state:0
|
||||
msgid "Unconfirmed"
|
||||
msgstr ""
|
||||
msgstr "Onaysız"
|
||||
|
||||
#. module: base_calendar
|
||||
#: help:calendar.attendee,sent_by:0
|
||||
@@ -1398,7 +1399,7 @@ msgstr "Bitiş Tarihi"
|
||||
#: selection:calendar.todo,month_list:0
|
||||
#: selection:crm.meeting,month_list:0
|
||||
msgid "February"
|
||||
msgstr "Şubat"
|
||||
msgstr "Şubat"
|
||||
|
||||
#. module: base_calendar
|
||||
#: selection:calendar.attendee,cutype:0
|
||||
@@ -1409,7 +1410,7 @@ msgstr "Kaynak"
|
||||
#: field:crm.meeting.type,name:0
|
||||
#: field:res.alarm,name:0
|
||||
msgid "Name"
|
||||
msgstr "Ad"
|
||||
msgstr "Adı"
|
||||
|
||||
#. module: base_calendar
|
||||
#: field:calendar.event,exdate:0
|
||||
@@ -1430,7 +1431,7 @@ msgstr ""
|
||||
#. module: base_calendar
|
||||
#: model:ir.model,name:base_calendar.model_mail_message
|
||||
msgid "Message"
|
||||
msgstr ""
|
||||
msgstr "Mesaj"
|
||||
|
||||
#. module: base_calendar
|
||||
#: field:calendar.event,base_calendar_alarm_id:0
|
||||
@@ -1442,7 +1443,7 @@ msgstr "Alarm"
|
||||
#. module: base_calendar
|
||||
#: field:calendar.attendee,sent_by_uid:0
|
||||
msgid "Sent By User"
|
||||
msgstr "Şu Kullanıcı tarafından gönderildi"
|
||||
msgstr "Gönderen Kullanıcı"
|
||||
|
||||
#. module: base_calendar
|
||||
#: selection:calendar.event,month_list:0
|
||||
@@ -1455,7 +1456,7 @@ msgstr "Nisan"
|
||||
#: code:addons/base_calendar/crm_meeting.py:106
|
||||
#, python-format
|
||||
msgid "Email addresses not found"
|
||||
msgstr ""
|
||||
msgstr "E-posta adresleri bulunamadı"
|
||||
|
||||
#. module: base_calendar
|
||||
#: view:calendar.event:0
|
||||
@@ -1467,13 +1468,13 @@ msgstr "Yineleme Dönemi"
|
||||
#: field:calendar.todo,week_list:0
|
||||
#: field:crm.meeting,week_list:0
|
||||
msgid "Weekday"
|
||||
msgstr "Hafta İçi"
|
||||
msgstr "HaftanınGünü"
|
||||
|
||||
#. module: base_calendar
|
||||
#: code:addons/base_calendar/base_calendar.py:1008
|
||||
#, python-format
|
||||
msgid "Interval cannot be negative."
|
||||
msgstr ""
|
||||
msgstr "Aralıklı negatif olamaz"
|
||||
|
||||
#. module: base_calendar
|
||||
#: field:calendar.event,byday:0
|
||||
@@ -1486,7 +1487,7 @@ msgstr "Gündüz"
|
||||
#: code:addons/base_calendar/base_calendar.py:444
|
||||
#, python-format
|
||||
msgid "First you have to specify the date of the invitation."
|
||||
msgstr ""
|
||||
msgstr "İlk davet tarihinden belirtmeniz gerekir."
|
||||
|
||||
#. module: base_calendar
|
||||
#: field:calendar.alarm,model_id:0
|
||||
@@ -1503,7 +1504,7 @@ msgstr "Ses"
|
||||
#: field:calendar.todo,id:0
|
||||
#: field:crm.meeting,id:0
|
||||
msgid "ID"
|
||||
msgstr "Kimlik"
|
||||
msgstr "ID"
|
||||
|
||||
#. module: base_calendar
|
||||
#: selection:calendar.attendee,role:0
|
||||
@@ -1515,7 +1516,7 @@ msgstr "Bilgi Amaçlı"
|
||||
#: field:calendar.todo,select1:0
|
||||
#: field:crm.meeting,select1:0
|
||||
msgid "Option"
|
||||
msgstr "Seçenek"
|
||||
msgstr "Opsiyon"
|
||||
|
||||
#. module: base_calendar
|
||||
#: model:ir.model,name:base_calendar.model_calendar_attendee
|
||||
@@ -1525,12 +1526,12 @@ msgstr "Katılımcı Bilgisi"
|
||||
#. module: base_calendar
|
||||
#: field:calendar.alarm,res_id:0
|
||||
msgid "Resource ID"
|
||||
msgstr "Kaynak Kimliği"
|
||||
msgstr "Kaynak ID"
|
||||
|
||||
#. module: base_calendar
|
||||
#: selection:calendar.attendee,state:0
|
||||
msgid "Needs Action"
|
||||
msgstr "Eylem Gerekir"
|
||||
msgstr "Gereki İşlemler"
|
||||
|
||||
#. module: base_calendar
|
||||
#: field:calendar.attendee,sent_by:0
|
||||
@@ -1542,7 +1543,7 @@ msgstr "Gönderen"
|
||||
#: field:calendar.todo,sequence:0
|
||||
#: field:crm.meeting,sequence:0
|
||||
msgid "Sequence"
|
||||
msgstr "Diziliş"
|
||||
msgstr "Sıralama"
|
||||
|
||||
#. module: base_calendar
|
||||
#: help:calendar.event,alarm_id:0
|
||||
@@ -1555,7 +1556,7 @@ msgstr "Bu sefer etkinlik başlamadan önce alarm ayarla"
|
||||
#: view:calendar.event:0
|
||||
#: view:crm.meeting:0
|
||||
msgid "Accept"
|
||||
msgstr "Kabul et"
|
||||
msgstr "Kabulet"
|
||||
|
||||
#. module: base_calendar
|
||||
#: selection:calendar.event,week_list:0
|
||||
@@ -1569,7 +1570,7 @@ msgstr "Cumartesi"
|
||||
#: field:calendar.todo,interval:0
|
||||
#: field:crm.meeting,interval:0
|
||||
msgid "Repeat Every"
|
||||
msgstr ""
|
||||
msgstr "Herzaman Tekrarla"
|
||||
|
||||
#. module: base_calendar
|
||||
#: selection:calendar.event,byday:0
|
||||
|
||||
@@ -0,0 +1,249 @@
|
||||
# Turkish translation for openobject-addons
|
||||
# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
|
||||
# This file is distributed under the same license as the openobject-addons package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2013.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-12-21 17:05+0000\n"
|
||||
"PO-Revision-Date: 2013-02-06 08:47+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Turkish <tr@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: 2013-02-07 04:53+0000\n"
|
||||
"X-Generator: Launchpad (build 16477)\n"
|
||||
|
||||
#. module: base_gengo
|
||||
#: view:res.company:0
|
||||
msgid "Comments for Translator"
|
||||
msgstr "Çevirmen için notlar"
|
||||
|
||||
#. module: base_gengo
|
||||
#: field:ir.translation,job_id:0
|
||||
msgid "Gengo Job ID"
|
||||
msgstr "Gengo İş NO"
|
||||
|
||||
#. module: base_gengo
|
||||
#: code:addons/base_gengo/wizard/base_gengo_translations.py:114
|
||||
#, python-format
|
||||
msgid "This language is not supported by the Gengo translation services."
|
||||
msgstr "Bu dil Gengo tercüme servisi tarafından desteklenmiyor."
|
||||
|
||||
#. module: base_gengo
|
||||
#: field:res.company,gengo_comment:0
|
||||
msgid "Comments"
|
||||
msgstr "Yorumlar"
|
||||
|
||||
#. module: base_gengo
|
||||
#: field:res.company,gengo_private_key:0
|
||||
msgid "Gengo Private Key"
|
||||
msgstr "Gengo Özel Anahtarı"
|
||||
|
||||
#. module: base_gengo
|
||||
#: model:ir.model,name:base_gengo.model_base_gengo_translations
|
||||
msgid "base.gengo.translations"
|
||||
msgstr "base.gengo.translations"
|
||||
|
||||
#. module: base_gengo
|
||||
#: help:res.company,gengo_auto_approve:0
|
||||
msgid "Jobs are Automatically Approved by Gengo."
|
||||
msgstr "İşler Gengo tarafından otomatik olarak onaylanıyor"
|
||||
|
||||
#. module: base_gengo
|
||||
#: field:base.gengo.translations,lang_id:0
|
||||
msgid "Language"
|
||||
msgstr "Dil"
|
||||
|
||||
#. module: base_gengo
|
||||
#: field:ir.translation,gengo_comment:0
|
||||
msgid "Comments & Activity Linked to Gengo"
|
||||
msgstr "Gengo'ya bağlı yorumlar ve aktiviteler"
|
||||
|
||||
#. module: base_gengo
|
||||
#: code:addons/base_gengo/wizard/base_gengo_translations.py:124
|
||||
#, python-format
|
||||
msgid "Gengo Sync Translation (Response)"
|
||||
msgstr "Gengo Sync Çeviri (Cevap)"
|
||||
|
||||
#. module: base_gengo
|
||||
#: code:addons/base_gengo/wizard/base_gengo_translations.py:72
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Gengo `Public Key` or `Private Key` are missing. Enter your Gengo "
|
||||
"authentication parameters under `Settings > Companies > Gengo Parameters`."
|
||||
msgstr ""
|
||||
|
||||
#. module: base_gengo
|
||||
#: selection:ir.translation,gengo_translation:0
|
||||
msgid "Translation By Machine"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_gengo
|
||||
#: code:addons/base_gengo/wizard/base_gengo_translations.py:155
|
||||
#, python-format
|
||||
msgid ""
|
||||
"%s\n"
|
||||
"\n"
|
||||
"--\n"
|
||||
" Commented on %s by %s."
|
||||
msgstr ""
|
||||
|
||||
#. module: base_gengo
|
||||
#: field:ir.translation,gengo_translation:0
|
||||
msgid "Gengo Translation Service Level"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_gengo
|
||||
#: constraint:ir.translation:0
|
||||
msgid ""
|
||||
"The Gengo translation service selected is not supported for this language."
|
||||
msgstr ""
|
||||
|
||||
#. module: base_gengo
|
||||
#: selection:ir.translation,gengo_translation:0
|
||||
msgid "Standard"
|
||||
msgstr "Standart"
|
||||
|
||||
#. module: base_gengo
|
||||
#: help:ir.translation,gengo_translation:0
|
||||
msgid ""
|
||||
"You can select here the service level you want for an automatic translation "
|
||||
"using Gengo."
|
||||
msgstr ""
|
||||
|
||||
#. module: base_gengo
|
||||
#: field:base.gengo.translations,restart_send_job:0
|
||||
msgid "Restart Sending Job"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_gengo
|
||||
#: view:ir.translation:0
|
||||
msgid "To Approve In Gengo"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_gengo
|
||||
#: view:res.company:0
|
||||
msgid "Private Key"
|
||||
msgstr "Özel Anahtar"
|
||||
|
||||
#. module: base_gengo
|
||||
#: view:res.company:0
|
||||
msgid "Public Key"
|
||||
msgstr "Genel Anahtar"
|
||||
|
||||
#. module: base_gengo
|
||||
#: field:res.company,gengo_public_key:0
|
||||
msgid "Gengo Public Key"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_gengo
|
||||
#: code:addons/base_gengo/wizard/base_gengo_translations.py:123
|
||||
#, python-format
|
||||
msgid "Gengo Sync Translation (Request)"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_gengo
|
||||
#: view:ir.translation:0
|
||||
msgid "Translations"
|
||||
msgstr "Tercümeler"
|
||||
|
||||
#. module: base_gengo
|
||||
#: field:res.company,gengo_auto_approve:0
|
||||
msgid "Auto Approve Translation ?"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_gengo
|
||||
#: model:ir.actions.act_window,name:base_gengo.action_wizard_base_gengo_translations
|
||||
#: model:ir.ui.menu,name:base_gengo.menu_action_wizard_base_gengo_translations
|
||||
msgid "Gengo: Manual Request of Translation"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_gengo
|
||||
#: code:addons/base_gengo/ir_translation.py:62
|
||||
#: code:addons/base_gengo/wizard/base_gengo_translations.py:109
|
||||
#, python-format
|
||||
msgid "Gengo Authentication Error"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_gengo
|
||||
#: model:ir.model,name:base_gengo.model_res_company
|
||||
msgid "Companies"
|
||||
msgstr "Şirketler"
|
||||
|
||||
#. module: base_gengo
|
||||
#: view:ir.translation:0
|
||||
msgid ""
|
||||
"Note: If the translation state is 'In Progress', it means that the "
|
||||
"translation has to be approved to be uploaded in this system. You are "
|
||||
"supposed to do that directly by using your Gengo Account"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_gengo
|
||||
#: code:addons/base_gengo/wizard/base_gengo_translations.py:82
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Gengo connection failed with this message:\n"
|
||||
"``%s``"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_gengo
|
||||
#: view:res.company:0
|
||||
msgid "Gengo Parameters"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_gengo
|
||||
#: view:base.gengo.translations:0
|
||||
msgid "Send"
|
||||
msgstr "Gönder"
|
||||
|
||||
#. module: base_gengo
|
||||
#: selection:ir.translation,gengo_translation:0
|
||||
msgid "Ultra"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_gengo
|
||||
#: model:ir.model,name:base_gengo.model_ir_translation
|
||||
msgid "ir.translation"
|
||||
msgstr "ir.translation"
|
||||
|
||||
#. module: base_gengo
|
||||
#: view:ir.translation:0
|
||||
msgid "Gengo Translation Service"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_gengo
|
||||
#: selection:ir.translation,gengo_translation:0
|
||||
msgid "Pro"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_gengo
|
||||
#: view:base.gengo.translations:0
|
||||
msgid "Gengo Request Form"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_gengo
|
||||
#: code:addons/base_gengo/wizard/base_gengo_translations.py:114
|
||||
#, python-format
|
||||
msgid "Warning"
|
||||
msgstr "Uyarı"
|
||||
|
||||
#. module: base_gengo
|
||||
#: help:res.company,gengo_comment:0
|
||||
msgid ""
|
||||
"This comment will be automatically be enclosed in each an every request sent "
|
||||
"to Gengo"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_gengo
|
||||
#: view:base.gengo.translations:0
|
||||
msgid "Cancel"
|
||||
msgstr "İptal Et"
|
||||
|
||||
#. module: base_gengo
|
||||
#: view:base.gengo.translations:0
|
||||
msgid "or"
|
||||
msgstr ""
|
||||
+5
-2
@@ -164,7 +164,10 @@
|
||||
background: #efc9cb;
|
||||
}
|
||||
|
||||
.oe_import .select2-results {
|
||||
font-size: 12px;
|
||||
/* Field dropdown */
|
||||
.oe_import_selector {
|
||||
font-size: 10px;
|
||||
/* copied from base.sass:~148 */
|
||||
font-family: "Lucida Grande", Helvetica, Verdana, Arial, sans-serif;
|
||||
}
|
||||
|
||||
|
||||
@@ -134,6 +134,7 @@ openerp.base_import = function (instance) {
|
||||
start: function () {
|
||||
var self = this;
|
||||
this.setup_encoding_picker();
|
||||
this.setup_separator_picker();
|
||||
|
||||
return $.when(
|
||||
this._super(),
|
||||
@@ -164,6 +165,26 @@ openerp.base_import = function (instance) {
|
||||
}
|
||||
}).select2('val', 'utf-8');
|
||||
},
|
||||
setup_separator_picker: function () {
|
||||
this.$('input.oe_import_separator').select2({
|
||||
width: '160px',
|
||||
query: function (q) {
|
||||
var suggestions = [
|
||||
{id: ',', text: _t("Comma")},
|
||||
{id: ';', text: _t("Semicolon")},
|
||||
{id: '\t', text: _t("Tab")},
|
||||
{id: ' ', text: _t("Space")}
|
||||
];
|
||||
if (q.term) {
|
||||
suggestions.unshift({id: q.term, text: q.term});
|
||||
}
|
||||
q.callback({results: suggestions});
|
||||
},
|
||||
initSelection: function (e, c) {
|
||||
return c({id: ',', text: _t("Comma")});
|
||||
},
|
||||
});
|
||||
},
|
||||
|
||||
import_options: function () {
|
||||
var self = this;
|
||||
@@ -336,8 +357,18 @@ openerp.base_import = function (instance) {
|
||||
var fields = this.$('.oe_import_fields input.oe_import_match_field').map(function (index, el) {
|
||||
return $(el).select2('val') || false;
|
||||
}).get();
|
||||
return this.Import.call(
|
||||
'do', [this.id, fields, this.import_options()], options);
|
||||
return this.Import.call('do', [this.id, fields, this.import_options()], options)
|
||||
.then(undefined, function (error, event) {
|
||||
// In case of unexpected exception, convert
|
||||
// "JSON-RPC error" to an import failure, and
|
||||
// prevent default handling (warning dialog)
|
||||
if (event) { event.preventDefault(); }
|
||||
return $.when([{
|
||||
type: 'error',
|
||||
record: false,
|
||||
message: error.data.fault_code,
|
||||
}]);
|
||||
}) ;
|
||||
},
|
||||
onvalidate: function () {
|
||||
return this.call_import({ dryrun: true })
|
||||
|
||||
@@ -0,0 +1,80 @@
|
||||
# English (United Kingdom) translation for openobject-addons
|
||||
# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
|
||||
# This file is distributed under the same license as the openobject-addons package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2013.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-12-21 17:05+0000\n"
|
||||
"PO-Revision-Date: 2013-02-06 15:07+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: English (United Kingdom) <en_GB@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: 2013-02-07 04:53+0000\n"
|
||||
"X-Generator: Launchpad (build 16477)\n"
|
||||
|
||||
#. module: base_status
|
||||
#: code:addons/base_status/base_state.py:107
|
||||
#, python-format
|
||||
msgid "Error !"
|
||||
msgstr "Error !"
|
||||
|
||||
#. module: base_status
|
||||
#: code:addons/base_status/base_state.py:166
|
||||
#, python-format
|
||||
msgid "%s has been <b>opened</b>."
|
||||
msgstr "%s has been <b>opened</b>."
|
||||
|
||||
#. module: base_status
|
||||
#: code:addons/base_status/base_state.py:199
|
||||
#, python-format
|
||||
msgid "%s has been <b>renewed</b>."
|
||||
msgstr "%s has been <b>renewed</b>."
|
||||
|
||||
#. module: base_status
|
||||
#: code:addons/base_status/base_stage.py:210
|
||||
#, python-format
|
||||
msgid "Error!"
|
||||
msgstr "Error!"
|
||||
|
||||
#. module: base_status
|
||||
#: code:addons/base_status/base_state.py:107
|
||||
#, python-format
|
||||
msgid ""
|
||||
"You can not escalate, you are already at the top level regarding your sales-"
|
||||
"team category."
|
||||
msgstr ""
|
||||
"You can not escalate, you are already at the top level regarding your sales-"
|
||||
"team category."
|
||||
|
||||
#. module: base_status
|
||||
#: code:addons/base_status/base_state.py:193
|
||||
#, python-format
|
||||
msgid "%s is now <b>pending</b>."
|
||||
msgstr "%s is now <b>pending</b>."
|
||||
|
||||
#. module: base_status
|
||||
#: code:addons/base_status/base_state.py:187
|
||||
#, python-format
|
||||
msgid "%s has been <b>canceled</b>."
|
||||
msgstr "%s has been <b>canceled</b>."
|
||||
|
||||
#. module: base_status
|
||||
#: code:addons/base_status/base_stage.py:210
|
||||
#, python-format
|
||||
msgid ""
|
||||
"You are already at the top level of your sales-team category.\n"
|
||||
"Therefore you cannot escalate furthermore."
|
||||
msgstr ""
|
||||
"You are already at the top level of your sales-team category.\n"
|
||||
"Therefore you cannot escalate furthermore."
|
||||
|
||||
#. module: base_status
|
||||
#: code:addons/base_status/base_state.py:181
|
||||
#, python-format
|
||||
msgid "%s has been <b>closed</b>."
|
||||
msgstr "%s has been <b>closed</b>."
|
||||
@@ -36,6 +36,7 @@ You can track your suppliers, customers and other contacts.
|
||||
'data': [
|
||||
'contacts_view.xml',
|
||||
],
|
||||
'images': ['images/contacts.jpeg'],
|
||||
'installable': True,
|
||||
'application': True,
|
||||
'auto_install': False,
|
||||
|
||||
@@ -0,0 +1,37 @@
|
||||
# Mongolian translation for openobject-addons
|
||||
# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
|
||||
# This file is distributed under the same license as the openobject-addons package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2013.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-12-21 17:05+0000\n"
|
||||
"PO-Revision-Date: 2013-02-06 07:24+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Mongolian <mn@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: 2013-02-07 04:53+0000\n"
|
||||
"X-Generator: Launchpad (build 16477)\n"
|
||||
|
||||
#. module: contacts
|
||||
#: model:ir.actions.act_window,help:contacts.action_contacts
|
||||
msgid ""
|
||||
"<p class=\"oe_view_nocontent_create\">\n"
|
||||
" Click to add a contact in your address book.\n"
|
||||
" </p><p>\n"
|
||||
" OpenERP helps you easily track all activities related to\n"
|
||||
" a customer; discussions, history of business opportunities,\n"
|
||||
" documents, etc.\n"
|
||||
" </p>\n"
|
||||
" "
|
||||
msgstr ""
|
||||
|
||||
#. module: contacts
|
||||
#: model:ir.actions.act_window,name:contacts.action_contacts
|
||||
#: model:ir.ui.menu,name:contacts.menu_contacts
|
||||
msgid "Contacts"
|
||||
msgstr ""
|
||||
@@ -54,6 +54,7 @@ Dashboard for CRM will include:
|
||||
'base_status',
|
||||
'process',
|
||||
'mail',
|
||||
'email_template',
|
||||
'base_calendar',
|
||||
'resource',
|
||||
'board',
|
||||
@@ -116,6 +117,6 @@ Dashboard for CRM will include:
|
||||
'installable': True,
|
||||
'application': True,
|
||||
'auto_install': False,
|
||||
'images': ['images/sale_crm_crm_dashboard.png', 'images/crm_dashboard.jpeg','images/leads.jpeg','images/meetings.jpeg','images/opportunities.jpeg','images/outbound_calls.jpeg','images/stages.jpeg'],
|
||||
'images': ['images/crm_dashboard.png', 'images/customers.png','images/leads.png','images/opportunities_kanban.png','images/opportunities_form.png','images/opportunities_calendar.png','images/opportunities_graph.png','images/logged_calls.png','images/scheduled_calls.png','images/stages.png'],
|
||||
}
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
||||
+47
-53
@@ -36,8 +36,8 @@ CRM_LEAD_FIELDS_TO_MERGE = ['name',
|
||||
'company_id',
|
||||
'country_id',
|
||||
'section_id',
|
||||
'stage_id',
|
||||
'state_id',
|
||||
'stage_id',
|
||||
'type_id',
|
||||
'user_id',
|
||||
'title',
|
||||
@@ -488,10 +488,8 @@ class crm_lead(base_stage, format_address, osv.osv):
|
||||
opportunities = self.browse(cr, uid, ids, context=context)
|
||||
|
||||
def _get_first_not_null(attr):
|
||||
if hasattr(oldest, attr):
|
||||
return getattr(oldest, attr)
|
||||
for opp in opportunities:
|
||||
if hasattr(opp, attr):
|
||||
if hasattr(opp, attr) and bool(getattr(opp, attr)):
|
||||
return getattr(opp, attr)
|
||||
return False
|
||||
|
||||
@@ -500,7 +498,7 @@ class crm_lead(base_stage, format_address, osv.osv):
|
||||
return res and res.id or False
|
||||
|
||||
def _concat_all(attr):
|
||||
return ', '.join(filter(lambda x: x, [getattr(opp, attr) or '' for opp in opportunities if hasattr(opp, attr)]))
|
||||
return '\n\n'.join(filter(lambda x: x, [getattr(opp, attr) or '' for opp in opportunities if hasattr(opp, attr)]))
|
||||
|
||||
# Process the fields' values
|
||||
data = {}
|
||||
@@ -520,27 +518,8 @@ class crm_lead(base_stage, format_address, osv.osv):
|
||||
|
||||
# Define the resulting type ('lead' or 'opportunity')
|
||||
data['type'] = self._merge_get_result_type(cr, uid, opportunities, context)
|
||||
|
||||
return data
|
||||
|
||||
def _merge_find_oldest(self, cr, uid, ids, context=None):
|
||||
"""
|
||||
Return the oldest lead found among ids.
|
||||
|
||||
:param list ids: list of ids of the leads to inspect
|
||||
:return object: browse record of the oldest of the leads
|
||||
"""
|
||||
if context is None:
|
||||
context = {}
|
||||
|
||||
if context.get('convert'):
|
||||
ids = list(set(ids) - set(context.get('lead_ids', [])))
|
||||
|
||||
# Search opportunities order by create date
|
||||
opportunity_ids = self.search(cr, uid, [('id', 'in', ids)], order='create_date', context=context)
|
||||
oldest_opp_id = opportunity_ids[0]
|
||||
return self.browse(cr, uid, oldest_opp_id, context=context)
|
||||
|
||||
def _mail_body(self, cr, uid, lead, fields, title=False, context=None):
|
||||
body = []
|
||||
if title:
|
||||
@@ -587,7 +566,7 @@ class crm_lead(base_stage, format_address, osv.osv):
|
||||
subject = [merge_message]
|
||||
for opportunity in opportunities:
|
||||
subject.append(opportunity.name)
|
||||
title = "%s : %s" % (merge_message, opportunity.name)
|
||||
title = "%s : %s" % (opportunity.type == 'opportunity' and _('Merged opportunity') or _('Merged lead'), opportunity.name)
|
||||
details.append(self._mail_body(cr, uid, opportunity, CRM_LEAD_FIELDS_TO_MERGE, title=title, context=context))
|
||||
|
||||
# Chatter message's subject
|
||||
@@ -639,40 +618,46 @@ class crm_lead(base_stage, format_address, osv.osv):
|
||||
:param list ids: leads/opportunities ids to merge
|
||||
:return int id: id of the resulting lead/opp
|
||||
"""
|
||||
if context is None: context = {}
|
||||
if context is None:
|
||||
context = {}
|
||||
|
||||
if len(ids) <= 1:
|
||||
raise osv.except_osv(_('Warning!'),_('Please select more than one element (lead or opportunity) from the list view.'))
|
||||
raise osv.except_osv(_('Warning!'), _('Please select more than one element (lead or opportunity) from the list view.'))
|
||||
|
||||
lead_ids = context.get('lead_ids', [])
|
||||
|
||||
ctx_opportunities = self.browse(cr, uid, lead_ids, context=context)
|
||||
opportunities = self.browse(cr, uid, ids, context=context)
|
||||
opportunities_list = list(set(opportunities) - set(ctx_opportunities))
|
||||
oldest = self._merge_find_oldest(cr, uid, ids, context=context)
|
||||
if ctx_opportunities:
|
||||
first_opportunity = ctx_opportunities[0]
|
||||
tail_opportunities = opportunities_list + ctx_opportunities[1:]
|
||||
else:
|
||||
first_opportunity = opportunities_list[0]
|
||||
tail_opportunities = opportunities_list[1:]
|
||||
sequenced_opps = []
|
||||
for opportunity in opportunities:
|
||||
sequenced_opps.append((opportunity.stage_id and opportunity.stage_id.state != 'cancel' and opportunity.stage_id.sequence or 0, opportunity))
|
||||
sequenced_opps.sort(key=lambda tup: tup[0], reverse=True)
|
||||
opportunities = [opportunity for sequence, opportunity in sequenced_opps]
|
||||
ids = [opportunity.id for opportunity in opportunities]
|
||||
highest = opportunities[0]
|
||||
opportunities_rest = opportunities[1:]
|
||||
|
||||
merged_data = self._merge_data(cr, uid, ids, oldest, CRM_LEAD_FIELDS_TO_MERGE, context=context)
|
||||
tail_opportunities = opportunities_rest
|
||||
|
||||
merged_data = self._merge_data(cr, uid, ids, highest, CRM_LEAD_FIELDS_TO_MERGE, context=context)
|
||||
|
||||
# Merge messages and attachements into the first opportunity
|
||||
self._merge_opportunity_history(cr, uid, first_opportunity.id, tail_opportunities, context=context)
|
||||
self._merge_opportunity_attachments(cr, uid, first_opportunity.id, tail_opportunities, context=context)
|
||||
self._merge_opportunity_history(cr, uid, highest.id, tail_opportunities, context=context)
|
||||
self._merge_opportunity_attachments(cr, uid, highest.id, tail_opportunities, context=context)
|
||||
|
||||
# Merge notifications about loss of information
|
||||
self._merge_notify(cr, uid, first_opportunity, opportunities, context=context)
|
||||
opportunities = [highest]
|
||||
opportunities.extend(opportunities_rest)
|
||||
self._merge_notify(cr, uid, highest, opportunities, context=context)
|
||||
# Check if the stage is in the stages of the sales team. If not, assign the stage with the lowest sequence
|
||||
if merged_data.get('type') == 'opportunity' and merged_data.get('section_id'):
|
||||
section_stages = self.pool.get('crm.case.section').read(cr, uid, merged_data['section_id'], ['stage_ids'], context=context)
|
||||
if merged_data.get('stage_id') not in section_stages['stage_ids']:
|
||||
stages_sequences = self.pool.get('crm.case.stage').search(cr, uid, [('id','in',section_stages['stage_ids'])], order='sequence', limit=1, context=context)
|
||||
merged_data['stage_id'] = stages_sequences[0]
|
||||
# Write merged data into first opportunity
|
||||
self.write(cr, uid, [first_opportunity.id], merged_data, context=context)
|
||||
self.write(cr, uid, [highest.id], merged_data, context=context)
|
||||
# Delete tail opportunities
|
||||
self.unlink(cr, uid, [x.id for x in tail_opportunities], context=context)
|
||||
|
||||
# Open first opportunity
|
||||
self.case_open(cr, uid, [first_opportunity.id])
|
||||
return first_opportunity.id
|
||||
return highest.id
|
||||
|
||||
def _convert_opportunity_data(self, cr, uid, lead, customer, section_id=False, context=None):
|
||||
crm_stage = self.pool.get('crm.case.stage')
|
||||
@@ -716,7 +701,7 @@ class crm_lead(base_stage, format_address, osv.osv):
|
||||
|
||||
def _lead_create_contact(self, cr, uid, lead, name, is_company, parent_id=False, context=None):
|
||||
partner = self.pool.get('res.partner')
|
||||
vals = { 'name': name,
|
||||
vals = {'name': name,
|
||||
'user_id': lead.user_id.id,
|
||||
'comment': lead.description,
|
||||
'section_id': lead.section_id.id or False,
|
||||
@@ -736,11 +721,11 @@ class crm_lead(base_stage, format_address, osv.osv):
|
||||
'is_company': is_company,
|
||||
'type': 'contact'
|
||||
}
|
||||
partner = partner.create(cr, uid,vals, context)
|
||||
partner = partner.create(cr, uid, vals, context=context)
|
||||
return partner
|
||||
|
||||
def _create_lead_partner(self, cr, uid, lead, context=None):
|
||||
partner_id = False
|
||||
partner_id = False
|
||||
if lead.partner_name and lead.contact_name:
|
||||
partner_id = self._lead_create_contact(cr, uid, lead, lead.partner_name, True, context=context)
|
||||
partner_id = self._lead_create_contact(cr, uid, lead, lead.contact_name, False, partner_id, context=context)
|
||||
@@ -748,8 +733,14 @@ class crm_lead(base_stage, format_address, osv.osv):
|
||||
partner_id = self._lead_create_contact(cr, uid, lead, lead.partner_name, True, context=context)
|
||||
elif not lead.partner_name and lead.contact_name:
|
||||
partner_id = self._lead_create_contact(cr, uid, lead, lead.contact_name, False, context=context)
|
||||
elif lead.email_from and self.pool.get('res.partner')._parse_partner_name(lead.email_from, context=context)[0]:
|
||||
contact_name = self.pool.get('res.partner')._parse_partner_name(lead.email_from, context=context)[0]
|
||||
partner_id = self._lead_create_contact(cr, uid, lead, contact_name, False, context=context)
|
||||
else:
|
||||
partner_id = self._lead_create_contact(cr, uid, lead, lead.name, False, context=context)
|
||||
raise osv.except_osv(
|
||||
_('Warning!'),
|
||||
_('No customer name defined. Please fill one of the following fields: Company Name, Contact Name or Email ("Name <email@address>")')
|
||||
)
|
||||
return partner_id
|
||||
|
||||
def _lead_set_partner(self, cr, uid, lead, partner_id, context=None):
|
||||
@@ -763,7 +754,7 @@ class crm_lead(base_stage, format_address, osv.osv):
|
||||
res = False
|
||||
res_partner = self.pool.get('res.partner')
|
||||
if partner_id:
|
||||
res_partner.write(cr, uid, partner_id, {'section_id': lead.section_id.id or False})
|
||||
res_partner.write(cr, uid, partner_id, {'section_id': lead.section_id and lead.section_id.id or False})
|
||||
contact_id = res_partner.address_get(cr, uid, [partner_id])['default']
|
||||
res = lead.write({'partner_id': partner_id}, context=context)
|
||||
message = _("<b>Partner</b> set to <em>%s</em>." % (lead.partner_id.name))
|
||||
@@ -872,8 +863,8 @@ class crm_lead(base_stage, format_address, osv.osv):
|
||||
'res_id': int(opportunity_id),
|
||||
'view_id': False,
|
||||
'views': [(form_view or False, 'form'),
|
||||
(tree_view or False, 'tree'),
|
||||
(False, 'calendar'), (False, 'graph')],
|
||||
(tree_view or False, 'tree'),
|
||||
(False, 'calendar'), (False, 'graph')],
|
||||
'type': 'ir.actions.act_window',
|
||||
}
|
||||
|
||||
@@ -980,8 +971,11 @@ class crm_lead(base_stage, format_address, osv.osv):
|
||||
'description': desc,
|
||||
'email_from': msg.get('from'),
|
||||
'email_cc': msg.get('cc'),
|
||||
'partner_id': msg.get('author_id', False),
|
||||
'user_id': False,
|
||||
}
|
||||
if msg.get('author_id'):
|
||||
defaults.update(self.on_change_partner(cr, uid, None, msg.get('author_id'), context=context)['value'])
|
||||
if msg.get('priority') in dict(crm.AVAILABLE_PRIORITIES):
|
||||
defaults['priority'] = msg.get('priority')
|
||||
defaults.update(custom_values)
|
||||
|
||||
@@ -171,11 +171,13 @@
|
||||
<record id="mt_lead_stage" model="mail.message.subtype">
|
||||
<field name="name">Stage Changed</field>
|
||||
<field name="res_model">crm.lead</field>
|
||||
<field name="default" eval="False"/>
|
||||
<field name="description">Stage changed</field>
|
||||
</record>
|
||||
<record id="mt_lead_won" model="mail.message.subtype">
|
||||
<field name="name">Opportunity Won</field>
|
||||
<field name="res_model">crm.lead</field>
|
||||
<field name="default" eval="False"/>
|
||||
<field name="description">Opportunity won</field>
|
||||
</record>
|
||||
<record id="mt_lead_lost" model="mail.message.subtype">
|
||||
|
||||
@@ -168,7 +168,7 @@
|
||||
</group>
|
||||
</group>
|
||||
<notebook colspan="4">
|
||||
<page string="Notes">
|
||||
<page string="Internal Notes">
|
||||
<field name="description"/>
|
||||
</page>
|
||||
<page string="Extra Info">
|
||||
@@ -219,12 +219,14 @@
|
||||
<field name="date_deadline" invisible="1"/>
|
||||
<field name="create_date" groups="base.group_no_one"/>
|
||||
<field name="name"/>
|
||||
<field name="type"/>
|
||||
<field name="contact_name"/>
|
||||
<field name="country_id" invisible="context.get('invisible_country', True)"/>
|
||||
<field name="email_from"/>
|
||||
<field name="phone"/>
|
||||
<field name="stage_id"/>
|
||||
<field name="user_id" invisible="1"/>
|
||||
<field name="partner_id" invisible="1"/>
|
||||
<field name="section_id" invisible="context.get('invisible_section', True)"/>
|
||||
<field name="state" invisible="1"/>
|
||||
<field name="type_id" invisible="1"/>
|
||||
@@ -235,6 +237,7 @@
|
||||
</field>
|
||||
</record>
|
||||
|
||||
|
||||
<!-- CRM Lead Calendar View -->
|
||||
<record model="ir.ui.view" id="crm_case_calendar_view_leads">
|
||||
<field name="name">CRM - Leads Calendar</field>
|
||||
@@ -322,35 +325,39 @@
|
||||
<search string="Search Leads">
|
||||
<field name="name" string="Lead / Customer" filter_domain="['|','|',('partner_name','ilike',self),('email_from','ilike',self),('name','ilike',self)]"/>
|
||||
<field name="categ_ids" string="Category" filter_domain="[('categ_ids','ilike',self)]"/>
|
||||
<field name="create_date"/>
|
||||
<filter icon="terp-mail-message-new" string="Unread Messages" help="Unread messages" name="message_unread" domain="[('message_unread','=',True)]"/>
|
||||
<separator/>
|
||||
<filter icon="terp-check" string="New" name="new" help="New Leads" domain="[('state','=','draft')]"/>
|
||||
<filter icon="terp-camera_test" string="In Progress" name="open" domain="[('state','=','open')]"/>
|
||||
<separator/>
|
||||
<filter string="Unassigned Leads" icon="terp-personal-" domain="[('user_id','=', False)]" help="Unassigned Leads"/>
|
||||
<separator/>
|
||||
<filter string="Leads Assigned to Me or My Team(s)" icon="terp-personal+" context="{'invisible_section': False}"
|
||||
domain="['|', ('section_id.user_id','=',uid), ('section_id.member_ids', 'in', [uid])]"
|
||||
help="Leads that are assigned to one of the sale teams I manage, or to me"/>
|
||||
<field name="section_id" context="{'invisible_section': False, 'default_section_id': self}"/>
|
||||
<field name="user_id"/>
|
||||
<field name="section_id" context="{'invisible_section': False}"/>
|
||||
<field name="create_date"/>
|
||||
<field name="country_id" context="{'invisible_country': False}"/>
|
||||
<separator/>
|
||||
<filter string="Open" name="open" domain="[('state','!=','cancel')]" help="Open Leads"/>
|
||||
<filter string="Dead" name="dead" domain="[('state','=','cancel')]"/>
|
||||
<filter string="Unassigned" domain="[('user_id','=', False)]" help="No salesperson"/>
|
||||
<filter string="Unread Messages" name="message_unread" domain="[('message_unread','=',True)]" help="Unread messages"/>
|
||||
<filter string="Assigned to Me"
|
||||
domain="[('user_id','=',uid)]" context="{'invisible_section': False}"
|
||||
help="Leads that are assigned to me"/>
|
||||
<filter string="Assigned to My Team(s)"
|
||||
domain="[('section_id.member_ids', 'in', [uid])]" context="{'invisible_section': False}"
|
||||
help="Leads that are assigned to any sales teams I am member of"/>
|
||||
<separator/>
|
||||
<group expand="0" string="Group By...">
|
||||
<filter string="Salesperson" icon="terp-personal" domain="[]" context="{'group_by':'user_id'}"/>
|
||||
<filter string="Team" icon="terp-personal+" domain="[]" context="{'group_by':'section_id'}"/>
|
||||
<filter string="Referrer" icon="terp-personal" domain="[]" context="{'group_by':'referred'}"/>
|
||||
<filter string="Campaign" icon="terp-gtk-jump-to-rtl" domain="[]" context="{'group_by':'type_id'}"/>
|
||||
<filter string="Channel" icon="terp-call-start" domain="[]" context="{'group_by':'channel_id'}"/>
|
||||
<separator orientation="vertical"/>
|
||||
<filter string="Stage" icon="terp-stage" domain="[]" context="{'group_by':'stage_id'}"/>
|
||||
<filter string="Creation" help="Create date" icon="terp-go-month" domain="[]" context="{'group_by':'create_date'}" groups="base.group_no_one"/>
|
||||
<filter string="Salesperson" domain="[]" context="{'group_by':'user_id'}"/>
|
||||
<filter string="Team" domain="[]" context="{'group_by':'section_id'}"/>
|
||||
<filter string="Stage" domain="[]" context="{'group_by':'stage_id'}"/>
|
||||
<filter string="Customer" help="Partner" domain="[]" context="{'group_by':'partner_id'}"/>
|
||||
<filter string="Country" domain="[]" context="{'group_by':'country_id'}"/>
|
||||
<filter string="Stage" domain="[]" context="{'group_by':'stage_id'}"/>
|
||||
<filter string="Referrer" domain="[]" context="{'group_by':'referred'}"/>
|
||||
<filter string="Campaign" domain="[]" context="{'group_by':'type_id'}"/>
|
||||
<filter string="Channel" domain="[]" context="{'group_by':'channel_id'}"/>
|
||||
<filter string="Creation" domain="[]" context="{'group_by':'create_date'}" groups="base.group_no_one"/>
|
||||
</group>
|
||||
<group string="Display">
|
||||
<filter string="Show Countries" icon="terp-personal+" context="{'invisible_country': False}" help="Show Countries"/>
|
||||
<filter string="Show Sales Team" icon="terp-personal+" context="{'invisible_section': False}" domain="[]" help="Show Sales Team"/>
|
||||
<filter string="Show Countries" context="{'invisible_country': False}" help="Show Countries"/>
|
||||
<filter string="Show Sales Team" context="{'invisible_section': False}" domain="[]" help="Show Sales Team"/>
|
||||
</group>
|
||||
</search>
|
||||
</search>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
@@ -517,6 +524,7 @@
|
||||
<field name="probability" avg="Avg. of Probability"/>
|
||||
<field name="section_id" invisible="context.get('invisible_section', True)"/>
|
||||
<field name="user_id"/>
|
||||
<field name="referred" invisible="1"/>
|
||||
<field name="priority" invisible="1"/>
|
||||
<field name="state" groups="base.group_no_one"/>
|
||||
<field name="message_unread" invisible="1"/>
|
||||
@@ -531,35 +539,41 @@
|
||||
<field name="model">crm.lead</field>
|
||||
<field name="arch" type="xml">
|
||||
<search string="Search Opportunities">
|
||||
<field name="name" string="Opportunity"
|
||||
filter_domain="['|','|','|',('partner_id','ilike',self),('partner_name','ilike',self),('email_from','ilike',self),('name', 'ilike', self)]"/>
|
||||
<field name="name" string="Opportunity" filter_domain="['|','|','|',('partner_id','ilike',self),('partner_name','ilike',self),('email_from','ilike',self),('name', 'ilike', self)]"/>
|
||||
<field name="categ_ids" string="Category" filter_domain="[('categ_ids','ilike', self)]"/>
|
||||
<filter icon="terp-mail-message-new" string="Unread Messages" help="Unread messages" name="message_unread" domain="[('message_unread','=',True)]"/>
|
||||
<separator/>
|
||||
<filter icon="terp-check" string="New" help="New Opportunities" name="new" domain="[('state','=','draft')]"/>
|
||||
<filter icon="terp-camera_test" string="In Progress" help="Open Opportunities" name="open" domain="[('state','=','open')]"/>
|
||||
<separator/>
|
||||
<filter string="Unassigned Opportunities" icon="terp-personal-" domain="[('user_id','=', False)]" help="Unassigned Opportunities"/>
|
||||
<separator/>
|
||||
<filter string="Opportunities Assigned to Me or My Team(s)" icon="terp-personal+"
|
||||
domain="['|', ('section_id.user_id','=',uid), ('section_id.member_ids', 'in', [uid])]" context="{'invisible_section': False}"
|
||||
help="Opportunities that are assigned to either me or one of the sale teams I manage"/>
|
||||
<field name="user_id"/>
|
||||
<field name="section_id" context="{'invisible_section': False, 'default_section_id': self}"/>
|
||||
<field name="user_id"/>
|
||||
<field name="partner_id"/>
|
||||
<separator/>
|
||||
<filter string="New" name="new" domain="[('state','=','draft')]" help="New Opportunities"/>
|
||||
<filter string="In Progress" name="open" domain="[('state','=','open')]" help="Open Opportunities"/>
|
||||
<filter string="Won" name="won" domain="[('state','=','done')]"/>
|
||||
<filter string="Lost" name="lost" domain="[('state','=','cancel')]"/>
|
||||
<filter string="Unassigned" domain="[('user_id','=', False)]" help="No salesperson"/>
|
||||
<filter string="Unread Messages" name="message_unread" domain="[('message_unread','=',True)]" help="Unread messages"/>
|
||||
<filter string="Assigned to Me"
|
||||
domain="[('user_id','=',uid)]" context="{'invisible_section': False}"
|
||||
help="Opportunities that are assigned to me"/>
|
||||
<filter string="Assigned to My Team(s)"
|
||||
domain="[('section_id.member_ids', 'in', [uid])]" context="{'invisible_section': False}"
|
||||
help="Opportunities that are assigned to any sales teams I am member of"/>
|
||||
<separator/>
|
||||
<group expand="0" string="Group By..." colspan="16">
|
||||
<filter string="Salesperson" icon="terp-personal" domain="[]" context="{'group_by':'user_id'}"/>
|
||||
<filter string="Team" help="Sales Team" icon="terp-personal+" domain="[]" context="{'group_by':'section_id'}"/>
|
||||
<filter string="Customer" help="Partner" icon="terp-personal+" domain="[]" context="{'group_by':'partner_id'}"/>
|
||||
<filter string="Stage" icon="terp-stage" domain="[]" context="{'group_by':'stage_id'}"/>
|
||||
<filter string="Priority" icon="terp-rating-rated" domain="[]" context="{'group_by':'priority'}"/>
|
||||
<filter string="Campaign" icon="terp-gtk-jump-to-rtl" domain="[]" context="{'group_by':'type_id'}"/>
|
||||
<filter string="Channel" icon="terp-call-start" domain="[]" context="{'group_by':'channel_id'}"/>
|
||||
<filter string="Creation" icon="terp-go-month" domain="[]" context="{'group_by':'create_date'}" groups="base.group_no_one"/>
|
||||
<filter string="Exp.Closing" icon="terp-go-month" help="Expected Closing" domain="[]" context="{'group_by':'date_deadline'}"/>
|
||||
<filter string="Salesperson" domain="[]" context="{'group_by':'user_id'}"/>
|
||||
<filter string="Team" domain="[]" context="{'group_by':'section_id'}"/>
|
||||
<filter string="Stage" domain="[]" context="{'group_by':'stage_id'}"/>
|
||||
<filter string="Customer" help="Partner" domain="[]" context="{'group_by':'partner_id'}"/>
|
||||
<filter string="Country" domain="[]" context="{'group_by':'country_id'}"/>
|
||||
<filter string="Priority" domain="[]" context="{'group_by':'priority'}"/>
|
||||
<filter string="Expected Closing" domain="[]" context="{'group_by':'date_deadline'}"/>
|
||||
<filter string="Referrer" domain="[]" context="{'group_by':'referred'}"/>
|
||||
<filter string="Campaign" domain="[]" context="{'group_by':'type_id'}"/>
|
||||
<filter string="Channel" domain="[]" context="{'group_by':'channel_id'}"/>
|
||||
<filter string="Creation" domain="[]" context="{'group_by':'create_date'}" groups="base.group_no_one"/>
|
||||
</group>
|
||||
<group string="Display">
|
||||
<filter string="Show Sales Team" context="{'invisible_section': False}" domain="[]" help="Show Sales Team"/>
|
||||
<filter string="Show Countries" context="{'invisible_country': False}" help="Show Countries"/>
|
||||
</group>
|
||||
</search>
|
||||
</field>
|
||||
|
||||
@@ -68,24 +68,4 @@ class calendar_attendee(osv.osv):
|
||||
relation="crm.case.categ", multi='categ_id'),
|
||||
}
|
||||
|
||||
class res_users(osv.osv):
|
||||
_name = 'res.users'
|
||||
_inherit = 'res.users'
|
||||
|
||||
def create(self, cr, uid, data, context=None):
|
||||
user_id = super(res_users, self).create(cr, uid, data, context=context)
|
||||
|
||||
# add shortcut unless 'noshortcut' is True in context
|
||||
if not(context and context.get('noshortcut', False)):
|
||||
data_obj = self.pool.get('ir.model.data')
|
||||
try:
|
||||
data_id = data_obj._get_id(cr, uid, 'crm', 'ir_ui_view_sc_calendar0')
|
||||
view_id = data_obj.browse(cr, uid, data_id, context=context).res_id
|
||||
self.pool.get('ir.ui.view_sc').copy(cr, uid, view_id, default = {
|
||||
'user_id': user_id}, context=context)
|
||||
except:
|
||||
# Tolerate a missing shortcut. See product/product.py for similar code.
|
||||
_logger.debug('Skipped meetings shortcut for user "%s".', data.get('name','<new'))
|
||||
return user_id
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
||||
@@ -4,31 +4,37 @@
|
||||
!record {model: crm.lead, id: test_crm_lead_01}:
|
||||
type: 'lead'
|
||||
name: 'Test lead 1'
|
||||
email_from: 'Raoul Grosbedon <raoul@grosbedon.fr>'
|
||||
stage_id: stage_lead1
|
||||
-
|
||||
!record {model: crm.lead, id: test_crm_lead_02}:
|
||||
type: 'lead'
|
||||
name: 'Test lead 2'
|
||||
email_from: 'Raoul Grosbedon <raoul@grosbedon.fr>'
|
||||
stage_id: stage_lead1
|
||||
-
|
||||
!record {model: crm.lead, id: test_crm_lead_03}:
|
||||
type: 'lead'
|
||||
name: 'Test lead 3'
|
||||
email_from: 'Raoul Grosbedon <raoul@grosbedon.fr>'
|
||||
stage_id: stage_lead1
|
||||
-
|
||||
!record {model: crm.lead, id: test_crm_lead_04}:
|
||||
type: 'lead'
|
||||
name: 'Test lead 4'
|
||||
contact_name: 'Fabrice Lepoilu'
|
||||
stage_id: stage_lead1
|
||||
-
|
||||
!record {model: crm.lead, id: test_crm_lead_05}:
|
||||
type: 'lead'
|
||||
name: 'Test lead 5'
|
||||
contact_name: 'Fabrice Lepoilu'
|
||||
stage_id: stage_lead1
|
||||
-
|
||||
!record {model: crm.lead, id: test_crm_lead_06}:
|
||||
type: 'lead'
|
||||
name: 'Test lead 6'
|
||||
partner_name: 'Agrolait SuperSeed SA'
|
||||
stage_id: stage_lead1
|
||||
-
|
||||
!record {model: res.users, id: test_res_user_01}:
|
||||
|
||||
@@ -41,7 +41,7 @@
|
||||
assert merge_id, 'Fail to create merge opportunity wizard'
|
||||
merge_result = self.browse(cr, uid, merge_id)[0]
|
||||
assert merge_result.partner_id.id == ref("base.res_partner_1"), 'Partner mismatch: when merging leads/opps with different m2o values, the first not null value prevails (the other are dropped)'
|
||||
assert merge_result.description == 'This is the description of the test lead 1., This is the description of the test lead 2., This is the description of the test opp 1.', 'Description mismatch: when merging leads/opps with different text values, these values should get concatenated and separeted with ", "'
|
||||
assert merge_result.description == 'This is the description of the test lead 1.\n\nThis is the description of the test lead 2.\n\nThis is the description of the test opp 1.', 'Description mismatch: when merging leads/opps with different text values, these values should get concatenated and separated with line returns'
|
||||
assert merge_result.type == 'opportunity', 'Type mismatch: when at least one opp in involved in the merge, the result should be a new opp (instead of %s)' % merge_result.type
|
||||
-
|
||||
The other (tailing) leads/opps shouldn't exist anymore.
|
||||
|
||||
@@ -34,7 +34,7 @@ class crm_lead2opportunity_partner(osv.osv_memory):
|
||||
('convert', 'Convert to opportunity'),
|
||||
('merge', 'Merge with existing opportunities')
|
||||
], 'Conversion Action', required=True),
|
||||
'opportunity_ids': fields.many2many('crm.lead', string='Opportunities', domain=[('type', '=', 'opportunity')]),
|
||||
'opportunity_ids': fields.many2many('crm.lead', string='Opportunities'),
|
||||
}
|
||||
|
||||
def default_get(self, cr, uid, fields, context=None):
|
||||
@@ -46,42 +46,34 @@ class crm_lead2opportunity_partner(osv.osv_memory):
|
||||
lead_obj = self.pool.get('crm.lead')
|
||||
|
||||
res = super(crm_lead2opportunity_partner, self).default_get(cr, uid, fields, context=context)
|
||||
opportunities = res.get('opportunity_ids') or []
|
||||
partner_id = False
|
||||
email = False
|
||||
for lead in lead_obj.browse(cr, uid, opportunities, context=context):
|
||||
partner_id = lead.partner_id and lead.partner_id.id or False
|
||||
if context.get('active_id'):
|
||||
tomerge = set([int(context['active_id'])])
|
||||
|
||||
email = False
|
||||
partner_id = res.get('partner_id')
|
||||
lead = lead_obj.browse(cr, uid, int(context['active_id']), context=context)
|
||||
|
||||
#TOFIX: use mail.mail_message.to_mail
|
||||
email = re.findall(r'([^ ,<@]+@[^> ,]+)', lead.email_from or '')
|
||||
email = map(lambda x: "'" + x + "'", email)
|
||||
|
||||
if not partner_id and res.get('partner_id'):
|
||||
partner_id = res.get('partner_id')
|
||||
|
||||
ids = []
|
||||
if partner_id:
|
||||
# Search for opportunities that have the same partner and that arent done or cancelled
|
||||
ids = lead_obj.search(cr, uid, [('partner_id', '=', partner_id), ('type', '=', 'opportunity'), '!', ('state', 'in', ['done', 'cancel'])])
|
||||
if ids:
|
||||
opportunities.append(ids[0])
|
||||
if not partner_id:
|
||||
if partner_id:
|
||||
# Search for opportunities that have the same partner and that arent done or cancelled
|
||||
ids = lead_obj.search(cr, uid, [('partner_id', '=', partner_id)])
|
||||
for id in ids:
|
||||
tomerge.add(id)
|
||||
if email:
|
||||
# Find email of existing opportunity matching the email_from of the lead
|
||||
cr.execute("""select id from crm_lead where type='opportunity' and
|
||||
substring(email_from from '([^ ,<@]+@[^> ,]+)') in (%s)""" % (','.join(email)))
|
||||
ids = map(lambda x:x[0], cr.fetchall())
|
||||
if ids:
|
||||
opportunities.append(ids[0])
|
||||
ids = lead_obj.search(cr, uid, [('email_from', 'ilike', email[0])])
|
||||
for id in ids:
|
||||
tomerge.add(id)
|
||||
|
||||
if 'action' in fields:
|
||||
res.update({'action' : partner_id and 'exist' or 'create'})
|
||||
if 'partner_id' in fields:
|
||||
res.update({'partner_id' : partner_id})
|
||||
if 'name' in fields:
|
||||
res.update({'name' : ids and 'merge' or 'convert'})
|
||||
if 'opportunity_ids' in fields:
|
||||
res.update({'opportunity_ids': opportunities})
|
||||
if 'action' in fields:
|
||||
res.update({'action' : partner_id and 'exist' or 'create'})
|
||||
if 'partner_id' in fields:
|
||||
res.update({'partner_id' : partner_id})
|
||||
if 'name' in fields:
|
||||
res.update({'name' : len(tomerge) >= 2 and 'merge' or 'convert'})
|
||||
if 'opportunity_ids' in fields and len(tomerge) >= 2:
|
||||
res.update({'opportunity_ids': list(tomerge)})
|
||||
|
||||
return res
|
||||
|
||||
@@ -115,38 +107,44 @@ class crm_lead2opportunity_partner(osv.osv_memory):
|
||||
lead.allocate_salesman(cr, uid, lead_ids, user_ids, team_id=team_id, context=context)
|
||||
return res
|
||||
|
||||
def _merge_opportunity(self, cr, uid, ids, opportunity_ids, action='merge', context=None):
|
||||
if context is None:
|
||||
context = {}
|
||||
res = False
|
||||
# Expected: all newly-converted leads (active_ids) will be merged with the opportunity(ies)
|
||||
# that have been selected in the 'opportunity_ids' m2m, with all these records
|
||||
# merged into the first opportunity (and the rest deleted)
|
||||
opportunity_ids = [o.id for o in opportunity_ids]
|
||||
lead_ids = context.get('active_ids', [])
|
||||
if action == 'merge' and lead_ids and opportunity_ids:
|
||||
# Add the leads in the to-merge list, next to other opps
|
||||
# (the fact that they're passed in context['lead_ids'] means that
|
||||
# they cannot be selected to contain the result of the merge.
|
||||
opportunity_ids.extend(lead_ids)
|
||||
context.update({'lead_ids': lead_ids, "convert" : True})
|
||||
res = self.pool.get('crm.lead').merge_opportunity(cr, uid, opportunity_ids, context=context)
|
||||
return res
|
||||
|
||||
def action_apply(self, cr, uid, ids, context=None):
|
||||
"""
|
||||
Convert lead to opportunity or merge lead and opportunity and open
|
||||
the freshly created opportunity view.
|
||||
"""
|
||||
if context is None:
|
||||
context = {}
|
||||
|
||||
w = self.browse(cr, uid, ids, context=context)[0]
|
||||
opp_ids = [o.id for o in w.opportunity_ids]
|
||||
if w.name == 'merge':
|
||||
lead_id = self.pool.get('crm.lead').merge_opportunity(cr, uid, opp_ids, context=context)
|
||||
lead_ids = [lead_id]
|
||||
lead = self.pool.get('crm.lead').read(cr, uid, lead_id, ['type'], context=context)
|
||||
if lead['type'] == "lead":
|
||||
context.update({'active_ids': lead_ids})
|
||||
self._convert_opportunity(cr, uid, ids, {'lead_ids': lead_ids}, context=context)
|
||||
else:
|
||||
lead_ids = context.get('active_ids', [])
|
||||
self._convert_opportunity(cr, uid, ids, {'lead_ids': lead_ids}, context=context)
|
||||
|
||||
return self.pool.get('crm.lead').redirect_opportunity_view(cr, uid, lead_ids[0], context=context)
|
||||
|
||||
def _create_partner(self, cr, uid, ids, context=None):
|
||||
"""
|
||||
Create partner based on action.
|
||||
:return dict: dictionary organized as followed: {lead_id: partner_assigned_id}
|
||||
"""
|
||||
#TODO this method in only called by crm_lead2opportunity_partner
|
||||
#wizard and would probably diserve to be refactored or at least
|
||||
#moved to a better place
|
||||
if context is None:
|
||||
context = {}
|
||||
lead = self.pool.get('crm.lead')
|
||||
lead_ids = context.get('active_ids', [])
|
||||
data = self.browse(cr, uid, ids, context=context)[0]
|
||||
self._convert_opportunity(cr, uid, ids, {'lead_ids': lead_ids}, context=context)
|
||||
self._merge_opportunity(cr, uid, ids, data.opportunity_ids, data.name, context=context)
|
||||
return lead.redirect_opportunity_view(cr, uid, lead_ids[0], context=context)
|
||||
|
||||
partner_id = data.partner_id and data.partner_id.id or False
|
||||
return lead.handle_partner_assignation(cr, uid, lead_ids, data.action, partner_id, context=context)
|
||||
|
||||
class crm_lead2opportunity_mass_convert(osv.osv_memory):
|
||||
_name = 'crm.lead2opportunity.partner.mass'
|
||||
|
||||
@@ -9,11 +9,19 @@
|
||||
<form string="Convert to Opportunity" version="7.0">
|
||||
<group name="name">
|
||||
<field name="name" class="oe_inline"/>
|
||||
<field name="opportunity_ids" attrs="{'invisible': [('name', '!=', 'merge')]}">
|
||||
</group>
|
||||
<group string="Opportunities">
|
||||
<field name="opportunity_ids" attrs="{'invisible': [('name', '!=', 'merge')]}" nolabel="1">
|
||||
<tree>
|
||||
<field name="create_date"/>
|
||||
<field name="name"/>
|
||||
<field name="partner_id"/>
|
||||
<field name="user_id"/>
|
||||
<field name="type"/>
|
||||
<field name="contact_name"/>
|
||||
<field name="country_id" invisible="context.get('invisible_country', True)"/>
|
||||
<field name="email_from"/>
|
||||
<field name="phone"/>
|
||||
<field name="stage_id"/>
|
||||
<field name="user_id" invisible="1"/>
|
||||
<field name="section_id"/>
|
||||
</tree>
|
||||
</field>
|
||||
@@ -51,9 +59,15 @@
|
||||
<group string="Select Opportunities" attrs="{'invisible': [('name', '!=', 'merge')]}">
|
||||
<field name="opportunity_ids" colspan="4" nolabel="1" attrs="{'invisible': [('name', '=', 'convert')]}">
|
||||
<tree>
|
||||
<field name="create_date"/>
|
||||
<field name="name"/>
|
||||
<field name="partner_id"/>
|
||||
<field name="user_id"/>
|
||||
<field name="type"/>
|
||||
<field name="contact_name"/>
|
||||
<field name="country_id" invisible="context.get('invisible_country', True)"/>
|
||||
<field name="email_from"/>
|
||||
<field name="phone"/>
|
||||
<field name="stage_id"/>
|
||||
<field name="user_id" invisible="1"/>
|
||||
<field name="section_id"/>
|
||||
</tree>
|
||||
</field>
|
||||
|
||||
@@ -11,9 +11,14 @@
|
||||
<separator string="Select Leads/Opportunities"/>
|
||||
<field name="opportunity_ids">
|
||||
<tree>
|
||||
<field name="create_date"/>
|
||||
<field name="name"/>
|
||||
<field name="partner_id"/>
|
||||
<field name="user_id"/>
|
||||
<field name="type"/>
|
||||
<field name="contact_name"/>
|
||||
<field name="email_from"/>
|
||||
<field name="phone"/>
|
||||
<field name="stage_id"/>
|
||||
<field name="user_id" invisible="1"/>
|
||||
<field name="section_id"/>
|
||||
</tree>
|
||||
</field>
|
||||
|
||||
@@ -96,20 +96,4 @@ class crm_partner_binding(osv.osv_memory):
|
||||
|
||||
return res
|
||||
|
||||
def _create_partner(self, cr, uid, ids, context=None):
|
||||
"""
|
||||
Create partner based on action.
|
||||
:return dict: dictionary organized as followed: {lead_id: partner_assigned_id}
|
||||
"""
|
||||
#TODO this method in only called by crm_lead2opportunity_partner
|
||||
#wizard and would probably diserve to be refactored or at least
|
||||
#moved to a better place
|
||||
if context is None:
|
||||
context = {}
|
||||
lead = self.pool.get('crm.lead')
|
||||
lead_ids = context.get('active_ids', [])
|
||||
data = self.browse(cr, uid, ids, context=context)[0]
|
||||
partner_id = data.partner_id and data.partner_id.id or False
|
||||
return lead.handle_partner_assignation(cr, uid, lead_ids, data.action, partner_id, context=context)
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
||||
@@ -195,6 +195,7 @@ class crm_claim(base_stage, osv.osv):
|
||||
'description': desc,
|
||||
'email_from': msg.get('from'),
|
||||
'email_cc': msg.get('cc'),
|
||||
'partner_id': msg.get('author_id', False),
|
||||
}
|
||||
if msg.get('priority'):
|
||||
defaults['priority'] = msg.get('priority')
|
||||
|
||||
@@ -106,6 +106,7 @@ class crm_helpdesk(base_state, base_stage, osv.osv):
|
||||
'email_from': msg.get('from'),
|
||||
'email_cc': msg.get('cc'),
|
||||
'user_id': False,
|
||||
'partner_id': msg.get('author_id', False),
|
||||
}
|
||||
defaults.update(custom_values)
|
||||
return super(crm_helpdesk,self).message_new(cr, uid, msg, custom_values=defaults, context=context)
|
||||
|
||||
@@ -57,6 +57,6 @@ Key Features
|
||||
'installable': True,
|
||||
'application': True,
|
||||
'auto_install': False,
|
||||
'images': ['images/1_event_type_list.jpeg','images/2_events.jpeg','images/3_registrations.jpeg'],
|
||||
'images': ['images/1_event_type_list.jpeg','images/2_events.jpeg','images/3_registrations.jpeg','images/events_kanban.jpeg'],
|
||||
}
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
||||
@@ -0,0 +1,185 @@
|
||||
# Mongolian translation for openobject-addons
|
||||
# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
|
||||
# This file is distributed under the same license as the openobject-addons package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2013.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-12-21 17:05+0000\n"
|
||||
"PO-Revision-Date: 2013-02-06 09:39+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Mongolian <mn@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: 2013-02-07 04:53+0000\n"
|
||||
"X-Generator: Launchpad (build 16477)\n"
|
||||
|
||||
#. module: event_moodle
|
||||
#: view:event.moodle.config.wiz:0
|
||||
msgid "Connection with username and password"
|
||||
msgstr ""
|
||||
|
||||
#. module: event_moodle
|
||||
#: model:ir.model,name:event_moodle.model_event_moodle_config_wiz
|
||||
msgid "event.moodle.config.wiz"
|
||||
msgstr ""
|
||||
|
||||
#. module: event_moodle
|
||||
#: help:event.moodle.config.wiz,server_moodle:0
|
||||
msgid ""
|
||||
"URL where you have your moodle server. For exemple: 'http://127.0.0.1' or "
|
||||
"'http://localhost'"
|
||||
msgstr ""
|
||||
|
||||
#. module: event_moodle
|
||||
#: field:event.registration,moodle_user_password:0
|
||||
msgid "Password for Moodle User"
|
||||
msgstr ""
|
||||
|
||||
#. module: event_moodle
|
||||
#: field:event.moodle.config.wiz,moodle_password:0
|
||||
msgid "Moodle Password"
|
||||
msgstr ""
|
||||
|
||||
#. module: event_moodle
|
||||
#: code:addons/event_moodle/event_moodle.py:137
|
||||
#, python-format
|
||||
msgid "Your email '%s' is wrong."
|
||||
msgstr ""
|
||||
|
||||
#. module: event_moodle
|
||||
#: view:event.moodle.config.wiz:0
|
||||
msgid "Connection with a Token"
|
||||
msgstr ""
|
||||
|
||||
#. module: event_moodle
|
||||
#: view:event.moodle.config.wiz:0
|
||||
msgid ""
|
||||
"The easiest way to connect OpenERP with a moodle server is to create a "
|
||||
"'token' in Moodle. It will be used to authenticate OpenERP as a trustable "
|
||||
"application."
|
||||
msgstr ""
|
||||
|
||||
#. module: event_moodle
|
||||
#: field:event.moodle.config.wiz,url:0
|
||||
msgid "URL to Moodle Server"
|
||||
msgstr ""
|
||||
|
||||
#. module: event_moodle
|
||||
#: help:event.moodle.config.wiz,url:0
|
||||
msgid "The url that will be used for the connection with moodle in xml-rpc"
|
||||
msgstr ""
|
||||
|
||||
#. module: event_moodle
|
||||
#: model:ir.model,name:event_moodle.model_event_registration
|
||||
msgid "Event Registration"
|
||||
msgstr ""
|
||||
|
||||
#. module: event_moodle
|
||||
#: view:event.moodle.config.wiz:0
|
||||
msgid ""
|
||||
"Another approach is to create a user for OpenERP in Moodle. If you do so, "
|
||||
"make sure that this user has appropriate access rights."
|
||||
msgstr ""
|
||||
|
||||
#. module: event_moodle
|
||||
#: field:event.registration,moodle_uid:0
|
||||
msgid "Moodle User ID"
|
||||
msgstr ""
|
||||
|
||||
#. module: event_moodle
|
||||
#: field:event.moodle.config.wiz,server_moodle:0
|
||||
msgid "Moodle Server"
|
||||
msgstr ""
|
||||
|
||||
#. module: event_moodle
|
||||
#: field:event.event,moodle_id:0
|
||||
msgid "Moodle ID"
|
||||
msgstr ""
|
||||
|
||||
#. module: event_moodle
|
||||
#: view:event.moodle.config.wiz:0
|
||||
msgid "Server"
|
||||
msgstr "Сервер"
|
||||
|
||||
#. module: event_moodle
|
||||
#: code:addons/event_moodle/event_moodle.py:57
|
||||
#: code:addons/event_moodle/event_moodle.py:105
|
||||
#: code:addons/event_moodle/event_moodle.py:137
|
||||
#, python-format
|
||||
msgid "Error!"
|
||||
msgstr "Алдаа гарлаа!"
|
||||
|
||||
#. module: event_moodle
|
||||
#: code:addons/event_moodle/event_moodle.py:105
|
||||
#, python-format
|
||||
msgid "You must configure your moodle connection."
|
||||
msgstr ""
|
||||
|
||||
#. module: event_moodle
|
||||
#: field:event.moodle.config.wiz,moodle_username:0
|
||||
#: field:event.registration,moodle_username:0
|
||||
msgid "Moodle Username"
|
||||
msgstr ""
|
||||
|
||||
#. module: event_moodle
|
||||
#: view:event.moodle.config.wiz:0
|
||||
#: model:ir.actions.act_window,name:event_moodle.configure_moodle
|
||||
msgid "Configure Moodle"
|
||||
msgstr ""
|
||||
|
||||
#. module: event_moodle
|
||||
#: field:event.moodle.config.wiz,moodle_token:0
|
||||
msgid "Moodle Token"
|
||||
msgstr ""
|
||||
|
||||
#. module: event_moodle
|
||||
#: help:event.moodle.config.wiz,moodle_username:0
|
||||
msgid ""
|
||||
"You can also connect with your username that you define when you create a "
|
||||
"token"
|
||||
msgstr ""
|
||||
|
||||
#. module: event_moodle
|
||||
#: help:event.event,moodle_id:0
|
||||
msgid "The identifier of this event in Moodle"
|
||||
msgstr ""
|
||||
|
||||
#. module: event_moodle
|
||||
#: help:event.moodle.config.wiz,moodle_token:0
|
||||
msgid "Put your token that you created in your moodle server"
|
||||
msgstr ""
|
||||
|
||||
#. module: event_moodle
|
||||
#: model:ir.ui.menu,name:event_moodle.wizard_moodle
|
||||
msgid "Moodle Configuration"
|
||||
msgstr ""
|
||||
|
||||
#. module: event_moodle
|
||||
#: view:event.moodle.config.wiz:0
|
||||
msgid "or"
|
||||
msgstr "эсвэл"
|
||||
|
||||
#. module: event_moodle
|
||||
#: code:addons/event_moodle/event_moodle.py:57
|
||||
#, python-format
|
||||
msgid "First configure your moodle connection."
|
||||
msgstr ""
|
||||
|
||||
#. module: event_moodle
|
||||
#: view:event.moodle.config.wiz:0
|
||||
msgid "Apply"
|
||||
msgstr "Ашиглах"
|
||||
|
||||
#. module: event_moodle
|
||||
#: view:event.moodle.config.wiz:0
|
||||
msgid "Cancel"
|
||||
msgstr "Цуцлах"
|
||||
|
||||
#. module: event_moodle
|
||||
#: model:ir.model,name:event_moodle.model_event_event
|
||||
msgid "Event"
|
||||
msgstr ""
|
||||
@@ -0,0 +1,90 @@
|
||||
# Mongolian translation for openobject-addons
|
||||
# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
|
||||
# This file is distributed under the same license as the openobject-addons package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2013.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-12-21 17:05+0000\n"
|
||||
"PO-Revision-Date: 2013-02-06 07:34+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Mongolian <mn@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: 2013-02-07 04:53+0000\n"
|
||||
"X-Generator: Launchpad (build 16477)\n"
|
||||
|
||||
#. module: event_sale
|
||||
#: model:ir.model,name:event_sale.model_product_product
|
||||
msgid "Product"
|
||||
msgstr ""
|
||||
|
||||
#. module: event_sale
|
||||
#: help:product.product,event_ok:0
|
||||
msgid ""
|
||||
"Determine if a product needs to create automatically an event registration "
|
||||
"at the confirmation of a sales order line."
|
||||
msgstr ""
|
||||
|
||||
#. module: event_sale
|
||||
#: help:sale.order.line,event_id:0
|
||||
msgid ""
|
||||
"Choose an event and it will automatically create a registration for this "
|
||||
"event."
|
||||
msgstr ""
|
||||
|
||||
#. module: event_sale
|
||||
#: model:event.event,name:event_sale.event_technical_training
|
||||
msgid "Technical training in Grand-Rosiere"
|
||||
msgstr ""
|
||||
|
||||
#. module: event_sale
|
||||
#: help:product.product,event_type_id:0
|
||||
msgid ""
|
||||
"Select event types so when we use this product in sales order lines, it will "
|
||||
"filter events of this type only."
|
||||
msgstr ""
|
||||
|
||||
#. module: event_sale
|
||||
#: field:product.product,event_type_id:0
|
||||
msgid "Type of Event"
|
||||
msgstr ""
|
||||
|
||||
#. module: event_sale
|
||||
#: field:sale.order.line,event_ok:0
|
||||
msgid "event_ok"
|
||||
msgstr ""
|
||||
|
||||
#. module: event_sale
|
||||
#: field:product.product,event_ok:0
|
||||
msgid "Event Subscription"
|
||||
msgstr ""
|
||||
|
||||
#. module: event_sale
|
||||
#: field:sale.order.line,event_type_id:0
|
||||
msgid "Event Type"
|
||||
msgstr ""
|
||||
|
||||
#. module: event_sale
|
||||
#: model:product.template,name:event_sale.event_product_product_template
|
||||
msgid "Technical Training"
|
||||
msgstr ""
|
||||
|
||||
#. module: event_sale
|
||||
#: code:addons/event_sale/event_sale.py:88
|
||||
#, python-format
|
||||
msgid "The registration %s has been created from the Sales Order %s."
|
||||
msgstr ""
|
||||
|
||||
#. module: event_sale
|
||||
#: field:sale.order.line,event_id:0
|
||||
msgid "Event"
|
||||
msgstr ""
|
||||
|
||||
#. module: event_sale
|
||||
#: model:ir.model,name:event_sale.model_sale_order_line
|
||||
msgid "Sales Order Line"
|
||||
msgstr ""
|
||||
@@ -54,6 +54,7 @@ Main Features
|
||||
'fleet_data.xml',
|
||||
'fleet_board_view.xml',
|
||||
],
|
||||
'images': ['images/costs_analysis.jpeg','images/indicative_costs_analysis.jpeg','images/vehicles.jpeg','images/vehicles_contracts.jpeg','images/vehicles_fuel.jpeg','images/vehicles_odometer.jpeg','images/vehicles_services.jpeg'],
|
||||
'update_xml' : ['security/fleet_security.xml','security/ir.model.access.csv'],
|
||||
|
||||
'demo': ['fleet_demo.xml'],
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -29,13 +29,40 @@ _logger = logging.getLogger(__name__)
|
||||
try:
|
||||
import gdata.docs.data
|
||||
import gdata.docs.client
|
||||
from gdata.client import RequestError
|
||||
from gdata.docs.service import DOCUMENT_LABEL
|
||||
import gdata.auth
|
||||
from gdata.docs.data import Resource
|
||||
|
||||
# API breakage madness in the gdata API - those guys are insane.
|
||||
try:
|
||||
# gdata 2.0.15+
|
||||
gdata.docs.client.DocsClient.copy_resource
|
||||
except AttributeError:
|
||||
# gdata 2.0.14- : copy_resource() was copy()
|
||||
gdata.docs.client.DocsClient.copy_resource = gdata.docs.client.DocsClient.copy
|
||||
|
||||
try:
|
||||
# gdata 2.0.16+
|
||||
gdata.docs.client.DocsClient.get_resource_by_id
|
||||
except AttributeError:
|
||||
try:
|
||||
# gdata 2.0.15+
|
||||
gdata.docs.client.DocsClient.get_resource_by_self_link
|
||||
def get_resource_by_id_2_0_16(self, resource_id, **kwargs):
|
||||
return self.GetResourceBySelfLink(
|
||||
gdata.docs.client.RESOURCE_FEED_URI + ('/%s' % resource_id), **kwargs)
|
||||
gdata.docs.client.DocsClient.get_resource_by_id = get_resource_by_id_2_0_16
|
||||
except AttributeError:
|
||||
# gdata 2.0.14- : alias get_resource_by_id()
|
||||
gdata.docs.client.DocsClient.get_resource_by_id = gdata.docs.client.DocsClient.get_doc
|
||||
|
||||
try:
|
||||
import atom.http_interface
|
||||
_logger.info('GData lib version `%s` detected' % atom.http_interface.USER_AGENT)
|
||||
except (ImportError, AttributeError):
|
||||
_logger.debug('GData lib version could not be detected', exc_info=True)
|
||||
|
||||
except ImportError:
|
||||
_logger.warning("Please install latest gdata-python-client from http://code.google.com/p/gdata-python-client/downloads/list")
|
||||
|
||||
|
||||
class google_docs_ir_attachment(osv.osv):
|
||||
_inherit = 'ir.attachment'
|
||||
|
||||
@@ -49,11 +76,12 @@ class google_docs_ir_attachment(osv.osv):
|
||||
#get gmail password and login. We use default_get() instead of a create() followed by a read() on the
|
||||
# google.login object, because it is easier. The keys 'user' and 'password' ahve to be passed in the dict
|
||||
# but the values will be replaced by the user gmail password and login.
|
||||
user_config = google_pool.default_get( cr, uid, {'user' : '' , 'password' : ''}, context=context)
|
||||
user_config = google_pool.default_get(cr, uid, {'user' : '' , 'password' : ''}, context=context)
|
||||
#login gmail account
|
||||
client = google_pool.google_login( user_config['user'], user_config['password'], type='docs_client', context=context)
|
||||
client = google_pool.google_login(user_config['user'], user_config['password'], type='docs_client', context=context)
|
||||
if not client:
|
||||
raise osv.except_osv( _('Google Docs Error!'), _("Check your google configuration in Users/Users/Synchronization tab."))
|
||||
raise osv.except_osv(_('Google Docs Error!'), _("Check your google configuration in Users/Users/Synchronization tab."))
|
||||
_logger.info('Logged into google docs as %s', user_config['user'])
|
||||
return client
|
||||
|
||||
def create_empty_google_doc(self, cr, uid, res_model, res_id, context=None):
|
||||
@@ -94,9 +122,9 @@ class google_docs_ir_attachment(osv.osv):
|
||||
client = self._auth(cr, uid)
|
||||
# fetch and copy the original document
|
||||
try:
|
||||
doc = client.GetDoc(gdoc_template_id)
|
||||
doc = client.get_resource_by_id(gdoc_template_id)
|
||||
#copy the document you choose in the configuration
|
||||
copy_resource = client.copy(doc, name_gdocs)
|
||||
copy_resource = client.copy_resource(doc, name_gdocs)
|
||||
except:
|
||||
raise osv.except_osv(_('Google Docs Error!'), _("Your resource id is not correct. You can find the id in the google docs URL."))
|
||||
# create an ir.attachment
|
||||
|
||||
+133
-98
@@ -4,17 +4,17 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 6.0dev\n"
|
||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-12-21 17:04+0000\n"
|
||||
"PO-Revision-Date: 2012-05-10 18:31+0000\n"
|
||||
"Last-Translator: Raphael Collet (OpenERP) <Unknown>\n"
|
||||
"Language-Team: \n"
|
||||
"PO-Revision-Date: 2013-02-06 17:13+0000\n"
|
||||
"Last-Translator: Ediz Duman <neps1192@gmail.com>\n"
|
||||
"Language-Team: Turkish <tr@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-12-22 05:48+0000\n"
|
||||
"X-Generator: Launchpad (build 16378)\n"
|
||||
"X-Launchpad-Export-Date: 2013-02-07 04:53+0000\n"
|
||||
"X-Generator: Launchpad (build 16477)\n"
|
||||
|
||||
#. module: hr
|
||||
#: model:process.node,name:hr.process_node_openerpuser0
|
||||
@@ -24,7 +24,7 @@ msgstr "Openerp kullanıcısı"
|
||||
#. module: hr
|
||||
#: field:hr.config.settings,module_hr_timesheet_sheet:0
|
||||
msgid "Allow timesheets validation by managers"
|
||||
msgstr ""
|
||||
msgstr "Yöneticiler tarafından zamanÇizelgelerini onaylama İzin"
|
||||
|
||||
#. module: hr
|
||||
#: field:hr.job,requirements:0
|
||||
@@ -34,7 +34,7 @@ msgstr "Gereksinimler"
|
||||
#. module: hr
|
||||
#: model:process.transition,name:hr.process_transition_contactofemployee0
|
||||
msgid "Link the employee to information"
|
||||
msgstr "Çalışanı danışmaya bağla"
|
||||
msgstr "Bilgi için personel bağlantısı"
|
||||
|
||||
#. module: hr
|
||||
#: field:hr.employee,sinid:0
|
||||
@@ -49,7 +49,7 @@ msgstr "SIN No"
|
||||
#: model:ir.ui.menu,name:hr.menu_hr_root
|
||||
#: model:ir.ui.menu,name:hr.menu_human_resources_configuration
|
||||
msgid "Human Resources"
|
||||
msgstr "İnsan Kaynakları"
|
||||
msgstr "İnsanKaynakları"
|
||||
|
||||
#. module: hr
|
||||
#: help:hr.employee,image_medium:0
|
||||
@@ -62,28 +62,28 @@ msgstr ""
|
||||
#. module: hr
|
||||
#: view:hr.config.settings:0
|
||||
msgid "Time Tracking"
|
||||
msgstr ""
|
||||
msgstr "Zaman Takip"
|
||||
|
||||
#. module: hr
|
||||
#: view:hr.employee:0
|
||||
#: view:hr.job:0
|
||||
msgid "Group By..."
|
||||
msgstr "Gruplandır..."
|
||||
msgstr "Grupla İle..."
|
||||
|
||||
#. module: hr
|
||||
#: model:ir.actions.act_window,name:hr.view_department_form_installer
|
||||
msgid "Create Your Departments"
|
||||
msgstr "Bölümlerinizi Oluşturun"
|
||||
msgstr "Departmenlerini Oluştur"
|
||||
|
||||
#. module: hr
|
||||
#: help:hr.job,no_of_employee:0
|
||||
msgid "Number of employees currently occupying this job position."
|
||||
msgstr ""
|
||||
msgstr "Çalışan sayısı şu anda bu iş pozisyonu işgal."
|
||||
|
||||
#. module: hr
|
||||
#: field:hr.config.settings,module_hr_evaluation:0
|
||||
msgid "Organize employees periodic evaluation"
|
||||
msgstr ""
|
||||
msgstr "Çalışanları periyodik olarak değerlendirilmesi"
|
||||
|
||||
#. module: hr
|
||||
#: view:hr.department:0
|
||||
@@ -93,7 +93,7 @@ msgstr ""
|
||||
#: field:hr.job,department_id:0
|
||||
#: model:ir.model,name:hr.model_hr_department
|
||||
msgid "Department"
|
||||
msgstr "Bölüm"
|
||||
msgstr "Departmen"
|
||||
|
||||
#. module: hr
|
||||
#: field:hr.employee,work_email:0
|
||||
@@ -106,11 +106,13 @@ msgid ""
|
||||
"This field holds the image used as photo for the employee, limited to "
|
||||
"1024x1024px."
|
||||
msgstr ""
|
||||
"Bu alan ile sınırlı çalışan için fotoğraf olarak kullanılan görüntü, "
|
||||
"tutar1024x1024px."
|
||||
|
||||
#. module: hr
|
||||
#: help:hr.config.settings,module_hr_holidays:0
|
||||
msgid "This installs the module hr_holidays."
|
||||
msgstr ""
|
||||
msgstr "Bu modül hr_holidays yükler."
|
||||
|
||||
#. module: hr
|
||||
#: view:hr.job:0
|
||||
@@ -125,7 +127,7 @@ msgstr "Seçme İşleminde"
|
||||
#. module: hr
|
||||
#: field:hr.job,message_unread:0
|
||||
msgid "Unread Messages"
|
||||
msgstr ""
|
||||
msgstr "Okunmamış mesajlar"
|
||||
|
||||
#. module: hr
|
||||
#: field:hr.department,company_id:0
|
||||
@@ -143,43 +145,43 @@ msgstr "Seçim için Bekleniyor"
|
||||
#. module: hr
|
||||
#: field:res.users,employee_ids:0
|
||||
msgid "Related employees"
|
||||
msgstr ""
|
||||
msgstr "İlgili personeller"
|
||||
|
||||
#. module: hr
|
||||
#: constraint:hr.employee.category:0
|
||||
msgid "Error! You cannot create recursive Categories."
|
||||
msgstr ""
|
||||
msgstr "Hata! Sen özyinelemeli Kategoriler oluşturamazsınız."
|
||||
|
||||
#. module: hr
|
||||
#: help:hr.config.settings,module_hr_recruitment:0
|
||||
msgid "This installs the module hr_recruitment."
|
||||
msgstr ""
|
||||
msgstr "Bu modül hr_recruitment yükler."
|
||||
|
||||
#. module: hr
|
||||
#: view:hr.employee:0
|
||||
msgid "Birth"
|
||||
msgstr ""
|
||||
msgstr "Doğum"
|
||||
|
||||
#. module: hr
|
||||
#: model:ir.actions.act_window,name:hr.open_view_categ_form
|
||||
#: model:ir.ui.menu,name:hr.menu_view_employee_category_form
|
||||
msgid "Employee Tags"
|
||||
msgstr ""
|
||||
msgstr "Personel Etiketi"
|
||||
|
||||
#. module: hr
|
||||
#: view:hr.job:0
|
||||
msgid "Launch Recruitement"
|
||||
msgstr ""
|
||||
msgstr "İşe Başlatma"
|
||||
|
||||
#. module: hr
|
||||
#: model:process.transition,name:hr.process_transition_employeeuser0
|
||||
msgid "Link a user to an employee"
|
||||
msgstr "Kullanıcıyı bir çalışana bağla"
|
||||
msgstr "Kullanıcıyı bir personele bağla"
|
||||
|
||||
#. module: hr
|
||||
#: field:hr.department,parent_id:0
|
||||
msgid "Parent Department"
|
||||
msgstr "Ana Bölüm"
|
||||
msgstr "Üst Departmen"
|
||||
|
||||
#. module: hr
|
||||
#: model:ir.ui.menu,name:hr.menu_open_view_attendance_reason_config
|
||||
@@ -194,32 +196,32 @@ msgstr "Evli"
|
||||
#. module: hr
|
||||
#: field:hr.job,message_ids:0
|
||||
msgid "Messages"
|
||||
msgstr ""
|
||||
msgstr "Mesajlar"
|
||||
|
||||
#. module: hr
|
||||
#: view:hr.config.settings:0
|
||||
msgid "Talent Management"
|
||||
msgstr ""
|
||||
msgstr "Yetenek Yönetimi"
|
||||
|
||||
#. module: hr
|
||||
#: help:hr.config.settings,module_hr_timesheet_sheet:0
|
||||
msgid "This installs the module hr_timesheet_sheet."
|
||||
msgstr ""
|
||||
msgstr "Bu modül hr_timesheet_sheet yükler"
|
||||
|
||||
#. module: hr
|
||||
#: view:hr.employee:0
|
||||
msgid "Mobile:"
|
||||
msgstr ""
|
||||
msgstr "Mobile:"
|
||||
|
||||
#. module: hr
|
||||
#: view:hr.employee:0
|
||||
msgid "Position"
|
||||
msgstr "Durum"
|
||||
msgstr "Pozisyonu"
|
||||
|
||||
#. module: hr
|
||||
#: help:hr.job,message_unread:0
|
||||
msgid "If checked new messages require your attention."
|
||||
msgstr ""
|
||||
msgstr "Eğer seçilirse yeni mesajlar dikkat gerektirir."
|
||||
|
||||
#. module: hr
|
||||
#: field:hr.employee,color:0
|
||||
@@ -238,7 +240,7 @@ msgstr ""
|
||||
#. module: hr
|
||||
#: field:hr.employee,image_medium:0
|
||||
msgid "Medium-sized photo"
|
||||
msgstr ""
|
||||
msgstr "Orta ölçekli fotoğraf"
|
||||
|
||||
#. module: hr
|
||||
#: field:hr.employee,identification_id:0
|
||||
@@ -274,24 +276,24 @@ msgstr "İş Tanımı"
|
||||
#. module: hr
|
||||
#: field:hr.employee,work_location:0
|
||||
msgid "Office Location"
|
||||
msgstr "Ofis Konumu"
|
||||
msgstr "Ofis Lokasyon"
|
||||
|
||||
#. module: hr
|
||||
#: field:hr.job,message_follower_ids:0
|
||||
msgid "Followers"
|
||||
msgstr ""
|
||||
msgstr "Takipçileri"
|
||||
|
||||
#. module: hr
|
||||
#: view:hr.employee:0
|
||||
#: model:ir.model,name:hr.model_hr_employee
|
||||
#: model:process.node,name:hr.process_node_employee0
|
||||
msgid "Employee"
|
||||
msgstr "Çalışan"
|
||||
msgstr "Personel"
|
||||
|
||||
#. module: hr
|
||||
#: model:process.node,note:hr.process_node_employeecontact0
|
||||
msgid "Other information"
|
||||
msgstr "Diğer Bilgiler"
|
||||
msgstr "Diğer Bilgisi"
|
||||
|
||||
#. module: hr
|
||||
#: help:hr.employee,image_small:0
|
||||
@@ -309,12 +311,12 @@ msgstr "Doğum Tarihi"
|
||||
#. module: hr
|
||||
#: help:hr.job,no_of_recruitment:0
|
||||
msgid "Number of new employees you expect to recruit."
|
||||
msgstr ""
|
||||
msgstr "İşe almak için beklediğiniz yeni personel sayısı."
|
||||
|
||||
#. module: hr
|
||||
#: model:ir.actions.client,name:hr.action_client_hr_menu
|
||||
msgid "Open HR Menu"
|
||||
msgstr ""
|
||||
msgstr "İK Menü Aç"
|
||||
|
||||
#. module: hr
|
||||
#: help:hr.job,message_summary:0
|
||||
@@ -322,6 +324,8 @@ msgid ""
|
||||
"Holds the Chatter summary (number of messages, ...). This summary is "
|
||||
"directly in html format in order to be inserted in kanban views."
|
||||
msgstr ""
|
||||
"Sohbetçi özeti (mesaj sayısı, ...) barındırır. Bu özetdoğrudan html "
|
||||
"formatında sipariş kanban görünümlerinde eklenecek."
|
||||
|
||||
#. module: hr
|
||||
#: help:hr.config.settings,module_account_analytic_analysis:0
|
||||
@@ -329,6 +333,7 @@ msgid ""
|
||||
"This installs the module account_analytic_analysis, which will install sales "
|
||||
"management too."
|
||||
msgstr ""
|
||||
"Bu, modül hesabı analitik analizi yükler,satışa yükleyecekyönetimi çok."
|
||||
|
||||
#. module: hr
|
||||
#: view:board.board:0
|
||||
@@ -345,7 +350,7 @@ msgstr "İş"
|
||||
#. module: hr
|
||||
#: field:hr.job,no_of_employee:0
|
||||
msgid "Current Number of Employees"
|
||||
msgstr ""
|
||||
msgstr "Personel Mevcut Sayısı"
|
||||
|
||||
#. module: hr
|
||||
#: field:hr.department,member_ids:0
|
||||
@@ -365,12 +370,12 @@ msgstr "Çalışan formu ve yapısı"
|
||||
#. module: hr
|
||||
#: field:hr.config.settings,module_hr_expense:0
|
||||
msgid "Manage employees expenses"
|
||||
msgstr ""
|
||||
msgstr "Personel giderlerini yönet"
|
||||
|
||||
#. module: hr
|
||||
#: view:hr.employee:0
|
||||
msgid "Tel:"
|
||||
msgstr ""
|
||||
msgstr "Tel:"
|
||||
|
||||
#. module: hr
|
||||
#: selection:hr.employee,marital:0
|
||||
@@ -380,19 +385,19 @@ msgstr "Boşanmış"
|
||||
#. module: hr
|
||||
#: field:hr.employee.category,parent_id:0
|
||||
msgid "Parent Category"
|
||||
msgstr "Ana Kategori"
|
||||
msgstr "Üst Kategori"
|
||||
|
||||
#. module: hr
|
||||
#: view:hr.department:0
|
||||
#: model:ir.actions.act_window,name:hr.open_module_tree_department
|
||||
#: model:ir.ui.menu,name:hr.menu_hr_department_tree
|
||||
msgid "Departments"
|
||||
msgstr "Bölümler"
|
||||
msgstr "Departmenler"
|
||||
|
||||
#. module: hr
|
||||
#: model:process.node,name:hr.process_node_employeecontact0
|
||||
msgid "Employee Contact"
|
||||
msgstr "Çalışan İletişimi"
|
||||
msgstr "Personel İletişimi"
|
||||
|
||||
#. module: hr
|
||||
#: model:ir.actions.act_window,help:hr.action_hr_job
|
||||
@@ -432,48 +437,48 @@ msgstr ""
|
||||
#. module: hr
|
||||
#: help:hr.config.settings,module_hr_evaluation:0
|
||||
msgid "This installs the module hr_evaluation."
|
||||
msgstr ""
|
||||
msgstr "Bu modül hr_evaluation yükler."
|
||||
|
||||
#. module: hr
|
||||
#: constraint:hr.employee:0
|
||||
msgid "Error! You cannot create recursive hierarchy of Employee(s)."
|
||||
msgstr ""
|
||||
msgstr "Hata! Eğer Çalışan (ler) in yinelemeli hiyerarşi oluşturamaz."
|
||||
|
||||
#. module: hr
|
||||
#: help:hr.config.settings,module_hr_attendance:0
|
||||
msgid "This installs the module hr_attendance."
|
||||
msgstr ""
|
||||
msgstr "Bu modül hr_attendance yükler"
|
||||
|
||||
#. module: hr
|
||||
#: field:hr.employee,image_small:0
|
||||
msgid "Smal-sized photo"
|
||||
msgstr ""
|
||||
msgstr "Küçük boyutlu fotoğraf"
|
||||
|
||||
#. module: hr
|
||||
#: view:hr.employee.category:0
|
||||
#: model:ir.model,name:hr.model_hr_employee_category
|
||||
msgid "Employee Category"
|
||||
msgstr "Çalışan Kategorisi"
|
||||
msgstr "Personel Kategorisi"
|
||||
|
||||
#. module: hr
|
||||
#: field:hr.employee,category_ids:0
|
||||
msgid "Tags"
|
||||
msgstr ""
|
||||
msgstr "Etiketler"
|
||||
|
||||
#. module: hr
|
||||
#: help:hr.config.settings,module_hr_contract:0
|
||||
msgid "This installs the module hr_contract."
|
||||
msgstr ""
|
||||
msgstr "Bu modül hr_contract yükler."
|
||||
|
||||
#. module: hr
|
||||
#: view:hr.employee:0
|
||||
msgid "Related User"
|
||||
msgstr "Bağlı Kullanıcı"
|
||||
msgstr "İlişkili Kullanıcı"
|
||||
|
||||
#. module: hr
|
||||
#: view:hr.config.settings:0
|
||||
msgid "or"
|
||||
msgstr ""
|
||||
msgstr "veya"
|
||||
|
||||
#. module: hr
|
||||
#: field:hr.employee.category,name:0
|
||||
@@ -483,17 +488,17 @@ msgstr "Kategori"
|
||||
#. module: hr
|
||||
#: view:hr.job:0
|
||||
msgid "Stop Recruitment"
|
||||
msgstr ""
|
||||
msgstr "İşe-Alımı Durdur"
|
||||
|
||||
#. module: hr
|
||||
#: field:hr.config.settings,module_hr_attendance:0
|
||||
msgid "Install attendances feature"
|
||||
msgstr ""
|
||||
msgstr "Katılımcı özelliği yükleme"
|
||||
|
||||
#. module: hr
|
||||
#: help:hr.employee,bank_account_id:0
|
||||
msgid "Employee bank salary account"
|
||||
msgstr "Çalışan maaş banka hesabı"
|
||||
msgstr "Personel maaş banka hesabı"
|
||||
|
||||
#. module: hr
|
||||
#: field:hr.department,note:0
|
||||
@@ -503,7 +508,7 @@ msgstr "Not"
|
||||
#. module: hr
|
||||
#: model:ir.actions.act_window,name:hr.open_view_employee_tree
|
||||
msgid "Employees Structure"
|
||||
msgstr "Çalışanların Yapısı"
|
||||
msgstr "Personel Yapısı"
|
||||
|
||||
#. module: hr
|
||||
#: view:hr.employee:0
|
||||
@@ -513,19 +518,19 @@ msgstr "İletişim Bilgisi"
|
||||
#. module: hr
|
||||
#: field:hr.config.settings,module_hr_holidays:0
|
||||
msgid "Manage holidays, leaves and allocation requests"
|
||||
msgstr ""
|
||||
msgstr "Tatil, izin ve tahsis isteklerini yönet"
|
||||
|
||||
#. module: hr
|
||||
#: field:hr.department,child_ids:0
|
||||
msgid "Child Departments"
|
||||
msgstr "Alt Bölümler"
|
||||
msgstr "Alt Departmenler"
|
||||
|
||||
#. module: hr
|
||||
#: view:hr.employee:0
|
||||
#: view:hr.job:0
|
||||
#: field:hr.job,state:0
|
||||
msgid "Status"
|
||||
msgstr "Durum"
|
||||
msgstr "Durumu"
|
||||
|
||||
#. module: hr
|
||||
#: field:hr.employee,otherid:0
|
||||
@@ -535,17 +540,17 @@ msgstr "Diğer ID"
|
||||
#. module: hr
|
||||
#: model:process.process,name:hr.process_process_employeecontractprocess0
|
||||
msgid "Employee Contract"
|
||||
msgstr "Çalışan Sözleşmesi"
|
||||
msgstr "Personel Sözleşmesi"
|
||||
|
||||
#. module: hr
|
||||
#: view:hr.config.settings:0
|
||||
msgid "Contracts"
|
||||
msgstr ""
|
||||
msgstr "Sözleşmeler"
|
||||
|
||||
#. module: hr
|
||||
#: help:hr.job,message_ids:0
|
||||
msgid "Messages and communication history"
|
||||
msgstr ""
|
||||
msgstr "Mesajlar ve iletişim geçmişi"
|
||||
|
||||
#. module: hr
|
||||
#: field:hr.employee,ssnid:0
|
||||
@@ -555,12 +560,12 @@ msgstr "SGK No"
|
||||
#. module: hr
|
||||
#: field:hr.job,message_is_follower:0
|
||||
msgid "Is a Follower"
|
||||
msgstr ""
|
||||
msgstr "Bir Takipçisi mi"
|
||||
|
||||
#. module: hr
|
||||
#: field:hr.config.settings,module_hr_recruitment:0
|
||||
msgid "Manage the recruitment process"
|
||||
msgstr ""
|
||||
msgstr "İşe alım süreci yönetimi"
|
||||
|
||||
#. module: hr
|
||||
#: view:hr.employee:0
|
||||
@@ -570,12 +575,12 @@ msgstr "Etkin"
|
||||
#. module: hr
|
||||
#: view:hr.config.settings:0
|
||||
msgid "Human Resources Management"
|
||||
msgstr ""
|
||||
msgstr "İnsan Kaynakları Yönetimi"
|
||||
|
||||
#. module: hr
|
||||
#: view:hr.config.settings:0
|
||||
msgid "Install your country's payroll"
|
||||
msgstr ""
|
||||
msgstr "Ülkenizin bordrosunu yükleyin"
|
||||
|
||||
#. module: hr
|
||||
#: field:hr.employee,bank_account_id:0
|
||||
@@ -590,7 +595,7 @@ msgstr "Firmalar"
|
||||
#. module: hr
|
||||
#: field:hr.job,message_summary:0
|
||||
msgid "Summary"
|
||||
msgstr ""
|
||||
msgstr "Özet"
|
||||
|
||||
#. module: hr
|
||||
#: model:process.transition,note:hr.process_transition_contactofemployee0
|
||||
@@ -613,21 +618,30 @@ msgid ""
|
||||
" </p>\n"
|
||||
" "
|
||||
msgstr ""
|
||||
"<p class=\"oe_view_nocontent_create\">\n"
|
||||
" Yeni bir personel eklemek için tıklayınız.\n"
|
||||
" </p><p>\n"
|
||||
" OpenERP personel ekranda sadece hızlı bir bakış ile, sen\n"
|
||||
" Kolayca her biri için gereken tüm bilgileri bulabilirsiniz "
|
||||
"person;\n"
|
||||
" kişisel verileri, iş pozisyonu, durumu, vb\n"
|
||||
" </p>\n"
|
||||
" "
|
||||
|
||||
#. module: hr
|
||||
#: view:hr.employee:0
|
||||
msgid "HR Settings"
|
||||
msgstr ""
|
||||
msgstr "İK Ayarları"
|
||||
|
||||
#. module: hr
|
||||
#: view:hr.employee:0
|
||||
msgid "Citizenship & Other Info"
|
||||
msgstr ""
|
||||
msgstr "Vatandaşlık & Diğer Bilgisi"
|
||||
|
||||
#. module: hr
|
||||
#: constraint:hr.department:0
|
||||
msgid "Error! You cannot create recursive departments."
|
||||
msgstr ""
|
||||
msgstr "Hata! Sen özyinelemeli bölüm oluşturamazsınız."
|
||||
|
||||
#. module: hr
|
||||
#: field:hr.employee,address_id:0
|
||||
@@ -637,7 +651,7 @@ msgstr "İş Adresi"
|
||||
#. module: hr
|
||||
#: view:hr.employee:0
|
||||
msgid "Public Information"
|
||||
msgstr ""
|
||||
msgstr "Genel Bilgisi"
|
||||
|
||||
#. module: hr
|
||||
#: field:hr.employee,marital:0
|
||||
@@ -652,7 +666,7 @@ msgstr "ir.actions.act_window"
|
||||
#. module: hr
|
||||
#: field:hr.employee,last_login:0
|
||||
msgid "Latest Connection"
|
||||
msgstr ""
|
||||
msgstr "Son Bağlantı"
|
||||
|
||||
#. module: hr
|
||||
#: field:hr.employee,image:0
|
||||
@@ -662,7 +676,7 @@ msgstr "Fotoğraf"
|
||||
#. module: hr
|
||||
#: view:hr.config.settings:0
|
||||
msgid "Cancel"
|
||||
msgstr ""
|
||||
msgstr "İptal"
|
||||
|
||||
#. module: hr
|
||||
#: model:ir.actions.act_window,help:hr.open_module_tree_department
|
||||
@@ -677,17 +691,27 @@ msgid ""
|
||||
" </p>\n"
|
||||
" "
|
||||
msgstr ""
|
||||
"<p class=\"oe_view_nocontent_create\">\n"
|
||||
" Bir departman oluşturmak için tıklayın.\n"
|
||||
" </p><p>\n"
|
||||
" OpenERP departmanı yapısı tümünü yönetmek için kullanılır "
|
||||
"belgeler\n"
|
||||
" departmanlar tarafından personel ile ilgili:giderleri, "
|
||||
"zamanÇizelgeleri,\n"
|
||||
" izinler ve tatiller, eleman alımları, vb\n"
|
||||
" </p>\n"
|
||||
" "
|
||||
|
||||
#. module: hr
|
||||
#: help:hr.config.settings,module_hr_timesheet:0
|
||||
msgid "This installs the module hr_timesheet."
|
||||
msgstr ""
|
||||
msgstr "Bu modül hr_timesheet yükler."
|
||||
|
||||
#. module: hr
|
||||
#: help:hr.job,expected_employees:0
|
||||
msgid ""
|
||||
"Expected number of employees for this job position after new recruitment."
|
||||
msgstr ""
|
||||
msgstr "Yeni işe alım sonra bu iş pozisyonu için beklenen pesonel sayısı."
|
||||
|
||||
#. module: hr
|
||||
#: model:ir.actions.act_window,help:hr.view_department_form_installer
|
||||
@@ -702,11 +726,21 @@ msgid ""
|
||||
" </p>\n"
|
||||
" "
|
||||
msgstr ""
|
||||
"<p class=\"oe_view_nocontent_create\">\n"
|
||||
" Yeni bir departman tanımlamak için tıklayın.\n"
|
||||
" </p><p>\n"
|
||||
" Sizin departmanlar yapısı tüm belgeleri yönetmek için "
|
||||
"kullanılır\n"
|
||||
" departmanlar tarafından personel ile ilgili: giderleri ve "
|
||||
"zamanÇizelgeleri,\n"
|
||||
" izinler ve tatiller, eleman alımları, vb\n"
|
||||
" </p>\n"
|
||||
" "
|
||||
|
||||
#. module: hr
|
||||
#: view:hr.employee:0
|
||||
msgid "Personal Information"
|
||||
msgstr "Kişisel Bilgiler"
|
||||
msgstr "Kişisel Bilgisi"
|
||||
|
||||
#. module: hr
|
||||
#: field:hr.employee,city:0
|
||||
@@ -721,23 +755,24 @@ msgstr "Pasaport No"
|
||||
#. module: hr
|
||||
#: field:hr.employee,mobile_phone:0
|
||||
msgid "Work Mobile"
|
||||
msgstr "İş Cep"
|
||||
msgstr "İş Mobil"
|
||||
|
||||
#. module: hr
|
||||
#: selection:hr.job,state:0
|
||||
msgid "Recruitement in Progress"
|
||||
msgstr ""
|
||||
msgstr "DevamEden İşeAlım"
|
||||
|
||||
#. module: hr
|
||||
#: field:hr.config.settings,module_account_analytic_analysis:0
|
||||
msgid ""
|
||||
"Allow invoicing based on timesheets (the sale application will be installed)"
|
||||
msgstr ""
|
||||
"ZamanÇizelgeleri dayalı faturalama İzni (satış uygulaması yüklenecektir)"
|
||||
|
||||
#. module: hr
|
||||
#: view:hr.employee.category:0
|
||||
msgid "Employees Categories"
|
||||
msgstr "Çalışanların Kategorileri"
|
||||
msgstr "Personel Kategorileri"
|
||||
|
||||
#. module: hr
|
||||
#: field:hr.employee,address_home_id:0
|
||||
@@ -747,7 +782,7 @@ msgstr "Ev Adresi"
|
||||
#. module: hr
|
||||
#: field:hr.config.settings,module_hr_timesheet:0
|
||||
msgid "Manage timesheets"
|
||||
msgstr ""
|
||||
msgstr "ZamanÇizelgelerini Yönet"
|
||||
|
||||
#. module: hr
|
||||
#: model:ir.actions.act_window,name:hr.open_payroll_modules
|
||||
@@ -772,17 +807,17 @@ msgstr "Durumunda"
|
||||
#. module: hr
|
||||
#: help:hr.config.settings,module_hr_payroll:0
|
||||
msgid "This installs the module hr_payroll."
|
||||
msgstr ""
|
||||
msgstr "Bu modül hr_payroll yükler."
|
||||
|
||||
#. module: hr
|
||||
#: field:hr.config.settings,module_hr_contract:0
|
||||
msgid "Record contracts per employee"
|
||||
msgstr ""
|
||||
msgstr "Personel başına kaydı sözleşmeleri"
|
||||
|
||||
#. module: hr
|
||||
#: view:hr.department:0
|
||||
msgid "department"
|
||||
msgstr "bölüm"
|
||||
msgstr "departmen"
|
||||
|
||||
#. module: hr
|
||||
#: field:hr.employee,country_id:0
|
||||
@@ -792,7 +827,7 @@ msgstr "Uyruğu"
|
||||
#. module: hr
|
||||
#: view:hr.config.settings:0
|
||||
msgid "Additional Features"
|
||||
msgstr ""
|
||||
msgstr "Ek Özellikler"
|
||||
|
||||
#. module: hr
|
||||
#: field:hr.employee,notes:0
|
||||
@@ -802,7 +837,7 @@ msgstr "Notlar"
|
||||
#. module: hr
|
||||
#: model:ir.actions.act_window,name:hr.action2
|
||||
msgid "Subordinate Hierarchy"
|
||||
msgstr ""
|
||||
msgstr "Alt Hiyerarşisi"
|
||||
|
||||
#. module: hr
|
||||
#: field:hr.employee,resource_id:0
|
||||
@@ -830,7 +865,7 @@ msgstr "Cinsiyeti"
|
||||
#: model:ir.actions.act_window,name:hr.open_view_employee_list_my
|
||||
#: model:ir.ui.menu,name:hr.menu_open_view_employee_list_my
|
||||
msgid "Employees"
|
||||
msgstr "Çalışanlar"
|
||||
msgstr "Personeller"
|
||||
|
||||
#. module: hr
|
||||
#: help:hr.employee,sinid:0
|
||||
@@ -840,28 +875,28 @@ msgstr "Sosyal Sigorta Numarası"
|
||||
#. module: hr
|
||||
#: field:hr.department,name:0
|
||||
msgid "Department Name"
|
||||
msgstr "Bölüm Adı"
|
||||
msgstr "Departmen Adı"
|
||||
|
||||
#. module: hr
|
||||
#: model:ir.ui.menu,name:hr.menu_hr_reporting_timesheet
|
||||
msgid "Reports"
|
||||
msgstr ""
|
||||
msgstr "Raporlar"
|
||||
|
||||
#. module: hr
|
||||
#: field:hr.config.settings,module_hr_payroll:0
|
||||
msgid "Manage payroll"
|
||||
msgstr ""
|
||||
msgstr "Bordro yönet"
|
||||
|
||||
#. module: hr
|
||||
#: view:hr.config.settings:0
|
||||
#: model:ir.actions.act_window,name:hr.action_human_resources_configuration
|
||||
msgid "Configure Human Resources"
|
||||
msgstr ""
|
||||
msgstr "İnsan Kaynakları Yapılandırma"
|
||||
|
||||
#. module: hr
|
||||
#: selection:hr.job,state:0
|
||||
msgid "No Recruitment"
|
||||
msgstr ""
|
||||
msgstr "İşe Alım Yok"
|
||||
|
||||
#. module: hr
|
||||
#: help:hr.employee,ssnid:0
|
||||
@@ -881,7 +916,7 @@ msgstr "Oturum aç"
|
||||
#. module: hr
|
||||
#: field:hr.job,expected_employees:0
|
||||
msgid "Total Forecasted Employees"
|
||||
msgstr ""
|
||||
msgstr "Toplam Tahmini Personel"
|
||||
|
||||
#. module: hr
|
||||
#: help:hr.job,state:0
|
||||
@@ -893,13 +928,13 @@ msgstr ""
|
||||
#. module: hr
|
||||
#: model:ir.model,name:hr.model_res_users
|
||||
msgid "Users"
|
||||
msgstr ""
|
||||
msgstr "Kullanıcılar"
|
||||
|
||||
#. module: hr
|
||||
#: model:ir.actions.act_window,name:hr.action_hr_job
|
||||
#: model:ir.ui.menu,name:hr.menu_hr_job
|
||||
msgid "Job Positions"
|
||||
msgstr "İş Durumları"
|
||||
msgstr "İş Pozisyonları"
|
||||
|
||||
#. module: hr
|
||||
#: model:ir.actions.act_window,help:hr.open_board_hr
|
||||
@@ -934,7 +969,7 @@ msgstr "Her firma için iş durumu adı benzersiz olmalı!"
|
||||
#. module: hr
|
||||
#: help:hr.config.settings,module_hr_expense:0
|
||||
msgid "This installs the module hr_expense."
|
||||
msgstr ""
|
||||
msgstr "Bu modül hr_expense yükler."
|
||||
|
||||
#. module: hr
|
||||
#: model:ir.model,name:hr.model_hr_config_settings
|
||||
@@ -961,7 +996,7 @@ msgstr "Emrindekiler"
|
||||
#. module: hr
|
||||
#: view:hr.config.settings:0
|
||||
msgid "Apply"
|
||||
msgstr ""
|
||||
msgstr "Uygula"
|
||||
|
||||
#~ msgid "Invalid XML for View Architecture!"
|
||||
#~ msgstr "Görüntüleme mimarisi için Geçersiz XML"
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
'sequence': 31,
|
||||
'website': 'http://www.openerp.com',
|
||||
'summary': 'Periodical Evaluations, Appraisals, Surveys',
|
||||
'images': ['images/hr_evaluation_analysis.jpeg','images/hr_evaluation.jpeg'],
|
||||
'images': ['images/hr_evaluation_analysis.jpeg','images/hr_evaluation.jpeg','images/hr_interview_requests.jpeg'],
|
||||
'depends': ['hr','base_calendar','survey'],
|
||||
'description': """
|
||||
Periodical Employees evaluation and appraisals
|
||||
|
||||
@@ -353,6 +353,7 @@ class hr_applicant(base_stage, osv.Model):
|
||||
'email_from': msg.get('from'),
|
||||
'email_cc': msg.get('cc'),
|
||||
'user_id': False,
|
||||
'partner_id': msg.get('author_id', False),
|
||||
}
|
||||
if msg.get('priority'):
|
||||
defaults['priority'] = msg.get('priority')
|
||||
|
||||
@@ -470,11 +470,13 @@
|
||||
<record id="mt_stage_changed" model="mail.message.subtype">
|
||||
<field name="name">Stage Changed</field>
|
||||
<field name="res_model">hr.applicant</field>
|
||||
<field name="default" eval="False"/>
|
||||
<field name="description">Stage changed</field>
|
||||
</record>
|
||||
<record id="mt_applicant_hired" model="mail.message.subtype">
|
||||
<field name="name">Applicant Hired</field>
|
||||
<field name="res_model">hr.applicant</field>
|
||||
<field name="default" eval="False"/>
|
||||
<field name="description">Applicant hired</field>
|
||||
</record>
|
||||
<record id="mt_applicant_refused" model="mail.message.subtype">
|
||||
|
||||
@@ -0,0 +1,714 @@
|
||||
# English (United Kingdom) translation for openobject-addons
|
||||
# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
|
||||
# This file is distributed under the same license as the openobject-addons package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2013.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-12-21 17:04+0000\n"
|
||||
"PO-Revision-Date: 2013-02-06 15:10+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: English (United Kingdom) <en_GB@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: 2013-02-07 04:53+0000\n"
|
||||
"X-Generator: Launchpad (build 16477)\n"
|
||||
|
||||
#. module: hr_timesheet
|
||||
#: model:ir.actions.act_window,help:hr_timesheet.act_analytic_cost_revenue
|
||||
msgid ""
|
||||
"<p>\n"
|
||||
" No activity yet on this contract.\n"
|
||||
" </p><p>\n"
|
||||
" In OpenERP, contracts and projects are implemented using\n"
|
||||
" analytic account. So, you can track costs and revenues to "
|
||||
"analyse\n"
|
||||
" your margins easily.\n"
|
||||
" </p><p>\n"
|
||||
" Costs will be created automatically when you register "
|
||||
"supplier\n"
|
||||
" invoices, expenses or timesheets.\n"
|
||||
" </p><p>\n"
|
||||
" Revenues will be created automatically when you create "
|
||||
"customer\n"
|
||||
" invoices. Customer invoices can be created based on sale "
|
||||
"orders\n"
|
||||
" (fixed price invoices), on timesheets (based on the work "
|
||||
"done) or\n"
|
||||
" on expenses (e.g. reinvoicing of travel costs).\n"
|
||||
" </p>\n"
|
||||
" "
|
||||
msgstr ""
|
||||
"<p>\n"
|
||||
" No activity yet on this contract.\n"
|
||||
" </p><p>\n"
|
||||
" In OpenERP, contracts and projects are implemented using\n"
|
||||
" analytic account. So, you can track costs and revenues to "
|
||||
"analyse\n"
|
||||
" your margins easily.\n"
|
||||
" </p><p>\n"
|
||||
" Costs will be created automatically when you register "
|
||||
"supplier\n"
|
||||
" invoices, expenses or timesheets.\n"
|
||||
" </p><p>\n"
|
||||
" Revenues will be created automatically when you create "
|
||||
"customer\n"
|
||||
" invoices. Customer invoices can be created based on sale "
|
||||
"orders\n"
|
||||
" (fixed price invoices), on timesheets (based on the work "
|
||||
"done) or\n"
|
||||
" on expenses (e.g. reinvoicing of travel costs).\n"
|
||||
" </p>\n"
|
||||
" "
|
||||
|
||||
#. module: hr_timesheet
|
||||
#: code:addons/hr_timesheet/report/user_timesheet.py:44
|
||||
#: code:addons/hr_timesheet/report/users_timesheet.py:77
|
||||
#, python-format
|
||||
msgid "Wed"
|
||||
msgstr "Wed"
|
||||
|
||||
#. module: hr_timesheet
|
||||
#: view:hr.sign.out.project:0
|
||||
msgid "(Keep empty for current_time)"
|
||||
msgstr "(Keep empty for current_time)"
|
||||
|
||||
#. module: hr_timesheet
|
||||
#: view:hr.analytic.timesheet:0
|
||||
msgid "Group By..."
|
||||
msgstr "Group By..."
|
||||
|
||||
#. module: hr_timesheet
|
||||
#: model:ir.actions.act_window,help:hr_timesheet.action_hr_timesheet_sign_in
|
||||
msgid ""
|
||||
"Employees can encode their time spent on the different projects. A project "
|
||||
"is an analytic account and the time spent on a project generate costs on the "
|
||||
"analytic account. This feature allows to record at the same time the "
|
||||
"attendance and the timesheet."
|
||||
msgstr ""
|
||||
"Employees can encode their time spent on the different projects. A project "
|
||||
"is an analytic account and the time spent on a project generate costs on the "
|
||||
"analytic account. This feature allows to record at the same time the "
|
||||
"attendance and the timesheet."
|
||||
|
||||
#. module: hr_timesheet
|
||||
#: field:hr.employee,uom_id:0
|
||||
msgid "Unit of Measure"
|
||||
msgstr "Unit of Measure"
|
||||
|
||||
#. module: hr_timesheet
|
||||
#: field:hr.employee,journal_id:0
|
||||
msgid "Analytic Journal"
|
||||
msgstr "Analytic Journal"
|
||||
|
||||
#. module: hr_timesheet
|
||||
#: view:hr.sign.out.project:0
|
||||
msgid "Stop Working"
|
||||
msgstr "Stop Working"
|
||||
|
||||
#. module: hr_timesheet
|
||||
#: model:ir.actions.act_window,name:hr_timesheet.action_hr_timesheet_employee
|
||||
#: model:ir.ui.menu,name:hr_timesheet.menu_hr_timesheet_employee
|
||||
msgid "Employee Timesheet"
|
||||
msgstr "Employee Timesheet"
|
||||
|
||||
#. module: hr_timesheet
|
||||
#: view:hr.analytic.timesheet:0
|
||||
#: model:ir.ui.menu,name:hr_timesheet.menu_hr_timesheet_reports
|
||||
msgid "Timesheet"
|
||||
msgstr "Timesheet"
|
||||
|
||||
#. module: hr_timesheet
|
||||
#: code:addons/hr_timesheet/wizard/hr_timesheet_print_employee.py:43
|
||||
#, python-format
|
||||
msgid "Please define employee for this user!"
|
||||
msgstr "Please define employee for this user!"
|
||||
|
||||
#. module: hr_timesheet
|
||||
#: code:addons/hr_timesheet/report/user_timesheet.py:44
|
||||
#: code:addons/hr_timesheet/report/users_timesheet.py:77
|
||||
#, python-format
|
||||
msgid "Mon"
|
||||
msgstr "Mon"
|
||||
|
||||
#. module: hr_timesheet
|
||||
#: view:hr.sign.in.project:0
|
||||
msgid "Sign in"
|
||||
msgstr "Sign in"
|
||||
|
||||
#. module: hr_timesheet
|
||||
#: code:addons/hr_timesheet/report/user_timesheet.py:44
|
||||
#: code:addons/hr_timesheet/report/users_timesheet.py:77
|
||||
#, python-format
|
||||
msgid "Fri"
|
||||
msgstr "Fri"
|
||||
|
||||
#. module: hr_timesheet
|
||||
#: view:hr.analytic.timesheet:0
|
||||
#: model:ir.actions.act_window,name:hr_timesheet.act_hr_timesheet_line_evry1_all_form
|
||||
#: model:ir.ui.menu,name:hr_timesheet.menu_hr_working_hours
|
||||
msgid "Timesheet Activities"
|
||||
msgstr "Timesheet Activities"
|
||||
|
||||
#. module: hr_timesheet
|
||||
#: field:hr.sign.out.project,analytic_amount:0
|
||||
msgid "Minimum Analytic Amount"
|
||||
msgstr "Minimum Analytic Amount"
|
||||
|
||||
#. module: hr_timesheet
|
||||
#: view:hr.analytical.timesheet.employee:0
|
||||
msgid "Monthly Employee Timesheet"
|
||||
msgstr "Monthly Employee Timesheet"
|
||||
|
||||
#. module: hr_timesheet
|
||||
#: view:hr.sign.out.project:0
|
||||
msgid "Work done in the last period"
|
||||
msgstr "Work done in the last period"
|
||||
|
||||
#. module: hr_timesheet
|
||||
#: field:hr.sign.in.project,name:0
|
||||
#: field:hr.sign.out.project,name:0
|
||||
msgid "Employees name"
|
||||
msgstr "Employees name"
|
||||
|
||||
#. module: hr_timesheet
|
||||
#: field:hr.sign.out.project,account_id:0
|
||||
msgid "Project / Analytic Account"
|
||||
msgstr "Project / Analytic Account"
|
||||
|
||||
#. module: hr_timesheet
|
||||
#: model:ir.model,name:hr_timesheet.model_hr_analytical_timesheet_users
|
||||
msgid "Print Employees Timesheet"
|
||||
msgstr "Print Employees Timesheet"
|
||||
|
||||
#. module: hr_timesheet
|
||||
#: code:addons/hr_timesheet/wizard/hr_timesheet_sign_in_out.py:132
|
||||
#, python-format
|
||||
msgid "Please define employee for your user."
|
||||
msgstr "Please define employee for your user."
|
||||
|
||||
#. module: hr_timesheet
|
||||
#: model:ir.actions.act_window,name:hr_timesheet.act_analytic_cost_revenue
|
||||
msgid "Costs & Revenues"
|
||||
msgstr "Costs & Revenues"
|
||||
|
||||
#. module: hr_timesheet
|
||||
#: code:addons/hr_timesheet/report/user_timesheet.py:44
|
||||
#: code:addons/hr_timesheet/report/users_timesheet.py:77
|
||||
#, python-format
|
||||
msgid "Tue"
|
||||
msgstr "Tue"
|
||||
|
||||
#. module: hr_timesheet
|
||||
#: model:ir.model,name:hr_timesheet.model_account_analytic_account
|
||||
msgid "Analytic Account"
|
||||
msgstr "Analytic Account"
|
||||
|
||||
#. module: hr_timesheet
|
||||
#: view:account.analytic.account:0
|
||||
msgid "Costs and Revenues"
|
||||
msgstr "Costs and Revenues"
|
||||
|
||||
#. module: hr_timesheet
|
||||
#: code:addons/hr_timesheet/hr_timesheet.py:144
|
||||
#: code:addons/hr_timesheet/hr_timesheet.py:149
|
||||
#: code:addons/hr_timesheet/hr_timesheet.py:180
|
||||
#: code:addons/hr_timesheet/hr_timesheet.py:182
|
||||
#: code:addons/hr_timesheet/wizard/hr_timesheet_print_employee.py:43
|
||||
#, python-format
|
||||
msgid "Warning!"
|
||||
msgstr "Warning!"
|
||||
|
||||
#. module: hr_timesheet
|
||||
#: field:hr.analytic.timesheet,partner_id:0
|
||||
msgid "Partner"
|
||||
msgstr "Partner"
|
||||
|
||||
#. module: hr_timesheet
|
||||
#: code:addons/hr_timesheet/report/user_timesheet.py:44
|
||||
#: code:addons/hr_timesheet/report/users_timesheet.py:77
|
||||
#, python-format
|
||||
msgid "Sat"
|
||||
msgstr "Sat"
|
||||
|
||||
#. module: hr_timesheet
|
||||
#: code:addons/hr_timesheet/report/user_timesheet.py:44
|
||||
#: code:addons/hr_timesheet/report/users_timesheet.py:77
|
||||
#, python-format
|
||||
msgid "Sun"
|
||||
msgstr "Sun"
|
||||
|
||||
#. module: hr_timesheet
|
||||
#: xsl:hr.analytical.timesheet:0
|
||||
msgid "Sum"
|
||||
msgstr "Sum"
|
||||
|
||||
#. module: hr_timesheet
|
||||
#: view:hr.analytic.timesheet:0
|
||||
msgid "Analytic account"
|
||||
msgstr "Analytic account"
|
||||
|
||||
#. module: hr_timesheet
|
||||
#: model:ir.actions.act_window,help:hr_timesheet.act_hr_timesheet_line_evry1_all_form
|
||||
msgid ""
|
||||
"<p class=\"oe_view_nocontent_create\">\n"
|
||||
" Click to record activities.\n"
|
||||
" </p><p>\n"
|
||||
" You can register and track your workings hours by project "
|
||||
"every\n"
|
||||
" day. Every time spent on a project will become a cost in "
|
||||
"the\n"
|
||||
" analytic accounting/contract and can be re-invoiced to\n"
|
||||
" customers if required.\n"
|
||||
" </p>\n"
|
||||
" "
|
||||
msgstr ""
|
||||
"<p class=\"oe_view_nocontent_create\">\n"
|
||||
" Click to record activities.\n"
|
||||
" </p><p>\n"
|
||||
" You can register and track your workings hours by project "
|
||||
"every\n"
|
||||
" day. Every time spent on a project will become a cost in "
|
||||
"the\n"
|
||||
" analytic accounting/contract and can be re-invoiced to\n"
|
||||
" customers if required.\n"
|
||||
" </p>\n"
|
||||
" "
|
||||
|
||||
#. module: hr_timesheet
|
||||
#: view:hr.analytical.timesheet.employee:0
|
||||
#: view:hr.analytical.timesheet.users:0
|
||||
msgid "Print"
|
||||
msgstr "Print"
|
||||
|
||||
#. module: hr_timesheet
|
||||
#: help:account.analytic.account,use_timesheets:0
|
||||
msgid "Check this field if this project manages timesheets"
|
||||
msgstr "Check this field if this project manages timesheets"
|
||||
|
||||
#. module: hr_timesheet
|
||||
#: view:hr.analytical.timesheet.users:0
|
||||
msgid "Monthly Employees Timesheet"
|
||||
msgstr "Monthly Employees Timesheet"
|
||||
|
||||
#. module: hr_timesheet
|
||||
#: code:addons/hr_timesheet/report/user_timesheet.py:41
|
||||
#: code:addons/hr_timesheet/report/users_timesheet.py:73
|
||||
#: selection:hr.analytical.timesheet.employee,month:0
|
||||
#: selection:hr.analytical.timesheet.users,month:0
|
||||
#, python-format
|
||||
msgid "July"
|
||||
msgstr "July"
|
||||
|
||||
#. module: hr_timesheet
|
||||
#: field:hr.sign.in.project,date:0
|
||||
#: field:hr.sign.out.project,date_start:0
|
||||
msgid "Starting Date"
|
||||
msgstr "Starting Date"
|
||||
|
||||
#. module: hr_timesheet
|
||||
#: code:addons/hr_timesheet/wizard/hr_timesheet_sign_in_out.py:77
|
||||
#, python-format
|
||||
msgid "Please define cost unit for this employee."
|
||||
msgstr "Please define cost unit for this employee."
|
||||
|
||||
#. module: hr_timesheet
|
||||
#: help:hr.employee,product_id:0
|
||||
msgid "Specifies employee's designation as a product with type 'service'."
|
||||
msgstr "Specifies employee's designation as a product with type 'service'."
|
||||
|
||||
#. module: hr_timesheet
|
||||
#: code:addons/hr_timesheet/hr_timesheet.py:182
|
||||
#, python-format
|
||||
msgid ""
|
||||
"No analytic account is defined on the project.\n"
|
||||
"Please set one or we cannot automatically fill the timesheet."
|
||||
msgstr ""
|
||||
"No analytic account is defined on the project.\n"
|
||||
"Please set one or we cannot automatically fill the timesheet."
|
||||
|
||||
#. module: hr_timesheet
|
||||
#: view:hr.analytic.timesheet:0
|
||||
msgid "Total cost"
|
||||
msgstr "Total cost"
|
||||
|
||||
#. module: hr_timesheet
|
||||
#: code:addons/hr_timesheet/hr_timesheet.py:180
|
||||
#, python-format
|
||||
msgid ""
|
||||
"No 'Analytic Journal' is defined for employee %s \n"
|
||||
"Define an employee for the selected user and assign an 'Analytic Journal'!"
|
||||
msgstr ""
|
||||
"No 'Analytic Journal' is defined for employee %s \n"
|
||||
"Define an employee for the selected user and assign an 'Analytic Journal'!"
|
||||
|
||||
#. module: hr_timesheet
|
||||
#: code:addons/hr_timesheet/report/user_timesheet.py:41
|
||||
#: code:addons/hr_timesheet/report/users_timesheet.py:73
|
||||
#: selection:hr.analytical.timesheet.employee,month:0
|
||||
#: selection:hr.analytical.timesheet.users,month:0
|
||||
#, python-format
|
||||
msgid "September"
|
||||
msgstr "September"
|
||||
|
||||
#. module: hr_timesheet
|
||||
#: code:addons/hr_timesheet/report/user_timesheet.py:41
|
||||
#: code:addons/hr_timesheet/report/users_timesheet.py:73
|
||||
#: selection:hr.analytical.timesheet.employee,month:0
|
||||
#: selection:hr.analytical.timesheet.users,month:0
|
||||
#, python-format
|
||||
msgid "December"
|
||||
msgstr "December"
|
||||
|
||||
#. module: hr_timesheet
|
||||
#: field:hr.analytical.timesheet.users,employee_ids:0
|
||||
msgid "employees"
|
||||
msgstr "employees"
|
||||
|
||||
#. module: hr_timesheet
|
||||
#: field:hr.analytical.timesheet.employee,month:0
|
||||
#: field:hr.analytical.timesheet.users,month:0
|
||||
msgid "Month"
|
||||
msgstr "Month"
|
||||
|
||||
#. module: hr_timesheet
|
||||
#: field:hr.sign.out.project,info:0
|
||||
msgid "Work Description"
|
||||
msgstr "Work Description"
|
||||
|
||||
#. module: hr_timesheet
|
||||
#: view:hr.analytical.timesheet.employee:0
|
||||
#: view:hr.analytical.timesheet.users:0
|
||||
#: view:hr.sign.in.project:0
|
||||
#: view:hr.sign.out.project:0
|
||||
msgid "or"
|
||||
msgstr "or"
|
||||
|
||||
#. module: hr_timesheet
|
||||
#: xsl:hr.analytical.timesheet:0
|
||||
msgid "Timesheet by Employee"
|
||||
msgstr "Timesheet by Employee"
|
||||
|
||||
#. module: hr_timesheet
|
||||
#: model:ir.actions.report.xml,name:hr_timesheet.report_user_timesheet
|
||||
msgid "Employee timesheet"
|
||||
msgstr "Employee timesheet"
|
||||
|
||||
#. module: hr_timesheet
|
||||
#: model:ir.actions.act_window,name:hr_timesheet.action_hr_timesheet_sign_in
|
||||
#: model:ir.actions.act_window,name:hr_timesheet.action_hr_timesheet_sign_out
|
||||
msgid "Sign in / Sign out by project"
|
||||
msgstr "Sign in / Sign out by project"
|
||||
|
||||
#. module: hr_timesheet
|
||||
#: model:ir.actions.act_window,name:hr_timesheet.action_define_analytic_structure
|
||||
msgid "Define your Analytic Structure"
|
||||
msgstr "Define your Analytic Structure"
|
||||
|
||||
#. module: hr_timesheet
|
||||
#: code:addons/hr_timesheet/wizard/hr_timesheet_sign_in_out.py:146
|
||||
#: view:hr.sign.in.project:0
|
||||
#, python-format
|
||||
msgid "Sign in / Sign out"
|
||||
msgstr "Sign in / Sign out"
|
||||
|
||||
#. module: hr_timesheet
|
||||
#: view:hr.sign.in.project:0
|
||||
msgid "(Keep empty for current time)"
|
||||
msgstr "(Keep empty for current time)"
|
||||
|
||||
#. module: hr_timesheet
|
||||
#: field:account.analytic.account,use_timesheets:0
|
||||
#: view:hr.employee:0
|
||||
msgid "Timesheets"
|
||||
msgstr "Timesheets"
|
||||
|
||||
#. module: hr_timesheet
|
||||
#: model:ir.actions.act_window,help:hr_timesheet.action_define_analytic_structure
|
||||
msgid ""
|
||||
"You should create an analytic account structure depending on your needs to "
|
||||
"analyse costs and revenues. In OpenERP, analytic accounts are also used to "
|
||||
"track customer contracts."
|
||||
msgstr ""
|
||||
"You should create an analytic account structure depending on your needs to "
|
||||
"analyse costs and revenues. In OpenERP, analytic accounts are also used to "
|
||||
"track customer contracts."
|
||||
|
||||
#. module: hr_timesheet
|
||||
#: field:hr.analytic.timesheet,line_id:0
|
||||
msgid "Analytic Line"
|
||||
msgstr "Analytic Line"
|
||||
|
||||
#. module: hr_timesheet
|
||||
#: code:addons/hr_timesheet/report/user_timesheet.py:41
|
||||
#: code:addons/hr_timesheet/report/users_timesheet.py:73
|
||||
#: selection:hr.analytical.timesheet.employee,month:0
|
||||
#: selection:hr.analytical.timesheet.users,month:0
|
||||
#, python-format
|
||||
msgid "August"
|
||||
msgstr "August"
|
||||
|
||||
#. module: hr_timesheet
|
||||
#: code:addons/hr_timesheet/hr_timesheet.py:149
|
||||
#, python-format
|
||||
msgid ""
|
||||
"No analytic journal defined for '%s'.\n"
|
||||
"You should assign an analytic journal on the employee form."
|
||||
msgstr ""
|
||||
"No analytic journal defined for '%s'.\n"
|
||||
"You should assign an analytic journal on the employee form."
|
||||
|
||||
#. module: hr_timesheet
|
||||
#: code:addons/hr_timesheet/report/user_timesheet.py:41
|
||||
#: code:addons/hr_timesheet/report/users_timesheet.py:73
|
||||
#: selection:hr.analytical.timesheet.employee,month:0
|
||||
#: selection:hr.analytical.timesheet.users,month:0
|
||||
#, python-format
|
||||
msgid "June"
|
||||
msgstr "June"
|
||||
|
||||
#. module: hr_timesheet
|
||||
#: field:hr.sign.in.project,state:0
|
||||
#: field:hr.sign.out.project,state:0
|
||||
msgid "Current Status"
|
||||
msgstr "Current Status"
|
||||
|
||||
#. module: hr_timesheet
|
||||
#: view:hr.analytic.timesheet:0
|
||||
msgid "Date"
|
||||
msgstr "Date"
|
||||
|
||||
#. module: hr_timesheet
|
||||
#: code:addons/hr_timesheet/report/user_timesheet.py:41
|
||||
#: code:addons/hr_timesheet/report/users_timesheet.py:73
|
||||
#: selection:hr.analytical.timesheet.employee,month:0
|
||||
#: selection:hr.analytical.timesheet.users,month:0
|
||||
#, python-format
|
||||
msgid "November"
|
||||
msgstr "November"
|
||||
|
||||
#. module: hr_timesheet
|
||||
#: field:hr.sign.out.project,date:0
|
||||
msgid "Closing Date"
|
||||
msgstr "Closing Date"
|
||||
|
||||
#. module: hr_timesheet
|
||||
#: code:addons/hr_timesheet/report/user_timesheet.py:41
|
||||
#: code:addons/hr_timesheet/report/users_timesheet.py:73
|
||||
#: selection:hr.analytical.timesheet.employee,month:0
|
||||
#: selection:hr.analytical.timesheet.users,month:0
|
||||
#, python-format
|
||||
msgid "October"
|
||||
msgstr "October"
|
||||
|
||||
#. module: hr_timesheet
|
||||
#: code:addons/hr_timesheet/report/user_timesheet.py:41
|
||||
#: code:addons/hr_timesheet/report/users_timesheet.py:73
|
||||
#: selection:hr.analytical.timesheet.employee,month:0
|
||||
#: selection:hr.analytical.timesheet.users,month:0
|
||||
#, python-format
|
||||
msgid "January"
|
||||
msgstr "January"
|
||||
|
||||
#. module: hr_timesheet
|
||||
#: code:addons/hr_timesheet/report/user_timesheet.py:44
|
||||
#: code:addons/hr_timesheet/report/users_timesheet.py:77
|
||||
#, python-format
|
||||
msgid "Thu"
|
||||
msgstr "Thu"
|
||||
|
||||
#. module: hr_timesheet
|
||||
#: view:hr.sign.in.project:0
|
||||
#: view:hr.sign.out.project:0
|
||||
msgid "Sign In/Out by Project"
|
||||
msgstr "Sign In/Out by Project"
|
||||
|
||||
#. module: hr_timesheet
|
||||
#: model:ir.model,name:hr_timesheet.model_hr_analytical_timesheet_employee
|
||||
msgid "Print Employee Timesheet & Print My Timesheet"
|
||||
msgstr "Print Employee Timesheet & Print My Timesheet"
|
||||
|
||||
#. module: hr_timesheet
|
||||
#: field:hr.sign.in.project,emp_id:0
|
||||
#: field:hr.sign.out.project,emp_id:0
|
||||
msgid "Employee ID"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr_timesheet
|
||||
#: view:hr.analytical.timesheet.users:0
|
||||
msgid "Period"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr_timesheet
|
||||
#: view:hr.sign.out.project:0
|
||||
msgid "General Information"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr_timesheet
|
||||
#: view:hr.analytical.timesheet.employee:0
|
||||
#: view:hr.analytical.timesheet.users:0
|
||||
#: view:hr.sign.in.project:0
|
||||
#: view:hr.sign.out.project:0
|
||||
msgid "Cancel"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr_timesheet
|
||||
#: xsl:hr.analytical.timesheet_users:0
|
||||
#: model:ir.actions.act_window,name:hr_timesheet.action_hr_timesheet_users
|
||||
#: model:ir.actions.report.xml,name:hr_timesheet.report_users_timesheet
|
||||
#: model:ir.ui.menu,name:hr_timesheet.menu_hr_timesheet_users
|
||||
msgid "Employees Timesheet"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr_timesheet
|
||||
#: view:hr.analytic.timesheet:0
|
||||
msgid "Information"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr_timesheet
|
||||
#: field:hr.analytical.timesheet.employee,employee_id:0
|
||||
#: model:ir.model,name:hr_timesheet.model_hr_employee
|
||||
msgid "Employee"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr_timesheet
|
||||
#: view:hr.sign.in.project:0
|
||||
msgid ""
|
||||
"Employees can encode their time spent on the different projects they are "
|
||||
"assigned on. A project is an analytic account and the time spent on a "
|
||||
"project generates costs on the analytic account. This feature allows to "
|
||||
"record at the same time the attendance and the timesheet."
|
||||
msgstr ""
|
||||
|
||||
#. module: hr_timesheet
|
||||
#: field:hr.sign.in.project,server_date:0
|
||||
#: field:hr.sign.out.project,server_date:0
|
||||
msgid "Current Date"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr_timesheet
|
||||
#: model:ir.model,name:hr_timesheet.model_hr_analytic_timesheet
|
||||
msgid "Timesheet Line"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr_timesheet
|
||||
#: view:hr.analytic.timesheet:0
|
||||
#: field:hr.employee,product_id:0
|
||||
msgid "Product"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr_timesheet
|
||||
#: view:hr.analytic.timesheet:0
|
||||
msgid "Users"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr_timesheet
|
||||
#: code:addons/hr_timesheet/report/user_timesheet.py:41
|
||||
#: code:addons/hr_timesheet/report/users_timesheet.py:73
|
||||
#: selection:hr.analytical.timesheet.employee,month:0
|
||||
#: selection:hr.analytical.timesheet.users,month:0
|
||||
#, python-format
|
||||
msgid "May"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr_timesheet
|
||||
#: view:hr.analytic.timesheet:0
|
||||
msgid "Total time"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr_timesheet
|
||||
#: view:hr.sign.in.project:0
|
||||
msgid "(local time on the server side)"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr_timesheet
|
||||
#: model:ir.model,name:hr_timesheet.model_hr_sign_in_project
|
||||
msgid "Sign In By Project"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr_timesheet
|
||||
#: code:addons/hr_timesheet/report/user_timesheet.py:41
|
||||
#: code:addons/hr_timesheet/report/users_timesheet.py:73
|
||||
#: selection:hr.analytical.timesheet.employee,month:0
|
||||
#: selection:hr.analytical.timesheet.users,month:0
|
||||
#, python-format
|
||||
msgid "February"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr_timesheet
|
||||
#: model:ir.model,name:hr_timesheet.model_hr_sign_out_project
|
||||
msgid "Sign Out By Project"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr_timesheet
|
||||
#: code:addons/hr_timesheet/hr_timesheet.py:144
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Please create an employee for this user, using the menu: Human Resources > "
|
||||
"Employees."
|
||||
msgstr ""
|
||||
|
||||
#. module: hr_timesheet
|
||||
#: view:hr.analytical.timesheet.users:0
|
||||
msgid "Employees"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr_timesheet
|
||||
#: code:addons/hr_timesheet/report/user_timesheet.py:41
|
||||
#: code:addons/hr_timesheet/report/users_timesheet.py:73
|
||||
#: selection:hr.analytical.timesheet.employee,month:0
|
||||
#: selection:hr.analytical.timesheet.users,month:0
|
||||
#, python-format
|
||||
msgid "March"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr_timesheet
|
||||
#: code:addons/hr_timesheet/report/user_timesheet.py:41
|
||||
#: code:addons/hr_timesheet/report/users_timesheet.py:73
|
||||
#: selection:hr.analytical.timesheet.employee,month:0
|
||||
#: selection:hr.analytical.timesheet.users,month:0
|
||||
#, python-format
|
||||
msgid "April"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr_timesheet
|
||||
#: code:addons/hr_timesheet/wizard/hr_timesheet_sign_in_out.py:77
|
||||
#: code:addons/hr_timesheet/wizard/hr_timesheet_sign_in_out.py:132
|
||||
#, python-format
|
||||
msgid "User Error!"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr_timesheet
|
||||
#: view:hr.sign.in.project:0
|
||||
msgid "Start Working"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr_timesheet
|
||||
#: field:hr.analytical.timesheet.employee,year:0
|
||||
#: field:hr.analytical.timesheet.users,year:0
|
||||
msgid "Year"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr_timesheet
|
||||
#: view:hr.analytic.timesheet:0
|
||||
msgid "Duration"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr_timesheet
|
||||
#: view:hr.analytic.timesheet:0
|
||||
msgid "Accounting"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr_timesheet
|
||||
#: xsl:hr.analytical.timesheet:0
|
||||
#: xsl:hr.analytical.timesheet_users:0
|
||||
msgid "Total"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr_timesheet
|
||||
#: view:hr.sign.out.project:0
|
||||
msgid "Change Work"
|
||||
msgstr ""
|
||||
@@ -45,7 +45,7 @@ The validation can be configured in the company:
|
||||
""",
|
||||
'author': 'OpenERP SA',
|
||||
'website': 'http://www.openerp.com',
|
||||
'images': ['images/hr_my_timesheet.jpeg','images/hr_timesheet_analysis.jpeg','images/hr_timesheet_sheet_analysis.jpeg','images/hr_timesheets.jpeg'],
|
||||
'images': ['images/hr_my_current_timesheet.jpeg','images/hr_timesheet_analysis.jpeg','images/hr_timesheet_sheet_analysis.jpeg','images/hr_timesheet_activity.jpeg'],
|
||||
'depends': ['hr_timesheet', 'hr_timesheet_invoice', 'process'],
|
||||
'data': [
|
||||
'security/ir.model.access.csv',
|
||||
|
||||
@@ -0,0 +1,148 @@
|
||||
# Turkish translation for openobject-addons
|
||||
# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
|
||||
# This file is distributed under the same license as the openobject-addons package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2013.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-11-24 02:53+0000\n"
|
||||
"PO-Revision-Date: 2013-02-06 20:52+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Turkish <tr@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: 2013-02-07 04:53+0000\n"
|
||||
"X-Generator: Launchpad (build 16477)\n"
|
||||
|
||||
#. module: l10n_be_hr_payroll
|
||||
#: help:hr.employee,disabled_spouse_bool:0
|
||||
msgid "if recipient spouse is declared disabled by law"
|
||||
msgstr "if recipient spouse is declared disabled by law"
|
||||
|
||||
#. module: l10n_be_hr_payroll
|
||||
#: help:hr.employee,disabled_children_bool:0
|
||||
msgid "if recipient children is/are declared disabled by law"
|
||||
msgstr "if recipient children is/are declared disabled by law"
|
||||
|
||||
#. module: l10n_be_hr_payroll
|
||||
#: field:hr.contract,misc_onss_deduction:0
|
||||
msgid "Miscellaneous exempt ONSS "
|
||||
msgstr "Miscellaneous exempt ONSS "
|
||||
|
||||
#. module: l10n_be_hr_payroll
|
||||
#: model:ir.model,name:l10n_be_hr_payroll.model_hr_employee
|
||||
msgid "Employee"
|
||||
msgstr "Employee"
|
||||
|
||||
#. module: l10n_be_hr_payroll
|
||||
#: field:hr.employee,disabled_spouse_bool:0
|
||||
msgid "Disabled Spouse"
|
||||
msgstr "Disabled Spouse"
|
||||
|
||||
#. module: l10n_be_hr_payroll
|
||||
#: field:hr.contract,retained_net_amount:0
|
||||
msgid "Net retained "
|
||||
msgstr "Net retained "
|
||||
|
||||
#. module: l10n_be_hr_payroll
|
||||
#: field:hr.employee,resident_bool:0
|
||||
msgid "Nonresident"
|
||||
msgstr "Nonresident"
|
||||
|
||||
#. module: l10n_be_hr_payroll
|
||||
#: help:hr.employee,resident_bool:0
|
||||
msgid "if recipient lives in a foreign country"
|
||||
msgstr "if recipient lives in a foreign country"
|
||||
|
||||
#. module: l10n_be_hr_payroll
|
||||
#: view:hr.employee:0
|
||||
msgid "if spouse has professionnel income or not"
|
||||
msgstr "if spouse has professionnel income or not"
|
||||
|
||||
#. module: l10n_be_hr_payroll
|
||||
#: field:hr.contract,insurance_employee_deduction:0
|
||||
msgid "Insurance Group - by worker "
|
||||
msgstr "Insurance Group - by worker "
|
||||
|
||||
#. module: l10n_be_hr_payroll
|
||||
#: selection:hr.employee,spouse_fiscal_status:0
|
||||
msgid "With Income"
|
||||
msgstr "With Income"
|
||||
|
||||
#. module: l10n_be_hr_payroll
|
||||
#: selection:hr.employee,spouse_fiscal_status:0
|
||||
msgid "Without Income"
|
||||
msgstr "Without Income"
|
||||
|
||||
#. module: l10n_be_hr_payroll
|
||||
#: field:hr.employee,disabled_children_number:0
|
||||
msgid "Number of disabled children"
|
||||
msgstr "Number of disabled children"
|
||||
|
||||
#. module: l10n_be_hr_payroll
|
||||
#: field:hr.contract,additional_net_amount:0
|
||||
msgid "Net supplements"
|
||||
msgstr "Net supplements"
|
||||
|
||||
#. module: l10n_be_hr_payroll
|
||||
#: field:hr.contract,car_company_amount:0
|
||||
msgid "Company car employer"
|
||||
msgstr "Company car employer"
|
||||
|
||||
#. module: l10n_be_hr_payroll
|
||||
#: field:hr.contract,misc_advantage_amount:0
|
||||
msgid "Benefits of various nature "
|
||||
msgstr "Benefits of various nature "
|
||||
|
||||
#. module: l10n_be_hr_payroll
|
||||
#: field:hr.contract,car_employee_deduction:0
|
||||
msgid "Company Car Deduction for Worker"
|
||||
msgstr "Company Car Deduction for Worker"
|
||||
|
||||
#. module: l10n_be_hr_payroll
|
||||
#: field:hr.employee,disabled_children_bool:0
|
||||
msgid "Disabled Children"
|
||||
msgstr "Disabled Children"
|
||||
|
||||
#. module: l10n_be_hr_payroll
|
||||
#: model:ir.model,name:l10n_be_hr_payroll.model_hr_contract
|
||||
msgid "Contract"
|
||||
msgstr "Contract"
|
||||
|
||||
#. module: l10n_be_hr_payroll
|
||||
#: field:hr.contract,meal_voucher_amount:0
|
||||
msgid "Check Value Meal "
|
||||
msgstr "Check Value Meal "
|
||||
|
||||
#. module: l10n_be_hr_payroll
|
||||
#: field:hr.contract,travel_reimbursement_amount:0
|
||||
msgid "Reimbursement of travel expenses"
|
||||
msgstr "Reimbursement of travel expenses"
|
||||
|
||||
#. module: l10n_be_hr_payroll
|
||||
#: constraint:hr.contract:0
|
||||
msgid "Error! Contract start-date must be less than contract end-date."
|
||||
msgstr "Error! Contract start-date must be less than contract end-date."
|
||||
|
||||
#. module: l10n_be_hr_payroll
|
||||
#: field:hr.employee,spouse_fiscal_status:0
|
||||
msgid "Tax status for spouse"
|
||||
msgstr "Tax status for spouse"
|
||||
|
||||
#. module: l10n_be_hr_payroll
|
||||
#: view:hr.employee:0
|
||||
msgid "number of dependent children declared as disabled"
|
||||
msgstr "number of dependent children declared as disabled"
|
||||
|
||||
#. module: l10n_be_hr_payroll
|
||||
#: constraint:hr.employee:0
|
||||
msgid "Error! You cannot create recursive hierarchy of Employee(s)."
|
||||
msgstr "Error! You cannot create recursive hierarchy of Employee(s)."
|
||||
|
||||
#. module: l10n_be_hr_payroll
|
||||
#: field:hr.contract,meal_voucher_employee_deduction:0
|
||||
msgid "Check Value Meal - by worker "
|
||||
msgstr "Check Value Meal - by worker "
|
||||
@@ -0,0 +1,160 @@
|
||||
# Turkish translation for openobject-addons
|
||||
# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
|
||||
# This file is distributed under the same license as the openobject-addons package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2013.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-11-24 02:53+0000\n"
|
||||
"PO-Revision-Date: 2013-02-06 20:52+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Turkish <tr@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: 2013-02-07 04:53+0000\n"
|
||||
"X-Generator: Launchpad (build 16477)\n"
|
||||
|
||||
#. module: l10n_be_invoice_bba
|
||||
#: sql_constraint:account.invoice:0
|
||||
msgid "Invoice Number must be unique per Company!"
|
||||
msgstr "Invoice Number must be unique per Company!"
|
||||
|
||||
#. module: l10n_be_invoice_bba
|
||||
#: model:ir.model,name:l10n_be_invoice_bba.model_account_invoice
|
||||
msgid "Invoice"
|
||||
msgstr "Invoice"
|
||||
|
||||
#. module: l10n_be_invoice_bba
|
||||
#: constraint:res.partner:0
|
||||
msgid "Error ! You cannot create recursive associated members."
|
||||
msgstr "Error ! You cannot create recursive associated members."
|
||||
|
||||
#. module: l10n_be_invoice_bba
|
||||
#: constraint:account.invoice:0
|
||||
msgid "Invalid BBA Structured Communication !"
|
||||
msgstr "Invalid BBA Structured Communication !"
|
||||
|
||||
#. module: l10n_be_invoice_bba
|
||||
#: selection:res.partner,out_inv_comm_algorithm:0
|
||||
msgid "Random"
|
||||
msgstr "Random"
|
||||
|
||||
#. module: l10n_be_invoice_bba
|
||||
#: help:res.partner,out_inv_comm_type:0
|
||||
msgid "Select Default Communication Type for Outgoing Invoices."
|
||||
msgstr "Select Default Communication Type for Outgoing Invoices."
|
||||
|
||||
#. module: l10n_be_invoice_bba
|
||||
#: help:res.partner,out_inv_comm_algorithm:0
|
||||
msgid ""
|
||||
"Select Algorithm to generate the Structured Communication on Outgoing "
|
||||
"Invoices."
|
||||
msgstr ""
|
||||
"Select Algorithm to generate the Structured Communication on Outgoing "
|
||||
"Invoices."
|
||||
|
||||
#. module: l10n_be_invoice_bba
|
||||
#: code:addons/l10n_be_invoice_bba/invoice.py:109
|
||||
#: code:addons/l10n_be_invoice_bba/invoice.py:135
|
||||
#, python-format
|
||||
msgid ""
|
||||
"The daily maximum of outgoing invoices with an automatically generated BBA "
|
||||
"Structured Communications has been exceeded!\n"
|
||||
"Please create manually a unique BBA Structured Communication."
|
||||
msgstr ""
|
||||
"The daily maximum of outgoing invoices with an automatically generated BBA "
|
||||
"Structured Communications has been exceeded!\n"
|
||||
"Please create manually a unique BBA Structured Communication."
|
||||
|
||||
#. module: l10n_be_invoice_bba
|
||||
#: code:addons/l10n_be_invoice_bba/invoice.py:150
|
||||
#, python-format
|
||||
msgid "Error!"
|
||||
msgstr "Error!"
|
||||
|
||||
#. module: l10n_be_invoice_bba
|
||||
#: code:addons/l10n_be_invoice_bba/invoice.py:121
|
||||
#, python-format
|
||||
msgid ""
|
||||
"The Partner should have a 3-7 digit Reference Number for the generation of "
|
||||
"BBA Structured Communications!\n"
|
||||
"Please correct the Partner record."
|
||||
msgstr ""
|
||||
"The Partner should have a 3-7 digit Reference Number for the generation of "
|
||||
"BBA Structured Communications!\n"
|
||||
"Please correct the Partner record."
|
||||
|
||||
#. module: l10n_be_invoice_bba
|
||||
#: constraint:res.partner:0
|
||||
msgid "Error: Invalid ean code"
|
||||
msgstr "Error: Invalid ean code"
|
||||
|
||||
#. module: l10n_be_invoice_bba
|
||||
#: code:addons/l10n_be_invoice_bba/invoice.py:108
|
||||
#: code:addons/l10n_be_invoice_bba/invoice.py:120
|
||||
#: code:addons/l10n_be_invoice_bba/invoice.py:134
|
||||
#: code:addons/l10n_be_invoice_bba/invoice.py:162
|
||||
#: code:addons/l10n_be_invoice_bba/invoice.py:172
|
||||
#: code:addons/l10n_be_invoice_bba/invoice.py:197
|
||||
#, python-format
|
||||
msgid "Warning!"
|
||||
msgstr "Warning!"
|
||||
|
||||
#. module: l10n_be_invoice_bba
|
||||
#: selection:res.partner,out_inv_comm_algorithm:0
|
||||
msgid "Customer Reference"
|
||||
msgstr "Customer Reference"
|
||||
|
||||
#. module: l10n_be_invoice_bba
|
||||
#: field:res.partner,out_inv_comm_type:0
|
||||
msgid "Communication Type"
|
||||
msgstr "Communication Type"
|
||||
|
||||
#. module: l10n_be_invoice_bba
|
||||
#: code:addons/l10n_be_invoice_bba/invoice.py:173
|
||||
#: code:addons/l10n_be_invoice_bba/invoice.py:198
|
||||
#, python-format
|
||||
msgid ""
|
||||
"The BBA Structured Communication has already been used!\n"
|
||||
"Please create manually a unique BBA Structured Communication."
|
||||
msgstr ""
|
||||
"The BBA Structured Communication has already been used!\n"
|
||||
"Please create manually a unique BBA Structured Communication."
|
||||
|
||||
#. module: l10n_be_invoice_bba
|
||||
#: selection:res.partner,out_inv_comm_algorithm:0
|
||||
msgid "Date"
|
||||
msgstr "Date"
|
||||
|
||||
#. module: l10n_be_invoice_bba
|
||||
#: model:ir.model,name:l10n_be_invoice_bba.model_res_partner
|
||||
msgid "Partner"
|
||||
msgstr "Partner"
|
||||
|
||||
#. module: l10n_be_invoice_bba
|
||||
#: code:addons/l10n_be_invoice_bba/invoice.py:151
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Unsupported Structured Communication Type Algorithm '%s' !\n"
|
||||
"Please contact your OpenERP support channel."
|
||||
msgstr ""
|
||||
"Unsupported Structured Communication Type Algorithm '%s' !\n"
|
||||
"Please contact your OpenERP support channel."
|
||||
|
||||
#. module: l10n_be_invoice_bba
|
||||
#: field:res.partner,out_inv_comm_algorithm:0
|
||||
msgid "Communication Algorithm"
|
||||
msgstr "Communication Algorithm"
|
||||
|
||||
#. module: l10n_be_invoice_bba
|
||||
#: code:addons/l10n_be_invoice_bba/invoice.py:163
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Empty BBA Structured Communication!\n"
|
||||
"Please fill in a unique BBA Structured Communication."
|
||||
msgstr ""
|
||||
"Empty BBA Structured Communication!\n"
|
||||
"Please fill in a unique BBA Structured Communication."
|
||||
@@ -0,0 +1,53 @@
|
||||
# Turkish translation for openobject-addons
|
||||
# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
|
||||
# This file is distributed under the same license as the openobject-addons package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2013.
|
||||
#
|
||||
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: 2013-02-06 11:19+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Turkish <tr@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: 2013-02-07 04:53+0000\n"
|
||||
"X-Generator: Launchpad (build 16477)\n"
|
||||
|
||||
#. module: l10n_ar
|
||||
#: model:ir.module.module,description:l10n_ar.module_meta_information
|
||||
msgid ""
|
||||
"\n"
|
||||
" Argentinian Accounting : chart of Account\n"
|
||||
" "
|
||||
msgstr ""
|
||||
"\n"
|
||||
" Arjantin Muhasebe : Hesap planı\n"
|
||||
" "
|
||||
|
||||
#. module: l10n_ar
|
||||
#: model:ir.module.module,shortdesc:l10n_ar.module_meta_information
|
||||
msgid "Argentinian Chart of Account"
|
||||
msgstr "Arjantin Hesap Planı"
|
||||
|
||||
#. module: l10n_ar
|
||||
#: model:ir.actions.todo,note:l10n_ar.config_call_account_template_in_minimal
|
||||
msgid ""
|
||||
"Generate Chart of Accounts from a Chart Template. You will be asked to pass "
|
||||
"the name of the company, the chart template to follow, the no. of digits to "
|
||||
"generate the code for your accounts and Bank account, currency to create "
|
||||
"Journals. Thus,the pure copy of chart Template is generated.\n"
|
||||
"\tThis is the same wizard that runs from Financial "
|
||||
"Management/Configuration/Financial Accounting/Financial Accounts/Generate "
|
||||
"Chart of Accounts from a Chart Template."
|
||||
msgstr ""
|
||||
"Bir Tablo Şablonundan bir Hesap Tablosu oluşturun. Firma adını girmeniz, "
|
||||
"hesaplarınızın ve banka hesaplarınızın kodlarının oluşturulması için rakam "
|
||||
"sayısını, yevmiyeleri oluşturmak için para birimini girmeniz istenecektir. "
|
||||
"Böylece sade bir hesap planı oluşturumuş olur.\n"
|
||||
"\t Bu sihirbaz, Mali Yönetim/Yapılandırma/Mali Muhasebe/Mali Hesaplar/Tablo "
|
||||
"Şablonundan Hesap planı Oluşturma menüsünden çalıştırılan sihirbaz ile "
|
||||
"aynıdır."
|
||||
@@ -0,0 +1,135 @@
|
||||
# Turkish translation for openobject-addons
|
||||
# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
|
||||
# This file is distributed under the same license as the openobject-addons package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2013.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-11-24 02:53+0000\n"
|
||||
"PO-Revision-Date: 2013-02-06 20:54+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Turkish <tr@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: 2013-02-07 04:53+0000\n"
|
||||
"X-Generator: Launchpad (build 16477)\n"
|
||||
|
||||
#. module: l10n_fr_rib
|
||||
#: constraint:res.partner.bank:0
|
||||
msgid ""
|
||||
"\n"
|
||||
"Please define BIC/Swift code on bank for bank type IBAN Account to make "
|
||||
"valid payments"
|
||||
msgstr ""
|
||||
"\n"
|
||||
"Please define BIC/Swift code on bank for bank type IBAN Account to make "
|
||||
"valid payments"
|
||||
|
||||
#. module: l10n_fr_rib
|
||||
#: model:res.partner.bank.type,name:l10n_fr_rib.bank_rib
|
||||
msgid "RIB and optional IBAN"
|
||||
msgstr "RIB and optional IBAN"
|
||||
|
||||
#. module: l10n_fr_rib
|
||||
#: field:res.partner.bank,rib_acc_number:0
|
||||
msgid "RIB account number"
|
||||
msgstr "RIB account number"
|
||||
|
||||
#. module: l10n_fr_rib
|
||||
#: field:res.partner.bank,bank_code:0
|
||||
msgid "Bank Code"
|
||||
msgstr "Bank Code"
|
||||
|
||||
#. module: l10n_fr_rib
|
||||
#: code:addons/l10n_fr_rib/bank.py:54
|
||||
#, python-format
|
||||
msgid "The RIB key %s does not correspond to the other codes: %s %s %s."
|
||||
msgstr "The RIB key %s does not correspond to the other codes: %s %s %s."
|
||||
|
||||
#. module: l10n_fr_rib
|
||||
#: model:res.partner.bank.type.field,name:l10n_fr_rib.rib_office_field
|
||||
msgid "office"
|
||||
msgstr "office"
|
||||
|
||||
#. module: l10n_fr_rib
|
||||
#: field:res.bank,rib_code:0
|
||||
msgid "RIB Bank Code"
|
||||
msgstr "RIB Bank Code"
|
||||
|
||||
#. module: l10n_fr_rib
|
||||
#: code:addons/l10n_fr_rib/bank.py:58
|
||||
#, python-format
|
||||
msgid "The IBAN %s is not valid."
|
||||
msgstr "The IBAN %s is not valid."
|
||||
|
||||
#. module: l10n_fr_rib
|
||||
#: model:ir.model,name:l10n_fr_rib.model_res_partner_bank
|
||||
msgid "Bank Accounts"
|
||||
msgstr "Bank Accounts"
|
||||
|
||||
#. module: l10n_fr_rib
|
||||
#: field:res.partner.bank,office:0
|
||||
msgid "Office Code"
|
||||
msgstr "Office Code"
|
||||
|
||||
#. module: l10n_fr_rib
|
||||
#: model:res.partner.bank.type.field,name:l10n_fr_rib.rib_bic_field
|
||||
msgid "bank_bic"
|
||||
msgstr "bank_bic"
|
||||
|
||||
#. module: l10n_fr_rib
|
||||
#: model:res.partner.bank.type.field,name:l10n_fr_rib.rib_bank_code_field
|
||||
msgid "bank_code"
|
||||
msgstr "bank_code"
|
||||
|
||||
#. module: l10n_fr_rib
|
||||
#: model:res.partner.bank.type.field,name:l10n_fr_rib.rib_key_field
|
||||
msgid "key"
|
||||
msgstr "key"
|
||||
|
||||
#. module: l10n_fr_rib
|
||||
#: code:addons/l10n_fr_rib/bank.py:53
|
||||
#: code:addons/l10n_fr_rib/bank.py:58
|
||||
#, python-format
|
||||
msgid "Error!"
|
||||
msgstr "Error!"
|
||||
|
||||
#. module: l10n_fr_rib
|
||||
#: help:res.partner.bank,key:0
|
||||
msgid ""
|
||||
"The key is a number allowing to check the correctness of the other codes."
|
||||
msgstr ""
|
||||
"The key is a number allowing to check the correctness of the other codes."
|
||||
|
||||
#. module: l10n_fr_rib
|
||||
#: field:res.partner.bank,key:0
|
||||
msgid "Key"
|
||||
msgstr "Key"
|
||||
|
||||
#. module: l10n_fr_rib
|
||||
#: model:res.partner.bank.type.field,name:l10n_fr_rib.rib_rib_acc_number_field
|
||||
msgid "rib_acc_number"
|
||||
msgstr "rib_acc_number"
|
||||
|
||||
#. module: l10n_fr_rib
|
||||
#: model:res.partner.bank.type,format_layout:l10n_fr_rib.bank_rib
|
||||
msgid "%(bank_name)s: %(bank_code)s %(office)s %(rib_acc_number)s %(key)s"
|
||||
msgstr "%(bank_name)s: %(bank_code)s %(office)s %(rib_acc_number)s %(key)s"
|
||||
|
||||
#. module: l10n_fr_rib
|
||||
#: constraint:res.partner.bank:0
|
||||
msgid "The RIB and/or IBAN is not valid"
|
||||
msgstr "The RIB and/or IBAN is not valid"
|
||||
|
||||
#. module: l10n_fr_rib
|
||||
#: model:ir.model,name:l10n_fr_rib.model_res_bank
|
||||
msgid "Bank"
|
||||
msgstr "Bank"
|
||||
|
||||
#. module: l10n_fr_rib
|
||||
#: model:res.partner.bank.type.field,name:l10n_fr_rib.rib_acc_number_field
|
||||
msgid "acc_number"
|
||||
msgstr "acc_number"
|
||||
File diff suppressed because it is too large
Load Diff
@@ -44,6 +44,7 @@ If you want to save your employees' time and avoid them to always have coins in
|
||||
'report/report_lunch_order_view.xml',
|
||||
'security/ir.model.access.csv',],
|
||||
'css':['static/src/css/lunch.css'],
|
||||
'images': ['images/new_order.jpeg','images/lunch_account.jpeg','images/order_by_supplier_analysis.jpeg','images/alert.jpeg'],
|
||||
'demo': ['lunch_demo.xml',],
|
||||
'installable': True,
|
||||
'application' : True,
|
||||
|
||||
@@ -0,0 +1,896 @@
|
||||
# Mongolian translation for openobject-addons
|
||||
# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
|
||||
# This file is distributed under the same license as the openobject-addons package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2013.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-12-21 17:05+0000\n"
|
||||
"PO-Revision-Date: 2013-02-06 10:30+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Mongolian <mn@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: 2013-02-07 04:53+0000\n"
|
||||
"X-Generator: Launchpad (build 16477)\n"
|
||||
|
||||
#. module: lunch
|
||||
#: field:lunch.product,category_id:0
|
||||
#: field:lunch.product.category,name:0
|
||||
msgid "Category"
|
||||
msgstr "Категори"
|
||||
|
||||
#. module: lunch
|
||||
#: model:ir.ui.menu,name:lunch.menu_lunch_order_by_supplier_form
|
||||
msgid "Today's Orders by Supplier"
|
||||
msgstr "Нийлүүлэгчийн Өнөөдөрийн Захиалгууд"
|
||||
|
||||
#. module: lunch
|
||||
#: view:lunch.order:0
|
||||
msgid "My Orders"
|
||||
msgstr ""
|
||||
|
||||
#. module: lunch
|
||||
#: selection:lunch.order,state:0
|
||||
msgid "Partially Confirmed"
|
||||
msgstr "Хэсэгчилэн Зөвшөөрөгдсөн"
|
||||
|
||||
#. module: lunch
|
||||
#: view:lunch.cashmove:0
|
||||
#: view:lunch.order.line:0
|
||||
msgid "Group By..."
|
||||
msgstr "Бүлэглэвэл..."
|
||||
|
||||
#. module: lunch
|
||||
#: field:lunch.alert,sunday:0
|
||||
msgid "Sunday"
|
||||
msgstr "Ням"
|
||||
|
||||
#. module: lunch
|
||||
#: field:lunch.order.line,supplier:0
|
||||
#: field:lunch.product,supplier:0
|
||||
msgid "Supplier"
|
||||
msgstr "Нийлүүлэгч"
|
||||
|
||||
#. module: lunch
|
||||
#: view:lunch.order.line:0
|
||||
msgid "Today"
|
||||
msgstr "Өнөөдөр"
|
||||
|
||||
#. module: lunch
|
||||
#: selection:report.lunch.order.line,month:0
|
||||
msgid "March"
|
||||
msgstr "3-р сар"
|
||||
|
||||
#. module: lunch
|
||||
#: view:lunch.cashmove:0
|
||||
msgid "By Employee"
|
||||
msgstr "Ажилтнаар"
|
||||
|
||||
#. module: lunch
|
||||
#: field:lunch.alert,friday:0
|
||||
msgid "Friday"
|
||||
msgstr "Баасан"
|
||||
|
||||
#. module: lunch
|
||||
#: view:lunch.validation:0
|
||||
msgid "validate order lines"
|
||||
msgstr ""
|
||||
|
||||
#. module: lunch
|
||||
#: view:lunch.order.line:0
|
||||
msgid "Order lines Tree"
|
||||
msgstr ""
|
||||
|
||||
#. module: lunch
|
||||
#: field:lunch.alert,specific_day:0
|
||||
#: field:report.lunch.order.line,day:0
|
||||
msgid "Day"
|
||||
msgstr "Өдөр"
|
||||
|
||||
#. module: lunch
|
||||
#: view:lunch.order.line:0
|
||||
#: selection:lunch.order.line,state:0
|
||||
msgid "Received"
|
||||
msgstr "Хүлээн авсан"
|
||||
|
||||
#. module: lunch
|
||||
#: view:lunch.order.line:0
|
||||
msgid "By Supplier"
|
||||
msgstr ""
|
||||
|
||||
#. module: lunch
|
||||
#: model:ir.actions.act_window,help:lunch.action_lunch_order_tree
|
||||
msgid ""
|
||||
"<p class=\"oe_view_nocontent_create\">\n"
|
||||
" Click to create a lunch order. \n"
|
||||
" </p>\n"
|
||||
" <p>\n"
|
||||
" A lunch order is defined by its user, date and order lines.\n"
|
||||
" Each order line corresponds to a product, an additional note "
|
||||
"and a price.\n"
|
||||
" Before selecting your order lines, don't forget to read the "
|
||||
"warnings displayed in the reddish area.\n"
|
||||
" </p>\n"
|
||||
" "
|
||||
msgstr ""
|
||||
|
||||
#. module: lunch
|
||||
#: view:lunch.order.line:0
|
||||
msgid "Not Received"
|
||||
msgstr ""
|
||||
|
||||
#. module: lunch
|
||||
#: model:ir.actions.act_window,name:lunch.action_lunch_order_by_supplier_form
|
||||
#: model:ir.ui.menu,name:lunch.menu_lunch_control_suppliers
|
||||
msgid "Orders by Supplier"
|
||||
msgstr ""
|
||||
|
||||
#. module: lunch
|
||||
#: view:lunch.validation:0
|
||||
msgid "Receive Meals"
|
||||
msgstr ""
|
||||
|
||||
#. module: lunch
|
||||
#: view:lunch.cashmove:0
|
||||
msgid "cashmove form"
|
||||
msgstr ""
|
||||
|
||||
#. module: lunch
|
||||
#: model:ir.actions.act_window,help:lunch.action_lunch_cashmove_form
|
||||
msgid ""
|
||||
"<p>\n"
|
||||
" Here you can see your cash moves.<br/>A cash moves can be "
|
||||
"either an expense or a payment.\n"
|
||||
" An expense is automatically created when an order is "
|
||||
"received while a payment is a reimbursement to the company encoded by the "
|
||||
"manager.\n"
|
||||
" </p>\n"
|
||||
" "
|
||||
msgstr ""
|
||||
|
||||
#. module: lunch
|
||||
#: field:lunch.cashmove,amount:0
|
||||
msgid "Amount"
|
||||
msgstr "Дүн"
|
||||
|
||||
#. module: lunch
|
||||
#: model:ir.actions.act_window,name:lunch.action_lunch_products
|
||||
#: model:ir.ui.menu,name:lunch.menu_lunch_products
|
||||
#: field:lunch.order,order_line_ids:0
|
||||
msgid "Products"
|
||||
msgstr "Бүтээгдэхүүнүүд"
|
||||
|
||||
#. module: lunch
|
||||
#: view:lunch.order.line:0
|
||||
msgid "By Date"
|
||||
msgstr "Огноогоор"
|
||||
|
||||
#. module: lunch
|
||||
#: selection:lunch.order,state:0
|
||||
#: view:lunch.order.line:0
|
||||
#: selection:lunch.order.line,state:0
|
||||
msgid "Cancelled"
|
||||
msgstr "Цуцлагдсан"
|
||||
|
||||
#. module: lunch
|
||||
#: view:lunch.cashmove:0
|
||||
msgid "lunch employee payment"
|
||||
msgstr ""
|
||||
|
||||
#. module: lunch
|
||||
#: view:lunch.alert:0
|
||||
msgid "alert tree"
|
||||
msgstr ""
|
||||
|
||||
#. module: lunch
|
||||
#: model:ir.model,name:lunch.model_report_lunch_order_line
|
||||
msgid "Lunch Orders Statistics"
|
||||
msgstr ""
|
||||
|
||||
#. module: lunch
|
||||
#: model:ir.model,name:lunch.model_lunch_alert
|
||||
msgid "Lunch Alert"
|
||||
msgstr ""
|
||||
|
||||
#. module: lunch
|
||||
#: code:addons/lunch/lunch.py:183
|
||||
#, python-format
|
||||
msgid "Select a product and put your order comments on the note."
|
||||
msgstr ""
|
||||
|
||||
#. module: lunch
|
||||
#: selection:lunch.alert,alter_type:0
|
||||
msgid "Every Week"
|
||||
msgstr ""
|
||||
|
||||
#. module: lunch
|
||||
#: model:ir.actions.act_window,name:lunch.action_lunch_cashmove
|
||||
msgid "Register Cash Moves"
|
||||
msgstr ""
|
||||
|
||||
#. module: lunch
|
||||
#: selection:lunch.order,state:0
|
||||
msgid "Confirmed"
|
||||
msgstr ""
|
||||
|
||||
#. module: lunch
|
||||
#: view:lunch.order:0
|
||||
msgid "lunch orders"
|
||||
msgstr ""
|
||||
|
||||
#. module: lunch
|
||||
#: view:lunch.order.line:0
|
||||
msgid "Confirm"
|
||||
msgstr "Батлах"
|
||||
|
||||
#. module: lunch
|
||||
#: model:ir.actions.act_window,name:lunch.action_lunch_cashmove_form
|
||||
msgid "Your Account"
|
||||
msgstr ""
|
||||
|
||||
#. module: lunch
|
||||
#: model:ir.ui.menu,name:lunch.menu_lunch_cashmove_form
|
||||
msgid "Your Lunch Account"
|
||||
msgstr ""
|
||||
|
||||
#. module: lunch
|
||||
#: field:lunch.alert,active_from:0
|
||||
msgid "Between"
|
||||
msgstr ""
|
||||
|
||||
#. module: lunch
|
||||
#: model:ir.model,name:lunch.model_lunch_order_order
|
||||
msgid "Wizard to order a meal"
|
||||
msgstr ""
|
||||
|
||||
#. module: lunch
|
||||
#: selection:lunch.order,state:0
|
||||
#: selection:lunch.order.line,state:0
|
||||
msgid "New"
|
||||
msgstr ""
|
||||
|
||||
#. module: lunch
|
||||
#: code:addons/lunch/lunch.py:180
|
||||
#, python-format
|
||||
msgid "This is the first time you order a meal"
|
||||
msgstr "Энэ таны анхны хоол захиалга"
|
||||
|
||||
#. module: lunch
|
||||
#: field:report.lunch.order.line,price_total:0
|
||||
msgid "Total Price"
|
||||
msgstr "Нийт Үнэ"
|
||||
|
||||
#. module: lunch
|
||||
#: model:ir.model,name:lunch.model_lunch_validation
|
||||
msgid "lunch validation for order"
|
||||
msgstr ""
|
||||
|
||||
#. module: lunch
|
||||
#: report:lunch.order.line:0
|
||||
msgid "Name/Date"
|
||||
msgstr "Нэр/Огноо"
|
||||
|
||||
#. module: lunch
|
||||
#: report:lunch.order.line:0
|
||||
msgid "Total :"
|
||||
msgstr ""
|
||||
|
||||
#. module: lunch
|
||||
#: selection:report.lunch.order.line,month:0
|
||||
msgid "July"
|
||||
msgstr "7-р сар"
|
||||
|
||||
#. module: lunch
|
||||
#: model:ir.ui.menu,name:lunch.menu_lunch_config
|
||||
msgid "Configuration"
|
||||
msgstr "Тохируулга"
|
||||
|
||||
#. module: lunch
|
||||
#: field:lunch.order,state:0
|
||||
#: field:lunch.order.line,state:0
|
||||
msgid "Status"
|
||||
msgstr ""
|
||||
|
||||
#. module: lunch
|
||||
#: view:lunch.order.order:0
|
||||
msgid ""
|
||||
"Order a meal doesn't mean that we have to pay it.\n"
|
||||
" A meal should be paid when it is received."
|
||||
msgstr ""
|
||||
|
||||
#. module: lunch
|
||||
#: model:ir.actions.act_window,name:lunch.action_lunch_control_accounts
|
||||
#: model:ir.ui.menu,name:lunch.menu_lunch_control_accounts
|
||||
msgid "Control Accounts"
|
||||
msgstr ""
|
||||
|
||||
#. module: lunch
|
||||
#: selection:lunch.alert,alter_type:0
|
||||
msgid "Every Day"
|
||||
msgstr ""
|
||||
|
||||
#. module: lunch
|
||||
#: field:lunch.order.line,cashmove:0
|
||||
msgid "Cash Move"
|
||||
msgstr ""
|
||||
|
||||
#. module: lunch
|
||||
#: model:ir.actions.act_window,name:lunch.order_order_lines
|
||||
msgid "Order meals"
|
||||
msgstr ""
|
||||
|
||||
#. module: lunch
|
||||
#: view:lunch.alert:0
|
||||
msgid "Schedule Hour"
|
||||
msgstr ""
|
||||
|
||||
#. module: lunch
|
||||
#: selection:report.lunch.order.line,month:0
|
||||
msgid "September"
|
||||
msgstr "9-р сар"
|
||||
|
||||
#. module: lunch
|
||||
#: model:ir.actions.act_window,help:lunch.action_lunch_control_suppliers
|
||||
msgid ""
|
||||
"<p>\n"
|
||||
" Here you can see every orders grouped by suppliers and by "
|
||||
"date.\n"
|
||||
" </p>\n"
|
||||
" <p>\n"
|
||||
" - Click on the <img "
|
||||
"src=\"../../../web/static/src/img/icons/terp-call-start.png\"/> to announce "
|
||||
"that the order is ordered <br/>\n"
|
||||
" - Click on the <img "
|
||||
"src=\"../../../web/static/src/img/icons/gtk-apply.png\"/> to announce that "
|
||||
"the order is received <br/>\n"
|
||||
" - Click on the <img "
|
||||
"src=\"../../../web/static/src/img/icons/gtk-cancel.png\"/> red X to announce "
|
||||
"that the order isn't available\n"
|
||||
" </p>\n"
|
||||
" "
|
||||
msgstr ""
|
||||
|
||||
#. module: lunch
|
||||
#: field:lunch.alert,tuesday:0
|
||||
msgid "Tuesday"
|
||||
msgstr ""
|
||||
|
||||
#. module: lunch
|
||||
#: model:ir.actions.act_window,name:lunch.action_lunch_order_tree
|
||||
msgid "Your Orders"
|
||||
msgstr "Таны захиалгууд"
|
||||
|
||||
#. module: lunch
|
||||
#: field:report.lunch.order.line,month:0
|
||||
msgid "Month"
|
||||
msgstr "Сар"
|
||||
|
||||
#. module: lunch
|
||||
#: model:ir.actions.act_window,help:lunch.action_lunch_products
|
||||
msgid ""
|
||||
"<p class=\"oe_view_nocontent_create\">\n"
|
||||
" Click to create a product for lunch. \n"
|
||||
" </p>\n"
|
||||
" <p>\n"
|
||||
" A product is defined by its name, category, price and "
|
||||
"supplier.\n"
|
||||
" </p>\n"
|
||||
" "
|
||||
msgstr ""
|
||||
|
||||
#. module: lunch
|
||||
#: view:lunch.alert:0
|
||||
#: field:lunch.alert,message:0
|
||||
msgid "Message"
|
||||
msgstr "Зурвас"
|
||||
|
||||
#. module: lunch
|
||||
#: view:lunch.order.order:0
|
||||
msgid "Order Meals"
|
||||
msgstr ""
|
||||
|
||||
#. module: lunch
|
||||
#: view:lunch.cancel:0
|
||||
#: view:lunch.order.order:0
|
||||
#: view:lunch.validation:0
|
||||
msgid "or"
|
||||
msgstr "эсвэл"
|
||||
|
||||
#. module: lunch
|
||||
#: model:ir.actions.act_window,help:lunch.action_lunch_product_categories
|
||||
msgid ""
|
||||
"<p class=\"oe_view_nocontent_create\">\n"
|
||||
" Click to create a lunch category. \n"
|
||||
" </p>\n"
|
||||
" <p>\n"
|
||||
" Here you can find every lunch categories for products.\n"
|
||||
" </p>\n"
|
||||
" "
|
||||
msgstr ""
|
||||
|
||||
#. module: lunch
|
||||
#: view:lunch.order.order:0
|
||||
msgid "Order meal"
|
||||
msgstr ""
|
||||
|
||||
#. module: lunch
|
||||
#: model:ir.actions.act_window,name:lunch.action_lunch_product_categories
|
||||
#: model:ir.ui.menu,name:lunch.menu_lunch_product_categories
|
||||
msgid "Product Categories"
|
||||
msgstr "Барааны ангилал"
|
||||
|
||||
#. module: lunch
|
||||
#: model:ir.actions.act_window,name:lunch.action_lunch_control_suppliers
|
||||
msgid "Control Suppliers"
|
||||
msgstr ""
|
||||
|
||||
#. module: lunch
|
||||
#: view:lunch.alert:0
|
||||
msgid "Schedule Date"
|
||||
msgstr ""
|
||||
|
||||
#. module: lunch
|
||||
#: model:ir.actions.act_window,name:lunch.action_lunch_alert
|
||||
#: model:ir.ui.menu,name:lunch.menu_lunch_alert
|
||||
#: field:lunch.order,alerts:0
|
||||
msgid "Alerts"
|
||||
msgstr ""
|
||||
|
||||
#. module: lunch
|
||||
#: field:lunch.order.line,note:0
|
||||
#: field:report.lunch.order.line,note:0
|
||||
msgid "Note"
|
||||
msgstr ""
|
||||
|
||||
#. module: lunch
|
||||
#: code:addons/lunch/lunch.py:250
|
||||
#, python-format
|
||||
msgid "Add"
|
||||
msgstr ""
|
||||
|
||||
#. module: lunch
|
||||
#: view:lunch.product:0
|
||||
#: view:lunch.product.category:0
|
||||
msgid "Products Form"
|
||||
msgstr ""
|
||||
|
||||
#. module: lunch
|
||||
#: model:ir.actions.act_window,name:lunch.cancel_order_lines
|
||||
msgid "Cancel meals"
|
||||
msgstr ""
|
||||
|
||||
#. module: lunch
|
||||
#: model:ir.model,name:lunch.model_lunch_cashmove
|
||||
#: view:lunch.cashmove:0
|
||||
msgid "lunch cashmove"
|
||||
msgstr ""
|
||||
|
||||
#. module: lunch
|
||||
#: view:lunch.cancel:0
|
||||
msgid "Are you sure you want to cancel these meals?"
|
||||
msgstr ""
|
||||
|
||||
#. module: lunch
|
||||
#: view:lunch.cashmove:0
|
||||
msgid "My Account"
|
||||
msgstr ""
|
||||
|
||||
#. module: lunch
|
||||
#: selection:report.lunch.order.line,month:0
|
||||
msgid "August"
|
||||
msgstr ""
|
||||
|
||||
#. module: lunch
|
||||
#: field:lunch.alert,monday:0
|
||||
msgid "Monday"
|
||||
msgstr ""
|
||||
|
||||
#. module: lunch
|
||||
#: field:lunch.order.line,name:0
|
||||
msgid "unknown"
|
||||
msgstr ""
|
||||
|
||||
#. module: lunch
|
||||
#: model:ir.actions.act_window,name:lunch.validate_order_lines
|
||||
msgid "Receive meals"
|
||||
msgstr ""
|
||||
|
||||
#. module: lunch
|
||||
#: selection:report.lunch.order.line,month:0
|
||||
msgid "June"
|
||||
msgstr ""
|
||||
|
||||
#. module: lunch
|
||||
#: field:lunch.cashmove,user_id:0
|
||||
#: field:lunch.order,user_id:0
|
||||
#: field:report.lunch.order.line,user_id:0
|
||||
msgid "User Name"
|
||||
msgstr ""
|
||||
|
||||
#. module: lunch
|
||||
#: model:ir.module.category,name:lunch.module_lunch_category
|
||||
#: model:ir.ui.menu,name:lunch.menu_lunch
|
||||
#: model:ir.ui.menu,name:lunch.menu_lunch_title
|
||||
msgid "Lunch"
|
||||
msgstr ""
|
||||
|
||||
#. module: lunch
|
||||
#: model:ir.model,name:lunch.model_lunch_order_line
|
||||
msgid "lunch order line"
|
||||
msgstr ""
|
||||
|
||||
#. module: lunch
|
||||
#: model:ir.model,name:lunch.model_lunch_product
|
||||
msgid "lunch product"
|
||||
msgstr ""
|
||||
|
||||
#. module: lunch
|
||||
#: field:lunch.order.line,user_id:0
|
||||
#: model:res.groups,name:lunch.group_lunch_user
|
||||
msgid "User"
|
||||
msgstr ""
|
||||
|
||||
#. module: lunch
|
||||
#: field:lunch.cashmove,date:0
|
||||
#: field:lunch.order,date:0
|
||||
#: field:lunch.order.line,date:0
|
||||
msgid "Date"
|
||||
msgstr ""
|
||||
|
||||
#. module: lunch
|
||||
#: selection:report.lunch.order.line,month:0
|
||||
msgid "November"
|
||||
msgstr ""
|
||||
|
||||
#. module: lunch
|
||||
#: view:lunch.order:0
|
||||
msgid "Orders Tree"
|
||||
msgstr "Захиалгийн мод"
|
||||
|
||||
#. module: lunch
|
||||
#: view:lunch.order:0
|
||||
msgid "Orders Form"
|
||||
msgstr "Захиалгуудын Форм"
|
||||
|
||||
#. module: lunch
|
||||
#: view:lunch.alert:0
|
||||
#: view:lunch.order.line:0
|
||||
msgid "Search"
|
||||
msgstr ""
|
||||
|
||||
#. module: lunch
|
||||
#: selection:report.lunch.order.line,month:0
|
||||
msgid "October"
|
||||
msgstr ""
|
||||
|
||||
#. module: lunch
|
||||
#: model:ir.actions.act_window,help:lunch.action_lunch_order_by_supplier_form
|
||||
msgid ""
|
||||
"<p>\n"
|
||||
" Here you can see today's orders grouped by suppliers.\n"
|
||||
" </p>\n"
|
||||
" <p>\n"
|
||||
" - Click on the <img "
|
||||
"src=\"../../../web/static/src/img/icons/terp-call-start.png\"/> to announce "
|
||||
"that the order is ordered <br/>\n"
|
||||
" - Click on the <img "
|
||||
"src=\"../../../web/static/src/img/icons/gtk-apply.png\"/> to announce that "
|
||||
"the order is received <br/>\n"
|
||||
" - Click on the <img "
|
||||
"src=\"../../../web/static/src/img/icons/gtk-cancel.png\"/> to announce that "
|
||||
"the order isn't available\n"
|
||||
" </p>\n"
|
||||
" "
|
||||
msgstr ""
|
||||
|
||||
#. module: lunch
|
||||
#: selection:report.lunch.order.line,month:0
|
||||
msgid "January"
|
||||
msgstr ""
|
||||
|
||||
#. module: lunch
|
||||
#: selection:lunch.alert,alter_type:0
|
||||
msgid "Specific Day"
|
||||
msgstr ""
|
||||
|
||||
#. module: lunch
|
||||
#: field:lunch.alert,wednesday:0
|
||||
msgid "Wednesday"
|
||||
msgstr "Лхагва"
|
||||
|
||||
#. module: lunch
|
||||
#: view:lunch.product.category:0
|
||||
msgid "Product Category: "
|
||||
msgstr ""
|
||||
|
||||
#. module: lunch
|
||||
#: field:lunch.alert,active_to:0
|
||||
msgid "And"
|
||||
msgstr "Ба"
|
||||
|
||||
#. module: lunch
|
||||
#: selection:lunch.order.line,state:0
|
||||
msgid "Ordered"
|
||||
msgstr ""
|
||||
|
||||
#. module: lunch
|
||||
#: field:report.lunch.order.line,date:0
|
||||
msgid "Date Order"
|
||||
msgstr "Захиалсан огноо"
|
||||
|
||||
#. module: lunch
|
||||
#: view:lunch.cancel:0
|
||||
msgid "Cancel Orders"
|
||||
msgstr ""
|
||||
|
||||
#. module: lunch
|
||||
#: model:ir.actions.act_window,help:lunch.action_lunch_alert
|
||||
msgid ""
|
||||
"<p class=\"oe_view_nocontent_create\">\n"
|
||||
" Click to create a lunch alert. \n"
|
||||
" </p>\n"
|
||||
" <p>\n"
|
||||
" Alerts are used to warn employee from possible issues "
|
||||
"concerning the lunch orders.\n"
|
||||
" To create a lunch alert you have to define its recurrency, "
|
||||
"the time interval during which the alert should be executed and the message "
|
||||
"to display.\n"
|
||||
" </p>\n"
|
||||
" <p>\n"
|
||||
" Example: <br/>\n"
|
||||
" - Recurency: Everyday<br/>\n"
|
||||
" - Time interval: from 00h00 am to 11h59 pm<br/>\n"
|
||||
" - Message: \"You must order before 10h30 am\"\n"
|
||||
" </p>\n"
|
||||
" "
|
||||
msgstr ""
|
||||
|
||||
#. module: lunch
|
||||
#: view:lunch.cancel:0
|
||||
msgid "A cancelled meal should not be paid by employees."
|
||||
msgstr ""
|
||||
|
||||
#. module: lunch
|
||||
#: model:ir.ui.menu,name:lunch.menu_lunch_cash
|
||||
msgid "Administrate Cash Moves"
|
||||
msgstr ""
|
||||
|
||||
#. module: lunch
|
||||
#: model:ir.model,name:lunch.model_lunch_cancel
|
||||
msgid "cancel lunch order"
|
||||
msgstr ""
|
||||
|
||||
#. module: lunch
|
||||
#: selection:report.lunch.order.line,month:0
|
||||
msgid "December"
|
||||
msgstr ""
|
||||
|
||||
#. module: lunch
|
||||
#: view:lunch.cancel:0
|
||||
#: view:lunch.order.line:0
|
||||
#: view:lunch.order.order:0
|
||||
#: view:lunch.validation:0
|
||||
msgid "Cancel"
|
||||
msgstr ""
|
||||
|
||||
#. module: lunch
|
||||
#: model:ir.actions.act_window,help:lunch.action_lunch_cashmove
|
||||
msgid ""
|
||||
"<p class=\"oe_view_nocontent_create\">\n"
|
||||
" Click to create a payment. \n"
|
||||
" </p>\n"
|
||||
" <p>\n"
|
||||
" Here you can see the employees' payment. A payment is a cash "
|
||||
"move from the employee to the company.\n"
|
||||
" </p>\n"
|
||||
" "
|
||||
msgstr ""
|
||||
|
||||
#. module: lunch
|
||||
#: code:addons/lunch/lunch.py:186
|
||||
#, python-format
|
||||
msgid "Your favorite meals will be created based on your last orders."
|
||||
msgstr ""
|
||||
|
||||
#. module: lunch
|
||||
#: model:ir.module.category,description:lunch.module_lunch_category
|
||||
msgid ""
|
||||
"Helps you handle your lunch needs, if you are a manager you will be able to "
|
||||
"create new products, cashmoves and to confirm or cancel orders."
|
||||
msgstr ""
|
||||
|
||||
#. module: lunch
|
||||
#: model:ir.actions.act_window,help:lunch.action_lunch_control_accounts
|
||||
msgid ""
|
||||
"<p class=\"oe_view_nocontent_create\">\n"
|
||||
" Click to create a new payment. \n"
|
||||
" </p>\n"
|
||||
" <p>\n"
|
||||
" A cashmove can either be an expense or a payment.<br/>\n"
|
||||
" An expense is automatically created at the order "
|
||||
"receipt.<br/>\n"
|
||||
" A payment represents the employee reimbursement to the "
|
||||
"company.\n"
|
||||
" </p>\n"
|
||||
" "
|
||||
msgstr ""
|
||||
|
||||
#. module: lunch
|
||||
#: field:lunch.alert,alter_type:0
|
||||
msgid "Recurrency"
|
||||
msgstr ""
|
||||
|
||||
#. module: lunch
|
||||
#: code:addons/lunch/lunch.py:189
|
||||
#, python-format
|
||||
msgid "Don't forget the alerts displayed in the reddish area"
|
||||
msgstr ""
|
||||
|
||||
#. module: lunch
|
||||
#: field:lunch.alert,thursday:0
|
||||
msgid "Thursday"
|
||||
msgstr ""
|
||||
|
||||
#. module: lunch
|
||||
#: report:lunch.order.line:0
|
||||
msgid "Unit Price"
|
||||
msgstr ""
|
||||
|
||||
#. module: lunch
|
||||
#: field:lunch.order.line,product_id:0
|
||||
#: field:lunch.product,name:0
|
||||
msgid "Product"
|
||||
msgstr ""
|
||||
|
||||
#. module: lunch
|
||||
#: field:lunch.cashmove,description:0
|
||||
#: report:lunch.order.line:0
|
||||
#: field:lunch.product,description:0
|
||||
msgid "Description"
|
||||
msgstr ""
|
||||
|
||||
#. module: lunch
|
||||
#: selection:report.lunch.order.line,month:0
|
||||
msgid "May"
|
||||
msgstr ""
|
||||
|
||||
#. module: lunch
|
||||
#: field:lunch.order.line,price:0
|
||||
#: field:lunch.product,price:0
|
||||
msgid "Price"
|
||||
msgstr ""
|
||||
|
||||
#. module: lunch
|
||||
#: field:lunch.cashmove,state:0
|
||||
msgid "Is an order or a Payment"
|
||||
msgstr ""
|
||||
|
||||
#. module: lunch
|
||||
#: model:ir.actions.act_window,name:lunch.action_lunch_order_form
|
||||
#: model:ir.ui.menu,name:lunch.menu_lunch_order_form
|
||||
msgid "New Order"
|
||||
msgstr ""
|
||||
|
||||
#. module: lunch
|
||||
#: view:lunch.cashmove:0
|
||||
msgid "cashmove tree"
|
||||
msgstr ""
|
||||
|
||||
#. module: lunch
|
||||
#: view:lunch.cancel:0
|
||||
msgid "Cancel a meal means that we didn't receive it from the supplier."
|
||||
msgstr ""
|
||||
|
||||
#. module: lunch
|
||||
#: model:ir.ui.menu,name:lunch.menu_lunch_cashmove
|
||||
msgid "Employee Payments"
|
||||
msgstr ""
|
||||
|
||||
#. module: lunch
|
||||
#: view:lunch.cashmove:0
|
||||
#: selection:lunch.cashmove,state:0
|
||||
msgid "Payment"
|
||||
msgstr ""
|
||||
|
||||
#. module: lunch
|
||||
#: selection:report.lunch.order.line,month:0
|
||||
msgid "February"
|
||||
msgstr ""
|
||||
|
||||
#. module: lunch
|
||||
#: field:report.lunch.order.line,year:0
|
||||
msgid "Year"
|
||||
msgstr ""
|
||||
|
||||
#. module: lunch
|
||||
#: view:lunch.order:0
|
||||
msgid "List"
|
||||
msgstr ""
|
||||
|
||||
#. module: lunch
|
||||
#: model:ir.ui.menu,name:lunch.menu_lunch_admin
|
||||
msgid "Administrate Orders"
|
||||
msgstr ""
|
||||
|
||||
#. module: lunch
|
||||
#: selection:report.lunch.order.line,month:0
|
||||
msgid "April"
|
||||
msgstr ""
|
||||
|
||||
#. module: lunch
|
||||
#: view:lunch.order:0
|
||||
msgid "Select your order"
|
||||
msgstr ""
|
||||
|
||||
#. module: lunch
|
||||
#: field:lunch.cashmove,order_id:0
|
||||
#: selection:lunch.cashmove,state:0
|
||||
#: report:lunch.order.line:0
|
||||
#: view:lunch.order.line:0
|
||||
#: field:lunch.order.line,order_id:0
|
||||
msgid "Order"
|
||||
msgstr ""
|
||||
|
||||
#. module: lunch
|
||||
#: model:ir.actions.report.xml,name:lunch.report_lunch_order
|
||||
#: model:ir.model,name:lunch.model_lunch_order
|
||||
#: report:lunch.order.line:0
|
||||
msgid "Lunch Order"
|
||||
msgstr ""
|
||||
|
||||
#. module: lunch
|
||||
#: view:lunch.order.order:0
|
||||
msgid "Are you sure you want to order these meals?"
|
||||
msgstr ""
|
||||
|
||||
#. module: lunch
|
||||
#: view:lunch.cancel:0
|
||||
msgid "cancel order lines"
|
||||
msgstr ""
|
||||
|
||||
#. module: lunch
|
||||
#: model:ir.model,name:lunch.model_lunch_product_category
|
||||
msgid "lunch product category"
|
||||
msgstr ""
|
||||
|
||||
#. module: lunch
|
||||
#: field:lunch.alert,saturday:0
|
||||
msgid "Saturday"
|
||||
msgstr ""
|
||||
|
||||
#. module: lunch
|
||||
#: model:res.groups,name:lunch.group_lunch_manager
|
||||
msgid "Manager"
|
||||
msgstr ""
|
||||
|
||||
#. module: lunch
|
||||
#: view:lunch.validation:0
|
||||
msgid "Did your received these meals?"
|
||||
msgstr ""
|
||||
|
||||
#. module: lunch
|
||||
#: view:lunch.validation:0
|
||||
msgid "Once a meal is received a new cash move is created for the employee."
|
||||
msgstr ""
|
||||
|
||||
#. module: lunch
|
||||
#: view:lunch.product:0
|
||||
msgid "Products Tree"
|
||||
msgstr ""
|
||||
|
||||
#. module: lunch
|
||||
#: view:lunch.cashmove:0
|
||||
#: view:lunch.order:0
|
||||
#: field:lunch.order,total:0
|
||||
#: view:lunch.order.line:0
|
||||
msgid "Total"
|
||||
msgstr ""
|
||||
|
||||
#. module: lunch
|
||||
#: model:ir.ui.menu,name:lunch.menu_lunch_order_tree
|
||||
msgid "Previous Orders"
|
||||
msgstr ""
|
||||
@@ -39,7 +39,8 @@
|
||||
<field name="user_id"/>
|
||||
<filter name='is_payment' string="Payment" domain="[('state','=','payment')]"/>
|
||||
<separator/>
|
||||
<filter name='is_mine' string="My Account" domain="[('user_id','=',uid)]"/>
|
||||
<filter name='is_mine_group' string="My Account grouped" domain="[('user_id','=',uid)]" context="{'group_by':'user_id'}"/>
|
||||
<filter name="group_by_user" string="By User" context="{'group_by':'user_id'}"/>
|
||||
</search>
|
||||
</field>
|
||||
</record>
|
||||
@@ -116,7 +117,7 @@
|
||||
<field name="res_model">lunch.cashmove</field>
|
||||
<field name="view_mode">tree</field>
|
||||
<field name="search_view_id" ref="view_lunch_employee_payment_filter"/>
|
||||
<field name="context">{"search_default_is_mine":1}</field>
|
||||
<field name="context">{"search_default_is_mine_group":1}</field>
|
||||
<field name="help" type="html">
|
||||
<p>
|
||||
Here you can see your cash moves.<br/>A cash moves can be either an expense or a payment.
|
||||
|
||||
@@ -71,16 +71,12 @@ Main Features
|
||||
'installable': True,
|
||||
'application': True,
|
||||
'images': [
|
||||
'images/customer_history.jpeg',
|
||||
'images/inbox.jpeg',
|
||||
'images/messages_form.jpeg',
|
||||
'images/messages_list.jpeg',
|
||||
'static/src/img/email_icong.png',
|
||||
'static/src/img/_al.png',
|
||||
'static/src/img/_pincky.png',
|
||||
'static/src/img/groupdefault.png',
|
||||
'static/src/img/attachment.png',
|
||||
'static/src/img/checklist.png',
|
||||
'static/src/img/formatting.png',
|
||||
'images/email.jpeg',
|
||||
'images/join_a_group.jpeg',
|
||||
'images/share_a_message.jpeg',
|
||||
],
|
||||
'css': [
|
||||
'static/src/css/mail.css',
|
||||
|
||||
@@ -21,6 +21,8 @@ should inherit from this class.
|
||||
ClientAction (ir.actions.client)
|
||||
++++++++++++++++++++++++++++++++
|
||||
|
||||
.. code-block:: xml
|
||||
|
||||
<record id="action_mail_inbox_feeds" model="ir.actions.client">
|
||||
<field name="name">Inbox</field>
|
||||
<field name="tag">mail.wall</field>
|
||||
@@ -36,6 +38,7 @@ ClientAction (ir.actions.client)
|
||||
'mail_thread' widget for field on standard view. (default value like a thread for
|
||||
record, view on flat mode, no reply, no read/unread)
|
||||
'mail.widget' it's the root thread, used by 'mail.wall' and 'mail_thread'
|
||||
|
||||
- ``help`` : Text HTML to display if there are no message
|
||||
- ``context`` : insert 'default_model' and 'default_res_id'
|
||||
- ``params`` : options for the widget
|
||||
|
||||
+169
-156
File diff suppressed because it is too large
Load Diff
@@ -85,9 +85,6 @@ class mail_notification(osv.Model):
|
||||
if notification.read:
|
||||
continue
|
||||
partner = notification.partner_id
|
||||
# Do not send an email to the writer
|
||||
if partner.user_ids and partner.user_ids[0].id == uid:
|
||||
continue
|
||||
# Do not send to partners without email address defined
|
||||
if not partner.email:
|
||||
continue
|
||||
@@ -129,11 +126,20 @@ class mail_notification(osv.Model):
|
||||
if signature:
|
||||
body_html = tools.append_content_to_html(body_html, signature, plaintext=True, container_tag='div')
|
||||
|
||||
# email_from: partner-user alias or partner email or mail.message email_from
|
||||
if msg.author_id and msg.author_id.user_ids and msg.author_id.user_ids[0].alias_domain and msg.author_id.user_ids[0].alias_name:
|
||||
email_from = '%s <%s@%s>' % (msg.author_id.name, msg.author_id.user_ids[0].alias_name, msg.author_id.user_ids[0].alias_domain)
|
||||
elif msg.author_id:
|
||||
email_from = '%s <%s>' % (msg.author_id.name, msg.author_id.email)
|
||||
else:
|
||||
email_from = msg.email_from
|
||||
|
||||
mail_values = {
|
||||
'mail_message_id': msg.id,
|
||||
'email_to': [],
|
||||
'auto_delete': True,
|
||||
'body_html': body_html,
|
||||
'email_from': email_from,
|
||||
'state': 'outgoing',
|
||||
}
|
||||
mail_values['email_to'] = ', '.join(mail_values['email_to'])
|
||||
|
||||
@@ -78,6 +78,13 @@ class mail_mail(osv.Model):
|
||||
'email_from': lambda self, cr, uid, ctx=None: self._get_default_from(cr, uid, ctx),
|
||||
}
|
||||
|
||||
def default_get(self, cr, uid, fields, context=None):
|
||||
# protection for `default_type` values leaking from menu action context (e.g. for invoices)
|
||||
# To remove when automatic context propagation is removed in web client
|
||||
if context and context.get('default_type') and context.get('default_type') not in self._all_columns['type'].column.selection:
|
||||
context = dict(context, default_type = None)
|
||||
return super(mail_mail, self).default_get(cr, uid, fields, context=context)
|
||||
|
||||
def create(self, cr, uid, values, context=None):
|
||||
if 'notification' not in values and values.get('mail_message_id'):
|
||||
values['notification'] = True
|
||||
|
||||
+39
-15
@@ -243,7 +243,7 @@ class mail_thread(osv.AbstractModel):
|
||||
# subscribe uid unless asked not to
|
||||
if not context.get('mail_create_nosubscribe'):
|
||||
self.message_subscribe_users(cr, uid, [thread_id], [uid], context=context)
|
||||
self.message_subscribe_from_parent(cr, uid, [thread_id], values.keys(), context=context)
|
||||
self.message_auto_subscribe(cr, uid, [thread_id], values.keys(), context=context)
|
||||
|
||||
# automatic logging unless asked not to (mainly for various testing purpose)
|
||||
if not context.get('mail_create_nolog'):
|
||||
@@ -261,7 +261,7 @@ class mail_thread(osv.AbstractModel):
|
||||
|
||||
# Perform write, update followers
|
||||
result = super(mail_thread, self).write(cr, uid, ids, values, context=context)
|
||||
self.message_subscribe_from_parent(cr, uid, ids, values.keys(), context=context)
|
||||
self.message_auto_subscribe(cr, uid, ids, values.keys(), context=context)
|
||||
|
||||
# Perform the tracking
|
||||
if tracked_fields:
|
||||
@@ -1069,7 +1069,24 @@ class mail_thread(osv.AbstractModel):
|
||||
self.check_access_rights(cr, uid, 'write')
|
||||
return self.write(cr, SUPERUSER_ID, ids, {'message_follower_ids': [(3, pid) for pid in partner_ids]}, context=context)
|
||||
|
||||
def message_subscribe_from_parent(self, cr, uid, ids, updated_fields, context=None):
|
||||
def _message_get_auto_subscribe_fields(self, cr, uid, updated_fields, auto_follow_fields=['user_id'], context=None):
|
||||
""" Returns the list of relational fields linking to res.users that should
|
||||
trigger an auto subscribe. The default list checks for the fields
|
||||
- called 'user_id'
|
||||
- linking to res.users
|
||||
- with track_visibility set
|
||||
In OpenERP V7, this is sufficent for all major addon such as opportunity,
|
||||
project, issue, recruitment, sale.
|
||||
Override this method if a custom behavior is needed about fields
|
||||
that automatically subscribe users.
|
||||
"""
|
||||
user_field_lst = []
|
||||
for name, column_info in self._all_columns.items():
|
||||
if name in auto_follow_fields and name in updated_fields and getattr(column_info.column, 'track_visibility', False) and column_info.column._obj == 'res.users':
|
||||
user_field_lst.append(name)
|
||||
return user_field_lst
|
||||
|
||||
def message_auto_subscribe(self, cr, uid, ids, updated_fields, context=None):
|
||||
"""
|
||||
1. fetch project subtype related to task (parent_id.res_model = 'project.task')
|
||||
2. for each project subtype: subscribe the follower to the task
|
||||
@@ -1077,13 +1094,16 @@ class mail_thread(osv.AbstractModel):
|
||||
subtype_obj = self.pool.get('mail.message.subtype')
|
||||
follower_obj = self.pool.get('mail.followers')
|
||||
|
||||
# fetch auto_follow_fields
|
||||
user_field_lst = self._message_get_auto_subscribe_fields(cr, uid, updated_fields, context=context)
|
||||
|
||||
# fetch related record subtypes
|
||||
related_subtype_ids = subtype_obj.search(cr, uid, ['|', ('res_model', '=', False), ('parent_id.res_model', '=', self._name)], context=context)
|
||||
subtypes = subtype_obj.browse(cr, uid, related_subtype_ids, context=context)
|
||||
default_subtypes = [subtype for subtype in subtypes if subtype.res_model == False]
|
||||
related_subtypes = [subtype for subtype in subtypes if subtype.res_model != False]
|
||||
relation_fields = set([subtype.relation_field for subtype in subtypes if subtype.relation_field != False])
|
||||
if not related_subtypes or not any(relation in updated_fields for relation in relation_fields):
|
||||
if (not related_subtypes or not any(relation in updated_fields for relation in relation_fields)) and not user_field_lst:
|
||||
return True
|
||||
|
||||
for record in self.browse(cr, uid, ids, context=context):
|
||||
@@ -1105,20 +1125,24 @@ class mail_thread(osv.AbstractModel):
|
||||
for follower in follower_obj.browse(cr, SUPERUSER_ID, follower_ids, context=context):
|
||||
new_followers.setdefault(follower.partner_id.id, set()).add(subtype.parent_id.id)
|
||||
|
||||
if not parent_res_id or not parent_model:
|
||||
continue
|
||||
if parent_res_id and parent_model:
|
||||
for subtype in default_subtypes:
|
||||
follower_ids = follower_obj.search(cr, SUPERUSER_ID, [
|
||||
('res_model', '=', parent_model),
|
||||
('res_id', '=', parent_res_id),
|
||||
('subtype_ids', 'in', [subtype.id])
|
||||
], context=context)
|
||||
for follower in follower_obj.browse(cr, SUPERUSER_ID, follower_ids, context=context):
|
||||
new_followers.setdefault(follower.partner_id.id, set()).add(subtype.id)
|
||||
|
||||
for subtype in default_subtypes:
|
||||
follower_ids = follower_obj.search(cr, SUPERUSER_ID, [
|
||||
('res_model', '=', parent_model),
|
||||
('res_id', '=', parent_res_id),
|
||||
('subtype_ids', 'in', [subtype.id])
|
||||
], context=context)
|
||||
for follower in follower_obj.browse(cr, SUPERUSER_ID, follower_ids, context=context):
|
||||
new_followers.setdefault(follower.partner_id.id, set()).add(subtype.id)
|
||||
# add followers coming from res.users relational fields that are tracked
|
||||
user_ids = [getattr(record, name).id for name in user_field_lst if getattr(record, name)]
|
||||
for partner_id in [user.partner_id.id for user in self.pool.get('res.users').browse(cr, SUPERUSER_ID, user_ids, context=context)]:
|
||||
new_followers.setdefault(partner_id, None)
|
||||
|
||||
for pid, subtypes in new_followers.items():
|
||||
self.message_subscribe(cr, uid, [record.id], [pid], list(subtypes), context=context)
|
||||
subtypes = list(subtypes) if subtypes is not None else None
|
||||
self.message_subscribe(cr, uid, [record.id], [pid], subtypes, context=context)
|
||||
return True
|
||||
|
||||
#------------------------------------------------------
|
||||
|
||||
@@ -105,7 +105,7 @@ openerp.mail = function (session) {
|
||||
// As it only looks at the extension it is quite approximative.
|
||||
filetype: function(url){
|
||||
url = url.filename || url;
|
||||
var tokens = url.split('.');
|
||||
var tokens = (url+'').split('.');
|
||||
if(tokens.length <= 1){
|
||||
return 'unknown';
|
||||
}
|
||||
@@ -218,7 +218,7 @@ openerp.mail = function (session) {
|
||||
this.author_id = datasets.author_id || false,
|
||||
this.attachment_ids = datasets.attachment_ids || [],
|
||||
this.partner_ids = datasets.partner_ids || [];
|
||||
this._date = datasets.date;
|
||||
this.date = datasets.date;
|
||||
|
||||
this.format_data();
|
||||
|
||||
@@ -232,19 +232,20 @@ openerp.mail = function (session) {
|
||||
else {
|
||||
this.options.show_read = this.to_read;
|
||||
this.options.show_unread = !this.to_read;
|
||||
this.options.rerender = true;
|
||||
this.options.toggle_read = true;
|
||||
}
|
||||
this.options.rerender = true;
|
||||
this.options.toggle_read = true;
|
||||
}
|
||||
this.parent_thread = parent.messages != undefined ? parent : this.options.root_thread;
|
||||
this.parent_thread = typeof parent.on_message_detroy == 'function' ? parent : this.options.root_thread;
|
||||
this.thread = false;
|
||||
},
|
||||
|
||||
/* Convert date, timerelative and avatar in displayable data. */
|
||||
format_data: function () {
|
||||
//formating and add some fields for render
|
||||
if (this._date) {
|
||||
this.timerelative = $.timeago(this._date+"Z");
|
||||
this.date = this.date ? session.web.str_to_datetime(this.date) : false;
|
||||
if (this.date && new Date().getTime()-this.date.getTime() < 7*24*60*60*1000) {
|
||||
this.timerelative = $.timeago(this.date);
|
||||
}
|
||||
if (this.type == 'email' && (!this.author_id || !this.author_id[0])) {
|
||||
this.avatar = ('/mail/static/src/img/email_icon.png');
|
||||
@@ -253,7 +254,7 @@ openerp.mail = function (session) {
|
||||
} else {
|
||||
this.avatar = mail.ChatterUtils.get_image(this.session, 'res.users', 'image_small', this.session.uid);
|
||||
}
|
||||
if (this.author_id) {
|
||||
if (this.author_id && this.author_id[1]) {
|
||||
var email = this.author_id[1].match(/(.*)<(.*@.*)>/);
|
||||
if (!email) {
|
||||
this.author_id.push(_.str.escapeHTML(this.author_id[1]), '', this.author_id[1]);
|
||||
@@ -271,7 +272,7 @@ openerp.mail = function (session) {
|
||||
var attach = this.attachment_ids[l];
|
||||
if (!attach.formating) {
|
||||
attach.url = mail.ChatterUtils.get_attachment_url(this.session, this.id, attach.id);
|
||||
attach.filetype = mail.ChatterUtils.filetype(attach.filename);
|
||||
attach.filetype = mail.ChatterUtils.filetype(attach.filename || attach.name);
|
||||
attach.name = mail.ChatterUtils.breakword(attach.name || attach.filename);
|
||||
attach.formating = true;
|
||||
}
|
||||
@@ -1605,7 +1606,8 @@ openerp.mail = function (session) {
|
||||
this.node.params = _.extend({
|
||||
'display_indented_thread': -1,
|
||||
'show_reply_button': false,
|
||||
'show_read_unread_button': false,
|
||||
'show_read_unread_button': true,
|
||||
'read_action': 'unread',
|
||||
'show_record_name': false,
|
||||
'show_compact_message': 1,
|
||||
}, this.node.params);
|
||||
|
||||
@@ -216,9 +216,12 @@ openerp_mail_followers = function(session, mail) {
|
||||
display_subtypes:function (data) {
|
||||
var self = this;
|
||||
var subtype_list_ul = this.$('.oe_subtype_list');
|
||||
subtype_list_ul.empty();
|
||||
var records = data[this.view.datarecord.id || this.view.dataset.ids[0]].message_subtype_data;
|
||||
var records = [];
|
||||
var nb_subtype = 0;
|
||||
subtype_list_ul.empty();
|
||||
if (this.view.datarecord.id) {
|
||||
records = data[this.view.datarecord.id].message_subtype_data;
|
||||
}
|
||||
_(records).each(function (record) {nb_subtype++;});
|
||||
if (nb_subtype > 1) {
|
||||
this.$('hr').show();
|
||||
|
||||
@@ -246,7 +246,7 @@
|
||||
<a t-if="widget.author_id and widget.options.show_link and widget.author_id[0]" t-attf-href="#model=res.partner&id=#{widget.author_id[0]}"><t t-raw="widget.author_id[2]"/></a>
|
||||
<span t-if="widget.author_id and (!widget.options.show_link or !widget.author_id[0])"><t t-raw="widget.author_id[2]"/></span>
|
||||
<span class='oe_subtle'>•</span>
|
||||
<span t-att-title="widget.date"><t t-raw="widget.timerelative"/></span>
|
||||
<span t-att-title="widget.date"><t t-if="widget.timerelative" t-raw="widget.timerelative"/><t t-if="!widget.timerelative" t-raw="widget.date"/></span>
|
||||
<span t-if="!widget.options.readonly" class='oe_subtle'>•</span>
|
||||
<t t-if="!widget.options.readonly" t-call="mail.thread.message.vote"/>
|
||||
</div>
|
||||
|
||||
@@ -34,12 +34,12 @@ def get_sys_logs(self, cr, uid):
|
||||
limit_date = limit_date - datetime.timedelta(15)
|
||||
limit_date_str = limit_date.strftime(misc.DEFAULT_SERVER_DATETIME_FORMAT)
|
||||
nbr_users = pool.get("res.users").search(cr, uid, [], count=True)
|
||||
nbr_active_users = pool.get("res.users").search(cr, uid, [("date", ">=", limit_date_str)], count=True)
|
||||
nbr_active_users = pool.get("res.users").search(cr, uid, [("login_date", ">=", limit_date_str)], count=True)
|
||||
nbr_share_users = False
|
||||
nbr_active_share_users = False
|
||||
if "share" in pool.get("res.users")._all_columns:
|
||||
nbr_share_users = pool.get("res.users").search(cr, uid, [("share", "=", True)], count=True)
|
||||
nbr_active_share_users = pool.get("res.users").search(cr, uid, [("share", "=", True), ("date", ">=", limit_date_str)], count=True)
|
||||
nbr_active_share_users = pool.get("res.users").search(cr, uid, [("share", "=", True), ("login_date", ">=", limit_date_str)], count=True)
|
||||
user = pool.get("res.users").browse(cr, uid, uid)
|
||||
|
||||
web_base_url = self.pool.get('ir.config_parameter').get_param(cr, uid, 'web.base.url', 'False')
|
||||
|
||||
@@ -52,9 +52,16 @@ class membership_invoice(osv.osv_memory):
|
||||
'amount': data.member_price
|
||||
}
|
||||
invoice_list = partner_obj.create_membership_invoice(cr, uid, context.get('active_ids', []), datas=datas, context=context)
|
||||
|
||||
res = mod_obj.get_object_reference(cr, uid, 'account', 'view_account_invoice_filter')
|
||||
|
||||
|
||||
try:
|
||||
search_view_id = mod_obj.get_object_reference(cr, uid, 'account', 'view_account_invoice_filter')[1]
|
||||
except ValueError:
|
||||
search_view_id = False
|
||||
try:
|
||||
form_view_id = mod_obj.get_object_reference(cr, uid, 'account', 'invoice_form')[1]
|
||||
except ValueError:
|
||||
form_view_id = False
|
||||
|
||||
return {
|
||||
'domain': [('id', 'in', invoice_list)],
|
||||
'name': 'Membership Invoices',
|
||||
@@ -62,7 +69,8 @@ class membership_invoice(osv.osv_memory):
|
||||
'view_mode': 'tree,form',
|
||||
'res_model': 'account.invoice',
|
||||
'type': 'ir.actions.act_window',
|
||||
'search_view_id': res and res[1] or False
|
||||
'views': [(False, 'tree'), (form_view_id, 'form')],
|
||||
'search_view_id': search_view_id,
|
||||
}
|
||||
|
||||
membership_invoice()
|
||||
|
||||
@@ -28,7 +28,7 @@
|
||||
'category': 'Manufacturing',
|
||||
'sequence': 18,
|
||||
'summary': 'Manufacturing Orders, Bill of Materials, Routing',
|
||||
'images': ['images/bill_of_materials.jpeg', 'images/manufacturing_order.jpeg', 'images/planning_manufacturing_order.jpeg', 'images/production_analysis.jpeg', 'images/production_dashboard.jpeg','images/routings.jpeg','images/work_centers.jpeg'],
|
||||
'images': ['images/bill_of_materials.jpeg', 'images/manufacturing_order.jpeg', 'images/planning_manufacturing_order.jpeg', 'images/manufacturing_analysis.jpeg', 'images/production_dashboard.jpeg','images/routings.jpeg','images/work_centers.jpeg'],
|
||||
'depends': ['product','procurement', 'stock', 'resource', 'purchase','process'],
|
||||
'description': """
|
||||
Manage the Manufacturing process in OpenERP
|
||||
|
||||
@@ -57,6 +57,11 @@ Notes can be found in the 'Home' menu.
|
||||
'css': [
|
||||
'static/src/css/note.css',
|
||||
],
|
||||
'images': [
|
||||
'images/note_kanban.jpeg',
|
||||
'images/note.jpeg',
|
||||
'images/categories_tree.jpeg'
|
||||
],
|
||||
'installable': True,
|
||||
'application': True,
|
||||
'auto_install': False,
|
||||
|
||||
@@ -0,0 +1,282 @@
|
||||
# Mongolian translation for openobject-addons
|
||||
# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
|
||||
# This file is distributed under the same license as the openobject-addons package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2013.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-12-21 17:04+0000\n"
|
||||
"PO-Revision-Date: 2013-02-06 06:14+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Mongolian <mn@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: 2013-02-07 04:53+0000\n"
|
||||
"X-Generator: Launchpad (build 16477)\n"
|
||||
|
||||
#. module: note
|
||||
#: field:note.note,memo:0
|
||||
msgid "Note Content"
|
||||
msgstr ""
|
||||
|
||||
#. module: note
|
||||
#: view:note.stage:0
|
||||
msgid "Stages of Notes"
|
||||
msgstr ""
|
||||
|
||||
#. module: note
|
||||
#: model:note.stage,name:note.demo_note_stage_04
|
||||
#: model:note.stage,name:note.note_stage_02
|
||||
msgid "This Week"
|
||||
msgstr ""
|
||||
|
||||
#. module: note
|
||||
#: model:ir.model,name:note.model_base_config_settings
|
||||
msgid "base.config.settings"
|
||||
msgstr ""
|
||||
|
||||
#. module: note
|
||||
#: model:ir.model,name:note.model_note_tag
|
||||
msgid "Note Tag"
|
||||
msgstr ""
|
||||
|
||||
#. module: note
|
||||
#: model:res.groups,name:note.group_note_fancy
|
||||
msgid "Notes / Fancy mode"
|
||||
msgstr ""
|
||||
|
||||
#. module: note
|
||||
#: model:ir.model,name:note.model_note_note
|
||||
#: view:note.note:0
|
||||
msgid "Note"
|
||||
msgstr ""
|
||||
|
||||
#. module: note
|
||||
#: view:note.note:0
|
||||
msgid "Group By..."
|
||||
msgstr ""
|
||||
|
||||
#. module: note
|
||||
#: field:note.note,message_follower_ids:0
|
||||
msgid "Followers"
|
||||
msgstr "дагалдагсад"
|
||||
|
||||
#. module: note
|
||||
#: model:ir.actions.act_window,help:note.action_note_note
|
||||
msgid ""
|
||||
"<p class=\"oe_view_nocontent_create\">\n"
|
||||
" Click to add a personal note.\n"
|
||||
" </p><p>\n"
|
||||
" Use notes to organize personal tasks or notes. All\n"
|
||||
" notes are private; no one else will be able to see them. "
|
||||
"However\n"
|
||||
" you can share some notes with other people by inviting "
|
||||
"followers\n"
|
||||
" on the note. (Useful for meeting minutes, especially if\n"
|
||||
" you activate the pad feature for collaborative writings).\n"
|
||||
" </p><p>\n"
|
||||
" You can customize how you process your notes/tasks by adding,\n"
|
||||
" removing or modifying columns.\n"
|
||||
" </p>\n"
|
||||
" "
|
||||
msgstr ""
|
||||
|
||||
#. module: note
|
||||
#: model:note.stage,name:note.demo_note_stage_01
|
||||
#: model:note.stage,name:note.note_stage_01
|
||||
msgid "Today"
|
||||
msgstr ""
|
||||
|
||||
#. module: note
|
||||
#: model:ir.model,name:note.model_res_users
|
||||
msgid "Users"
|
||||
msgstr ""
|
||||
|
||||
#. module: note
|
||||
#: view:note.note:0
|
||||
msgid "í"
|
||||
msgstr ""
|
||||
|
||||
#. module: note
|
||||
#: view:note.stage:0
|
||||
msgid "Stage of Notes"
|
||||
msgstr ""
|
||||
|
||||
#. module: note
|
||||
#: field:note.note,message_unread:0
|
||||
msgid "Unread Messages"
|
||||
msgstr ""
|
||||
|
||||
#. module: note
|
||||
#: field:note.note,current_partner_id:0
|
||||
msgid "unknown"
|
||||
msgstr ""
|
||||
|
||||
#. module: note
|
||||
#: view:note.note:0
|
||||
msgid "By sticky note Category"
|
||||
msgstr ""
|
||||
|
||||
#. module: note
|
||||
#: help:note.note,message_unread:0
|
||||
msgid "If checked new messages require your attention."
|
||||
msgstr ""
|
||||
|
||||
#. module: note
|
||||
#: field:note.stage,name:0
|
||||
msgid "Stage Name"
|
||||
msgstr ""
|
||||
|
||||
#. module: note
|
||||
#: field:note.note,message_is_follower:0
|
||||
msgid "Is a Follower"
|
||||
msgstr ""
|
||||
|
||||
#. module: note
|
||||
#: model:note.stage,name:note.demo_note_stage_02
|
||||
msgid "Tomorrow"
|
||||
msgstr ""
|
||||
|
||||
#. module: note
|
||||
#: view:note.note:0
|
||||
#: field:note.note,open:0
|
||||
msgid "Active"
|
||||
msgstr ""
|
||||
|
||||
#. module: note
|
||||
#: help:note.stage,user_id:0
|
||||
msgid "Owner of the note stage."
|
||||
msgstr ""
|
||||
|
||||
#. module: note
|
||||
#: model:ir.ui.menu,name:note.menu_notes_stage
|
||||
msgid "Categories"
|
||||
msgstr ""
|
||||
|
||||
#. module: note
|
||||
#: view:note.note:0
|
||||
#: field:note.note,stage_id:0
|
||||
msgid "Stage"
|
||||
msgstr ""
|
||||
|
||||
#. module: note
|
||||
#: field:note.tag,name:0
|
||||
msgid "Tag Name"
|
||||
msgstr ""
|
||||
|
||||
#. module: note
|
||||
#: field:note.note,message_ids:0
|
||||
msgid "Messages"
|
||||
msgstr ""
|
||||
|
||||
#. module: note
|
||||
#: view:base.config.settings:0
|
||||
#: model:ir.actions.act_window,name:note.action_note_note
|
||||
#: model:ir.ui.menu,name:note.menu_note_notes
|
||||
#: view:note.note:0
|
||||
#: model:note.stage,name:note.note_stage_04
|
||||
msgid "Notes"
|
||||
msgstr ""
|
||||
|
||||
#. module: note
|
||||
#: model:note.stage,name:note.demo_note_stage_03
|
||||
#: model:note.stage,name:note.note_stage_03
|
||||
msgid "Later"
|
||||
msgstr ""
|
||||
|
||||
#. module: note
|
||||
#: model:ir.model,name:note.model_note_stage
|
||||
msgid "Note Stage"
|
||||
msgstr ""
|
||||
|
||||
#. module: note
|
||||
#: field:note.note,message_summary:0
|
||||
msgid "Summary"
|
||||
msgstr "Дүгнэлт"
|
||||
|
||||
#. module: note
|
||||
#: field:note.note,stage_ids:0
|
||||
msgid "Stages of Users"
|
||||
msgstr ""
|
||||
|
||||
#. module: note
|
||||
#: field:note.note,name:0
|
||||
msgid "Note Summary"
|
||||
msgstr ""
|
||||
|
||||
#. module: note
|
||||
#: model:ir.actions.act_window,name:note.action_note_stage
|
||||
#: view:note.note:0
|
||||
msgid "Stages"
|
||||
msgstr ""
|
||||
|
||||
#. module: note
|
||||
#: help:note.note,message_ids:0
|
||||
msgid "Messages and communication history"
|
||||
msgstr ""
|
||||
|
||||
#. module: note
|
||||
#: view:note.note:0
|
||||
msgid "Delete"
|
||||
msgstr ""
|
||||
|
||||
#. module: note
|
||||
#: field:note.note,color:0
|
||||
msgid "Color Index"
|
||||
msgstr "Өнгөний Индекс"
|
||||
|
||||
#. module: note
|
||||
#: field:note.note,sequence:0
|
||||
#: field:note.stage,sequence:0
|
||||
msgid "Sequence"
|
||||
msgstr ""
|
||||
|
||||
#. module: note
|
||||
#: field:note.note,tag_ids:0
|
||||
msgid "Tags"
|
||||
msgstr "Шошгууд"
|
||||
|
||||
#. module: note
|
||||
#: view:note.note:0
|
||||
msgid "Archive"
|
||||
msgstr ""
|
||||
|
||||
#. module: note
|
||||
#: field:base.config.settings,module_note_pad:0
|
||||
msgid "Use collaborative pads (etherpad)"
|
||||
msgstr ""
|
||||
|
||||
#. module: note
|
||||
#: help:note.note,message_summary:0
|
||||
msgid ""
|
||||
"Holds the Chatter summary (number of messages, ...). This summary is "
|
||||
"directly in html format in order to be inserted in kanban views."
|
||||
msgstr ""
|
||||
|
||||
#. module: note
|
||||
#: field:base.config.settings,group_note_fancy:0
|
||||
msgid "Use fancy layouts for notes"
|
||||
msgstr ""
|
||||
|
||||
#. module: note
|
||||
#: field:note.stage,user_id:0
|
||||
msgid "Owner"
|
||||
msgstr ""
|
||||
|
||||
#. module: note
|
||||
#: help:note.stage,sequence:0
|
||||
msgid "Used to order the note stages"
|
||||
msgstr ""
|
||||
|
||||
#. module: note
|
||||
#: field:note.note,date_done:0
|
||||
msgid "Date done"
|
||||
msgstr ""
|
||||
|
||||
#. module: note
|
||||
#: field:note.stage,fold:0
|
||||
msgid "Folded by Default"
|
||||
msgstr ""
|
||||
+2
-2
@@ -29,7 +29,7 @@ class note_stage(osv.osv):
|
||||
_columns = {
|
||||
'name': fields.char('Stage Name', translate=True, required=True),
|
||||
'sequence': fields.integer('Sequence', help="Used to order the note stages"),
|
||||
'user_id': fields.many2one('res.users', 'Owner', help="Owner of the note stage.", required=True),
|
||||
'user_id': fields.many2one('res.users', 'Owner', help="Owner of the note stage.", required=True, ondelete='cascade'),
|
||||
'fold': fields.boolean('Folded by Default'),
|
||||
}
|
||||
_order = 'sequence asc'
|
||||
@@ -112,7 +112,7 @@ class note_note(osv.osv):
|
||||
'date_done': fields.date('Date done'),
|
||||
'color': fields.integer('Color Index'),
|
||||
'tag_ids' : fields.many2many('note.tag','note_tags_rel','note_id','tag_id','Tags'),
|
||||
'current_partner_id' : fields.function(_get_my_current_partner),
|
||||
'current_partner_id' : fields.function(_get_my_current_partner, type="many2one", relation='res.partner', string="Owner"),
|
||||
}
|
||||
_defaults = {
|
||||
'open' : 1,
|
||||
|
||||
+2
-2
@@ -24,7 +24,7 @@ class pad_common(osv.osv_memory):
|
||||
|
||||
# make sure pad server in the form of http://hostname
|
||||
if not pad["server"]:
|
||||
return ''
|
||||
return pad
|
||||
if not pad["server"].startswith('http'):
|
||||
pad["server"] = 'http://' + pad["server"]
|
||||
pad["server"] = pad["server"].rstrip('/')
|
||||
@@ -96,7 +96,7 @@ class pad_common(osv.osv_memory):
|
||||
field = v.column
|
||||
if hasattr(field,'pad_content_field'):
|
||||
pad = self.pad_generate_url(cr, uid, context)
|
||||
default[k] = pad['url']
|
||||
default[k] = pad.get('url')
|
||||
return super(pad_common, self).copy(cr, uid, id, default, context)
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
||||
@@ -48,7 +48,7 @@ Main Features
|
||||
* Refund previous sales
|
||||
""",
|
||||
'author': 'OpenERP SA',
|
||||
'images': ['images/cash_registers.jpeg', 'images/pos_analysis.jpeg','images/register_analysis.jpeg','images/sale_order_pos.jpeg','images/product_pos.jpeg'],
|
||||
'images': ['images/pos_touch_screen.jpeg', 'images/pos_session.jpeg', 'images/pos_analysis.jpeg','images/sale_order_pos.jpeg','images/product_pos.jpeg'],
|
||||
'depends': ['sale_stock'],
|
||||
'data': [
|
||||
'security/point_of_sale_security.xml',
|
||||
|
||||
@@ -853,8 +853,7 @@ class pos_order(osv.osv):
|
||||
inv_line['price_unit'] = line.price_unit
|
||||
inv_line['discount'] = line.discount
|
||||
inv_line['name'] = inv_name
|
||||
inv_line['invoice_line_tax_id'] = ('invoice_line_tax_id' in inv_line)\
|
||||
and [(6, 0, inv_line['invoice_line_tax_id'])] or []
|
||||
inv_line['invoice_line_tax_id'] = [(6, 0, [x.id for x in line.product_id.taxes_id] )]
|
||||
inv_line_ref.create(cr, uid, inv_line, context=context)
|
||||
inv_ref.button_reset_taxes(cr, uid, [inv_id], context=context)
|
||||
wf_service.trg_validate(uid, 'pos.order', order.id, 'invoice', cr)
|
||||
@@ -1156,7 +1155,6 @@ class pos_order_line(osv.osv):
|
||||
|
||||
prod = self.pool.get('product.product').browse(cr, uid, product, context=context)
|
||||
|
||||
taxes = prod.taxes_id
|
||||
price = price_unit * (1 - (discount or 0.0) / 100.0)
|
||||
taxes = account_tax_obj.compute_all(cr, uid, prod.taxes_id, price, qty, product=prod, partner=False)
|
||||
|
||||
|
||||
@@ -233,7 +233,9 @@
|
||||
font-style: italic;
|
||||
cursor:pointer;
|
||||
}
|
||||
|
||||
.point-of-sale .oe_pos_synch-notification.oe_inactive{
|
||||
cursor: default;
|
||||
}
|
||||
.point-of-sale .oe_pos_synch-notification .oe_status_red{
|
||||
display:inline-block;
|
||||
cursor:pointer;
|
||||
@@ -542,7 +544,9 @@
|
||||
background: -webkit-linear-gradient(-90deg,rgba(255,255,255,0),rgba(255,255,255,1), rgba(255,255,255,1));
|
||||
background: -moz-linear-gradient(-90deg,rgba(255,255,255,0),rgba(255,255,255,1), rgba(255,255,255,1));
|
||||
background: -ms-linear-gradient(-90deg,rgba(255,255,255,0),rgba(255,255,255,1), rgba(255,255,255,1));
|
||||
background: linear-gradient(-90deg,rgba(255,255,255,0),rgba(255,255,255,1), rgba(255,255,255,1));
|
||||
/* for some reason the -90deg orientation doesn't match the -webkit-linear-gradient. It should be 180deg here.
|
||||
* webkit also insists on rendering *both* gradients instead of only the native one. So it doesn't looks right. ugh.
|
||||
background: linear-gradient(-90deg,rgba(255,255,255,0),rgba(255,255,255,1), rgba(255,255,255,1)); */
|
||||
/*background:#FFF;*/
|
||||
padding: 3px;
|
||||
padding-top: 15px;
|
||||
@@ -607,7 +611,9 @@
|
||||
background: -webkit-linear-gradient(-90deg,rgba(255,255,255,0),rgba(255,255,255,1), rgba(255,255,255,1));
|
||||
background: -moz-linear-gradient(-90deg,rgba(255,255,255,0),rgba(255,255,255,1), rgba(255,255,255,1));
|
||||
background: -ms-linear-gradient(-90deg,rgba(255,255,255,0),rgba(255,255,255,1), rgba(255,255,255,1));
|
||||
/* troublesome in latest webkit
|
||||
background: linear-gradient(-90deg,rgba(255,255,255,0),rgba(255,255,255,1), rgba(255,255,255,1));
|
||||
*/
|
||||
/*background:#FFF;*/
|
||||
padding: 3px;
|
||||
padding-top:15px;
|
||||
@@ -991,12 +997,20 @@
|
||||
margin-bottom:10px;
|
||||
}
|
||||
.point-of-sale .order .summary .line{
|
||||
float: right;
|
||||
margin-right:15px;
|
||||
margin-left: 15px;
|
||||
padding-top:5px;
|
||||
border-top: solid 2px;
|
||||
border-color:#777;
|
||||
}
|
||||
.point-of-sale .order .summary .line .subentry{
|
||||
font-size: 10px;
|
||||
font-weight: normal;
|
||||
text-align: center;
|
||||
}
|
||||
.point-of-sale .order .summary .line.empty{
|
||||
text-align: right;
|
||||
border-color:#BBB;
|
||||
color:#999;
|
||||
}
|
||||
|
||||
@@ -40,6 +40,10 @@ function openerp_pos_db(instance, module){
|
||||
//cache the data in memory to avoid roundtrips to the localstorage
|
||||
this.cache = {};
|
||||
|
||||
this.product_by_id = {};
|
||||
this.product_by_ean13 = {};
|
||||
this.product_by_category_id = {};
|
||||
|
||||
this.category_by_id = {};
|
||||
this.root_category_id = 0;
|
||||
this.category_products = {};
|
||||
@@ -49,6 +53,7 @@ function openerp_pos_db(instance, module){
|
||||
this.category_search_string = {};
|
||||
this.packagings_by_id = {};
|
||||
this.packagings_by_product_id = {};
|
||||
this.packagings_by_ean13 = {};
|
||||
},
|
||||
/* returns the category object from its id. If you pass a list of id as parameters, you get
|
||||
* a list of category objects.
|
||||
@@ -137,7 +142,6 @@ function openerp_pos_db(instance, module){
|
||||
/* saves a record store to the database */
|
||||
save: function(store,data){
|
||||
var str_data = JSON.stringify(data);
|
||||
console.log('Storing '+ Math.round(str_data.length/1024.0)+' KB of data to store: '+store);
|
||||
localStorage[this.name + '_' + store] = JSON.stringify(data);
|
||||
this.cache[store] = data;
|
||||
},
|
||||
@@ -153,8 +157,7 @@ function openerp_pos_db(instance, module){
|
||||
return str + '\n';
|
||||
},
|
||||
add_products: function(products){
|
||||
var stored_products = this.load('products',{});
|
||||
var stored_categories = this.load('categories',{});
|
||||
var stored_categories = this.product_by_category_id;
|
||||
|
||||
if(!products instanceof Array){
|
||||
products = [products];
|
||||
@@ -187,10 +190,11 @@ function openerp_pos_db(instance, module){
|
||||
}
|
||||
this.category_search_string[ancestor] += search_string;
|
||||
}
|
||||
stored_products[product.id] = product;
|
||||
this.product_by_id[product.id] = product;
|
||||
if(product.ean13){
|
||||
this.product_by_ean13[product.ean13] = product;
|
||||
}
|
||||
}
|
||||
this.save('products',stored_products);
|
||||
this.save('categories',stored_categories);
|
||||
},
|
||||
add_packagings: function(packagings){
|
||||
for(var i = 0, len = packagings.length; i < len; i++){
|
||||
@@ -200,6 +204,9 @@ function openerp_pos_db(instance, module){
|
||||
this.packagings_by_product_id[pack.product_id[0]] = [];
|
||||
}
|
||||
this.packagings_by_product_id[pack.product_id[0]].push(pack);
|
||||
if(pack.ean13){
|
||||
this.packagings_by_ean13[pack.ean13] = pack;
|
||||
}
|
||||
}
|
||||
},
|
||||
/* removes all the data from the database. TODO : being able to selectively remove data */
|
||||
@@ -219,31 +226,24 @@ function openerp_pos_db(instance, module){
|
||||
return count;
|
||||
},
|
||||
get_product_by_id: function(id){
|
||||
return this.load('products',{})[id];
|
||||
return this.product_by_id[id];
|
||||
},
|
||||
get_product_by_ean13: function(ean13){
|
||||
var products = this.load('products',{});
|
||||
for(var i in products){
|
||||
if( products[i] && products[i].ean13 === ean13){
|
||||
return products[i];
|
||||
}
|
||||
if(this.product_by_ean13[ean13]){
|
||||
return this.product_by_ean13[ean13];
|
||||
}
|
||||
for(var p in this.packagings_by_id){
|
||||
var pack = this.packagings_by_id[p];
|
||||
if( pack.ean === ean13){
|
||||
return products[pack.product_id[0]];
|
||||
}
|
||||
var pack = this.packagings_by_ean13[ean13];
|
||||
if(pack){
|
||||
return this.product_by_id[pack.product_id[0]];
|
||||
}
|
||||
return undefined;
|
||||
},
|
||||
get_product_by_category: function(category_id){
|
||||
var stored_categories = this.load('categories',{});
|
||||
var stored_products = this.load('products',{});
|
||||
var product_ids = stored_categories[category_id];
|
||||
var product_ids = this.product_by_category_id[category_id];
|
||||
var list = [];
|
||||
if (product_ids) {
|
||||
for (var i = 0, len = Math.min(product_ids.length, this.limit); i < len; i++) {
|
||||
list.push(stored_products[product_ids[i]]);
|
||||
list.push(this.product_by_id[product_ids[i]]);
|
||||
}
|
||||
}
|
||||
return list;
|
||||
@@ -275,12 +275,9 @@ function openerp_pos_db(instance, module){
|
||||
},
|
||||
remove_order: function(order_id){
|
||||
var orders = this.load('orders',[]);
|
||||
console.log('Remove order:',order_id);
|
||||
console.log('Order count:',orders.length);
|
||||
orders = _.filter(orders, function(order){
|
||||
return order.id !== order_id;
|
||||
});
|
||||
console.log('Order count:',orders.length);
|
||||
this.save('orders',orders);
|
||||
},
|
||||
get_orders: function(){
|
||||
|
||||
@@ -1,6 +1,24 @@
|
||||
function openerp_pos_models(instance, module){ //module is instance.point_of_sale
|
||||
var QWeb = instance.web.qweb;
|
||||
|
||||
// rounds a value with a fixed number of decimals.
|
||||
// round(3.141492,2) -> 3.14
|
||||
function round(value,decimals){
|
||||
var mult = Math.pow(10,decimals || 0);
|
||||
return Math.round(value*mult)/mult;
|
||||
}
|
||||
window.round = round;
|
||||
|
||||
// rounds a value with decimal form precision
|
||||
// round(3.141592,0.025) ->3.125
|
||||
function round_pr(value,precision){
|
||||
if(!precision || precision < 0){
|
||||
throw new Error('round_pr(): needs a precision greater than zero, got '+precision+' instead');
|
||||
}
|
||||
return Math.round(value / precision) * precision;
|
||||
}
|
||||
window.round_pr = round_pr;
|
||||
|
||||
|
||||
// The PosModel contains the Point Of Sale's representation of the backend.
|
||||
// Since the PoS must work in standalone ( Without connection to the server )
|
||||
@@ -24,8 +42,7 @@ function openerp_pos_models(instance, module){ //module is instance.point_of_sal
|
||||
this.proxy = new module.ProxyDevice(); // used to communicate to the hardware devices via a local proxy
|
||||
this.db = new module.PosLS(); // a database used to store the products and categories
|
||||
this.db.clear('products','categories');
|
||||
this.debug = jQuery.deparam(jQuery.param.querystring()).debug !== undefined; //debug mode
|
||||
|
||||
this.debug = jQuery.deparam(jQuery.param.querystring()).debug !== undefined; //debug mode
|
||||
|
||||
// default attributes values. If null, it will be loaded below.
|
||||
this.set({
|
||||
@@ -101,8 +118,9 @@ function openerp_pos_models(instance, module){ //module is instance.point_of_sal
|
||||
}).then(function(company_partners){
|
||||
self.get('company').contact_address = company_partners[0].contact_address;
|
||||
|
||||
return self.fetch('res.currency',['symbol','position'],[['id','=',self.get('company').currency_id[0]]]);
|
||||
return self.fetch('res.currency',['symbol','position','rounding','accuracy'],[['id','=',self.get('company').currency_id[0]]]);
|
||||
}).then(function(currencies){
|
||||
console.log('Currency:',currencies[0]);
|
||||
self.set('currency',currencies[0]);
|
||||
|
||||
return self.fetch('product.uom', null, null);
|
||||
@@ -117,7 +135,7 @@ function openerp_pos_models(instance, module){ //module is instance.point_of_sal
|
||||
return self.fetch('product.packaging', null, null);
|
||||
}).then(function(packagings){
|
||||
self.set('product.packaging',packagings);
|
||||
|
||||
|
||||
return self.fetch('res.users', ['name','ean13'], [['ean13', '!=', false]]);
|
||||
}).then(function(users){
|
||||
self.set('user_list',users);
|
||||
@@ -211,7 +229,6 @@ function openerp_pos_models(instance, module){ //module is instance.point_of_sal
|
||||
// logs the usefull posmodel data to the console for debug purposes
|
||||
log_loaded_data: function(){
|
||||
console.log('PosModel data has been loaded:');
|
||||
console.log('PosModel: categories:',this.get('categories'));
|
||||
console.log('PosModel: units:',this.get('units'));
|
||||
console.log('PosModel: bank_statements:',this.get('bank_statements'));
|
||||
console.log('PosModel: journals:',this.get('journals'));
|
||||
@@ -339,19 +356,26 @@ function openerp_pos_models(instance, module){ //module is instance.point_of_sal
|
||||
this.product = options.product;
|
||||
this.price = options.product.get('price');
|
||||
this.quantity = 1;
|
||||
this.quantityStr = '1';
|
||||
this.discount = 0;
|
||||
this.discountStr = '0';
|
||||
this.type = 'unit';
|
||||
this.selected = false;
|
||||
},
|
||||
// sets a discount [0,100]%
|
||||
set_discount: function(discount){
|
||||
this.discount = Math.max(0,Math.min(100,discount));
|
||||
var disc = Math.min(Math.max(parseFloat(discount) || 0, 0),100);
|
||||
this.discount = disc;
|
||||
this.discountStr = '' + disc;
|
||||
this.trigger('change');
|
||||
},
|
||||
// returns the discount [0,100]%
|
||||
get_discount: function(){
|
||||
return this.discount;
|
||||
},
|
||||
get_discount_str: function(){
|
||||
return this.discountStr;
|
||||
},
|
||||
get_product_type: function(){
|
||||
return this.type;
|
||||
},
|
||||
@@ -359,13 +383,18 @@ function openerp_pos_models(instance, module){ //module is instance.point_of_sal
|
||||
// product's unity of measure properties. Quantities greater than zero will not get
|
||||
// rounded to zero
|
||||
set_quantity: function(quantity){
|
||||
if(_.isNaN(quantity)){
|
||||
if(quantity === 'remove'){
|
||||
this.order.removeOrderline(this);
|
||||
}else if(quantity !== undefined){
|
||||
this.quantity = Math.max(0,quantity);
|
||||
return;
|
||||
}else{
|
||||
var quant = Math.max(parseFloat(quantity) || 0, 0);
|
||||
var unit = this.get_unit();
|
||||
if(unit && this.quantity > 0 ){
|
||||
this.quantity = Math.max(unit.rounding, Math.round(quantity / unit.rounding) * unit.rounding);
|
||||
if(unit){
|
||||
this.quantity = Math.max(unit.rounding, Math.round(quant / unit.rounding) * unit.rounding);
|
||||
this.quantityStr = this.quantity.toFixed(Math.max(0,Math.ceil(Math.log(1.0 / unit.rounding) / Math.log(10))));
|
||||
}else{
|
||||
this.quantity = quant;
|
||||
this.quantityStr = '' + this.quantity;
|
||||
}
|
||||
}
|
||||
this.trigger('change');
|
||||
@@ -374,6 +403,17 @@ function openerp_pos_models(instance, module){ //module is instance.point_of_sal
|
||||
get_quantity: function(){
|
||||
return this.quantity;
|
||||
},
|
||||
get_quantity_str: function(){
|
||||
return this.quantityStr;
|
||||
},
|
||||
get_quantity_str_with_unit: function(){
|
||||
var unit = this.get_unit();
|
||||
if(unit && unit.name !== 'Unit(s)'){
|
||||
return this.quantityStr + ' ' + unit.name;
|
||||
}else{
|
||||
return this.quantityStr;
|
||||
}
|
||||
},
|
||||
// return the unit of measure of the product
|
||||
get_unit: function(){
|
||||
var unit_id = (this.product.get('uos_id') || this.product.get('uom_id'));
|
||||
@@ -390,15 +430,6 @@ function openerp_pos_models(instance, module){ //module is instance.point_of_sal
|
||||
get_product: function(){
|
||||
return this.product;
|
||||
},
|
||||
// return the base price of this product (for this orderline)
|
||||
get_price: function(){
|
||||
return this.price;
|
||||
},
|
||||
// changes the base price of the product for this orderline
|
||||
set_price: function(price){
|
||||
this.price = price;
|
||||
this.trigger('change');
|
||||
},
|
||||
// selects or deselects this orderline
|
||||
set_selected: function(selected){
|
||||
this.selected = selected;
|
||||
@@ -429,7 +460,7 @@ function openerp_pos_models(instance, module){ //module is instance.point_of_sal
|
||||
export_as_JSON: function() {
|
||||
return {
|
||||
qty: this.get_quantity(),
|
||||
price_unit: this.get_price(),
|
||||
price_unit: this.get_unit_price(),
|
||||
discount: this.get_discount(),
|
||||
product_id: this.get_product().get('id'),
|
||||
};
|
||||
@@ -439,9 +470,10 @@ function openerp_pos_models(instance, module){ //module is instance.point_of_sal
|
||||
return {
|
||||
quantity: this.get_quantity(),
|
||||
unit_name: this.get_unit().name,
|
||||
price: this.get_price(),
|
||||
price: this.get_unit_price(),
|
||||
discount: this.get_discount(),
|
||||
product_name: this.get_product().get('name'),
|
||||
price_display : this.get_display_price(),
|
||||
price_with_tax : this.get_price_with_tax(),
|
||||
price_without_tax: this.get_price_without_tax(),
|
||||
tax: this.get_tax(),
|
||||
@@ -449,6 +481,19 @@ function openerp_pos_models(instance, module){ //module is instance.point_of_sal
|
||||
product_description_sale: this.get_product().get('description_sale'),
|
||||
};
|
||||
},
|
||||
// changes the base price of the product for this orderline
|
||||
set_unit_price: function(price){
|
||||
this.price = round(parseFloat(price) || 0, 2);
|
||||
this.trigger('change');
|
||||
},
|
||||
get_unit_price: function(){
|
||||
var rounding = this.pos.get('currency').rounding;
|
||||
return round_pr(this.price,rounding);
|
||||
},
|
||||
get_display_price: function(){
|
||||
var rounding = this.pos.get('currency').rounding;
|
||||
return round_pr(round_pr(this.get_unit_price() * this.get_quantity(),rounding) * (1- this.get_discount()/100.0),rounding);
|
||||
},
|
||||
get_price_without_tax: function(){
|
||||
return this.get_all_prices().priceWithoutTax;
|
||||
},
|
||||
@@ -458,9 +503,10 @@ function openerp_pos_models(instance, module){ //module is instance.point_of_sal
|
||||
get_tax: function(){
|
||||
return this.get_all_prices().tax;
|
||||
},
|
||||
get_all_prices: function() {
|
||||
get_all_prices: function(){
|
||||
var self = this;
|
||||
var base = this.get_quantity() * this.price * (1 - (this.get_discount() / 100));
|
||||
var currency_rounding = this.pos.get('currency').rounding;
|
||||
var base = round_pr(this.get_quantity() * this.get_unit_price() * (1.0 - (this.get_discount() / 100.0)), currency_rounding);
|
||||
var totalTax = base;
|
||||
var totalNoTax = base;
|
||||
|
||||
@@ -474,12 +520,13 @@ function openerp_pos_models(instance, module){ //module is instance.point_of_sal
|
||||
if (tax.price_include) {
|
||||
var tmp;
|
||||
if (tax.type === "percent") {
|
||||
tmp = base - (base / (1 + tax.amount));
|
||||
tmp = base - round_pr(base / (1 + tax.amount),currency_rounding);
|
||||
} else if (tax.type === "fixed") {
|
||||
tmp = tax.amount * self.get_quantity();
|
||||
tmp = round_pr(tax.amount * self.get_quantity(),currency_rounding);
|
||||
} else {
|
||||
throw "This type of tax is not supported by the point of sale: " + tax.type;
|
||||
}
|
||||
tmp = round_pr(tmp,currency_rounding);
|
||||
taxtotal += tmp;
|
||||
totalNoTax -= tmp;
|
||||
} else {
|
||||
@@ -491,6 +538,7 @@ function openerp_pos_models(instance, module){ //module is instance.point_of_sal
|
||||
} else {
|
||||
throw "This type of tax is not supported by the point of sale: " + tax.type;
|
||||
}
|
||||
tmp = round_pr(tmp,currency_rounding);
|
||||
taxtotal += tmp;
|
||||
totalTax += tmp;
|
||||
}
|
||||
@@ -515,7 +563,7 @@ function openerp_pos_models(instance, module){ //module is instance.point_of_sal
|
||||
},
|
||||
//sets the amount of money on this payment line
|
||||
set_amount: function(value){
|
||||
this.amount = value;
|
||||
this.amount = parseFloat(value) || 0;
|
||||
this.trigger('change');
|
||||
},
|
||||
// returns the amount of money on this paymentline
|
||||
@@ -584,7 +632,7 @@ function openerp_pos_models(instance, module){ //module is instance.point_of_sal
|
||||
line.set_quantity(options.quantity);
|
||||
}
|
||||
if(options.price !== undefined){
|
||||
line.set_price(options.price);
|
||||
line.set_unit_price(options.price);
|
||||
}
|
||||
|
||||
var last_orderline = this.getLastOrderline();
|
||||
@@ -613,14 +661,19 @@ function openerp_pos_models(instance, module){ //module is instance.point_of_sal
|
||||
getName: function() {
|
||||
return this.get('name');
|
||||
},
|
||||
getTotal: function() {
|
||||
getSubtotal : function(){
|
||||
return (this.get('orderLines')).reduce((function(sum, orderLine){
|
||||
return sum + orderLine.get_display_price();
|
||||
}), 0);
|
||||
},
|
||||
getTotalTaxIncluded: function() {
|
||||
return (this.get('orderLines')).reduce((function(sum, orderLine) {
|
||||
return sum + orderLine.get_price_with_tax();
|
||||
}), 0);
|
||||
},
|
||||
getDiscountTotal: function() {
|
||||
return (this.get('orderLines')).reduce((function(sum, orderLine) {
|
||||
return sum + (orderLine.get_price() * (orderLine.get_discount()/100) * orderLine.get_quantity());
|
||||
return sum + (orderLine.get_unit_price() * (orderLine.get_discount()/100) * orderLine.get_quantity());
|
||||
}), 0);
|
||||
},
|
||||
getTotalTaxExcluded: function() {
|
||||
@@ -639,10 +692,10 @@ function openerp_pos_models(instance, module){ //module is instance.point_of_sal
|
||||
}), 0);
|
||||
},
|
||||
getChange: function() {
|
||||
return this.getPaidTotal() - this.getTotal();
|
||||
return this.getPaidTotal() - this.getTotalTaxIncluded();
|
||||
},
|
||||
getDueLeft: function() {
|
||||
return this.getTotal() - this.getPaidTotal();
|
||||
return this.getTotalTaxIncluded() - this.getPaidTotal();
|
||||
},
|
||||
// sets the type of receipt 'receipt'(default) or 'invoice'
|
||||
set_receipt_type: function(type){
|
||||
@@ -698,10 +751,12 @@ function openerp_pos_models(instance, module){ //module is instance.point_of_sal
|
||||
return {
|
||||
orderlines: orderlines,
|
||||
paymentlines: paymentlines,
|
||||
total_with_tax: this.getTotal(),
|
||||
subtotal: this.getSubtotal(),
|
||||
total_with_tax: this.getTotalTaxIncluded(),
|
||||
total_without_tax: this.getTotalTaxExcluded(),
|
||||
total_tax: this.getTax(),
|
||||
total_paid: this.getPaidTotal(),
|
||||
total_discount: this.getDiscountTotal(),
|
||||
change: this.getChange(),
|
||||
name : this.getName(),
|
||||
client: client ? client.name : null ,
|
||||
@@ -743,7 +798,7 @@ function openerp_pos_models(instance, module){ //module is instance.point_of_sal
|
||||
return {
|
||||
name: this.getName(),
|
||||
amount_paid: this.getPaidTotal(),
|
||||
amount_total: this.getTotal(),
|
||||
amount_total: this.getTotalTaxIncluded(),
|
||||
amount_tax: this.getTax(),
|
||||
amount_return: this.getChange(),
|
||||
lines: orderLines,
|
||||
@@ -800,20 +855,19 @@ function openerp_pos_models(instance, module){ //module is instance.point_of_sal
|
||||
buffer: (this.get('buffer')) + newChar
|
||||
});
|
||||
}
|
||||
this.updateTarget();
|
||||
this.trigger('set_value',this.get('buffer'));
|
||||
},
|
||||
deleteLastChar: function() {
|
||||
var tempNewBuffer = this.get('buffer').slice(0, -1);
|
||||
|
||||
if(!tempNewBuffer){
|
||||
this.set({ buffer: "0" });
|
||||
this.killTarget();
|
||||
}else{
|
||||
if (isNaN(tempNewBuffer)) {
|
||||
tempNewBuffer = "0";
|
||||
if(this.get('buffer') === ""){
|
||||
if(this.get('mode') === 'quantity'){
|
||||
this.trigger('set_value','remove');
|
||||
}else{
|
||||
this.trigger('set_value',this.get('buffer'));
|
||||
}
|
||||
this.set({ buffer: tempNewBuffer });
|
||||
this.updateTarget();
|
||||
}else{
|
||||
var newBuffer = this.get('buffer').slice(0,-1) || "";
|
||||
this.set({ buffer: newBuffer });
|
||||
this.trigger('set_value',this.get('buffer'));
|
||||
}
|
||||
},
|
||||
switchSign: function() {
|
||||
@@ -822,7 +876,7 @@ function openerp_pos_models(instance, module){ //module is instance.point_of_sal
|
||||
this.set({
|
||||
buffer: oldBuffer[0] === '-' ? oldBuffer.substr(1) : "-" + oldBuffer
|
||||
});
|
||||
this.updateTarget();
|
||||
this.trigger('set_value',this.get('buffer'));
|
||||
},
|
||||
changeMode: function(newMode) {
|
||||
this.set({
|
||||
@@ -836,15 +890,8 @@ function openerp_pos_models(instance, module){ //module is instance.point_of_sal
|
||||
mode: "quantity"
|
||||
});
|
||||
},
|
||||
updateTarget: function() {
|
||||
var bufferContent, params;
|
||||
bufferContent = this.get('buffer');
|
||||
if (bufferContent && !isNaN(bufferContent)) {
|
||||
this.trigger('set_value', parseFloat(bufferContent));
|
||||
}
|
||||
},
|
||||
killTarget: function(){
|
||||
this.trigger('set_value',Number.NaN);
|
||||
resetValue: function(){
|
||||
this.set({buffer:'0'});
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
@@ -368,7 +368,6 @@ function openerp_pos_screens(instance, module){ //module is instance.point_of_sa
|
||||
module.ChooseReceiptPopupWidget = module.PopUpWidget.extend({
|
||||
template:'ChooseReceiptPopupWidget',
|
||||
show: function(){
|
||||
console.log('show');
|
||||
this._super();
|
||||
this.renderElement();
|
||||
var self = this;
|
||||
@@ -603,7 +602,6 @@ function openerp_pos_screens(instance, module){ //module is instance.point_of_sa
|
||||
// initiates the connection to the payment terminal and starts the update requests
|
||||
this.start = function(){
|
||||
var def = new $.Deferred();
|
||||
console.log("START");
|
||||
self.pos.proxy.payment_request(self.pos.get('selectedOrder').getDueLeft())
|
||||
.done(function(ack){
|
||||
if(ack === 'ok'){
|
||||
@@ -613,7 +611,6 @@ function openerp_pos_screens(instance, module){ //module is instance.point_of_sa
|
||||
}else{
|
||||
console.error('unknown payment request return value:',ack);
|
||||
}
|
||||
console.log("START_END");
|
||||
def.resolve();
|
||||
});
|
||||
return def;
|
||||
@@ -621,10 +618,8 @@ function openerp_pos_screens(instance, module){ //module is instance.point_of_sa
|
||||
|
||||
// gets updated status from the payment terminal and performs the appropriate consequences
|
||||
this.update = function(){
|
||||
console.log("UPDATE");
|
||||
var def = new $.Deferred();
|
||||
if(self.canceled){
|
||||
console.log("UPDATE_END");
|
||||
return def.resolve();
|
||||
}
|
||||
self.pos.proxy.payment_status()
|
||||
@@ -656,7 +651,6 @@ function openerp_pos_screens(instance, module){ //module is instance.point_of_sa
|
||||
}else{
|
||||
console.error('unknown status value:',status.status);
|
||||
}
|
||||
console.log("UPDATE_END");
|
||||
def.resolve();
|
||||
});
|
||||
return def;
|
||||
@@ -664,14 +658,12 @@ function openerp_pos_screens(instance, module){ //module is instance.point_of_sa
|
||||
|
||||
// cancels a payment.
|
||||
this.cancel = function(){
|
||||
console.log("CANCEL");
|
||||
if(!self.paid && !self.canceled){
|
||||
self.canceled = true;
|
||||
self.pos.proxy.payment_cancel();
|
||||
self.pos_widget.screen_selector.set_current_screen(self.previous_screen);
|
||||
self.queue.clear();
|
||||
}
|
||||
console.log("CANCEL_END");
|
||||
return (new $.Deferred()).resolve();
|
||||
}
|
||||
|
||||
@@ -865,6 +857,7 @@ function openerp_pos_screens(instance, module){ //module is instance.point_of_sa
|
||||
this.bindPaymentLineEvents();
|
||||
this.bind_orderline_events();
|
||||
this.paymentlinewidgets = [];
|
||||
this.focusedLine = null;
|
||||
},
|
||||
show: function(){
|
||||
this._super();
|
||||
@@ -894,6 +887,7 @@ function openerp_pos_screens(instance, module){ //module is instance.point_of_sa
|
||||
});
|
||||
|
||||
this.updatePaymentSummary();
|
||||
this.line_refocus();
|
||||
},
|
||||
close: function(){
|
||||
this._super();
|
||||
@@ -931,17 +925,30 @@ function openerp_pos_screens(instance, module){ //module is instance.point_of_sa
|
||||
this.bind_orderline_events();
|
||||
this.renderElement();
|
||||
},
|
||||
line_refocus: function(lineWidget){
|
||||
if(lineWidget){
|
||||
if(this.focusedLine !== lineWidget){
|
||||
this.focusedLine = lineWidget;
|
||||
}
|
||||
}
|
||||
if(this.focusedLine){
|
||||
this.focusedLine.focus();
|
||||
}
|
||||
},
|
||||
addPaymentLine: function(newPaymentLine) {
|
||||
var self = this;
|
||||
var l = new module.PaymentlineWidget(null, {
|
||||
payment_line: newPaymentLine
|
||||
var l = new module.PaymentlineWidget(this, {
|
||||
payment_line: newPaymentLine,
|
||||
});
|
||||
l.on('delete_payment_line', self, function(r) {
|
||||
self.deleteLine(r);
|
||||
});
|
||||
l.appendTo(this.$('#paymentlines'));
|
||||
this.paymentlinewidgets.push(l);
|
||||
this.$('.paymentline-amount input:last').focus();
|
||||
if(this.numpadState){
|
||||
this.numpadState.resetValue();
|
||||
}
|
||||
this.line_refocus(l);
|
||||
},
|
||||
renderElement: function() {
|
||||
this._super();
|
||||
@@ -958,25 +965,26 @@ function openerp_pos_screens(instance, module){ //module is instance.point_of_sa
|
||||
},
|
||||
deleteLine: function(lineWidget) {
|
||||
this.currentPaymentLines.remove([lineWidget.payment_line]);
|
||||
lineWidget.destroy();
|
||||
},
|
||||
updatePaymentSummary: function() {
|
||||
var currentOrder = this.pos.get('selectedOrder');
|
||||
var paidTotal = currentOrder.getPaidTotal();
|
||||
var dueTotal = currentOrder.getTotal();
|
||||
var dueTotal = currentOrder.getTotalTaxIncluded();
|
||||
var remaining = dueTotal > paidTotal ? dueTotal - paidTotal : 0;
|
||||
var change = paidTotal > dueTotal ? paidTotal - dueTotal : 0;
|
||||
|
||||
this.$('#payment-due-total').html(dueTotal.toFixed(2));
|
||||
this.$('#payment-paid-total').html(paidTotal.toFixed(2));
|
||||
this.$('#payment-remaining').html(remaining.toFixed(2));
|
||||
this.$('#payment-change').html(change.toFixed(2));
|
||||
if((currentOrder.selected_orderline == undefined))
|
||||
remaining = 1
|
||||
this.$('#payment-due-total').html(this.format_currency(dueTotal));
|
||||
this.$('#payment-paid-total').html(this.format_currency(paidTotal));
|
||||
this.$('#payment-remaining').html(this.format_currency(remaining));
|
||||
this.$('#payment-change').html(this.format_currency(change));
|
||||
if(currentOrder.selected_orderline === undefined){
|
||||
remaining = 1; // What is this ?
|
||||
}
|
||||
|
||||
if(this.pos_widget.action_bar){
|
||||
this.pos_widget.action_bar.set_button_disabled('validation', remaining > 0);
|
||||
}
|
||||
this.$('.paymentline-amount input:last').focus();
|
||||
},
|
||||
set_numpad_state: function(numpadState) {
|
||||
if (this.numpadState) {
|
||||
@@ -998,5 +1006,4 @@ function openerp_pos_screens(instance, module){ //module is instance.point_of_sa
|
||||
this.currentPaymentLines.last().set_amount(val);
|
||||
},
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
@@ -22,14 +22,20 @@ function openerp_pos_basewidget(instance, module){ //module is instance.point_of
|
||||
if(this.pos && this.pos.get('currency')){
|
||||
this.currency = this.pos.get('currency');
|
||||
}else{
|
||||
this.currency = {symbol: '$', position: 'after'};
|
||||
this.currency = {symbol: '$', position: 'after', rounding: 0.01};
|
||||
}
|
||||
|
||||
var decimals = Math.max(0,Math.ceil(Math.log(1.0 / this.currency.rounding) / Math.log(10)));
|
||||
|
||||
this.format_currency = function(amount){
|
||||
if(typeof amount === 'number'){
|
||||
amount = Math.round(amount*100)/100;
|
||||
amount = amount.toFixed(decimals);
|
||||
}
|
||||
if(this.currency.position === 'after'){
|
||||
return Math.round(amount*100)/100 + ' ' + this.currency.symbol;
|
||||
return amount + ' ' + this.currency.symbol;
|
||||
}else{
|
||||
return this.currency.symbol + ' ' + Math.round(amount*100)/100;
|
||||
return this.currency.symbol + ' ' + amount;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -186,7 +186,7 @@ function openerp_pos_widgets(instance, module){ //module is instance.point_of_sa
|
||||
}else if( mode === 'discount'){
|
||||
order.getSelectedLine().set_discount(val);
|
||||
}else if( mode === 'price'){
|
||||
order.getSelectedLine().set_price(val);
|
||||
order.getSelectedLine().set_unit_price(val);
|
||||
}
|
||||
} else {
|
||||
this.pos.get('selectedOrder').destroy();
|
||||
@@ -269,8 +269,10 @@ function openerp_pos_widgets(instance, module){ //module is instance.point_of_sa
|
||||
},
|
||||
update_summary: function(){
|
||||
var order = this.pos.get('selectedOrder');
|
||||
var total = order ? order.getTotal() : 0;
|
||||
this.$('.summary .value.total').html(this.format_currency(total));
|
||||
var total = order ? order.getTotalTaxIncluded() : 0;
|
||||
var taxes = order ? total - order.getTotalTaxExcluded() : 0;
|
||||
this.$('.summary .total > .value').html(this.format_currency(total));
|
||||
this.$('.summary .total .subentry .value').html(this.format_currency(taxes));
|
||||
},
|
||||
set_display_mode: function(mode){
|
||||
if(this.display_mode !== mode){
|
||||
@@ -311,24 +313,34 @@ function openerp_pos_widgets(instance, module){ //module is instance.point_of_sa
|
||||
},
|
||||
changeAmount: function(event) {
|
||||
var newAmount = event.currentTarget.value;
|
||||
if (newAmount && !isNaN(newAmount)) {
|
||||
this.amount = parseFloat(newAmount);
|
||||
this.payment_line.set_amount(this.amount);
|
||||
var amount = parseFloat(newAmount);
|
||||
if(!isNaN(amount)){
|
||||
this.amount = amount;
|
||||
this.payment_line.set_amount(amount);
|
||||
}
|
||||
},
|
||||
changedAmount: function() {
|
||||
if (this.amount !== this.payment_line.get_amount())
|
||||
if (this.amount !== this.payment_line.get_amount()){
|
||||
this.renderElement();
|
||||
}
|
||||
},
|
||||
renderElement: function() {
|
||||
var self = this;
|
||||
this.name = this.payment_line.get_cashregister().get('journal_id')[1];
|
||||
this._super();
|
||||
this.$('input').keyup(_.bind(this.changeAmount, this));
|
||||
this.$('input').keyup(function(event){
|
||||
self.changeAmount(event);
|
||||
});
|
||||
this.$('.delete-payment-line').click(function() {
|
||||
self.trigger('delete_payment_line', self);
|
||||
});
|
||||
},
|
||||
focus: function(){
|
||||
var val = this.$('input')[0].value;
|
||||
this.$('input')[0].focus();
|
||||
this.$('input')[0].value = val;
|
||||
this.$('input')[0].select();
|
||||
},
|
||||
});
|
||||
|
||||
module.OrderButtonWidget = module.PosBaseWidget.extend({
|
||||
@@ -606,20 +618,15 @@ function openerp_pos_widgets(instance, module){ //module is instance.point_of_sa
|
||||
if(this.scrollbar){
|
||||
this.scrollbar.destroy();
|
||||
}
|
||||
|
||||
this.pos.get('products')
|
||||
.chain()
|
||||
.map(function(product) {
|
||||
var product = new module.ProductWidget(self, {
|
||||
model: product,
|
||||
weight: self.weight,
|
||||
click_product_action: self.click_product_action,
|
||||
})
|
||||
self.productwidgets.push(product);
|
||||
return product;
|
||||
})
|
||||
.invoke('appendTo', this.$('.product-list'));
|
||||
|
||||
var products = this.pos.get('products').models || [];
|
||||
for(var i = 0, len = products.length; i < len; i++){
|
||||
var product = new module.ProductWidget(self, {
|
||||
model: products[i],
|
||||
click_product_action: this.click_product_action,
|
||||
});
|
||||
this.productwidgets.push(product);
|
||||
product.appendTo(this.$('.product-list'));
|
||||
}
|
||||
this.scrollbar = new module.ScrollbarWidget(this,{
|
||||
target_widget: this,
|
||||
target_selector: '.product-list-scroller',
|
||||
|
||||
@@ -48,11 +48,17 @@
|
||||
</t>
|
||||
|
||||
<t t-name="SynchNotificationWidget">
|
||||
<div class="oe_pos_synch-notification">
|
||||
<t t-if="widget.get_nbr_pending() > 0" t-esc="widget.get_nbr_pending()"/>
|
||||
<div t-if="widget.get_nbr_pending() > 0" class="oe_status_red"></div>
|
||||
<div t-if="widget.get_nbr_pending() === 0" class="oe_status_green"></div>
|
||||
</div>
|
||||
<t t-if="widget.get_nbr_pending() > 0">
|
||||
<div class="oe_pos_synch-notification">
|
||||
<t t-esc="widget.get_nbr_pending()"/>
|
||||
<div class="oe_status_red"></div>
|
||||
</div>
|
||||
</t>
|
||||
<t t-if="widget.get_nbr_pending() === 0">
|
||||
<div class="oe_pos_synch-notification oe_inactive">
|
||||
<div class="oe_status_green"></div>
|
||||
</div>
|
||||
</t>
|
||||
</t>
|
||||
|
||||
<t t-name="HeaderButtonWidget">
|
||||
@@ -214,11 +220,7 @@
|
||||
<span class="left-block">
|
||||
Total:
|
||||
</span>
|
||||
<span class="right-block">
|
||||
<t t-if="widget.currency.position == 'before'" t-esc="widget.currency.symbol"/>
|
||||
<span id="payment-due-total"></span>
|
||||
<t t-if="widget.currency.position == 'after'" t-esc="widget.currency.symbol"/>
|
||||
</span>
|
||||
<span class='right-block' id="payment-due-total"></span>
|
||||
</div>
|
||||
<table id="paymentlines">
|
||||
</table>
|
||||
@@ -227,31 +229,19 @@
|
||||
<span class='left-block'>
|
||||
Paid:
|
||||
</span>
|
||||
<span class='right-block'>
|
||||
<t t-if="widget.currency.position == 'before'" t-esc="widget.currency.symbol"/>
|
||||
<span id="payment-paid-total"></span>
|
||||
<t t-if="widget.currency.position == 'after'" t-esc="widget.currency.symbol"/>
|
||||
</span>
|
||||
<span class='right-block' id="payment-paid-total"></span>
|
||||
</div>
|
||||
<div class="infoline">
|
||||
<span class='left-block'>
|
||||
Remaining:
|
||||
</span>
|
||||
<span class='right-block'>
|
||||
<t t-if="widget.currency.position == 'before'" t-esc="widget.currency.symbol"/>
|
||||
<span id="payment-remaining"></span>
|
||||
<t t-if="widget.currency.position == 'after'" t-esc="widget.currency.symbol"/>
|
||||
</span>
|
||||
<span class='right-block' id="payment-remaining"></span>
|
||||
</div>
|
||||
<div class="infoline" >
|
||||
<span class='left-block'>
|
||||
Change:
|
||||
</span>
|
||||
<span class='right-block'>
|
||||
<t t-if="widget.currency.position == 'before'" t-esc="widget.currency.symbol"/>
|
||||
<span id="payment-change"></span>
|
||||
<t t-if="widget.currency.position == 'after'" t-esc="widget.currency.symbol"/>
|
||||
</span>
|
||||
<span class='right-block' id="payment-change"></span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -431,9 +421,13 @@
|
||||
|
||||
</ul>
|
||||
<div class="summary">
|
||||
<span t-attf-class="line #{widget.pos.get('selectedOrder').get('orderLines').length === 0 ? 'empty' : ''}">
|
||||
<span class="label total">Total:</span> <span class="value total">0.00 €</span>
|
||||
</span>
|
||||
<div t-attf-class="line #{widget.pos.get('selectedOrder').get('orderLines').length === 0 ? 'empty' : ''}">
|
||||
<div class='entry total'>
|
||||
<span class="label">Total: </span> <span class="value">0.00 €</span>
|
||||
<div class='subentry'>Taxes: <span class="value">0.00€</span></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class='clear'></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -500,26 +494,26 @@
|
||||
<t t-esc="widget.model.get_product().get('name')"/>
|
||||
</span>
|
||||
<span class="price">
|
||||
<t t-esc="widget.format_currency(widget.model.get_price_with_tax())"/>
|
||||
<t t-esc="widget.format_currency(widget.model.get_display_price())"/>
|
||||
</span>
|
||||
<ul class="info-list">
|
||||
<t t-if="widget.model.get_quantity() !== 1.0">
|
||||
<t t-if="widget.model.get_quantity_str() !== '1'">
|
||||
<li class="info">
|
||||
<em>
|
||||
<t t-esc="widget.model.get_quantity()" />
|
||||
<t t-esc="widget.model.get_quantity_str()" />
|
||||
</em>
|
||||
<t t-esc="widget.model.get_unit().name" />
|
||||
at
|
||||
<t t-esc="widget.format_currency(widget.model.get_price())" />
|
||||
<t t-esc="widget.format_currency(widget.model.get_unit_price())" />
|
||||
/
|
||||
<t t-esc="widget.model.get_unit().name" />
|
||||
</li>
|
||||
</t>
|
||||
<t t-if="widget.model.get_discount() > 0">
|
||||
<t t-if="widget.model.get_discount_str() !== '0'">
|
||||
<li class="info">
|
||||
With a
|
||||
<em>
|
||||
<t t-esc="widget.model.get_discount()" />%
|
||||
<t t-esc="widget.model.get_discount_str()" />%
|
||||
</em>
|
||||
discount
|
||||
</li>
|
||||
@@ -571,33 +565,36 @@
|
||||
Shop: <t t-esc="widget.shop_obj.name"/><br />
|
||||
<br />
|
||||
<table>
|
||||
<tr t-foreach="widget.currentOrderLines.toArray()" t-as="order">
|
||||
<tr t-foreach="widget.currentOrderLines.toArray()" t-as="orderline">
|
||||
<td>
|
||||
<t t-esc="order.get_product().get('name')"/>
|
||||
<t t-if="order.get_discount() > 0">
|
||||
<t t-esc="orderline.get_product().get('name')"/>
|
||||
<t t-if="orderline.get_discount() > 0">
|
||||
<div class="pos-disc-font">
|
||||
With a <t t-esc="order.get_discount()"/>% discount
|
||||
With a <t t-esc="orderline.get_discount()"/>% discount
|
||||
</div>
|
||||
</t>
|
||||
</td>
|
||||
<td class="pos-right-align">
|
||||
<t t-esc="order.get_quantity().toFixed(0)"/>
|
||||
<t t-esc="orderline.get_quantity_str_with_unit()"/>
|
||||
</td>
|
||||
<td class="pos-right-align">
|
||||
<t t-esc="widget.format_currency(order.get_price() * (1 - order.get_discount()/100) * order.get_quantity().toFixed(2))"/>
|
||||
<t t-esc="widget.format_currency(orderline.get_display_price())"/>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<br />
|
||||
<table>
|
||||
<tr><td>Subtotal:</td><td class="pos-right-align">
|
||||
<t t-esc="widget.format_currency(widget.currentOrder.getSubtotal())"/>
|
||||
</td></tr>
|
||||
<tr><td>Tax:</td><td class="pos-right-align">
|
||||
<t t-esc="widget.format_currency(widget.currentOrder.getTax().toFixed(2))"/>
|
||||
<t t-esc="widget.format_currency(widget.currentOrder.getTax())"/>
|
||||
</td></tr>
|
||||
<tr><td>Discount:</td><td class="pos-right-align">
|
||||
<t t-esc="widget.format_currency(widget.currentOrder.getDiscountTotal().toFixed(2))"/>
|
||||
<t t-esc="widget.format_currency(widget.currentOrder.getDiscountTotal())"/>
|
||||
</td></tr>
|
||||
<tr class="emph"><td>Total:</td><td class="pos-right-align">
|
||||
<t t-esc="widget.format_currency(widget.currentOrder.getTotal().toFixed(2))"/>
|
||||
<t t-esc="widget.format_currency(widget.currentOrder.getTotalTaxIncluded())"/>
|
||||
</td></tr>
|
||||
</table>
|
||||
<br />
|
||||
@@ -607,14 +604,14 @@
|
||||
<t t-esc="pline.get_cashregister().get('journal_id')[1]"/>
|
||||
</td>
|
||||
<td class="pos-right-align">
|
||||
<t t-esc="widget.format_currency((pline.get_amount()).toFixed(2))"/>
|
||||
<t t-esc="widget.format_currency(pline.get_amount())"/>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<br />
|
||||
<table>
|
||||
<tr><td>Change:</td><td class="pos-right-align">
|
||||
<t t-esc="widget.format_currency((widget.currentOrder.getPaidTotal() - widget.currentOrder.getTotal()).toFixed(2))"/>
|
||||
<t t-esc="widget.format_currency(widget.currentOrder.getPaidTotal() - widget.currentOrder.getTotalTaxIncluded())"/>
|
||||
</td></tr>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
+30
-23
@@ -8,14 +8,14 @@ msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-12-21 17:05+0000\n"
|
||||
"PO-Revision-Date: 2011-07-11 09:51+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"PO-Revision-Date: 2013-02-05 19:25+0000\n"
|
||||
"Last-Translator: krnkris <Unknown>\n"
|
||||
"Language-Team: Hungarian <hu@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-12-22 06:05+0000\n"
|
||||
"X-Generator: Launchpad (build 16378)\n"
|
||||
"X-Launchpad-Export-Date: 2013-02-06 05:15+0000\n"
|
||||
"X-Generator: Launchpad (build 16468)\n"
|
||||
|
||||
#. module: portal
|
||||
#: view:portal.payment.acquirer:0
|
||||
@@ -41,59 +41,59 @@ msgstr ""
|
||||
#. module: portal
|
||||
#: model:mail.group,name:portal.company_jobs
|
||||
msgid "Company Jobs"
|
||||
msgstr ""
|
||||
msgstr "Vállalati feladatok"
|
||||
|
||||
#. module: portal
|
||||
#: view:portal.payment.acquirer:0
|
||||
msgid "amount: the total amount to pay, as a float"
|
||||
msgstr ""
|
||||
msgstr "összeg: a teljes fizetendő mennyiség, mind összegezve"
|
||||
|
||||
#. module: portal
|
||||
#: view:portal.wizard.user:0
|
||||
msgid "Contacts"
|
||||
msgstr ""
|
||||
msgstr "Kapcsolatok"
|
||||
|
||||
#. module: portal
|
||||
#: view:share.wizard:0
|
||||
#: field:share.wizard,group_ids:0
|
||||
msgid "Existing groups"
|
||||
msgstr ""
|
||||
msgstr "Már létező csoportok"
|
||||
|
||||
#. module: portal
|
||||
#: view:res.groups:0
|
||||
msgid "Portal Groups"
|
||||
msgstr ""
|
||||
msgstr "Portál csoportok"
|
||||
|
||||
#. module: portal
|
||||
#: field:portal.wizard,welcome_message:0
|
||||
msgid "Invitation Message"
|
||||
msgstr ""
|
||||
msgstr "Meghívó szövege"
|
||||
|
||||
#. module: portal
|
||||
#: view:res.groups:0
|
||||
msgid "Non-Portal Groups"
|
||||
msgstr ""
|
||||
msgstr "Nem portál csoportok"
|
||||
|
||||
#. module: portal
|
||||
#: code:addons/portal/wizard/share_wizard.py:54
|
||||
#, python-format
|
||||
msgid "Please select at least one group to share with"
|
||||
msgstr ""
|
||||
msgstr "Kérem legalább egy csoport kiválasztását akivel megosztja"
|
||||
|
||||
#. module: portal
|
||||
#: view:share.wizard:0
|
||||
msgid "Details"
|
||||
msgstr ""
|
||||
msgstr "Részletek"
|
||||
|
||||
#. module: portal
|
||||
#: model:ir.ui.menu,name:portal.portal_orders
|
||||
msgid "Quotations and Sales Orders"
|
||||
msgstr ""
|
||||
msgstr "Árajánlatok és vevői megrendelések"
|
||||
|
||||
#. module: portal
|
||||
#: view:portal.payment.acquirer:0
|
||||
msgid "reference: the reference number of the document to pay"
|
||||
msgstr ""
|
||||
msgstr "referencia: a fizetni kívánt dokumentum referencia száma"
|
||||
|
||||
#. module: portal
|
||||
#: help:portal.payment.acquirer,visible:0
|
||||
@@ -101,16 +101,18 @@ msgid ""
|
||||
"Make this payment acquirer available in portal forms (Customer invoices, "
|
||||
"etc.)"
|
||||
msgstr ""
|
||||
"Ez a fizetési igénylő legyen elérhető a portál űrlapokon (Vevők számlái, "
|
||||
"stb.)"
|
||||
|
||||
#. module: portal
|
||||
#: model:ir.model,name:portal.model_share_wizard
|
||||
msgid "Share Wizard"
|
||||
msgstr ""
|
||||
msgstr "Megosztás varázsló"
|
||||
|
||||
#. module: portal
|
||||
#: field:portal.wizard.user,email:0
|
||||
msgid "Email"
|
||||
msgstr ""
|
||||
msgstr "E-mail"
|
||||
|
||||
#. module: portal
|
||||
#: model:ir.actions.client,help:portal.action_news
|
||||
@@ -120,6 +122,10 @@ msgid ""
|
||||
" </p>\n"
|
||||
" "
|
||||
msgstr ""
|
||||
"<p>\n"
|
||||
" Önnek nincsenek olvasatlan hírek a vállalattól.\n"
|
||||
" </p>\n"
|
||||
" "
|
||||
|
||||
#. module: portal
|
||||
#: code:addons/portal/wizard/portal_wizard.py:194
|
||||
@@ -127,17 +133,18 @@ msgstr ""
|
||||
msgid ""
|
||||
"You must have an email address in your User Preferences to send emails."
|
||||
msgstr ""
|
||||
"Kell lennie egy e-mail címének a felhasználói űrlapján az e-mail küldéséhez."
|
||||
|
||||
#. module: portal
|
||||
#: model:ir.actions.client,name:portal.action_jobs
|
||||
#: model:ir.ui.menu,name:portal.portal_jobs
|
||||
msgid "Jobs"
|
||||
msgstr ""
|
||||
msgstr "Feladatok"
|
||||
|
||||
#. module: portal
|
||||
#: field:portal.wizard,user_ids:0
|
||||
msgid "Users"
|
||||
msgstr ""
|
||||
msgstr "Felhasználók"
|
||||
|
||||
#. module: portal
|
||||
#: code:addons/portal/acquirer.py:82
|
||||
@@ -149,7 +156,7 @@ msgstr ""
|
||||
#: code:addons/portal/acquirer.py:77
|
||||
#, python-format
|
||||
msgid "No online payment acquirers configured"
|
||||
msgstr ""
|
||||
msgstr "Nincs online fizetési igénylő beállítva"
|
||||
|
||||
#. module: portal
|
||||
#: view:portal.payment.acquirer:0
|
||||
@@ -191,7 +198,7 @@ msgstr ""
|
||||
#: field:res.groups,is_portal:0
|
||||
#: model:res.groups,name:portal.group_portal
|
||||
msgid "Portal"
|
||||
msgstr ""
|
||||
msgstr "Portál"
|
||||
|
||||
#. module: portal
|
||||
#: code:addons/portal/wizard/portal_wizard.py:34
|
||||
@@ -202,12 +209,12 @@ msgstr ""
|
||||
#. module: portal
|
||||
#: model:res.groups,name:portal.group_anonymous
|
||||
msgid "Anonymous"
|
||||
msgstr ""
|
||||
msgstr "Névtelenül"
|
||||
|
||||
#. module: portal
|
||||
#: field:portal.wizard.user,in_portal:0
|
||||
msgid "In Portal"
|
||||
msgstr ""
|
||||
msgstr "Portálon"
|
||||
|
||||
#. module: portal
|
||||
#: model:ir.actions.client,name:portal.action_news
|
||||
|
||||
@@ -0,0 +1,25 @@
|
||||
# Mongolian translation for openobject-addons
|
||||
# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
|
||||
# This file is distributed under the same license as the openobject-addons package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2013.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-12-21 17:05+0000\n"
|
||||
"PO-Revision-Date: 2013-02-06 09:18+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Mongolian <mn@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: 2013-02-07 04:53+0000\n"
|
||||
"X-Generator: Launchpad (build 16477)\n"
|
||||
|
||||
#. module: portal_anonymous
|
||||
#. openerp-web
|
||||
#: code:addons/portal_anonymous/static/src/xml/portal_anonymous.xml:8
|
||||
#, python-format
|
||||
msgid "Login"
|
||||
msgstr ""
|
||||
@@ -0,0 +1,25 @@
|
||||
# Turkish translation for openobject-addons
|
||||
# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
|
||||
# This file is distributed under the same license as the openobject-addons package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2013.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-12-21 17:05+0000\n"
|
||||
"PO-Revision-Date: 2013-02-06 22:17+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Turkish <tr@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: 2013-02-07 04:53+0000\n"
|
||||
"X-Generator: Launchpad (build 16477)\n"
|
||||
|
||||
#. module: portal_anonymous
|
||||
#. openerp-web
|
||||
#: code:addons/portal_anonymous/static/src/xml/portal_anonymous.xml:8
|
||||
#, python-format
|
||||
msgid "Login"
|
||||
msgstr "Kullanıcı Adı:"
|
||||
@@ -0,0 +1,59 @@
|
||||
# Hungarian translation for openobject-addons
|
||||
# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
|
||||
# This file is distributed under the same license as the openobject-addons package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2013.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-12-21 17:05+0000\n"
|
||||
"PO-Revision-Date: 2013-02-05 19:15+0000\n"
|
||||
"Last-Translator: krnkris <Unknown>\n"
|
||||
"Language-Team: Hungarian <hu@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: 2013-02-06 05:15+0000\n"
|
||||
"X-Generator: Launchpad (build 16468)\n"
|
||||
|
||||
#. module: portal_event
|
||||
#: view:event.event:0
|
||||
msgid "Portal Settings"
|
||||
msgstr "Portál beállítások"
|
||||
|
||||
#. module: portal_event
|
||||
#: model:ir.actions.act_window,help:portal_event.action_event_view
|
||||
msgid "There are no public events."
|
||||
msgstr "Nincsenek nyilvános, közösségi rendezvények."
|
||||
|
||||
#. module: portal_event
|
||||
#: selection:event.event,visibility:0
|
||||
msgid "Private"
|
||||
msgstr "Privát"
|
||||
|
||||
#. module: portal_event
|
||||
#: model:ir.model,name:portal_event.model_event_event
|
||||
msgid "Event"
|
||||
msgstr "Rendezvény"
|
||||
|
||||
#. module: portal_event
|
||||
#: model:ir.actions.act_window,name:portal_event.action_event_view
|
||||
#: model:ir.ui.menu,name:portal_event.portal_company_events
|
||||
msgid "Events"
|
||||
msgstr "Rendezvények"
|
||||
|
||||
#. module: portal_event
|
||||
#: field:event.event,visibility:0
|
||||
msgid "Visibility"
|
||||
msgstr "Láthatóság"
|
||||
|
||||
#. module: portal_event
|
||||
#: help:event.event,visibility:0
|
||||
msgid "Event's visibility in the portal's contact page"
|
||||
msgstr "Rendezvények láthatósága a portál kapcsolati oldalon"
|
||||
|
||||
#. module: portal_event
|
||||
#: selection:event.event,visibility:0
|
||||
msgid "Public"
|
||||
msgstr "Nyilvános"
|
||||
+146
-58
@@ -7,14 +7,14 @@ msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 6.0dev\n"
|
||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||
"POT-Creation-Date: 2012-12-21 17:06+0000\n"
|
||||
"PO-Revision-Date: 2013-02-03 18:26+0000\n"
|
||||
"PO-Revision-Date: 2013-02-05 19:13+0000\n"
|
||||
"Last-Translator: krnkris <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: 2013-02-04 05:12+0000\n"
|
||||
"X-Generator: Launchpad (build 16462)\n"
|
||||
"X-Launchpad-Export-Date: 2013-02-06 05:14+0000\n"
|
||||
"X-Generator: Launchpad (build 16468)\n"
|
||||
|
||||
#. module: procurement
|
||||
#: model:ir.ui.menu,name:procurement.menu_stock_sched
|
||||
@@ -242,6 +242,20 @@ msgid ""
|
||||
" </p>\n"
|
||||
" "
|
||||
msgstr ""
|
||||
"<p>\n"
|
||||
" Beszerzési megrendelés képviseli a termékek bizonyos "
|
||||
"mennyiségi igényét, egy megadott időben, a megadott helyen. Vevői "
|
||||
"megrendelések tipikus forrásai a beszerzési megrendeléseknek (de ezek "
|
||||
"különálló dokumentumok). A beszerzési paraméterektől és a termék "
|
||||
"beállításától függően, a beszerzési motor kísérletet tesz a kérésnek eleget "
|
||||
"tenni a termék készletről való visszahívásával, a termék beszállítótól való "
|
||||
"rendelésével, vagy egy gyártási megrendelés kiállításával, stb. Egy "
|
||||
"beszerzési kifogás történhet ha a rendszer nem talál módot az igény "
|
||||
"kielégítésére. Egyes kifogások saját maguktól megoldódnak automatikusan, de "
|
||||
"mások kézi beavatkozást igényelnek (ezeket egy sajátos hiba üzenet "
|
||||
"azonosítja).\n"
|
||||
" </p>\n"
|
||||
" "
|
||||
|
||||
#. module: procurement
|
||||
#: selection:procurement.order,state:0
|
||||
@@ -292,7 +306,7 @@ msgstr "Minimum készlet szabály"
|
||||
#: code:addons/procurement/procurement.py:369
|
||||
#, python-format
|
||||
msgid "Procurement '%s' is in exception: "
|
||||
msgstr ""
|
||||
msgstr "Beszerzés '%s' kifogásolva van: "
|
||||
|
||||
#. module: procurement
|
||||
#: field:procurement.order,priority:0
|
||||
@@ -302,7 +316,7 @@ msgstr "Prioritás"
|
||||
#. module: procurement
|
||||
#: view:stock.warehouse.orderpoint:0
|
||||
msgid "Reordering Rules Search"
|
||||
msgstr ""
|
||||
msgstr "Újrerendelési szabályok keresése"
|
||||
|
||||
#. module: procurement
|
||||
#: selection:procurement.order,state:0
|
||||
@@ -312,7 +326,7 @@ msgstr "Várakozó"
|
||||
#. module: procurement
|
||||
#: field:procurement.order,message_follower_ids:0
|
||||
msgid "Followers"
|
||||
msgstr ""
|
||||
msgstr "Követők"
|
||||
|
||||
#. module: procurement
|
||||
#: field:procurement.order,location_id:0
|
||||
@@ -342,17 +356,17 @@ msgstr "Legjobb ár (még nem aktív!)"
|
||||
#: code:addons/procurement/schedulers.py:110
|
||||
#, python-format
|
||||
msgid "PROC %d: from stock - %3.2f %-5s - %s"
|
||||
msgstr ""
|
||||
msgstr "PROC %d: raktárról - %3.2f %-5s - %s"
|
||||
|
||||
#. module: procurement
|
||||
#: model:ir.model,name:procurement.model_procurement_order_compute
|
||||
msgid "Compute Procurement"
|
||||
msgstr ""
|
||||
msgstr "Beszerzés számítás"
|
||||
|
||||
#. module: procurement
|
||||
#: field:res.company,schedule_range:0
|
||||
msgid "Scheduler Range Days"
|
||||
msgstr ""
|
||||
msgstr "Ütemterv tartomány nanjai"
|
||||
|
||||
#. module: procurement
|
||||
#: view:make.procurement:0
|
||||
@@ -380,6 +394,7 @@ msgstr "Mennyiség"
|
||||
#, python-format
|
||||
msgid "Not enough stock and no minimum orderpoint rule defined."
|
||||
msgstr ""
|
||||
"Nincs definiálva elegendő készlet és mimimum megrendelés pontja szabály."
|
||||
|
||||
#. module: procurement
|
||||
#: field:make.procurement,uom_id:0
|
||||
@@ -391,7 +406,7 @@ msgstr "Mértékegység"
|
||||
#: selection:procurement.order,procure_method:0
|
||||
#: selection:product.template,procure_method:0
|
||||
msgid "Make to Stock"
|
||||
msgstr ""
|
||||
msgstr "Beszerzés készletből"
|
||||
|
||||
#. module: procurement
|
||||
#: model:ir.actions.act_window,help:procurement.procurement_action
|
||||
@@ -413,6 +428,23 @@ msgid ""
|
||||
" </p>\n"
|
||||
" "
|
||||
msgstr ""
|
||||
"<p class=\"oe_view_nocontent_create\">\n"
|
||||
" Kattintson beszerzési megrendelés létrehozásához. \n"
|
||||
" </p><p>\n"
|
||||
" A beszerzési megrendelést a konkrét helyen és konkrét "
|
||||
"termék\n"
|
||||
" igényének rögzítésére használják. A beszerzési "
|
||||
"megrendelések\n"
|
||||
" általában automatikusan létrehozottak megrendelésekből, "
|
||||
"kihúzási \n"
|
||||
" logisztikából vagy minimum készlet szabályokból.\n"
|
||||
" </p><p>\n"
|
||||
" Beszerzési megrendelés visszaigazolása után, automatikusan\n"
|
||||
" létrehozza a szükséges műveleteket az igény kielégítéséhez: "
|
||||
"beszerzési\n"
|
||||
" megrendelés javaslat, gyártási megrendelés, stb.\n"
|
||||
" </p>\n"
|
||||
" "
|
||||
|
||||
#. module: procurement
|
||||
#: help:procurement.order,procure_method:0
|
||||
@@ -420,6 +452,8 @@ msgid ""
|
||||
"If you encode manually a Procurement, you probably want to use a make to "
|
||||
"order method."
|
||||
msgstr ""
|
||||
"Ha kézzel viszi be a beszerzési megrendelést, akkor biztosan a készlet a "
|
||||
"gyártásból módszert használja."
|
||||
|
||||
#. module: procurement
|
||||
#: model:ir.ui.menu,name:procurement.menu_stock_procurement
|
||||
@@ -432,6 +466,8 @@ msgid ""
|
||||
"use the available\n"
|
||||
" inventory"
|
||||
msgstr ""
|
||||
"használja az elérhető\n"
|
||||
" készletet"
|
||||
|
||||
#. module: procurement
|
||||
#: model:ir.model,name:procurement.model_procurement_order
|
||||
@@ -448,7 +484,7 @@ msgstr "Beszerzési megrendelések"
|
||||
#. module: procurement
|
||||
#: view:procurement.order:0
|
||||
msgid "To Fix"
|
||||
msgstr ""
|
||||
msgstr "Rögzít"
|
||||
|
||||
#. module: procurement
|
||||
#: view:procurement.order:0
|
||||
@@ -458,33 +494,33 @@ msgstr "Kivételek"
|
||||
#. module: procurement
|
||||
#: model:process.node,note:procurement.process_node_serviceonorder0
|
||||
msgid "Assignment from Production or Purchase Order."
|
||||
msgstr ""
|
||||
msgstr "Ellátás gyártási vagy beszerzési megrendelésből."
|
||||
|
||||
#. module: procurement
|
||||
#: model:ir.model,name:procurement.model_mrp_property
|
||||
msgid "Property"
|
||||
msgstr ""
|
||||
msgstr "Tulajdonság"
|
||||
|
||||
#. module: procurement
|
||||
#: model:ir.actions.act_window,name:procurement.act_make_procurement
|
||||
#: view:make.procurement:0
|
||||
msgid "Procurement Request"
|
||||
msgstr ""
|
||||
msgstr "Beszerzési igény"
|
||||
|
||||
#. module: procurement
|
||||
#: view:procurement.orderpoint.compute:0
|
||||
msgid "Compute Stock"
|
||||
msgstr ""
|
||||
msgstr "Készlet számítás"
|
||||
|
||||
#. module: procurement
|
||||
#: field:stock.warehouse.orderpoint,procurement_draft_ids:0
|
||||
msgid "Related Procurement Orders"
|
||||
msgstr ""
|
||||
msgstr "Kapcsolódó beszerzési megrendelések"
|
||||
|
||||
#. module: procurement
|
||||
#: field:procurement.order,message_unread:0
|
||||
msgid "Unread Messages"
|
||||
msgstr ""
|
||||
msgstr "Olvasatlan üzenetek"
|
||||
|
||||
#. module: procurement
|
||||
#: selection:mrp.property,composition:0
|
||||
@@ -504,6 +540,15 @@ msgid ""
|
||||
" It is in 'Waiting'. status when the procurement is waiting for another one "
|
||||
"to finish."
|
||||
msgstr ""
|
||||
"Ha egy beszerzést rögzít akkor annak állapota a 'Terv' lesz.\n"
|
||||
" Ha a beszerzés visszaigazolt, az állapot be lesz állítva mint "
|
||||
"'Visszaigazolt'. \n"
|
||||
"A visszaigazolás után az állapot be lesz állítva mint 'Folyamatban'.\n"
|
||||
" Ha valamilyen kifogás van a megrendelésben az állapot be lesz állítva mint "
|
||||
"'Kifogásolva'.\n"
|
||||
" Miután a kifogás meg lett oldva és eltávolítva az állapot be lesz állítva "
|
||||
"mint 'Kész'.\n"
|
||||
" 'Várakozik' állapotban van, ha a beszerzés egy másik befejezésére vár."
|
||||
|
||||
#. module: procurement
|
||||
#: help:stock.warehouse.orderpoint,active:0
|
||||
@@ -511,6 +556,8 @@ msgid ""
|
||||
"If the active field is set to False, it will allow you to hide the "
|
||||
"orderpoint without removing it."
|
||||
msgstr ""
|
||||
"Ha az aktív mező hamisra állított, akkor lehetősége van a megrendelési "
|
||||
"pontot eltüntetni, annak törlése nélkül."
|
||||
|
||||
#. module: procurement
|
||||
#: view:product.product:0
|
||||
@@ -520,17 +567,23 @@ msgid ""
|
||||
"procurement method as\n"
|
||||
" 'Make to Stock'."
|
||||
msgstr ""
|
||||
"Ha értékesíti ezt a szolgáltatást, nem lesz különösebb kapcsolás "
|
||||
"végrehajtva\n"
|
||||
" szállítva lesz a vevőnek, a beszerzési módban "
|
||||
"beállítottak szerint mint\n"
|
||||
" 'Beszerzés készletből'."
|
||||
|
||||
#. module: procurement
|
||||
#: help:procurement.orderpoint.compute,automatic:0
|
||||
msgid "If the stock of a product is under 0, it will act like an orderpoint"
|
||||
msgstr ""
|
||||
"Ha a termék készlete 0 alatti, akkor az úgy működik mint megrendelési pont"
|
||||
|
||||
#. module: procurement
|
||||
#: field:procurement.order,product_uom:0
|
||||
#: field:stock.warehouse.orderpoint,product_uom:0
|
||||
msgid "Product Unit of Measure"
|
||||
msgstr ""
|
||||
msgstr "Termék mértékegysége"
|
||||
|
||||
#. module: procurement
|
||||
#: constraint:stock.warehouse.orderpoint:0
|
||||
@@ -538,6 +591,8 @@ msgid ""
|
||||
"You have to select a product unit of measure in the same category than the "
|
||||
"default unit of measure of the product"
|
||||
msgstr ""
|
||||
"Ki kell választania a termék mértékegységét ugyanabból a kategóriából mint a "
|
||||
"termék alapértelmezett mértékegysége"
|
||||
|
||||
#. module: procurement
|
||||
#: view:procurement.order:0
|
||||
@@ -550,6 +605,8 @@ msgid ""
|
||||
"as it's a consumable (as a result of this, the quantity\n"
|
||||
" on hand may become negative)."
|
||||
msgstr ""
|
||||
"mivel ez fogyasztási cikk (ennek eredményeképpen, a készlet\n"
|
||||
" mennyiség negatív lehet ezután)."
|
||||
|
||||
#. module: procurement
|
||||
#: field:procurement.order,note:0
|
||||
@@ -563,6 +620,9 @@ msgid ""
|
||||
"OpenERP generates a procurement to bring the forecasted quantity to the Max "
|
||||
"Quantity."
|
||||
msgstr ""
|
||||
"Ha a virtuális készlet kevesebb lesz mint az ehhez a mezőhöz tartozó Min "
|
||||
"mennyiség, OpenERP generálni fog egy beszerzést ahhoz, hogy az előzetes "
|
||||
"mennyiséget Max mennyiségbe emelje."
|
||||
|
||||
#. module: procurement
|
||||
#: selection:procurement.order,state:0
|
||||
@@ -574,12 +634,12 @@ msgstr "Tervezet"
|
||||
#: model:ir.ui.menu,name:procurement.menu_stock_proc_schedulers
|
||||
#: view:procurement.order.compute.all:0
|
||||
msgid "Run Schedulers"
|
||||
msgstr ""
|
||||
msgstr "Ütemezők futtatása"
|
||||
|
||||
#. module: procurement
|
||||
#: view:procurement.order.compute:0
|
||||
msgid "This wizard will schedule procurements."
|
||||
msgstr ""
|
||||
msgstr "Ez a varázsló ütemezni fogja a beszerzéseket"
|
||||
|
||||
#. module: procurement
|
||||
#: view:procurement.order:0
|
||||
@@ -590,12 +650,12 @@ msgstr "Állapot"
|
||||
#. module: procurement
|
||||
#: selection:product.template,supply_method:0
|
||||
msgid "Buy"
|
||||
msgstr ""
|
||||
msgstr "Vásárlás"
|
||||
|
||||
#. module: procurement
|
||||
#: view:product.product:0
|
||||
msgid "for the delivery order."
|
||||
msgstr ""
|
||||
msgstr "a megrendeléshez."
|
||||
|
||||
#. module: procurement
|
||||
#: selection:procurement.order,priority:0
|
||||
@@ -609,22 +669,25 @@ msgid ""
|
||||
"will be generated, depending on the product type. \n"
|
||||
"Buy: When procuring the product, a purchase order will be generated."
|
||||
msgstr ""
|
||||
"Gyártás: Ha a terméket gyártja, egy gyártási megrendelés vagy munka "
|
||||
"megrendelés lesz generálva, a termék típusától függően. \n"
|
||||
"Vásárlás: Ha beszerezi a terméket, egy megrendelés lesz generálva."
|
||||
|
||||
#. module: procurement
|
||||
#: field:stock.warehouse.orderpoint,product_max_qty:0
|
||||
msgid "Maximum Quantity"
|
||||
msgstr ""
|
||||
msgstr "Maximális mennyiség"
|
||||
|
||||
#. module: procurement
|
||||
#: field:procurement.order,message_is_follower:0
|
||||
msgid "Is a Follower"
|
||||
msgstr ""
|
||||
msgstr "Ez egy követő"
|
||||
|
||||
#. module: procurement
|
||||
#: code:addons/procurement/procurement.py:366
|
||||
#, python-format
|
||||
msgid "Not enough stock."
|
||||
msgstr ""
|
||||
msgstr "Nincs elég készlet."
|
||||
|
||||
#. module: procurement
|
||||
#: field:stock.warehouse.orderpoint,active:0
|
||||
@@ -643,6 +706,8 @@ msgid ""
|
||||
"Please check the quantity in procurement order(s) for the product \"%s\", it "
|
||||
"should not be 0 or less!"
|
||||
msgstr ""
|
||||
"Kérem ellenőrizze a beszerzési megrendelése(ke)n a mennyiséget erre a "
|
||||
"termékre \"%s\", nem lehet 0 vagy kisebb!"
|
||||
|
||||
#. module: procurement
|
||||
#: field:procurement.order,date_planned:0
|
||||
@@ -660,17 +725,20 @@ msgid ""
|
||||
"When you sell this product, a delivery order will be created.\n"
|
||||
" OpenERP will consider that the"
|
||||
msgstr ""
|
||||
"Ha értékesíti ezt a terméket, egy kézbesítési kiszállítási jegy lesz "
|
||||
"létrehozva.\n"
|
||||
" OpenERP úgy fogja tekinteni mint"
|
||||
|
||||
#. module: procurement
|
||||
#: code:addons/procurement/schedulers.py:133
|
||||
#, python-format
|
||||
msgid "Automatic OP: %s"
|
||||
msgstr ""
|
||||
msgstr "Automatikus megrendelési pont: %s"
|
||||
|
||||
#. module: procurement
|
||||
#: model:ir.model,name:procurement.model_procurement_orderpoint_compute
|
||||
msgid "Automatic Order Point"
|
||||
msgstr ""
|
||||
msgstr "Automatikus megrendelési pont"
|
||||
|
||||
#. module: procurement
|
||||
#: field:stock.warehouse.orderpoint,qty_multiple:0
|
||||
@@ -680,7 +748,7 @@ msgstr "Rendelési egység"
|
||||
#. module: procurement
|
||||
#: help:stock.warehouse.orderpoint,qty_multiple:0
|
||||
msgid "The procurement quantity will be rounded up to this multiple."
|
||||
msgstr ""
|
||||
msgstr "A beszerzési mennyiség kerekítve lesz eddig a sokszorosig."
|
||||
|
||||
#. module: procurement
|
||||
#: model:ir.model,name:procurement.model_res_company
|
||||
@@ -695,17 +763,17 @@ msgstr "Extra információ"
|
||||
#. module: procurement
|
||||
#: field:procurement.order,message_summary:0
|
||||
msgid "Summary"
|
||||
msgstr ""
|
||||
msgstr "Összegzés"
|
||||
|
||||
#. module: procurement
|
||||
#: sql_constraint:stock.warehouse.orderpoint:0
|
||||
msgid "Qty Multiple must be greater than zero."
|
||||
msgstr ""
|
||||
msgstr "Mennyiség sokszorosnak nagyobbnak kell lenninie mint nulla."
|
||||
|
||||
#. module: procurement
|
||||
#: selection:stock.warehouse.orderpoint,logic:0
|
||||
msgid "Order to Max"
|
||||
msgstr ""
|
||||
msgstr "Maximumig rendelés"
|
||||
|
||||
#. module: procurement
|
||||
#: field:procurement.order,date_close:0
|
||||
@@ -715,7 +783,7 @@ msgstr "Lezárás dátuma"
|
||||
#. module: procurement
|
||||
#: view:res.company:0
|
||||
msgid "Logistics"
|
||||
msgstr ""
|
||||
msgstr "Logisztika"
|
||||
|
||||
#. module: procurement
|
||||
#: help:product.template,procure_method:0
|
||||
@@ -724,11 +792,15 @@ msgid ""
|
||||
"for replenishment. \n"
|
||||
"Make to Order: When needed, the product is purchased or produced."
|
||||
msgstr ""
|
||||
"Beszerzés készletből: Ha szükség van rá, a termék a raktár készletről vagy "
|
||||
"megvárja a feltöltést. \n"
|
||||
"Beszerzés megrendelésből/vásárlásból: Ha szükség van rá, a termék meg lesz "
|
||||
"vásárolva vagy termelve lesz."
|
||||
|
||||
#. module: procurement
|
||||
#: field:mrp.property,composition:0
|
||||
msgid "Properties composition"
|
||||
msgstr ""
|
||||
msgstr "Összetételek tulajdonságai"
|
||||
|
||||
#. module: procurement
|
||||
#: code:addons/procurement/procurement.py:310
|
||||
@@ -741,7 +813,7 @@ msgstr "Elégtelen adat !"
|
||||
#: field:mrp.property,group_id:0
|
||||
#: field:mrp.property.group,name:0
|
||||
msgid "Property Group"
|
||||
msgstr ""
|
||||
msgstr "Tulajdonságcsoport"
|
||||
|
||||
#. module: procurement
|
||||
#: view:stock.warehouse.orderpoint:0
|
||||
@@ -756,7 +828,7 @@ msgstr "Beszerzések"
|
||||
#. module: procurement
|
||||
#: view:procurement.order:0
|
||||
msgid "Run Procurement"
|
||||
msgstr ""
|
||||
msgstr "Beszerzés fut"
|
||||
|
||||
#. module: procurement
|
||||
#: selection:procurement.order,state:0
|
||||
@@ -770,12 +842,12 @@ msgstr "Kész"
|
||||
#: view:procurement.order.compute.all:0
|
||||
#: view:procurement.orderpoint.compute:0
|
||||
msgid "Cancel"
|
||||
msgstr ""
|
||||
msgstr "Mégsem"
|
||||
|
||||
#. module: procurement
|
||||
#: field:stock.warehouse.orderpoint,logic:0
|
||||
msgid "Reordering Mode"
|
||||
msgstr ""
|
||||
msgstr "Újrarendelési mód"
|
||||
|
||||
#. module: procurement
|
||||
#: field:procurement.order,origin:0
|
||||
@@ -791,7 +863,7 @@ msgstr "Nem sürgős"
|
||||
#: model:ir.actions.act_window,name:procurement.product_open_orderpoint
|
||||
#: view:product.product:0
|
||||
msgid "Orderpoints"
|
||||
msgstr ""
|
||||
msgstr "Megrendelési pont"
|
||||
|
||||
#. module: procurement
|
||||
#: help:stock.warehouse.orderpoint,product_max_qty:0
|
||||
@@ -800,11 +872,14 @@ msgid ""
|
||||
"procurement to bring the forecasted quantity to the Quantity specified as "
|
||||
"Max Quantity."
|
||||
msgstr ""
|
||||
"Ha a virtuális készlet a Min mennyiség alá csökken, OpenERP beszerzést "
|
||||
"generál, hogy visszaállítsa az előrejelzett mennyiséget a Max mennyiségben "
|
||||
"beállított értékre."
|
||||
|
||||
#. module: procurement
|
||||
#: model:ir.model,name:procurement.model_procurement_order_compute_all
|
||||
msgid "Compute all schedulers"
|
||||
msgstr ""
|
||||
msgstr "Összes ütemező futtatása"
|
||||
|
||||
#. module: procurement
|
||||
#: view:procurement.order:0
|
||||
@@ -814,7 +889,7 @@ msgstr "Később"
|
||||
#. module: procurement
|
||||
#: view:board.board:0
|
||||
msgid "Procurements in Exception"
|
||||
msgstr ""
|
||||
msgstr "Beszerzések kifogásolásban"
|
||||
|
||||
#. module: procurement
|
||||
#: model:ir.actions.act_window,name:procurement.procurement_action5
|
||||
@@ -823,7 +898,7 @@ msgstr ""
|
||||
#: model:ir.ui.menu,name:procurement.menu_stock_procurement_action
|
||||
#: view:procurement.order:0
|
||||
msgid "Procurement Exceptions"
|
||||
msgstr ""
|
||||
msgstr "Beszerzési kifogások"
|
||||
|
||||
#. module: procurement
|
||||
#: field:product.product,orderpoint_ids:0
|
||||
@@ -840,11 +915,17 @@ msgid ""
|
||||
"order or\n"
|
||||
" a new task."
|
||||
msgstr ""
|
||||
"Ennek kitöltésével erre a termékre beszerzési igényt indít.\n"
|
||||
" A termék beállítása szerint, kapcsolhat egy "
|
||||
"beszerzési\n"
|
||||
" megrendelés tervet, egy gyártási megrendelést vagy "
|
||||
"egy\n"
|
||||
" új munkát."
|
||||
|
||||
#. module: procurement
|
||||
#: field:procurement.order,close_move:0
|
||||
msgid "Close Move at end"
|
||||
msgstr ""
|
||||
msgstr "A beszerzés végén bezárja"
|
||||
|
||||
#. module: procurement
|
||||
#: view:procurement.order:0
|
||||
@@ -880,19 +961,19 @@ msgstr "Sürgős"
|
||||
#. module: procurement
|
||||
#: selection:procurement.order,state:0
|
||||
msgid "Running"
|
||||
msgstr ""
|
||||
msgstr "Folyamatban"
|
||||
|
||||
#. module: procurement
|
||||
#: model:process.node,name:procurement.process_node_serviceonorder0
|
||||
#: selection:procurement.order,procure_method:0
|
||||
#: selection:product.template,procure_method:0
|
||||
msgid "Make to Order"
|
||||
msgstr "Rendelésre gyártás/vásárlás"
|
||||
msgstr "Beszerzés megrendelésből/vásárlásból"
|
||||
|
||||
#. module: procurement
|
||||
#: field:product.template,supply_method:0
|
||||
msgid "Supply Method"
|
||||
msgstr ""
|
||||
msgstr "Ellátás módja"
|
||||
|
||||
#. module: procurement
|
||||
#: field:procurement.order,move_id:0
|
||||
@@ -907,12 +988,12 @@ msgstr "A beszerzési út függ a termék típusától."
|
||||
#. module: procurement
|
||||
#: view:product.product:0
|
||||
msgid "When you sell this product, OpenERP will"
|
||||
msgstr ""
|
||||
msgstr "Ha értékesíti ezt a terméket, akkor az OpenERP fogja"
|
||||
|
||||
#. module: procurement
|
||||
#: view:procurement.order:0
|
||||
msgid "Temporary Procurement Exceptions"
|
||||
msgstr ""
|
||||
msgstr "Ideiglenes beszerzési kifogások"
|
||||
|
||||
#. module: procurement
|
||||
#: field:mrp.property,name:0
|
||||
@@ -932,13 +1013,15 @@ msgstr "max."
|
||||
#: model:ir.ui.menu,name:procurement.menu_stock_order_points
|
||||
#: view:stock.warehouse.orderpoint:0
|
||||
msgid "Reordering Rules"
|
||||
msgstr ""
|
||||
msgstr "Újrarendelési szabályok"
|
||||
|
||||
#. module: procurement
|
||||
#: code:addons/procurement/procurement.py:138
|
||||
#, python-format
|
||||
msgid "Cannot delete Procurement Order(s) which are in %s state."
|
||||
msgstr ""
|
||||
"Nem tudja törölni a beszerzési megrendelés(eke)t melyek a %s állapotban "
|
||||
"vannak."
|
||||
|
||||
#. module: procurement
|
||||
#: field:procurement.order,product_uos:0
|
||||
@@ -948,13 +1031,15 @@ msgstr "Termék eladási egysége"
|
||||
#. module: procurement
|
||||
#: model:ir.model,name:procurement.model_product_template
|
||||
msgid "Product Template"
|
||||
msgstr ""
|
||||
msgstr "Terméksablon"
|
||||
|
||||
#. module: procurement
|
||||
#: view:procurement.orderpoint.compute:0
|
||||
msgid ""
|
||||
"Wizard checks all the stock minimum rules and generate procurement order."
|
||||
msgstr ""
|
||||
"A varázsló ellenőrzi az összes raktár készlet minimum szabályt és beszerzési "
|
||||
"megrendelést generál."
|
||||
|
||||
#. module: procurement
|
||||
#: view:procurement.order:0
|
||||
@@ -968,6 +1053,9 @@ msgid ""
|
||||
"procurements. All procurements that are not between today and today+range "
|
||||
"are skipped for future computation."
|
||||
msgstr ""
|
||||
"Ez az az időkeret amit az időzítő elemez a beszerezés számításánál. Azok a "
|
||||
"beszerzések melyek nincsenek a mai nap és a mai nap + tartomány között, azok "
|
||||
"át lesznek lépve és ki lesznek számolva a jövőben."
|
||||
|
||||
#. module: procurement
|
||||
#: selection:procurement.order,priority:0
|
||||
@@ -977,22 +1065,22 @@ msgstr "Nagyon sürgős"
|
||||
#. module: procurement
|
||||
#: field:procurement.orderpoint.compute,automatic:0
|
||||
msgid "Automatic Orderpoint"
|
||||
msgstr ""
|
||||
msgstr "Automatikus megrendelési pont"
|
||||
|
||||
#. module: procurement
|
||||
#: help:procurement.order,message_ids:0
|
||||
msgid "Messages and communication history"
|
||||
msgstr ""
|
||||
msgstr "Üzenetek és kommunikáció történet"
|
||||
|
||||
#. module: procurement
|
||||
#: view:procurement.order:0
|
||||
msgid "Procurement started late"
|
||||
msgstr ""
|
||||
msgstr "A beszerzés később indult"
|
||||
|
||||
#. module: procurement
|
||||
#: selection:mrp.property,composition:0
|
||||
msgid "min"
|
||||
msgstr ""
|
||||
msgstr "perc"
|
||||
|
||||
#. module: procurement
|
||||
#: view:make.procurement:0
|
||||
@@ -1000,30 +1088,30 @@ msgstr ""
|
||||
#: view:procurement.order.compute.all:0
|
||||
#: view:procurement.orderpoint.compute:0
|
||||
msgid "or"
|
||||
msgstr ""
|
||||
msgstr "vagy"
|
||||
|
||||
#. module: procurement
|
||||
#: code:addons/procurement/schedulers.py:134
|
||||
#, python-format
|
||||
msgid "SCHEDULER"
|
||||
msgstr ""
|
||||
msgstr "ÜTEMEZŐ"
|
||||
|
||||
#. module: procurement
|
||||
#: view:product.product:0
|
||||
msgid "Request Procurement"
|
||||
msgstr ""
|
||||
msgstr "Beszerzési igény"
|
||||
|
||||
#. module: procurement
|
||||
#: code:addons/procurement/schedulers.py:87
|
||||
#, python-format
|
||||
msgid "PROC %d: on order - %3.2f %-5s - %s"
|
||||
msgstr ""
|
||||
msgstr "PROC %d: megrendelésen - %3.2f %-5s - %s"
|
||||
|
||||
#. module: procurement
|
||||
#: code:addons/procurement/procurement.py:338
|
||||
#, python-format
|
||||
msgid "Products reserved from stock."
|
||||
msgstr ""
|
||||
msgstr "Termék a raktárkészletről foglalva."
|
||||
|
||||
#~ msgid "Configuration"
|
||||
#~ msgstr "Beállítások"
|
||||
|
||||
@@ -1,21 +1,21 @@
|
||||
# Turkish translation for openobject-addons
|
||||
# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
|
||||
# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
|
||||
# This file is distributed under the same license as the openobject-addons package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-12-21 17:06+0000\n"
|
||||
"PO-Revision-Date: 2011-04-25 11:45+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"PO-Revision-Date: 2013-02-06 17:12+0000\n"
|
||||
"Last-Translator: Ediz Duman <neps1192@gmail.com>\n"
|
||||
"Language-Team: Turkish <tr@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-12-22 05:59+0000\n"
|
||||
"X-Generator: Launchpad (build 16378)\n"
|
||||
"X-Launchpad-Export-Date: 2013-02-07 04:53+0000\n"
|
||||
"X-Generator: Launchpad (build 16477)\n"
|
||||
|
||||
#. module: procurement
|
||||
#: model:ir.ui.menu,name:procurement.menu_stock_sched
|
||||
@@ -41,7 +41,7 @@ msgstr ""
|
||||
#. module: procurement
|
||||
#: view:stock.warehouse.orderpoint:0
|
||||
msgid "Group By..."
|
||||
msgstr "Gruplandır..."
|
||||
msgstr "Grupla İle..."
|
||||
|
||||
#. module: procurement
|
||||
#: help:stock.warehouse.orderpoint,procurement_draft_ids:0
|
||||
@@ -73,7 +73,7 @@ msgstr "Tedarik Yöntemi"
|
||||
#. module: procurement
|
||||
#: selection:product.template,supply_method:0
|
||||
msgid "Manufacture"
|
||||
msgstr ""
|
||||
msgstr "Üretici"
|
||||
|
||||
#. module: procurement
|
||||
#: model:process.process,name:procurement.process_process_serviceproductprocess0
|
||||
@@ -88,7 +88,7 @@ msgstr "Sadece Minimum Stok Kuralını Hesapla"
|
||||
#. module: procurement
|
||||
#: view:stock.warehouse.orderpoint:0
|
||||
msgid "Rules"
|
||||
msgstr ""
|
||||
msgstr "Kurallar"
|
||||
|
||||
#. module: procurement
|
||||
#: field:procurement.order,company_id:0
|
||||
@@ -99,7 +99,7 @@ msgstr "Firma"
|
||||
#. module: procurement
|
||||
#: field:procurement.order,product_uos_qty:0
|
||||
msgid "UoS Quantity"
|
||||
msgstr "2.Br. Miktarı"
|
||||
msgstr "UoS Miktarı"
|
||||
|
||||
#. module: procurement
|
||||
#: view:procurement.order:0
|
||||
@@ -114,12 +114,12 @@ msgstr "Tedarikleri Hesapla"
|
||||
#. module: procurement
|
||||
#: field:procurement.order,message:0
|
||||
msgid "Latest error"
|
||||
msgstr "Son Hata"
|
||||
msgstr "Son hata"
|
||||
|
||||
#. module: procurement
|
||||
#: field:stock.warehouse.orderpoint,product_min_qty:0
|
||||
msgid "Minimum Quantity"
|
||||
msgstr ""
|
||||
msgstr "Minimum Miktar"
|
||||
|
||||
#. module: procurement
|
||||
#: help:mrp.property,composition:0
|
||||
@@ -151,7 +151,7 @@ msgstr ""
|
||||
#. module: procurement
|
||||
#: field:procurement.order,message_ids:0
|
||||
msgid "Messages"
|
||||
msgstr ""
|
||||
msgstr "Mesajlar"
|
||||
|
||||
#. module: procurement
|
||||
#: help:procurement.order,message:0
|
||||
@@ -161,17 +161,17 @@ msgstr "Tedarik emirlerini işlerken bir kuraldışılık oluştu."
|
||||
#. module: procurement
|
||||
#: view:product.product:0
|
||||
msgid "Products"
|
||||
msgstr ""
|
||||
msgstr "Ürünler"
|
||||
|
||||
#. module: procurement
|
||||
#: selection:procurement.order,state:0
|
||||
msgid "Cancelled"
|
||||
msgstr ""
|
||||
msgstr "İptalEdillen"
|
||||
|
||||
#. module: procurement
|
||||
#: view:procurement.order:0
|
||||
msgid "Permanent Procurement Exceptions"
|
||||
msgstr "Kalıcı Satınalma İstisnaları"
|
||||
msgstr "Kalıcı Tedarik İstisnaları"
|
||||
|
||||
#. module: procurement
|
||||
#: help:procurement.order,message_unread:0
|
||||
@@ -191,13 +191,13 @@ msgstr "Stok Hareketi"
|
||||
#. module: procurement
|
||||
#: view:product.product:0
|
||||
msgid "Stockable products"
|
||||
msgstr ""
|
||||
msgstr "Stoklanabilir Ürünler"
|
||||
|
||||
#. module: procurement
|
||||
#: code:addons/procurement/procurement.py:137
|
||||
#, python-format
|
||||
msgid "Invalid Action!"
|
||||
msgstr ""
|
||||
msgstr "Geçersiz İşlem!"
|
||||
|
||||
#. module: procurement
|
||||
#: help:procurement.order,message_summary:0
|
||||
@@ -242,13 +242,13 @@ msgstr "Onaylandı"
|
||||
#. module: procurement
|
||||
#: view:procurement.order:0
|
||||
msgid "Retry"
|
||||
msgstr "Yeniden Dene"
|
||||
msgstr "Yeniden"
|
||||
|
||||
#. module: procurement
|
||||
#: view:procurement.order.compute:0
|
||||
#: view:procurement.orderpoint.compute:0
|
||||
msgid "Parameters"
|
||||
msgstr "Katsayılar"
|
||||
msgstr "Paremetreler"
|
||||
|
||||
#. module: procurement
|
||||
#: view:procurement.order:0
|
||||
@@ -258,7 +258,7 @@ msgstr "Onayla"
|
||||
#. module: procurement
|
||||
#: view:stock.warehouse.orderpoint:0
|
||||
msgid "Quantity Multiple"
|
||||
msgstr ""
|
||||
msgstr "Çoklu Miktar"
|
||||
|
||||
#. module: procurement
|
||||
#: help:procurement.order,origin:0
|
||||
@@ -270,7 +270,7 @@ msgstr "Open ERP, bu tedariği başlatan belgeyi otomatik olarak kapamıştır."
|
||||
#. module: procurement
|
||||
#: view:stock.warehouse.orderpoint:0
|
||||
msgid "Procurement Orders to Process"
|
||||
msgstr "İşlenecek Tedarik Emirleri"
|
||||
msgstr "İşlenecek Tedarik siparişleri"
|
||||
|
||||
#. module: procurement
|
||||
#: model:ir.model,name:procurement.model_stock_warehouse_orderpoint
|
||||
@@ -281,7 +281,7 @@ msgstr "Minimum Envanter Kuralı"
|
||||
#: code:addons/procurement/procurement.py:369
|
||||
#, python-format
|
||||
msgid "Procurement '%s' is in exception: "
|
||||
msgstr "Tedarik '%s' de kuraldışılık var: "
|
||||
msgstr "Tedarik '%s' de istisnalar var: "
|
||||
|
||||
#. module: procurement
|
||||
#: field:procurement.order,priority:0
|
||||
@@ -296,12 +296,12 @@ msgstr ""
|
||||
#. module: procurement
|
||||
#: selection:procurement.order,state:0
|
||||
msgid "Waiting"
|
||||
msgstr "Beklemede"
|
||||
msgstr "Bekleyen"
|
||||
|
||||
#. module: procurement
|
||||
#: field:procurement.order,message_follower_ids:0
|
||||
msgid "Followers"
|
||||
msgstr ""
|
||||
msgstr "Takipçiler"
|
||||
|
||||
#. module: procurement
|
||||
#: field:procurement.order,location_id:0
|
||||
@@ -313,7 +313,7 @@ msgstr "Lokasyon"
|
||||
#. module: procurement
|
||||
#: model:ir.model,name:procurement.model_stock_picking
|
||||
msgid "Picking List"
|
||||
msgstr "Paket Listesi"
|
||||
msgstr "Seçim Listesi"
|
||||
|
||||
#. module: procurement
|
||||
#: field:make.procurement,warehouse_id:0
|
||||
@@ -336,7 +336,7 @@ msgstr "SATIN %d: stoktan - %3.2f %-5s - %s"
|
||||
#. module: procurement
|
||||
#: model:ir.model,name:procurement.model_procurement_order_compute
|
||||
msgid "Compute Procurement"
|
||||
msgstr "Satınalmayı Hesapla"
|
||||
msgstr "Tedarik Hesaplama"
|
||||
|
||||
#. module: procurement
|
||||
#: field:res.company,schedule_range:0
|
||||
@@ -346,7 +346,7 @@ msgstr "Zamanlayıcı Gün Aralığı"
|
||||
#. module: procurement
|
||||
#: view:make.procurement:0
|
||||
msgid "Ask New Products"
|
||||
msgstr "Yeni Ürün İste"
|
||||
msgstr "Yeni Ürün Sor"
|
||||
|
||||
#. module: procurement
|
||||
#: field:make.procurement,date_planned:0
|
||||
@@ -356,7 +356,7 @@ msgstr "Planlanan Tarih"
|
||||
#. module: procurement
|
||||
#: view:procurement.order:0
|
||||
msgid "Group By"
|
||||
msgstr "Grupla"
|
||||
msgstr "Grupla İle"
|
||||
|
||||
#. module: procurement
|
||||
#: field:make.procurement,qty:0
|
||||
@@ -380,7 +380,7 @@ msgstr "Ölçü Birimi"
|
||||
#: selection:procurement.order,procure_method:0
|
||||
#: selection:product.template,procure_method:0
|
||||
msgid "Make to Stock"
|
||||
msgstr ""
|
||||
msgstr "Stok Yap"
|
||||
|
||||
#. module: procurement
|
||||
#: model:ir.actions.act_window,help:procurement.procurement_action
|
||||
@@ -415,7 +415,7 @@ msgstr ""
|
||||
#. module: procurement
|
||||
#: model:ir.ui.menu,name:procurement.menu_stock_procurement
|
||||
msgid "Automatic Procurements"
|
||||
msgstr "Otomatik Satınalmalar"
|
||||
msgstr "Otomatik Tedarikler"
|
||||
|
||||
#. module: procurement
|
||||
#: view:product.product:0
|
||||
@@ -429,17 +429,17 @@ msgstr ""
|
||||
#: model:process.process,name:procurement.process_process_procurementprocess0
|
||||
#: view:procurement.order:0
|
||||
msgid "Procurement"
|
||||
msgstr "Satınalma"
|
||||
msgstr "Tedarik"
|
||||
|
||||
#. module: procurement
|
||||
#: model:ir.actions.act_window,name:procurement.procurement_action
|
||||
msgid "Procurement Orders"
|
||||
msgstr "Satınalma Siparişleri"
|
||||
msgstr "Tedarik Siparişleri"
|
||||
|
||||
#. module: procurement
|
||||
#: view:procurement.order:0
|
||||
msgid "To Fix"
|
||||
msgstr "Sabitlemek"
|
||||
msgstr "Sabitleme"
|
||||
|
||||
#. module: procurement
|
||||
#: view:procurement.order:0
|
||||
@@ -460,7 +460,7 @@ msgstr "Özellik"
|
||||
#: model:ir.actions.act_window,name:procurement.act_make_procurement
|
||||
#: view:make.procurement:0
|
||||
msgid "Procurement Request"
|
||||
msgstr "Satınalma İsteği"
|
||||
msgstr "Tedarik İsteği"
|
||||
|
||||
#. module: procurement
|
||||
#: view:procurement.orderpoint.compute:0
|
||||
@@ -470,12 +470,12 @@ msgstr "Stok Hesapla"
|
||||
#. module: procurement
|
||||
#: field:stock.warehouse.orderpoint,procurement_draft_ids:0
|
||||
msgid "Related Procurement Orders"
|
||||
msgstr "İlgili Satınalma Emirleri"
|
||||
msgstr "İlgili Tedarik Siparişleri"
|
||||
|
||||
#. module: procurement
|
||||
#: field:procurement.order,message_unread:0
|
||||
msgid "Unread Messages"
|
||||
msgstr ""
|
||||
msgstr "Okunmamış mesajlar"
|
||||
|
||||
#. module: procurement
|
||||
#: selection:mrp.property,composition:0
|
||||
@@ -524,7 +524,7 @@ msgstr ""
|
||||
#: field:procurement.order,product_uom:0
|
||||
#: field:stock.warehouse.orderpoint,product_uom:0
|
||||
msgid "Product Unit of Measure"
|
||||
msgstr ""
|
||||
msgstr "Ürün Ölçü Birimi"
|
||||
|
||||
#. module: procurement
|
||||
#: constraint:stock.warehouse.orderpoint:0
|
||||
@@ -536,7 +536,7 @@ msgstr ""
|
||||
#. module: procurement
|
||||
#: view:procurement.order:0
|
||||
msgid "Procurement Lines"
|
||||
msgstr "Satınalma Kalemleri"
|
||||
msgstr "Tedarik Satırları"
|
||||
|
||||
#. module: procurement
|
||||
#: view:product.product:0
|
||||
@@ -568,7 +568,7 @@ msgstr "Taslak"
|
||||
#: model:ir.ui.menu,name:procurement.menu_stock_proc_schedulers
|
||||
#: view:procurement.order.compute.all:0
|
||||
msgid "Run Schedulers"
|
||||
msgstr ""
|
||||
msgstr "Zamanlayıcıları Çalıştır"
|
||||
|
||||
#. module: procurement
|
||||
#: view:procurement.order.compute:0
|
||||
@@ -579,17 +579,17 @@ msgstr "Bu sihirbaz satınalmaları zamanlayacaktır."
|
||||
#: view:procurement.order:0
|
||||
#: field:procurement.order,state:0
|
||||
msgid "Status"
|
||||
msgstr "Durum"
|
||||
msgstr "Durumu"
|
||||
|
||||
#. module: procurement
|
||||
#: selection:product.template,supply_method:0
|
||||
msgid "Buy"
|
||||
msgstr ""
|
||||
msgstr "Alma"
|
||||
|
||||
#. module: procurement
|
||||
#: view:product.product:0
|
||||
msgid "for the delivery order."
|
||||
msgstr ""
|
||||
msgstr "teslimat sipariş için."
|
||||
|
||||
#. module: procurement
|
||||
#: selection:procurement.order,priority:0
|
||||
@@ -607,12 +607,12 @@ msgstr ""
|
||||
#. module: procurement
|
||||
#: field:stock.warehouse.orderpoint,product_max_qty:0
|
||||
msgid "Maximum Quantity"
|
||||
msgstr ""
|
||||
msgstr "Maksimum Miktar"
|
||||
|
||||
#. module: procurement
|
||||
#: field:procurement.order,message_is_follower:0
|
||||
msgid "Is a Follower"
|
||||
msgstr ""
|
||||
msgstr "Bir Takipçisi mi"
|
||||
|
||||
#. module: procurement
|
||||
#: code:addons/procurement/procurement.py:366
|
||||
@@ -623,12 +623,12 @@ msgstr "Yeterli stok yok."
|
||||
#. module: procurement
|
||||
#: field:stock.warehouse.orderpoint,active:0
|
||||
msgid "Active"
|
||||
msgstr "Aktif"
|
||||
msgstr "Etkin"
|
||||
|
||||
#. module: procurement
|
||||
#: model:process.node,name:procurement.process_node_procureproducts0
|
||||
msgid "Procure Products"
|
||||
msgstr "Ürünleri Satınal"
|
||||
msgstr "Tedarik Ürünleri"
|
||||
|
||||
#. module: procurement
|
||||
#: code:addons/procurement/procurement.py:311
|
||||
@@ -679,17 +679,17 @@ msgstr "Satınalma miktarı bu katsayıya yuvarlanır."
|
||||
#. module: procurement
|
||||
#: model:ir.model,name:procurement.model_res_company
|
||||
msgid "Companies"
|
||||
msgstr "Şirketler"
|
||||
msgstr "Firmalar"
|
||||
|
||||
#. module: procurement
|
||||
#: view:procurement.order:0
|
||||
msgid "Extra Information"
|
||||
msgstr "Ekstra Bilgi"
|
||||
msgstr "Ekstra Bilgisi"
|
||||
|
||||
#. module: procurement
|
||||
#: field:procurement.order,message_summary:0
|
||||
msgid "Summary"
|
||||
msgstr ""
|
||||
msgstr "Özet"
|
||||
|
||||
#. module: procurement
|
||||
#: sql_constraint:stock.warehouse.orderpoint:0
|
||||
@@ -709,7 +709,7 @@ msgstr "Kapanış Tarihi"
|
||||
#. module: procurement
|
||||
#: view:res.company:0
|
||||
msgid "Logistics"
|
||||
msgstr ""
|
||||
msgstr "Lojistik"
|
||||
|
||||
#. module: procurement
|
||||
#: help:product.template,procure_method:0
|
||||
@@ -745,17 +745,17 @@ msgstr "Çeşitli"
|
||||
#. module: procurement
|
||||
#: field:stock.move,procurements:0
|
||||
msgid "Procurements"
|
||||
msgstr "Satınalmalar"
|
||||
msgstr "Tedarikler"
|
||||
|
||||
#. module: procurement
|
||||
#: view:procurement.order:0
|
||||
msgid "Run Procurement"
|
||||
msgstr "Satınalmayı Çalıştır"
|
||||
msgstr "Tedarik Çalıştır"
|
||||
|
||||
#. module: procurement
|
||||
#: selection:procurement.order,state:0
|
||||
msgid "Done"
|
||||
msgstr "Tamamlandı"
|
||||
msgstr "Biten"
|
||||
|
||||
#. module: procurement
|
||||
#: view:make.procurement:0
|
||||
@@ -764,12 +764,12 @@ msgstr "Tamamlandı"
|
||||
#: view:procurement.order.compute.all:0
|
||||
#: view:procurement.orderpoint.compute:0
|
||||
msgid "Cancel"
|
||||
msgstr "Vazgeç"
|
||||
msgstr "İptal"
|
||||
|
||||
#. module: procurement
|
||||
#: field:stock.warehouse.orderpoint,logic:0
|
||||
msgid "Reordering Mode"
|
||||
msgstr "Tekrar Sipariş Verme Modu"
|
||||
msgstr "Tekrar Sipariş Modu"
|
||||
|
||||
#. module: procurement
|
||||
#: field:procurement.order,origin:0
|
||||
@@ -779,13 +779,13 @@ msgstr "Kaynak Belge"
|
||||
#. module: procurement
|
||||
#: selection:procurement.order,priority:0
|
||||
msgid "Not urgent"
|
||||
msgstr "Acil Değil"
|
||||
msgstr "Acil değil"
|
||||
|
||||
#. module: procurement
|
||||
#: model:ir.actions.act_window,name:procurement.product_open_orderpoint
|
||||
#: view:product.product:0
|
||||
msgid "Orderpoints"
|
||||
msgstr ""
|
||||
msgstr "SiparişNoktası"
|
||||
|
||||
#. module: procurement
|
||||
#: help:stock.warehouse.orderpoint,product_max_qty:0
|
||||
@@ -808,7 +808,7 @@ msgstr "Geç"
|
||||
#. module: procurement
|
||||
#: view:board.board:0
|
||||
msgid "Procurements in Exception"
|
||||
msgstr "İstisnai Satınalmalar"
|
||||
msgstr "İstisnai Tedarikler"
|
||||
|
||||
#. module: procurement
|
||||
#: model:ir.actions.act_window,name:procurement.procurement_action5
|
||||
@@ -817,7 +817,7 @@ msgstr "İstisnai Satınalmalar"
|
||||
#: model:ir.ui.menu,name:procurement.menu_stock_procurement_action
|
||||
#: view:procurement.order:0
|
||||
msgid "Procurement Exceptions"
|
||||
msgstr "Satınalma İstisnaları"
|
||||
msgstr "Tedarik İstisnaları"
|
||||
|
||||
#. module: procurement
|
||||
#: field:product.product,orderpoint_ids:0
|
||||
@@ -874,7 +874,7 @@ msgstr "Acil"
|
||||
#. module: procurement
|
||||
#: selection:procurement.order,state:0
|
||||
msgid "Running"
|
||||
msgstr "Çalışma"
|
||||
msgstr "Çalışan"
|
||||
|
||||
#. module: procurement
|
||||
#: model:process.node,name:procurement.process_node_serviceonorder0
|
||||
@@ -886,7 +886,7 @@ msgstr "Sipariş Ver"
|
||||
#. module: procurement
|
||||
#: field:product.template,supply_method:0
|
||||
msgid "Supply Method"
|
||||
msgstr ""
|
||||
msgstr "Tedarik Metodu"
|
||||
|
||||
#. module: procurement
|
||||
#: field:procurement.order,move_id:0
|
||||
@@ -912,7 +912,7 @@ msgstr "Geçici Satınalma İstisnaları"
|
||||
#: field:mrp.property,name:0
|
||||
#: field:stock.warehouse.orderpoint,name:0
|
||||
msgid "Name"
|
||||
msgstr "Ad"
|
||||
msgstr "Adı"
|
||||
|
||||
#. module: procurement
|
||||
#: selection:mrp.property,composition:0
|
||||
@@ -926,7 +926,7 @@ msgstr "maks"
|
||||
#: model:ir.ui.menu,name:procurement.menu_stock_order_points
|
||||
#: view:stock.warehouse.orderpoint:0
|
||||
msgid "Reordering Rules"
|
||||
msgstr ""
|
||||
msgstr "Yeniden Siparişleme Kuralı"
|
||||
|
||||
#. module: procurement
|
||||
#: code:addons/procurement/procurement.py:138
|
||||
@@ -937,12 +937,12 @@ msgstr ""
|
||||
#. module: procurement
|
||||
#: field:procurement.order,product_uos:0
|
||||
msgid "Product UoS"
|
||||
msgstr "Stok 2.Birim"
|
||||
msgstr "Ürün UoS"
|
||||
|
||||
#. module: procurement
|
||||
#: model:ir.model,name:procurement.model_product_template
|
||||
msgid "Product Template"
|
||||
msgstr ""
|
||||
msgstr "Ürün Temaları"
|
||||
|
||||
#. module: procurement
|
||||
#: view:procurement.orderpoint.compute:0
|
||||
@@ -955,7 +955,7 @@ msgstr ""
|
||||
#. module: procurement
|
||||
#: view:procurement.order:0
|
||||
msgid "Search Procurement"
|
||||
msgstr "Satınalma Arama"
|
||||
msgstr "Tedarik Arama"
|
||||
|
||||
#. module: procurement
|
||||
#: help:res.company,schedule_range:0
|
||||
@@ -981,17 +981,17 @@ msgstr "Otomatik Sipariş Noktası"
|
||||
#. module: procurement
|
||||
#: help:procurement.order,message_ids:0
|
||||
msgid "Messages and communication history"
|
||||
msgstr ""
|
||||
msgstr "Mesajlar ve iletişim geçmişi"
|
||||
|
||||
#. module: procurement
|
||||
#: view:procurement.order:0
|
||||
msgid "Procurement started late"
|
||||
msgstr "Satınalma geç başladı"
|
||||
msgstr "Tedarik geç başladı"
|
||||
|
||||
#. module: procurement
|
||||
#: selection:mrp.property,composition:0
|
||||
msgid "min"
|
||||
msgstr "dk"
|
||||
msgstr "dak"
|
||||
|
||||
#. module: procurement
|
||||
#: view:make.procurement:0
|
||||
@@ -999,7 +999,7 @@ msgstr "dk"
|
||||
#: view:procurement.order.compute.all:0
|
||||
#: view:procurement.orderpoint.compute:0
|
||||
msgid "or"
|
||||
msgstr ""
|
||||
msgstr "veya"
|
||||
|
||||
#. module: procurement
|
||||
#: code:addons/procurement/schedulers.py:134
|
||||
@@ -1010,7 +1010,7 @@ msgstr "ZAMANLAYICI"
|
||||
#. module: procurement
|
||||
#: view:product.product:0
|
||||
msgid "Request Procurement"
|
||||
msgstr ""
|
||||
msgstr "Tedarik Talepleri"
|
||||
|
||||
#. module: procurement
|
||||
#: code:addons/procurement/schedulers.py:87
|
||||
@@ -1022,7 +1022,7 @@ msgstr "SATIN %d: siparişte - %3.2f %-5s - %s"
|
||||
#: code:addons/procurement/procurement.py:338
|
||||
#, python-format
|
||||
msgid "Products reserved from stock."
|
||||
msgstr ""
|
||||
msgstr "Ürünler stoktan ayrılmış"
|
||||
|
||||
#~ msgid "Notes"
|
||||
#~ msgstr "Notlar"
|
||||
|
||||
@@ -103,7 +103,7 @@ class procurement_order(osv.osv):
|
||||
readonly=True, required=True, help="If you encode manually a Procurement, you probably want to use" \
|
||||
" a make to order method."),
|
||||
'note': fields.text('Note'),
|
||||
'message': fields.char('Latest error', size=124, help="Exception occurred while computing procurement orders."),
|
||||
'message': fields.char('Latest error', help="Exception occurred while computing procurement orders."),
|
||||
'state': fields.selection([
|
||||
('draft','Draft'),
|
||||
('cancel','Cancelled'),
|
||||
@@ -367,10 +367,22 @@ class procurement_order(osv.osv):
|
||||
|
||||
if message:
|
||||
message = _("Procurement '%s' is in exception: ") % (procurement.name) + message
|
||||
cr.execute('update procurement_order set message=%s where id=%s', (message, procurement.id))
|
||||
#temporary context passed in write to prevent an infinite loop
|
||||
ctx_wkf = dict(context or {})
|
||||
ctx_wkf['workflow.trg_write.%s' % self._name] = False
|
||||
self.write(cr, uid, [procurement.id], {'message': message},context=ctx_wkf)
|
||||
self.message_post(cr, uid, [procurement.id], body=message, context=context)
|
||||
return ok
|
||||
|
||||
def _workflow_trigger(self, cr, uid, ids, trigger, context=None):
|
||||
""" Don't trigger workflow for the element specified in trigger
|
||||
"""
|
||||
wkf_op_key = 'workflow.%s.%s' % (trigger, self._name)
|
||||
if context and not context.get(wkf_op_key, True):
|
||||
# make sure we don't have a trigger loop while processing triggers
|
||||
return
|
||||
return super(procurement_order,self)._workflow_trigger(cr, uid, ids, trigger, context=context)
|
||||
|
||||
def action_produce_assign_service(self, cr, uid, ids, context=None):
|
||||
""" Changes procurement state to Running.
|
||||
@return: True
|
||||
|
||||
+144
-144
File diff suppressed because it is too large
Load Diff
@@ -33,7 +33,10 @@
|
||||
'images/project_task_tree.jpeg',
|
||||
'images/project_task.jpeg',
|
||||
'images/project.jpeg',
|
||||
'images/task_analysis.jpeg'
|
||||
'images/task_analysis.jpeg',
|
||||
'images/project_kanban.jpeg',
|
||||
'images/task_kanban.jpeg',
|
||||
'images/task_stages.jpeg'
|
||||
],
|
||||
'depends': [
|
||||
'base_setup',
|
||||
|
||||
+216
-214
File diff suppressed because it is too large
Load Diff
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user