[MERGE] with parent
bzr revid: fka@tinyerp.com-20130222044845-q0garo17cwuwbe1k
This commit is contained in:
commit
a1cdf1b61d
|
@ -343,7 +343,7 @@ class account_journal_cashbox_line(osv.osv):
|
|||
_rec_name = 'pieces'
|
||||
_columns = {
|
||||
'pieces': fields.float('Values', digits_compute=dp.get_precision('Account')),
|
||||
'journal_id' : fields.many2one('account.journal', 'Journal', required=True, select=1),
|
||||
'journal_id' : fields.many2one('account.journal', 'Journal', required=True, select=1, ondelete="cascade"),
|
||||
}
|
||||
|
||||
_order = 'pieces asc'
|
||||
|
|
|
@ -449,11 +449,15 @@ class account_invoice(osv.osv):
|
|||
context = {}
|
||||
invoices = self.read(cr, uid, ids, ['state','internal_number'], context=context)
|
||||
unlink_ids = []
|
||||
|
||||
for t in invoices:
|
||||
if t['state'] in ('draft', 'cancel') and t['internal_number']== False:
|
||||
unlink_ids.append(t['id'])
|
||||
if t['state'] not in ('draft', 'cancel'):
|
||||
raise openerp.exceptions.Warning(_('You cannot delete an invoice which is not draft or cancelled. You should refund it instead.'))
|
||||
elif t['internal_number']:
|
||||
raise openerp.exceptions.Warning(_('You cannot delete an invoice after it has been validated (and received a number). You can set it back to "Draft" state and modify its content, then re-confirm it.'))
|
||||
else:
|
||||
raise osv.except_osv(_('Invalid Action!'), _('You can not delete an invoice which is not cancelled. You should refund it instead.'))
|
||||
unlink_ids.append(t['id'])
|
||||
|
||||
osv.osv.unlink(self, cr, uid, unlink_ids, context=context)
|
||||
return True
|
||||
|
||||
|
@ -1147,6 +1151,11 @@ class account_invoice(osv.osv):
|
|||
return self.name_get(cr, user, ids, context)
|
||||
|
||||
def _refund_cleanup_lines(self, cr, uid, lines, context=None):
|
||||
"""Convert records to dict of values suitable for one2many line creation
|
||||
|
||||
:param list(browse_record) lines: records to convert
|
||||
:return: list of command tuple for one2many line creation [(0, 0, dict of valueis), ...]
|
||||
"""
|
||||
clean_lines = []
|
||||
for line in lines:
|
||||
clean_line = {}
|
||||
|
|
|
@ -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:04+0000\n"
|
||||
"PO-Revision-Date: 2012-12-24 11:01+0000\n"
|
||||
"PO-Revision-Date: 2013-02-20 17:45+0000\n"
|
||||
"Last-Translator: Pedro Manuel Baeza <pedro.baeza@gmail.com>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-12-25 04:47+0000\n"
|
||||
"X-Generator: Launchpad (build 16378)\n"
|
||||
"X-Launchpad-Export-Date: 2013-02-21 05:14+0000\n"
|
||||
"X-Generator: Launchpad (build 16491)\n"
|
||||
|
||||
#. module: account
|
||||
#: model:process.transition,name:account.process_transition_supplierreconcilepaid0
|
||||
|
@ -26,7 +26,7 @@ msgstr "Pago del sistema"
|
|||
msgid ""
|
||||
"An account fiscal position could be defined only once time on same accounts."
|
||||
msgstr ""
|
||||
"Una posición fiscal solo puede estar definida una vez en las mismas cuentas."
|
||||
"Una posición fiscal sólo puede estar definida una vez en las mismas cuentas."
|
||||
|
||||
#. module: account
|
||||
#: help:account.tax.code,sequence:0
|
||||
|
|
|
@ -18,6 +18,7 @@
|
|||
<field name="parent_id" invisible="1"/>
|
||||
<field name="state" invisible="1"/>
|
||||
<field name="type" invisible="1"/>
|
||||
<field name="template_id" invisible="1"/>
|
||||
<field name="company_id" groups="base.group_multi_company"/>
|
||||
</tree>
|
||||
</field>
|
||||
|
|
|
@ -56,7 +56,7 @@ class report_account_common(report_sxw.rml_parse, common_report_header):
|
|||
for report in self.pool.get('account.financial.report').browse(self.cr, self.uid, ids2, context=data['form']['used_context']):
|
||||
vals = {
|
||||
'name': report.name,
|
||||
'balance': report.balance * report.sign,
|
||||
'balance': report.balance * report.sign or 0.0,
|
||||
'type': 'report',
|
||||
'level': bool(report.style_overwrite) and report.style_overwrite or report.level,
|
||||
'account_type': report.type =='sum' and 'view' or False, #used to underline the financial report balances
|
||||
|
|
|
@ -1,3 +1,8 @@
|
|||
-
|
||||
Test with that Finance manager who can only create supplier invoice.
|
||||
-
|
||||
!context
|
||||
uid: 'res_users_account_manager'
|
||||
-
|
||||
In order to test account invoice I create a new supplier invoice
|
||||
-
|
||||
|
|
|
@ -180,9 +180,9 @@ class account_invoice_refund(osv.osv_memory):
|
|||
'journal_id', 'period_id'], context=context)
|
||||
invoice = invoice[0]
|
||||
del invoice['id']
|
||||
invoice_lines = inv_line_obj.read(cr, uid, invoice['invoice_line'], context=context)
|
||||
invoice_lines = inv_line_obj.browse(cr, uid, invoice['invoice_line'], context=context)
|
||||
invoice_lines = inv_obj._refund_cleanup_lines(cr, uid, invoice_lines)
|
||||
tax_lines = inv_tax_obj.read(cr, uid, invoice['tax_line'], context=context)
|
||||
tax_lines = inv_tax_obj.browse(cr, uid, invoice['tax_line'], context=context)
|
||||
tax_lines = inv_obj._refund_cleanup_lines(cr, uid, tax_lines)
|
||||
invoice.update({
|
||||
'type': inv.type,
|
||||
|
|
|
@ -20,7 +20,6 @@
|
|||
##############################################################################
|
||||
|
||||
import account_analytic_analysis
|
||||
import cron_account_analytic_account
|
||||
import res_config
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
|
|
@ -38,7 +38,6 @@ Adds menu to show relevant information to each manager.You can also view the rep
|
|||
'security/ir.model.access.csv',
|
||||
'security/account_analytic_analysis_security.xml',
|
||||
'account_analytic_analysis_view.xml',
|
||||
'account_analytic_analysis_menu.xml',
|
||||
'account_analytic_analysis_cron.xml',
|
||||
'res_config_view.xml',
|
||||
],
|
||||
|
|
|
@ -18,6 +18,9 @@
|
|||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
import datetime
|
||||
import logging
|
||||
import time
|
||||
|
||||
from openerp.osv import osv, fields
|
||||
from openerp.osv.orm import intersect, except_orm
|
||||
|
@ -26,6 +29,7 @@ from openerp.tools.translate import _
|
|||
|
||||
from openerp.addons.decimal_precision import decimal_precision as dp
|
||||
|
||||
_logger = logging.getLogger(__name__)
|
||||
|
||||
class account_analytic_account(osv.osv):
|
||||
_name = "account.analytic.account"
|
||||
|
@ -484,7 +488,48 @@ class account_analytic_account(osv.osv):
|
|||
res['value']['to_invoice'] = template.to_invoice.id
|
||||
res['value']['pricelist_id'] = template.pricelist_id.id
|
||||
return res
|
||||
account_analytic_account()
|
||||
|
||||
def cron_account_analytic_account(self, cr, uid, context=None):
|
||||
if context is None:
|
||||
context = {}
|
||||
remind = {}
|
||||
|
||||
def fill_remind(key, domain, write_pending=False):
|
||||
base_domain = [
|
||||
('type', '=', 'contract'),
|
||||
('partner_id', '!=', False),
|
||||
('manager_id', '!=', False),
|
||||
('manager_id.email', '!=', False),
|
||||
]
|
||||
base_domain.extend(domain)
|
||||
|
||||
accounts_ids = self.search(cr, uid, base_domain, context=context, order='name asc')
|
||||
accounts = self.browse(cr, uid, accounts_ids, context=context)
|
||||
for account in accounts:
|
||||
if write_pending:
|
||||
account.write({'state' : 'pending'}, context=context)
|
||||
remind_user = remind.setdefault(account.manager_id.id, {})
|
||||
remind_type = remind_user.setdefault(key, {})
|
||||
remind_partner = remind_type.setdefault(account.partner_id, []).append(account)
|
||||
|
||||
# Already expired
|
||||
fill_remind("old", [('state', 'in', ['pending'])])
|
||||
|
||||
# Expires now
|
||||
fill_remind("new", [('state', 'in', ['draft', 'open']), '|', '&', ('date', '!=', False), ('date', '<=', time.strftime('%Y-%m-%d')), ('is_overdue_quantity', '=', True)], True)
|
||||
|
||||
# Expires in less than 30 days
|
||||
fill_remind("future", [('state', 'in', ['draft', 'open']), ('date', '!=', False), ('date', '<', (datetime.datetime.now() + datetime.timedelta(30)).strftime("%Y-%m-%d"))])
|
||||
|
||||
context['base_url'] = self.pool.get('ir.config_parameter').get_param(cr, uid, 'web.base.url')
|
||||
context['action_id'] = self.pool.get('ir.model.data').get_object_reference(cr, uid, 'account_analytic_analysis', 'action_account_analytic_overdue_all')[1]
|
||||
template_id = self.pool.get('ir.model.data').get_object_reference(cr, uid, 'account_analytic_analysis', 'account_analytic_cron_email_template')[1]
|
||||
for user_id, data in remind.items():
|
||||
context["data"] = data
|
||||
_logger.debug("Sending reminder to uid %s", user_id)
|
||||
self.pool.get('email.template').send_mail(cr, uid, template_id, user_id, context=context)
|
||||
|
||||
return True
|
||||
|
||||
class account_analytic_account_summary_user(osv.osv):
|
||||
_name = "account_analytic_analysis.summary.user"
|
||||
|
@ -538,8 +583,6 @@ class account_analytic_account_summary_user(osv.osv):
|
|||
lu.user_id as "user",
|
||||
unit_amount
|
||||
from lu, mu)''')
|
||||
|
||||
account_analytic_account_summary_user()
|
||||
|
||||
class account_analytic_account_summary_month(osv.osv):
|
||||
_name = "account_analytic_analysis.summary.month"
|
||||
|
@ -600,6 +643,4 @@ class account_analytic_account_summary_month(osv.osv):
|
|||
'GROUP BY d.month, d.account_id ' \
|
||||
')')
|
||||
|
||||
|
||||
account_analytic_account_summary_month()
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
|
|
@ -1,15 +1,77 @@
|
|||
<?xml version="1.0" encoding='UTF-8'?>
|
||||
<openerp>
|
||||
<data>
|
||||
|
||||
<record id="account_analytic_cron_email_template" model="email.template">
|
||||
<field name="name">Contract expiration reminder</field>
|
||||
<field name="email_from">${object.email or ''}</field>
|
||||
<field name="subject">Contract expiration reminder ${user.company_id.name}</field>
|
||||
<field name="email_to">${object.email}</field>
|
||||
<field name="lang">${object.lang}</field>
|
||||
<field name="model_id" ref="base.model_res_users"/>
|
||||
<field name="auto_delete" eval="True"/>
|
||||
<field name="body_html"><![CDATA[
|
||||
Hello ${object.name},
|
||||
|
||||
% macro account_table(values):
|
||||
<table cellspacing="1" border="1" cellpadding="4">
|
||||
<tr>
|
||||
<th>Customer</th>
|
||||
<th>Contract</th>
|
||||
<th>Dates</th>
|
||||
<th>Prepaid Units</th>
|
||||
<th>Contact</th>
|
||||
</tr>
|
||||
% for partner, accounts in values:
|
||||
% for account in accounts:
|
||||
<tr>
|
||||
<td>${partner.name}</td>
|
||||
<td><a href="${ctx["base_url"]}/#action=${ctx["action_id"]}&id=${account.id}&view_type=form">${account.name}</a></td>
|
||||
<td>${account.date_start} to ${account.date and account.date or '???'}</td>
|
||||
<td>
|
||||
% if account.quantity_max != 0.0:
|
||||
${account.remaining_hours}/${account.quantity_max} units
|
||||
% endif
|
||||
</td>
|
||||
<td>${account.partner_id.phone or ''}, ${account.partner_id.email or ''}</td>
|
||||
</tr>
|
||||
% endfor
|
||||
% endfor
|
||||
</table>
|
||||
% endmacro
|
||||
|
||||
% if "new" in ctx["data"]:
|
||||
<h2>The following contracts just expired: </h2>
|
||||
${account_table(ctx["data"]["new"].iteritems())}
|
||||
% endif
|
||||
|
||||
% if "old" in ctx["data"]:
|
||||
<h2>The following expired contracts are still not processed: </h2>
|
||||
${account_table(ctx["data"]["old"].iteritems())}
|
||||
% endif
|
||||
|
||||
% if "future" in ctx["data"]:
|
||||
<h2>The following contracts will expire in less than one month: </h2>
|
||||
${account_table(ctx["data"]["future"].iteritems())}
|
||||
% endif
|
||||
|
||||
</pre>
|
||||
|
||||
]]></field>
|
||||
</record>
|
||||
<!--
|
||||
|
||||
-->
|
||||
|
||||
<record model="ir.cron" id="account_analytic_cron">
|
||||
<field name="name">Analytic Account Report for Sales</field>
|
||||
<field name="name">Contract expiration reminder</field>
|
||||
<field name="interval_number">1</field>
|
||||
<field name="interval_type">weeks</field>
|
||||
<field name="numbercall">-1</field>
|
||||
<field eval="False" name="doall"/>
|
||||
<field eval="'account.analytic.account'" name="model"/>
|
||||
<field eval="'cron_account_analytic_account'" name="function"/>
|
||||
<field eval="'()'" name="args"/>
|
||||
<field name="doall" eval="False"/>
|
||||
<field name="model" eval="'account.analytic.account'"/>
|
||||
<field name="function" eval="'cron_account_analytic_account'"/>
|
||||
<field name="args" eval="'()'" />
|
||||
</record>
|
||||
</data>
|
||||
</openerp>
|
||||
|
|
|
@ -1,104 +0,0 @@
|
|||
<openerp>
|
||||
<data>
|
||||
<menuitem id="base.menu_invoiced" name="Invoicing" parent="base.menu_base_partner" sequence="5"/>
|
||||
|
||||
<record id="action_hr_tree_invoiced_all" model="ir.actions.act_window">
|
||||
<field name="name">Time & Materials to Invoice</field>
|
||||
<field name="res_model">account.analytic.line</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="domain">[('invoice_id','=',False)]</field>
|
||||
<field name="context">{'search_default_to_invoice': 1, 'search_default_sales': 1}</field>
|
||||
<field name="search_view_id" ref="account.view_account_analytic_line_filter"/>
|
||||
<field name="help" type="html">
|
||||
<p>
|
||||
You will find here timesheets and purchases you did for
|
||||
contracts that can be reinvoiced to the customer. If you want
|
||||
to record new activities to invoice, you should use the timesheet
|
||||
menu instead.
|
||||
</p>
|
||||
</field>
|
||||
</record>
|
||||
<menuitem action="action_hr_tree_invoiced_all" id="menu_action_hr_tree_invoiced_all" parent="base.menu_invoiced" sequence="5"/>
|
||||
|
||||
<record id="view_account_analytic_account_overdue_search" model="ir.ui.view">
|
||||
<field name="name">account.analytic.account.search</field>
|
||||
<field name="model">account.analytic.account</field>
|
||||
<field name="arch" type="xml">
|
||||
<search string="Contracts">
|
||||
<field name="name" filter_domain="['|', ('name','ilike',self),('code','ilike',self)]" string="Contract"/>
|
||||
<field name="date"/>
|
||||
<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'}"/>
|
||||
<filter string="Partner" domain="[]" context="{'group_by':'partner_id'}"/>
|
||||
<filter string="Parent" domain="[]" context="{'group_by':'parent_id'}"/>
|
||||
<filter string="Start Date" domain="[]" context="{'group_by' : 'date_start'}" />
|
||||
<filter string="End Date" domain="[]" context="{'group_by' : 'date'}" />
|
||||
</group>
|
||||
</search>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
|
||||
<record id="action_account_analytic_overdue" model="ir.actions.act_window">
|
||||
<field name="name">Contracts to Renew</field>
|
||||
<field name="res_model">account.analytic.account</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="context">{'search_default_manager_id':uid, 'search_default_pending':1, 'search_default_renew':1}</field>
|
||||
<field name="domain">[('type','=','contract')]</field>
|
||||
<field name="search_view_id" ref="view_account_analytic_account_overdue_search"/>
|
||||
<field name="help" type="html">
|
||||
<p class="oe_view_nocontent_create">
|
||||
Click to define a new contract.
|
||||
</p><p>
|
||||
You will find here the contracts to be renewed because the
|
||||
end date is passed or the working effort is higher than the
|
||||
maximum authorized one.
|
||||
</p><p>
|
||||
OpenERP automatically sets contracts to be renewed in a pending
|
||||
state. After the negociation, the salesman should close or renew
|
||||
pending contracts.
|
||||
</p>
|
||||
</field>
|
||||
</record>
|
||||
<menuitem action="action_account_analytic_overdue" id="menu_action_account_analytic_overdue" sequence="50" parent="base.menu_invoiced"/>
|
||||
|
||||
<record id="action_account_analytic_overdue_all" model="ir.actions.act_window">
|
||||
<field name="name">Contracts</field>
|
||||
<field name="res_model">account.analytic.account</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="context">{'default_type':'contract', 'search_default_open':1, 'search_default_pending':1, 'default_manager_id':uid}</field>
|
||||
<field name="domain">[('type','=','contract')]</field>
|
||||
<field name="search_view_id" ref="view_account_analytic_account_overdue_search"/>
|
||||
<field name="help" type="html">
|
||||
<p class="oe_view_nocontent_create">
|
||||
Click to create a new contract.
|
||||
</p><p>
|
||||
Use contracts to follow tasks, issues, timesheets or invoicing based on
|
||||
work done, expenses and/or sales orders. OpenERP will automatically manage
|
||||
the alerts for the renewal of the contracts to the right salesperson.
|
||||
</p>
|
||||
</field>
|
||||
</record>
|
||||
<menuitem id="base.menu_sales" name="Sales"
|
||||
parent="base.menu_base_partner"
|
||||
sequence="1"/>
|
||||
<menuitem action="action_account_analytic_overdue_all" id="menu_action_account_analytic_overdue_all" sequence="7" parent="base.menu_sales"/>
|
||||
|
||||
|
||||
</data>
|
||||
</openerp>
|
|
@ -1,17 +1,13 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<openerp>
|
||||
<data>
|
||||
|
||||
<!--
|
||||
Analytic Account form
|
||||
-->
|
||||
|
||||
<record model="ir.actions.act_window" id="action_sales_order">
|
||||
<field name="name">Sales Orders</field>
|
||||
<field name="res_model">sale.order</field>
|
||||
<field name="src_model">account.analytic.account</field>
|
||||
</record>
|
||||
|
||||
<!-- Inherited Analytic Account form for contracts -->
|
||||
<record id="account_analytic_account_form_form" model="ir.ui.view">
|
||||
<field name="name">account.analytic.account.invoice.form.inherit</field>
|
||||
<field name="model">account.analytic.account</field>
|
||||
|
@ -142,19 +138,7 @@
|
|||
</field>
|
||||
</record>
|
||||
|
||||
<record id="view_account_analytic_account_tree_c2c_3" model="ir.ui.view">
|
||||
<field name="name">account.analytic.account.tree</field>
|
||||
<field name="model">account.analytic.account</field>
|
||||
<field name="inherit_id" ref="account.view_account_analytic_account_list"/>
|
||||
<field name="arch" type="xml">
|
||||
<field name="date" position="before">
|
||||
<field name="last_invoice_date"/>
|
||||
<field name="toinvoice_total"/>
|
||||
<field name="remaining_hours"/>
|
||||
</field>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- Inherited Analytic Account form for template required -->
|
||||
<record id="view_account_analytic_account_template_required" model="ir.ui.view">
|
||||
<field name="name">account.analytic.account.form.template.required</field>
|
||||
<field name="model">account.analytic.account</field>
|
||||
|
@ -167,6 +151,132 @@
|
|||
</field>
|
||||
</record>
|
||||
|
||||
<!-- Inherited Analytic Account list for contracts -->
|
||||
<record id="view_account_analytic_account_tree_c2c_3" model="ir.ui.view">
|
||||
<field name="name">account.analytic.account.list.contract</field>
|
||||
<field name="model">account.analytic.account</field>
|
||||
<field name="inherit_id" ref="account.view_account_analytic_account_list"/>
|
||||
<field name="arch" type="xml">
|
||||
<field name="date" position="before">
|
||||
<field name="last_invoice_date"/>
|
||||
<field name="toinvoice_total"/>
|
||||
<field name="remaining_hours"/>
|
||||
<field name="pricelist_id" invisible="1"/>
|
||||
</field>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- Analytic Account search view for contract -->
|
||||
<record id="view_account_analytic_account_overdue_search" model="ir.ui.view">
|
||||
<field name="name">account.analytic.account.search</field>
|
||||
<field name="model">account.analytic.account</field>
|
||||
<field name="arch" type="xml">
|
||||
<search string="Contracts">
|
||||
<field name="name" filter_domain="['|', ('name','ilike',self),('code','ilike',self)]" string="Contract"/>
|
||||
<field name="date"/>
|
||||
<field name="partner_id"/>
|
||||
<field name="manager_id"/>
|
||||
<field name="parent_id"/>
|
||||
<filter name="open" string="In Progress" domain="[('state','in',('open','draft'))]" help="Contracts in progress (open, draft)"/>
|
||||
<filter name="pending" string="To Renew" domain="[('state','=','pending')]" help="Pending contracts"/>
|
||||
<filter name="closed" string="Closed" domain="[('state','=','pending')]" help="Closed contracts"/>
|
||||
<filter name="cancelled" string="Cancelled" domain="[('state','=','cancel')]" help="Cancelled contracts"/>
|
||||
<separator/>
|
||||
<filter
|
||||
string="Expired or consumed"
|
||||
domain="[('state','in',('open','draft','pending')), '|', '&', ('date', '!=', False), ('date', '<=', time.strftime('%%Y-%%m-%%d')), ('is_overdue_quantity', '=', True)]"
|
||||
help="End date passed or prepaid unit consumed" />
|
||||
<filter
|
||||
string="Expiring soon"
|
||||
domain="[('date', '!=', False), ('date', '<=', (context_today() + datetime.timedelta(30)).strftime('%%Y-%%m-%%d') )]"
|
||||
help="End date is in the next month" />
|
||||
<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'}"/>
|
||||
<filter string="Partner" domain="[]" context="{'group_by':'partner_id'}"/>
|
||||
<filter string="Parent" domain="[]" context="{'group_by':'parent_id'}"/>
|
||||
<filter string="Template" domain="[]" context="{'group_by':'template_id'}"/>
|
||||
<filter string="Start Date" domain="[]" context="{'group_by' : 'date_start'}" />
|
||||
<filter string="End Date" domain="[]" context="{'group_by' : 'date'}" />
|
||||
<filter string="Pricelist" domain="[]" context="{'group_by' : 'pricelist_id'}" />
|
||||
</group>
|
||||
</search>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- Action Sales/Sales/Contracts -->
|
||||
<record id="action_account_analytic_overdue_all" model="ir.actions.act_window">
|
||||
<field name="name">Contracts</field>
|
||||
<field name="res_model">account.analytic.account</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="context">{'default_type':'contract', 'search_default_open':1, 'search_default_pending':1, 'default_manager_id':uid}</field>
|
||||
<field name="domain">[('type','=','contract')]</field>
|
||||
<field name="search_view_id" ref="view_account_analytic_account_overdue_search"/>
|
||||
<field name="help" type="html">
|
||||
<p class="oe_view_nocontent_create">
|
||||
Click to create a new contract.
|
||||
</p><p>
|
||||
Use contracts to follow tasks, issues, timesheets or invoicing based on
|
||||
work done, expenses and/or sales orders. OpenERP will automatically manage
|
||||
the alerts for the renewal of the contracts to the right salesperson.
|
||||
</p>
|
||||
</field>
|
||||
</record>
|
||||
<menuitem id="base.menu_sales" name="Sales" parent="base.menu_base_partner" sequence="1"/>
|
||||
<menuitem action="action_account_analytic_overdue_all" id="menu_action_account_analytic_overdue_all" sequence="7" parent="base.menu_sales"/>
|
||||
|
||||
<!-- Action Sales/Invoicing/Time and Material to Invoice -->
|
||||
<record id="action_hr_tree_invoiced_all" model="ir.actions.act_window">
|
||||
<field name="name">Time & Materials to Invoice</field>
|
||||
<field name="res_model">account.analytic.line</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="domain">[('invoice_id','=',False)]</field>
|
||||
<field name="context">{'search_default_to_invoice': 1, 'search_default_sales': 1}</field>
|
||||
<field name="search_view_id" ref="account.view_account_analytic_line_filter"/>
|
||||
<field name="help" type="html">
|
||||
<p>
|
||||
You will find here timesheets and purchases you did for
|
||||
contracts that can be reinvoiced to the customer. If you want
|
||||
to record new activities to invoice, you should use the timesheet
|
||||
menu instead.
|
||||
</p>
|
||||
</field>
|
||||
</record>
|
||||
<menuitem id="base.menu_invoiced" name="Invoicing" parent="base.menu_base_partner" sequence="5"/>
|
||||
<menuitem action="action_hr_tree_invoiced_all" id="menu_action_hr_tree_invoiced_all" parent="base.menu_invoiced" sequence="5"/>
|
||||
|
||||
<!-- Action Sales/Invoicing/Contract to renew -->
|
||||
<record id="action_account_analytic_overdue" model="ir.actions.act_window">
|
||||
<field name="name">Contracts to Renew</field>
|
||||
<field name="res_model">account.analytic.account</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="context">{'search_default_manager_id':uid, 'search_default_pending':1, 'search_default_renew':1}</field>
|
||||
<field name="domain">[('type','=','contract')]</field>
|
||||
<field name="search_view_id" ref="view_account_analytic_account_overdue_search"/>
|
||||
<field name="help" type="html">
|
||||
<p class="oe_view_nocontent_create">
|
||||
Click to define a new contract.
|
||||
</p><p>
|
||||
You will find here the contracts to be renewed because the
|
||||
end date is passed or the working effort is higher than the
|
||||
maximum authorized one.
|
||||
</p><p>
|
||||
OpenERP automatically sets contracts to be renewed in a pending
|
||||
state. After the negociation, the salesman should close or renew
|
||||
pending contracts.
|
||||
</p>
|
||||
</field>
|
||||
</record>
|
||||
<menuitem action="action_account_analytic_overdue" id="menu_action_account_analytic_overdue" sequence="50" parent="base.menu_invoiced"/>
|
||||
|
||||
<!-- Action Sales/Configuration/Contract template -->
|
||||
<record id="template_of_contract_action" model="ir.actions.act_window">
|
||||
<field name="name">Contract Template</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
|
@ -184,8 +294,8 @@
|
|||
terms and conditions of the contract.
|
||||
</p>
|
||||
</field>
|
||||
|
||||
</record>
|
||||
<menuitem action="template_of_contract_action" id="menu_template_of_contract_action" parent="base.menu_base_config"/>
|
||||
|
||||
</data>
|
||||
</openerp>
|
||||
|
|
|
@ -1,79 +0,0 @@
|
|||
#!/usr/bin/env python
|
||||
from mako.template import Template
|
||||
import time
|
||||
try:
|
||||
import cStringIO as StringIO
|
||||
except ImportError:
|
||||
import StringIO
|
||||
|
||||
from openerp import tools
|
||||
from openerp.osv import osv
|
||||
|
||||
MAKO_TEMPLATE = u"""Hello ${user.name},
|
||||
|
||||
Here is a list of contracts that have to be renewed for two
|
||||
possible reasons:
|
||||
- the end of contract date is passed
|
||||
- the customer consumed more hours than expected
|
||||
|
||||
Can you contact the customer in order to sell a new or renew its contract.
|
||||
The contract has been set with a pending state, can you update the status
|
||||
of the analytic account following this rule:
|
||||
- Set Done: if the customer does not want to renew
|
||||
- Set Open: if the customer purchased an extra contract
|
||||
|
||||
Here is the list of contracts to renew:
|
||||
% for partner, accounts in partners.iteritems():
|
||||
* ${partner.name}
|
||||
% for account in accounts:
|
||||
- Name: ${account.name}
|
||||
% if account.quantity_max != 0.0:
|
||||
- Quantity: ${account.quantity}/${account.quantity_max} hours
|
||||
% endif
|
||||
- Dates: ${account.date_start} to ${account.date and account.date or '???'}
|
||||
- Contacts:
|
||||
${account.partner_id.name}, ${account.partner_id.phone or ''}, ${account.partner_id.email or ''}
|
||||
|
||||
% endfor
|
||||
% endfor
|
||||
|
||||
You can use the report in the menu: Sales > Invoicing > Overdue Accounts
|
||||
|
||||
Regards,
|
||||
|
||||
--
|
||||
OpenERP
|
||||
"""
|
||||
|
||||
class analytic_account(osv.osv):
|
||||
_inherit = 'account.analytic.account'
|
||||
|
||||
def cron_account_analytic_account(self, cr, uid, context=None):
|
||||
domain = [
|
||||
('name', 'not ilike', 'maintenance'),
|
||||
('partner_id', '!=', False),
|
||||
('user_id', '!=', False),
|
||||
('user_id.email', '!=', False),
|
||||
('state', 'in', ('draft', 'open')),
|
||||
'|', ('date', '<', time.strftime('%Y-%m-%d')), ('date', '=', False),
|
||||
]
|
||||
|
||||
account_ids = self.search(cr, uid, domain, context=context, order='name asc')
|
||||
accounts = self.browse(cr, uid, account_ids, context=context)
|
||||
|
||||
users = dict()
|
||||
for account in accounts:
|
||||
users.setdefault(account.user_id, dict()).setdefault(account.partner_id, []).append(account)
|
||||
|
||||
account.write({'state' : 'pending'}, context=context)
|
||||
|
||||
for user, data in users.iteritems():
|
||||
subject = '[OPENERP] Reporting: Analytic Accounts'
|
||||
body = Template(MAKO_TEMPLATE).render_unicode(user=user, partners=data)
|
||||
tools.email_send('noreply@openerp.com', [user.email, ], subject, body)
|
||||
|
||||
return True
|
||||
|
||||
analytic_account()
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
|
@ -0,0 +1,230 @@
|
|||
# Czech 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-20 13:50+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Czech <cs@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-21 05:14+0000\n"
|
||||
"X-Generator: Launchpad (build 16491)\n"
|
||||
|
||||
#. module: account_check_writing
|
||||
#: selection:res.company,check_layout:0
|
||||
msgid "Check on Top"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_check_writing
|
||||
#: report:account.print.check.top:0
|
||||
msgid "Open Balance"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_check_writing
|
||||
#: view:account.check.write:0
|
||||
#: view:account.voucher:0
|
||||
msgid "Print Check"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_check_writing
|
||||
#: selection:res.company,check_layout:0
|
||||
msgid "Check in middle"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_check_writing
|
||||
#: help:res.company,check_layout:0
|
||||
msgid ""
|
||||
"Check on top is compatible with Quicken, QuickBooks and Microsoft Money. "
|
||||
"Check in middle is compatible with Peachtree, ACCPAC and DacEasy. Check on "
|
||||
"bottom is compatible with Peachtree, ACCPAC and DacEasy only"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_check_writing
|
||||
#: selection:res.company,check_layout:0
|
||||
msgid "Check on bottom"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_check_writing
|
||||
#: model:ir.actions.act_window,name:account_check_writing.action_account_check_write
|
||||
msgid "Print Check in Batch"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_check_writing
|
||||
#: code:addons/account_check_writing/wizard/account_check_batch_printing.py:59
|
||||
#, python-format
|
||||
msgid "One of the printed check already got a number."
|
||||
msgstr ""
|
||||
|
||||
#. module: account_check_writing
|
||||
#: help:account.journal,allow_check_writing:0
|
||||
msgid "Check this if the journal is to be used for writing checks."
|
||||
msgstr ""
|
||||
|
||||
#. module: account_check_writing
|
||||
#: field:account.journal,allow_check_writing:0
|
||||
msgid "Allow Check writing"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_check_writing
|
||||
#: report:account.print.check.bottom:0
|
||||
#: report:account.print.check.middle:0
|
||||
#: report:account.print.check.top:0
|
||||
msgid "Description"
|
||||
msgstr "Popis"
|
||||
|
||||
#. module: account_check_writing
|
||||
#: model:ir.model,name:account_check_writing.model_account_journal
|
||||
msgid "Journal"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_check_writing
|
||||
#: model:ir.actions.act_window,name:account_check_writing.action_write_check
|
||||
#: model:ir.ui.menu,name:account_check_writing.menu_action_write_check
|
||||
msgid "Write Checks"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_check_writing
|
||||
#: report:account.print.check.bottom:0
|
||||
#: report:account.print.check.middle:0
|
||||
#: report:account.print.check.top:0
|
||||
msgid "Discount"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_check_writing
|
||||
#: report:account.print.check.bottom:0
|
||||
#: report:account.print.check.middle:0
|
||||
#: report:account.print.check.top:0
|
||||
msgid "Original Amount"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_check_writing
|
||||
#: field:res.company,check_layout:0
|
||||
msgid "Check Layout"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_check_writing
|
||||
#: field:account.voucher,allow_check:0
|
||||
msgid "Allow Check Writing"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_check_writing
|
||||
#: report:account.print.check.bottom:0
|
||||
#: report:account.print.check.middle:0
|
||||
#: report:account.print.check.top:0
|
||||
msgid "Payment"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_check_writing
|
||||
#: field:account.journal,use_preprint_check:0
|
||||
msgid "Use Preprinted Check"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_check_writing
|
||||
#: model:ir.actions.report.xml,name:account_check_writing.account_print_check_bottom
|
||||
msgid "Print Check (Bottom)"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_check_writing
|
||||
#: model:ir.actions.act_window,help:account_check_writing.action_write_check
|
||||
msgid ""
|
||||
"<p class=\"oe_view_nocontent_create\">\n"
|
||||
" Click to create a new check. \n"
|
||||
" </p><p>\n"
|
||||
" The check payment form allows you to track the payment you "
|
||||
"do\n"
|
||||
" to your suppliers using checks. When you select a supplier, "
|
||||
"the\n"
|
||||
" payment method and an amount for the payment, OpenERP will\n"
|
||||
" propose to reconcile your payment with the open supplier\n"
|
||||
" invoices or bills.\n"
|
||||
" </p>\n"
|
||||
" "
|
||||
msgstr ""
|
||||
|
||||
#. module: account_check_writing
|
||||
#: report:account.print.check.bottom:0
|
||||
#: report:account.print.check.middle:0
|
||||
#: report:account.print.check.top:0
|
||||
msgid "Due Date"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_check_writing
|
||||
#: model:ir.actions.report.xml,name:account_check_writing.account_print_check_middle
|
||||
msgid "Print Check (Middle)"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_check_writing
|
||||
#: model:ir.model,name:account_check_writing.model_res_company
|
||||
msgid "Companies"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_check_writing
|
||||
#: code:addons/account_check_writing/wizard/account_check_batch_printing.py:59
|
||||
#, python-format
|
||||
msgid "Error!"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_check_writing
|
||||
#: help:account.check.write,check_number:0
|
||||
msgid "The number of the next check number to be printed."
|
||||
msgstr ""
|
||||
|
||||
#. module: account_check_writing
|
||||
#: report:account.print.check.bottom:0
|
||||
#: report:account.print.check.middle:0
|
||||
msgid "Balance Due"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_check_writing
|
||||
#: model:ir.actions.report.xml,name:account_check_writing.account_print_check_top
|
||||
msgid "Print Check (Top)"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_check_writing
|
||||
#: report:account.print.check.bottom:0
|
||||
#: report:account.print.check.middle:0
|
||||
#: report:account.print.check.top:0
|
||||
msgid "Check Amount"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_check_writing
|
||||
#: model:ir.model,name:account_check_writing.model_account_voucher
|
||||
msgid "Accounting Voucher"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_check_writing
|
||||
#: view:account.check.write:0
|
||||
msgid "or"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_check_writing
|
||||
#: field:account.voucher,amount_in_word:0
|
||||
msgid "Amount in Word"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_check_writing
|
||||
#: model:ir.model,name:account_check_writing.model_account_check_write
|
||||
msgid "Prin Check in Batch"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_check_writing
|
||||
#: view:account.check.write:0
|
||||
msgid "Cancel"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_check_writing
|
||||
#: field:account.check.write,check_number:0
|
||||
msgid "Next Check Number"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_check_writing
|
||||
#: view:account.check.write:0
|
||||
msgid "Check"
|
||||
msgstr ""
|
|
@ -26,8 +26,6 @@ from openerp import tools
|
|||
from openerp.osv import fields, osv
|
||||
from openerp.tools.translate import _
|
||||
|
||||
from openerp import SUPERUSER_ID
|
||||
|
||||
class account_followup_stat_by_partner(osv.osv):
|
||||
_name = "account_followup.stat.by.partner"
|
||||
_description = "Follow-up Statistics by Partner"
|
||||
|
@ -315,13 +313,6 @@ class account_followup_print(osv.osv_memory):
|
|||
if stat_line_id not in partner_list:
|
||||
partner_list.append(stat_line_id)
|
||||
to_update[str(id)]= {'level': fups[followup_line_id][1], 'partner_id': stat_line_id}
|
||||
#Remove partners that are other companies in OpenERP
|
||||
comp_obj = self.pool.get("res.company")
|
||||
comp_ids = comp_obj.search(cr, SUPERUSER_ID, [], context=context)
|
||||
for comp in comp_obj.browse(cr, SUPERUSER_ID, comp_ids, context=context):
|
||||
company_partner_wiz_id = comp.partner_id.id * 10000 + company_id
|
||||
if company_partner_wiz_id in partner_list:
|
||||
partner_list.remove(company_partner_wiz_id)
|
||||
return {'partner_ids': partner_list, 'to_update': to_update}
|
||||
|
||||
account_followup_print()
|
||||
|
|
|
@ -61,6 +61,7 @@ This module manages:
|
|||
'account_voucher_data.xml',
|
||||
],
|
||||
'test' : [
|
||||
'test/account_voucher_users.yml',
|
||||
'test/case5_suppl_usd_usd.yml',
|
||||
'test/account_voucher.yml',
|
||||
'test/sales_receipt.yml',
|
||||
|
|
|
@ -1,3 +1,9 @@
|
|||
-
|
||||
I check the voucher module with user who is accountant.
|
||||
-
|
||||
!context
|
||||
uid: 'res_users_account_voucher_user'
|
||||
|
||||
-
|
||||
In order to check account voucher module in OpenERP I create a customer voucher
|
||||
-
|
||||
|
|
|
@ -0,0 +1,20 @@
|
|||
-
|
||||
Create a user as 'Accountant for voucher'
|
||||
-
|
||||
!record {model: res.users, id: res_users_account_voucher_user}:
|
||||
company_id: base.main_company
|
||||
name: Voucher Accountant
|
||||
login: vacc
|
||||
password: acc
|
||||
groups_id:
|
||||
- account.group_account_user
|
||||
-
|
||||
Create a user as 'Financial Manager for account voucher'
|
||||
-
|
||||
!record {model: res.users, id: res_users_account_voucher_manager}:
|
||||
company_id: base.main_company
|
||||
name: Financial Manager for voucher
|
||||
login: fmv
|
||||
password: fmv
|
||||
groups_id:
|
||||
- account.group_account_manager
|
|
@ -1,4 +1,9 @@
|
|||
##YAML test on the account_voucher as depicted in this bug report: https://bugs.launchpad.net/openobject-addons/+bug/954155
|
||||
-
|
||||
Only manager can create and take decision about bank and currency there I checkd this test with user who is finance manager.
|
||||
-
|
||||
!context
|
||||
uid: 'res_users_account_voucher_manager'
|
||||
-
|
||||
In order to check the payment with multi-currency in OpenERP,
|
||||
I create an invoice in EUR and make payment in USD based on the currency rating.
|
||||
|
|
|
@ -1,3 +1,8 @@
|
|||
-
|
||||
I test sales payment with user who is accountant.
|
||||
-
|
||||
!context
|
||||
uid: 'res_users_account_voucher_user'
|
||||
-
|
||||
Create an invoice for the partner Seagate with amount 450.0
|
||||
-
|
||||
|
|
|
@ -1,3 +1,8 @@
|
|||
-
|
||||
Accountant can also be created receipt and validate it there for I checked it with that user who is accountant.
|
||||
-
|
||||
!context
|
||||
uid: 'res_users_account_voucher_user'
|
||||
-
|
||||
Creating a Voucher Receipt for partner Seagate with amount 30000.0
|
||||
-
|
||||
|
|
|
@ -196,7 +196,7 @@ class account_analytic_account(osv.osv):
|
|||
'date_start': fields.date('Start Date'),
|
||||
'date': fields.date('Date End', select=True),
|
||||
'company_id': fields.many2one('res.company', 'Company', required=False), #not required because we want to allow different companies to use the same chart of account, except for leaf accounts.
|
||||
'state': fields.selection([('template', 'Template'),('draft','New'),('open','In Progress'), ('cancelled', 'Cancelled'),('pending','To Renew'),('close','Closed')], 'Status', required=True, track_visibility='onchange'),
|
||||
'state': fields.selection([('template', 'Template'),('draft','New'),('open','In Progress'),('pending','To Renew'),('close','Closed'),('cancelled', 'Cancelled')], 'Status', required=True, track_visibility='onchange'),
|
||||
'currency_id': fields.function(_currency, fnct_inv=_set_company_currency, #the currency_id field is readonly except if it's a view account and if there is no company
|
||||
store = {
|
||||
'res.company': (_get_analytic_account, ['currency_id'], 10),
|
||||
|
@ -258,6 +258,9 @@ class account_analytic_account(osv.osv):
|
|||
(check_recursion, 'Error! You cannot create recursive analytic accounts.', ['parent_id']),
|
||||
]
|
||||
|
||||
def name_create(self, cr, uid, name, context=None):
|
||||
raise osv.except_osv(_('Warning'), _("Quick account creation disallowed."))
|
||||
|
||||
def copy(self, cr, uid, id, default=None, context=None):
|
||||
if not default:
|
||||
default = {}
|
||||
|
@ -349,6 +352,4 @@ class account_analytic_line(osv.osv):
|
|||
(_check_no_view, 'You cannot create analytic line on view account.', ['account_id']),
|
||||
]
|
||||
|
||||
account_analytic_line()
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
|
|
@ -41,7 +41,7 @@ class res_users(osv.Model):
|
|||
state = simplejson.loads(params['state'])
|
||||
token = state.get('t')
|
||||
oauth_uid = validation['user_id']
|
||||
email = validation.get('email', 'provider_%d_user_%d' % (provider, oauth_uid))
|
||||
email = validation.get('email', 'provider_%s_user_%s' % (provider, oauth_uid))
|
||||
name = validation.get('name', email)
|
||||
values = {
|
||||
'name': name,
|
||||
|
|
|
@ -21,8 +21,8 @@
|
|||
<!-- add Reset Password button -->
|
||||
<xpath expr="//div[@class='oe_right oe_button_box']" position="replace">
|
||||
<div class="oe_right oe_button_box">
|
||||
<button string="Reset Password" type="object" name="action_reset_password"
|
||||
help="Send an email to the user to (re)set their password."/>
|
||||
<button string="Send reset password instructions by email"
|
||||
type="object" name="action_reset_password" />
|
||||
</div>
|
||||
</xpath>
|
||||
</field>
|
||||
|
|
|
@ -587,27 +587,25 @@ class crm_lead(base_stage, format_address, osv.osv):
|
|||
return True
|
||||
|
||||
def _merge_opportunity_attachments(self, cr, uid, opportunity_id, opportunities, context=None):
|
||||
attachment = self.pool.get('ir.attachment')
|
||||
attach_obj = self.pool.get('ir.attachment')
|
||||
|
||||
# return attachments of opportunity
|
||||
def _get_attachments(opportunity_id):
|
||||
attachment_ids = attachment.search(cr, uid, [('res_model', '=', self._name), ('res_id', '=', opportunity_id)], context=context)
|
||||
return attachment.browse(cr, uid, attachment_ids, context=context)
|
||||
attachment_ids = attach_obj.search(cr, uid, [('res_model', '=', self._name), ('res_id', '=', opportunity_id)], context=context)
|
||||
return attach_obj.browse(cr, uid, attachment_ids, context=context)
|
||||
|
||||
count = 1
|
||||
first_attachments = _get_attachments(opportunity_id)
|
||||
#counter of all attachments to move. Used to make sure the name is different for all attachments
|
||||
count = 1
|
||||
for opportunity in opportunities:
|
||||
attachments = _get_attachments(opportunity.id)
|
||||
for first in first_attachments:
|
||||
for attachment in attachments:
|
||||
if attachment.name == first.name:
|
||||
values = dict(
|
||||
name = "%s (%s)" % (attachment.name, count,),
|
||||
res_id = opportunity_id,
|
||||
)
|
||||
attachment.write(values)
|
||||
count+=1
|
||||
|
||||
for attachment in attachments:
|
||||
values = {'res_id': opportunity_id,}
|
||||
for attachment_in_first in first_attachments:
|
||||
if attachment.name == attachment_in_first.name:
|
||||
name = "%s (%s)" % (attachment.name, count,),
|
||||
count+=1
|
||||
attachment.write(values)
|
||||
return True
|
||||
|
||||
def merge_opportunity(self, cr, uid, ids, context=None):
|
||||
|
|
|
@ -2,7 +2,6 @@
|
|||
<openerp>
|
||||
<data>
|
||||
|
||||
|
||||
<!--
|
||||
CRM CASE STAGE
|
||||
-->
|
||||
|
@ -110,7 +109,7 @@
|
|||
string="Phone Calls"/>
|
||||
</div>
|
||||
<div class="oe_title">
|
||||
<label for="name" class="oe_edit_only" string="Lead Description"/>
|
||||
<label for="name" class="oe_edit_only"/>
|
||||
<h1><field name="name" placeholder="Describe the lead..."/></h1>
|
||||
</div>
|
||||
<group>
|
||||
|
@ -217,9 +216,8 @@
|
|||
<field name="arch" type="xml">
|
||||
<tree string="Leads" fonts="bold:message_unread==True" colors="grey:state in ('cancel', 'done')">
|
||||
<field name="date_deadline" invisible="1"/>
|
||||
<field name="create_date" groups="base.group_no_one"/>
|
||||
<field name="create_date"/>
|
||||
<field name="name"/>
|
||||
<field name="type"/>
|
||||
<field name="contact_name"/>
|
||||
<field name="country_id" invisible="context.get('invisible_country', True)"/>
|
||||
<field name="email_from"/>
|
||||
|
@ -390,8 +388,7 @@
|
|||
<button string="Meeting"
|
||||
name="action_makeMeeting"
|
||||
type="object"
|
||||
context="{'search_default_attendee_id': active_id, 'default_attendee_id' : active_id}"
|
||||
/>
|
||||
context="{'search_default_attendee_id': active_id, 'default_attendee_id' : active_id}"/>
|
||||
</div>
|
||||
<div class="oe_title">
|
||||
<label for="name" class="oe_edit_only"/>
|
||||
|
@ -512,7 +509,7 @@
|
|||
<field name="arch" type="xml">
|
||||
<tree string="Opportunities" fonts="bold:message_unread==True" colors="gray:state in ('cancel', 'done');red:date_deadline and (date_deadline < current_date)">
|
||||
<field name="date_deadline" invisible="1"/>
|
||||
<field name="create_date" groups="base.group_no_one"/>
|
||||
<field name="create_date"/>
|
||||
<field name="name" string="Opportunity"/>
|
||||
<field name="partner_id" string="Customer"/>
|
||||
<field name="country_id" invisible="context.get('invisible_country', True)"/>
|
||||
|
@ -527,8 +524,8 @@
|
|||
<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"/>
|
||||
<field name="state" invisible="1"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
|
|
@ -45,8 +45,8 @@ class test_message_compose(TestMailBase):
|
|||
# Mail data
|
||||
_subject1 = 'Pigs'
|
||||
_subject2 = 'Bird'
|
||||
_body_html1 = '<div><p>Fans of Pigs, unite !\n</p><p>Admin</p></div>'
|
||||
_body_html2 = '<div><p>I am angry !\n</p><p>Admin</p></div>'
|
||||
_body_html1 = 'Fans of Pigs, unite !'
|
||||
_body_html2 = 'I am angry !'
|
||||
_attachments = [
|
||||
{'name': 'First', 'datas_fname': 'first.txt', 'datas': base64.b64encode('My first attachment')},
|
||||
{'name': 'Second', 'datas_fname': 'second.txt', 'datas': base64.b64encode('My second attachment')}
|
||||
|
@ -113,7 +113,7 @@ class test_message_compose(TestMailBase):
|
|||
partner_ids = self.res_partner.search(cr, uid, [('email', 'in', ['b@b.b', 'c@c.c', 'd@d.d'])])
|
||||
# Test: mail.compose.message: subject, body, partner_ids
|
||||
self.assertEqual(compose.subject, _subject1, 'mail.compose.message subject incorrect')
|
||||
self.assertEqual(compose.body, _body_html1, 'mail.compose.message body incorrect')
|
||||
self.assertIn(_body_html1, compose.body, 'mail.compose.message body incorrect')
|
||||
self.assertEqual(set(message_pids), set(partner_ids), 'mail.compose.message partner_ids incorrect')
|
||||
# Test: mail.compose.message: attachments
|
||||
# Test: mail.message: attachments
|
||||
|
@ -159,8 +159,8 @@ class test_message_compose(TestMailBase):
|
|||
# Test: subject, body
|
||||
self.assertEqual(message_pigs.subject, _subject1, 'mail.message subject on Pigs incorrect')
|
||||
self.assertEqual(message_bird.subject, _subject2, 'mail.message subject on Bird incorrect')
|
||||
self.assertEqual(message_pigs.body, _body_html1, 'mail.message body on Pigs incorrect')
|
||||
self.assertEqual(message_bird.body, _body_html2, 'mail.message body on Bird incorrect')
|
||||
self.assertIn(_body_html1, message_pigs.body, 'mail.message body on Pigs incorrect')
|
||||
self.assertIn(_body_html2, message_bird.body, 'mail.message body on Bird incorrect')
|
||||
# Test: partner_ids: p_a_id (default) + 3 newly created partners
|
||||
message_pigs_pids = [partner.id for partner in message_pigs.notified_partner_ids]
|
||||
message_bird_pids = [partner.id for partner in message_bird.notified_partner_ids]
|
||||
|
|
|
@ -150,8 +150,8 @@ class mail_compose_message(osv.TransientModel):
|
|||
values = {}
|
||||
# get values to return
|
||||
email_dict = super(mail_compose_message, self).render_message(cr, uid, wizard, res_id, context)
|
||||
email_dict.update(values)
|
||||
return email_dict
|
||||
values.update(email_dict)
|
||||
return values
|
||||
|
||||
def render_template(self, cr, uid, template, model, res_id, context=None):
|
||||
return self.pool.get('email.template').render_template(cr, uid, template, model, res_id, context=context)
|
||||
|
|
|
@ -49,7 +49,7 @@
|
|||
</group>
|
||||
<group string="Actions to Perform on Incoming Mails">
|
||||
<field name="object_id" on_change="onchange_server_type(type, is_ssl, object_id)"/>
|
||||
<field name="action_id"/>
|
||||
<field name="action_id" groups="base.group_no_one"/>
|
||||
</group>
|
||||
<group attrs="{'invisible' : [('type', '!=', 'local')]}" string="Configuration">
|
||||
<field name="configuration" colspan="4"/>
|
||||
|
|
|
@ -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:04+0000\n"
|
||||
"PO-Revision-Date: 2012-05-17 13:22+0000\n"
|
||||
"Last-Translator: Herczeg Péter <hp@erp-cloud.hu>\n"
|
||||
"PO-Revision-Date: 2013-02-20 14:04+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: 2012-12-22 05:58+0000\n"
|
||||
"X-Generator: Launchpad (build 16378)\n"
|
||||
"X-Launchpad-Export-Date: 2013-02-21 05:14+0000\n"
|
||||
"X-Generator: Launchpad (build 16491)\n"
|
||||
|
||||
#. module: hr_recruitment
|
||||
#: help:hr.applicant,active:0
|
||||
|
@ -22,6 +22,8 @@ msgid ""
|
|||
"If the active field is set to false, it will allow you to hide the case "
|
||||
"without removing it."
|
||||
msgstr ""
|
||||
"Ha az aktív mező hamisra van állítva, akkor lehetővé teszi az eset "
|
||||
"eltüntetését, annak eltávolítása nélkül."
|
||||
|
||||
#. module: hr_recruitment
|
||||
#: view:hr.recruitment.stage:0
|
||||
|
@ -37,12 +39,12 @@ msgstr ""
|
|||
#. module: hr_recruitment
|
||||
#: view:hr.applicant:0
|
||||
msgid "Start Interview"
|
||||
msgstr ""
|
||||
msgstr "Interjú elindítás"
|
||||
|
||||
#. module: hr_recruitment
|
||||
#: view:hr.applicant:0
|
||||
msgid "Mobile:"
|
||||
msgstr ""
|
||||
msgstr "Mobil:"
|
||||
|
||||
#. module: hr_recruitment
|
||||
#: help:hr.recruitment.stage,fold:0
|
||||
|
@ -50,6 +52,8 @@ msgid ""
|
|||
"This stage is not visible, for example in status bar or kanban view, when "
|
||||
"there are no records in that stage to display."
|
||||
msgstr ""
|
||||
"Ez a szint nem látható, például az állapot sorban vagy kanban nézetben, ha "
|
||||
"azon a szinten nem lehet rekordot kijelezni."
|
||||
|
||||
#. module: hr_recruitment
|
||||
#: model:hr.recruitment.degree,name:hr_recruitment.degree_graduate
|
||||
|
@ -59,12 +63,12 @@ msgstr "Diplomás"
|
|||
#. module: hr_recruitment
|
||||
#: view:hr.applicant:0
|
||||
msgid "Group By..."
|
||||
msgstr "Csoportosítás..."
|
||||
msgstr "Csoportosítás ezzel..."
|
||||
|
||||
#. module: hr_recruitment
|
||||
#: view:hr.applicant:0
|
||||
msgid "Filter and view on next actions and date"
|
||||
msgstr ""
|
||||
msgstr "Szűrés és nézet a következő műveletnél és dátumnál"
|
||||
|
||||
#. module: hr_recruitment
|
||||
#: view:hr.applicant:0
|
||||
|
@ -82,7 +86,7 @@ msgstr "Következő művelet időpontja"
|
|||
#. module: hr_recruitment
|
||||
#: field:hr.applicant,salary_expected_extra:0
|
||||
msgid "Expected Salary Extra"
|
||||
msgstr ""
|
||||
msgstr "Elvárt extra jövedelem"
|
||||
|
||||
#. module: hr_recruitment
|
||||
#: view:hr.recruitment.report:0
|
||||
|
@ -98,7 +102,7 @@ msgstr "Függő állások"
|
|||
#: view:hr.applicant:0
|
||||
#: field:hr.applicant,message_unread:0
|
||||
msgid "Unread Messages"
|
||||
msgstr ""
|
||||
msgstr "Olvasatlan üzenetek"
|
||||
|
||||
#. module: hr_recruitment
|
||||
#: field:hr.applicant,company_id:0
|
||||
|
@ -112,13 +116,13 @@ msgstr "Vállalat"
|
|||
#: model:ir.actions.act_window,name:hr_recruitment.hr_recruitment_source_action
|
||||
#: model:ir.ui.menu,name:hr_recruitment.menu_hr_recruitment_source
|
||||
msgid "Sources of Applicants"
|
||||
msgstr ""
|
||||
msgstr "Pályázók forrása"
|
||||
|
||||
#. module: hr_recruitment
|
||||
#: code:addons/hr_recruitment/hr_recruitment.py:435
|
||||
#, python-format
|
||||
msgid "You must define Applied Job for this applicant."
|
||||
msgstr ""
|
||||
msgstr "Meg kell határoznia egy betöltött állást ehhez a jelentkezőhöz"
|
||||
|
||||
#. module: hr_recruitment
|
||||
#: view:hr.applicant:0
|
||||
|
@ -128,7 +132,7 @@ msgstr "Munka"
|
|||
#. module: hr_recruitment
|
||||
#: field:hr.recruitment.partner.create,close:0
|
||||
msgid "Close job request"
|
||||
msgstr ""
|
||||
msgstr "Állás igénylés lezárása"
|
||||
|
||||
#. module: hr_recruitment
|
||||
#: model:ir.actions.act_window,help:hr_recruitment.crm_case_categ0_act_job
|
||||
|
@ -151,12 +155,29 @@ msgid ""
|
|||
" </p>\n"
|
||||
" "
|
||||
msgstr ""
|
||||
"<p class=\"oe_view_nocontent_create\">\n"
|
||||
" Kattintson új állásra jelentkező hozzáadásához.\n"
|
||||
" </p><p>\n"
|
||||
" OpenERP segít a jelentkezők nyomon követéséhez a felvétel\n"
|
||||
" folyamatában és az összes művelet nyomon követésében: "
|
||||
"találkozók, interjúk, stb.\n"
|
||||
" </p><p>\n"
|
||||
" Ha beállította az e-mail csatornát, akkor a jelentkezők és "
|
||||
"azok \n"
|
||||
" melléklet CV önéletrajza automatikusan létre lesz hozva ha e-"
|
||||
"mailt küld ide\n"
|
||||
" munka@azönvállalkozása.com. Ha a dokumentum kezelő modult\n"
|
||||
" telepíti, minden szakmai önéletrajz automatikusan indexelve "
|
||||
"lesz, így\n"
|
||||
" könnyen kereshet a teljes tartalomban.\n"
|
||||
" </p>\n"
|
||||
" "
|
||||
|
||||
#. module: hr_recruitment
|
||||
#: model:ir.actions.act_window,name:hr_recruitment.crm_case_categ0_act_job
|
||||
#: model:ir.ui.menu,name:hr_recruitment.menu_crm_case_categ0_act_job
|
||||
msgid "Applications"
|
||||
msgstr ""
|
||||
msgstr "Alkalmazások"
|
||||
|
||||
#. module: hr_recruitment
|
||||
#: field:hr.applicant,day_open:0
|
||||
|
@ -166,12 +187,12 @@ msgstr "Megnyitásig hátralévő napok"
|
|||
#. module: hr_recruitment
|
||||
#: field:hr.applicant,emp_id:0
|
||||
msgid "employee"
|
||||
msgstr ""
|
||||
msgstr "Alkalmazott"
|
||||
|
||||
#. module: hr_recruitment
|
||||
#: field:hr.config.settings,fetchmail_applicants:0
|
||||
msgid "Create applicants from an incoming email account"
|
||||
msgstr ""
|
||||
msgstr "Jelentkező létrehozása egy beérkezett e-mail fiókból"
|
||||
|
||||
#. module: hr_recruitment
|
||||
#: view:hr.recruitment.report:0
|
||||
|
@ -183,7 +204,7 @@ msgstr "Nap"
|
|||
#: view:hr.recruitment.partner.create:0
|
||||
#: model:ir.actions.act_window,name:hr_recruitment.action_hr_recruitment_partner_create
|
||||
msgid "Create Contact"
|
||||
msgstr ""
|
||||
msgstr "Kapcsolat létrehozása"
|
||||
|
||||
#. module: hr_recruitment
|
||||
#: view:hr.applicant:0
|
||||
|
@ -193,7 +214,7 @@ msgstr "Visszautasít"
|
|||
#. module: hr_recruitment
|
||||
#: model:hr.recruitment.degree,name:hr_recruitment.degree_licenced
|
||||
msgid "Master Degree"
|
||||
msgstr ""
|
||||
msgstr "Mester fokozat"
|
||||
|
||||
#. module: hr_recruitment
|
||||
#: field:hr.applicant,partner_mobile:0
|
||||
|
@ -215,12 +236,12 @@ msgstr "Következő műveletek"
|
|||
#: code:addons/hr_recruitment/wizard/hr_recruitment_create_partner_job.py:56
|
||||
#, python-format
|
||||
msgid "Error!"
|
||||
msgstr ""
|
||||
msgstr "Hiba!"
|
||||
|
||||
#. module: hr_recruitment
|
||||
#: model:hr.recruitment.degree,name:hr_recruitment.degree_bac5
|
||||
msgid "Doctoral Degree"
|
||||
msgstr ""
|
||||
msgstr "Doktorátusi fokozat"
|
||||
|
||||
#. module: hr_recruitment
|
||||
#: field:hr.applicant,job_id:0
|
||||
|
@ -234,21 +255,23 @@ msgid ""
|
|||
"Stages of the recruitment process may be different per department. If this "
|
||||
"stage is common to all departments, keep this field empty."
|
||||
msgstr ""
|
||||
"A toborzás szakaszai eltérhetnek osztályonként. Ha ez a szakasz minden "
|
||||
"osztálynak közös, akkor ezt a mezőt hagyja üresen."
|
||||
|
||||
#. module: hr_recruitment
|
||||
#: help:hr.applicant,message_unread:0
|
||||
msgid "If checked new messages require your attention."
|
||||
msgstr ""
|
||||
msgstr "Ha be van jelölve, akkor figyelje az új üzeneteket."
|
||||
|
||||
#. module: hr_recruitment
|
||||
#: field:hr.applicant,color:0
|
||||
msgid "Color Index"
|
||||
msgstr ""
|
||||
msgstr "Szín meghatározó"
|
||||
|
||||
#. module: hr_recruitment
|
||||
#: model:ir.actions.act_window,name:hr_recruitment.act_hr_applicant_to_meeting
|
||||
msgid "Meetings"
|
||||
msgstr ""
|
||||
msgstr "Találkozók"
|
||||
|
||||
#. module: hr_recruitment
|
||||
#: view:hr.applicant:0
|
||||
|
@ -259,12 +282,12 @@ msgstr "Pályázók státusza"
|
|||
#. module: hr_recruitment
|
||||
#: view:hr.recruitment.report:0
|
||||
msgid "My Recruitment"
|
||||
msgstr ""
|
||||
msgstr "Én toborzásaim"
|
||||
|
||||
#. module: hr_recruitment
|
||||
#: field:hr.job,survey_id:0
|
||||
msgid "Interview Form"
|
||||
msgstr ""
|
||||
msgstr "Interjú űrlap"
|
||||
|
||||
#. module: hr_recruitment
|
||||
#: help:hr.job,survey_id:0
|
||||
|
@ -272,6 +295,9 @@ msgid ""
|
|||
"Choose an interview form for this job position and you will be able to "
|
||||
"print/answer this interview from all applicants who apply for this job"
|
||||
msgstr ""
|
||||
"Vállaaszon ki egy interjú űrlapot ehhez az álláshoz és akkor ki tudja "
|
||||
"nyomtatni/ meg tudja válaszolni ezt az interjút azokkal a jelentkezőkkel "
|
||||
"akik jelentkeztek erre az állásra."
|
||||
|
||||
#. module: hr_recruitment
|
||||
#: model:ir.ui.menu,name:hr_recruitment.menu_hr_recruitment_recruitment
|
||||
|
@ -284,12 +310,14 @@ msgid ""
|
|||
"Holds the Chatter summary (number of messages, ...). This summary is "
|
||||
"directly in html format in order to be inserted in kanban views."
|
||||
msgstr ""
|
||||
"A chettelés összegzést megállítja (üzenetek száma,...). Ez az összegzés "
|
||||
"direkt HTML formátumú ahhoz hogy beilleszthető legyen a kanban nézetekbe."
|
||||
|
||||
#. module: hr_recruitment
|
||||
#: code:addons/hr_recruitment/hr_recruitment.py:435
|
||||
#, python-format
|
||||
msgid "Warning!"
|
||||
msgstr ""
|
||||
msgstr "Figyelem!"
|
||||
|
||||
#. module: hr_recruitment
|
||||
#: field:hr.recruitment.report,salary_prop:0
|
||||
|
@ -323,7 +351,7 @@ msgstr "Javasolt fizetés"
|
|||
#. module: hr_recruitment
|
||||
#: model:ir.model,name:hr_recruitment.model_hr_recruitment_source
|
||||
msgid "Source of Applicants"
|
||||
msgstr ""
|
||||
msgstr "Jelentkezők forrása"
|
||||
|
||||
#. module: hr_recruitment
|
||||
#: view:hr.recruitment.partner.create:0
|
||||
|
@ -338,12 +366,12 @@ msgstr "Toborzási statisztika"
|
|||
#. module: hr_recruitment
|
||||
#: view:hr.applicant:0
|
||||
msgid "Print interview report"
|
||||
msgstr ""
|
||||
msgstr "Interjú jelentés nyomtatás"
|
||||
|
||||
#. module: hr_recruitment
|
||||
#: view:hr.recruitment.report:0
|
||||
msgid "Hired employees"
|
||||
msgstr ""
|
||||
msgstr "Felvett alkalmazottak"
|
||||
|
||||
#. module: hr_recruitment
|
||||
#: model:ir.model,name:hr_recruitment.model_hr_job
|
||||
|
@ -354,22 +382,22 @@ msgstr "Munkaköri leírás"
|
|||
#: view:hr.applicant:0
|
||||
#: field:hr.applicant,source_id:0
|
||||
msgid "Source"
|
||||
msgstr ""
|
||||
msgstr "Forrás"
|
||||
|
||||
#. module: hr_recruitment
|
||||
#: field:hr.applicant,message_follower_ids:0
|
||||
msgid "Followers"
|
||||
msgstr ""
|
||||
msgstr "Követők"
|
||||
|
||||
#. module: hr_recruitment
|
||||
#: model:hr.recruitment.source,name:hr_recruitment.source_monster
|
||||
msgid "Monster"
|
||||
msgstr ""
|
||||
msgstr "Monster/szörny"
|
||||
|
||||
#. module: hr_recruitment
|
||||
#: model:mail.message.subtype,name:hr_recruitment.mt_applicant_hired
|
||||
msgid "Applicant Hired"
|
||||
msgstr ""
|
||||
msgstr "Felvett jelentkező"
|
||||
|
||||
#. module: hr_recruitment
|
||||
#: field:hr.applicant,email_from:0
|
||||
|
@ -389,6 +417,14 @@ msgid ""
|
|||
" </p>\n"
|
||||
" "
|
||||
msgstr ""
|
||||
"<p class=\"oe_view_nocontent_create\">\n"
|
||||
" Kattintson a felvételi folyamat új szakaszának hozzáadásához.\n"
|
||||
" </p><p>\n"
|
||||
" Itt határozza meg a felvételi folyamatok szakaszait, például:\n"
|
||||
" képzésre felhívás, első interjú, második interjú, elutasított,\n"
|
||||
" felvett.\n"
|
||||
" </p>\n"
|
||||
" "
|
||||
|
||||
#. module: hr_recruitment
|
||||
#: view:hr.recruitment.report:0
|
||||
|
@ -406,6 +442,8 @@ msgid ""
|
|||
"Email alias for this job position. New emails will automatically create new "
|
||||
"applicants for this job position."
|
||||
msgstr ""
|
||||
"e-mail álnév ehhez az állás pozícióhoz. Ide érkező új e-mailek automatikusan "
|
||||
"létrehoznak jelentkezőket erre az állásra."
|
||||
|
||||
#. module: hr_recruitment
|
||||
#: selection:hr.applicant,priority:0
|
||||
|
@ -429,7 +467,7 @@ msgstr "Létrehozás dátuma"
|
|||
#: model:ir.actions.act_window,name:hr_recruitment.action_hr_recruitment_hired_employee
|
||||
#: model:ir.model,name:hr_recruitment.model_hired_employee
|
||||
msgid "Create Employee"
|
||||
msgstr ""
|
||||
msgstr "Alkalmazott létrehozás"
|
||||
|
||||
#. module: hr_recruitment
|
||||
#: view:hr.applicant:0
|
||||
|
@ -441,12 +479,12 @@ msgstr "Elismerés"
|
|||
#. module: hr_recruitment
|
||||
#: model:hr.recruitment.stage,name:hr_recruitment.stage_job1
|
||||
msgid "Initial Qualification"
|
||||
msgstr ""
|
||||
msgstr "Elsődleges végzettség"
|
||||
|
||||
#. module: hr_recruitment
|
||||
#: view:hr.applicant:0
|
||||
msgid "Print Interview"
|
||||
msgstr ""
|
||||
msgstr "Interjú kinyomtatás"
|
||||
|
||||
#. module: hr_recruitment
|
||||
#: view:hr.applicant:0
|
||||
|
@ -465,7 +503,7 @@ msgstr "Második interjú"
|
|||
#. module: hr_recruitment
|
||||
#: model:ir.actions.act_window,name:hr_recruitment.hr_job_stage_act
|
||||
msgid "Recruitment / Applicants Stages"
|
||||
msgstr ""
|
||||
msgstr "Toborzás / Pályázati szakaszok"
|
||||
|
||||
#. module: hr_recruitment
|
||||
#: field:hr.applicant,salary_expected:0
|
||||
|
@ -481,7 +519,7 @@ msgstr "Július"
|
|||
#. module: hr_recruitment
|
||||
#: field:hr.applicant,email_cc:0
|
||||
msgid "Watchers Emails"
|
||||
msgstr ""
|
||||
msgstr "Email örző"
|
||||
|
||||
#. module: hr_recruitment
|
||||
#: view:hr.applicant:0
|
||||
|
@ -492,7 +530,7 @@ msgstr "Pályázók"
|
|||
#: code:addons/hr_recruitment/hr_recruitment.py:351
|
||||
#, python-format
|
||||
msgid "No Subject"
|
||||
msgstr ""
|
||||
msgstr "Nincs tárgy"
|
||||
|
||||
#. module: hr_recruitment
|
||||
#: field:hr.recruitment.report,salary_exp:0
|
||||
|
@ -507,7 +545,7 @@ msgstr "Pályázó"
|
|||
#. module: hr_recruitment
|
||||
#: help:hr.recruitment.stage,sequence:0
|
||||
msgid "Gives the sequence order when displaying a list of stages."
|
||||
msgstr ""
|
||||
msgstr "Sorozati rendet ad a szakaszok lista nézetében."
|
||||
|
||||
#. module: hr_recruitment
|
||||
#: field:hr.applicant,partner_id:0
|
||||
|
@ -517,7 +555,7 @@ msgstr "Kapcsolat"
|
|||
#. module: hr_recruitment
|
||||
#: help:hr.applicant,salary_expected_extra:0
|
||||
msgid "Salary Expected by Applicant, extra advantages"
|
||||
msgstr ""
|
||||
msgstr "A jelentkező által elvárt fizetés, extra előnyök"
|
||||
|
||||
#. module: hr_recruitment
|
||||
#: help:hr.applicant,state:0
|
||||
|
@ -528,6 +566,11 @@ msgid ""
|
|||
"the case needs to be reviewed then the status is set "
|
||||
"to 'Pending'."
|
||||
msgstr ""
|
||||
"Az állapot 'Terv', az ügy létrehozásakor. Ha az ügy "
|
||||
"folyamatban van akkor az állapota 'Nyitott'. Ha az ügy "
|
||||
"elintézve akkor az állapota 'Elvégezve'. Ha az ügyet át "
|
||||
"kell tekinteni akkor az állapota be lesz állítva "
|
||||
"'Függőben'."
|
||||
|
||||
#. module: hr_recruitment
|
||||
#: selection:hr.recruitment.report,month:0
|
||||
|
@ -544,7 +587,7 @@ msgstr "Szakaszok"
|
|||
#. module: hr_recruitment
|
||||
#: view:hr.recruitment.report:0
|
||||
msgid "Draft recruitment"
|
||||
msgstr ""
|
||||
msgstr "Toborzás tervezet"
|
||||
|
||||
#. module: hr_recruitment
|
||||
#: view:hr.applicant:0
|
||||
|
@ -559,12 +602,12 @@ msgstr "Folyamatban"
|
|||
#. module: hr_recruitment
|
||||
#: view:hr.applicant:0
|
||||
msgid "Hire & Create Employee"
|
||||
msgstr ""
|
||||
msgstr "Felvétel & alkalmazott létrehozás"
|
||||
|
||||
#. module: hr_recruitment
|
||||
#: model:mail.message.subtype,description:hr_recruitment.mt_applicant_hired
|
||||
msgid "Applicant hired"
|
||||
msgstr ""
|
||||
msgstr "Jelentkező felvéve"
|
||||
|
||||
#. module: hr_recruitment
|
||||
#: view:hr.applicant:0
|
||||
|
@ -595,17 +638,17 @@ msgstr "December"
|
|||
#: code:addons/hr_recruitment/wizard/hr_recruitment_create_partner_job.py:39
|
||||
#, python-format
|
||||
msgid "A contact is already defined on this job request."
|
||||
msgstr ""
|
||||
msgstr "Ehhez az állás igényléshez már van kapcsolat meghatározva."
|
||||
|
||||
#. module: hr_recruitment
|
||||
#: field:hr.applicant,categ_ids:0
|
||||
msgid "Tags"
|
||||
msgstr ""
|
||||
msgstr "Címkék"
|
||||
|
||||
#. module: hr_recruitment
|
||||
#: model:ir.model,name:hr_recruitment.model_hr_applicant_category
|
||||
msgid "Category of applicant"
|
||||
msgstr ""
|
||||
msgstr "Jelentkező kategóriája"
|
||||
|
||||
#. module: hr_recruitment
|
||||
#: view:hr.recruitment.report:0
|
||||
|
@ -616,7 +659,7 @@ msgstr "Hónap"
|
|||
#. module: hr_recruitment
|
||||
#: view:hr.applicant:0
|
||||
msgid "Answer related job question"
|
||||
msgstr ""
|
||||
msgstr "Kapcsolódó állás kérdés válasza"
|
||||
|
||||
#. module: hr_recruitment
|
||||
#: model:hr.recruitment.stage,name:hr_recruitment.stage_job2
|
||||
|
@ -643,17 +686,17 @@ msgstr "Tárgy"
|
|||
#: view:hired.employee:0
|
||||
#: view:hr.recruitment.partner.create:0
|
||||
msgid "or"
|
||||
msgstr ""
|
||||
msgstr "vagy"
|
||||
|
||||
#. module: hr_recruitment
|
||||
#: model:mail.message.subtype,name:hr_recruitment.mt_applicant_refused
|
||||
msgid "Applicant Refused"
|
||||
msgstr ""
|
||||
msgstr "Jelentkező elutasítva"
|
||||
|
||||
#. module: hr_recruitment
|
||||
#: view:hr.applicant:0
|
||||
msgid "Schedule Meeting"
|
||||
msgstr ""
|
||||
msgstr "Találkozó ütemezése"
|
||||
|
||||
#. module: hr_recruitment
|
||||
#: field:hr.applicant,partner_name:0
|
||||
|
@ -694,7 +737,7 @@ msgstr "Várható fizetések kérelmezőnként"
|
|||
#. module: hr_recruitment
|
||||
#: view:hr.applicant:0
|
||||
msgid "All Initial Jobs"
|
||||
msgstr ""
|
||||
msgstr "Munden elsődleges állás"
|
||||
|
||||
#. module: hr_recruitment
|
||||
#: help:hr.applicant,email_cc:0
|
||||
|
@ -703,11 +746,14 @@ msgid ""
|
|||
"outbound emails for this record before being sent. Separate multiple email "
|
||||
"addresses with a comma"
|
||||
msgstr ""
|
||||
"Ezek az email címek lesznek hozzáadva a CC /Carbon copy,másolat/ mezőhöz "
|
||||
"minden bejövő és kimenő email-hez amit ezzel a feljegyzéssel küld. Több "
|
||||
"email felsorolását vesszővel elválasztva adja meg."
|
||||
|
||||
#. module: hr_recruitment
|
||||
#: model:ir.ui.menu,name:hr_recruitment.menu_hr_recruitment_degree
|
||||
msgid "Degrees"
|
||||
msgstr ""
|
||||
msgstr "Fokozat"
|
||||
|
||||
#. module: hr_recruitment
|
||||
#: field:hr.applicant,date_closed:0
|
||||
|
@ -723,7 +769,7 @@ msgstr "Szakasz meghatározása"
|
|||
#. module: hr_recruitment
|
||||
#: field:hr.recruitment.report,delay_close:0
|
||||
msgid "Avg. Delay to Close"
|
||||
msgstr ""
|
||||
msgstr "Átl. bezárási idő"
|
||||
|
||||
#. module: hr_recruitment
|
||||
#: help:hr.applicant,salary_proposed:0
|
||||
|
@ -749,13 +795,13 @@ msgstr "Státusz"
|
|||
#. module: hr_recruitment
|
||||
#: view:hr.applicant:0
|
||||
msgid "Schedule interview with this applicant"
|
||||
msgstr ""
|
||||
msgstr "Ennek a jelentkezőnek az interjú ütemezése"
|
||||
|
||||
#. module: hr_recruitment
|
||||
#: code:addons/hr_recruitment/hr_recruitment.py:397
|
||||
#, python-format
|
||||
msgid "Applicant <b>created</b>"
|
||||
msgstr ""
|
||||
msgstr "Jelentkező <b>létrehozva</b>"
|
||||
|
||||
#. module: hr_recruitment
|
||||
#: view:hr.applicant:0
|
||||
|
@ -785,7 +831,7 @@ msgstr "Lezárásig hátralévő napok"
|
|||
#. module: hr_recruitment
|
||||
#: field:hr.applicant,message_is_follower:0
|
||||
msgid "Is a Follower"
|
||||
msgstr ""
|
||||
msgstr "Ez egy követő"
|
||||
|
||||
#. module: hr_recruitment
|
||||
#: field:hr.recruitment.report,user_id:0
|
||||
|
@ -807,7 +853,7 @@ msgstr "Aktív"
|
|||
#: view:hr.recruitment.report:0
|
||||
#: field:hr.recruitment.report,nbr:0
|
||||
msgid "# of Applications"
|
||||
msgstr ""
|
||||
msgstr "# Pályázati kiírás"
|
||||
|
||||
#. module: hr_recruitment
|
||||
#: model:ir.actions.act_window,help:hr_recruitment.hr_recruitment_stage_act
|
||||
|
@ -821,6 +867,14 @@ msgid ""
|
|||
" </p>\n"
|
||||
" "
|
||||
msgstr ""
|
||||
"<p class=\"oe_view_nocontent_create\">\n"
|
||||
" Kattintson a toborzás új szakaszának hozzáadásához.\n"
|
||||
" </p><p>\n"
|
||||
" Ne felejtse el részletezni az osztály megadását ha a toborzási "
|
||||
"folyamatai\n"
|
||||
" eltérőek az állással illetően.\n"
|
||||
" </p>\n"
|
||||
" "
|
||||
|
||||
#. module: hr_recruitment
|
||||
#: field:hr.applicant,response:0
|
||||
|
@ -835,12 +889,12 @@ msgstr "Október"
|
|||
#. module: hr_recruitment
|
||||
#: field:hr.config.settings,module_document_ftp:0
|
||||
msgid "Allow the automatic indexation of resumes"
|
||||
msgstr ""
|
||||
msgstr "Engedje meg az önéletrajzok automatikus inexálását"
|
||||
|
||||
#. module: hr_recruitment
|
||||
#: field:hr.applicant,salary_proposed_extra:0
|
||||
msgid "Proposed Salary Extra"
|
||||
msgstr ""
|
||||
msgstr "Javasolt kiegészítő jövedelem"
|
||||
|
||||
#. module: hr_recruitment
|
||||
#: selection:hr.recruitment.report,month:0
|
||||
|
@ -851,17 +905,17 @@ msgstr "Január"
|
|||
#: code:addons/hr_recruitment/wizard/hr_recruitment_create_partner_job.py:56
|
||||
#, python-format
|
||||
msgid "A contact is already existing with the same name."
|
||||
msgstr ""
|
||||
msgstr "Ezzel a névvel már létezik kapcsolat."
|
||||
|
||||
#. module: hr_recruitment
|
||||
#: model:ir.actions.act_window,name:hr_recruitment.hr_recruitment_stage_form_installer
|
||||
msgid "Review Recruitment Stages"
|
||||
msgstr ""
|
||||
msgstr "Toborzási szakaszok felülvizsgálata"
|
||||
|
||||
#. module: hr_recruitment
|
||||
#: view:hr.applicant:0
|
||||
msgid "Contact:"
|
||||
msgstr ""
|
||||
msgstr "Kapcsolat:"
|
||||
|
||||
#. module: hr_recruitment
|
||||
#: view:hr.applicant:0
|
||||
|
@ -882,12 +936,12 @@ msgstr "Felmérés"
|
|||
#. module: hr_recruitment
|
||||
#: view:hired.employee:0
|
||||
msgid "Would you like to create an employee ?"
|
||||
msgstr ""
|
||||
msgstr "Létre akar hozni egy alkalmazottat?"
|
||||
|
||||
#. module: hr_recruitment
|
||||
#: view:hr.applicant:0
|
||||
msgid "Degree:"
|
||||
msgstr ""
|
||||
msgstr "Fok:"
|
||||
|
||||
#. module: hr_recruitment
|
||||
#: view:hr.recruitment.report:0
|
||||
|
@ -901,11 +955,14 @@ msgid ""
|
|||
"forget to specify the department if your recruitment process is different "
|
||||
"according to the job position."
|
||||
msgstr ""
|
||||
"Jelölje, ha a következő állapot egyezik a toborzási folyamatával. Ne "
|
||||
"felejtse az osztály meghatározását ha a toborzási folyamat különbözik a "
|
||||
"betöltendő állástól."
|
||||
|
||||
#. module: hr_recruitment
|
||||
#: view:hr.config.settings:0
|
||||
msgid "Configure"
|
||||
msgstr ""
|
||||
msgstr "Beállítás"
|
||||
|
||||
#. module: hr_recruitment
|
||||
#: model:hr.recruitment.stage,name:hr_recruitment.stage_job4
|
||||
|
@ -920,7 +977,7 @@ msgstr "Cég weboldala"
|
|||
#. module: hr_recruitment
|
||||
#: sql_constraint:hr.recruitment.degree:0
|
||||
msgid "The name of the Degree of Recruitment must be unique!"
|
||||
msgstr ""
|
||||
msgstr "A toborzási fok nevének egyedinek kell lennie!"
|
||||
|
||||
#. module: hr_recruitment
|
||||
#: view:hr.recruitment.report:0
|
||||
|
@ -938,6 +995,7 @@ msgstr "Mégse"
|
|||
#: view:hr.recruitment.partner.create:0
|
||||
msgid "Are you sure you want to create a contact based on this job request ?"
|
||||
msgstr ""
|
||||
"Bizton létre akarja hozni a kapcsolati űrlapot az állás igénylés alapján?"
|
||||
|
||||
#. module: hr_recruitment
|
||||
#: help:hr.config.settings,fetchmail_applicants:0
|
||||
|
@ -946,6 +1004,9 @@ msgid ""
|
|||
"(jobs@mycompany.com),\n"
|
||||
" and create automatically application documents in the system."
|
||||
msgstr ""
|
||||
"Lehetővé teszi a jelentkezőknek, hogy a jelentkezésüket egy e-mail címre "
|
||||
"elküldjék (munka@azönvállalkozása.com),\n"
|
||||
" és automatikus jelentkezési lapot hozzon létre a rendszerben."
|
||||
|
||||
#. module: hr_recruitment
|
||||
#: view:hr.applicant:0
|
||||
|
@ -957,17 +1018,17 @@ msgstr "Folyamatban"
|
|||
#. module: hr_recruitment
|
||||
#: view:hr.applicant:0
|
||||
msgid "Subject / Applicant"
|
||||
msgstr ""
|
||||
msgstr "Tárgy / Jelentkező"
|
||||
|
||||
#. module: hr_recruitment
|
||||
#: help:hr.recruitment.degree,sequence:0
|
||||
msgid "Gives the sequence order when displaying a list of degrees."
|
||||
msgstr ""
|
||||
msgstr "Sorrendet ad a fokozatok listakénti megjelenítésénél."
|
||||
|
||||
#. module: hr_recruitment
|
||||
#: model:mail.message.subtype,description:hr_recruitment.mt_stage_changed
|
||||
msgid "Stage changed"
|
||||
msgstr ""
|
||||
msgstr "Szakasz megváltoztatva"
|
||||
|
||||
#. module: hr_recruitment
|
||||
#: view:hr.applicant:0
|
||||
|
@ -986,17 +1047,17 @@ msgstr "Toborzás elemzése"
|
|||
#. module: hr_recruitment
|
||||
#: view:hired.employee:0
|
||||
msgid "Create New Employee"
|
||||
msgstr ""
|
||||
msgstr "Új alkalmazott létrehozása"
|
||||
|
||||
#. module: hr_recruitment
|
||||
#: model:hr.recruitment.source,name:hr_recruitment.source_linkedin
|
||||
msgid "LinkedIn"
|
||||
msgstr ""
|
||||
msgstr "LinkedIn"
|
||||
|
||||
#. module: hr_recruitment
|
||||
#: model:mail.message.subtype,name:hr_recruitment.mt_job_new_applicant
|
||||
msgid "New Applicant"
|
||||
msgstr ""
|
||||
msgstr "Új pályázó"
|
||||
|
||||
#. module: hr_recruitment
|
||||
#: model:ir.model,name:hr_recruitment.model_hr_recruitment_stage
|
||||
|
@ -1006,7 +1067,7 @@ msgstr "Toborzási szakasz"
|
|||
#. module: hr_recruitment
|
||||
#: view:hr.applicant:0
|
||||
msgid "Cases By Stage and Estimates"
|
||||
msgstr ""
|
||||
msgstr "Szakasz és lehetőségenkénti esetek"
|
||||
|
||||
#. module: hr_recruitment
|
||||
#: view:hr.applicant:0
|
||||
|
@ -1026,12 +1087,12 @@ msgstr "Interjú"
|
|||
#. module: hr_recruitment
|
||||
#: field:hr.recruitment.source,name:0
|
||||
msgid "Source Name"
|
||||
msgstr ""
|
||||
msgstr "Forrásnév"
|
||||
|
||||
#. module: hr_recruitment
|
||||
#: view:hr.applicant:0
|
||||
msgid "Day(s)"
|
||||
msgstr ""
|
||||
msgstr "Nap(ok)"
|
||||
|
||||
#. module: hr_recruitment
|
||||
#: field:hr.applicant,description:0
|
||||
|
@ -1041,7 +1102,7 @@ msgstr "Leírás"
|
|||
#. module: hr_recruitment
|
||||
#: model:mail.message.subtype,name:hr_recruitment.mt_stage_changed
|
||||
msgid "Stage Changed"
|
||||
msgstr ""
|
||||
msgstr "Szint megváltoztatva"
|
||||
|
||||
#. module: hr_recruitment
|
||||
#: selection:hr.recruitment.report,month:0
|
||||
|
@ -1061,7 +1122,7 @@ msgstr ""
|
|||
#. module: hr_recruitment
|
||||
#: field:hr.recruitment.stage,fold:0
|
||||
msgid "Hide in views if empty"
|
||||
msgstr ""
|
||||
msgstr "Ne mutassa a nézetekben, ha üres"
|
||||
|
||||
#. module: hr_recruitment
|
||||
#: help:hr.config.settings,module_document_ftp:0
|
||||
|
@ -1071,6 +1132,11 @@ msgid ""
|
|||
"knowledge management module in order to allow you to search using specific "
|
||||
"keywords through the content of all documents (PDF, .DOCx...)"
|
||||
msgstr ""
|
||||
"Az összes jelentkezőhöz tartozó Önéletrajz CV és motivációs levél kezelése.\n"
|
||||
" Ez a document_ftp modult telepíti. Ez a knowledge management "
|
||||
"- tudás kezelés modult telepíti ahhoz, hogy lehetővé tegye az egyéni "
|
||||
"kulcsszó alapján való keresést az összes dokumentum tartalma alapján (PDF, "
|
||||
".DOCx...)"
|
||||
|
||||
#. module: hr_recruitment
|
||||
#: selection:hr.applicant,state:0
|
||||
|
@ -1086,38 +1152,38 @@ msgstr "Elutasított"
|
|||
#: selection:hr.recruitment.report,state:0
|
||||
#: selection:hr.recruitment.stage,state:0
|
||||
msgid "Hired"
|
||||
msgstr ""
|
||||
msgstr "Felvett"
|
||||
|
||||
#. module: hr_recruitment
|
||||
#: field:hr.applicant,reference:0
|
||||
msgid "Referred By"
|
||||
msgstr ""
|
||||
msgstr "Előterjesztette"
|
||||
|
||||
#. module: hr_recruitment
|
||||
#: view:hr.applicant:0
|
||||
msgid "Departement:"
|
||||
msgstr ""
|
||||
msgstr "Osztály:"
|
||||
|
||||
#. module: hr_recruitment
|
||||
#: selection:hr.applicant,priority:0
|
||||
#: selection:hr.recruitment.report,priority:0
|
||||
msgid "On Average"
|
||||
msgstr ""
|
||||
msgstr "Átlagon"
|
||||
|
||||
#. module: hr_recruitment
|
||||
#: model:ir.model,name:hr_recruitment.model_hr_recruitment_degree
|
||||
msgid "Degree of Recruitment"
|
||||
msgstr ""
|
||||
msgstr "Toborzás mértéke"
|
||||
|
||||
#. module: hr_recruitment
|
||||
#: field:hr.recruitment.report,salary_prop_avg:0
|
||||
msgid "Avg. Proposed Salary"
|
||||
msgstr ""
|
||||
msgstr "Ajánlott kereset átlaga"
|
||||
|
||||
#. module: hr_recruitment
|
||||
#: view:hr.applicant:0
|
||||
msgid "Open Jobs"
|
||||
msgstr ""
|
||||
msgstr "Nyitott állások"
|
||||
|
||||
#. module: hr_recruitment
|
||||
#: selection:hr.recruitment.report,month:0
|
||||
|
@ -1145,17 +1211,17 @@ msgstr "November"
|
|||
#. module: hr_recruitment
|
||||
#: field:hr.recruitment.report,salary_exp_avg:0
|
||||
msgid "Avg. Expected Salary"
|
||||
msgstr ""
|
||||
msgstr "Kívánt kereset átl."
|
||||
|
||||
#. module: hr_recruitment
|
||||
#: view:hr.recruitment.report:0
|
||||
msgid "Avg Expected Salary"
|
||||
msgstr ""
|
||||
msgstr "Kívánt kereset átlaga"
|
||||
|
||||
#. module: hr_recruitment
|
||||
#: model:ir.model,name:hr_recruitment.model_hr_recruitment_partner_create
|
||||
msgid "Create Partner from job application"
|
||||
msgstr ""
|
||||
msgstr "Partner létrehozás az állás jelentkezésből"
|
||||
|
||||
#. module: hr_recruitment
|
||||
#: help:hr.applicant,email_from:0
|
||||
|
@ -1165,42 +1231,42 @@ msgstr "Ezek az emberek fogják megkapni az e-mailt."
|
|||
#. module: hr_recruitment
|
||||
#: field:hr.job,alias_id:0
|
||||
msgid "Alias"
|
||||
msgstr ""
|
||||
msgstr "Álnév"
|
||||
|
||||
#. module: hr_recruitment
|
||||
#: view:hr.recruitment.report:0
|
||||
msgid "Pending recruitment"
|
||||
msgstr ""
|
||||
msgstr "Eldöntetlen toborzás"
|
||||
|
||||
#. module: hr_recruitment
|
||||
#: view:hr.applicant:0
|
||||
msgid "Contract"
|
||||
msgstr ""
|
||||
msgstr "Szerződés"
|
||||
|
||||
#. module: hr_recruitment
|
||||
#: field:hr.applicant,message_summary:0
|
||||
msgid "Summary"
|
||||
msgstr ""
|
||||
msgstr "Összegzés"
|
||||
|
||||
#. module: hr_recruitment
|
||||
#: help:hr.applicant,message_ids:0
|
||||
msgid "Messages and communication history"
|
||||
msgstr ""
|
||||
msgstr "Üzenetek és kommunikáció történet"
|
||||
|
||||
#. module: hr_recruitment
|
||||
#: model:mail.message.subtype,description:hr_recruitment.mt_applicant_refused
|
||||
msgid "Applicant refused"
|
||||
msgstr ""
|
||||
msgstr "Jelentkező elutasítva"
|
||||
|
||||
#. module: hr_recruitment
|
||||
#: field:hr.recruitment.stage,department_id:0
|
||||
msgid "Specific to a Department"
|
||||
msgstr ""
|
||||
msgstr "Osztályhoz kötődő"
|
||||
|
||||
#. module: hr_recruitment
|
||||
#: view:hr.recruitment.report:0
|
||||
msgid "In progress recruitment"
|
||||
msgstr ""
|
||||
msgstr "Folyamatban lévő toborzás"
|
||||
|
||||
#. module: hr_recruitment
|
||||
#: field:hr.recruitment.degree,sequence:0
|
||||
|
@ -1211,17 +1277,17 @@ msgstr "Sorszám"
|
|||
#. module: hr_recruitment
|
||||
#: model:hr.recruitment.degree,name:hr_recruitment.degree_bachelor
|
||||
msgid "Bachelor Degree"
|
||||
msgstr ""
|
||||
msgstr "Tudományos fokozat"
|
||||
|
||||
#. module: hr_recruitment
|
||||
#: view:hr.applicant:0
|
||||
msgid "Unassigned Recruitments"
|
||||
msgstr ""
|
||||
msgstr "Kijelöletlen toborzások"
|
||||
|
||||
#. module: hr_recruitment
|
||||
#: model:ir.model,name:hr_recruitment.model_hr_config_settings
|
||||
msgid "hr.config.settings"
|
||||
msgstr ""
|
||||
msgstr "hr.config.settings"
|
||||
|
||||
#. module: hr_recruitment
|
||||
#: help:hr.recruitment.stage,state:0
|
||||
|
@ -1231,16 +1297,20 @@ msgid ""
|
|||
"related to the status 'Close', when your document reach this stage, it will "
|
||||
"be automatically closed."
|
||||
msgstr ""
|
||||
"A szakasszal összefüggő állapot. A dokumentuma állapota automatikusan "
|
||||
"változik a kiválasztott szakasz szerint. Például, egy szakasz a 'Lezárt' "
|
||||
"állapothoz tartozik, ha a dokumentum eléri ezt a szakaszt, akkor "
|
||||
"automatikusan le lesz zárva."
|
||||
|
||||
#. module: hr_recruitment
|
||||
#: help:hr.applicant,salary_proposed_extra:0
|
||||
msgid "Salary Proposed by the Organisation, extra advantages"
|
||||
msgstr ""
|
||||
msgstr "Fizetés a szervezet, extra előny által javasolva"
|
||||
|
||||
#. module: hr_recruitment
|
||||
#: help:hr.recruitment.report,delay_close:0
|
||||
msgid "Number of Days to close the project issue"
|
||||
msgstr ""
|
||||
msgstr "Az ügy lezárásáig használt napok száma."
|
||||
|
||||
#. module: hr_recruitment
|
||||
#: selection:hr.recruitment.report,state:0
|
||||
|
@ -1250,12 +1320,12 @@ msgstr "Nyitott"
|
|||
#. module: hr_recruitment
|
||||
#: view:board.board:0
|
||||
msgid "Applications to be Processed"
|
||||
msgstr ""
|
||||
msgstr "Jelentkezések feldolgozásra"
|
||||
|
||||
#. module: hr_recruitment
|
||||
#: view:hr.applicant:0
|
||||
msgid "Schedule Interview"
|
||||
msgstr ""
|
||||
msgstr "Interjú ütemezés"
|
||||
|
||||
#~ msgid "# of Cases"
|
||||
#~ msgstr "Igények száma"
|
||||
|
|
|
@ -9,7 +9,6 @@
|
|||
</record>
|
||||
|
||||
<record id="hr.employee" model="hr.employee">
|
||||
<field name="product_id" ref="product.product_product_consultant"/>
|
||||
<field name="journal_id" ref="analytic_journal"/>
|
||||
</record>
|
||||
|
||||
|
|
|
@ -372,12 +372,25 @@ class lunch_order_line(osv.Model):
|
|||
cash_ids = [cash.id for cash in order_line.cashmove]
|
||||
cashmove_ref.unlink(cr, uid, cash_ids, context=context)
|
||||
return self._update_order_lines(cr, uid, ids, context=context)
|
||||
|
||||
def _get_line_order_ids(self, cr, uid, ids, context=None):
|
||||
"""
|
||||
return the list of lunch.order.lines ids to which belong the lunch.order 'ids'
|
||||
"""
|
||||
result = set()
|
||||
for lunch_order in self.browse(cr, uid, ids, context=context):
|
||||
for lines in lunch_order.order_line_ids:
|
||||
result.add(lines.id)
|
||||
return list(result)
|
||||
|
||||
_columns = {
|
||||
'name': fields.related('product_id', 'name', readonly=True),
|
||||
'order_id': fields.many2one('lunch.order', 'Order', ondelete='cascade'),
|
||||
'product_id': fields.many2one('lunch.product', 'Product', required=True),
|
||||
'date': fields.related('order_id', 'date', type='date', string="Date", readonly=True, store=True),
|
||||
'date': fields.related('order_id', 'date', type='date', string="Date", readonly=True, store={
|
||||
'lunch.order': (_get_line_order_ids, ['date'], 10),
|
||||
'lunch.order.line': (lambda self, cr, uid, ids, ctx: ids, [], 10),
|
||||
}),
|
||||
'supplier': fields.related('product_id', 'supplier', type='many2one', relation='res.partner', string="Supplier", readonly=True, store=True),
|
||||
'user_id': fields.related('order_id', 'user_id', type='many2one', relation='res.users', string='User', readonly=True, store=True),
|
||||
'note': fields.text('Note'),
|
||||
|
|
|
@ -157,7 +157,7 @@ class mail_mail(osv.Model):
|
|||
:param browse_record partner: specific recipient partner
|
||||
"""
|
||||
if force or (not mail.subject and mail.model and mail.res_id):
|
||||
return '%s posted on %s' % (mail.author_id.name, mail.record_name)
|
||||
return 'Re: %s' % (mail.record_name)
|
||||
return mail.subject
|
||||
|
||||
def send_get_mail_body(self, cr, uid, mail, partner=None, context=None):
|
||||
|
|
|
@ -592,7 +592,7 @@ class mail_thread(osv.AbstractModel):
|
|||
|
||||
thread_id = False
|
||||
for model, thread_id, custom_values, user_id in routes:
|
||||
if self._name != model:
|
||||
if self._name == 'mail.thread':
|
||||
context.update({'thread_model': model})
|
||||
if model:
|
||||
model_pool = self.pool.get(model)
|
||||
|
@ -772,7 +772,7 @@ class mail_thread(osv.AbstractModel):
|
|||
if author_ids:
|
||||
msg_dict['author_id'] = author_ids[0]
|
||||
else:
|
||||
msg_dict['email_from'] = message.get('from')
|
||||
msg_dict['email_from'] = decode(message.get('from'))
|
||||
partner_ids = self._message_find_partners(cr, uid, message, ['To', 'Cc'], context=context)
|
||||
msg_dict['partner_ids'] = [(4, partner_id) for partner_id in partner_ids]
|
||||
|
||||
|
@ -883,7 +883,12 @@ class mail_thread(osv.AbstractModel):
|
|||
if isinstance(thread_id, (list, tuple)):
|
||||
thread_id = thread_id and thread_id[0]
|
||||
mail_message = self.pool.get('mail.message')
|
||||
model = context.get('thread_model', self._name) if thread_id else False
|
||||
|
||||
# if we're processing a message directly coming from the gateway, the destination model was
|
||||
# set in the context.
|
||||
model = False
|
||||
if thread_id:
|
||||
model = context.get('thread_model', self._name) if self._name == 'mail.thread' else self._name
|
||||
|
||||
attachment_ids = kwargs.pop('attachment_ids', [])
|
||||
for name, content in attachments:
|
||||
|
@ -961,13 +966,12 @@ class mail_thread(osv.AbstractModel):
|
|||
mail_message_obj = self.pool.get('mail.message')
|
||||
ir_attachment = self.pool.get('ir.attachment')
|
||||
|
||||
# 1.A.1: add recipients of parent message
|
||||
# 1.A.1: add recipients of parent message (# TDE FIXME HACK: mail.thread -> private message)
|
||||
partner_ids = set([])
|
||||
if parent_id:
|
||||
if parent_id and self._name == 'mail.thread':
|
||||
parent_message = mail_message_obj.browse(cr, uid, parent_id, context=context)
|
||||
partner_ids |= set([(4, partner.id) for partner in parent_message.partner_ids])
|
||||
# TDE FIXME HACK: mail.thread -> private message
|
||||
if self._name == 'mail.thread' and parent_message.author_id.id:
|
||||
if parent_message.author_id.id:
|
||||
partner_ids.add((4, parent_message.author_id.id))
|
||||
|
||||
# 1.A.2: add specified recipients
|
||||
|
|
|
@ -206,21 +206,23 @@ openerp_mail_followers = function(session, mail) {
|
|||
|
||||
/** Fetch subtypes, only if current user is follower */
|
||||
fetch_subtypes: function () {
|
||||
var self = this;
|
||||
var subtype_list_ul = this.$('.oe_subtype_list').empty();
|
||||
if (! this.message_is_follower) return;
|
||||
var context = new session.web.CompoundContext(this.build_context(), {});
|
||||
this.ds_model.call('message_get_subscription_data', [[this.view.datarecord.id], context]).then(this.proxy('display_subtypes'));
|
||||
var id = this.view.datarecord.id;
|
||||
this.ds_model.call('message_get_subscription_data', [[id], new session.web.CompoundContext(this.build_context(), {})])
|
||||
.then(function (data) {self.display_subtypes(data, id);});
|
||||
},
|
||||
|
||||
/** Display subtypes: {'name': default, followed} */
|
||||
display_subtypes:function (data) {
|
||||
display_subtypes:function (data, id) {
|
||||
var self = this;
|
||||
var subtype_list_ul = this.$('.oe_subtype_list');
|
||||
var records = [];
|
||||
var nb_subtype = 0;
|
||||
subtype_list_ul.empty();
|
||||
if (this.view.datarecord.id) {
|
||||
records = data[this.view.datarecord.id].message_subtype_data;
|
||||
if (data[id]) {
|
||||
records = data[id].message_subtype_data;
|
||||
}
|
||||
_(records).each(function (record) {nb_subtype++;});
|
||||
if (nb_subtype > 1) {
|
||||
|
|
|
@ -339,7 +339,7 @@ class test_mail(TestMailBase):
|
|||
|
||||
# Mail data
|
||||
_subject = 'Pigs'
|
||||
_mail_subject = '%s posted on %s' % (user_raoul.name, group_pigs.name)
|
||||
_mail_subject = 'Re: %s' % (group_pigs.name)
|
||||
_body1 = '<p>Pigs rules</p>'
|
||||
_mail_body1 = '<p>Pigs rules</p>\n<div><p>Raoul</p></div>\n'
|
||||
_mail_bodyalt1 = 'Pigs rules\nRaoul\n'
|
||||
|
|
|
@ -56,7 +56,7 @@ class invite_wizard(osv.osv_memory):
|
|||
document = model_obj.browse(cr, uid, wizard.res_id, context=context)
|
||||
|
||||
# filter partner_ids to get the new followers, to avoid sending email to already following partners
|
||||
new_follower_ids = [p.id for p in wizard.partner_ids if p.id not in document.message_follower_ids]
|
||||
new_follower_ids = [p.id for p in wizard.partner_ids if p not in document.message_follower_ids]
|
||||
model_obj.message_subscribe(cr, uid, [wizard.res_id], new_follower_ids, context=context)
|
||||
|
||||
# send an email
|
||||
|
|
|
@ -7,6 +7,7 @@
|
|||
id="base.marketing_menu"
|
||||
groups="marketing.group_marketing_user,marketing.group_marketing_manager"
|
||||
sequence="85"/>
|
||||
|
||||
<record id="view_crm_lead_form" model="ir.ui.view">
|
||||
<field name="name">crm.lead.inherit.form</field>
|
||||
<field name="model">crm.lead</field>
|
||||
|
@ -14,6 +15,7 @@
|
|||
<field name="arch" type="xml">
|
||||
<xpath expr="//group[@name='categorization']" position="attributes">
|
||||
<attribute name="string">Marketing</attribute>
|
||||
<attribute name="groups"></attribute>
|
||||
</xpath>
|
||||
<xpath expr="//field[@name='company_id']" position="after">
|
||||
<field name="type_id"/>
|
||||
|
@ -21,6 +23,7 @@
|
|||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="view_crm_opportunity_form" model="ir.ui.view">
|
||||
<field name="name">crm.lead.inherit.form</field>
|
||||
<field name="model">crm.lead</field>
|
||||
|
|
|
@ -38,7 +38,6 @@
|
|||
<field name="name"/>
|
||||
<field name="categ_id" invisible="1"/>
|
||||
<field name="type" invisible="1"/>
|
||||
<field name="variants" groups="product.group_product_variant"/>
|
||||
<field name="uom_id" string="Unit of Measure" groups="product.group_uom"/>
|
||||
<field name="qty_available"/>
|
||||
<field name="virtual_available"/>
|
||||
|
@ -90,11 +89,6 @@
|
|||
<field name="ean13" placeholder="e.g. 5901234123457"/>
|
||||
</div>
|
||||
</group>
|
||||
<group>
|
||||
<field groups="product.group_product_variant" name="variants"/>
|
||||
<field name="price_margin" groups="product.group_product_variant"/>
|
||||
<field name="price_extra" groups="product.group_product_variant"/>
|
||||
</group>
|
||||
</group>
|
||||
<field name="description" placeholder="describe the product characteristics..."/>
|
||||
</page>
|
||||
|
@ -615,6 +609,7 @@
|
|||
</field>
|
||||
</record>
|
||||
|
||||
<!-- Variants -->
|
||||
<record id="product_variant_form_view" model="ir.ui.view">
|
||||
<field name="name">product.variant.form</field>
|
||||
<field name="model">product.product</field>
|
||||
|
@ -623,7 +618,7 @@
|
|||
<group col="4">
|
||||
<field name="product_tmpl_id"/>
|
||||
<field name="active"/>
|
||||
<field name="variants"/>
|
||||
<field name="variants" required="1"/>
|
||||
<field name="default_code"/>
|
||||
<field name="price_margin"/>
|
||||
<field name="price_extra"/>
|
||||
|
@ -631,22 +626,53 @@
|
|||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="product_variant_tree_view" model="ir.ui.view">
|
||||
<field name="name">product.variant.tree</field>
|
||||
<field name="model">product.product</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Product Variant">
|
||||
<field name="product_tmpl_id"/>
|
||||
<field name="active"/>
|
||||
<field name="variants"/>
|
||||
<field name="default_code"/>
|
||||
<field name="price_margin"/>
|
||||
<field name="price_extra"/>
|
||||
<field name="company_id" invisible="1"/>
|
||||
<field name="type" invisible="1"/>
|
||||
<field name="uom_id" invisible="1"/>
|
||||
<field name="categ_id" invisible="1"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
<record id="product_variant_action" model="ir.actions.act_window">
|
||||
<field name="name">Product Variants</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<!--<field name="domain">[('variants','<>', False)]</field>-->
|
||||
<field name="res_model">product.product</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,form,kanban</field>
|
||||
<field name="view_id" ref="product_variant_tree_view"/>
|
||||
<field name="search_view_id" ref="product_search_form_view"/>
|
||||
<field name="help" type="html">
|
||||
<p class="oe_view_nocontent_create">
|
||||
Click to define a new variant of product.
|
||||
</p>
|
||||
</field>
|
||||
</record>
|
||||
<record id="tree_view_product_variant" model="ir.actions.act_window.view">
|
||||
<field name="sequence" eval="10"/>
|
||||
<field name="view_mode">tree</field>
|
||||
<field name="view_id" ref="product_variant_tree_view"/>
|
||||
<field name="act_window_id" ref="product_variant_action"/>
|
||||
</record>
|
||||
<record id="form_view_product_variant" model="ir.actions.act_window.view">
|
||||
<field name="sequence" eval="20"/>
|
||||
<field name="view_mode">form</field>
|
||||
<field name="view_id" ref="product_variant_form_view"/>
|
||||
<field name="act_window_id" ref="product_variant_action"/>
|
||||
</record>
|
||||
<menuitem action="product.product_variant_action" id="product.menu_variant_product" parent="base.menu_product" sequence="100" groups="product.group_product_variant"/>
|
||||
|
||||
<!-- templates -->
|
||||
<record id="product_template_tree_view" model="ir.ui.view">
|
||||
<field name="name">product.template.product.tree</field>
|
||||
<field name="model">product.template</field>
|
||||
|
|
|
@ -1,117 +0,0 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
# published by the Free Software Foundation, either version 3 of the
|
||||
# License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
import datetime
|
||||
from openerp.report.interface import report_rml
|
||||
from openerp.report.interface import toxml
|
||||
from openerp import pooler
|
||||
from openerp.osv import osv
|
||||
import datetime
|
||||
|
||||
class report_custom(report_rml):
|
||||
|
||||
def create_xml(self, cr, uid, ids, data, context):
|
||||
pool = pooler.get_pool(cr.dbname)
|
||||
|
||||
price_list_id = data['form']['price_list']
|
||||
|
||||
product_categ_id =pool.get('product.category').search(cr, uid, [])
|
||||
currency = pool.get('product.pricelist').read(cr, uid, [price_list_id], ['currency_id','name'])[0]
|
||||
|
||||
|
||||
qty =[]
|
||||
|
||||
for i in range(1,6):
|
||||
q = 'qty%d'%i
|
||||
if data['form'][q]:
|
||||
qty.append(data['form'][q])
|
||||
|
||||
if not qty:
|
||||
qty.append(1)
|
||||
|
||||
product_xml = []
|
||||
cols = ''
|
||||
cols = cols+'6cm'
|
||||
title ='<title name=" Description " number="0" />'
|
||||
i=1
|
||||
for q in qty:
|
||||
cols = cols+',2.5cm'
|
||||
if q==1:
|
||||
title+='<title name="%d unit" number="%d"/>'%(q,i)
|
||||
else:
|
||||
title+='<title name="%d units" number="%d"/>'%(q,i)
|
||||
i+=1
|
||||
date = datetime.date.today()
|
||||
str_date=date.strftime("%d/%m/%Y")
|
||||
product_xml.append('<cols>'+cols+'</cols>')
|
||||
product_xml.append('<pricelist> %s </pricelist>'%currency['name'])
|
||||
product_xml.append('<currency> %s </currency>'%currency['currency_id'][1])
|
||||
product_xml.append('<date> %s </date>'%str_date)
|
||||
product_xml.append("<product>")
|
||||
|
||||
for p_categ_id in product_categ_id:
|
||||
product_ids = pool.get('product.product').search(cr, uid, [('id','in',ids),('categ_id','=',p_categ_id)])
|
||||
if product_ids:
|
||||
categ_name = pool.get('product.category').read(cr, uid, [p_categ_id], ['name'])
|
||||
products = pool.get('product.product').read(cr, uid, product_ids, ['id','name','code'])
|
||||
pro = []
|
||||
i=0
|
||||
pro.append('<pro name="%s" categ="true">' % (categ_name[0]['name']))
|
||||
temp = []
|
||||
for q in qty:
|
||||
temp.append('<price name=" " />')
|
||||
pro.extend(temp)
|
||||
pro.append('</pro>')
|
||||
for x in products:
|
||||
#Replacement of special characters with their code html for allowing reporting - Edited by Hasa
|
||||
x['name'] = x['name'].replace("&","&")
|
||||
x['name'] = x['name'].replace("\"",""")
|
||||
if x['code']:
|
||||
pro.append('<pro name="[%s] %s" >' % (x['code'], x['name']))
|
||||
else:
|
||||
pro.append('<pro name="%s" >' % (x['name']))
|
||||
temp = []
|
||||
for q in qty:
|
||||
price_dict = pool.get('product.pricelist').price_get(cr, uid, [price_list_id], x['id'], q, context=context)
|
||||
if price_dict[price_list_id]:
|
||||
price = price_dict[price_list_id]
|
||||
else:
|
||||
res = pool.get('product.product').read(cr, uid, [x['id']])
|
||||
price = res[0]['list_price']
|
||||
|
||||
temp.append('<price name="%.2f" />'%(price))
|
||||
i+=1
|
||||
pro.extend(temp)
|
||||
pro.append('</pro>')
|
||||
product_xml.extend(pro)
|
||||
|
||||
product_xml.append('</product>')
|
||||
|
||||
xml = '''<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<report>
|
||||
%s
|
||||
</report>
|
||||
''' % (title+'\n'.join(product_xml))
|
||||
return self.post_process_xml_data(cr, uid, xml, context)
|
||||
|
||||
report_custom('report.pricelist.pricelist', 'product.product','','addons/product_pricelist_print/report/product_price.xsl')
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
|
@ -1,104 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<xsl:stylesheet version="1.0"
|
||||
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
|
||||
xmlns:fo="http://www.w3.org/1999/XSL/Format">
|
||||
<xsl:import href="../../base/report/corporate_defaults.xsl" />
|
||||
<xsl:template match="/">
|
||||
<xsl:call-template name="rml" />
|
||||
</xsl:template>
|
||||
|
||||
|
||||
<xsl:template name="rml" match="/">
|
||||
<document filename="example.pdf">
|
||||
<template>
|
||||
<pageTemplate id="first">
|
||||
<frame id="first" x1="1cm" y1="2.5cm" width="19.0cm" height="23.0cm"/>
|
||||
<pageGraphics>
|
||||
<xsl:apply-imports />
|
||||
</pageGraphics>
|
||||
</pageTemplate>
|
||||
</template>
|
||||
<stylesheet>
|
||||
<paraStyle name="normal" fontName="Times-Roman" fontSize="12" />
|
||||
<paraStyle name="title" fontName="Times-Bold" fontSize="15" alignment="center" />
|
||||
<paraStyle name="table_title" fontName="Times-Bold" fontSize="12" alignment="center" />
|
||||
<paraStyle name="product1" fontName="Times-Roman" fontSize="8" />
|
||||
<paraStyle name="categ" fontName="Times-Bold" fontSize="10" textColor="blue"/>
|
||||
<paraStyle name="price" fontName="Times-Roman" fontSize="8" alignment="right" />
|
||||
|
||||
<blockTableStyle id="main_title">
|
||||
<blockAlignment value="CENTER" />
|
||||
<lineStyle kind="GRID" colorName="black"/>
|
||||
<blockBackground colorName="#e6e6e6" />
|
||||
<blockValign value="TOP"/>
|
||||
</blockTableStyle>
|
||||
|
||||
<blockTableStyle id="product">
|
||||
<blockAlignment value="LEFT" />
|
||||
<xsl:for-each select="/report/title">
|
||||
<xsl:variable name="col" select="attribute::number" />
|
||||
<blockBackground>
|
||||
<xsl:attribute name="colorName">#e6e6e6</xsl:attribute>
|
||||
<xsl:attribute name="start">
|
||||
<xsl:value-of select="$col" />
|
||||
<xsl:text>,0</xsl:text>
|
||||
</xsl:attribute>
|
||||
<xsl:attribute name="stop">
|
||||
<xsl:value-of select="$col" />
|
||||
<xsl:text>,0</xsl:text>
|
||||
</xsl:attribute>
|
||||
</blockBackground>
|
||||
</xsl:for-each>
|
||||
<lineStyle kind="LINEABOVE" colorName="black" start="0,0" stop="-1,-1" />
|
||||
<lineStyle kind="LINEBEFORE" colorName="black" start="0,0" stop="-1,-1"/>
|
||||
<lineStyle kind="LINEAFTER" colorName="black" start="-1,0" stop="-1,-1"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="black" start="0,-1" stop="-1,-1"/>
|
||||
<blockValign value="TOP"/>
|
||||
</blockTableStyle>
|
||||
</stylesheet >
|
||||
<story>
|
||||
<xsl:call-template name="story"/>
|
||||
</story>
|
||||
</document>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template name="story">
|
||||
<spacer length="1cm" />
|
||||
<blockTable rowHeights="1cm">
|
||||
<xsl:attribute name="style">main_title</xsl:attribute>
|
||||
<tr> <td> <para style="title" t="1">Products Price List</para> </td> </tr>
|
||||
</blockTable>
|
||||
<spacer length="1cm" />
|
||||
<para style="normal" t="1">Price List Name :<xsl:value-of select="report/pricelist" /></para>
|
||||
<para style="normal" t="1">Currency : <xsl:value-of select="report/currency" /></para>
|
||||
<para style="normal" t="1">Printing Date : <xsl:value-of select="report/date" /></para>
|
||||
<spacer length="0.7cm" />
|
||||
<blockTable>
|
||||
<xsl:attribute name="style">product</xsl:attribute>
|
||||
<xsl:attribute name="colWidths"><xsl:value-of select="report/cols" /></xsl:attribute>
|
||||
<tr>
|
||||
<xsl:for-each select="report/title" >
|
||||
<td><para style="table_title"> <xsl:value-of select="attribute::name" /> </para></td>
|
||||
</xsl:for-each>
|
||||
</tr>
|
||||
|
||||
<xsl:for-each select="report/product/pro" >
|
||||
<tr>
|
||||
<xsl:choose>
|
||||
<xsl:when test="@categ">
|
||||
<td> <para style="categ"><xsl:value-of select="attribute::name" /> </para> </td>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<td> <para style="product1"> <xsl:value-of select="attribute::name" /> </para> </td>
|
||||
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
<xsl:for-each select="price" >
|
||||
<td><para style="price"> <xsl:value-of select="attribute::name" /> </para> </td>
|
||||
</xsl:for-each>
|
||||
</tr>
|
||||
</xsl:for-each>
|
||||
</blockTable>
|
||||
</xsl:template>
|
||||
|
||||
</xsl:stylesheet>
|
|
@ -58,7 +58,7 @@
|
|||
<field name="arch" type="xml">
|
||||
<form string="Issue" version="7.0">
|
||||
<header>
|
||||
<button name="case_close" string="Done" type="object"
|
||||
<button name="case_close" string="Done" type="object"
|
||||
states="open" groups="base.group_user"/>
|
||||
<button name="case_close" string="Done" type="object"
|
||||
states="draft,pending" groups="base.group_user"/>
|
||||
|
@ -129,11 +129,11 @@
|
|||
<tree string="Issue Tracker Tree" fonts="bold:message_unread==True" colors="black:state=='open';blue:state=='pending';grey:state in ('cancel', 'done')">
|
||||
<field name="message_unread" invisible="1"/>
|
||||
<field name="id"/>
|
||||
<field name="create_date" groups="base.group_no_one"/>
|
||||
<field name="name"/>
|
||||
<field name="partner_id"/>
|
||||
<field name="project_id"/>
|
||||
<field name="priority" string="Priority" groups="base.group_user"/>
|
||||
<field name="create_date"/>
|
||||
<field name="version_id" widget="selection"/>
|
||||
<field name="user_id"/>
|
||||
<field name="progress" widget="progressbar" attrs="{'invisible':[('task_id','=',False)]}"/>
|
||||
|
@ -157,7 +157,7 @@
|
|||
<filter string="New" icon="terp-document-new" domain="[('state','=','draft')]" help="New Issues"/>
|
||||
<filter string="To Do" domain="[('state','=','open')]" help="To Do Issues" icon="terp-check"/>
|
||||
<separator/>
|
||||
<filter string="Unassigned Issues" domain="[('user_id','=',False)]" help="Unassigned Issues" icon="terp-personal-" />
|
||||
<filter string="Unassigned Issues" domain="[('user_id','=',False)]" help="Unassigned Issues" icon="terp-personal-"/>
|
||||
<field name="user_id"/>
|
||||
<field name="project_id"/>
|
||||
<field name="categ_ids"/>
|
||||
|
|
|
@ -0,0 +1,476 @@
|
|||
# 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:06+0000\n"
|
||||
"PO-Revision-Date: 2013-02-20 07:21+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-21 05:14+0000\n"
|
||||
"X-Generator: Launchpad (build 16491)\n"
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: view:purchase.requisition:0
|
||||
msgid "Request a Quotation"
|
||||
msgstr ""
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: selection:purchase.requisition,exclusive:0
|
||||
msgid "Multiple Requisitions"
|
||||
msgstr ""
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: field:purchase.requisition.line,product_uom_id:0
|
||||
msgid "Product Unit of Measure"
|
||||
msgstr "Барааны хэмжих нэгж"
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: model:ir.actions.act_window,help:purchase_requisition.action_purchase_requisition
|
||||
msgid ""
|
||||
"<p class=\"oe_view_nocontent_create\">\n"
|
||||
" Click to start a new purchase requisition process. \n"
|
||||
" </p><p>\n"
|
||||
" A purchase requisition is the step before a request for "
|
||||
"quotation.\n"
|
||||
" In a purchase requisition (or purchase tender), you can record "
|
||||
"the\n"
|
||||
" products you need to buy and trigger the creation of RfQs to\n"
|
||||
" suppliers. After the negotiation, once you have reviewed all "
|
||||
"the\n"
|
||||
" supplier's offers, you can validate some and cancel others.\n"
|
||||
" </p>\n"
|
||||
" "
|
||||
msgstr ""
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: view:purchase.requisition:0
|
||||
#: field:purchase.requisition,user_id:0
|
||||
msgid "Responsible"
|
||||
msgstr "Хариуцагч"
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: view:purchase.requisition:0
|
||||
#: field:purchase.requisition,state:0
|
||||
msgid "Status"
|
||||
msgstr "Төлөв"
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: view:purchase.requisition:0
|
||||
msgid "Send to Suppliers"
|
||||
msgstr "Нийлүүлэгчрүү илгээх"
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: view:purchase.requisition:0
|
||||
msgid "Group By..."
|
||||
msgstr "Бүлэглэх..."
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: view:purchase.requisition:0
|
||||
#: selection:purchase.requisition,state:0
|
||||
msgid "Purchase Done"
|
||||
msgstr "Худалдан авалт хийсэн"
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: field:purchase.requisition,message_follower_ids:0
|
||||
msgid "Followers"
|
||||
msgstr "Дагагчид"
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: view:purchase.requisition:0
|
||||
msgid "Purchase Requisition in negociation"
|
||||
msgstr ""
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: report:purchase.requisition:0
|
||||
#: field:purchase.requisition.partner,partner_id:0
|
||||
msgid "Supplier"
|
||||
msgstr "Нийлүүлэгч"
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: view:purchase.requisition:0
|
||||
#: selection:purchase.requisition,state:0
|
||||
msgid "New"
|
||||
msgstr "Шинэ"
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: report:purchase.requisition:0
|
||||
msgid "Product Detail"
|
||||
msgstr ""
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: report:purchase.requisition:0
|
||||
msgid "Qty"
|
||||
msgstr ""
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: report:purchase.requisition:0
|
||||
msgid "Type"
|
||||
msgstr "Төрөл"
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: model:ir.actions.act_window,name:purchase_requisition.action_purchase_requisition_partner
|
||||
#: model:ir.actions.report.xml,name:purchase_requisition.report_purchase_requisition
|
||||
#: model:ir.model,name:purchase_requisition.model_purchase_requisition
|
||||
#: model:ir.module.category,name:purchase_requisition.module_category_purchase_requisition
|
||||
#: field:product.product,purchase_requisition:0
|
||||
#: field:purchase.order,requisition_id:0
|
||||
#: view:purchase.requisition:0
|
||||
#: field:purchase.requisition.line,requisition_id:0
|
||||
#: view:purchase.requisition.partner:0
|
||||
msgid "Purchase Requisition"
|
||||
msgstr "Худалдан авах шаардлага"
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: model:ir.model,name:purchase_requisition.model_purchase_requisition_line
|
||||
msgid "Purchase Requisition Line"
|
||||
msgstr "Худалдан авах хүсэлтийн мөр"
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: view:purchase.order:0
|
||||
msgid "Purchase Orders with requisition"
|
||||
msgstr "Худалдан авах захиалгууд хүсэлтийн хамт"
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: model:ir.model,name:purchase_requisition.model_product_product
|
||||
#: field:purchase.requisition.line,product_id:0
|
||||
msgid "Product"
|
||||
msgstr "Бараа"
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: view:purchase.requisition:0
|
||||
msgid "Quotations"
|
||||
msgstr "Үнэ ханш"
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: view:purchase.requisition:0
|
||||
msgid "Terms and Conditions"
|
||||
msgstr "Гэрээний заалт/нөхцөл"
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: report:purchase.requisition:0
|
||||
#: field:purchase.requisition,description:0
|
||||
msgid "Description"
|
||||
msgstr "Тайлбар"
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: field:purchase.requisition,message_unread:0
|
||||
msgid "Unread Messages"
|
||||
msgstr "Уншаагүй Зурвасууд"
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: field:purchase.requisition,company_id:0
|
||||
#: field:purchase.requisition.line,company_id:0
|
||||
msgid "Company"
|
||||
msgstr "Компани"
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: view:purchase.requisition.partner:0
|
||||
msgid "Create Quotation"
|
||||
msgstr "Үнэлгээ үүсгэх"
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: help:purchase.requisition,message_ids:0
|
||||
msgid "Messages and communication history"
|
||||
msgstr "Зурвас болон харилцсан түүх"
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: view:purchase.requisition:0
|
||||
msgid "Approved by Supplier"
|
||||
msgstr "Нийлүүлэгч зөвшөөрсөн"
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: view:purchase.requisition.partner:0
|
||||
msgid "or"
|
||||
msgstr "эсвэл"
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: view:purchase.requisition:0
|
||||
msgid "Reset to Draft"
|
||||
msgstr ""
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: view:purchase.requisition:0
|
||||
msgid "Current Purchase Requisition"
|
||||
msgstr "Одоогийн худалдан авах шаардлага"
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: model:res.groups,name:purchase_requisition.group_purchase_requisition_user
|
||||
msgid "User"
|
||||
msgstr "Хэрэглэгч"
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: report:purchase.requisition:0
|
||||
msgid "Order Reference"
|
||||
msgstr ""
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: field:purchase.requisition,message_is_follower:0
|
||||
msgid "Is a Follower"
|
||||
msgstr "Дагагч эсэх"
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: field:purchase.requisition.line,product_qty:0
|
||||
msgid "Quantity"
|
||||
msgstr "Тоо хэмжээ"
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: view:purchase.requisition:0
|
||||
msgid "Unassigned Requisition"
|
||||
msgstr ""
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: model:ir.actions.act_window,name:purchase_requisition.action_purchase_requisition
|
||||
#: model:ir.ui.menu,name:purchase_requisition.menu_purchase_requisition_pro_mgt
|
||||
msgid "Purchase Requisitions"
|
||||
msgstr ""
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: report:purchase.requisition:0
|
||||
msgid "Quotation Detail"
|
||||
msgstr ""
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: code:addons/purchase_requisition/purchase_requisition.py:134
|
||||
#, python-format
|
||||
msgid ""
|
||||
"You have already one %s purchase order for this partner, you must cancel "
|
||||
"this purchase order to create a new quotation."
|
||||
msgstr ""
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: view:purchase.requisition:0
|
||||
msgid "End Date"
|
||||
msgstr "Дуусах огноо"
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: report:purchase.requisition:0
|
||||
#: field:purchase.requisition,name:0
|
||||
msgid "Requisition Reference"
|
||||
msgstr ""
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: field:purchase.requisition,line_ids:0
|
||||
msgid "Products to Purchase"
|
||||
msgstr "Бараа худалдан авах"
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: view:purchase.requisition:0
|
||||
#: selection:purchase.requisition,state:0
|
||||
msgid "Sent to Suppliers"
|
||||
msgstr "Нийлүүлэгчрүү илгээх"
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: view:purchase.requisition:0
|
||||
msgid "Search Purchase Requisition"
|
||||
msgstr ""
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: code:addons/purchase_requisition/wizard/purchase_requisition_partner.py:41
|
||||
#, python-format
|
||||
msgid "No Product in Tender."
|
||||
msgstr ""
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: report:purchase.requisition:0
|
||||
msgid "Date Ordered"
|
||||
msgstr "Захиалсан огноо"
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: field:purchase.requisition,message_ids:0
|
||||
msgid "Messages"
|
||||
msgstr "Зурвасууд"
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: help:purchase.requisition,exclusive:0
|
||||
msgid ""
|
||||
"Purchase Requisition (exclusive): On the confirmation of a purchase order, "
|
||||
"it cancels the remaining purchase order.\n"
|
||||
"Purchase Requisition(Multiple): It allows to have multiple purchase "
|
||||
"orders.On confirmation of a purchase order it does not cancel the remaining "
|
||||
"orders"
|
||||
msgstr ""
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: view:purchase.requisition:0
|
||||
msgid "Cancel Purchase Order"
|
||||
msgstr "Захиалга цуцлах"
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: model:ir.model,name:purchase_requisition.model_purchase_order
|
||||
#: view:purchase.requisition:0
|
||||
msgid "Purchase Order"
|
||||
msgstr "Худалдан авах захиалга"
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: field:purchase.requisition,origin:0
|
||||
msgid "Source Document"
|
||||
msgstr "Эх баримт"
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: code:addons/purchase_requisition/wizard/purchase_requisition_partner.py:41
|
||||
#, python-format
|
||||
msgid "Error!"
|
||||
msgstr "Алдаа!"
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: field:purchase.requisition,exclusive:0
|
||||
msgid "Requisition Type"
|
||||
msgstr "Шаардлагын төрөл"
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: view:purchase.requisition:0
|
||||
msgid "New Purchase Requisition"
|
||||
msgstr "Шинэ худалдан авах хүсэлт"
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: view:purchase.requisition:0
|
||||
msgid "Products"
|
||||
msgstr "Бараа"
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: view:purchase.requisition:0
|
||||
msgid "Order Date"
|
||||
msgstr "Захиалгын Огноо"
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: selection:purchase.requisition,state:0
|
||||
msgid "Cancelled"
|
||||
msgstr "Цуцлагдсан"
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: model:ir.model,name:purchase_requisition.model_purchase_requisition_partner
|
||||
msgid "Purchase Requisition Partner"
|
||||
msgstr ""
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: help:purchase.requisition,message_unread:0
|
||||
msgid "If checked new messages require your attention."
|
||||
msgstr "Хэрэв тэмдэглэгдсэн бол шинэ зурвас нь анхаарал татахыг шаардана."
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: report:purchase.requisition:0
|
||||
msgid "Purchase for Requisitions"
|
||||
msgstr ""
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: model:ir.actions.act_window,name:purchase_requisition.act_res_partner_2_purchase_order
|
||||
msgid "Purchase orders"
|
||||
msgstr "Худалдан авах захиалгууд"
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: field:purchase.requisition,date_end:0
|
||||
msgid "Requisition Deadline"
|
||||
msgstr "Хүсэлтийн эцсийн аугацаа"
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: field:purchase.requisition,message_summary:0
|
||||
msgid "Summary"
|
||||
msgstr "Хураангуй"
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: view:purchase.requisition:0
|
||||
msgid "Reference"
|
||||
msgstr "Код"
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: model:ir.model,name:purchase_requisition.model_procurement_order
|
||||
msgid "Procurement"
|
||||
msgstr ""
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: report:purchase.requisition:0
|
||||
#: view:purchase.requisition:0
|
||||
msgid "Source"
|
||||
msgstr "Эх үүсвэр"
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: field:purchase.requisition,warehouse_id:0
|
||||
msgid "Warehouse"
|
||||
msgstr "Агуулах"
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: field:procurement.order,requisition_id:0
|
||||
msgid "Latest Requisition"
|
||||
msgstr "Cүүлийн хүсэлт"
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: model:res.groups,name:purchase_requisition.group_purchase_requisition_manager
|
||||
msgid "Manager"
|
||||
msgstr "Менежер"
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: selection:purchase.requisition,exclusive:0
|
||||
msgid "Purchase Requisition (exclusive)"
|
||||
msgstr ""
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: help:purchase.requisition,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 ""
|
||||
"Чаатлагчийн хураангуйг агуулна (зурвасын тоо,...). Энэ хураангуй нь шууд "
|
||||
"html форматтай бөгөөд канбан харагдацад шууд орж харагдах боломжтой."
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: report:purchase.requisition:0
|
||||
msgid "Product UoM"
|
||||
msgstr "Барааны х.н"
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: code:addons/purchase_requisition/purchase_requisition.py:134
|
||||
#, python-format
|
||||
msgid "Warning!"
|
||||
msgstr "Анхааруулга!"
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: view:purchase.requisition:0
|
||||
msgid "Confirm Purchase Order"
|
||||
msgstr "Худалдан авах захиалгыг батлах"
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: view:purchase.requisition:0
|
||||
#: view:purchase.requisition.partner:0
|
||||
msgid "Cancel"
|
||||
msgstr "Цуцлах"
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: report:purchase.requisition:0
|
||||
#: field:purchase.requisition,date_start:0
|
||||
msgid "Requisition Date"
|
||||
msgstr ""
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: view:purchase.requisition:0
|
||||
msgid "Start Date"
|
||||
msgstr "Эхлэх огноо"
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: view:purchase.requisition:0
|
||||
msgid "Unassigned"
|
||||
msgstr "Тодорхой бус"
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: view:purchase.order:0
|
||||
msgid "Requisition"
|
||||
msgstr "Хүсэлт"
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: help:product.product,purchase_requisition:0
|
||||
msgid ""
|
||||
"Check this box to generates purchase requisition instead of generating "
|
||||
"requests for quotation from procurement."
|
||||
msgstr ""
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: field:purchase.requisition,purchase_ids:0
|
||||
msgid "Purchase Orders"
|
||||
msgstr "Худалдан авах захиалгууд"
|
|
@ -220,7 +220,7 @@ class WebKitParser(report_sxw):
|
|||
|
||||
if report_xml.report_file :
|
||||
path = addons.get_module_resource(*report_xml.report_file.split(os.path.sep))
|
||||
if os.path.exists(path) :
|
||||
if path and os.path.exists(path) :
|
||||
template = file(path).read()
|
||||
if not template and report_xml.report_webkit_data :
|
||||
template = report_xml.report_webkit_data
|
||||
|
|
|
@ -55,6 +55,9 @@ Example: 10% for retailers, promotion of 5 EUR on this product, etc."""),
|
|||
'group_discount_per_so_line': fields.boolean("Allow setting a discount on the sales order lines",
|
||||
implied_group='sale.group_discount_per_so_line',
|
||||
help="Allows you to apply some discount per sales order line."),
|
||||
'group_product_variant': fields.boolean("Support multiple variants per products ",
|
||||
implied_group='product.group_product_variant',
|
||||
help="""Allow to manage several variants per product. As an example, if you sell T-Shirts, for the same "Linux T-Shirt", you may have variants on sizes or colors; S, M, L, XL, XXL."""),
|
||||
'module_warning': fields.boolean("Allow configuring alerts by customer or products",
|
||||
help="""Allow to configure notification on products and trigger them when a user wants to sale a given product or a given customer.
|
||||
Example: Product: this product is deprecated, do not purchase more than 5.
|
||||
|
|
|
@ -69,6 +69,10 @@
|
|||
<field name="group_discount_per_so_line" class="oe_inline"/>
|
||||
<label for="group_discount_per_so_line"/>
|
||||
</div>
|
||||
<div>
|
||||
<field name="group_product_variant" class="oe_inline"/>
|
||||
<label for="group_product_variant"/>
|
||||
</div>
|
||||
</div>
|
||||
</group>
|
||||
</group>
|
||||
|
|
|
@ -51,9 +51,9 @@ class sale_make_invoice(osv.osv_memory):
|
|||
if context is None:
|
||||
context = {}
|
||||
data = self.read(cr, uid, ids)[0]
|
||||
order_obj.action_invoice_create(cr, uid, context.get(('active_ids'), []), data['grouped'], date_inv = data['invoice_date'])
|
||||
order_obj.action_invoice_create(cr, uid, context.get(('active_ids'), []), data['grouped'], date_invoice = data['invoice_date'])
|
||||
order_obj.signal_manual_invoice(cr, uid, context.get(('active_ids'), []))
|
||||
|
||||
|
||||
for o in order_obj.browse(cr, uid, context.get(('active_ids'), []), context=context):
|
||||
for i in o.invoice_ids:
|
||||
newinv.append(i.id)
|
||||
|
|
|
@ -69,9 +69,6 @@ This installs the module product_expiry."""),
|
|||
implied_group='stock.group_locations',
|
||||
help="""This allows to configure and use multiple stock locations and warehouses,
|
||||
instead of having a single default one."""),
|
||||
'group_product_variant': fields.boolean("Support multiple variants per products ",
|
||||
implied_group='product.group_product_variant',
|
||||
help="""Allow to manage several variants per product. As an example, if you sell T-Shirts, for the same "Linux T-Shirt", you may have variants on sizes or colors; S, M, L, XL, XXL."""),
|
||||
'decimal_precision': fields.integer('Decimal precision on weight', help="As an example, a decimal precision of 2 will allow weights like: 9.99 kg, whereas a decimal precision of 4 will allow weights like: 0.0231 kg."),
|
||||
}
|
||||
|
||||
|
|
|
@ -91,10 +91,6 @@
|
|||
<field name="group_uos" class="oe_inline"/>
|
||||
<label for="group_uos" />
|
||||
</div>
|
||||
<div invisible="1">
|
||||
<field name="group_product_variant" class="oe_inline"/>
|
||||
<label for="group_product_variant"/>
|
||||
</div>
|
||||
</div>
|
||||
</group>
|
||||
</form>
|
||||
|
|
|
@ -29,11 +29,14 @@ import openerp.addons.decimal_precision as dp
|
|||
class stock_return_picking_memory(osv.osv_memory):
|
||||
_name = "stock.return.picking.memory"
|
||||
_rec_name = 'product_id'
|
||||
|
||||
_columns = {
|
||||
'product_id' : fields.many2one('product.product', string="Product", required=True),
|
||||
'quantity' : fields.float("Quantity", digits_compute=dp.get_precision('Product Unit of Measure'), required=True),
|
||||
'wizard_id' : fields.many2one('stock.return.picking', string="Wizard"),
|
||||
'move_id' : fields.many2one('stock.move', "Move"),
|
||||
'prodlot_id': fields.related('move_id', 'prodlot_id', type='many2one', relation='stock.production.lot', string='Serial Number', readonly=True),
|
||||
|
||||
}
|
||||
|
||||
stock_return_picking_memory()
|
||||
|
@ -74,7 +77,7 @@ class stock_return_picking(osv.osv_memory):
|
|||
for line in pick.move_lines:
|
||||
qty = line.product_qty - return_history.get(line.id, 0)
|
||||
if qty > 0:
|
||||
result1.append({'product_id': line.product_id.id, 'quantity': qty,'move_id':line.id})
|
||||
result1.append({'product_id': line.product_id.id, 'quantity': qty,'move_id':line.id, 'prodlot_id': line.prodlot_id and line.prodlot_id.id or False})
|
||||
if 'product_return_moves' in fields:
|
||||
res.update({'product_return_moves': result1})
|
||||
return res
|
||||
|
|
|
@ -32,8 +32,8 @@
|
|||
<field name="arch" type="xml">
|
||||
<tree editable="bottom" string="Product Moves">
|
||||
<field name="product_id" />
|
||||
<field name="prodlot_id" groups="stock.group_production_lot"/>
|
||||
<field name="quantity" />
|
||||
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
@ -45,6 +45,7 @@
|
|||
<form string="Return Picking Memory" version="7.0">
|
||||
<group col="4">
|
||||
<field name="product_id" />
|
||||
<field name="prodlot_id" groups="stock.group_production_lot"/>
|
||||
<field name="quantity" />
|
||||
</group>
|
||||
</form>
|
||||
|
|
|
@ -0,0 +1,25 @@
|
|||
# Czech 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:06+0000\n"
|
||||
"PO-Revision-Date: 2013-02-20 13:43+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Czech <cs@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-21 05:14+0000\n"
|
||||
"X-Generator: Launchpad (build 16491)\n"
|
||||
|
||||
#. module: web_shortcuts
|
||||
#. openerp-web
|
||||
#: code:addons/web_shortcuts/static/src/xml/web_shortcuts.xml:21
|
||||
#, python-format
|
||||
msgid "Add / Remove Shortcut..."
|
||||
msgstr "Přidat / Odebrat zkratku..."
|
Loading…
Reference in New Issue