Merge lp:openobject-addons
bzr revid: jam@tinyerp.com-20120910043039-vu4qn4t20je6ew8r
This commit is contained in:
commit
6c7cdd7712
|
@ -3001,6 +3001,7 @@ class wizard_multi_charts_accounts(osv.osv_memory):
|
|||
|
||||
_columns = {
|
||||
'company_id':fields.many2one('res.company', 'Company', required=True),
|
||||
'currency_id': fields.many2one('res.currency', 'Currency', help="Currency as per company's country."),
|
||||
'only_one_chart_template': fields.boolean('Only One Chart Template Available'),
|
||||
'chart_template_id': fields.many2one('account.chart.template', 'Chart Template', required=True),
|
||||
'bank_accounts_id': fields.one2many('account.bank.accounts.wizard', 'bank_account_id', 'Cash and Banks', required=True),
|
||||
|
@ -3011,6 +3012,13 @@ class wizard_multi_charts_accounts(osv.osv_memory):
|
|||
'purchase_tax_rate': fields.float('Purchase Tax(%)'),
|
||||
'complete_tax_set': fields.boolean('Complete Set of Taxes', help='This boolean helps you to choose if you want to propose to the user to encode the sales and purchase rates or use the usual m2o fields. This last choice assumes that the set of tax defined for the chosen template is complete'),
|
||||
}
|
||||
|
||||
def onchange_company_id(self, cr, uid, ids, company_id, context=None):
|
||||
currency_id = False
|
||||
if company_id:
|
||||
currency_id = self.pool.get('res.company').browse(cr, uid, company_id, context=context).currency_id.id
|
||||
return {'value': {'currency_id': currency_id}}
|
||||
|
||||
def onchange_tax_rate(self, cr, uid, ids, rate=False, context=None):
|
||||
return {'value': {'purchase_tax_rate': rate or False}}
|
||||
|
||||
|
@ -3041,6 +3049,13 @@ class wizard_multi_charts_accounts(osv.osv_memory):
|
|||
res.update({'bank_accounts_id': [{'acc_name': _('Cash'), 'account_type': 'cash'},{'acc_name': _('Bank'), 'account_type': 'bank'}]})
|
||||
if 'company_id' in fields:
|
||||
res.update({'company_id': self.pool.get('res.users').browse(cr, uid, [uid], context=context)[0].company_id.id})
|
||||
if 'currency_id' in fields:
|
||||
company_id = res.get('company_id') or False
|
||||
if company_id:
|
||||
company_obj = self.pool.get('res.company')
|
||||
country_id = company_obj.browse(cr, uid, company_id, context=context).country_id.id
|
||||
currency_id = company_obj.on_change_country(cr, uid, company_id, country_id, context=context)['value']['currency_id']
|
||||
res.update({'currency_id': currency_id})
|
||||
|
||||
ids = self.pool.get('account.chart.template').search(cr, uid, [('visible', '=', True)], context=context)
|
||||
if ids:
|
||||
|
@ -3345,6 +3360,7 @@ class wizard_multi_charts_accounts(osv.osv_memory):
|
|||
ir_values_obj = self.pool.get('ir.values')
|
||||
obj_wizard = self.browse(cr, uid, ids[0])
|
||||
company_id = obj_wizard.company_id.id
|
||||
self.pool.get('res.company').write(cr, uid, [company_id], {'currency_id': obj_wizard.currency_id.id})
|
||||
# If the floats for sale/purchase rates have been filled, create templates from them
|
||||
self._create_tax_templates_from_rates(cr, uid, obj_wizard, company_id, context=context)
|
||||
|
||||
|
|
|
@ -2371,8 +2371,10 @@
|
|||
<field name="complete_tax_set" invisible="1"/>
|
||||
<div groups="base.group_multi_company">
|
||||
<label for="company_id"/>
|
||||
<field name="company_id" widget="selection"/> <!-- we assume that this wizard will be run only by administrators and as this field may cause problem if hidden (because of the default company of the user removed from the selection because already configured), we simply choosed to remove the group "multi company" of it -->
|
||||
<field name="company_id" widget="selection" on_change="onchange_company_id(company_id)"/> <!-- we assume that this wizard will be run only by administrators and as this field may cause problem if hidden (because of the default company of the user removed from the selection because already configured), we simply choosed to remove the group "multi company" of it -->
|
||||
</div>
|
||||
<label for="currency_id"/>
|
||||
<field name="currency_id" />
|
||||
<group>
|
||||
<div attrs="{'invisible': [('only_one_chart_template','=',True)]}">
|
||||
<label for="chart_template_id"/>
|
||||
|
|
|
@ -145,42 +145,45 @@ class account_config_settings(osv.osv_memory):
|
|||
|
||||
def onchange_company_id(self, cr, uid, ids, company_id):
|
||||
# update related fields
|
||||
company = self.pool.get('res.company').browse(cr, uid, company_id)
|
||||
has_chart_of_accounts = company_id not in self.pool.get('account.installer').get_unconfigured_cmp(cr, uid)
|
||||
fiscalyear_count = self.pool.get('account.fiscalyear').search_count(cr, uid,
|
||||
[('date_start', '<=', time.strftime('%Y-%m-%d')), ('date_stop', '>=', time.strftime('%Y-%m-%d')),
|
||||
('company_id', '=', company_id)])
|
||||
values = {
|
||||
'expects_chart_of_accounts': company.expects_chart_of_accounts,
|
||||
'currency_id': company.currency_id.id,
|
||||
'paypal_account': company.paypal_account,
|
||||
'company_footer': company.rml_footer2,
|
||||
'has_chart_of_accounts': has_chart_of_accounts,
|
||||
'has_fiscal_year': bool(fiscalyear_count),
|
||||
'chart_template_id': False,
|
||||
'tax_calculation_rounding_method': company.tax_calculation_rounding_method,
|
||||
}
|
||||
# update journals and sequences
|
||||
for journal_type in ('sale', 'sale_refund', 'purchase', 'purchase_refund'):
|
||||
for suffix in ('_journal_id', '_sequence_prefix', '_sequence_next'):
|
||||
values[journal_type + suffix] = False
|
||||
journal_obj = self.pool.get('account.journal')
|
||||
journal_ids = journal_obj.search(cr, uid, [('company_id', '=', company_id)])
|
||||
for journal in journal_obj.browse(cr, uid, journal_ids):
|
||||
if journal.type in ('sale', 'sale_refund', 'purchase', 'purchase_refund'):
|
||||
values.update({
|
||||
journal.type + '_journal_id': journal.id,
|
||||
journal.type + '_sequence_prefix': journal.sequence_id.prefix,
|
||||
journal.type + '_sequence_next': journal.sequence_id.number_next,
|
||||
})
|
||||
# update taxes
|
||||
ir_values = self.pool.get('ir.values')
|
||||
taxes_id = ir_values.get_default(cr, uid, 'product.product', 'taxes_id', company_id=company_id)
|
||||
supplier_taxes_id = ir_values.get_default(cr, uid, 'product.product', 'supplier_taxes_id', company_id=company_id)
|
||||
values.update({
|
||||
'default_sale_tax': isinstance(taxes_id, list) and taxes_id[0] or taxes_id,
|
||||
'default_purchase_tax': isinstance(supplier_taxes_id, list) and supplier_taxes_id[0] or supplier_taxes_id,
|
||||
})
|
||||
values = {}
|
||||
values['currency_id'] = False
|
||||
if company_id:
|
||||
company = self.pool.get('res.company').browse(cr, uid, company_id)
|
||||
has_chart_of_accounts = company_id not in self.pool.get('account.installer').get_unconfigured_cmp(cr, uid)
|
||||
fiscalyear_count = self.pool.get('account.fiscalyear').search_count(cr, uid,
|
||||
[('date_start', '<=', time.strftime('%Y-%m-%d')), ('date_stop', '>=', time.strftime('%Y-%m-%d')),
|
||||
('company_id', '=', company_id)])
|
||||
values = {
|
||||
'expects_chart_of_accounts': company.expects_chart_of_accounts,
|
||||
'currency_id': company.currency_id.id,
|
||||
'paypal_account': company.paypal_account,
|
||||
'company_footer': company.rml_footer2,
|
||||
'has_chart_of_accounts': has_chart_of_accounts,
|
||||
'has_fiscal_year': bool(fiscalyear_count),
|
||||
'chart_template_id': False,
|
||||
'tax_calculation_rounding_method': company.tax_calculation_rounding_method,
|
||||
}
|
||||
# update journals and sequences
|
||||
for journal_type in ('sale', 'sale_refund', 'purchase', 'purchase_refund'):
|
||||
for suffix in ('_journal_id', '_sequence_prefix', '_sequence_next'):
|
||||
values[journal_type + suffix] = False
|
||||
journal_obj = self.pool.get('account.journal')
|
||||
journal_ids = journal_obj.search(cr, uid, [('company_id', '=', company_id)])
|
||||
for journal in journal_obj.browse(cr, uid, journal_ids):
|
||||
if journal.type in ('sale', 'sale_refund', 'purchase', 'purchase_refund'):
|
||||
values.update({
|
||||
journal.type + '_journal_id': journal.id,
|
||||
journal.type + '_sequence_prefix': journal.sequence_id.prefix,
|
||||
journal.type + '_sequence_next': journal.sequence_id.number_next,
|
||||
})
|
||||
# update taxes
|
||||
ir_values = self.pool.get('ir.values')
|
||||
taxes_id = ir_values.get_default(cr, uid, 'product.product', 'taxes_id', company_id=company_id)
|
||||
supplier_taxes_id = ir_values.get_default(cr, uid, 'product.product', 'supplier_taxes_id', company_id=company_id)
|
||||
values.update({
|
||||
'default_sale_tax': isinstance(taxes_id, list) and taxes_id[0] or taxes_id,
|
||||
'default_purchase_tax': isinstance(supplier_taxes_id, list) and supplier_taxes_id[0] or supplier_taxes_id,
|
||||
})
|
||||
return {'value': values}
|
||||
|
||||
def onchange_chart_template_id(self, cr, uid, ids, chart_template_id, context=None):
|
||||
|
|
|
@ -14,7 +14,7 @@ msgstr ""
|
|||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-07 04:57+0000\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-08 04:54+0000\n"
|
||||
"X-Generator: Launchpad (build 15914)\n"
|
||||
|
||||
#. module: base_vat
|
||||
|
|
|
@ -297,6 +297,7 @@
|
|||
<field name="message_summary"/>
|
||||
<field name="message_unread"/>
|
||||
<templates>
|
||||
<field name="date_deadline"/>
|
||||
<t t-name="kanban-box">
|
||||
<div t-attf-class="oe_kanban_color_#{kanban_getcolor(record.color.raw_value)} oe_kanban_card oe_kanban_global_click">
|
||||
<div class="oe_dropdown_toggle oe_dropdown_kanban">
|
||||
|
|
|
@ -29,11 +29,13 @@ class document_page(osv.osv):
|
|||
_description = "Document Page"
|
||||
_order = 'name'
|
||||
|
||||
def _get_page_index(self, cr, uid, page):
|
||||
def _get_page_index(self, cr, uid, page, link=True):
|
||||
index = []
|
||||
for subpage in page.child_ids:
|
||||
index += ["<li>"+ self._get_page_index(cr, uid, subpage) +"</li>"]
|
||||
r = '<a href="#id=%s">%s</a>'%(page.id,page.name)
|
||||
r = ''
|
||||
if link:
|
||||
r = '<a href="#id=%s">%s</a>'%(page.id,page.name)
|
||||
if index:
|
||||
r += "<ul>" + "".join(index) + "</ul>"
|
||||
return r
|
||||
|
@ -42,7 +44,7 @@ class document_page(osv.osv):
|
|||
res = {}
|
||||
for page in self.browse(cr, uid, ids, context=context):
|
||||
if page.type == "category":
|
||||
content = self._get_page_index(cr, uid, page)
|
||||
content = self._get_page_index(cr, uid, page, link=False)
|
||||
else:
|
||||
content = page.content
|
||||
res[page.id] = content
|
||||
|
@ -120,12 +122,12 @@ class document_page_history(osv.osv):
|
|||
text2 = history_pool.read(cr, uid, [v2], ['content'])[0]['content']
|
||||
line1 = line2 = ''
|
||||
if text1:
|
||||
line1 = tools.ustr(text1.splitlines(1))
|
||||
line1 = text1.splitlines(1)
|
||||
if text2:
|
||||
line2=tools.ustr(text2.splitlines(1))
|
||||
line2 = text2.splitlines(1)
|
||||
if (not line1 and not line2) or (line1 == line2):
|
||||
raise osv.except_osv(_('Warning!'), _('There are no changes in revisions.'))
|
||||
diff = difflib.HtmlDiff()
|
||||
return diff.make_file(line1, line2, "Revision-%s" % (v1), "Revision-%s" % (v2), context=False)
|
||||
return diff.make_table(line1, line2, "Revision-%s" % (v1), "Revision-%s" % (v2), context=True)
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
|
|
@ -78,17 +78,6 @@
|
|||
</field>
|
||||
</record>
|
||||
<!-- page action -->
|
||||
<record id="action_category" model="ir.actions.act_window">
|
||||
<field name="name">Category</field>
|
||||
<field name="res_model">document.page</field>
|
||||
<field name="domain">[('type','=','category')]</field>
|
||||
<field name="context">{'default_type': 'category'}</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="view_id" ref="view_wiki_tree"/>
|
||||
<field name="search_view_id" ref="view_wiki_filter"/>
|
||||
</record>
|
||||
<menuitem id="menu_category" parent="menu_wiki" name="Categories" action="action_category" sequence="10"/>
|
||||
<record id="action_page" model="ir.actions.act_window">
|
||||
<field name="name">Pages</field>
|
||||
<field name="res_model">document.page</field>
|
||||
|
@ -100,7 +89,18 @@
|
|||
<field name="search_view_id" ref="view_wiki_filter"/>
|
||||
<field name="help">Create web pages</field>
|
||||
</record>
|
||||
<menuitem id="menu_page" parent="menu_wiki" name="Pages" action="action_page" sequence="20"/>
|
||||
<menuitem id="menu_page" parent="menu_wiki" name="Pages" action="action_page" sequence="10"/>
|
||||
<record id="action_category" model="ir.actions.act_window">
|
||||
<field name="name">Category</field>
|
||||
<field name="res_model">document.page</field>
|
||||
<field name="domain">[('type','=','category')]</field>
|
||||
<field name="context">{'default_type': 'category'}</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="view_id" ref="view_wiki_tree"/>
|
||||
<field name="search_view_id" ref="view_wiki_filter"/>
|
||||
</record>
|
||||
<menuitem id="menu_category" parent="menu_wiki" name="Categories" action="action_category" sequence="20"/>
|
||||
|
||||
<!-- History Tree view -->
|
||||
<record model="ir.ui.view" id="view_wiki_history_tree">
|
||||
|
|
|
@ -1,11 +1,12 @@
|
|||
.oe_document_page ul, .oe_document_page li {
|
||||
padding: 2px 8px;
|
||||
margin: 2px 8px;
|
||||
list-style-type: circle;
|
||||
}
|
||||
|
||||
.oe_form_editable .oe_document_page {
|
||||
display: none;
|
||||
}
|
||||
|
||||
table.diff {font-family:Courier; border:medium;}
|
||||
.diff_header {background-color:#e0e0e0}
|
||||
td.diff_header {text-align:right}
|
||||
.diff_next {background-color:#c0c0c0}
|
||||
.diff_add {background-color:#aaffaa}
|
||||
.diff_chg {background-color:#ffff77}
|
||||
.diff_sub {background-color:#ffaaaa}
|
||||
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
<field name="model">wizard.document.page.history.show_diff</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Difference" version="7.0">
|
||||
<field name="diff"/>
|
||||
<field name="diff" widget="html"/>
|
||||
<footer>
|
||||
<button string="Cancel" class="oe_link" special="cancel" />
|
||||
</footer>
|
||||
|
|
|
@ -0,0 +1,197 @@
|
|||
# Norwegian Bokmal translation for openobject-addons
|
||||
# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
|
||||
# This file is distributed under the same license as the openobject-addons package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-02-08 00:36+0000\n"
|
||||
"PO-Revision-Date: 2012-09-07 17:44+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Norwegian Bokmal <nb@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-08 04:54+0000\n"
|
||||
"X-Generator: Launchpad (build 15914)\n"
|
||||
|
||||
#. module: document_webdav
|
||||
#: field:document.webdav.dir.property,create_date:0
|
||||
#: field:document.webdav.file.property,create_date:0
|
||||
msgid "Date Created"
|
||||
msgstr "Dato opprettet"
|
||||
|
||||
#. module: document_webdav
|
||||
#: model:ir.ui.menu,name:document_webdav.menu_document_props
|
||||
msgid "Documents"
|
||||
msgstr "Dokumenter"
|
||||
|
||||
#. module: document_webdav
|
||||
#: constraint:document.directory:0
|
||||
msgid "Error! You can not create recursive Directories."
|
||||
msgstr "Feil! Du kan opprette rekursive kataloger."
|
||||
|
||||
#. module: document_webdav
|
||||
#: view:document.webdav.dir.property:0
|
||||
#: view:document.webdav.file.property:0
|
||||
msgid "Search Document properties"
|
||||
msgstr "Søk Dokumentegenskaper."
|
||||
|
||||
#. module: document_webdav
|
||||
#: view:document.webdav.dir.property:0
|
||||
#: field:document.webdav.dir.property,namespace:0
|
||||
#: view:document.webdav.file.property:0
|
||||
#: field:document.webdav.file.property,namespace:0
|
||||
msgid "Namespace"
|
||||
msgstr "Navnerom"
|
||||
|
||||
#. module: document_webdav
|
||||
#: field:document.directory,dav_prop_ids:0
|
||||
msgid "DAV properties"
|
||||
msgstr "DAV egenskaper"
|
||||
|
||||
#. module: document_webdav
|
||||
#: model:ir.model,name:document_webdav.model_document_webdav_file_property
|
||||
msgid "document.webdav.file.property"
|
||||
msgstr "Dokumentet.WebDAV.fil.egenskap"
|
||||
|
||||
#. module: document_webdav
|
||||
#: view:document.webdav.dir.property:0
|
||||
#: view:document.webdav.file.property:0
|
||||
msgid "Group By..."
|
||||
msgstr "Grupper etter ..."
|
||||
|
||||
#. module: document_webdav
|
||||
#: view:document.directory:0
|
||||
msgid "These properties will be added to WebDAV requests"
|
||||
msgstr "Disse egenskapene vil bli lagt til WebDAV-forespørsler"
|
||||
|
||||
#. module: document_webdav
|
||||
#: model:ir.actions.act_window,name:document_webdav.action_file_props_form
|
||||
msgid "DAV Properties for Documents"
|
||||
msgstr "DAV Eiendommer for Dokumenter."
|
||||
|
||||
#. module: document_webdav
|
||||
#: code:addons/document_webdav/webdav.py:37
|
||||
#, python-format
|
||||
msgid "PyWebDAV Import Error!"
|
||||
msgstr "PyWebDAV importere Feil!"
|
||||
|
||||
#. module: document_webdav
|
||||
#: view:document.webdav.file.property:0
|
||||
#: field:document.webdav.file.property,file_id:0
|
||||
msgid "Document"
|
||||
msgstr "Dokument"
|
||||
|
||||
#. module: document_webdav
|
||||
#: model:ir.ui.menu,name:document_webdav.menu_folder_props
|
||||
msgid "Folders"
|
||||
msgstr "Mapper"
|
||||
|
||||
#. module: document_webdav
|
||||
#: sql_constraint:document.directory:0
|
||||
msgid "Directory cannot be parent of itself!"
|
||||
msgstr "Katalogen kan ikke være overordnede av seg selv!"
|
||||
|
||||
#. module: document_webdav
|
||||
#: view:document.directory:0
|
||||
msgid "Dynamic context"
|
||||
msgstr "Dynamisk sammenheng"
|
||||
|
||||
#. module: document_webdav
|
||||
#: view:document.directory:0
|
||||
msgid "WebDAV properties"
|
||||
msgstr "WebDAV egenskaper."
|
||||
|
||||
#. module: document_webdav
|
||||
#: sql_constraint:document.directory:0
|
||||
msgid "The directory name must be unique !"
|
||||
msgstr "Katalogen Navnet må være unikt!"
|
||||
|
||||
#. module: document_webdav
|
||||
#: code:addons/document_webdav/webdav.py:37
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Please install PyWebDAV from "
|
||||
"http://code.google.com/p/pywebdav/downloads/detail?name=PyWebDAV-"
|
||||
"0.9.4.tar.gz&can=2&q=/"
|
||||
msgstr ""
|
||||
"Vennligst installer PyWebDAV fra "
|
||||
"http://code.google.com/p/pywebdav/downloads/detail?name=PyWebDAV-"
|
||||
"0.9.4.tar.gz&can=2&q=/"
|
||||
|
||||
#. module: document_webdav
|
||||
#: model:ir.actions.act_window,name:document_webdav.action_dir_props_form
|
||||
msgid "DAV Properties for Folders"
|
||||
msgstr "DAV egenskaper for mapper."
|
||||
|
||||
#. module: document_webdav
|
||||
#: view:document.directory:0
|
||||
#: view:document.webdav.dir.property:0
|
||||
#: view:document.webdav.file.property:0
|
||||
msgid "Properties"
|
||||
msgstr "Egenskaper"
|
||||
|
||||
#. module: document_webdav
|
||||
#: field:document.webdav.dir.property,name:0
|
||||
#: field:document.webdav.file.property,name:0
|
||||
msgid "Name"
|
||||
msgstr "Navn"
|
||||
|
||||
#. module: document_webdav
|
||||
#: model:ir.model,name:document_webdav.model_document_webdav_dir_property
|
||||
msgid "document.webdav.dir.property"
|
||||
msgstr "Dokumentet.WebDAV.dir.eiendom"
|
||||
|
||||
#. module: document_webdav
|
||||
#: field:document.webdav.dir.property,value:0
|
||||
#: field:document.webdav.file.property,value:0
|
||||
msgid "Value"
|
||||
msgstr "Verdi"
|
||||
|
||||
#. module: document_webdav
|
||||
#: field:document.webdav.dir.property,dir_id:0
|
||||
#: model:ir.model,name:document_webdav.model_document_directory
|
||||
msgid "Directory"
|
||||
msgstr "Katalog"
|
||||
|
||||
#. module: document_webdav
|
||||
#: field:document.webdav.dir.property,write_uid:0
|
||||
#: field:document.webdav.file.property,write_uid:0
|
||||
msgid "Last Modification User"
|
||||
msgstr "Siste endring Bruker"
|
||||
|
||||
#. module: document_webdav
|
||||
#: view:document.webdav.dir.property:0
|
||||
msgid "Dir"
|
||||
msgstr "Retn"
|
||||
|
||||
#. module: document_webdav
|
||||
#: field:document.webdav.dir.property,write_date:0
|
||||
#: field:document.webdav.file.property,write_date:0
|
||||
msgid "Date Modified"
|
||||
msgstr "Dato endret"
|
||||
|
||||
#. module: document_webdav
|
||||
#: field:document.webdav.dir.property,create_uid:0
|
||||
#: field:document.webdav.file.property,create_uid:0
|
||||
msgid "Creator"
|
||||
msgstr "Opprettet av"
|
||||
|
||||
#. module: document_webdav
|
||||
#: model:ir.ui.menu,name:document_webdav.menu_properties
|
||||
msgid "DAV Properties"
|
||||
msgstr "DAV Egenskaper."
|
||||
|
||||
#. module: document_webdav
|
||||
#: sql_constraint:document.directory:0
|
||||
msgid "Directory must have a parent or a storage"
|
||||
msgstr "Katalog må ha en overordnede eller en lagringsplass."
|
||||
|
||||
#. module: document_webdav
|
||||
#: field:document.webdav.dir.property,do_subst:0
|
||||
#: field:document.webdav.file.property,do_subst:0
|
||||
msgid "Substitute"
|
||||
msgstr "Erstatte"
|
|
@ -0,0 +1,411 @@
|
|||
# Norwegian Bokmal translation for openobject-addons
|
||||
# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
|
||||
# This file is distributed under the same license as the openobject-addons package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-02-08 01:37+0100\n"
|
||||
"PO-Revision-Date: 2012-09-08 19:13+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Norwegian Bokmal <nb@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-09 04:53+0000\n"
|
||||
"X-Generator: Launchpad (build 15914)\n"
|
||||
|
||||
#. module: edi
|
||||
#: sql_constraint:res.currency:0
|
||||
msgid "The currency code must be unique per company!"
|
||||
msgstr "Valutakode må være unik pr. firma!"
|
||||
|
||||
#. module: edi
|
||||
#: model:ir.model,name:edi.model_res_partner_address
|
||||
msgid "Partner Addresses"
|
||||
msgstr "Partner adresser"
|
||||
|
||||
#. module: edi
|
||||
#: sql_constraint:res.company:0
|
||||
msgid "The company name must be unique !"
|
||||
msgstr "Firmanavn må være unikt !"
|
||||
|
||||
#. module: edi
|
||||
#: constraint:res.partner:0
|
||||
msgid "Error ! You cannot create recursive associated members."
|
||||
msgstr "Feil! Du kan ikke opprette rekursive tilknyttede medlemmer."
|
||||
|
||||
#. module: edi
|
||||
#: field:edi.document,name:0
|
||||
msgid "EDI token"
|
||||
msgstr "EDI tegn."
|
||||
|
||||
#. module: edi
|
||||
#: help:edi.document,name:0
|
||||
msgid "Unique identifier for retrieving an EDI document."
|
||||
msgstr "Unik identifikator for å hente en EDI dokument."
|
||||
|
||||
#. module: edi
|
||||
#: constraint:res.company:0
|
||||
msgid "Error! You can not create recursive companies."
|
||||
msgstr "Feil ! Du kan ikke lage rekursive firmaer."
|
||||
|
||||
#. module: edi
|
||||
#: model:ir.model,name:edi.model_res_company
|
||||
msgid "Companies"
|
||||
msgstr "Firmaer"
|
||||
|
||||
#. module: edi
|
||||
#: sql_constraint:edi.document:0
|
||||
msgid "EDI Tokens must be unique!"
|
||||
msgstr "EDI tegnet må være unikt!"
|
||||
|
||||
#. module: edi
|
||||
#: model:ir.model,name:edi.model_res_currency
|
||||
msgid "Currency"
|
||||
msgstr "Valuta"
|
||||
|
||||
#. module: edi
|
||||
#: code:addons/edi/models/edi.py:153
|
||||
#, python-format
|
||||
msgid ""
|
||||
"The document you are trying to import requires the OpenERP `%s` application. "
|
||||
"You can install it by connecting as the administrator and opening the "
|
||||
"configuration assistant."
|
||||
msgstr ""
|
||||
"Dokumentet du prøver å importere krever OpenERP `% s` søknad. Du kan "
|
||||
"installere det ved å koble som administrator og åpne konfigurasjonen "
|
||||
"assistent."
|
||||
|
||||
#. module: edi
|
||||
#: help:edi.document,document:0
|
||||
msgid "EDI document content"
|
||||
msgstr "EDI dokumentinnhold"
|
||||
|
||||
#. module: edi
|
||||
#: model:ir.model,name:edi.model_edi_document
|
||||
msgid "EDI Document"
|
||||
msgstr "EDI dokument."
|
||||
|
||||
#. module: edi
|
||||
#: code:addons/edi/models/edi.py:48
|
||||
#, python-format
|
||||
msgid "'%s' is an invalid external ID"
|
||||
msgstr "'% s' er en ugyldig ekstern ID."
|
||||
|
||||
#. module: edi
|
||||
#: model:ir.model,name:edi.model_res_partner
|
||||
msgid "Partner"
|
||||
msgstr "Partner"
|
||||
|
||||
#. module: edi
|
||||
#: code:addons/edi/models/edi.py:152
|
||||
#, python-format
|
||||
msgid "Missing Application"
|
||||
msgstr "Manglende Søknad."
|
||||
|
||||
#. module: edi
|
||||
#: field:edi.document,document:0
|
||||
msgid "Document"
|
||||
msgstr "Dokument"
|
||||
|
||||
#. openerp-web
|
||||
#: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi.xml:23
|
||||
msgid "View/Print"
|
||||
msgstr "Vis / Skriv ut"
|
||||
|
||||
#. openerp-web
|
||||
#: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi.xml:28
|
||||
msgid "Import this document"
|
||||
msgstr "Importer dette dokumentet."
|
||||
|
||||
#. openerp-web
|
||||
#: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi.xml:33
|
||||
msgid "Import it into an existing OpenERP instance"
|
||||
msgstr "Importere den inn i en eksisterende OpenERP eksempel."
|
||||
|
||||
#. openerp-web
|
||||
#: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi.xml:36
|
||||
msgid "OpenERP instance address:"
|
||||
msgstr "OpenERP eksempel adresse:"
|
||||
|
||||
#. openerp-web
|
||||
#: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi.xml:39
|
||||
msgid "Import"
|
||||
msgstr "Import"
|
||||
|
||||
#. openerp-web
|
||||
#: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi.xml:44
|
||||
msgid "Import it into a new OpenERP Online instance"
|
||||
msgstr "Importere den til en ny OpenERP Online eksempel."
|
||||
|
||||
#. openerp-web
|
||||
#: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi.xml:47
|
||||
msgid "Create my new OpenERP instance"
|
||||
msgstr "Opprett min nye OpenERP eksempel."
|
||||
|
||||
#. openerp-web
|
||||
#: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi.xml:52
|
||||
msgid "Import into another application"
|
||||
msgstr "Importere til et annet program."
|
||||
|
||||
#. openerp-web
|
||||
#: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi.xml:54
|
||||
msgid ""
|
||||
"OpenERP's Electronic Data Interchange documents are based on a generic and "
|
||||
"language\n"
|
||||
" independent"
|
||||
msgstr ""
|
||||
"OpenERP's elektronisk Data utveksler dokumentene er basert på en generisk og "
|
||||
"språk.\n"
|
||||
" "
|
||||
" uavhengig."
|
||||
|
||||
#. openerp-web
|
||||
#: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi.xml:56
|
||||
msgid "JSON"
|
||||
msgstr "JSON"
|
||||
|
||||
#. openerp-web
|
||||
#: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi.xml:56
|
||||
msgid ""
|
||||
"serialization of the document's attribute.\n"
|
||||
" It is usually very quick and straightforward to "
|
||||
"create a small plug-in for your preferred\n"
|
||||
" application that will be capable of importing "
|
||||
"any OpenERP EDI document.\n"
|
||||
" You can find out more details about how to do "
|
||||
"this and what the content of OpenERP EDI documents\n"
|
||||
" is like in the"
|
||||
msgstr ""
|
||||
"Serialisering av dokumentets attributtet.\n"
|
||||
" Det er vanligvis svært rask og grei å lage en "
|
||||
"liten plug-in for din foretrukne.\n"
|
||||
" program som vil være i stand til å importere "
|
||||
"noen OpenERP EDI dokument.\n"
|
||||
" Du kan finne ut mer informasjon om hvordan du "
|
||||
"gjør dette og hva innholdet i OpenERP EDI dokumenter\n"
|
||||
" er som i."
|
||||
|
||||
#. openerp-web
|
||||
#: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi.xml:60
|
||||
msgid "OpenERP documentation"
|
||||
msgstr "OpenERP dokumentasjon."
|
||||
|
||||
#. openerp-web
|
||||
#: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi.xml:61
|
||||
msgid "To get started immediately,"
|
||||
msgstr "Å komme i gang umiddelbart,"
|
||||
|
||||
#. openerp-web
|
||||
#: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi.xml:62
|
||||
msgid "see is all it takes to use this EDI document in Python"
|
||||
msgstr "Se er alt som trengs for å bruke denne EDI dokumentet i Python."
|
||||
|
||||
#. openerp-web
|
||||
#: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi.xml:70
|
||||
msgid "You can download the raw EDI document here:"
|
||||
msgstr "Du kan laste ned den rå EDI dokumentet her:"
|
||||
|
||||
#. openerp-web
|
||||
#: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi.xml:73
|
||||
msgid "Download"
|
||||
msgstr "Nedlastning"
|
||||
|
||||
#. openerp-web
|
||||
#: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi.xml:87
|
||||
msgid "Powered by"
|
||||
msgstr "Drevet av."
|
||||
|
||||
#. openerp-web
|
||||
#: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi.xml:87
|
||||
msgid "OpenERP"
|
||||
msgstr "OpenERP"
|
||||
|
||||
#. openerp-web
|
||||
#: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi_account.xml:34
|
||||
msgid "Invoice"
|
||||
msgstr "Faktura"
|
||||
|
||||
#. openerp-web
|
||||
#: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi_account.xml:37
|
||||
msgid "Description"
|
||||
msgstr "Beskrivelse:"
|
||||
|
||||
#. openerp-web
|
||||
#: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi_account.xml:38
|
||||
#: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi_sale_purchase.xml:41
|
||||
msgid "Date"
|
||||
msgstr "Dato"
|
||||
|
||||
#. openerp-web
|
||||
#: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi_account.xml:39
|
||||
#: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi_sale_purchase.xml:40
|
||||
msgid "Your Reference"
|
||||
msgstr "Din referanse."
|
||||
|
||||
#. openerp-web
|
||||
#: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi_account.xml:50
|
||||
#: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi_sale_purchase.xml:57
|
||||
msgid "Product Description"
|
||||
msgstr "Produktbeskrivelse"
|
||||
|
||||
#. openerp-web
|
||||
#: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi_account.xml:51
|
||||
#: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi_sale_purchase.xml:58
|
||||
msgid "Quantity"
|
||||
msgstr "Antall"
|
||||
|
||||
#. openerp-web
|
||||
#: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi_account.xml:52
|
||||
#: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi_sale_purchase.xml:59
|
||||
msgid "Unit Price"
|
||||
msgstr "Enhetspris"
|
||||
|
||||
#. openerp-web
|
||||
#: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi_account.xml:53
|
||||
msgid "Discount"
|
||||
msgstr "Rabatt"
|
||||
|
||||
#. openerp-web
|
||||
#: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi_account.xml:54
|
||||
#: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi_sale_purchase.xml:61
|
||||
msgid "Price"
|
||||
msgstr "Pris"
|
||||
|
||||
#. openerp-web
|
||||
#: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi_account.xml:72
|
||||
#: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi_sale_purchase.xml:81
|
||||
msgid "Net Total:"
|
||||
msgstr "Netto total:"
|
||||
|
||||
#. openerp-web
|
||||
#: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi_account.xml:83
|
||||
#: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi_sale_purchase.xml:92
|
||||
msgid "Taxes:"
|
||||
msgstr "Avgifter:"
|
||||
|
||||
#. openerp-web
|
||||
#: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi_account.xml:94
|
||||
#: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi_sale_purchase.xml:103
|
||||
msgid "Total:"
|
||||
msgstr "Totalt:"
|
||||
|
||||
#. openerp-web
|
||||
#: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi_account.xml:106
|
||||
msgid "Tax"
|
||||
msgstr "Skatt"
|
||||
|
||||
#. openerp-web
|
||||
#: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi_account.xml:107
|
||||
msgid "Base Amount"
|
||||
msgstr "Grunnbeløp"
|
||||
|
||||
#. openerp-web
|
||||
#: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi_account.xml:108
|
||||
msgid "Amount"
|
||||
msgstr "Beløp"
|
||||
|
||||
#. openerp-web
|
||||
#: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi_account.xml:121
|
||||
#: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi_sale_purchase.xml:113
|
||||
msgid "Notes:"
|
||||
msgstr "Notater:"
|
||||
|
||||
#. openerp-web
|
||||
#: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi_account.xml:129
|
||||
#: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi_sale_purchase.xml:121
|
||||
msgid "Pay Online"
|
||||
msgstr "Betal online."
|
||||
|
||||
#. openerp-web
|
||||
#: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi_account.xml:133
|
||||
#: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi_sale_purchase.xml:125
|
||||
msgid "Paypal"
|
||||
msgstr "Paypal"
|
||||
|
||||
#. openerp-web
|
||||
#: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi_account.xml:135
|
||||
msgid ""
|
||||
"You may directly pay this invoice online via Paypal's secure payment gateway:"
|
||||
msgstr ""
|
||||
"Du kan betale direkte denne fakturaen online via Paypal er sikker betaling "
|
||||
"gateway:"
|
||||
|
||||
#. openerp-web
|
||||
#: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi_account.xml:145
|
||||
#: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi_sale_purchase.xml:137
|
||||
msgid "Bank Wire Transfer"
|
||||
msgstr "Bank Tråd overføring."
|
||||
|
||||
#. openerp-web
|
||||
#: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi_account.xml:147
|
||||
#: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi_sale_purchase.xml:139
|
||||
msgid "Please transfer"
|
||||
msgstr "Vennligst overfør."
|
||||
|
||||
#. openerp-web
|
||||
#: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi_account.xml:148
|
||||
#: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi_sale_purchase.xml:140
|
||||
msgid "to"
|
||||
msgstr "til"
|
||||
|
||||
#. openerp-web
|
||||
#: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi_account.xml:149
|
||||
msgid ""
|
||||
"(postal address on the invoice header)\n"
|
||||
" using one of the following bank accounts. Be sure to "
|
||||
"mention the invoice\n"
|
||||
" reference"
|
||||
msgstr ""
|
||||
"(postadresse på fakturaen header)\n"
|
||||
"Ved hjelp av en av følgende bankkontoer. Sørg for å nevne faktura.\n"
|
||||
"Referanse."
|
||||
|
||||
#. openerp-web
|
||||
#: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi_account.xml:151
|
||||
#: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi_sale_purchase.xml:143
|
||||
msgid "on the transfer:"
|
||||
msgstr "På overføring:"
|
||||
|
||||
#. openerp-web
|
||||
#: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi_sale_purchase.xml:36
|
||||
msgid "Order"
|
||||
msgstr "Ordre"
|
||||
|
||||
#. openerp-web
|
||||
#: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi_sale_purchase.xml:42
|
||||
msgid "Salesman"
|
||||
msgstr "Selger"
|
||||
|
||||
#. openerp-web
|
||||
#: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi_sale_purchase.xml:43
|
||||
msgid "Payment terms"
|
||||
msgstr "Betalingsbetingelser"
|
||||
|
||||
#. openerp-web
|
||||
#: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi_sale_purchase.xml:60
|
||||
msgid "Discount(%)"
|
||||
msgstr "Raball(%)"
|
||||
|
||||
#. openerp-web
|
||||
#: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi_sale_purchase.xml:127
|
||||
msgid ""
|
||||
"You may directly pay this order online via Paypal's secure payment gateway:"
|
||||
msgstr ""
|
||||
"Du kan betale direkte i denne rekkefølgen online via Paypal's sikker "
|
||||
"betaling gateway."
|
||||
|
||||
#. openerp-web
|
||||
#: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi_sale_purchase.xml:141
|
||||
msgid ""
|
||||
"(postal address on the order header)\n"
|
||||
" using one of the following bank accounts. Be sure to "
|
||||
"mention the document\n"
|
||||
" reference"
|
||||
msgstr ""
|
||||
"Ostal adresse på bestillingen topp)\n"
|
||||
"Ved hjelp av en av følgende bankkontoer. Sørg for å nevne dokumentet.\n"
|
||||
"Referanse."
|
|
@ -0,0 +1,114 @@
|
|||
# Norwegian Bokmal translation for openobject-addons
|
||||
# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
|
||||
# This file is distributed under the same license as the openobject-addons package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-02-08 00:36+0000\n"
|
||||
"PO-Revision-Date: 2012-09-07 17:58+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Norwegian Bokmal <nb@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-08 04:54+0000\n"
|
||||
"X-Generator: Launchpad (build 15914)\n"
|
||||
|
||||
#. module: event_project
|
||||
#: model:ir.model,name:event_project.model_event_project
|
||||
msgid "Event Project"
|
||||
msgstr "Arrangement Prosjekt"
|
||||
|
||||
#. module: event_project
|
||||
#: field:event.project,date:0
|
||||
msgid "Date End"
|
||||
msgstr "Sluttdato"
|
||||
|
||||
#. module: event_project
|
||||
#: view:event.project:0
|
||||
msgid "Ok"
|
||||
msgstr "Ok"
|
||||
|
||||
#. module: event_project
|
||||
#: help:event.project,project_id:0
|
||||
msgid ""
|
||||
"This is Template Project. Project of event is a duplicate of this Template. "
|
||||
"After click on 'Create Retro-planning', New Project will be duplicated from "
|
||||
"this template project."
|
||||
msgstr ""
|
||||
"Dette er ett mal Prosjekt. Prosjektet av arrangementet er en dublett av "
|
||||
"denne malen. Etter klikk på \"Create Retro-planlegging\", vil New Project "
|
||||
"dupliseres fra denne malen prosjektet."
|
||||
|
||||
#. module: event_project
|
||||
#: view:event.project:0
|
||||
#: model:ir.actions.act_window,name:event_project.action_event_project
|
||||
msgid "Retro-Planning"
|
||||
msgstr "Retro-Planlegging"
|
||||
|
||||
#. module: event_project
|
||||
#: constraint:event.event:0
|
||||
msgid "Error ! Closing Date cannot be set before Beginning Date."
|
||||
msgstr "Feil ! Sluttdato kan ikke settes før startdato."
|
||||
|
||||
#. module: event_project
|
||||
#: field:event.event,project_id:0
|
||||
msgid "Project"
|
||||
msgstr "Prosjekt"
|
||||
|
||||
#. module: event_project
|
||||
#: field:event.project,project_id:0
|
||||
msgid "Template of Project"
|
||||
msgstr "Mal av prosjekt"
|
||||
|
||||
#. module: event_project
|
||||
#: view:event.event:0
|
||||
msgid "All tasks"
|
||||
msgstr "Alle oppgaver"
|
||||
|
||||
#. module: event_project
|
||||
#: view:event.event:0
|
||||
#: model:ir.actions.act_window,name:event_project.act_event_task
|
||||
msgid "Tasks"
|
||||
msgstr "Oppgaver"
|
||||
|
||||
#. module: event_project
|
||||
#: constraint:event.event:0
|
||||
msgid "Error ! You cannot create recursive event."
|
||||
msgstr "Feil! Du kan ikke opprette rekursive hendelse."
|
||||
|
||||
#. module: event_project
|
||||
#: field:event.event,task_ids:0
|
||||
msgid "Project tasks"
|
||||
msgstr "Prosjektoppgaver"
|
||||
|
||||
#. module: event_project
|
||||
#: view:event.project:0
|
||||
msgid "Close"
|
||||
msgstr "Lukke"
|
||||
|
||||
#. module: event_project
|
||||
#: field:event.project,date_start:0
|
||||
msgid "Date Start"
|
||||
msgstr "Startdato"
|
||||
|
||||
#. module: event_project
|
||||
#: view:event.event:0
|
||||
msgid "Create Retro-Planning"
|
||||
msgstr "Opprett Retro - planlegging."
|
||||
|
||||
#. module: event_project
|
||||
#: model:ir.model,name:event_project.model_event_event
|
||||
msgid "Event"
|
||||
msgstr "Arrangement"
|
||||
|
||||
#. module: event_project
|
||||
#: view:event.event:0
|
||||
msgid "Tasks Management"
|
||||
msgstr ""
|
||||
|
||||
#~ msgid "Tasks management"
|
||||
#~ msgstr "Oppgaver ledelse"
|
|
@ -0,0 +1,335 @@
|
|||
# Norwegian Bokmal translation for openobject-addons
|
||||
# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
|
||||
# This file is distributed under the same license as the openobject-addons package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-02-08 00:36+0000\n"
|
||||
"PO-Revision-Date: 2012-09-08 18:59+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Norwegian Bokmal <nb@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-09 04:52+0000\n"
|
||||
"X-Generator: Launchpad (build 15914)\n"
|
||||
|
||||
#. module: fetchmail
|
||||
#: selection:fetchmail.server,state:0
|
||||
msgid "Confirmed"
|
||||
msgstr "Bekreftet"
|
||||
|
||||
#. module: fetchmail
|
||||
#: field:fetchmail.server,server:0
|
||||
msgid "Server Name"
|
||||
msgstr "Tjener navn"
|
||||
|
||||
#. module: fetchmail
|
||||
#: field:fetchmail.server,script:0
|
||||
msgid "Script"
|
||||
msgstr "Manus"
|
||||
|
||||
#. module: fetchmail
|
||||
#: help:fetchmail.server,priority:0
|
||||
msgid "Defines the order of processing, lower values mean higher priority"
|
||||
msgstr ""
|
||||
"Definerer rekkefølgen av behandlingen, lavere verdier betyr høyere prioritet."
|
||||
|
||||
#. module: fetchmail
|
||||
#: help:fetchmail.server,is_ssl:0
|
||||
msgid ""
|
||||
"Connections are encrypted with SSL/TLS through a dedicated port (default: "
|
||||
"IMAPS=993, POP3S=995)"
|
||||
msgstr ""
|
||||
"Tilkoblinger er kryptert med SSL / TLS gjennom en egen port (standard: IMAPS "
|
||||
"= 993, POP3S = 995)"
|
||||
|
||||
#. module: fetchmail
|
||||
#: field:fetchmail.server,attach:0
|
||||
msgid "Keep Attachments"
|
||||
msgstr "Hold Vedlegg"
|
||||
|
||||
#. module: fetchmail
|
||||
#: help:fetchmail.server,original:0
|
||||
msgid ""
|
||||
"Whether a full original copy of each email should be kept for referenceand "
|
||||
"attached to each processed message. This will usually double the size of "
|
||||
"your message database."
|
||||
msgstr ""
|
||||
"Om en full original kopi av hver e-post bør holdes for referenceand festet "
|
||||
"til hver bearbeidet melding. Dette vil vanligvis doble størrelsen på "
|
||||
"meldingen database."
|
||||
|
||||
#. module: fetchmail
|
||||
#: field:fetchmail.server,priority:0
|
||||
msgid "Server Priority"
|
||||
msgstr "Tjener prioritet."
|
||||
|
||||
#. module: fetchmail
|
||||
#: field:fetchmail.server,state:0
|
||||
msgid "State"
|
||||
msgstr "Stat"
|
||||
|
||||
#. module: fetchmail
|
||||
#: view:fetchmail.server:0
|
||||
msgid "POP"
|
||||
msgstr "POP"
|
||||
|
||||
#. module: fetchmail
|
||||
#: view:fetchmail.server:0
|
||||
msgid "Fetch Now"
|
||||
msgstr "Hente nå."
|
||||
|
||||
#. module: fetchmail
|
||||
#: model:ir.actions.act_window,name:fetchmail.action_email_server_tree
|
||||
#: model:ir.ui.menu,name:fetchmail.menu_action_fetchmail_server_tree
|
||||
msgid "Incoming Mail Servers"
|
||||
msgstr "Innkommende Mail Tjenere."
|
||||
|
||||
#. module: fetchmail
|
||||
#: field:fetchmail.server,port:0
|
||||
msgid "Port"
|
||||
msgstr "Port"
|
||||
|
||||
#. module: fetchmail
|
||||
#: view:fetchmail.server:0
|
||||
msgid "POP/IMAP Servers"
|
||||
msgstr "POP/IMAP tjenere."
|
||||
|
||||
#. module: fetchmail
|
||||
#: selection:fetchmail.server,type:0
|
||||
msgid "Local Server"
|
||||
msgstr "Lokal tjener."
|
||||
|
||||
#. module: fetchmail
|
||||
#: field:fetchmail.server,user:0
|
||||
msgid "Username"
|
||||
msgstr "Brukernavn:"
|
||||
|
||||
#. module: fetchmail
|
||||
#: model:ir.model,name:fetchmail.model_fetchmail_server
|
||||
msgid "POP/IMAP Server"
|
||||
msgstr "POP/IMAP Tjener."
|
||||
|
||||
#. module: fetchmail
|
||||
#: view:fetchmail.server:0
|
||||
msgid "Reset Confirmation"
|
||||
msgstr "Tilbakestille Bekreftelse."
|
||||
|
||||
#. module: fetchmail
|
||||
#: view:fetchmail.server:0
|
||||
msgid "SSL"
|
||||
msgstr "SSL"
|
||||
|
||||
#. module: fetchmail
|
||||
#: model:ir.model,name:fetchmail.model_mail_message
|
||||
msgid "Email Message"
|
||||
msgstr "E-post Melding."
|
||||
|
||||
#. module: fetchmail
|
||||
#: field:fetchmail.server,date:0
|
||||
msgid "Last Fetch Date"
|
||||
msgstr "Siste Hente Dato."
|
||||
|
||||
#. module: fetchmail
|
||||
#: help:fetchmail.server,action_id:0
|
||||
msgid ""
|
||||
"Optional custom server action to trigger for each incoming mail, on the "
|
||||
"record that was created or updated by this mail"
|
||||
msgstr ""
|
||||
"Ekstra tilpasset server tiltak for å utløse for hver innkommende e-post, på "
|
||||
"plata som ble opprettet eller oppdatert i denne posten."
|
||||
|
||||
#. module: fetchmail
|
||||
#: view:fetchmail.server:0
|
||||
msgid "# of emails"
|
||||
msgstr "# Av e-post."
|
||||
|
||||
#. module: fetchmail
|
||||
#: field:fetchmail.server,original:0
|
||||
msgid "Keep Original"
|
||||
msgstr "Hold Original"
|
||||
|
||||
#. module: fetchmail
|
||||
#: code:addons/fetchmail/fetchmail.py:155
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Here is what we got instead:\n"
|
||||
" %s"
|
||||
msgstr ""
|
||||
"Her er hva vi fikk i stedet:\n"
|
||||
" % s"
|
||||
|
||||
#. module: fetchmail
|
||||
#: view:fetchmail.server:0
|
||||
#: field:fetchmail.server,configuration:0
|
||||
msgid "Configuration"
|
||||
msgstr "Konfigurasjon"
|
||||
|
||||
#. module: fetchmail
|
||||
#: view:fetchmail.server:0
|
||||
msgid "Incoming Mail Server"
|
||||
msgstr "Innkommende E-post tjener."
|
||||
|
||||
#. module: fetchmail
|
||||
#: code:addons/fetchmail/fetchmail.py:155
|
||||
#, python-format
|
||||
msgid "Connection test failed!"
|
||||
msgstr "Tilkoblingen var mislykket!"
|
||||
|
||||
#. module: fetchmail
|
||||
#: help:fetchmail.server,server:0
|
||||
msgid "Hostname or IP of the mail server"
|
||||
msgstr "Vertsnavn eller IP for e-postserveren."
|
||||
|
||||
#. module: fetchmail
|
||||
#: view:fetchmail.server:0
|
||||
msgid "Server type IMAP."
|
||||
msgstr "Tjener type IMAP."
|
||||
|
||||
#. module: fetchmail
|
||||
#: field:fetchmail.server,name:0
|
||||
msgid "Name"
|
||||
msgstr "Navn"
|
||||
|
||||
#. module: fetchmail
|
||||
#: field:fetchmail.server,is_ssl:0
|
||||
msgid "SSL/TLS"
|
||||
msgstr "SSL/TLS"
|
||||
|
||||
#. module: fetchmail
|
||||
#: view:fetchmail.server:0
|
||||
msgid "Test & Confirm"
|
||||
msgstr "Test & Bekreft"
|
||||
|
||||
#. module: fetchmail
|
||||
#: field:fetchmail.server,action_id:0
|
||||
msgid "Server Action"
|
||||
msgstr "Tjenerhandling"
|
||||
|
||||
#. module: fetchmail
|
||||
#: field:mail.message,fetchmail_server_id:0
|
||||
msgid "Inbound Mail Server"
|
||||
msgstr "Inngående E-post tjener."
|
||||
|
||||
#. module: fetchmail
|
||||
#: field:fetchmail.server,message_ids:0
|
||||
#: model:ir.actions.act_window,name:fetchmail.act_server_history
|
||||
msgid "Messages"
|
||||
msgstr "Meldinger"
|
||||
|
||||
#. module: fetchmail
|
||||
#: view:fetchmail.server:0
|
||||
msgid "Search Incoming Mail Servers"
|
||||
msgstr "Søk innkommende post tjenere."
|
||||
|
||||
#. module: fetchmail
|
||||
#: field:fetchmail.server,active:0
|
||||
msgid "Active"
|
||||
msgstr "Aktiv"
|
||||
|
||||
#. module: fetchmail
|
||||
#: help:fetchmail.server,attach:0
|
||||
msgid ""
|
||||
"Whether attachments should be downloaded. If not enabled, incoming emails "
|
||||
"will be stripped of any attachments before being processed"
|
||||
msgstr ""
|
||||
"Om vedlegg skal lastes ned. Hvis ikke er aktivert, vil innkommende e-post "
|
||||
"blir fratatt eventuelle vedlegg før de behandles."
|
||||
|
||||
#. module: fetchmail
|
||||
#: view:fetchmail.server:0
|
||||
msgid "Advanced Options"
|
||||
msgstr ""
|
||||
|
||||
#. module: fetchmail
|
||||
#: selection:fetchmail.server,type:0
|
||||
msgid "IMAP Server"
|
||||
msgstr "IMAP-tjener"
|
||||
|
||||
#. module: fetchmail
|
||||
#: view:fetchmail.server:0
|
||||
msgid "IMAP"
|
||||
msgstr "IMAP"
|
||||
|
||||
#. module: fetchmail
|
||||
#: view:fetchmail.server:0
|
||||
msgid "Server type POP."
|
||||
msgstr "Tjener type POP."
|
||||
|
||||
#. module: fetchmail
|
||||
#: field:fetchmail.server,password:0
|
||||
msgid "Password"
|
||||
msgstr "Passord:"
|
||||
|
||||
#. module: fetchmail
|
||||
#: view:fetchmail.server:0
|
||||
msgid "Actions to Perform on Incoming Mails"
|
||||
msgstr "Tiltak for å utføre på innkommende post."
|
||||
|
||||
#. module: fetchmail
|
||||
#: field:fetchmail.server,type:0
|
||||
msgid "Server Type"
|
||||
msgstr "Tjener Type."
|
||||
|
||||
#. module: fetchmail
|
||||
#: view:fetchmail.server:0
|
||||
msgid "Login Information"
|
||||
msgstr "Inn loggings informasjon."
|
||||
|
||||
#. module: fetchmail
|
||||
#: view:fetchmail.server:0
|
||||
msgid "Server Information"
|
||||
msgstr "Tjenerinformasjon"
|
||||
|
||||
#. module: fetchmail
|
||||
#: view:fetchmail.server:0
|
||||
msgid "If SSL required."
|
||||
msgstr "Hvis SSL nødvendig."
|
||||
|
||||
#. module: fetchmail
|
||||
#: view:fetchmail.server:0
|
||||
msgid "Advanced"
|
||||
msgstr "Avansert"
|
||||
|
||||
#. module: fetchmail
|
||||
#: view:fetchmail.server:0
|
||||
msgid "Server & Login"
|
||||
msgstr "Tjener og Logg inn."
|
||||
|
||||
#. module: fetchmail
|
||||
#: help:fetchmail.server,object_id:0
|
||||
msgid ""
|
||||
"Process each incoming mail as part of a conversation corresponding to this "
|
||||
"document type. This will create new documents for new conversations, or "
|
||||
"attach follow-up emails to the existing conversations (documents)."
|
||||
msgstr ""
|
||||
"Behandle hver innkommende post som del av en samtale tilsvarende denne "
|
||||
"dokumenttypen. Dette vil skape nye dokumenter for nye samtaler, eller legge "
|
||||
"oppfølging e-post til de eksisterende samtaler (dokumenter)."
|
||||
|
||||
#. module: fetchmail
|
||||
#: field:fetchmail.server,object_id:0
|
||||
msgid "Create a New Record"
|
||||
msgstr "Oppretter en ny oppføring."
|
||||
|
||||
#. module: fetchmail
|
||||
#: selection:fetchmail.server,state:0
|
||||
msgid "Not Confirmed"
|
||||
msgstr "Ikke bekreftet."
|
||||
|
||||
#. module: fetchmail
|
||||
#: selection:fetchmail.server,type:0
|
||||
msgid "POP Server"
|
||||
msgstr "POP tjener."
|
||||
|
||||
#. module: fetchmail
|
||||
#: view:mail.message:0
|
||||
msgid "Mail Server"
|
||||
msgstr "E-posttjener"
|
||||
|
||||
#~ msgid "Advanced options"
|
||||
#~ msgstr "Avanserte alternativer"
|
|
@ -0,0 +1,122 @@
|
|||
# Norwegian Bokmal translation for openobject-addons
|
||||
# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
|
||||
# This file is distributed under the same license as the openobject-addons package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-02-08 00:36+0000\n"
|
||||
"PO-Revision-Date: 2012-09-07 19:23+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Norwegian Bokmal <nb@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-08 04:54+0000\n"
|
||||
"X-Generator: Launchpad (build 15914)\n"
|
||||
|
||||
#. module: google_base_account
|
||||
#: field:res.users,gmail_user:0
|
||||
msgid "Username"
|
||||
msgstr "Brukernavn:"
|
||||
|
||||
#. module: google_base_account
|
||||
#: model:ir.actions.act_window,name:google_base_account.act_google_login_form
|
||||
msgid "Google Login"
|
||||
msgstr "Google Logg inn"
|
||||
|
||||
#. module: google_base_account
|
||||
#: code:addons/google_base_account/wizard/google_login.py:29
|
||||
#, python-format
|
||||
msgid "Google Contacts Import Error!"
|
||||
msgstr "Google kontakter Import Feil!"
|
||||
|
||||
#. module: google_base_account
|
||||
#: view:res.users:0
|
||||
msgid " Synchronization "
|
||||
msgstr " Synkronisering "
|
||||
|
||||
#. module: google_base_account
|
||||
#: sql_constraint:res.users:0
|
||||
msgid "You can not have two users with the same login !"
|
||||
msgstr "Du kan ikke ha to brukere med samme login!"
|
||||
|
||||
#. module: google_base_account
|
||||
#: code:addons/google_base_account/wizard/google_login.py:75
|
||||
#, python-format
|
||||
msgid "Error"
|
||||
msgstr "Feil"
|
||||
|
||||
#. module: google_base_account
|
||||
#: view:google.login:0
|
||||
msgid "Google login"
|
||||
msgstr "Google Logg Inn."
|
||||
|
||||
#. module: google_base_account
|
||||
#: model:ir.model,name:google_base_account.model_res_users
|
||||
msgid "res.users"
|
||||
msgstr "res.Brukere."
|
||||
|
||||
#. module: google_base_account
|
||||
#: field:google.login,password:0
|
||||
msgid "Google Password"
|
||||
msgstr "Google passord."
|
||||
|
||||
#. module: google_base_account
|
||||
#: view:google.login:0
|
||||
msgid "_Cancel"
|
||||
msgstr "_Avbryt"
|
||||
|
||||
#. module: google_base_account
|
||||
#: view:res.users:0
|
||||
msgid "Google Account"
|
||||
msgstr "Google-konto"
|
||||
|
||||
#. module: google_base_account
|
||||
#: field:google.login,user:0
|
||||
msgid "Google Username"
|
||||
msgstr "Google Brukernavn."
|
||||
|
||||
#. module: google_base_account
|
||||
#: code:addons/google_base_account/wizard/google_login.py:29
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Please install gdata-python-client from http://code.google.com/p/gdata-"
|
||||
"python-client/downloads/list"
|
||||
msgstr ""
|
||||
"Vennligst Installer gdata-python-client from http://code.google.com/p/gdata-"
|
||||
"python-client/downloads/list"
|
||||
|
||||
#. module: google_base_account
|
||||
#: model:ir.model,name:google_base_account.model_google_login
|
||||
msgid "Google Contact"
|
||||
msgstr "Google kontakt"
|
||||
|
||||
#. module: google_base_account
|
||||
#: view:google.login:0
|
||||
msgid "_Login"
|
||||
msgstr "_Logg inn"
|
||||
|
||||
#. module: google_base_account
|
||||
#: constraint:res.users:0
|
||||
msgid "The chosen company is not in the allowed companies for this user"
|
||||
msgstr ""
|
||||
"Det valgte firmaet er ikke i listen over tillatte firmaer for denne brukeren"
|
||||
|
||||
#. module: google_base_account
|
||||
#: field:res.users,gmail_password:0
|
||||
msgid "Password"
|
||||
msgstr "Passord:"
|
||||
|
||||
#. module: google_base_account
|
||||
#: code:addons/google_base_account/wizard/google_login.py:75
|
||||
#, python-format
|
||||
msgid "Authentication fail check the user and password !"
|
||||
msgstr "Autentisering mislykkes sjekk brukernavn og passord!"
|
||||
|
||||
#. module: google_base_account
|
||||
#: view:google.login:0
|
||||
msgid "ex: user@gmail.com"
|
||||
msgstr "Ex:Bruker@gmail.com"
|
|
@ -20,16 +20,12 @@
|
|||
<field name="arch" type="xml">
|
||||
<form string="Employee" version="7.0">
|
||||
<sheet>
|
||||
<field name="image_medium" widget='image' class="oe_right oe_avatar"/>
|
||||
<field name="image_medium" widget='image' class="oe_left oe_avatar"/>
|
||||
<div class="oe_title">
|
||||
<label for="name" class="oe_edit_only"/>
|
||||
<h1>
|
||||
<field name="name"/>
|
||||
</h1>
|
||||
<label for="job_id" class="oe_edit_only"/>
|
||||
<h2>
|
||||
<field name="job_id" options='{"no_open": true}' domain="[('state','!=','old')]" context="{'form_view_ref': 'hr.view_hr_job_employee_form'}"/>
|
||||
</h2>
|
||||
<label for="category_ids" class="oe_edit_only"/>
|
||||
<field name="category_ids" widget="many2many_tags" placeholder="e.g. Part Time"/>
|
||||
</div>
|
||||
|
@ -37,44 +33,55 @@
|
|||
<!-- Put here related buttons -->
|
||||
</div>
|
||||
<notebook>
|
||||
<page string="Information">
|
||||
<page string="Public Information">
|
||||
<group>
|
||||
<group>
|
||||
<group string="Contact Information">
|
||||
<field name="work_email" widget="email"/>
|
||||
<field name="work_phone"/>
|
||||
<field name="mobile_phone"/>
|
||||
</group>
|
||||
<group string="Position">
|
||||
<field name="department_id" on_change="onchange_department_id(department_id)"/>
|
||||
<field name="company_id" groups="base.group_multi_company" on_change="onchange_company(company_id)"/>
|
||||
<field name="user_id" on_change="onchange_user(user_id)"/>
|
||||
<field name="job_id" options='{"no_open": true}' domain="[('state','!=','old')]" context="{'form_view_ref': 'hr.view_hr_job_employee_form'}"/>
|
||||
<field name="parent_id"/>
|
||||
<field name="coach_id"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="work_email" widget="email"/>
|
||||
<field name="work_phone"/>
|
||||
<field name="address_id" on_change="onchange_address_id(address_id)"/>
|
||||
<field name="mobile_phone"/>
|
||||
<field name="identification_id" groups="base.group_hr_user"/>
|
||||
<field name="passport_id" groups="base.group_hr_user"/>
|
||||
<field name="otherid" groups="base.group_hr_user"/>
|
||||
</group>
|
||||
<group name="active_group">
|
||||
<field name="active"/>
|
||||
<field name="company_id" groups="base.group_multi_company" on_change="onchange_company(company_id)"/>
|
||||
<field name="user_id" on_change="onchange_user(user_id)" string="Related User"/>
|
||||
<field name="address_id" on_change="onchange_address_id(address_id)" context="{'show_address': 1}" options='{"always_reload": true, "highlight_first_line": true}'/>
|
||||
</group>
|
||||
</group>
|
||||
<field name="notes" placeholder="Other Information ..." colspan="4"/>
|
||||
</page>
|
||||
<page string="Personal Information" groups="base.group_hr_user">
|
||||
<group col="4">
|
||||
<group>
|
||||
<group>
|
||||
<group string="Citizenship & Other Info">
|
||||
<field name="country_id" options='{"no_open": true}'/>
|
||||
<field name="identification_id" groups="base.group_hr_user"/>
|
||||
<field name="passport_id" groups="base.group_hr_user"/>
|
||||
<field name="bank_account_id"/>
|
||||
<field name="address_home_id"/>
|
||||
<field name="otherid" groups="base.group_hr_user"/>
|
||||
</group>
|
||||
<group>
|
||||
<group string="Contact Information">
|
||||
<field name="address_home_id" context="{'show_address': 1}" options='{"always_reload": true, "highlight_first_line": true}'/>
|
||||
</group>
|
||||
<group string="Status">
|
||||
<field name="gender"/>
|
||||
<field name="marital"/>
|
||||
</group>
|
||||
<group string="Birth">
|
||||
<field name="birthday"/>
|
||||
</group>
|
||||
</group>
|
||||
</page>
|
||||
<page string="HR Settings" groups="base.group_hr_user">
|
||||
<group>
|
||||
<group string="Active" name="active_group">
|
||||
<field name="active"/>
|
||||
</group>
|
||||
</group>
|
||||
</page>
|
||||
</notebook>
|
||||
</sheet>
|
||||
</form>
|
||||
|
|
|
@ -43,7 +43,6 @@ actions(Sign in/Sign out) performed by them.
|
|||
'wizard/hr_attendance_bymonth_view.xml',
|
||||
'wizard/hr_attendance_byweek_view.xml',
|
||||
'wizard/hr_attendance_error_view.xml',
|
||||
'wizard/hr_attendance_sign_in_out_view.xml',
|
||||
],
|
||||
'demo': ['hr_attendance_demo.xml'],
|
||||
'test': [
|
||||
|
@ -53,5 +52,10 @@ actions(Sign in/Sign out) performed by them.
|
|||
'installable': True,
|
||||
'auto_install': False,
|
||||
'certificate': '0063495605613',
|
||||
|
||||
#web
|
||||
"js": ["static/src/js/attendance.js"],
|
||||
'qweb' : ["static/src/xml/attendance.xml"],
|
||||
'css' : ["static/src/css/slider.css"],
|
||||
}
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
|
|
@ -112,9 +112,23 @@ class hr_employee(osv.osv):
|
|||
for res in cr.fetchall():
|
||||
result[res[1]] = res[0] == 'sign_in' and 'present' or 'absent'
|
||||
return result
|
||||
|
||||
def _last_sign(self, cr, uid, ids, name, args, context=None):
|
||||
result = {}
|
||||
if not ids:
|
||||
return result
|
||||
for id in ids:
|
||||
result[id] = False
|
||||
cr.execute("""select max(name) as name
|
||||
from hr_attendance
|
||||
where action in ('sign_in', 'sign_out') and employee_id = %s""",(id,))
|
||||
for res in cr.fetchall():
|
||||
result[id] = res[0]
|
||||
return result
|
||||
|
||||
_columns = {
|
||||
'state': fields.function(_state, type='selection', selection=[('absent', 'Absent'), ('present', 'Present')], string='Attendance'),
|
||||
'last_sign': fields.function(_last_sign, type='datetime', string='Last Sign'),
|
||||
}
|
||||
|
||||
def _action_check(self, cr, uid, emp_id, dt=False, context=None):
|
||||
|
@ -122,30 +136,25 @@ class hr_employee(osv.osv):
|
|||
res = cr.fetchone()
|
||||
return not (res and (res[0]>=(dt or time.strftime('%Y-%m-%d %H:%M:%S'))))
|
||||
|
||||
def attendance_action_change(self, cr, uid, ids, type='action', context=None, dt=False, *args):
|
||||
obj_attendance = self.pool.get('hr.attendance')
|
||||
id = False
|
||||
warning_sign = 'sign'
|
||||
res = {}
|
||||
def attendance_action_change(self, cr, uid, ids, context=None):
|
||||
if context is None:
|
||||
context = {}
|
||||
action_date = context.get('action_date', False)
|
||||
action = context.get('action', False)
|
||||
hr_attendance = self.pool.get('hr.attendance')
|
||||
warning_sign = {'sign_in': _('Sign In'), 'sign_out': _('Sign Out')}
|
||||
for employee in self.browse(cr, uid, ids, context=context):
|
||||
if not action:
|
||||
if employee.state == 'present': action = 'sign_out'
|
||||
if employee.state == 'absent': action = 'sign_in'
|
||||
|
||||
#Special case when button calls this method: type=context
|
||||
if isinstance(type, dict):
|
||||
type = type.get('type','action')
|
||||
if type == 'sign_in':
|
||||
warning_sign = "Sign In"
|
||||
elif type == 'sign_out':
|
||||
warning_sign = "Sign Out"
|
||||
for emp in self.read(cr, uid, ids, ['id'], context=context):
|
||||
if not self._action_check(cr, uid, emp['id'], dt, context):
|
||||
raise osv.except_osv(_('Warning!'), _('You tried to %s with a date anterior to another event !\nTry to contact the administrator to correct attendances.')%(warning_sign,))
|
||||
if not self._action_check(cr, uid, employee.id, action_date, context):
|
||||
raise osv.except_osv(_('Warning'), _('You tried to %s with a date anterior to another event !\nTry to contact the HR Manager to correct attendances.')%(warning_sign[action],))
|
||||
|
||||
res = {'action': type, 'employee_id': emp['id']}
|
||||
if dt:
|
||||
res['name'] = dt
|
||||
id = obj_attendance.create(cr, uid, res, context=context)
|
||||
|
||||
if type != 'action':
|
||||
return id
|
||||
vals = {'action': action, 'employee_id': employee.id}
|
||||
if action_date:
|
||||
vals['name'] = action_date
|
||||
hr_attendance.create(cr, uid, vals, context=context)
|
||||
return True
|
||||
|
||||
hr_employee()
|
||||
|
|
|
@ -136,3 +136,5 @@
|
|||
|
||||
</data>
|
||||
</openerp>
|
||||
|
||||
|
||||
|
|
|
@ -0,0 +1,33 @@
|
|||
|
||||
.openerp .oe_attendance_status {
|
||||
height: 32px;
|
||||
width: 32px;
|
||||
display: inline-block;
|
||||
}
|
||||
.openerp .oe_attendance_signin {
|
||||
float:left;
|
||||
height: 32px;
|
||||
width: 32px;
|
||||
background: url(/hr_attendance/static/src/img/emp-out32.png);
|
||||
cursor: pointer;
|
||||
}
|
||||
.openerp .oe_attendance_signin:hover {
|
||||
background: url(/hr_attendance/static/src/img/emp-out-disable32.png);
|
||||
}
|
||||
.openerp .oe_attendance_status.oe_attendance_signed .oe_attendance_signin {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.openerp .oe_attendance_signout {
|
||||
float:right;
|
||||
height: 32px;
|
||||
width: 32px;
|
||||
background: url(/hr_attendance/static/src/img/emp-in32.png);
|
||||
cursor: pointer;
|
||||
}
|
||||
.openerp .oe_attendance_signout:hover {
|
||||
background: url(/hr_attendance/static/src/img/emp-in-disable32.png);
|
||||
}
|
||||
.openerp .oe_attendance_status.oe_attendance_nosigned .oe_attendance_signout {
|
||||
display: none;
|
||||
}
|
Binary file not shown.
After Width: | Height: | Size: 1.1 KiB |
Binary file not shown.
After Width: | Height: | Size: 2.1 KiB |
Binary file not shown.
After Width: | Height: | Size: 1.1 KiB |
Binary file not shown.
After Width: | Height: | Size: 2.0 KiB |
|
@ -0,0 +1,84 @@
|
|||
|
||||
openerp.hr_attendance = function (instance) {
|
||||
|
||||
var QWeb = instance.web.qweb;
|
||||
var _t = instance.web._t;
|
||||
var _lt = instance.web._lt;
|
||||
|
||||
instance.hr_attendance.AttendanceSlider = instance.web.Widget.extend({
|
||||
template: 'AttendanceSlider',
|
||||
init: function (parent) {
|
||||
this._super(parent);
|
||||
this.set({"signed_in": false});
|
||||
},
|
||||
start: function() {
|
||||
var self = this;
|
||||
var tmp = function() {
|
||||
this.$el.toggleClass("oe_attendance_nosigned", ! this.get("signed_in"));
|
||||
this.$el.toggleClass("oe_attendance_signed", this.get("signed_in"));
|
||||
};
|
||||
this.on("change:signed_in", this, tmp);
|
||||
_.bind(tmp, this)();
|
||||
this.$(".oe_attendance_signin").click(function() {
|
||||
self.do_update_attendance();
|
||||
});
|
||||
this.$(".oe_attendance_signout").click(function() {
|
||||
self.do_update_attendance();
|
||||
});
|
||||
this.$el.tipsy({
|
||||
title: function() {
|
||||
var last_text = instance.web.format_value(self.last_sign, {type: "datetime"});
|
||||
var current_text = instance.web.format_value(new Date(), {type: "datetime"});
|
||||
var duration = $.timeago(self.last_sign);
|
||||
if (self.get("signed_in")) {
|
||||
return _.str.sprintf(_t("Last sign in: %s,<br />%s.<br />Click to sign out."), last_text, duration);
|
||||
} else {
|
||||
return _.str.sprintf(_t("Click to Sign In at %s."), current_text);
|
||||
}
|
||||
},
|
||||
html: true,
|
||||
});
|
||||
return this.check_attendance();
|
||||
},
|
||||
do_update_attendance: function () {
|
||||
var self = this;
|
||||
var hr_employee = new instance.web.DataSet(self, 'hr.employee');
|
||||
hr_employee.call('attendance_action_change', [
|
||||
[self.employee.id]
|
||||
]).done(function (result) {
|
||||
self.last_sign = new Date();
|
||||
self.set({"signed_in": ! self.get("signed_in")});
|
||||
});
|
||||
},
|
||||
check_attendance: function () {
|
||||
var self = this;
|
||||
self.employee = false;
|
||||
this.$el.hide();
|
||||
var employee = new instance.web.DataSetSearch(self, 'hr.employee', self.session.user_context, [
|
||||
['user_id', '=', self.session.uid]
|
||||
]);
|
||||
return employee.read_slice(['id', 'name', 'state', 'last_sign']).pipe(function (res) {
|
||||
if (_.isEmpty(res))
|
||||
return;
|
||||
self.$el.show();
|
||||
self.employee = res[0];
|
||||
self.last_sign = instance.web.str_to_datetime(self.employee.last_sign);
|
||||
self.set({"signed_in": self.employee.state !== "absent"});
|
||||
});
|
||||
},
|
||||
});
|
||||
|
||||
instance.web.UserMenu.include({
|
||||
do_update: function () {
|
||||
this._super();
|
||||
var self = this;
|
||||
this.update_promise = this.update_promise.then(function () {
|
||||
if (self.attendanceslider)
|
||||
return;
|
||||
self.attendanceslider = new instance.hr_attendance.AttendanceSlider(self);
|
||||
|
||||
self.attendanceslider.prependTo(instance.webclient.$('.oe_systray'));
|
||||
});
|
||||
},
|
||||
});
|
||||
}
|
|
@ -0,0 +1,13 @@
|
|||
<template>
|
||||
<t t-name="AttendanceSlider">
|
||||
<div class="oe_attendance_status oe_attendance_nosigned" data-tipsy="true">
|
||||
<div class="oe_attendance_signin"></div>
|
||||
<div class="oe_attendance_signout"></div>
|
||||
</div>
|
||||
</t>
|
||||
</template>
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
@ -1,16 +1,8 @@
|
|||
-
|
||||
In order to test attendance process in OpenERP, I entry of SignIn of employee.
|
||||
-
|
||||
!python {model: hr.sign.in.out}: |
|
||||
context.update({'emp_id': [ref('hr.employee_al')]}) #TOFIX: emp_ids instead of 'emp_id'
|
||||
-
|
||||
!record {model: hr.sign.in.out, id: employee_sign_in}:
|
||||
{}
|
||||
-
|
||||
Employee Signs In.
|
||||
-
|
||||
!python {model: hr.sign.in.out}: |
|
||||
self.si_check(cr, uid, [ref("employee_sign_in")], context=context)
|
||||
!python {model: hr.employee}: |
|
||||
self.attendance_action_change(cr, uid, [ref("hr.employee_al")], context=context)
|
||||
-
|
||||
I check that Employee is "Present".
|
||||
-
|
||||
|
@ -19,10 +11,10 @@
|
|||
-
|
||||
After few seconds, employee sign's out.
|
||||
-
|
||||
!python {model: hr.sign.in.out}: |
|
||||
!python {model: hr.employee}: |
|
||||
import time
|
||||
time.sleep(2)
|
||||
self.so_check(cr, uid, [ref("employee_sign_in")], context=context)
|
||||
self.attendance_action_change(cr, uid, [ref("hr.employee_al")], context=context)
|
||||
-
|
||||
I check that Employee is "Absent".
|
||||
-
|
||||
|
|
|
@ -19,9 +19,8 @@
|
|||
#
|
||||
##############################################################################
|
||||
|
||||
import hr_attendance_sign_in_out
|
||||
import hr_attendance_error
|
||||
import hr_attendance_byweek
|
||||
import hr_attendance_bymonth
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
|
|
@ -1,184 +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 time
|
||||
|
||||
from osv import osv, fields
|
||||
from tools.translate import _
|
||||
|
||||
class hr_si_so_ask(osv.osv_memory):
|
||||
_name = 'hr.sign.in.out.ask'
|
||||
_description = 'Ask for Sign In Out'
|
||||
_columns = {
|
||||
'name': fields.char('Employees name', size=32, required=True, readonly=True),
|
||||
'last_time': fields.datetime('Your last sign out', required=True),
|
||||
'emp_id': fields.many2one('hr.employee', 'Empoyee ID', readonly=True),
|
||||
}
|
||||
|
||||
def _get_empname(self, cr, uid, context=None):
|
||||
emp_id = context.get('emp_id', self.pool.get('hr.employee').search(cr, uid, [('user_id', '=', uid)], context=context))
|
||||
if emp_id:
|
||||
employee = self.pool.get('hr.employee').browse(cr, uid, emp_id, context=context)[0].name
|
||||
return employee
|
||||
return ''
|
||||
|
||||
def _get_empid(self, cr, uid, context=None):
|
||||
emp_id = context.get('emp_id', self.pool.get('hr.employee').search(cr, uid, [('user_id', '=', uid)], context=context))
|
||||
if emp_id:
|
||||
return emp_id[0]
|
||||
return False
|
||||
|
||||
_defaults = {
|
||||
'name': _get_empname,
|
||||
'emp_id': _get_empid,
|
||||
}
|
||||
|
||||
def sign_in(self, cr, uid, ids, context=None):
|
||||
data = self.read(cr, uid, ids, [], context=context)[0]
|
||||
data['emp_id'] = data['emp_id'] and data['emp_id'][0]
|
||||
return self.pool.get('hr.sign.in.out').sign_in(cr, uid, data, context)
|
||||
|
||||
def sign_out(self, cr, uid, ids, context=None):
|
||||
data = self.read(cr, uid, ids, [], context=context)[0]
|
||||
data['emp_id'] = data['emp_id'] and data['emp_id'][0]
|
||||
return self.pool.get('hr.sign.in.out').sign_out(cr, uid, data, context)
|
||||
|
||||
hr_si_so_ask()
|
||||
|
||||
class hr_sign_in_out(osv.osv_memory):
|
||||
_name = 'hr.sign.in.out'
|
||||
_description = 'Sign In Sign Out'
|
||||
|
||||
_columns = {
|
||||
'name': fields.char('Employees name', size=32, required=True, readonly=True),
|
||||
'state': fields.char('Current state', size=32, required=True, readonly=True),
|
||||
'emp_id': fields.many2one('hr.employee', 'Empoyee ID', readonly=True),
|
||||
}
|
||||
|
||||
def _get_empid(self, cr, uid, context=None):
|
||||
emp_id = context.get('emp_id', self.pool.get('hr.employee').search(cr, uid, [('user_id', '=', uid)], context=context))
|
||||
if emp_id:
|
||||
employee = self.pool.get('hr.employee').browse(cr, uid, emp_id, context=context)[0]
|
||||
return {'name': employee.name, 'state': employee.state, 'emp_id': emp_id[0]}
|
||||
return {}
|
||||
|
||||
def default_get(self, cr, uid, fields_list, context=None):
|
||||
res = super(hr_sign_in_out, self).default_get(cr, uid, fields_list, context=context)
|
||||
res_emp = self._get_empid(cr, uid, context=context)
|
||||
res.update(res_emp)
|
||||
return res
|
||||
|
||||
def si_check(self, cr, uid, ids, context=None):
|
||||
obj_model = self.pool.get('ir.model.data')
|
||||
att_obj = self.pool.get('hr.attendance')
|
||||
data = self.read(cr, uid, ids, [], context=context)[0]
|
||||
data['emp_id'] = data['emp_id'] and data['emp_id'][0]
|
||||
emp_id = data['emp_id']
|
||||
att_id = att_obj.search(cr, uid, [('employee_id', '=', emp_id)], limit=1, order='name desc')
|
||||
last_att = att_obj.browse(cr, uid, att_id, context=context)
|
||||
if last_att:
|
||||
last_att = last_att[0]
|
||||
cond = not last_att or last_att.action == 'sign_out'
|
||||
if cond:
|
||||
return self.sign_in(cr, uid, data, context)
|
||||
else:
|
||||
model_data_ids = obj_model.search(cr,uid,[('model','=','ir.ui.view'),('name','=','view_hr_attendance_so_ask')], context=context)
|
||||
resource_id = obj_model.read(cr, uid, model_data_ids, fields=['res_id'], context=context)[0]['res_id']
|
||||
return {
|
||||
'name': _('Sign in / Sign out'),
|
||||
'view_type': 'form',
|
||||
'view_mode': 'tree,form',
|
||||
'res_model': 'hr.sign.in.out.ask',
|
||||
'views': [(resource_id,'form')],
|
||||
'type': 'ir.actions.act_window',
|
||||
'context': context,
|
||||
'target': 'new',
|
||||
}
|
||||
|
||||
def so_check(self, cr, uid, ids, context=None):
|
||||
obj_model = self.pool.get('ir.model.data')
|
||||
att_obj = self.pool.get('hr.attendance')
|
||||
data = self.read(cr, uid, ids, [], context=context)[0]
|
||||
data['emp_id'] = data['emp_id'] and data['emp_id'][0]
|
||||
emp_id = data['emp_id']
|
||||
att_id = att_obj.search(cr, uid, [('employee_id', '=', emp_id),('action', '!=', 'action')], limit=1, order='name desc')
|
||||
last_att = att_obj.browse(cr, uid, att_id, context=context)
|
||||
if last_att:
|
||||
last_att = last_att[0]
|
||||
if not att_id and not last_att:
|
||||
model_data_ids = obj_model.search(cr, uid, [('model','=','ir.ui.view'),('name','=','view_hr_attendance_message')], context=context)
|
||||
resource_id = obj_model.read(cr, uid, model_data_ids, fields=['res_id'], context=context)[0]['res_id']
|
||||
return {
|
||||
'name': _('Sign in / Sign out'),
|
||||
'view_type': 'form',
|
||||
'view_mode': 'tree,form',
|
||||
'res_model': 'hr.sign.in.out',
|
||||
'views': [(resource_id,'form')],
|
||||
'type': 'ir.actions.act_window',
|
||||
'context': context,
|
||||
'target': 'new',
|
||||
}
|
||||
|
||||
cond = last_att and last_att['action'] == 'sign_in'
|
||||
if cond:
|
||||
return self.sign_out(cr, uid, data, context)
|
||||
else:
|
||||
model_data_ids = obj_model.search(cr, uid, [('model','=','ir.ui.view'),('name','=','view_hr_attendance_si_ask')], context=context)
|
||||
resource_id = obj_model.read(cr, uid, model_data_ids, fields=['res_id'], context=context)[0]['res_id']
|
||||
return {
|
||||
'name': _('Sign in / Sign out'),
|
||||
'view_type': 'form',
|
||||
'view_mode': 'tree,form',
|
||||
'res_model': 'hr.sign.in.out.ask',
|
||||
'views': [(resource_id,'form')],
|
||||
'type': 'ir.actions.act_window',
|
||||
'target': 'new',
|
||||
}
|
||||
|
||||
def sign_in(self, cr, uid, data, context=None):
|
||||
if context is None:
|
||||
context = {}
|
||||
emp_id = data['emp_id']
|
||||
if 'last_time' in data:
|
||||
if data['last_time'] > time.strftime('%Y-%m-%d %H:%M:%S'):
|
||||
raise osv.except_osv(_('User Error!'), _('The sign-out date must be in the past.'))
|
||||
self.pool.get('hr.attendance').create(cr, uid, {'name': data['last_time'], 'action': 'sign_out',
|
||||
'employee_id': emp_id}, context=context)
|
||||
try:
|
||||
self.pool.get('hr.employee').attendance_action_change(cr, uid, [emp_id], 'sign_in')
|
||||
except:
|
||||
raise osv.except_osv(_('User Error!'), _('A sign-in must be right after a sign-out!'))
|
||||
return {'type': 'ir.actions.act_window_close'} # To do: Return Success message
|
||||
|
||||
def sign_out(self, cr, uid, data, context=None):
|
||||
emp_id = data['emp_id']
|
||||
if 'last_time' in data:
|
||||
if data['last_time'] > time.strftime('%Y-%m-%d %H:%M:%S'):
|
||||
raise osv.except_osv(_('User Error!'), _('The sign-in date must be in the past.'))
|
||||
self.pool.get('hr.attendance').create(cr, uid, {'name':data['last_time'], 'action':'sign_in', 'employee_id':emp_id}, context=context)
|
||||
try:
|
||||
self.pool.get('hr.employee').attendance_action_change(cr, uid, [emp_id], 'sign_out')
|
||||
except:
|
||||
raise osv.except_osv(_('User Error!'), _('A sign-out must be right after a sign-in.'))
|
||||
return {'type': 'ir.actions.act_window_close'} # To do: Return Success message
|
||||
|
||||
hr_sign_in_out()
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
|
@ -1,90 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<openerp>
|
||||
<data>
|
||||
<record id="view_hr_attendance_sigh_in_out" model="ir.ui.view">
|
||||
<field name="name">hr.sign.in.out.form</field>
|
||||
<field name="model">hr.sign.in.out</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Sign in / Sign out" version="7.0">
|
||||
<group>
|
||||
<separator colspan="4" string="Sign in / Sign out"/>
|
||||
<label colspan="4" nolabel="1" string="If you need your staff to sign in when they arrive at work and sign out again at the end of the day, OpenERP allows you to manage this with this tool. If each employee has been linked to a system user, then they can encode their time with this action button."/>
|
||||
<newline/>
|
||||
</group>
|
||||
<group colspan="4" >
|
||||
<field name="name" />
|
||||
<field name="state" />
|
||||
</group>
|
||||
<footer>
|
||||
<button string="Sign in" name="si_check" type="object" class="oe_highlight"/>
|
||||
<button string="Sign out" name="so_check" type="object" class="oe_highlight"/>
|
||||
or
|
||||
<button string="Cancel" class="oe_link" special="cancel" />
|
||||
</footer>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="view_hr_attendance_message" model="ir.ui.view">
|
||||
<field name="name">hr.sign.in.out.form</field>
|
||||
<field name="model">hr.sign.in.out</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Sign in / Sign out" version="7.0">
|
||||
<separator string="Sign-out Entry Must Follow Sign-in." colspan="4" />
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="action_hr_attendance_sigh_in_out" model="ir.actions.act_window">
|
||||
<field name="name">Sign in / Sign out</field>
|
||||
<field name="res_model">hr.sign.in.out</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="view_id" ref="view_hr_attendance_sigh_in_out"/>
|
||||
<field name="target">new</field>
|
||||
<field name="help">Sign in / Sign out. In some companies, staff have to sign in when they arrive at work and sign out again at the end of the day. If each employee has been linked to a system user, then they can encode their time with this action button.</field>
|
||||
</record>
|
||||
|
||||
<menuitem action="action_hr_attendance_sigh_in_out" id="menu_hr_attendance_sigh_in_out"
|
||||
parent="menu_hr_attendance" sequence="4"/>
|
||||
|
||||
<record id="view_hr_attendance_so_ask" model="ir.ui.view">
|
||||
<field name="name">hr.sign.in.out.ask.form</field>
|
||||
<field name="model">hr.sign.in.out.ask</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="hr.sign.out.ask" version="7.0">
|
||||
<header>
|
||||
<button string="Sign in" name="sign_in" type="object" class="oe_highlight"/>
|
||||
or
|
||||
<button string="Cancel" class="oe_link" special="cancel" />
|
||||
</header>
|
||||
<group colspan="4" >
|
||||
<separator string="You did not sign out the last time. Please enter the date and time you signed out." colspan="4" />
|
||||
<field name="name" />
|
||||
<field name="last_time" string="Your last sign out" />
|
||||
</group>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="view_hr_attendance_si_ask" model="ir.ui.view">
|
||||
<field name="name">hr.sign.in.out.ask.form</field>
|
||||
<field name="model">hr.sign.in.out.ask</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="hr.sign.in.out.ask" version="7.0">
|
||||
<header>
|
||||
<button string="Sign out" name="sign_out" type="object" class="oe_highlight"/>
|
||||
or
|
||||
<button string="Cancel" class="oe_link" special="cancel" />
|
||||
</header>
|
||||
<group colspan="4" >
|
||||
<separator string="You did not sign in the last time. Please enter the date and time you signed in." colspan="4" />
|
||||
<field name="name" />
|
||||
<field name="last_time" string="Your last sign in" />
|
||||
</group>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</openerp>
|
|
@ -1,7 +1,18 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<openerp>
|
||||
<data>
|
||||
|
||||
|
||||
<!-- Contracts Button on Employee Form -->
|
||||
|
||||
<act_window
|
||||
context="{'search_default_employee_id': [active_id], 'default_employee_id': active_id}"
|
||||
id="act_hr_employee_2_hr_contract"
|
||||
name="Contracts"
|
||||
res_model="hr.contract"
|
||||
src_model="hr.employee"
|
||||
groups="base.group_hr_manager"/>
|
||||
|
||||
<menuitem id="next_id_56" name="Contract" parent="hr.menu_hr_configuration" sequence="30" groups="base.group_no_one"/>
|
||||
<record id="hr_hr_employee_view_form2" model="ir.ui.view">
|
||||
<field name="name">hr.hr.employee.view.form2</field>
|
||||
|
@ -9,19 +20,20 @@
|
|||
<field name="inherit_id" ref="hr.view_employee_form"/>
|
||||
<field name="arch" type="xml">
|
||||
<data>
|
||||
<xpath expr="//field[@name='parent_id']" position="before">
|
||||
<xpath expr="//div[@name='button_box']" position="inside">
|
||||
<button name="%(act_hr_employee_2_hr_contract)d" string="Contracts" type="action"/>
|
||||
</xpath>
|
||||
<xpath expr="//field[@name='coach_id']" position="after">
|
||||
<field name="manager"/>
|
||||
</xpath>
|
||||
<xpath expr="//group[@name='active_group']" position="before">
|
||||
<group>
|
||||
<group string="Contract">
|
||||
<field name="medic_exam" string="Medical Exam"/>
|
||||
<field name="vehicle"/>
|
||||
<field name="vehicle_distance"/>
|
||||
</group>
|
||||
</xpath>
|
||||
<field name="active" position="before">
|
||||
<field name="medic_exam" string="Medical Exam"/>
|
||||
</field>
|
||||
<field name="birthday" position="before">
|
||||
<field name="marital" position="after">
|
||||
<field name="children"/>
|
||||
</field>
|
||||
<field name="birthday" position="after">
|
||||
|
@ -177,15 +189,5 @@
|
|||
<menuitem action="action_hr_contract_type" id="hr_menu_contract_type" parent="next_id_56" sequence="6" groups="base.group_no_one"/>
|
||||
<menuitem action="action_hr_contract" id="hr_menu_contract" parent="hr.menu_hr_main" name="Contracts" sequence="4" groups="base.group_hr_manager"/>
|
||||
|
||||
<!-- Contracts Button on Employee Form -->
|
||||
|
||||
<act_window
|
||||
context="{'search_default_employee_id': [active_id], 'default_employee_id': active_id}"
|
||||
id="act_hr_employee_2_hr_contract"
|
||||
name="Contracts"
|
||||
res_model="hr.contract"
|
||||
src_model="hr.employee"
|
||||
groups="base.group_hr_manager"/>
|
||||
|
||||
</data>
|
||||
</openerp>
|
||||
|
|
|
@ -0,0 +1,270 @@
|
|||
# Norwegian Bokmal translation for openobject-addons
|
||||
# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
|
||||
# This file is distributed under the same license as the openobject-addons package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-02-08 00:36+0000\n"
|
||||
"PO-Revision-Date: 2012-09-08 18:49+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Norwegian Bokmal <nb@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-09 04:52+0000\n"
|
||||
"X-Generator: Launchpad (build 15914)\n"
|
||||
|
||||
#. module: hr_contract
|
||||
#: field:hr.contract,wage:0
|
||||
msgid "Wage"
|
||||
msgstr "Lønn"
|
||||
|
||||
#. module: hr_contract
|
||||
#: view:hr.contract:0
|
||||
msgid "Information"
|
||||
msgstr "Informasjon"
|
||||
|
||||
#. module: hr_contract
|
||||
#: view:hr.contract:0
|
||||
msgid "Trial Period"
|
||||
msgstr "Prøveperiode"
|
||||
|
||||
#. module: hr_contract
|
||||
#: field:hr.contract,trial_date_start:0
|
||||
msgid "Trial Start Date"
|
||||
msgstr "Prøve Startdato"
|
||||
|
||||
#. module: hr_contract
|
||||
#: view:hr.employee:0
|
||||
msgid "Medical Examination"
|
||||
msgstr "Legeundersøkelse"
|
||||
|
||||
#. module: hr_contract
|
||||
#: field:hr.employee,vehicle:0
|
||||
msgid "Company Vehicle"
|
||||
msgstr "Selskapets Kjøretøy."
|
||||
|
||||
#. module: hr_contract
|
||||
#: view:hr.employee:0
|
||||
msgid "Miscellaneous"
|
||||
msgstr "Diverse"
|
||||
|
||||
#. module: hr_contract
|
||||
#: view:hr.contract:0
|
||||
msgid "Current"
|
||||
msgstr "Nåværende"
|
||||
|
||||
#. module: hr_contract
|
||||
#: view:hr.contract:0
|
||||
msgid "Group By..."
|
||||
msgstr "Grupper etter ..."
|
||||
|
||||
#. module: hr_contract
|
||||
#: field:hr.contract,department_id:0
|
||||
msgid "Department"
|
||||
msgstr "Avdeling"
|
||||
|
||||
#. module: hr_contract
|
||||
#: view:hr.contract:0
|
||||
msgid "Overpassed"
|
||||
msgstr "Overpassert"
|
||||
|
||||
#. module: hr_contract
|
||||
#: view:hr.contract:0
|
||||
#: field:hr.contract,employee_id:0
|
||||
#: model:ir.model,name:hr_contract.model_hr_employee
|
||||
msgid "Employee"
|
||||
msgstr "Ansatt"
|
||||
|
||||
#. module: hr_contract
|
||||
#: view:hr.contract:0
|
||||
msgid "Search Contract"
|
||||
msgstr "Søk Kontrakt"
|
||||
|
||||
#. module: hr_contract
|
||||
#: view:hr.contract:0
|
||||
msgid "Contracts in progress"
|
||||
msgstr "Kontrakter i fremgang"
|
||||
|
||||
#. module: hr_contract
|
||||
#: field:hr.employee,vehicle_distance:0
|
||||
msgid "Home-Work Distance"
|
||||
msgstr "Hjem-arbeid Avstand."
|
||||
|
||||
#. module: hr_contract
|
||||
#: view:hr.contract:0
|
||||
#: field:hr.employee,contract_ids:0
|
||||
#: model:ir.actions.act_window,name:hr_contract.act_hr_employee_2_hr_contract
|
||||
#: model:ir.actions.act_window,name:hr_contract.action_hr_contract
|
||||
#: model:ir.ui.menu,name:hr_contract.hr_menu_contract
|
||||
msgid "Contracts"
|
||||
msgstr "Kontrakter"
|
||||
|
||||
#. module: hr_contract
|
||||
#: view:hr.employee:0
|
||||
msgid "Personal Info"
|
||||
msgstr "Personlig Info"
|
||||
|
||||
#. module: hr_contract
|
||||
#: view:hr.contract:0
|
||||
msgid "Contracts whose end date already passed"
|
||||
msgstr "Kontrakter som sluttdato har allerede passert."
|
||||
|
||||
#. module: hr_contract
|
||||
#: help:hr.employee,contract_id:0
|
||||
msgid "Latest contract of the employee"
|
||||
msgstr "Siste kontrakten av den ansatte"
|
||||
|
||||
#. module: hr_contract
|
||||
#: view:hr.contract:0
|
||||
msgid "Job"
|
||||
msgstr "Jobb"
|
||||
|
||||
#. module: hr_contract
|
||||
#: view:hr.contract:0
|
||||
#: field:hr.contract,advantages:0
|
||||
msgid "Advantages"
|
||||
msgstr "Fordeler"
|
||||
|
||||
#. module: hr_contract
|
||||
#: view:hr.contract:0
|
||||
msgid "Valid for"
|
||||
msgstr "Gyldig for."
|
||||
|
||||
#. module: hr_contract
|
||||
#: view:hr.contract:0
|
||||
msgid "Work Permit"
|
||||
msgstr "Arbeidstillatelse"
|
||||
|
||||
#. module: hr_contract
|
||||
#: field:hr.employee,children:0
|
||||
msgid "Number of Children"
|
||||
msgstr "Antall barn"
|
||||
|
||||
#. module: hr_contract
|
||||
#: model:ir.actions.act_window,name:hr_contract.action_hr_contract_type
|
||||
#: model:ir.ui.menu,name:hr_contract.hr_menu_contract_type
|
||||
msgid "Contract Types"
|
||||
msgstr "Kontrakt typer."
|
||||
|
||||
#. module: hr_contract
|
||||
#: constraint:hr.employee:0
|
||||
msgid "Error ! You cannot create recursive Hierarchy of Employees."
|
||||
msgstr "Feil! Du kan ikke opprette rekursiv Hierarki av ansatte."
|
||||
|
||||
#. module: hr_contract
|
||||
#: field:hr.contract,date_end:0
|
||||
msgid "End Date"
|
||||
msgstr "Sluttdato"
|
||||
|
||||
#. module: hr_contract
|
||||
#: help:hr.contract,wage:0
|
||||
msgid "Basic Salary of the employee"
|
||||
msgstr "Grunnlønn for den ansatte."
|
||||
|
||||
#. module: hr_contract
|
||||
#: field:hr.contract,name:0
|
||||
msgid "Contract Reference"
|
||||
msgstr "Kontrakt referanse."
|
||||
|
||||
#. module: hr_contract
|
||||
#: help:hr.employee,vehicle_distance:0
|
||||
msgid "In kilometers"
|
||||
msgstr "I kilometer."
|
||||
|
||||
#. module: hr_contract
|
||||
#: view:hr.contract:0
|
||||
#: field:hr.contract,notes:0
|
||||
msgid "Notes"
|
||||
msgstr "Notater"
|
||||
|
||||
#. module: hr_contract
|
||||
#: field:hr.contract,permit_no:0
|
||||
msgid "Work Permit No"
|
||||
msgstr "Arbeidstillatelse Ingen."
|
||||
|
||||
#. module: hr_contract
|
||||
#: view:hr.contract:0
|
||||
#: field:hr.employee,contract_id:0
|
||||
#: model:ir.model,name:hr_contract.model_hr_contract
|
||||
#: model:ir.ui.menu,name:hr_contract.next_id_56
|
||||
msgid "Contract"
|
||||
msgstr "Kontrakt"
|
||||
|
||||
#. module: hr_contract
|
||||
#: view:hr.contract:0
|
||||
#: field:hr.contract,type_id:0
|
||||
#: view:hr.contract.type:0
|
||||
#: field:hr.contract.type,name:0
|
||||
#: model:ir.model,name:hr_contract.model_hr_contract_type
|
||||
msgid "Contract Type"
|
||||
msgstr "Kontrakt type."
|
||||
|
||||
#. module: hr_contract
|
||||
#: view:hr.contract:0
|
||||
#: field:hr.contract,working_hours:0
|
||||
msgid "Working Schedule"
|
||||
msgstr "Arbeidsplan"
|
||||
|
||||
#. module: hr_contract
|
||||
#: view:hr.employee:0
|
||||
msgid "Job Info"
|
||||
msgstr "Jobb informasjon."
|
||||
|
||||
#. module: hr_contract
|
||||
#: field:hr.contract,visa_expire:0
|
||||
msgid "Visa Expire Date"
|
||||
msgstr "Visa utløpsdato."
|
||||
|
||||
#. module: hr_contract
|
||||
#: field:hr.contract,job_id:0
|
||||
msgid "Job Title"
|
||||
msgstr "Jobb Tittel"
|
||||
|
||||
#. module: hr_contract
|
||||
#: field:hr.employee,manager:0
|
||||
msgid "Is a Manager"
|
||||
msgstr "Er en leder."
|
||||
|
||||
#. module: hr_contract
|
||||
#: field:hr.contract,date_start:0
|
||||
msgid "Start Date"
|
||||
msgstr "Startdato"
|
||||
|
||||
#. module: hr_contract
|
||||
#: constraint:hr.contract:0
|
||||
msgid "Error! contract start-date must be lower then contract end-date."
|
||||
msgstr "Feil! Kontrakten startdato må være lavere enn kontrakt sluttdato."
|
||||
|
||||
#. module: hr_contract
|
||||
#: field:hr.contract,visa_no:0
|
||||
msgid "Visa No"
|
||||
msgstr "Visa Nei."
|
||||
|
||||
#. module: hr_contract
|
||||
#: field:hr.employee,place_of_birth:0
|
||||
msgid "Place of Birth"
|
||||
msgstr "Fødested"
|
||||
|
||||
#. module: hr_contract
|
||||
#: view:hr.contract:0
|
||||
msgid "Duration"
|
||||
msgstr "Varighet"
|
||||
|
||||
#. module: hr_contract
|
||||
#: field:hr.employee,medic_exam:0
|
||||
msgid "Medical Examination Date"
|
||||
msgstr "Legeundersøkelse Dato"
|
||||
|
||||
#. module: hr_contract
|
||||
#: field:hr.contract,trial_date_end:0
|
||||
msgid "Trial End Date"
|
||||
msgstr "Prøve Sluttdato ."
|
||||
|
||||
#. module: hr_contract
|
||||
#: view:hr.contract.type:0
|
||||
msgid "Search Contract Type"
|
||||
msgstr "Søk Kontraktstype"
|
|
@ -128,14 +128,12 @@
|
|||
<field name="model">hr.employee</field>
|
||||
<field name="inherit_id" ref="hr.view_employee_form"/>
|
||||
<field name="arch" type="xml">
|
||||
<page string="Personal Information" position="after">
|
||||
<page string="Appraisal" groups="base.group_hr_user">
|
||||
<group col="4">
|
||||
<field name="evaluation_plan_id" on_change="onchange_evaluation_plan_id(evaluation_plan_id, evaluation_date)"/>
|
||||
<field name="evaluation_date"/>
|
||||
</group>
|
||||
</page>
|
||||
</page>
|
||||
<xpath expr="//group[@name='active_group']" position="before">
|
||||
<group string="Appraisals">
|
||||
<field name="evaluation_plan_id" on_change="onchange_evaluation_plan_id(evaluation_plan_id, evaluation_date)"/>
|
||||
<field name="evaluation_date"/>
|
||||
</group>
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
|
|
|
@ -513,13 +513,17 @@
|
|||
<field name="model">hr.employee</field>
|
||||
<field name="inherit_id" ref="hr.view_employee_form"/>
|
||||
<field name="arch" type="xml">
|
||||
<field name="active" position="before">
|
||||
<label for="remaining_leaves"/>
|
||||
<div>
|
||||
<field name="remaining_leaves" class="oe_inline"/>
|
||||
<button name="%(act_hr_employee_holiday_request)d" string="Leaves" type="action" class="oe_inline oe_right"/>
|
||||
</div>
|
||||
</field>
|
||||
<xpath expr="//group[@name='active_group']" position="before">
|
||||
<group string="Leaves">
|
||||
<label for="remaining_leaves"/>
|
||||
<div>
|
||||
<field name="remaining_leaves" class="oe_inline"/>
|
||||
</div>
|
||||
</group>
|
||||
</xpath>
|
||||
<xpath expr="//div[@name='button_box']" position="inside">
|
||||
<button name="%(act_hr_employee_holiday_request)d" string="Leaves" type="action"/>
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
|
|
|
@ -218,6 +218,17 @@ class hr_payslip_run(osv.osv):
|
|||
'journal_id': fields.many2one('account.journal', 'Expense Journal', states={'draft': [('readonly', False)]}, readonly=True, required=True),
|
||||
}
|
||||
|
||||
def _get_default_journal(self, cr, uid, context=None):
|
||||
model_data = self.pool.get('ir.model.data')
|
||||
res = model_data.search(cr, uid, [('name', '=', 'expenses_journal')])
|
||||
if res:
|
||||
return model_data.browse(cr, uid, res[0]).res_id
|
||||
return False
|
||||
|
||||
_defaults = {
|
||||
'journal_id': _get_default_journal,
|
||||
}
|
||||
|
||||
hr_payslip_run()
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
|
|
@ -0,0 +1,141 @@
|
|||
# Norwegian Bokmal translation for openobject-addons
|
||||
# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
|
||||
# This file is distributed under the same license as the openobject-addons package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-02-08 00:36+0000\n"
|
||||
"PO-Revision-Date: 2012-09-07 19:55+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Norwegian Bokmal <nb@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-08 04:54+0000\n"
|
||||
"X-Generator: Launchpad (build 15914)\n"
|
||||
|
||||
#. module: hr_payroll_account
|
||||
#: field:hr.payslip,move_id:0
|
||||
msgid "Accounting Entry"
|
||||
msgstr "Regnskapsmessig oppføring"
|
||||
|
||||
#. module: hr_payroll_account
|
||||
#: field:hr.salary.rule,account_tax_id:0
|
||||
msgid "Tax Code"
|
||||
msgstr "Skattekode"
|
||||
|
||||
#. module: hr_payroll_account
|
||||
#: field:hr.payslip,journal_id:0
|
||||
#: field:hr.payslip.run,journal_id:0
|
||||
msgid "Expense Journal"
|
||||
msgstr "Bekostning Journal"
|
||||
|
||||
#. module: hr_payroll_account
|
||||
#: code:addons/hr_payroll_account/hr_payroll_account.py:157
|
||||
#: code:addons/hr_payroll_account/hr_payroll_account.py:173
|
||||
#, python-format
|
||||
msgid "Adjustment Entry"
|
||||
msgstr "Justering oppføring"
|
||||
|
||||
#. module: hr_payroll_account
|
||||
#: field:hr.contract,analytic_account_id:0
|
||||
#: field:hr.salary.rule,analytic_account_id:0
|
||||
msgid "Analytic Account"
|
||||
msgstr "Analytisk konto"
|
||||
|
||||
#. module: hr_payroll_account
|
||||
#: model:ir.model,name:hr_payroll_account.model_hr_salary_rule
|
||||
msgid "hr.salary.rule"
|
||||
msgstr "hr.salary.rule"
|
||||
|
||||
#. module: hr_payroll_account
|
||||
#: model:ir.model,name:hr_payroll_account.model_hr_payslip_run
|
||||
msgid "Payslip Batches"
|
||||
msgstr "Lønnsslipp Batcher."
|
||||
|
||||
#. module: hr_payroll_account
|
||||
#: field:hr.contract,journal_id:0
|
||||
msgid "Salary Journal"
|
||||
msgstr "lønn Journal"
|
||||
|
||||
#. module: hr_payroll_account
|
||||
#: model:ir.model,name:hr_payroll_account.model_hr_payslip
|
||||
msgid "Pay Slip"
|
||||
msgstr "Lønnslipp"
|
||||
|
||||
#. module: hr_payroll_account
|
||||
#: constraint:hr.payslip:0
|
||||
msgid "Payslip 'Date From' must be before 'Date To'."
|
||||
msgstr "Lønnslipp \" Dato fra \" må være før \" Dato Til \""
|
||||
|
||||
#. module: hr_payroll_account
|
||||
#: help:hr.payslip,period_id:0
|
||||
msgid "Keep empty to use the period of the validation(Payslip) date."
|
||||
msgstr "Hold tom for å bruke tid på validering (lønnsslipp) dato."
|
||||
|
||||
#. module: hr_payroll_account
|
||||
#: code:addons/hr_payroll_account/hr_payroll_account.py:171
|
||||
#, python-format
|
||||
msgid ""
|
||||
"The Expense Journal \"%s\" has not properly configured the Debit Account!"
|
||||
msgstr "Bekostning Journal \"% s\" har ikke riktig konfigurert Debet konto!"
|
||||
|
||||
#. module: hr_payroll_account
|
||||
#: code:addons/hr_payroll_account/hr_payroll_account.py:155
|
||||
#, python-format
|
||||
msgid ""
|
||||
"The Expense Journal \"%s\" has not properly configured the Credit Account!"
|
||||
msgstr ""
|
||||
"Bekostning Journal \"% s\" har ikke riktig konfigurert kreditt-konto!"
|
||||
|
||||
#. module: hr_payroll_account
|
||||
#: field:hr.salary.rule,account_debit:0
|
||||
msgid "Debit Account"
|
||||
msgstr "Debetkonto"
|
||||
|
||||
#. module: hr_payroll_account
|
||||
#: code:addons/hr_payroll_account/hr_payroll_account.py:102
|
||||
#, python-format
|
||||
msgid "Payslip of %s"
|
||||
msgstr "Lønnslipp av %s."
|
||||
|
||||
#. module: hr_payroll_account
|
||||
#: model:ir.model,name:hr_payroll_account.model_hr_contract
|
||||
msgid "Contract"
|
||||
msgstr "Kontrakt"
|
||||
|
||||
#. module: hr_payroll_account
|
||||
#: constraint:hr.contract:0
|
||||
msgid "Error! contract start-date must be lower then contract end-date."
|
||||
msgstr "Feil! Kontrakten startdato må være lavere enn kontrakt sluttdato."
|
||||
|
||||
#. module: hr_payroll_account
|
||||
#: field:hr.payslip,period_id:0
|
||||
msgid "Force Period"
|
||||
msgstr "Kraft Periode."
|
||||
|
||||
#. module: hr_payroll_account
|
||||
#: field:hr.salary.rule,account_credit:0
|
||||
msgid "Credit Account"
|
||||
msgstr "Kredittkonto"
|
||||
|
||||
#. module: hr_payroll_account
|
||||
#: model:ir.model,name:hr_payroll_account.model_hr_payslip_employees
|
||||
msgid "Generate payslips for all selected employees"
|
||||
msgstr "Generer lønnsslipper for alle utvalgte ansatte."
|
||||
|
||||
#. module: hr_payroll_account
|
||||
#: code:addons/hr_payroll_account/hr_payroll_account.py:155
|
||||
#: code:addons/hr_payroll_account/hr_payroll_account.py:171
|
||||
#, python-format
|
||||
msgid "Configuration Error!"
|
||||
msgstr "Konfigurasjonsfeil!"
|
||||
|
||||
#. module: hr_payroll_account
|
||||
#: view:hr.contract:0
|
||||
#: view:hr.salary.rule:0
|
||||
msgid "Accounting"
|
||||
msgstr "Regnskap"
|
|
@ -31,8 +31,9 @@ class hr_payslip_employees(osv.osv_memory):
|
|||
context = {}
|
||||
if context and context.get('active_id', False):
|
||||
run_data = run_pool.read(cr, uid, context['active_id'], ['journal_id'])
|
||||
journal_id = run_data.get('journal_id', False)[0]
|
||||
context.update({'journal_id': journal_id})
|
||||
journal_id = run_data.get('journal_id', False)
|
||||
journal_id = journal_id and journal_id[0] or False
|
||||
if journal_id: context.update({'journal_id': journal_id})
|
||||
return super(hr_payslip_employees, self).compute_sheet(cr, uid, ids, context=context)
|
||||
|
||||
hr_payslip_employees()
|
||||
|
|
|
@ -131,16 +131,12 @@
|
|||
<field name="model">hr.employee</field>
|
||||
<field name="inherit_id" ref="hr.view_employee_form"/>
|
||||
<field name="arch" type="xml">
|
||||
<page string="Personal Information" position="after">
|
||||
<page string="Timesheets" groups="base.group_hr_user">
|
||||
<group>
|
||||
<group col="2">
|
||||
<field name="product_id" domain="[('type','=','service')]"/>
|
||||
<field name="journal_id"/>
|
||||
</group>
|
||||
</group>
|
||||
</page>
|
||||
</page>
|
||||
<xpath expr="//group[@name='active_group']" position="before">
|
||||
<group string="Timesheets">
|
||||
<field name="product_id" domain="[('type','=','service')]"/>
|
||||
<field name="journal_id"/>
|
||||
</group>
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
|
|
|
@ -91,7 +91,7 @@ class hr_so_project(osv.osv_memory):
|
|||
emp_obj = self.pool.get('hr.employee')
|
||||
for data in self.browse(cr, uid, ids, context=context):
|
||||
emp_id = data.emp_id.id
|
||||
emp_obj.attendance_action_change(cr, uid, [emp_id], type='sign_out', dt=data.date)
|
||||
emp_obj.attendance_action_change(cr, uid, [emp_id], {'action':'sign_out', 'action_date':data.date})
|
||||
self._write(cr, uid, data, emp_id, context=context)
|
||||
return {'type': 'ir.actions.act_window_close'}
|
||||
|
||||
|
@ -99,7 +99,7 @@ class hr_so_project(osv.osv_memory):
|
|||
emp_obj = self.pool.get('hr.employee')
|
||||
for data in self.browse(cr, uid, ids, context=context):
|
||||
emp_id = data.emp_id.id
|
||||
emp_obj.attendance_action_change(cr, uid, [emp_id], type='action', dt=data.date)
|
||||
emp_obj.attendance_action_change(cr, uid, [emp_id], {'action':'action', 'action_date':data.date})
|
||||
self._write(cr, uid, data, emp_id, context=context)
|
||||
return {'type': 'ir.actions.act_window_close'}
|
||||
|
||||
|
@ -156,7 +156,7 @@ class hr_si_project(osv.osv_memory):
|
|||
emp_obj = self.pool.get('hr.employee')
|
||||
for data in self.browse(cr, uid, ids, context=context):
|
||||
emp_id = data.emp_id.id
|
||||
emp_obj.attendance_action_change(cr, uid, [emp_id], type = 'sign_in' ,dt=data.date or False)
|
||||
emp_obj.attendance_action_change(cr, uid, [emp_id], {'action':'sign_in', 'action_date':data.date})
|
||||
return {'type': 'ir.actions.act_window_close'}
|
||||
|
||||
def default_get(self, cr, uid, fields_list, context=None):
|
||||
|
|
|
@ -312,31 +312,12 @@ class hr_timesheet_sheet(osv.osv):
|
|||
self.write(cr, uid, [sheet.id], {'date_current': sheet.date_to,}, context=context)
|
||||
return True
|
||||
|
||||
def check_sign(self, cr, uid, ids, typ, context=None):
|
||||
sheet = self.browse(cr, uid, ids, context=context)[0]
|
||||
if not sheet.date_current == time.strftime('%Y-%m-%d'):
|
||||
raise osv.except_osv(_('Error!'), _('You cannot sign in/sign out from other date than today.'))
|
||||
return True
|
||||
|
||||
def sign(self, cr, uid, ids, typ, context=None):
|
||||
self.check_sign(cr, uid, ids, typ, context=context)
|
||||
sign_obj = self.pool.get('hr.sign.in.out')
|
||||
sheet = self.browse(cr, uid, ids, context=context)[0]
|
||||
context['emp_id'] = [sheet.employee_id.id]
|
||||
sign_id = sign_obj.create(cr, uid, {}, context=context)
|
||||
methods = {'sign_in': sign_obj.si_check,
|
||||
'sign_out': sign_obj.so_check}
|
||||
wizard_result = methods[typ](cr, uid, [sign_id], context=context)
|
||||
if wizard_result.get('type', False) == 'ir.actions.act_window_close':
|
||||
return True # ensure we do not close the main window !
|
||||
wizard_result['nodestroy'] = True # do not destroy the main window !
|
||||
return wizard_result
|
||||
|
||||
def sign_in(self, cr, uid, ids, context=None):
|
||||
return self.sign(cr, uid, ids, 'sign_in', context=context)
|
||||
|
||||
def sign_out(self, cr, uid, ids, context=None):
|
||||
return self.sign(cr, uid, ids, 'sign_out', context=context)
|
||||
def attendance_action_change(self, cr, uid, ids, context=None):
|
||||
hr_employee = self.pool.get('hr.employee')
|
||||
employee_ids = []
|
||||
for sheet in self.browse(cr, uid, ids, context=context):
|
||||
if sheet.employee_id.id not in employee_ids: employee_ids.append(sheet.employee_id.id)
|
||||
return hr_employee.attendance_action_change(cr, uid, employee_ids, context=context)
|
||||
|
||||
_columns = {
|
||||
'name': fields.char('Note', size=64, select=1,
|
||||
|
|
|
@ -2,12 +2,12 @@
|
|||
<openerp>
|
||||
<data noupdate="1">
|
||||
|
||||
<record id="sheet1" model="hr_timesheet_sheet.sheet">
|
||||
<!-- <record id="sheet1" model="hr_timesheet_sheet.sheet">
|
||||
<field name="name">Sheet 1</field>
|
||||
<field name="user_id" ref="base.user_root"/>
|
||||
<field name="employee_id" ref="hr.employee_fp" />
|
||||
<field eval="time.strftime('%Y-%m-%d')" name="date_current"/>
|
||||
</record>
|
||||
|
||||
-->
|
||||
</data>
|
||||
</openerp>
|
||||
|
|
|
@ -92,9 +92,9 @@
|
|||
</tree>
|
||||
</field>
|
||||
<group>
|
||||
<div align="right">
|
||||
<button name="sign_in" string="Sign In" type="object" icon="terp-gtk-jump-to-ltr"/>
|
||||
<button name="sign_out" string="Sign Out" type="object" icon="terp-gtk-jump-to-rtl"/>
|
||||
<div align="right" groups="base.group_hr_manager">
|
||||
<button name="attendance_action_change" attrs="{'invisible': [('state_attendance', '=', 'present')]}" type="object" string="Sign In"/>
|
||||
<button name="attendance_action_change" attrs="{'invisible': ['|', ('state_attendance','=',False), ('state_attendance', '=', 'absent')]}" type="object" string="Sign Out"/>
|
||||
</div>
|
||||
</group>
|
||||
</group>
|
||||
|
|
|
@ -26,7 +26,7 @@
|
|||
Now, at the time of login, I create Attendances and perform "Sign In" action.
|
||||
-
|
||||
!python {model: hr_timesheet_sheet.sheet}: |
|
||||
self.sign_in(cr, uid, [ref('hr_timesheet_sheet_sheet_deddk0')], {})
|
||||
self.attendance_action_change(cr, uid, [ref('hr_timesheet_sheet_sheet_deddk0')], {})
|
||||
task_work = self.search(cr, uid, [("name","=","Quentin Paolinon")],context)[0]
|
||||
task_ids = self.browse(cr, uid, task_work, context)
|
||||
assert task_ids.state == "draft", "I State In Timesheet"
|
||||
|
|
|
@ -0,0 +1,105 @@
|
|||
# Norwegian Bokmal translation for openobject-addons
|
||||
# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
|
||||
# This file is distributed under the same license as the openobject-addons package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-02-08 00:36+0000\n"
|
||||
"PO-Revision-Date: 2012-09-08 19:39+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Norwegian Bokmal <nb@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-09 04:52+0000\n"
|
||||
"X-Generator: Launchpad (build 15914)\n"
|
||||
|
||||
#. module: import_base
|
||||
#: code:addons/import_base/import_framework.py:434
|
||||
#, python-format
|
||||
msgid "Import failed due to an unexpected error"
|
||||
msgstr "Import mislyktes på grunn av en uventet feil."
|
||||
|
||||
#. module: import_base
|
||||
#: code:addons/import_base/import_framework.py:461
|
||||
#, python-format
|
||||
msgid "started at %s and finished at %s \n"
|
||||
msgstr "Startet på% s og ferdig på% s \n"
|
||||
|
||||
#. module: import_base
|
||||
#: code:addons/import_base/import_framework.py:448
|
||||
#, python-format
|
||||
msgid "Import of your data finished at %s"
|
||||
msgstr "Import av dine data ferdig på% s"
|
||||
|
||||
#. module: import_base
|
||||
#: code:addons/import_base/import_framework.py:463
|
||||
#, python-format
|
||||
msgid ""
|
||||
"but failed, in consequence no data were imported to keep database "
|
||||
"consistency \n"
|
||||
" error : \n"
|
||||
msgstr ""
|
||||
"Men mislyktes, i følge ingen data ble importert for å holde databasen "
|
||||
"konsistens\n"
|
||||
" feil: \n"
|
||||
|
||||
#. module: import_base
|
||||
#: code:addons/import_base/import_framework.py:477
|
||||
#, python-format
|
||||
msgid ""
|
||||
"The import of data \n"
|
||||
" instance name : %s \n"
|
||||
msgstr ""
|
||||
"Import av data\n"
|
||||
" Eksempel navn:% s \n"
|
||||
|
||||
#. module: import_base
|
||||
#: code:addons/import_base/import_framework.py:470
|
||||
#, python-format
|
||||
msgid "%s has been successfully imported from %s %s, %s \n"
|
||||
msgstr "% s har blitt importert fra% s% s,% s \n"
|
||||
|
||||
#. module: import_base
|
||||
#: code:addons/import_base/import_framework.py:447
|
||||
#, python-format
|
||||
msgid "Data Import failed at %s due to an unexpected error"
|
||||
msgstr "Dataimport mislyktes ved% s på grunn av en uventet feil."
|
||||
|
||||
#. module: import_base
|
||||
#: code:addons/import_base/import_framework.py:436
|
||||
#, python-format
|
||||
msgid "Import finished, notification email sended"
|
||||
msgstr "Import ferdig, e-postmelding sendt."
|
||||
|
||||
#. module: import_base
|
||||
#: code:addons/import_base/import_framework.py:190
|
||||
#, python-format
|
||||
msgid "%s is not a valid model name"
|
||||
msgstr "% s er ikke en gyldig modellnavn."
|
||||
|
||||
#. module: import_base
|
||||
#: model:ir.ui.menu,name:import_base.menu_import_crm
|
||||
msgid "Import"
|
||||
msgstr "Import"
|
||||
|
||||
#. module: import_base
|
||||
#: code:addons/import_base/import_framework.py:467
|
||||
#, python-format
|
||||
msgid "with no warning"
|
||||
msgstr "Uten advarsel."
|
||||
|
||||
#. module: import_base
|
||||
#: code:addons/import_base/import_framework.py:469
|
||||
#, python-format
|
||||
msgid "with warning : %s"
|
||||
msgstr "Med advarsel :%s"
|
||||
|
||||
#. module: import_base
|
||||
#: code:addons/import_base/import_framework.py:191
|
||||
#, python-format
|
||||
msgid " fields imported : "
|
||||
msgstr " Felt importert: "
|
|
@ -38,11 +38,11 @@
|
|||
<record id="hr_employee_form__l10n_be_view_for" model="ir.ui.view">
|
||||
<field name="name">hr.employee.inherit.form</field>
|
||||
<field name="model">hr.employee</field>
|
||||
<field name="inherit_id" ref="hr.view_employee_form"/>
|
||||
<field name="inherit_id" ref="hr_contract.hr_hr_employee_view_form2"/>
|
||||
<field name="priority">30</field>
|
||||
<field name="arch" type="xml">
|
||||
<data>
|
||||
<xpath expr="//field[@name='gender']" position="before">
|
||||
<xpath expr="//field[@name='vehicle_distance']" position="after">
|
||||
<field name="resident_bool" eval="False"/>
|
||||
</xpath>
|
||||
<xpath expr="//field[@name='marital']" position="after">
|
||||
|
|
|
@ -0,0 +1,66 @@
|
|||
# Norwegian Bokmal translation for openobject-addons
|
||||
# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
|
||||
# This file is distributed under the same license as the openobject-addons package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2011-12-23 09:56+0000\n"
|
||||
"PO-Revision-Date: 2012-09-08 19:45+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Norwegian Bokmal <nb@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-09 04:52+0000\n"
|
||||
"X-Generator: Launchpad (build 15914)\n"
|
||||
|
||||
#. module: l10n_cn
|
||||
#: model:account.account.type,name:l10n_cn.user_type_profit_and_loss
|
||||
msgid "损益类"
|
||||
msgstr "Gevinst eller tap kategori."
|
||||
|
||||
#. module: l10n_cn
|
||||
#: model:account.account.type,name:l10n_cn.user_type_all
|
||||
msgid "所有科目"
|
||||
msgstr "Alle fag."
|
||||
|
||||
#. module: l10n_cn
|
||||
#: model:account.account.type,name:l10n_cn.user_type_equity
|
||||
msgid "所有者权益类"
|
||||
msgstr "Eiernes egenkapital."
|
||||
|
||||
#. module: l10n_cn
|
||||
#: model:ir.actions.todo,note:l10n_cn.config_call_account_template_cn_chart
|
||||
msgid ""
|
||||
"Generate Chart of Accounts from a Chart Template. You will be asked to pass "
|
||||
"the name of the company, the chart template to follow, the no. of digits to "
|
||||
"generate the code for your accounts and Bank account, currency to create "
|
||||
"Journals. Thus,the pure copy of chart Template is generated.\n"
|
||||
"\tThis is the same wizard that runs from Financial "
|
||||
"Management/Configuration/Financial Accounting/Financial Accounts/Generate "
|
||||
"Chart of Accounts from a Chart Template."
|
||||
msgstr ""
|
||||
"Generere Kontoplan fra en diagrammal. Du vil bli bedt om å passere navnet på "
|
||||
"selskapet, diagrammal til følge, nei. sifre som skal generere koden for "
|
||||
"kontoene og bankkonto, valuta å skape Journals. Dermed er den rene kopi av "
|
||||
"diagrammal generert.\n"
|
||||
"\t Dette er den samme veiviser som går fra økonomistyring / konfigurasjon / "
|
||||
"finansiell Regnskap / finansregnskapet / Generer Kontoplan fra en diagrammal."
|
||||
|
||||
#. module: l10n_cn
|
||||
#: model:account.account.type,name:l10n_cn.user_type_debt
|
||||
msgid "负债类"
|
||||
msgstr "Gjeld klasse."
|
||||
|
||||
#. module: l10n_cn
|
||||
#: model:account.account.type,name:l10n_cn.user_type_cost
|
||||
msgid "成本类"
|
||||
msgstr "Kostnaden for klassen"
|
||||
|
||||
#. module: l10n_cn
|
||||
#: model:account.account.type,name:l10n_cn.user_type_capital
|
||||
msgid "资产类"
|
||||
msgstr "Aktivaklasser"
|
|
@ -0,0 +1,66 @@
|
|||
# Norwegian Bokmal translation for openobject-addons
|
||||
# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
|
||||
# This file is distributed under the same license as the openobject-addons package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2010-12-15 15:05+0000\n"
|
||||
"PO-Revision-Date: 2012-09-08 19:47+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Norwegian Bokmal <nb@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-09 04:52+0000\n"
|
||||
"X-Generator: Launchpad (build 15914)\n"
|
||||
|
||||
#. module: l10n_de
|
||||
#: model:account.fiscal.position.template,name:l10n_de.fiscal_position_non_eu_sale_skr03
|
||||
#: model:account.fiscal.position.template,name:l10n_de.fiscal_position_non_eu_sale_skr04
|
||||
msgid "Kunde Ausland"
|
||||
msgstr "Kunde Ausland"
|
||||
|
||||
#. module: l10n_de
|
||||
#: model:account.fiscal.position.template,name:l10n_de.fiscal_position_eu_no_id_sale_skr03
|
||||
#: model:account.fiscal.position.template,name:l10n_de.fiscal_position_eu_no_id_sale_skr04
|
||||
msgid "Kunde EU (ohne USt-ID)"
|
||||
msgstr "Kunde EU (ohne USt-ID)"
|
||||
|
||||
#. module: l10n_de
|
||||
#: model:account.fiscal.position.template,name:l10n_de.fiscal_position_non_eu_purchase_skr03
|
||||
#: model:account.fiscal.position.template,name:l10n_de.fiscal_position_non_eu_purchase_skr04
|
||||
msgid "Lieferant Ausland"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_de
|
||||
#: model:ir.module.module,shortdesc:l10n_de.module_meta_information
|
||||
msgid "Deutschland - SKR03 and SKR04"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_de
|
||||
#: model:ir.module.module,description:l10n_de.module_meta_information
|
||||
msgid ""
|
||||
"Dieses Modul beinhaltet einen deutschen Kontenrahmen basierend auf dem "
|
||||
"SKR03."
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_de
|
||||
#: model:account.fiscal.position.template,name:l10n_de.fiscal_position_eu_vat_id_purchase_skr03
|
||||
#: model:account.fiscal.position.template,name:l10n_de.fiscal_position_eu_vat_id_purchase_skr04
|
||||
msgid "Lieferant EU Unternehmen (mit USt-ID)"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_de
|
||||
#: model:account.fiscal.position.template,name:l10n_de.fiscal_position_eu_no_id_purchase_skr03
|
||||
#: model:account.fiscal.position.template,name:l10n_de.fiscal_position_eu_no_id_purchase_skr04
|
||||
msgid "Lieferant EU (ohne Ust-ID)"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_de
|
||||
#: model:account.fiscal.position.template,name:l10n_de.fiscal_position_eu_vat_id_sale_skr03
|
||||
#: model:account.fiscal.position.template,name:l10n_de.fiscal_position_eu_vat_id_sale_skr04
|
||||
msgid "Kunde EU Unternehmen (mit USt-ID)"
|
||||
msgstr ""
|
|
@ -0,0 +1,26 @@
|
|||
#-*- coding:utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2011 OpenERP SA (<http://openerp.com>). All Rights Reserved
|
||||
#
|
||||
# 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 l10n_in_hr_payroll
|
||||
import report
|
||||
import wizard
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
|
@ -0,0 +1,68 @@
|
|||
# -*- encoding: 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/>.
|
||||
#
|
||||
##############################################################################
|
||||
{
|
||||
'name': 'Indian Payroll',
|
||||
'category': 'Localization',
|
||||
'init_xml': [],
|
||||
'author': 'OpenERP SA',
|
||||
'website':'http://www.openerp.com',
|
||||
'depends': ['hr_payroll'],
|
||||
'version': '1.0',
|
||||
'description': """
|
||||
Indian Payroll Salary Rules.
|
||||
============================
|
||||
|
||||
-Configuration of hr_payroll for India localization
|
||||
-All main contributions rules for India payslip.
|
||||
* New payslip report
|
||||
* Employee Contracts
|
||||
* Allow to configure Basic / Gross / Net Salary
|
||||
* Employee PaySlip
|
||||
* Allowance / Deduction
|
||||
* Integrated with Holiday Management
|
||||
* Medical Allowance, Travel Allowance, Child Allowance, ...
|
||||
- Payroll Advice and Report
|
||||
- Yearly Salary by Head and Yearly Salary by Employee Report
|
||||
""",
|
||||
'active': False,
|
||||
'update_xml': [
|
||||
'l10n_in_hr_payroll_view.xml',
|
||||
'data/l10n_in_hr_payroll_data.xml',
|
||||
'data/hr.salary.rule.csv',
|
||||
'security/ir.model.access.csv',
|
||||
'l10n_in_hr_payroll_report.xml',
|
||||
'l10n_in_hr_payroll_sequence.xml',
|
||||
'wizard/hr_salary_employee_bymonth_view.xml',
|
||||
'wizard/hr_yearly_salary_detail_view.xml',
|
||||
'report/payment_advice_report_view.xml',
|
||||
'report/payslip_report_view.xml',
|
||||
|
||||
],
|
||||
'test': [
|
||||
'test/payment_advice.yml',
|
||||
'test/payment_advice_batch.yml'
|
||||
],
|
||||
|
||||
'demo_xml': ['l10n_in_hr_payroll_demo.xml'],
|
||||
'installable': True
|
||||
}
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
|
@ -0,0 +1,5 @@
|
|||
"id","amount_select","condition_range_min","condition_range_max","amount_percentage","amount_fix","name","category_id","sequence","code","parent_rule_id/id","condition_select","condition_range","amount_percentage_base"
|
||||
1,"fix",1,1,,100,"Education Allowance For One Child","Allowance",23,"CHEAONE","hr_payroll_rule_child1","range","employee.children",
|
||||
2,"fix",2,10,,200,"Education Allowance For Two Child","Allowance",24,"CHEATWO","hr_payroll_rule_child1","range","employee.children",
|
||||
3,"fix",1,1,,300,"Child Hostel Allowance For One Child","Allowance",26,"CHOONE","hr_payroll_rule_child2","range","employee.children",
|
||||
4,"fix",2,10,,600,"Child Hostel Allowance For Two Child","Allowance",27,"CHOTWO","hr_payroll_rule_child2","range","employee.children",
|
|
|
@ -0,0 +1,584 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<openerp>
|
||||
<data>
|
||||
<!-- Contribution Register -->
|
||||
|
||||
<record id="hr_houserent_allowance_register" model="hr.contribution.register">
|
||||
<field name="name">Register for House Rent Allowance</field>
|
||||
</record>
|
||||
|
||||
<record id="hr_register_provident_fund" model="hr.contribution.register">
|
||||
<field name="name">Register for Provident Fund</field>
|
||||
</record>
|
||||
|
||||
<record id="hr_professional_tax_deduction_register" model="hr.contribution.register">
|
||||
<field name="name">Register for Professional Tax</field>
|
||||
</record>
|
||||
|
||||
<record id="hr_food_coupen_register" model="hr.contribution.register">
|
||||
<field name="name">Register for Food Coupen</field>
|
||||
</record>
|
||||
|
||||
<record id="hr_tds_register" model="hr.contribution.register">
|
||||
<field name="name">Register for TDS</field>
|
||||
</record>
|
||||
|
||||
<record id="hr_nps_contribution_register" model="hr.contribution.register">
|
||||
<field name="name">Register for NPS Contribution</field>
|
||||
</record>
|
||||
|
||||
<record id="hr_vpf_contribution_register" model="hr.contribution.register">
|
||||
<field name="name">Register for Voluntarily Provident Fund</field>
|
||||
</record>
|
||||
|
||||
<record id="hr_company_transport_register" model="hr.contribution.register">
|
||||
<field name="name">Register for Company Provided Transport Deduction</field>
|
||||
</record>
|
||||
|
||||
<record id="hr_labour_Welfare_fund_register" model="hr.contribution.register">
|
||||
<field name="name">Register for State Labour Welfare Fund Deduction</field>
|
||||
</record>
|
||||
|
||||
<record id="hr_group_term_insurance_register" model="hr.contribution.register">
|
||||
<field name="name">Register for Company Provided Group Term Insurance Deduction</field>
|
||||
</record>
|
||||
|
||||
<record id="hr_leave_availed_register" model="hr.contribution.register">
|
||||
<field name="name">Register for Leave Availed Deduction</field>
|
||||
</record>
|
||||
|
||||
<record id="hr_medical_insurance_register" model="hr.contribution.register">
|
||||
<field name="name">Register for Company Provided Medical Insurance Deduction</field>
|
||||
</record>
|
||||
|
||||
<record id="hr_other_deduction_register" model="hr.contribution.register">
|
||||
<field name="name">Register for Other Deduction from Employer</field>
|
||||
</record>
|
||||
<!-- Hr Salary Rules for allowance-->
|
||||
|
||||
<record id="hr_salary_rule_da" model="hr.salary.rule">
|
||||
<field name="code">DA</field>
|
||||
<field name="name">Dearness Allowance</field>
|
||||
<field name="category_id" ref="hr_payroll.ALW"/>
|
||||
<field name="amount_select">percentage</field>
|
||||
<field name="amount_percentage_base">contract.wage</field>
|
||||
<field name="amount_percentage" eval="50"/>
|
||||
<field name="sequence" eval="13"/>
|
||||
<field name="note">Dearness allowance (D.A.) is part of a person's salary. It is calculated as a percent of the basic salary. This amount is then added to the basic salary along with house rent allowance to get the total salary. Or you can say that The Dearness Allowance is a part of the total compensation a person receives for having performed his or her job.</field>
|
||||
</record>
|
||||
|
||||
<record id="hr_salary_rule_houserentallowancemetro_nonmetro" model="hr.salary.rule">
|
||||
<field name="code">HRAMN</field>
|
||||
<field name="amount_select">code</field>
|
||||
<field name="amount_python_compute">result = (payslip.company_id.dearness_allowance and
|
||||
((contract.wage + DA) * contract.house_rent_allowance_metro_nonmetro / 100)
|
||||
or (contract.wage * contract.house_rent_allowance_metro_nonmetro / 100))</field>
|
||||
<field name="category_id" ref="hr_payroll.ALW"/>
|
||||
<field name="name">House Rent Allowance</field>
|
||||
<field name="register_id" ref="hr_houserent_allowance_register"/>
|
||||
<field name="sequence" eval="51"/>
|
||||
<field name="note">HRA is an allowance given by the employer to the employee for taking care of his rental or accommodation expenses.</field>
|
||||
</record>
|
||||
|
||||
<record id="hr_salary_trans_allownce" model="hr.salary.rule">
|
||||
<field name="code">TCA</field>
|
||||
<field name="name">Transport/Conveyance Allownace</field>
|
||||
<field name="category_id" ref="hr_payroll.ALW"/>
|
||||
<field name="amount_select">fix</field>
|
||||
<field eval="800.0" name="amount_fix"/>
|
||||
<field name="sequence" eval="14"/>
|
||||
<field name="note">A conveyance allowance refers to an amount of money reimbursed to someone for the operation of a vehicle or the riding of a vehicle. The allowance is typically a designated amount or percentage of total transportation expenses that is referenced in a country's tax laws or code. Organizations and private or public businesses may also offer a conveyance allowance in addition to reimbursing employees or members for transportation expenses. In this instance, the conveyance allowance may identify an unusual transport occurrence that may not be covered by a designated travel expense report such as travel to a specific job site that requires a daily bus or taxi ride.</field>
|
||||
</record>
|
||||
|
||||
<record id="hr_salary_rule_special" model="hr.salary.rule">
|
||||
<field name="code">SA</field>
|
||||
<field name="name">Grade/Special/Management/Supplementary Allowance</field>
|
||||
<field name="category_id" ref="hr_payroll.ALW"/>
|
||||
<field name="condition_select">python</field>
|
||||
<field name="condition_python">result = bool(contract.supplementary_allowance)</field>
|
||||
<field name="amount_select">code</field>
|
||||
<field name="amount_python_compute">result = contract.supplementary_allowance</field>
|
||||
<field name="sequence" eval="20"/>
|
||||
<field name="note">This allowance is normally given as an additional benefit to employees and is fully taxable.</field>
|
||||
</record>
|
||||
|
||||
<record id="hr_payroll_rule_child1" model="hr.salary.rule">
|
||||
<field name="code">CHEA</field>
|
||||
<field name="name">Child Education Allowance</field>
|
||||
<field name="category_id" ref="hr_payroll.ALW"/>
|
||||
<field name="condition_select">python</field>
|
||||
<field name="condition_python">result = bool(employee.children)</field>
|
||||
<field name="amount_select">fix</field>
|
||||
<field name="sequence" eval="18"/>
|
||||
<field name="note">Per school going child 1200 per annum is non-taxable.Maximum for 2 children, so max 2400 per annum becomes non-taxable.</field>
|
||||
</record>
|
||||
|
||||
<record id="hr_payroll_rule_child2" model="hr.salary.rule">
|
||||
<field name="code">CHEAH</field>
|
||||
<field name="name">Child Hostel Allowance</field>
|
||||
<field name="category_id" ref="hr_payroll.ALW"/>
|
||||
<field name="condition_select">python</field>
|
||||
<field name="condition_python">result = bool(employee.children)</field>
|
||||
<field name="amount_select">fix</field>
|
||||
<field name="note">In case the children are in hostel, the exemption available for child.</field>
|
||||
<field name="sequence" eval="19"/>
|
||||
</record>
|
||||
|
||||
<record id="hr_payroll_rule_city1" model="hr.salary.rule">
|
||||
<field name="code">CBDA</field>
|
||||
<field name="name">City Compensatory Allowance</field>
|
||||
<field name="category_id" ref="hr_payroll.ALW"/>
|
||||
<field name="condition_select">none</field>
|
||||
<field name="sequence" eval="21"/>
|
||||
<field name="amount_select">code</field>
|
||||
<field name="amount_python_compute">result = (payslip.company_id.dearness_allowance and ((contract.wage + DA) * 0.10)
|
||||
or (contract.wage * 0.10))</field>
|
||||
<field name="note">This allowance is paid to Employees who are posted in big cities. The purpose is to compensate the high cost of living in cities like Mumbai, Delhi, etc. However it is Fully Taxable.</field>
|
||||
</record>
|
||||
|
||||
<record id="hr_payroll_rule_metrocity" model="hr.salary.rule">
|
||||
<field name="code">CMETRO</field>
|
||||
<field name="name">City Allowance for Metro city</field>
|
||||
<field name="category_id" ref="hr_payroll.ALW"/>
|
||||
<field name="condition_select">none</field>
|
||||
<field name="sequence" eval="22"/>
|
||||
<field name="amount_select">fix</field>
|
||||
<field name="amount_fix">850.0</field>
|
||||
</record>
|
||||
|
||||
<record id="hr_payroll_rule_nonmetrocity" model="hr.salary.rule">
|
||||
<field name="code">CNMETRO</field>
|
||||
<field name="name">City Allowance for Non Metro city</field>
|
||||
<field name="category_id" ref="hr_payroll.ALW"/>
|
||||
<field name="condition_select">none</field>
|
||||
<field name="sequence" eval="25"/>
|
||||
<field name="amount_select">fix</field>
|
||||
<field name="amount_fix">800.0</field>
|
||||
</record>
|
||||
|
||||
<record id="hr_salary_rule_arrears" model="hr.salary.rule">
|
||||
<field name="code">ARRE</field>
|
||||
<field name="name">Arrears</field>
|
||||
<field name="category_id" ref="hr_payroll.ALW"/>
|
||||
<field name="amount_select">code</field>
|
||||
<field name="amount_python_compute">result = inputs.ARS.amount</field>
|
||||
<field eval="0.0" name="amount_fix"/>
|
||||
<field name="sequence" eval="28"/>
|
||||
<field name="note">Generally arrears are fully taxable, but employee may claim exemption u/s 89(1).
|
||||
One would need to compute income tax on the arrears if it would have been received in actual year.
|
||||
Now difference of income tax between payment year and actual year would be allowed for deduction.</field>
|
||||
</record>
|
||||
|
||||
<record id="hr_salary_rule_lta" model="hr.salary.rule">
|
||||
<field name="code">LTA</field>
|
||||
<field name="name">Leave Travel Allowance</field>
|
||||
<field name="category_id" ref="hr_payroll.ALW"/>
|
||||
<field name="amount_select">percentage</field>
|
||||
<field name="amount_percentage_base">contract.wage</field>
|
||||
<field name="amount_percentage" eval="8.33"/>
|
||||
<field name="sequence" eval="29"/>
|
||||
<field name="note">As per Income tax rules of India, if transport bills for LTA are not provided,the amount will be taxed. E.g. If an employee has LTA allowance as Rs 50,000 in his CTC(cost to company),and he provides proofs of Rs 40,000 (boarding pass,air tickets, taxi vouchers) then income tax will be deducted for rest of the Rs 10,000. Does not matter whats the amount of LTA in an employee’s package, income tax laws only permits domestic air tickets only for LTA claim.</field>
|
||||
</record>
|
||||
|
||||
<record id="hr_salary_rule_le" model="hr.salary.rule">
|
||||
<field name="code">LE</field>
|
||||
<field name="name">Leave Encashment</field>
|
||||
<field name="category_id" ref="hr_payroll.ALW"/>
|
||||
<field name="condition_select">none</field>
|
||||
<field name="amount_select">code</field>
|
||||
<field name="amount_python_compute">result = inputs.LE.amount</field>
|
||||
<field name="sequence" eval="30"/>
|
||||
<field name="note">Payment by way of leave encashment received by Central and State Govt.employees at the time of retirement in respect of the period of earned leave at credit is fully exempt. In case of other employees, the exemption is to be limited to minimum of all below:
|
||||
1.The actual amount received
|
||||
2.The cash equivalent of leave balance (max 30 days per year of service)
|
||||
3.Maximum of 10 months of leave encashment, based on last 10 months average salary
|
||||
4.Rs. 3 Lakh</field>
|
||||
</record>
|
||||
|
||||
<record id="hr_salary_rule_performance" model="hr.salary.rule">
|
||||
<field name="code">PI</field>
|
||||
<field name="name">Performance Incentive</field>
|
||||
<field name="category_id" ref="hr_payroll.ALW"/>
|
||||
<field name="amount_select">code</field>
|
||||
<field name="amount_python_compute">result = inputs.PERF.amount</field>
|
||||
<field name="sequence" eval="31"/>
|
||||
<field name="note">This would be fully taxable based on incentive.</field>
|
||||
</record>
|
||||
|
||||
<record id="hr_salary_rule_bonus" model="hr.salary.rule">
|
||||
<field name="code">BONUS</field>
|
||||
<field name="name">Bonus</field>
|
||||
<field name="category_id" ref="hr_payroll.ALW"/>
|
||||
<field name="amount_select">code</field>
|
||||
<field name="amount_python_compute">result = inputs.BNS.amount</field>
|
||||
<field name="sequence" eval="41"/>
|
||||
<field name="note">This would be fully taxable based on Bonus.</field>
|
||||
</record>
|
||||
|
||||
<record id="hr_salary_rule_medical_allow" model="hr.salary.rule">
|
||||
<field name="code">MEDA</field>
|
||||
<field name="name">Medical Allowance</field>
|
||||
<field name="category_id" ref="hr_payroll.ALW"/>
|
||||
<field name="amount_select">fix</field>
|
||||
<field eval="1250.0" name="amount_fix"/>
|
||||
<field name="sequence" eval="43"/>
|
||||
<field name="note">This component is on-taxable up to 15000 per year (or Rs 1250 per month) on producing medical bills.</field>
|
||||
</record>
|
||||
|
||||
<record id="hr_salary_rule_medical" model="hr.salary.rule">
|
||||
<field name="code">MEDA</field>
|
||||
<field name="name">Medical Reimbursement</field>
|
||||
<field name="category_id" ref="hr_payroll.ALW"/>
|
||||
<field name="amount_select">code</field>
|
||||
<field name="amount_python_compute">result = inputs.MR.amount</field>
|
||||
<field name="sequence" eval="32"/>
|
||||
<field name="note">This component is on-taxable up to 15000 per year (or Rs 1250 per month) on producing medical bills.</field>
|
||||
</record>
|
||||
|
||||
<record id="hr_salary_rule_food_coupon" model="hr.salary.rule">
|
||||
<field name="amount_select">fix</field>
|
||||
<field eval="50" name="amount_fix"/>
|
||||
<field name="quantity">worked_days.WORK100.number_of_days</field>
|
||||
<field name="code">FC</field>
|
||||
<field name="category_id" ref="hr_payroll.ALW"/>
|
||||
<field name="name">Food Allowance</field>
|
||||
<field name="register_id" ref="hr_food_coupen_register"/>
|
||||
<field name="sequence" eval="33"/>
|
||||
</record>
|
||||
|
||||
<record id="hr_salary_rule_journals" model="hr.salary.rule">
|
||||
<field name="code">PERJ</field>
|
||||
<field name="name">Periodical Journals</field>
|
||||
<field name="category_id" ref="hr_payroll.ALW"/>
|
||||
<field name="amount_select">code</field>
|
||||
<field name="amount_python_compute">result = inputs.PJ.amount</field>
|
||||
<field name="sequence" eval="34"/>
|
||||
<field name="note">Some employers may provide component for buying magazines, journals and books as a part of knowledge enhancement for business growth.This part would become non taxable on providing original bills.</field>
|
||||
</record>
|
||||
|
||||
<record id="hr_salary_rule_uniform_senior" model="hr.salary.rule">
|
||||
<field name="code">UNIFS</field>
|
||||
<field name="name">Uniform/Dress Allowance for Senior Executive</field>
|
||||
<field name="category_id" ref="hr_payroll.ALW"/>
|
||||
<field name="amount_select">fix</field>
|
||||
<field eval="1000" name="amount_fix"/>
|
||||
<field name="sequence" eval="35"/>
|
||||
<field name="note">Some sections of employees mat get allowance for purchase of office dress/uniform.In such case, the component would become non-taxable.</field>
|
||||
</record>
|
||||
|
||||
<record id="hr_salary_rule_uniform_junior" model="hr.salary.rule">
|
||||
<field name="code">UNIFJ</field>
|
||||
<field name="name">Uniform/Dress Allowance for Junior Executive</field>
|
||||
<field name="category_id" ref="hr_payroll.ALW"/>
|
||||
<field name="amount_select">fix</field>
|
||||
<field eval="600" name="amount_fix"/>
|
||||
<field name="sequence" eval="42"/>
|
||||
<field name="note">Some sections of employees mat get allowance for purchase of office dress/uniform.In such case, the component would become non-taxable.</field>
|
||||
</record>
|
||||
|
||||
<record id="hr_salary_rule_telephone" model="hr.salary.rule">
|
||||
<field name="code">TELR</field>
|
||||
<field name="name">Telephone Reimbursement</field>
|
||||
<field name="category_id" ref="hr_payroll.ALW"/>
|
||||
<field name="amount_select">code</field>
|
||||
<field name="amount_python_compute">result = inputs.TR.amount</field>
|
||||
<field name="sequence" eval="36"/>
|
||||
<field name="note">In some of the cases, companies may provide a component for telephone bills.Employees may provide actual phone usage bills to reimburse this component and make it non-taxable.
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="hr_salary_rule_prof_develope" model="hr.salary.rule">
|
||||
<field name="code">PDA</field>
|
||||
<field name="name">Professional Development Allowance</field>
|
||||
<field name="category_id" ref="hr_payroll.ALW"/>
|
||||
<field name="amount_select">fix</field>
|
||||
<field eval="0.0" name="amount_fix"/>
|
||||
<field name="sequence" eval="37"/>
|
||||
</record>
|
||||
|
||||
<record id="hr_payroll_rule_car" model="hr.salary.rule">
|
||||
<field name="code">CAR</field>
|
||||
<field name="name">Car Expenses Reimbursement</field>
|
||||
<field name="category_id" ref="hr_payroll.ALW"/>
|
||||
<field name="amount_select">code</field>
|
||||
<field name="amount_python_compute">result = inputs.CEI.amount</field>
|
||||
<field name="sequence" eval="38"/>
|
||||
<field name="note">In case company provides component for this and employee use self owned car for official and personal purposes, Rs 1800 per month would be non-taxable on showing bills for fuel or can maintenance. This amount would be Rs 2400 in case car is more capacity than 1600cc.</field>
|
||||
</record>
|
||||
|
||||
<record id="hr_salary_rule_internet" model="hr.salary.rule">
|
||||
<field name="code">INT</field>
|
||||
<field name="name">Internet Expense</field>
|
||||
<field name="category_id" ref="hr_payroll.ALW"/>
|
||||
<field name="amount_select">code</field>
|
||||
<field name="amount_python_compute">result = inputs.IE.amount</field>
|
||||
<field name="sequence" eval="39"/>
|
||||
<field name="note">Employer may also provide reimbursement of internet expenses and thus this would become non taxable.</field>
|
||||
</record>
|
||||
|
||||
<record id="hr_salary_rule_driver" model="hr.salary.rule">
|
||||
<field name="code">DRI</field>
|
||||
<field name="name">Driver Salary</field>
|
||||
<field name="category_id" ref="hr_payroll.ALW"/>
|
||||
<field name="condition_select">python</field>
|
||||
<field name="condition_python">result = bool(contract.driver_salay)</field>
|
||||
<field name="amount_select">fix</field>
|
||||
<field eval="900.0" name="amount_fix"/>
|
||||
<field name="sequence" eval="40"/>
|
||||
<field name="note">Rs. 900 per month (non taxable)</field>
|
||||
</record>
|
||||
|
||||
|
||||
<!--hr salary rules for Deductions -->
|
||||
|
||||
<record id="hr_payslip_rule_tds" model="hr.salary.rule">
|
||||
<field name="code">TDS</field>
|
||||
<field name="name">Tax Deducted at Source</field>
|
||||
<field name="category_id" ref="hr_payroll.DED"/>
|
||||
<field name="condition_select">python</field>
|
||||
<field name="condition_python">result = bool(contract.tds)</field>
|
||||
<field name="amount_select">code</field>
|
||||
<field name="amount_python_compute">result = -(contract.tds)</field>
|
||||
<field name="register_id" ref="hr_tds_register"/>
|
||||
<field name="sequence" eval="140"/>
|
||||
<field name="note">As per income tax rules, all payment which are taxable in nature should be done after deduction of taxes at the source itself. Hence employer compute income tax on salary payment and deduct it every month. This TDS is based on employee’s saving/investment declaration at the start of year. If investments for tax saving is not done, large amount may be deducted in last few months.</field>
|
||||
</record>
|
||||
|
||||
<record id="hr_payslip_line_professional_tax" model="hr.salary.rule">
|
||||
<field name="code">PTD</field>
|
||||
<field name="name">Professional Tax</field>
|
||||
<field name="category_id" ref="hr_payroll.DED"/>
|
||||
<field name="condition_select">python</field>
|
||||
<field name="condition_python">result = contract.wage >= 3000 </field>
|
||||
<field name="amount_select">code</field>
|
||||
<field name="amount_python_compute">result = (-200 if contract.wage >= 12000
|
||||
else -150 if ((contract.wage >= 9000) and (contract.wage <= 11999))
|
||||
else -80 if ((contract.wage >= 6000) and (contract.wage <= 8999))
|
||||
else -20 if ((contract.wage >= 3000) and (contract.wage <= 5999))
|
||||
else -0)</field>
|
||||
<field name="register_id" ref="hr_professional_tax_deduction_register"/>
|
||||
<field eval="145" name="sequence"/>
|
||||
<field name="note">Workers living in states that impose the professional tax must submit a payment each half-year for the right to practice a profession or trade. It applies equally to employees who work for the national or state government, and those employed by private corporations. The professional tax uses a six-month accounting system, which divides the year into two periods, beginning on April 1 and October 1.</field>
|
||||
</record>
|
||||
|
||||
<record id="hr_payslip_rule_epf" model="hr.salary.rule">
|
||||
<field name="code">EPMF</field>
|
||||
<field name="name">Employee's PF Contribution</field>
|
||||
<field name="category_id" ref="hr_payroll.DED"/>
|
||||
<field name="amount_select">code</field>
|
||||
<field name="amount_python_compute">result = (payslip.company_id.dearness_allowance and - ((contract.wage + DA) * 0.12)
|
||||
or - (contract.wage * 0.12))</field>
|
||||
<field name= "note">Employer contribution does not become part of employee’s income and hence income tax is not payable on this part.</field>
|
||||
<field name="register_id" ref="hr_register_provident_fund"/>
|
||||
<field name="sequence" eval="150"/>
|
||||
</record>
|
||||
|
||||
<record id="hr_payslip_rule_enps" model="hr.salary.rule">
|
||||
<field name="code">ENPFC</field>
|
||||
<field name="name">Employee's NPS Contribution</field>
|
||||
<field name="category_id" ref="hr_payroll.DED"/>
|
||||
<field name="amount_select">code</field>
|
||||
<field name="amount_python_compute">result = (payslip.company_id.dearness_allowance and - ((contract.wage + DA) * 0.10)
|
||||
or - (contract.wage * 0.10))</field>
|
||||
<field name="sequence" eval="155"/>
|
||||
<field name="register_id" ref="hr_nps_contribution_register"/>
|
||||
<field name="note">Employee can claim deduction even of employer's contribution to NPS.</field>
|
||||
</record>
|
||||
|
||||
<record id="hr_payslip_rule_vpf" model="hr.salary.rule">
|
||||
<field name="code">VPF</field>
|
||||
<field name="name">Voluntarily Provident Fund Contribution</field>
|
||||
<field name="category_id" ref="hr_payroll.DED"/>
|
||||
<field name="condition_select">python</field>
|
||||
<field name="condition_python">result = bool(contract.voluntary_provident_fund)</field>
|
||||
<field name="amount_select">code</field>
|
||||
<field name="amount_python_compute">result = (payslip.company_id.dearness_allowance and
|
||||
- ((contract.wage + DA) * contract.voluntary_provident_fund / 100)
|
||||
or - (contract.wage * contract.voluntary_provident_fund / 100))</field>
|
||||
<field name="sequence" eval="160"/>
|
||||
<field name="register_id" ref="hr_vpf_contribution_register"/>
|
||||
<field name="note">VPF is a safe option wherein you can contribute more than the PF ceiling of 12% that has been mandated by the government.This additional amount enjoys all the benefits of PF except that the employer is not liable to contribute any extra amount apart from 12%.An added advantage is that the interest rate is equal to the interest rate of PF and he withdrawal is tax free. Please note that the maximum contribution towards VPF is 100% of your Basic.The highest rate of interest (close to 9%) makes it a very attractive saving scheme. Because of these advantages many employees chose not to close their PF account even after getting employment else where other than India.Employees also get a major tax break on their entire contribution to the fund up to a ceiling of Rs. 70,000/-</field>
|
||||
</record>
|
||||
|
||||
<record id="hr_payslip_rule_cpt" model="hr.salary.rule">
|
||||
<field name="code">CPT</field>
|
||||
<field name="name">Deduction for Company Provided Transport</field>
|
||||
<field name="category_id" ref="hr_payroll.DED"/>
|
||||
<field name="condition_select">none</field>
|
||||
<field name="amount_select">fix</field>
|
||||
<field eval="-1500.0" name="amount_fix"/>
|
||||
<field name="register_id" ref="hr_company_transport_register"/>
|
||||
<field name="sequence" eval="165"/>
|
||||
<field name="appears_on_payslip" eval="False"/>
|
||||
<field name="note">Company provided transport amount is based on company.</field>
|
||||
</record>
|
||||
|
||||
<record id="hr_salary_rule_food_coupon_ded" model="hr.salary.rule">
|
||||
<field name="amount_select">fix</field>
|
||||
<field eval="-50" name="amount_fix"/>
|
||||
<field name="quantity">worked_days.WORK100.number_of_days</field>
|
||||
<field name="code">FD</field>
|
||||
<field name="category_id" ref="hr_payroll.DED"/>
|
||||
<field name="name">Deduction Towards Food Coupons</field>
|
||||
<field name="register_id" ref="hr_food_coupen_register"/>
|
||||
<field name="sequence" eval="166"/>
|
||||
</record>
|
||||
|
||||
<record id="hr_payslip_rule_lwf_employee" model="hr.salary.rule">
|
||||
<field name="code">LWFE</field>
|
||||
<field name="name">Employee's Deduction Towards State Labour Welfare Fund</field>
|
||||
<field name="category_id" ref="hr_payroll.DED"/>
|
||||
<field name="amount_select">fix</field>
|
||||
<field eval="-3.0" name="amount_fix"/>
|
||||
<field name="sequence" eval="170"/>
|
||||
<field name="register_id" ref="hr_labour_Welfare_fund_register"/>
|
||||
<field name="note">The LWF is applicable to all the members of the organisation except the Management staff (Staffs having authority to sign on the cheque/official documents on behalf of the organisation). for e.x. Employee Contribution is Rs. 3.00 and Employer contribution Rs. 6.00 Total Rs 9.00 and deposited to the LWF office.It is half yearly contribution (June and December).</field>
|
||||
</record>
|
||||
|
||||
<record id="hr_payslip_rule_lwf_employer" model="hr.salary.rule">
|
||||
<field name="code">LWF</field>
|
||||
<field name="name">Employer's Deduction Towards State Labour Welfare Fund </field>
|
||||
<field name="category_id" ref="hr_payroll.DED"/>
|
||||
<field name="amount_select">fix</field>
|
||||
<field eval="-6.0" name="amount_fix"/>
|
||||
<field name="sequence" eval="171"/>
|
||||
<field name="register_id" ref="hr_labour_Welfare_fund_register"/>
|
||||
<field name="appears_on_payslip" eval="False"/>
|
||||
<field name="note">The LWF is applicable to all the members of the organisation except the Management staff (Staffs having authority to sign on the cheque/official documents on behalf of the organisation). for e.x. Employee Contribution is Rs. 3.00 and Employer contribution Rs. 6.00 Total Rs 9.00 and deposited to the LWF office.It is half yearly contribution (June and December).</field>
|
||||
</record>
|
||||
|
||||
<record id="hr_payslip_rule_cgti" model="hr.salary.rule">
|
||||
<field name="code">CGTI</field>
|
||||
<field name="name">Deduction Towards Company Provided Group Term Insurance</field>
|
||||
<field name="category_id" ref="hr_payroll.DED"/>
|
||||
<field name="amount_select">fix</field>
|
||||
<field eval="-1000.0" name="amount_fix"/>
|
||||
<field name="register_id" ref="hr_group_term_insurance_register"/>
|
||||
<field name="sequence" eval="175"/>
|
||||
<field name="note">Group term insurance provides a solid foundation to a comprehensive employee benifit program,backed up by government asistance in the form of valuable tax incentives to both employees and employers.</field>
|
||||
</record>
|
||||
|
||||
<record id="hr_payslip_rule_dla" model="hr.salary.rule">
|
||||
<field name="code">DLA</field>
|
||||
<field name="name">Deduction Towards Leave Availed</field>
|
||||
<field name="category_id" ref="hr_payroll.DED"/>
|
||||
<field name="condition_select">none</field>
|
||||
<field name="amount_select">code</field>
|
||||
<field name="amount_python_compute">result = - (inputs.LAI.amount)</field>
|
||||
<field name="register_id" ref="hr_leave_availed_register"/>
|
||||
<field name="sequence" eval="180"/>
|
||||
</record>
|
||||
|
||||
<record id="hr_payslip_rule_cmt" model="hr.salary.rule">
|
||||
<field name="code">CMT</field>
|
||||
<field name="name">Deduction Towards Company Provided Medical Insurance</field>
|
||||
<field name="category_id" ref="hr_payroll.DED"/>
|
||||
<field name="condition_select">python</field>
|
||||
<field name="condition_python">result = bool(contract.medical_insurance)</field>
|
||||
<field name="amount_select">code</field>
|
||||
<field name="amount_python_compute">result = - (contract.medical_insurance)</field>
|
||||
<field eval="-50.0" name="amount_fix"/>
|
||||
<field name="appears_on_payslip" eval="False"/>
|
||||
<field name="register_id" ref="hr_medical_insurance_register"/>
|
||||
<field name="sequence" eval="185"/>
|
||||
</record>
|
||||
|
||||
<record id="hr_payslip_rule_ode" model="hr.salary.rule">
|
||||
<field name="code">ODE</field>
|
||||
<field name="name">Other Deduction from Employer</field>
|
||||
<field name="category_id" ref="hr_payroll.DED"/>
|
||||
<field name="amount_select">fix</field>
|
||||
<field eval="-200.0" name="amount_fix"/>
|
||||
<field name="appears_on_payslip" eval="False"/>
|
||||
<field name="register_id" ref="hr_other_deduction_register"/>
|
||||
<field name="sequence" eval="187"/>
|
||||
</record>
|
||||
|
||||
<record id="hr_payslip_rule_ernps" model="hr.salary.rule">
|
||||
<field name="code">ENPC</field>
|
||||
<field name="name">Employer's NPS Contribution</field>
|
||||
<field name="category_id" ref="hr_payroll.DED"/>
|
||||
<field name="amount_select">code</field>
|
||||
<field name="amount_python_compute">result = (payslip.company_id.dearness_allowance and - ((contract.wage + DA) * 0.10)
|
||||
or - (contract.wage * 0.10))</field>
|
||||
<field name="sequence" eval="190"/>
|
||||
<field name="register_id" ref="hr_nps_contribution_register"/>
|
||||
<field name="appears_on_payslip" eval="False"/>
|
||||
<field name= "note">Any amount contributed by your employer to your NPS account is treated as part of your salary and is included in your income but you can claim deduction under Section 80C for this too.thus, effectively making it exempt from tax within the limit of 10% of your basic salary. This is very useful and tax efficient for you particularly if you fall in the maximum tax.</field>
|
||||
</record>
|
||||
|
||||
<record id="hr_payslip_rule_erpf" model="hr.salary.rule">
|
||||
<field name="code">EPF</field>
|
||||
<field name="name">Employer's PF Contribution</field>
|
||||
<field name="category_id" ref="hr_payroll.DED"/>
|
||||
<field name="amount_select">code</field>
|
||||
<field name="amount_python_compute">result = (payslip.company_id.dearness_allowance and - ((contract.wage + DA) * 0.12)
|
||||
or - (contract.wage * 0.12))</field>
|
||||
<field name="sequence" eval="195"/>
|
||||
<field name="register_id" ref="hr_register_provident_fund"/>
|
||||
<field name="appears_on_payslip" eval="False"/>
|
||||
<field name="note">Both the employees and employer contribute to the fund at the rate of 12% of the basic wages, dearness allowance and retaining allowance, if any, payable to employees per month.</field>
|
||||
</record>
|
||||
|
||||
<!-- Rule Inputs -->
|
||||
|
||||
<record id="hr_rule_input_performance" model="hr.rule.input">
|
||||
<field name="code">PERF</field>
|
||||
<field name="name">Performance of Employee</field>
|
||||
<field name="input_id" ref="hr_salary_rule_performance"/>
|
||||
</record>
|
||||
|
||||
<record id="hr_rule_input_bonus" model="hr.rule.input">
|
||||
<field name="code">BNS</field>
|
||||
<field name="name">Bonus of Employee</field>
|
||||
<field name="input_id" ref="hr_salary_rule_bonus"/>
|
||||
</record>
|
||||
|
||||
<record id="hr_rule_input_arrears" model="hr.rule.input">
|
||||
<field name="code">ARS</field>
|
||||
<field name="name">Arrears</field>
|
||||
<field name="input_id" ref="hr_salary_rule_arrears"/>
|
||||
</record>
|
||||
|
||||
<record id="hr_rule_input_le" model="hr.rule.input">
|
||||
<field name="code">LE</field>
|
||||
<field name="name">Leave Encashment</field>
|
||||
<field name="input_id" ref="hr_salary_rule_le"/>
|
||||
</record>
|
||||
|
||||
<record id="hr_rule_input_journals" model="hr.rule.input">
|
||||
<field name="code">PJ</field>
|
||||
<field name="name">Periodical Journals</field>
|
||||
<field name="input_id" ref="hr_salary_rule_journals"/>
|
||||
</record>
|
||||
|
||||
<record id="hr_rule_input_telephone" model="hr.rule.input">
|
||||
<field name="code">TR</field>
|
||||
<field name="name">Telephone Reimbursement</field>
|
||||
<field name="input_id" ref="hr_salary_rule_telephone"/>
|
||||
</record>
|
||||
|
||||
<record id="hr_rule_input_car" model="hr.rule.input">
|
||||
<field name="code">CEI</field>
|
||||
<field name="name">Car Expenses</field>
|
||||
<field name="input_id" ref="hr_payroll_rule_car"/>
|
||||
</record>
|
||||
|
||||
<record id="hr_rule_input_internet" model="hr.rule.input">
|
||||
<field name="code">IE</field>
|
||||
<field name="name">Internet Expence</field>
|
||||
<field name="input_id" ref="hr_salary_rule_internet"/>
|
||||
</record>
|
||||
|
||||
<record id="hr_rule_input_leave_avail" model="hr.rule.input">
|
||||
<field name="code">LAI</field>
|
||||
<field name="name">Leave Availed</field>
|
||||
<field name="input_id" ref="hr_payslip_rule_dla"/>
|
||||
</record>
|
||||
<record id="hr_rule_input_medical" model="hr.rule.input">
|
||||
<field name="code">MR</field>
|
||||
<field name="name">Medical Reimbursement</field>
|
||||
<field name="input_id" ref="hr_salary_rule_medical"/>
|
||||
</record>
|
||||
</data>
|
||||
</openerp>
|
|
@ -0,0 +1,933 @@
|
|||
# Bengali Translation of OpenERP Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * l10n_in_hr_payroll
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 7.0alpha\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2012-08-17 06:46+0000\n"
|
||||
"PO-Revision-Date: 2012-08-17 06:46+0000\n"
|
||||
"Last-Translator: <>\n"
|
||||
"Language-Team: Bengali <bn@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: \n"
|
||||
"Plural-Forms: \n"
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:salary.detail.byyear:0
|
||||
msgid "E-mail Address"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:payment.advice.report,employee_bank_no:0
|
||||
msgid "Employee Bank Account"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:payment.advice.report:0
|
||||
msgid "Payment Advices which are in draft state"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:salary.detail.byyear:0
|
||||
msgid "Title"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:payroll.advice:0
|
||||
msgid "Payment Advice from"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: model:ir.model,name:l10n_in_hr_payroll.model_yearly_salary_detail
|
||||
msgid "Hr Salary Employee By Category Report"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:salary.detail.byyear:0
|
||||
msgid "Employees Salary Details"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:salary.detail.byyear:0
|
||||
msgid "Allowances with Basic:"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:salary.detail.byyear:0
|
||||
msgid "Department"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:salary.detail.byyear:0
|
||||
msgid "Deductions:"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:payroll.advice:0
|
||||
msgid "A/C no."
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:hr.contract,driver_salay:0
|
||||
msgid "Driver Salary"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: model:ir.actions.act_window,name:l10n_in_hr_payroll.action_yearly_salary_detail
|
||||
#: model:ir.actions.report.xml,name:l10n_in_hr_payroll.yearly_salary
|
||||
#: model:ir.ui.menu,name:l10n_in_hr_payroll.menu_yearly_salary_detail
|
||||
msgid "Yearly Salary by Employee"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: model:ir.actions.act_window,name:l10n_in_hr_payroll.act_hr_emp_payslip_list
|
||||
msgid "Payslips"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: selection:payment.advice.report,month:0
|
||||
msgid "March"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:paylip.details.in:0
|
||||
msgid "("
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.payroll.advice:0
|
||||
#: field:hr.payroll.advice,company_id:0
|
||||
#: field:hr.payroll.advice.line,company_id:0
|
||||
#: view:payment.advice.report:0
|
||||
#: field:payment.advice.report,company_id:0
|
||||
msgid "Company"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:payroll.advice:0
|
||||
msgid "The Manager"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.payroll.advice:0
|
||||
msgid "Letter Details"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:paylip.details.in:0
|
||||
msgid ","
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.payroll.advice:0
|
||||
msgid "Set to Draft"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: help:hr.employee,number_of_year:0
|
||||
msgid "Total years of work experience"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:payroll.advice:0
|
||||
msgid "to"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:payroll.advice:0
|
||||
msgid "Total :"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:hr.payslip.run,available_advice:0
|
||||
msgid "Made Payment Advice?"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:payment.advice.report:0
|
||||
msgid "Advices which are paid using NEFT transfer"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: help:hr.contract,tds:0
|
||||
msgid "Amount for Tax Deduction at Source"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: model:ir.model,name:l10n_in_hr_payroll.model_hr_payslip
|
||||
msgid "Pay Slip"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:payment.advice.report:0
|
||||
#: field:payment.advice.report,day:0
|
||||
msgid "Day"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:payment.advice.report:0
|
||||
msgid "Month of Payment Advices"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: constraint:hr.payslip:0
|
||||
msgid "Payslip 'Date From' must be before 'Date To'."
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:hr.payroll.advice,batch_id:0
|
||||
msgid "Batch"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:paylip.details.in:0
|
||||
msgid "Code"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.payroll.advice:0
|
||||
msgid "Other Information"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: selection:hr.payroll.advice,state:0
|
||||
#: selection:payment.advice.report,state:0
|
||||
msgid "Cancelled"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:payroll.advice:0
|
||||
msgid "For"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:paylip.details.in:0
|
||||
msgid "Details by Salary Rule Category:"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: help:hr.contract,voluntary_provident_fund:0
|
||||
msgid "VPF computed as percentage(%)"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:hr.payroll.advice,number:0
|
||||
#: report:paylip.details.in:0
|
||||
msgid "Reference"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.payroll.advice:0
|
||||
#: view:payment.advice.report:0
|
||||
msgid "Group By..."
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:hr.contract,medical_insurance:0
|
||||
msgid "Medical Insurance"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:paylip.details.in:0
|
||||
msgid "Identification No"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: selection:hr.payroll.advice,state:0
|
||||
#: selection:payment.advice.report,state:0
|
||||
msgid "Confirmed"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:salary.detail.byyear:0
|
||||
#: report:salary.employee.bymonth:0
|
||||
msgid "From"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:hr.payroll.advice.line,bysal:0
|
||||
#: field:payment.advice.report,bysal:0
|
||||
#: report:payroll.advice:0
|
||||
msgid "By Salary"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.payroll.advice:0
|
||||
#: view:payment.advice.report:0
|
||||
msgid "Confirm"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:hr.payroll.advice,chaque_nos:0
|
||||
#: field:payment.advice.report,cheque_nos:0
|
||||
msgid "Cheque Numbers"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: constraint:res.company:0
|
||||
msgid "Error! You can not create recursive companies."
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: model:ir.actions.act_window,name:l10n_in_hr_payroll.action_salary_employee_month
|
||||
#: model:ir.actions.report.xml,name:l10n_in_hr_payroll.hr_salary_employee_bymonth
|
||||
#: model:ir.ui.menu,name:l10n_in_hr_payroll.menu_salary_employee_month
|
||||
msgid "Yearly Salary by Head"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: code:addons/l10n_in_hr_payroll/l10n_in_hr_payroll.py:184
|
||||
#, python-format
|
||||
msgid "You can not confirm Payment advice without advice lines."
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:hr.payroll.advice,state:0
|
||||
#: field:payment.advice.report,state:0
|
||||
msgid "State"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:payroll.advice:0
|
||||
msgid "Yours Sincerely"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: help:hr.contract,medical_insurance:0
|
||||
msgid "Deduction towards company provided medical insurance"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: model:ir.model,name:l10n_in_hr_payroll.model_hr_payroll_advice_line
|
||||
msgid "Bank Advice Lines"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:paylip.details.in:0
|
||||
msgid "Email"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: help:hr.payslip.run,available_advice:0
|
||||
msgid "If this box is checked which means that Payment Advice exists for current batch"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: code:addons/l10n_in_hr_payroll/l10n_in_hr_payroll.py:158
|
||||
#: code:addons/l10n_in_hr_payroll/l10n_in_hr_payroll.py:184
|
||||
#: code:addons/l10n_in_hr_payroll/l10n_in_hr_payroll.py:240
|
||||
#: code:addons/l10n_in_hr_payroll/l10n_in_hr_payroll.py:257
|
||||
#, python-format
|
||||
msgid "Error !"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.salary.employee.month:0
|
||||
#: view:yearly.salary.detail:0
|
||||
msgid "Print"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: model:ir.model,name:l10n_in_hr_payroll.model_hr_payslip_run
|
||||
msgid "Payslip Batches"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:hr.payroll.advice.line,debit_credit:0
|
||||
#: report:payroll.advice:0
|
||||
msgid "C/D"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:salary.employee.bymonth:0
|
||||
msgid "Yearly Salary Details"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: model:ir.actions.report.xml,name:l10n_in_hr_payroll.payroll_advice
|
||||
msgid "Print Advice"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:hr.payroll.advice,line_ids:0
|
||||
msgid "Employee Salary"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: selection:payment.advice.report,month:0
|
||||
msgid "July"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:res.company:0
|
||||
msgid "Configuration"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: model:ir.actions.act_window,name:l10n_in_hr_payroll.action_view_hr_bank_advice_tree
|
||||
#: model:ir.ui.menu,name:l10n_in_hr_payroll.hr_menu_payment_advice
|
||||
msgid "Payment Advices"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: model:ir.actions.act_window,name:l10n_in_hr_payroll.action_payment_advice_report_all
|
||||
#: model:ir.ui.menu,name:l10n_in_hr_payroll.menu_reporting_payment_advice
|
||||
#: view:payment.advice.report:0
|
||||
msgid "Advices Analysis"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.salary.employee.month:0
|
||||
msgid "This wizard will print report which displays employees break-up of Net Head for a specified dates."
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:hr.payroll.advice.line,ifsc:0
|
||||
msgid "IFSC"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:paylip.details.in:0
|
||||
msgid "Date To"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:hr.contract,tds:0
|
||||
msgid "TDS"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:hr.employee,join_date:0
|
||||
msgid "Join Date"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.payroll.advice:0
|
||||
msgid "Confirm Advices"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: constraint:hr.contract:0
|
||||
msgid "Error! Contract start-date must be less than contract end-date."
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:res.company,dearness_allowance:0
|
||||
msgid "Dearness Allowance"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: selection:payment.advice.report,month:0
|
||||
msgid "August"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.contract:0
|
||||
msgid "Deduction"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.payroll.advice:0
|
||||
msgid "Search Payment advice"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:payroll.advice:0
|
||||
msgid "SI. No."
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:payment.advice.report:0
|
||||
msgid "Payment Advices which are in confirm state"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: selection:payment.advice.report,month:0
|
||||
msgid "December"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.payroll.advice:0
|
||||
msgid "Confirm Sheet"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:payment.advice.report:0
|
||||
#: field:payment.advice.report,month:0
|
||||
msgid "Month"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:salary.detail.byyear:0
|
||||
msgid "Employee Code"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: selection:hr.contract,city_type:0
|
||||
msgid "Non Metro"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.salary.employee.month:0
|
||||
#: view:yearly.salary.detail:0
|
||||
msgid "or"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: model:ir.model,name:l10n_in_hr_payroll.model_hr_salary_employee_month
|
||||
msgid "Hr Salary Employee By Month Report"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:hr.salary.employee.month,category_id:0
|
||||
msgid "Category"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: code:addons/l10n_in_hr_payroll/l10n_in_hr_payroll.py:240
|
||||
#, python-format
|
||||
msgid "Payment advice already exists for %s, 'Set to Draft' to create a new advice."
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.payslip.run:0
|
||||
msgid "To Advice"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:hr.employee,number_of_year:0
|
||||
msgid "No. of Years of Service"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:paylip.details.in:0
|
||||
msgid "Note"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:paylip.details.in:0
|
||||
msgid "Salary Rule Category"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.payroll.advice:0
|
||||
#: selection:hr.payroll.advice,state:0
|
||||
#: view:payment.advice.report:0
|
||||
#: selection:payment.advice.report,state:0
|
||||
msgid "Draft"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:paylip.details.in:0
|
||||
msgid "Date From"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:hr.contract,voluntary_provident_fund:0
|
||||
msgid "Voluntary Provident Fund"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:salary.detail.byyear:0
|
||||
msgid "Employee Name"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: model:ir.model,name:l10n_in_hr_payroll.model_payment_advice_report
|
||||
msgid "Payment Advice Analysis"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.payroll.advice:0
|
||||
#: view:payment.advice.report:0
|
||||
msgid "Status"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:hr.contract,city_type:0
|
||||
msgid "Type of City"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: help:res.company,dearness_allowance:0
|
||||
msgid "Check this box if your company provide Dearness Allowance to employee"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:hr.payroll.advice.line,ifsc_code:0
|
||||
#: field:payment.advice.report,ifsc_code:0
|
||||
#: report:payroll.advice:0
|
||||
msgid "IFSC Code"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: selection:payment.advice.report,month:0
|
||||
msgid "June"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:payment.advice.report:0
|
||||
#: field:payment.advice.report,nbr:0
|
||||
msgid "# Payment Lines"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: model:ir.actions.report.xml,name:l10n_in_hr_payroll.payslip_details_report
|
||||
msgid "PaySlip Details"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.payroll.advice:0
|
||||
msgid "Payment Lines"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:hr.payroll.advice,date:0
|
||||
#: field:payment.advice.report,date:0
|
||||
msgid "Date"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: selection:payment.advice.report,month:0
|
||||
msgid "November"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:payment.advice.report:0
|
||||
msgid "Extended Filters..."
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: model:ir.actions.act_window,help:l10n_in_hr_payroll.action_payment_advice_report_all
|
||||
msgid "This report performs analysis on Payment Advices"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: selection:payment.advice.report,month:0
|
||||
msgid "October"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:paylip.details.in:0
|
||||
#: report:salary.detail.byyear:0
|
||||
msgid "Designation"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: selection:payment.advice.report,month:0
|
||||
msgid "January"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:yearly.salary.detail:0
|
||||
msgid "Pay Head Employee Breakup"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: model:ir.model,name:l10n_in_hr_payroll.model_res_company
|
||||
msgid "Companies"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:paylip.details.in:0
|
||||
#: report:payroll.advice:0
|
||||
msgid "Authorized Signature"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: model:ir.model,name:l10n_in_hr_payroll.model_hr_contract
|
||||
msgid "Contract"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.payroll.advice.line:0
|
||||
msgid "Advice Lines"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:payroll.advice:0
|
||||
msgid "To,"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: help:hr.contract,driver_salay:0
|
||||
msgid "Check this box if you provide allowance for driver"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.payroll.advice:0
|
||||
#: field:hr.payroll.advice.line,advice_id:0
|
||||
#: field:hr.payslip,advice_id:0
|
||||
#: model:ir.model,name:l10n_in_hr_payroll.model_hr_payroll_advice
|
||||
msgid "Bank Advice"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:salary.detail.byyear:0
|
||||
msgid "Other No."
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.payroll.advice:0
|
||||
msgid "Draft Advices"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: help:hr.payroll.advice,neft:0
|
||||
msgid "Check this box if your company use online transfer for salary"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:salary.detail.byyear:0
|
||||
msgid "To"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:payment.advice.report,number:0
|
||||
msgid "Number"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: selection:payment.advice.report,month:0
|
||||
msgid "September"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.payroll.advice:0
|
||||
#: view:hr.salary.employee.month:0
|
||||
#: view:yearly.salary.detail:0
|
||||
msgid "Cancel"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:payment.advice.report:0
|
||||
msgid "Day of Payment Advices"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: constraint:hr.employee:0
|
||||
msgid "Error! You cannot create recursive hierarchy of Employee(s)."
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:yearly.salary.detail:0
|
||||
msgid "This wizard will print report which display a pay head employee breakup for a specified dates."
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.payslip.run:0
|
||||
msgid "Payslip Batches ready to be Adviced"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:paylip.details.in:0
|
||||
msgid "Pay Slip Details"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:payment.advice.report:0
|
||||
msgid "Total Salary"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:hr.payroll.advice.line,employee_id:0
|
||||
#: model:ir.model,name:l10n_in_hr_payroll.model_hr_employee
|
||||
#: view:payment.advice.report:0
|
||||
#: field:payment.advice.report,employee_id:0
|
||||
msgid "Employee"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.payroll.advice:0
|
||||
msgid "Compute Advice"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: help:hr.employee,join_date:0
|
||||
msgid "Joining date of employee"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:payroll.advice:0
|
||||
msgid "Dear Sir/Madam,"
|
||||
msgstr "Dear Sir/Madam,"
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:hr.payroll.advice,note:0
|
||||
msgid "Description"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:paylip.details.in:0
|
||||
msgid ")"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:res.company:0
|
||||
msgid "Payroll"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:payment.advice.report:0
|
||||
msgid "NEFT"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:paylip.details.in:0
|
||||
#: report:salary.detail.byyear:0
|
||||
msgid "Address"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.payroll.advice:0
|
||||
#: field:hr.payroll.advice,bank_id:0
|
||||
#: view:payment.advice.report:0
|
||||
#: field:payment.advice.report,bank_id:0
|
||||
#: report:payroll.advice:0
|
||||
#: report:salary.detail.byyear:0
|
||||
msgid "Bank"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:hr.salary.employee.month,end_date:0
|
||||
#: field:yearly.salary.detail,date_to:0
|
||||
msgid "End Date"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: selection:payment.advice.report,month:0
|
||||
msgid "February"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: sql_constraint:res.company:0
|
||||
msgid "The company name must be unique !"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.payroll.advice:0
|
||||
#: field:hr.payroll.advice,name:0
|
||||
#: report:paylip.details.in:0
|
||||
#: field:payment.advice.report,name:0
|
||||
#: report:salary.employee.bymonth:0
|
||||
msgid "Name"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: selection:hr.contract,city_type:0
|
||||
msgid "Metro"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.salary.employee.month:0
|
||||
#: field:hr.salary.employee.month,employee_ids:0
|
||||
#: view:yearly.salary.detail:0
|
||||
#: field:yearly.salary.detail,employee_ids:0
|
||||
msgid "Employees"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:paylip.details.in:0
|
||||
msgid "Bank Account"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: selection:payment.advice.report,month:0
|
||||
msgid "April"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:payroll.advice:0
|
||||
msgid "Name of the Employe"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: code:addons/l10n_in_hr_payroll/l10n_in_hr_payroll.py:158
|
||||
#: code:addons/l10n_in_hr_payroll/l10n_in_hr_payroll.py:257
|
||||
#, python-format
|
||||
msgid "Please define bank account for the %s employee"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:hr.salary.employee.month,start_date:0
|
||||
#: field:yearly.salary.detail,date_from:0
|
||||
msgid "Start Date"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.contract:0
|
||||
msgid "Allowance"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: help:hr.payroll.advice,bank_id:0
|
||||
msgid "Select the Bank from which the salary is going to be paid"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.salary.employee.month:0
|
||||
msgid "Employee Pay Head Breakup"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:salary.detail.byyear:0
|
||||
msgid "Phone No."
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:paylip.details.in:0
|
||||
msgid "Credit"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:hr.payroll.advice.line,name:0
|
||||
#: report:payroll.advice:0
|
||||
msgid "Bank Account No."
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: help:hr.payroll.advice,date:0
|
||||
msgid "Advice Date is used to search Payslips"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: selection:payment.advice.report,month:0
|
||||
msgid "May"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.payslip.run:0
|
||||
msgid "Create Advice"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:payment.advice.report:0
|
||||
#: field:payment.advice.report,year:0
|
||||
msgid "Year"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:hr.payroll.advice,neft:0
|
||||
#: field:payment.advice.report,neft:0
|
||||
msgid "NEFT Transaction"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:paylip.details.in:0
|
||||
#: report:salary.detail.byyear:0
|
||||
#: report:salary.employee.bymonth:0
|
||||
msgid "Total"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:payroll.advice:0
|
||||
msgid "form period"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:payment.advice.report:0
|
||||
msgid "Year of Payment Advices"
|
||||
msgstr ""
|
|
@ -0,0 +1,933 @@
|
|||
# Gujarati Translation of OpenERP Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * l10n_in_hr_payroll
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 7.0alpha\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2012-08-17 06:46+0000\n"
|
||||
"PO-Revision-Date: 2012-08-17 06:46+0000\n"
|
||||
"Last-Translator: <>\n"
|
||||
"Language-Team: Gujarati <gu@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: \n"
|
||||
"Plural-Forms: \n"
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:salary.detail.byyear:0
|
||||
msgid "E-mail Address"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:payment.advice.report,employee_bank_no:0
|
||||
msgid "Employee Bank Account"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:payment.advice.report:0
|
||||
msgid "Payment Advices which are in draft state"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:salary.detail.byyear:0
|
||||
msgid "Title"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:payroll.advice:0
|
||||
msgid "Payment Advice from"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: model:ir.model,name:l10n_in_hr_payroll.model_yearly_salary_detail
|
||||
msgid "Hr Salary Employee By Category Report"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:salary.detail.byyear:0
|
||||
msgid "Employees Salary Details"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:salary.detail.byyear:0
|
||||
msgid "Allowances with Basic:"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:salary.detail.byyear:0
|
||||
msgid "Department"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:salary.detail.byyear:0
|
||||
msgid "Deductions:"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:payroll.advice:0
|
||||
msgid "A/C no."
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:hr.contract,driver_salay:0
|
||||
msgid "Driver Salary"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: model:ir.actions.act_window,name:l10n_in_hr_payroll.action_yearly_salary_detail
|
||||
#: model:ir.actions.report.xml,name:l10n_in_hr_payroll.yearly_salary
|
||||
#: model:ir.ui.menu,name:l10n_in_hr_payroll.menu_yearly_salary_detail
|
||||
msgid "Yearly Salary by Employee"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: model:ir.actions.act_window,name:l10n_in_hr_payroll.act_hr_emp_payslip_list
|
||||
msgid "Payslips"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: selection:payment.advice.report,month:0
|
||||
msgid "March"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:paylip.details.in:0
|
||||
msgid "("
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.payroll.advice:0
|
||||
#: field:hr.payroll.advice,company_id:0
|
||||
#: field:hr.payroll.advice.line,company_id:0
|
||||
#: view:payment.advice.report:0
|
||||
#: field:payment.advice.report,company_id:0
|
||||
msgid "Company"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:payroll.advice:0
|
||||
msgid "The Manager"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.payroll.advice:0
|
||||
msgid "Letter Details"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:paylip.details.in:0
|
||||
msgid ","
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.payroll.advice:0
|
||||
msgid "Set to Draft"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: help:hr.employee,number_of_year:0
|
||||
msgid "Total years of work experience"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:payroll.advice:0
|
||||
msgid "to"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:payroll.advice:0
|
||||
msgid "Total :"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:hr.payslip.run,available_advice:0
|
||||
msgid "Made Payment Advice?"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:payment.advice.report:0
|
||||
msgid "Advices which are paid using NEFT transfer"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: help:hr.contract,tds:0
|
||||
msgid "Amount for Tax Deduction at Source"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: model:ir.model,name:l10n_in_hr_payroll.model_hr_payslip
|
||||
msgid "Pay Slip"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:payment.advice.report:0
|
||||
#: field:payment.advice.report,day:0
|
||||
msgid "Day"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:payment.advice.report:0
|
||||
msgid "Month of Payment Advices"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: constraint:hr.payslip:0
|
||||
msgid "Payslip 'Date From' must be before 'Date To'."
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:hr.payroll.advice,batch_id:0
|
||||
msgid "Batch"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:paylip.details.in:0
|
||||
msgid "Code"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.payroll.advice:0
|
||||
msgid "Other Information"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: selection:hr.payroll.advice,state:0
|
||||
#: selection:payment.advice.report,state:0
|
||||
msgid "Cancelled"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:payroll.advice:0
|
||||
msgid "For"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:paylip.details.in:0
|
||||
msgid "Details by Salary Rule Category:"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: help:hr.contract,voluntary_provident_fund:0
|
||||
msgid "VPF computed as percentage(%)"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:hr.payroll.advice,number:0
|
||||
#: report:paylip.details.in:0
|
||||
msgid "Reference"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.payroll.advice:0
|
||||
#: view:payment.advice.report:0
|
||||
msgid "Group By..."
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:hr.contract,medical_insurance:0
|
||||
msgid "Medical Insurance"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:paylip.details.in:0
|
||||
msgid "Identification No"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: selection:hr.payroll.advice,state:0
|
||||
#: selection:payment.advice.report,state:0
|
||||
msgid "Confirmed"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:salary.detail.byyear:0
|
||||
#: report:salary.employee.bymonth:0
|
||||
msgid "From"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:hr.payroll.advice.line,bysal:0
|
||||
#: field:payment.advice.report,bysal:0
|
||||
#: report:payroll.advice:0
|
||||
msgid "By Salary"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.payroll.advice:0
|
||||
#: view:payment.advice.report:0
|
||||
msgid "Confirm"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:hr.payroll.advice,chaque_nos:0
|
||||
#: field:payment.advice.report,cheque_nos:0
|
||||
msgid "Cheque Numbers"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: constraint:res.company:0
|
||||
msgid "Error! You can not create recursive companies."
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: model:ir.actions.act_window,name:l10n_in_hr_payroll.action_salary_employee_month
|
||||
#: model:ir.actions.report.xml,name:l10n_in_hr_payroll.hr_salary_employee_bymonth
|
||||
#: model:ir.ui.menu,name:l10n_in_hr_payroll.menu_salary_employee_month
|
||||
msgid "Yearly Salary by Head"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: code:addons/l10n_in_hr_payroll/l10n_in_hr_payroll.py:184
|
||||
#, python-format
|
||||
msgid "You can not confirm Payment advice without advice lines."
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:hr.payroll.advice,state:0
|
||||
#: field:payment.advice.report,state:0
|
||||
msgid "State"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:payroll.advice:0
|
||||
msgid "Yours Sincerely"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: help:hr.contract,medical_insurance:0
|
||||
msgid "Deduction towards company provided medical insurance"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: model:ir.model,name:l10n_in_hr_payroll.model_hr_payroll_advice_line
|
||||
msgid "Bank Advice Lines"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:paylip.details.in:0
|
||||
msgid "Email"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: help:hr.payslip.run,available_advice:0
|
||||
msgid "If this box is checked which means that Payment Advice exists for current batch"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: code:addons/l10n_in_hr_payroll/l10n_in_hr_payroll.py:158
|
||||
#: code:addons/l10n_in_hr_payroll/l10n_in_hr_payroll.py:184
|
||||
#: code:addons/l10n_in_hr_payroll/l10n_in_hr_payroll.py:240
|
||||
#: code:addons/l10n_in_hr_payroll/l10n_in_hr_payroll.py:257
|
||||
#, python-format
|
||||
msgid "Error !"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.salary.employee.month:0
|
||||
#: view:yearly.salary.detail:0
|
||||
msgid "Print"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: model:ir.model,name:l10n_in_hr_payroll.model_hr_payslip_run
|
||||
msgid "Payslip Batches"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:hr.payroll.advice.line,debit_credit:0
|
||||
#: report:payroll.advice:0
|
||||
msgid "C/D"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:salary.employee.bymonth:0
|
||||
msgid "Yearly Salary Details"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: model:ir.actions.report.xml,name:l10n_in_hr_payroll.payroll_advice
|
||||
msgid "Print Advice"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:hr.payroll.advice,line_ids:0
|
||||
msgid "Employee Salary"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: selection:payment.advice.report,month:0
|
||||
msgid "July"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:res.company:0
|
||||
msgid "Configuration"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: model:ir.actions.act_window,name:l10n_in_hr_payroll.action_view_hr_bank_advice_tree
|
||||
#: model:ir.ui.menu,name:l10n_in_hr_payroll.hr_menu_payment_advice
|
||||
msgid "Payment Advices"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: model:ir.actions.act_window,name:l10n_in_hr_payroll.action_payment_advice_report_all
|
||||
#: model:ir.ui.menu,name:l10n_in_hr_payroll.menu_reporting_payment_advice
|
||||
#: view:payment.advice.report:0
|
||||
msgid "Advices Analysis"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.salary.employee.month:0
|
||||
msgid "This wizard will print report which displays employees break-up of Net Head for a specified dates."
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:hr.payroll.advice.line,ifsc:0
|
||||
msgid "IFSC"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:paylip.details.in:0
|
||||
msgid "Date To"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:hr.contract,tds:0
|
||||
msgid "TDS"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:hr.employee,join_date:0
|
||||
msgid "Join Date"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.payroll.advice:0
|
||||
msgid "Confirm Advices"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: constraint:hr.contract:0
|
||||
msgid "Error! Contract start-date must be less than contract end-date."
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:res.company,dearness_allowance:0
|
||||
msgid "Dearness Allowance"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: selection:payment.advice.report,month:0
|
||||
msgid "August"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.contract:0
|
||||
msgid "Deduction"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.payroll.advice:0
|
||||
msgid "Search Payment advice"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:payroll.advice:0
|
||||
msgid "SI. No."
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:payment.advice.report:0
|
||||
msgid "Payment Advices which are in confirm state"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: selection:payment.advice.report,month:0
|
||||
msgid "December"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.payroll.advice:0
|
||||
msgid "Confirm Sheet"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:payment.advice.report:0
|
||||
#: field:payment.advice.report,month:0
|
||||
msgid "Month"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:salary.detail.byyear:0
|
||||
msgid "Employee Code"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: selection:hr.contract,city_type:0
|
||||
msgid "Non Metro"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.salary.employee.month:0
|
||||
#: view:yearly.salary.detail:0
|
||||
msgid "or"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: model:ir.model,name:l10n_in_hr_payroll.model_hr_salary_employee_month
|
||||
msgid "Hr Salary Employee By Month Report"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:hr.salary.employee.month,category_id:0
|
||||
msgid "Category"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: code:addons/l10n_in_hr_payroll/l10n_in_hr_payroll.py:240
|
||||
#, python-format
|
||||
msgid "Payment advice already exists for %s, 'Set to Draft' to create a new advice."
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.payslip.run:0
|
||||
msgid "To Advice"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:hr.employee,number_of_year:0
|
||||
msgid "No. of Years of Service"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:paylip.details.in:0
|
||||
msgid "Note"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:paylip.details.in:0
|
||||
msgid "Salary Rule Category"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.payroll.advice:0
|
||||
#: selection:hr.payroll.advice,state:0
|
||||
#: view:payment.advice.report:0
|
||||
#: selection:payment.advice.report,state:0
|
||||
msgid "Draft"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:paylip.details.in:0
|
||||
msgid "Date From"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:hr.contract,voluntary_provident_fund:0
|
||||
msgid "Voluntary Provident Fund"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:salary.detail.byyear:0
|
||||
msgid "Employee Name"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: model:ir.model,name:l10n_in_hr_payroll.model_payment_advice_report
|
||||
msgid "Payment Advice Analysis"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.payroll.advice:0
|
||||
#: view:payment.advice.report:0
|
||||
msgid "Status"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:hr.contract,city_type:0
|
||||
msgid "Type of City"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: help:res.company,dearness_allowance:0
|
||||
msgid "Check this box if your company provide Dearness Allowance to employee"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:hr.payroll.advice.line,ifsc_code:0
|
||||
#: field:payment.advice.report,ifsc_code:0
|
||||
#: report:payroll.advice:0
|
||||
msgid "IFSC Code"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: selection:payment.advice.report,month:0
|
||||
msgid "June"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:payment.advice.report:0
|
||||
#: field:payment.advice.report,nbr:0
|
||||
msgid "# Payment Lines"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: model:ir.actions.report.xml,name:l10n_in_hr_payroll.payslip_details_report
|
||||
msgid "PaySlip Details"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.payroll.advice:0
|
||||
msgid "Payment Lines"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:hr.payroll.advice,date:0
|
||||
#: field:payment.advice.report,date:0
|
||||
msgid "Date"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: selection:payment.advice.report,month:0
|
||||
msgid "November"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:payment.advice.report:0
|
||||
msgid "Extended Filters..."
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: model:ir.actions.act_window,help:l10n_in_hr_payroll.action_payment_advice_report_all
|
||||
msgid "This report performs analysis on Payment Advices"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: selection:payment.advice.report,month:0
|
||||
msgid "October"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:paylip.details.in:0
|
||||
#: report:salary.detail.byyear:0
|
||||
msgid "Designation"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: selection:payment.advice.report,month:0
|
||||
msgid "January"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:yearly.salary.detail:0
|
||||
msgid "Pay Head Employee Breakup"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: model:ir.model,name:l10n_in_hr_payroll.model_res_company
|
||||
msgid "Companies"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:paylip.details.in:0
|
||||
#: report:payroll.advice:0
|
||||
msgid "Authorized Signature"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: model:ir.model,name:l10n_in_hr_payroll.model_hr_contract
|
||||
msgid "Contract"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.payroll.advice.line:0
|
||||
msgid "Advice Lines"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:payroll.advice:0
|
||||
msgid "To,"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: help:hr.contract,driver_salay:0
|
||||
msgid "Check this box if you provide allowance for driver"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.payroll.advice:0
|
||||
#: field:hr.payroll.advice.line,advice_id:0
|
||||
#: field:hr.payslip,advice_id:0
|
||||
#: model:ir.model,name:l10n_in_hr_payroll.model_hr_payroll_advice
|
||||
msgid "Bank Advice"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:salary.detail.byyear:0
|
||||
msgid "Other No."
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.payroll.advice:0
|
||||
msgid "Draft Advices"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: help:hr.payroll.advice,neft:0
|
||||
msgid "Check this box if your company use online transfer for salary"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:salary.detail.byyear:0
|
||||
msgid "To"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:payment.advice.report,number:0
|
||||
msgid "Number"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: selection:payment.advice.report,month:0
|
||||
msgid "September"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.payroll.advice:0
|
||||
#: view:hr.salary.employee.month:0
|
||||
#: view:yearly.salary.detail:0
|
||||
msgid "Cancel"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:payment.advice.report:0
|
||||
msgid "Day of Payment Advices"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: constraint:hr.employee:0
|
||||
msgid "Error! You cannot create recursive hierarchy of Employee(s)."
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:yearly.salary.detail:0
|
||||
msgid "This wizard will print report which display a pay head employee breakup for a specified dates."
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.payslip.run:0
|
||||
msgid "Payslip Batches ready to be Adviced"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:paylip.details.in:0
|
||||
msgid "Pay Slip Details"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:payment.advice.report:0
|
||||
msgid "Total Salary"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:hr.payroll.advice.line,employee_id:0
|
||||
#: model:ir.model,name:l10n_in_hr_payroll.model_hr_employee
|
||||
#: view:payment.advice.report:0
|
||||
#: field:payment.advice.report,employee_id:0
|
||||
msgid "Employee"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.payroll.advice:0
|
||||
msgid "Compute Advice"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: help:hr.employee,join_date:0
|
||||
msgid "Joining date of employee"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:payroll.advice:0
|
||||
msgid "Dear Sir/Madam,"
|
||||
msgstr "Dear Sir/Madam,"
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:hr.payroll.advice,note:0
|
||||
msgid "Description"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:paylip.details.in:0
|
||||
msgid ")"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:res.company:0
|
||||
msgid "Payroll"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:payment.advice.report:0
|
||||
msgid "NEFT"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:paylip.details.in:0
|
||||
#: report:salary.detail.byyear:0
|
||||
msgid "Address"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.payroll.advice:0
|
||||
#: field:hr.payroll.advice,bank_id:0
|
||||
#: view:payment.advice.report:0
|
||||
#: field:payment.advice.report,bank_id:0
|
||||
#: report:payroll.advice:0
|
||||
#: report:salary.detail.byyear:0
|
||||
msgid "Bank"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:hr.salary.employee.month,end_date:0
|
||||
#: field:yearly.salary.detail,date_to:0
|
||||
msgid "End Date"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: selection:payment.advice.report,month:0
|
||||
msgid "February"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: sql_constraint:res.company:0
|
||||
msgid "The company name must be unique !"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.payroll.advice:0
|
||||
#: field:hr.payroll.advice,name:0
|
||||
#: report:paylip.details.in:0
|
||||
#: field:payment.advice.report,name:0
|
||||
#: report:salary.employee.bymonth:0
|
||||
msgid "Name"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: selection:hr.contract,city_type:0
|
||||
msgid "Metro"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.salary.employee.month:0
|
||||
#: field:hr.salary.employee.month,employee_ids:0
|
||||
#: view:yearly.salary.detail:0
|
||||
#: field:yearly.salary.detail,employee_ids:0
|
||||
msgid "Employees"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:paylip.details.in:0
|
||||
msgid "Bank Account"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: selection:payment.advice.report,month:0
|
||||
msgid "April"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:payroll.advice:0
|
||||
msgid "Name of the Employe"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: code:addons/l10n_in_hr_payroll/l10n_in_hr_payroll.py:158
|
||||
#: code:addons/l10n_in_hr_payroll/l10n_in_hr_payroll.py:257
|
||||
#, python-format
|
||||
msgid "Please define bank account for the %s employee"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:hr.salary.employee.month,start_date:0
|
||||
#: field:yearly.salary.detail,date_from:0
|
||||
msgid "Start Date"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.contract:0
|
||||
msgid "Allowance"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: help:hr.payroll.advice,bank_id:0
|
||||
msgid "Select the Bank from which the salary is going to be paid"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.salary.employee.month:0
|
||||
msgid "Employee Pay Head Breakup"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:salary.detail.byyear:0
|
||||
msgid "Phone No."
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:paylip.details.in:0
|
||||
msgid "Credit"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:hr.payroll.advice.line,name:0
|
||||
#: report:payroll.advice:0
|
||||
msgid "Bank Account No."
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: help:hr.payroll.advice,date:0
|
||||
msgid "Advice Date is used to search Payslips"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: selection:payment.advice.report,month:0
|
||||
msgid "May"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.payslip.run:0
|
||||
msgid "Create Advice"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:payment.advice.report:0
|
||||
#: field:payment.advice.report,year:0
|
||||
msgid "Year"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:hr.payroll.advice,neft:0
|
||||
#: field:payment.advice.report,neft:0
|
||||
msgid "NEFT Transaction"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:paylip.details.in:0
|
||||
#: report:salary.detail.byyear:0
|
||||
#: report:salary.employee.bymonth:0
|
||||
msgid "Total"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:payroll.advice:0
|
||||
msgid "form period"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:payment.advice.report:0
|
||||
msgid "Year of Payment Advices"
|
||||
msgstr ""
|
|
@ -0,0 +1,933 @@
|
|||
# Hindi Translation of OpenERP Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * l10n_in_hr_payroll
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 7.0alpha\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2012-08-17 06:46+0000\n"
|
||||
"PO-Revision-Date: 2012-08-17 06:46+0000\n"
|
||||
"Last-Translator: <>\n"
|
||||
"Language-Team: Hindi <hi@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: \n"
|
||||
"Plural-Forms: \n"
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:salary.detail.byyear:0
|
||||
msgid "E-mail Address"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:payment.advice.report,employee_bank_no:0
|
||||
msgid "Employee Bank Account"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:payment.advice.report:0
|
||||
msgid "Payment Advices which are in draft state"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:salary.detail.byyear:0
|
||||
msgid "Title"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:payroll.advice:0
|
||||
msgid "Payment Advice from"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: model:ir.model,name:l10n_in_hr_payroll.model_yearly_salary_detail
|
||||
msgid "Hr Salary Employee By Category Report"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:salary.detail.byyear:0
|
||||
msgid "Employees Salary Details"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:salary.detail.byyear:0
|
||||
msgid "Allowances with Basic:"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:salary.detail.byyear:0
|
||||
msgid "Department"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:salary.detail.byyear:0
|
||||
msgid "Deductions:"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:payroll.advice:0
|
||||
msgid "A/C no."
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:hr.contract,driver_salay:0
|
||||
msgid "Driver Salary"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: model:ir.actions.act_window,name:l10n_in_hr_payroll.action_yearly_salary_detail
|
||||
#: model:ir.actions.report.xml,name:l10n_in_hr_payroll.yearly_salary
|
||||
#: model:ir.ui.menu,name:l10n_in_hr_payroll.menu_yearly_salary_detail
|
||||
msgid "Yearly Salary by Employee"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: model:ir.actions.act_window,name:l10n_in_hr_payroll.act_hr_emp_payslip_list
|
||||
msgid "Payslips"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: selection:payment.advice.report,month:0
|
||||
msgid "March"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:paylip.details.in:0
|
||||
msgid "("
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.payroll.advice:0
|
||||
#: field:hr.payroll.advice,company_id:0
|
||||
#: field:hr.payroll.advice.line,company_id:0
|
||||
#: view:payment.advice.report:0
|
||||
#: field:payment.advice.report,company_id:0
|
||||
msgid "Company"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:payroll.advice:0
|
||||
msgid "The Manager"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.payroll.advice:0
|
||||
msgid "Letter Details"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:paylip.details.in:0
|
||||
msgid ","
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.payroll.advice:0
|
||||
msgid "Set to Draft"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: help:hr.employee,number_of_year:0
|
||||
msgid "Total years of work experience"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:payroll.advice:0
|
||||
msgid "to"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:payroll.advice:0
|
||||
msgid "Total :"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:hr.payslip.run,available_advice:0
|
||||
msgid "Made Payment Advice?"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:payment.advice.report:0
|
||||
msgid "Advices which are paid using NEFT transfer"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: help:hr.contract,tds:0
|
||||
msgid "Amount for Tax Deduction at Source"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: model:ir.model,name:l10n_in_hr_payroll.model_hr_payslip
|
||||
msgid "Pay Slip"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:payment.advice.report:0
|
||||
#: field:payment.advice.report,day:0
|
||||
msgid "Day"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:payment.advice.report:0
|
||||
msgid "Month of Payment Advices"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: constraint:hr.payslip:0
|
||||
msgid "Payslip 'Date From' must be before 'Date To'."
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:hr.payroll.advice,batch_id:0
|
||||
msgid "Batch"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:paylip.details.in:0
|
||||
msgid "Code"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.payroll.advice:0
|
||||
msgid "Other Information"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: selection:hr.payroll.advice,state:0
|
||||
#: selection:payment.advice.report,state:0
|
||||
msgid "Cancelled"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:payroll.advice:0
|
||||
msgid "For"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:paylip.details.in:0
|
||||
msgid "Details by Salary Rule Category:"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: help:hr.contract,voluntary_provident_fund:0
|
||||
msgid "VPF computed as percentage(%)"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:hr.payroll.advice,number:0
|
||||
#: report:paylip.details.in:0
|
||||
msgid "Reference"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.payroll.advice:0
|
||||
#: view:payment.advice.report:0
|
||||
msgid "Group By..."
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:hr.contract,medical_insurance:0
|
||||
msgid "Medical Insurance"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:paylip.details.in:0
|
||||
msgid "Identification No"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: selection:hr.payroll.advice,state:0
|
||||
#: selection:payment.advice.report,state:0
|
||||
msgid "Confirmed"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:salary.detail.byyear:0
|
||||
#: report:salary.employee.bymonth:0
|
||||
msgid "From"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:hr.payroll.advice.line,bysal:0
|
||||
#: field:payment.advice.report,bysal:0
|
||||
#: report:payroll.advice:0
|
||||
msgid "By Salary"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.payroll.advice:0
|
||||
#: view:payment.advice.report:0
|
||||
msgid "Confirm"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:hr.payroll.advice,chaque_nos:0
|
||||
#: field:payment.advice.report,cheque_nos:0
|
||||
msgid "Cheque Numbers"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: constraint:res.company:0
|
||||
msgid "Error! You can not create recursive companies."
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: model:ir.actions.act_window,name:l10n_in_hr_payroll.action_salary_employee_month
|
||||
#: model:ir.actions.report.xml,name:l10n_in_hr_payroll.hr_salary_employee_bymonth
|
||||
#: model:ir.ui.menu,name:l10n_in_hr_payroll.menu_salary_employee_month
|
||||
msgid "Yearly Salary by Head"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: code:addons/l10n_in_hr_payroll/l10n_in_hr_payroll.py:184
|
||||
#, python-format
|
||||
msgid "You can not confirm Payment advice without advice lines."
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:hr.payroll.advice,state:0
|
||||
#: field:payment.advice.report,state:0
|
||||
msgid "State"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:payroll.advice:0
|
||||
msgid "Yours Sincerely"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: help:hr.contract,medical_insurance:0
|
||||
msgid "Deduction towards company provided medical insurance"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: model:ir.model,name:l10n_in_hr_payroll.model_hr_payroll_advice_line
|
||||
msgid "Bank Advice Lines"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:paylip.details.in:0
|
||||
msgid "Email"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: help:hr.payslip.run,available_advice:0
|
||||
msgid "If this box is checked which means that Payment Advice exists for current batch"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: code:addons/l10n_in_hr_payroll/l10n_in_hr_payroll.py:158
|
||||
#: code:addons/l10n_in_hr_payroll/l10n_in_hr_payroll.py:184
|
||||
#: code:addons/l10n_in_hr_payroll/l10n_in_hr_payroll.py:240
|
||||
#: code:addons/l10n_in_hr_payroll/l10n_in_hr_payroll.py:257
|
||||
#, python-format
|
||||
msgid "Error !"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.salary.employee.month:0
|
||||
#: view:yearly.salary.detail:0
|
||||
msgid "Print"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: model:ir.model,name:l10n_in_hr_payroll.model_hr_payslip_run
|
||||
msgid "Payslip Batches"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:hr.payroll.advice.line,debit_credit:0
|
||||
#: report:payroll.advice:0
|
||||
msgid "C/D"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:salary.employee.bymonth:0
|
||||
msgid "Yearly Salary Details"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: model:ir.actions.report.xml,name:l10n_in_hr_payroll.payroll_advice
|
||||
msgid "Print Advice"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:hr.payroll.advice,line_ids:0
|
||||
msgid "Employee Salary"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: selection:payment.advice.report,month:0
|
||||
msgid "July"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:res.company:0
|
||||
msgid "Configuration"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: model:ir.actions.act_window,name:l10n_in_hr_payroll.action_view_hr_bank_advice_tree
|
||||
#: model:ir.ui.menu,name:l10n_in_hr_payroll.hr_menu_payment_advice
|
||||
msgid "Payment Advices"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: model:ir.actions.act_window,name:l10n_in_hr_payroll.action_payment_advice_report_all
|
||||
#: model:ir.ui.menu,name:l10n_in_hr_payroll.menu_reporting_payment_advice
|
||||
#: view:payment.advice.report:0
|
||||
msgid "Advices Analysis"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.salary.employee.month:0
|
||||
msgid "This wizard will print report which displays employees break-up of Net Head for a specified dates."
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:hr.payroll.advice.line,ifsc:0
|
||||
msgid "IFSC"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:paylip.details.in:0
|
||||
msgid "Date To"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:hr.contract,tds:0
|
||||
msgid "TDS"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:hr.employee,join_date:0
|
||||
msgid "Join Date"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.payroll.advice:0
|
||||
msgid "Confirm Advices"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: constraint:hr.contract:0
|
||||
msgid "Error! Contract start-date must be less than contract end-date."
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:res.company,dearness_allowance:0
|
||||
msgid "Dearness Allowance"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: selection:payment.advice.report,month:0
|
||||
msgid "August"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.contract:0
|
||||
msgid "Deduction"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.payroll.advice:0
|
||||
msgid "Search Payment advice"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:payroll.advice:0
|
||||
msgid "SI. No."
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:payment.advice.report:0
|
||||
msgid "Payment Advices which are in confirm state"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: selection:payment.advice.report,month:0
|
||||
msgid "December"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.payroll.advice:0
|
||||
msgid "Confirm Sheet"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:payment.advice.report:0
|
||||
#: field:payment.advice.report,month:0
|
||||
msgid "Month"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:salary.detail.byyear:0
|
||||
msgid "Employee Code"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: selection:hr.contract,city_type:0
|
||||
msgid "Non Metro"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.salary.employee.month:0
|
||||
#: view:yearly.salary.detail:0
|
||||
msgid "or"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: model:ir.model,name:l10n_in_hr_payroll.model_hr_salary_employee_month
|
||||
msgid "Hr Salary Employee By Month Report"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:hr.salary.employee.month,category_id:0
|
||||
msgid "Category"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: code:addons/l10n_in_hr_payroll/l10n_in_hr_payroll.py:240
|
||||
#, python-format
|
||||
msgid "Payment advice already exists for %s, 'Set to Draft' to create a new advice."
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.payslip.run:0
|
||||
msgid "To Advice"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:hr.employee,number_of_year:0
|
||||
msgid "No. of Years of Service"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:paylip.details.in:0
|
||||
msgid "Note"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:paylip.details.in:0
|
||||
msgid "Salary Rule Category"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.payroll.advice:0
|
||||
#: selection:hr.payroll.advice,state:0
|
||||
#: view:payment.advice.report:0
|
||||
#: selection:payment.advice.report,state:0
|
||||
msgid "Draft"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:paylip.details.in:0
|
||||
msgid "Date From"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:hr.contract,voluntary_provident_fund:0
|
||||
msgid "Voluntary Provident Fund"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:salary.detail.byyear:0
|
||||
msgid "Employee Name"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: model:ir.model,name:l10n_in_hr_payroll.model_payment_advice_report
|
||||
msgid "Payment Advice Analysis"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.payroll.advice:0
|
||||
#: view:payment.advice.report:0
|
||||
msgid "Status"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:hr.contract,city_type:0
|
||||
msgid "Type of City"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: help:res.company,dearness_allowance:0
|
||||
msgid "Check this box if your company provide Dearness Allowance to employee"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:hr.payroll.advice.line,ifsc_code:0
|
||||
#: field:payment.advice.report,ifsc_code:0
|
||||
#: report:payroll.advice:0
|
||||
msgid "IFSC Code"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: selection:payment.advice.report,month:0
|
||||
msgid "June"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:payment.advice.report:0
|
||||
#: field:payment.advice.report,nbr:0
|
||||
msgid "# Payment Lines"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: model:ir.actions.report.xml,name:l10n_in_hr_payroll.payslip_details_report
|
||||
msgid "PaySlip Details"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.payroll.advice:0
|
||||
msgid "Payment Lines"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:hr.payroll.advice,date:0
|
||||
#: field:payment.advice.report,date:0
|
||||
msgid "Date"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: selection:payment.advice.report,month:0
|
||||
msgid "November"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:payment.advice.report:0
|
||||
msgid "Extended Filters..."
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: model:ir.actions.act_window,help:l10n_in_hr_payroll.action_payment_advice_report_all
|
||||
msgid "This report performs analysis on Payment Advices"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: selection:payment.advice.report,month:0
|
||||
msgid "October"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:paylip.details.in:0
|
||||
#: report:salary.detail.byyear:0
|
||||
msgid "Designation"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: selection:payment.advice.report,month:0
|
||||
msgid "January"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:yearly.salary.detail:0
|
||||
msgid "Pay Head Employee Breakup"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: model:ir.model,name:l10n_in_hr_payroll.model_res_company
|
||||
msgid "Companies"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:paylip.details.in:0
|
||||
#: report:payroll.advice:0
|
||||
msgid "Authorized Signature"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: model:ir.model,name:l10n_in_hr_payroll.model_hr_contract
|
||||
msgid "Contract"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.payroll.advice.line:0
|
||||
msgid "Advice Lines"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:payroll.advice:0
|
||||
msgid "To,"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: help:hr.contract,driver_salay:0
|
||||
msgid "Check this box if you provide allowance for driver"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.payroll.advice:0
|
||||
#: field:hr.payroll.advice.line,advice_id:0
|
||||
#: field:hr.payslip,advice_id:0
|
||||
#: model:ir.model,name:l10n_in_hr_payroll.model_hr_payroll_advice
|
||||
msgid "Bank Advice"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:salary.detail.byyear:0
|
||||
msgid "Other No."
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.payroll.advice:0
|
||||
msgid "Draft Advices"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: help:hr.payroll.advice,neft:0
|
||||
msgid "Check this box if your company use online transfer for salary"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:salary.detail.byyear:0
|
||||
msgid "To"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:payment.advice.report,number:0
|
||||
msgid "Number"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: selection:payment.advice.report,month:0
|
||||
msgid "September"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.payroll.advice:0
|
||||
#: view:hr.salary.employee.month:0
|
||||
#: view:yearly.salary.detail:0
|
||||
msgid "Cancel"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:payment.advice.report:0
|
||||
msgid "Day of Payment Advices"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: constraint:hr.employee:0
|
||||
msgid "Error! You cannot create recursive hierarchy of Employee(s)."
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:yearly.salary.detail:0
|
||||
msgid "This wizard will print report which display a pay head employee breakup for a specified dates."
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.payslip.run:0
|
||||
msgid "Payslip Batches ready to be Adviced"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:paylip.details.in:0
|
||||
msgid "Pay Slip Details"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:payment.advice.report:0
|
||||
msgid "Total Salary"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:hr.payroll.advice.line,employee_id:0
|
||||
#: model:ir.model,name:l10n_in_hr_payroll.model_hr_employee
|
||||
#: view:payment.advice.report:0
|
||||
#: field:payment.advice.report,employee_id:0
|
||||
msgid "Employee"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.payroll.advice:0
|
||||
msgid "Compute Advice"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: help:hr.employee,join_date:0
|
||||
msgid "Joining date of employee"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:payroll.advice:0
|
||||
msgid "Dear Sir/Madam,"
|
||||
msgstr "Dear Sir/Madam,"
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:hr.payroll.advice,note:0
|
||||
msgid "Description"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:paylip.details.in:0
|
||||
msgid ")"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:res.company:0
|
||||
msgid "Payroll"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:payment.advice.report:0
|
||||
msgid "NEFT"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:paylip.details.in:0
|
||||
#: report:salary.detail.byyear:0
|
||||
msgid "Address"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.payroll.advice:0
|
||||
#: field:hr.payroll.advice,bank_id:0
|
||||
#: view:payment.advice.report:0
|
||||
#: field:payment.advice.report,bank_id:0
|
||||
#: report:payroll.advice:0
|
||||
#: report:salary.detail.byyear:0
|
||||
msgid "Bank"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:hr.salary.employee.month,end_date:0
|
||||
#: field:yearly.salary.detail,date_to:0
|
||||
msgid "End Date"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: selection:payment.advice.report,month:0
|
||||
msgid "February"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: sql_constraint:res.company:0
|
||||
msgid "The company name must be unique !"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.payroll.advice:0
|
||||
#: field:hr.payroll.advice,name:0
|
||||
#: report:paylip.details.in:0
|
||||
#: field:payment.advice.report,name:0
|
||||
#: report:salary.employee.bymonth:0
|
||||
msgid "Name"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: selection:hr.contract,city_type:0
|
||||
msgid "Metro"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.salary.employee.month:0
|
||||
#: field:hr.salary.employee.month,employee_ids:0
|
||||
#: view:yearly.salary.detail:0
|
||||
#: field:yearly.salary.detail,employee_ids:0
|
||||
msgid "Employees"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:paylip.details.in:0
|
||||
msgid "Bank Account"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: selection:payment.advice.report,month:0
|
||||
msgid "April"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:payroll.advice:0
|
||||
msgid "Name of the Employe"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: code:addons/l10n_in_hr_payroll/l10n_in_hr_payroll.py:158
|
||||
#: code:addons/l10n_in_hr_payroll/l10n_in_hr_payroll.py:257
|
||||
#, python-format
|
||||
msgid "Please define bank account for the %s employee"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:hr.salary.employee.month,start_date:0
|
||||
#: field:yearly.salary.detail,date_from:0
|
||||
msgid "Start Date"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.contract:0
|
||||
msgid "Allowance"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: help:hr.payroll.advice,bank_id:0
|
||||
msgid "Select the Bank from which the salary is going to be paid"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.salary.employee.month:0
|
||||
msgid "Employee Pay Head Breakup"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:salary.detail.byyear:0
|
||||
msgid "Phone No."
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:paylip.details.in:0
|
||||
msgid "Credit"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:hr.payroll.advice.line,name:0
|
||||
#: report:payroll.advice:0
|
||||
msgid "Bank Account No."
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: help:hr.payroll.advice,date:0
|
||||
msgid "Advice Date is used to search Payslips"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: selection:payment.advice.report,month:0
|
||||
msgid "May"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.payslip.run:0
|
||||
msgid "Create Advice"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:payment.advice.report:0
|
||||
#: field:payment.advice.report,year:0
|
||||
msgid "Year"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:hr.payroll.advice,neft:0
|
||||
#: field:payment.advice.report,neft:0
|
||||
msgid "NEFT Transaction"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:paylip.details.in:0
|
||||
#: report:salary.detail.byyear:0
|
||||
#: report:salary.employee.bymonth:0
|
||||
msgid "Total"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:payroll.advice:0
|
||||
msgid "form period"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:payment.advice.report:0
|
||||
msgid "Year of Payment Advices"
|
||||
msgstr ""
|
|
@ -0,0 +1,933 @@
|
|||
# Translation of OpenERP Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * l10n_in_hr_payroll
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 7.0alpha\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2012-08-17 06:46+0000\n"
|
||||
"PO-Revision-Date: 2012-08-17 06:46+0000\n"
|
||||
"Last-Translator: <>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: \n"
|
||||
"Plural-Forms: \n"
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:salary.detail.byyear:0
|
||||
msgid "E-mail Address"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:payment.advice.report,employee_bank_no:0
|
||||
msgid "Employee Bank Account"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:payment.advice.report:0
|
||||
msgid "Payment Advices which are in draft state"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:salary.detail.byyear:0
|
||||
msgid "Title"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:payroll.advice:0
|
||||
msgid "Payment Advice from"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: model:ir.model,name:l10n_in_hr_payroll.model_yearly_salary_detail
|
||||
msgid "Hr Salary Employee By Category Report"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:salary.detail.byyear:0
|
||||
msgid "Employees Salary Details"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:salary.detail.byyear:0
|
||||
msgid "Allowances with Basic:"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:salary.detail.byyear:0
|
||||
msgid "Department"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:salary.detail.byyear:0
|
||||
msgid "Deductions:"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:payroll.advice:0
|
||||
msgid "A/C no."
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:hr.contract,driver_salay:0
|
||||
msgid "Driver Salary"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: model:ir.actions.act_window,name:l10n_in_hr_payroll.action_yearly_salary_detail
|
||||
#: model:ir.actions.report.xml,name:l10n_in_hr_payroll.yearly_salary
|
||||
#: model:ir.ui.menu,name:l10n_in_hr_payroll.menu_yearly_salary_detail
|
||||
msgid "Yearly Salary by Employee"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: model:ir.actions.act_window,name:l10n_in_hr_payroll.act_hr_emp_payslip_list
|
||||
msgid "Payslips"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: selection:payment.advice.report,month:0
|
||||
msgid "March"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:paylip.details.in:0
|
||||
msgid "("
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.payroll.advice:0
|
||||
#: field:hr.payroll.advice,company_id:0
|
||||
#: field:hr.payroll.advice.line,company_id:0
|
||||
#: view:payment.advice.report:0
|
||||
#: field:payment.advice.report,company_id:0
|
||||
msgid "Company"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:payroll.advice:0
|
||||
msgid "The Manager"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.payroll.advice:0
|
||||
msgid "Letter Details"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:paylip.details.in:0
|
||||
msgid ","
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.payroll.advice:0
|
||||
msgid "Set to Draft"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: help:hr.employee,number_of_year:0
|
||||
msgid "Total years of work experience"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:payroll.advice:0
|
||||
msgid "to"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:payroll.advice:0
|
||||
msgid "Total :"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:hr.payslip.run,available_advice:0
|
||||
msgid "Made Payment Advice?"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:payment.advice.report:0
|
||||
msgid "Advices which are paid using NEFT transfer"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: help:hr.contract,tds:0
|
||||
msgid "Amount for Tax Deduction at Source"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: model:ir.model,name:l10n_in_hr_payroll.model_hr_payslip
|
||||
msgid "Pay Slip"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:payment.advice.report:0
|
||||
#: field:payment.advice.report,day:0
|
||||
msgid "Day"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:payment.advice.report:0
|
||||
msgid "Month of Payment Advices"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: constraint:hr.payslip:0
|
||||
msgid "Payslip 'Date From' must be before 'Date To'."
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:hr.payroll.advice,batch_id:0
|
||||
msgid "Batch"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:paylip.details.in:0
|
||||
msgid "Code"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.payroll.advice:0
|
||||
msgid "Other Information"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: selection:hr.payroll.advice,state:0
|
||||
#: selection:payment.advice.report,state:0
|
||||
msgid "Cancelled"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:payroll.advice:0
|
||||
msgid "For"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:paylip.details.in:0
|
||||
msgid "Details by Salary Rule Category:"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: help:hr.contract,voluntary_provident_fund:0
|
||||
msgid "VPF computed as percentage(%)"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:hr.payroll.advice,number:0
|
||||
#: report:paylip.details.in:0
|
||||
msgid "Reference"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.payroll.advice:0
|
||||
#: view:payment.advice.report:0
|
||||
msgid "Group By..."
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:hr.contract,medical_insurance:0
|
||||
msgid "Medical Insurance"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:paylip.details.in:0
|
||||
msgid "Identification No"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: selection:hr.payroll.advice,state:0
|
||||
#: selection:payment.advice.report,state:0
|
||||
msgid "Confirmed"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:salary.detail.byyear:0
|
||||
#: report:salary.employee.bymonth:0
|
||||
msgid "From"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:hr.payroll.advice.line,bysal:0
|
||||
#: field:payment.advice.report,bysal:0
|
||||
#: report:payroll.advice:0
|
||||
msgid "By Salary"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.payroll.advice:0
|
||||
#: view:payment.advice.report:0
|
||||
msgid "Confirm"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:hr.payroll.advice,chaque_nos:0
|
||||
#: field:payment.advice.report,cheque_nos:0
|
||||
msgid "Cheque Numbers"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: constraint:res.company:0
|
||||
msgid "Error! You can not create recursive companies."
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: model:ir.actions.act_window,name:l10n_in_hr_payroll.action_salary_employee_month
|
||||
#: model:ir.actions.report.xml,name:l10n_in_hr_payroll.hr_salary_employee_bymonth
|
||||
#: model:ir.ui.menu,name:l10n_in_hr_payroll.menu_salary_employee_month
|
||||
msgid "Yearly Salary by Head"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: code:addons/l10n_in_hr_payroll/l10n_in_hr_payroll.py:184
|
||||
#, python-format
|
||||
msgid "You can not confirm Payment advice without advice lines."
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:hr.payroll.advice,state:0
|
||||
#: field:payment.advice.report,state:0
|
||||
msgid "State"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:payroll.advice:0
|
||||
msgid "Yours Sincerely"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: help:hr.contract,medical_insurance:0
|
||||
msgid "Deduction towards company provided medical insurance"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: model:ir.model,name:l10n_in_hr_payroll.model_hr_payroll_advice_line
|
||||
msgid "Bank Advice Lines"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:paylip.details.in:0
|
||||
msgid "Email"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: help:hr.payslip.run,available_advice:0
|
||||
msgid "If this box is checked which means that Payment Advice exists for current batch"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: code:addons/l10n_in_hr_payroll/l10n_in_hr_payroll.py:158
|
||||
#: code:addons/l10n_in_hr_payroll/l10n_in_hr_payroll.py:184
|
||||
#: code:addons/l10n_in_hr_payroll/l10n_in_hr_payroll.py:240
|
||||
#: code:addons/l10n_in_hr_payroll/l10n_in_hr_payroll.py:257
|
||||
#, python-format
|
||||
msgid "Error !"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.salary.employee.month:0
|
||||
#: view:yearly.salary.detail:0
|
||||
msgid "Print"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: model:ir.model,name:l10n_in_hr_payroll.model_hr_payslip_run
|
||||
msgid "Payslip Batches"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:hr.payroll.advice.line,debit_credit:0
|
||||
#: report:payroll.advice:0
|
||||
msgid "C/D"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:salary.employee.bymonth:0
|
||||
msgid "Yearly Salary Details"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: model:ir.actions.report.xml,name:l10n_in_hr_payroll.payroll_advice
|
||||
msgid "Print Advice"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:hr.payroll.advice,line_ids:0
|
||||
msgid "Employee Salary"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: selection:payment.advice.report,month:0
|
||||
msgid "July"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:res.company:0
|
||||
msgid "Configuration"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: model:ir.actions.act_window,name:l10n_in_hr_payroll.action_view_hr_bank_advice_tree
|
||||
#: model:ir.ui.menu,name:l10n_in_hr_payroll.hr_menu_payment_advice
|
||||
msgid "Payment Advices"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: model:ir.actions.act_window,name:l10n_in_hr_payroll.action_payment_advice_report_all
|
||||
#: model:ir.ui.menu,name:l10n_in_hr_payroll.menu_reporting_payment_advice
|
||||
#: view:payment.advice.report:0
|
||||
msgid "Advices Analysis"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.salary.employee.month:0
|
||||
msgid "This wizard will print report which displays employees break-up of Net Head for a specified dates."
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:hr.payroll.advice.line,ifsc:0
|
||||
msgid "IFSC"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:paylip.details.in:0
|
||||
msgid "Date To"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:hr.contract,tds:0
|
||||
msgid "TDS"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:hr.employee,join_date:0
|
||||
msgid "Join Date"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.payroll.advice:0
|
||||
msgid "Confirm Advices"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: constraint:hr.contract:0
|
||||
msgid "Error! Contract start-date must be less than contract end-date."
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:res.company,dearness_allowance:0
|
||||
msgid "Dearness Allowance"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: selection:payment.advice.report,month:0
|
||||
msgid "August"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.contract:0
|
||||
msgid "Deduction"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.payroll.advice:0
|
||||
msgid "Search Payment advice"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:payroll.advice:0
|
||||
msgid "SI. No."
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:payment.advice.report:0
|
||||
msgid "Payment Advices which are in confirm state"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: selection:payment.advice.report,month:0
|
||||
msgid "December"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.payroll.advice:0
|
||||
msgid "Confirm Sheet"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:payment.advice.report:0
|
||||
#: field:payment.advice.report,month:0
|
||||
msgid "Month"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:salary.detail.byyear:0
|
||||
msgid "Employee Code"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: selection:hr.contract,city_type:0
|
||||
msgid "Non Metro"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.salary.employee.month:0
|
||||
#: view:yearly.salary.detail:0
|
||||
msgid "or"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: model:ir.model,name:l10n_in_hr_payroll.model_hr_salary_employee_month
|
||||
msgid "Hr Salary Employee By Month Report"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:hr.salary.employee.month,category_id:0
|
||||
msgid "Category"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: code:addons/l10n_in_hr_payroll/l10n_in_hr_payroll.py:240
|
||||
#, python-format
|
||||
msgid "Payment advice already exists for %s, 'Set to Draft' to create a new advice."
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.payslip.run:0
|
||||
msgid "To Advice"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:hr.employee,number_of_year:0
|
||||
msgid "No. of Years of Service"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:paylip.details.in:0
|
||||
msgid "Note"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:paylip.details.in:0
|
||||
msgid "Salary Rule Category"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.payroll.advice:0
|
||||
#: selection:hr.payroll.advice,state:0
|
||||
#: view:payment.advice.report:0
|
||||
#: selection:payment.advice.report,state:0
|
||||
msgid "Draft"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:paylip.details.in:0
|
||||
msgid "Date From"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:hr.contract,voluntary_provident_fund:0
|
||||
msgid "Voluntary Provident Fund"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:salary.detail.byyear:0
|
||||
msgid "Employee Name"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: model:ir.model,name:l10n_in_hr_payroll.model_payment_advice_report
|
||||
msgid "Payment Advice Analysis"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.payroll.advice:0
|
||||
#: view:payment.advice.report:0
|
||||
msgid "Status"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:hr.contract,city_type:0
|
||||
msgid "Type of City"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: help:res.company,dearness_allowance:0
|
||||
msgid "Check this box if your company provide Dearness Allowance to employee"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:hr.payroll.advice.line,ifsc_code:0
|
||||
#: field:payment.advice.report,ifsc_code:0
|
||||
#: report:payroll.advice:0
|
||||
msgid "IFSC Code"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: selection:payment.advice.report,month:0
|
||||
msgid "June"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:payment.advice.report:0
|
||||
#: field:payment.advice.report,nbr:0
|
||||
msgid "# Payment Lines"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: model:ir.actions.report.xml,name:l10n_in_hr_payroll.payslip_details_report
|
||||
msgid "PaySlip Details"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.payroll.advice:0
|
||||
msgid "Payment Lines"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:hr.payroll.advice,date:0
|
||||
#: field:payment.advice.report,date:0
|
||||
msgid "Date"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: selection:payment.advice.report,month:0
|
||||
msgid "November"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:payment.advice.report:0
|
||||
msgid "Extended Filters..."
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: model:ir.actions.act_window,help:l10n_in_hr_payroll.action_payment_advice_report_all
|
||||
msgid "This report performs analysis on Payment Advices"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: selection:payment.advice.report,month:0
|
||||
msgid "October"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:paylip.details.in:0
|
||||
#: report:salary.detail.byyear:0
|
||||
msgid "Designation"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: selection:payment.advice.report,month:0
|
||||
msgid "January"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:yearly.salary.detail:0
|
||||
msgid "Pay Head Employee Breakup"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: model:ir.model,name:l10n_in_hr_payroll.model_res_company
|
||||
msgid "Companies"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:paylip.details.in:0
|
||||
#: report:payroll.advice:0
|
||||
msgid "Authorized Signature"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: model:ir.model,name:l10n_in_hr_payroll.model_hr_contract
|
||||
msgid "Contract"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.payroll.advice.line:0
|
||||
msgid "Advice Lines"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:payroll.advice:0
|
||||
msgid "To,"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: help:hr.contract,driver_salay:0
|
||||
msgid "Check this box if you provide allowance for driver"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.payroll.advice:0
|
||||
#: field:hr.payroll.advice.line,advice_id:0
|
||||
#: field:hr.payslip,advice_id:0
|
||||
#: model:ir.model,name:l10n_in_hr_payroll.model_hr_payroll_advice
|
||||
msgid "Bank Advice"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:salary.detail.byyear:0
|
||||
msgid "Other No."
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.payroll.advice:0
|
||||
msgid "Draft Advices"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: help:hr.payroll.advice,neft:0
|
||||
msgid "Check this box if your company use online transfer for salary"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:salary.detail.byyear:0
|
||||
msgid "To"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:payment.advice.report,number:0
|
||||
msgid "Number"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: selection:payment.advice.report,month:0
|
||||
msgid "September"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.payroll.advice:0
|
||||
#: view:hr.salary.employee.month:0
|
||||
#: view:yearly.salary.detail:0
|
||||
msgid "Cancel"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:payment.advice.report:0
|
||||
msgid "Day of Payment Advices"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: constraint:hr.employee:0
|
||||
msgid "Error! You cannot create recursive hierarchy of Employee(s)."
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:yearly.salary.detail:0
|
||||
msgid "This wizard will print report which display a pay head employee breakup for a specified dates."
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.payslip.run:0
|
||||
msgid "Payslip Batches ready to be Adviced"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:paylip.details.in:0
|
||||
msgid "Pay Slip Details"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:payment.advice.report:0
|
||||
msgid "Total Salary"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:hr.payroll.advice.line,employee_id:0
|
||||
#: model:ir.model,name:l10n_in_hr_payroll.model_hr_employee
|
||||
#: view:payment.advice.report:0
|
||||
#: field:payment.advice.report,employee_id:0
|
||||
msgid "Employee"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.payroll.advice:0
|
||||
msgid "Compute Advice"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: help:hr.employee,join_date:0
|
||||
msgid "Joining date of employee"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:payroll.advice:0
|
||||
msgid "Dear Sir/Madam,"
|
||||
msgstr "Dear Sir/Madam,"
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:hr.payroll.advice,note:0
|
||||
msgid "Description"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:paylip.details.in:0
|
||||
msgid ")"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:res.company:0
|
||||
msgid "Payroll"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:payment.advice.report:0
|
||||
msgid "NEFT"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:paylip.details.in:0
|
||||
#: report:salary.detail.byyear:0
|
||||
msgid "Address"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.payroll.advice:0
|
||||
#: field:hr.payroll.advice,bank_id:0
|
||||
#: view:payment.advice.report:0
|
||||
#: field:payment.advice.report,bank_id:0
|
||||
#: report:payroll.advice:0
|
||||
#: report:salary.detail.byyear:0
|
||||
msgid "Bank"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:hr.salary.employee.month,end_date:0
|
||||
#: field:yearly.salary.detail,date_to:0
|
||||
msgid "End Date"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: selection:payment.advice.report,month:0
|
||||
msgid "February"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: sql_constraint:res.company:0
|
||||
msgid "The company name must be unique !"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.payroll.advice:0
|
||||
#: field:hr.payroll.advice,name:0
|
||||
#: report:paylip.details.in:0
|
||||
#: field:payment.advice.report,name:0
|
||||
#: report:salary.employee.bymonth:0
|
||||
msgid "Name"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: selection:hr.contract,city_type:0
|
||||
msgid "Metro"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.salary.employee.month:0
|
||||
#: field:hr.salary.employee.month,employee_ids:0
|
||||
#: view:yearly.salary.detail:0
|
||||
#: field:yearly.salary.detail,employee_ids:0
|
||||
msgid "Employees"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:paylip.details.in:0
|
||||
msgid "Bank Account"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: selection:payment.advice.report,month:0
|
||||
msgid "April"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:payroll.advice:0
|
||||
msgid "Name of the Employe"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: code:addons/l10n_in_hr_payroll/l10n_in_hr_payroll.py:158
|
||||
#: code:addons/l10n_in_hr_payroll/l10n_in_hr_payroll.py:257
|
||||
#, python-format
|
||||
msgid "Please define bank account for the %s employee"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:hr.salary.employee.month,start_date:0
|
||||
#: field:yearly.salary.detail,date_from:0
|
||||
msgid "Start Date"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.contract:0
|
||||
msgid "Allowance"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: help:hr.payroll.advice,bank_id:0
|
||||
msgid "Select the Bank from which the salary is going to be paid"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.salary.employee.month:0
|
||||
msgid "Employee Pay Head Breakup"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:salary.detail.byyear:0
|
||||
msgid "Phone No."
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:paylip.details.in:0
|
||||
msgid "Credit"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:hr.payroll.advice.line,name:0
|
||||
#: report:payroll.advice:0
|
||||
msgid "Bank Account No."
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: help:hr.payroll.advice,date:0
|
||||
msgid "Advice Date is used to search Payslips"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: selection:payment.advice.report,month:0
|
||||
msgid "May"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.payslip.run:0
|
||||
msgid "Create Advice"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:payment.advice.report:0
|
||||
#: field:payment.advice.report,year:0
|
||||
msgid "Year"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:hr.payroll.advice,neft:0
|
||||
#: field:payment.advice.report,neft:0
|
||||
msgid "NEFT Transaction"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:paylip.details.in:0
|
||||
#: report:salary.detail.byyear:0
|
||||
#: report:salary.employee.bymonth:0
|
||||
msgid "Total"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:payroll.advice:0
|
||||
msgid "form period"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:payment.advice.report:0
|
||||
msgid "Year of Payment Advices"
|
||||
msgstr ""
|
|
@ -0,0 +1,933 @@
|
|||
# Tamil Translation of OpenERP Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * l10n_in_hr_payroll
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 7.0alpha\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2012-08-17 06:46+0000\n"
|
||||
"PO-Revision-Date: 2012-08-17 06:46+0000\n"
|
||||
"Last-Translator: <>\n"
|
||||
"Language-Team: Tamil <ta@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: \n"
|
||||
"Plural-Forms: \n"
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:salary.detail.byyear:0
|
||||
msgid "E-mail Address"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:payment.advice.report,employee_bank_no:0
|
||||
msgid "Employee Bank Account"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:payment.advice.report:0
|
||||
msgid "Payment Advices which are in draft state"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:salary.detail.byyear:0
|
||||
msgid "Title"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:payroll.advice:0
|
||||
msgid "Payment Advice from"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: model:ir.model,name:l10n_in_hr_payroll.model_yearly_salary_detail
|
||||
msgid "Hr Salary Employee By Category Report"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:salary.detail.byyear:0
|
||||
msgid "Employees Salary Details"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:salary.detail.byyear:0
|
||||
msgid "Allowances with Basic:"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:salary.detail.byyear:0
|
||||
msgid "Department"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:salary.detail.byyear:0
|
||||
msgid "Deductions:"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:payroll.advice:0
|
||||
msgid "A/C no."
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:hr.contract,driver_salay:0
|
||||
msgid "Driver Salary"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: model:ir.actions.act_window,name:l10n_in_hr_payroll.action_yearly_salary_detail
|
||||
#: model:ir.actions.report.xml,name:l10n_in_hr_payroll.yearly_salary
|
||||
#: model:ir.ui.menu,name:l10n_in_hr_payroll.menu_yearly_salary_detail
|
||||
msgid "Yearly Salary by Employee"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: model:ir.actions.act_window,name:l10n_in_hr_payroll.act_hr_emp_payslip_list
|
||||
msgid "Payslips"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: selection:payment.advice.report,month:0
|
||||
msgid "March"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:paylip.details.in:0
|
||||
msgid "("
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.payroll.advice:0
|
||||
#: field:hr.payroll.advice,company_id:0
|
||||
#: field:hr.payroll.advice.line,company_id:0
|
||||
#: view:payment.advice.report:0
|
||||
#: field:payment.advice.report,company_id:0
|
||||
msgid "Company"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:payroll.advice:0
|
||||
msgid "The Manager"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.payroll.advice:0
|
||||
msgid "Letter Details"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:paylip.details.in:0
|
||||
msgid ","
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.payroll.advice:0
|
||||
msgid "Set to Draft"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: help:hr.employee,number_of_year:0
|
||||
msgid "Total years of work experience"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:payroll.advice:0
|
||||
msgid "to"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:payroll.advice:0
|
||||
msgid "Total :"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:hr.payslip.run,available_advice:0
|
||||
msgid "Made Payment Advice?"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:payment.advice.report:0
|
||||
msgid "Advices which are paid using NEFT transfer"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: help:hr.contract,tds:0
|
||||
msgid "Amount for Tax Deduction at Source"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: model:ir.model,name:l10n_in_hr_payroll.model_hr_payslip
|
||||
msgid "Pay Slip"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:payment.advice.report:0
|
||||
#: field:payment.advice.report,day:0
|
||||
msgid "Day"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:payment.advice.report:0
|
||||
msgid "Month of Payment Advices"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: constraint:hr.payslip:0
|
||||
msgid "Payslip 'Date From' must be before 'Date To'."
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:hr.payroll.advice,batch_id:0
|
||||
msgid "Batch"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:paylip.details.in:0
|
||||
msgid "Code"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.payroll.advice:0
|
||||
msgid "Other Information"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: selection:hr.payroll.advice,state:0
|
||||
#: selection:payment.advice.report,state:0
|
||||
msgid "Cancelled"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:payroll.advice:0
|
||||
msgid "For"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:paylip.details.in:0
|
||||
msgid "Details by Salary Rule Category:"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: help:hr.contract,voluntary_provident_fund:0
|
||||
msgid "VPF computed as percentage(%)"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:hr.payroll.advice,number:0
|
||||
#: report:paylip.details.in:0
|
||||
msgid "Reference"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.payroll.advice:0
|
||||
#: view:payment.advice.report:0
|
||||
msgid "Group By..."
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:hr.contract,medical_insurance:0
|
||||
msgid "Medical Insurance"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:paylip.details.in:0
|
||||
msgid "Identification No"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: selection:hr.payroll.advice,state:0
|
||||
#: selection:payment.advice.report,state:0
|
||||
msgid "Confirmed"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:salary.detail.byyear:0
|
||||
#: report:salary.employee.bymonth:0
|
||||
msgid "From"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:hr.payroll.advice.line,bysal:0
|
||||
#: field:payment.advice.report,bysal:0
|
||||
#: report:payroll.advice:0
|
||||
msgid "By Salary"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.payroll.advice:0
|
||||
#: view:payment.advice.report:0
|
||||
msgid "Confirm"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:hr.payroll.advice,chaque_nos:0
|
||||
#: field:payment.advice.report,cheque_nos:0
|
||||
msgid "Cheque Numbers"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: constraint:res.company:0
|
||||
msgid "Error! You can not create recursive companies."
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: model:ir.actions.act_window,name:l10n_in_hr_payroll.action_salary_employee_month
|
||||
#: model:ir.actions.report.xml,name:l10n_in_hr_payroll.hr_salary_employee_bymonth
|
||||
#: model:ir.ui.menu,name:l10n_in_hr_payroll.menu_salary_employee_month
|
||||
msgid "Yearly Salary by Head"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: code:addons/l10n_in_hr_payroll/l10n_in_hr_payroll.py:184
|
||||
#, python-format
|
||||
msgid "You can not confirm Payment advice without advice lines."
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:hr.payroll.advice,state:0
|
||||
#: field:payment.advice.report,state:0
|
||||
msgid "State"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:payroll.advice:0
|
||||
msgid "Yours Sincerely"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: help:hr.contract,medical_insurance:0
|
||||
msgid "Deduction towards company provided medical insurance"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: model:ir.model,name:l10n_in_hr_payroll.model_hr_payroll_advice_line
|
||||
msgid "Bank Advice Lines"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:paylip.details.in:0
|
||||
msgid "Email"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: help:hr.payslip.run,available_advice:0
|
||||
msgid "If this box is checked which means that Payment Advice exists for current batch"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: code:addons/l10n_in_hr_payroll/l10n_in_hr_payroll.py:158
|
||||
#: code:addons/l10n_in_hr_payroll/l10n_in_hr_payroll.py:184
|
||||
#: code:addons/l10n_in_hr_payroll/l10n_in_hr_payroll.py:240
|
||||
#: code:addons/l10n_in_hr_payroll/l10n_in_hr_payroll.py:257
|
||||
#, python-format
|
||||
msgid "Error !"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.salary.employee.month:0
|
||||
#: view:yearly.salary.detail:0
|
||||
msgid "Print"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: model:ir.model,name:l10n_in_hr_payroll.model_hr_payslip_run
|
||||
msgid "Payslip Batches"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:hr.payroll.advice.line,debit_credit:0
|
||||
#: report:payroll.advice:0
|
||||
msgid "C/D"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:salary.employee.bymonth:0
|
||||
msgid "Yearly Salary Details"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: model:ir.actions.report.xml,name:l10n_in_hr_payroll.payroll_advice
|
||||
msgid "Print Advice"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:hr.payroll.advice,line_ids:0
|
||||
msgid "Employee Salary"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: selection:payment.advice.report,month:0
|
||||
msgid "July"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:res.company:0
|
||||
msgid "Configuration"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: model:ir.actions.act_window,name:l10n_in_hr_payroll.action_view_hr_bank_advice_tree
|
||||
#: model:ir.ui.menu,name:l10n_in_hr_payroll.hr_menu_payment_advice
|
||||
msgid "Payment Advices"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: model:ir.actions.act_window,name:l10n_in_hr_payroll.action_payment_advice_report_all
|
||||
#: model:ir.ui.menu,name:l10n_in_hr_payroll.menu_reporting_payment_advice
|
||||
#: view:payment.advice.report:0
|
||||
msgid "Advices Analysis"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.salary.employee.month:0
|
||||
msgid "This wizard will print report which displays employees break-up of Net Head for a specified dates."
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:hr.payroll.advice.line,ifsc:0
|
||||
msgid "IFSC"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:paylip.details.in:0
|
||||
msgid "Date To"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:hr.contract,tds:0
|
||||
msgid "TDS"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:hr.employee,join_date:0
|
||||
msgid "Join Date"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.payroll.advice:0
|
||||
msgid "Confirm Advices"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: constraint:hr.contract:0
|
||||
msgid "Error! Contract start-date must be less than contract end-date."
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:res.company,dearness_allowance:0
|
||||
msgid "Dearness Allowance"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: selection:payment.advice.report,month:0
|
||||
msgid "August"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.contract:0
|
||||
msgid "Deduction"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.payroll.advice:0
|
||||
msgid "Search Payment advice"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:payroll.advice:0
|
||||
msgid "SI. No."
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:payment.advice.report:0
|
||||
msgid "Payment Advices which are in confirm state"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: selection:payment.advice.report,month:0
|
||||
msgid "December"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.payroll.advice:0
|
||||
msgid "Confirm Sheet"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:payment.advice.report:0
|
||||
#: field:payment.advice.report,month:0
|
||||
msgid "Month"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:salary.detail.byyear:0
|
||||
msgid "Employee Code"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: selection:hr.contract,city_type:0
|
||||
msgid "Non Metro"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.salary.employee.month:0
|
||||
#: view:yearly.salary.detail:0
|
||||
msgid "or"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: model:ir.model,name:l10n_in_hr_payroll.model_hr_salary_employee_month
|
||||
msgid "Hr Salary Employee By Month Report"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:hr.salary.employee.month,category_id:0
|
||||
msgid "Category"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: code:addons/l10n_in_hr_payroll/l10n_in_hr_payroll.py:240
|
||||
#, python-format
|
||||
msgid "Payment advice already exists for %s, 'Set to Draft' to create a new advice."
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.payslip.run:0
|
||||
msgid "To Advice"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:hr.employee,number_of_year:0
|
||||
msgid "No. of Years of Service"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:paylip.details.in:0
|
||||
msgid "Note"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:paylip.details.in:0
|
||||
msgid "Salary Rule Category"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.payroll.advice:0
|
||||
#: selection:hr.payroll.advice,state:0
|
||||
#: view:payment.advice.report:0
|
||||
#: selection:payment.advice.report,state:0
|
||||
msgid "Draft"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:paylip.details.in:0
|
||||
msgid "Date From"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:hr.contract,voluntary_provident_fund:0
|
||||
msgid "Voluntary Provident Fund"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:salary.detail.byyear:0
|
||||
msgid "Employee Name"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: model:ir.model,name:l10n_in_hr_payroll.model_payment_advice_report
|
||||
msgid "Payment Advice Analysis"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.payroll.advice:0
|
||||
#: view:payment.advice.report:0
|
||||
msgid "Status"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:hr.contract,city_type:0
|
||||
msgid "Type of City"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: help:res.company,dearness_allowance:0
|
||||
msgid "Check this box if your company provide Dearness Allowance to employee"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:hr.payroll.advice.line,ifsc_code:0
|
||||
#: field:payment.advice.report,ifsc_code:0
|
||||
#: report:payroll.advice:0
|
||||
msgid "IFSC Code"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: selection:payment.advice.report,month:0
|
||||
msgid "June"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:payment.advice.report:0
|
||||
#: field:payment.advice.report,nbr:0
|
||||
msgid "# Payment Lines"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: model:ir.actions.report.xml,name:l10n_in_hr_payroll.payslip_details_report
|
||||
msgid "PaySlip Details"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.payroll.advice:0
|
||||
msgid "Payment Lines"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:hr.payroll.advice,date:0
|
||||
#: field:payment.advice.report,date:0
|
||||
msgid "Date"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: selection:payment.advice.report,month:0
|
||||
msgid "November"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:payment.advice.report:0
|
||||
msgid "Extended Filters..."
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: model:ir.actions.act_window,help:l10n_in_hr_payroll.action_payment_advice_report_all
|
||||
msgid "This report performs analysis on Payment Advices"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: selection:payment.advice.report,month:0
|
||||
msgid "October"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:paylip.details.in:0
|
||||
#: report:salary.detail.byyear:0
|
||||
msgid "Designation"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: selection:payment.advice.report,month:0
|
||||
msgid "January"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:yearly.salary.detail:0
|
||||
msgid "Pay Head Employee Breakup"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: model:ir.model,name:l10n_in_hr_payroll.model_res_company
|
||||
msgid "Companies"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:paylip.details.in:0
|
||||
#: report:payroll.advice:0
|
||||
msgid "Authorized Signature"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: model:ir.model,name:l10n_in_hr_payroll.model_hr_contract
|
||||
msgid "Contract"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.payroll.advice.line:0
|
||||
msgid "Advice Lines"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:payroll.advice:0
|
||||
msgid "To,"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: help:hr.contract,driver_salay:0
|
||||
msgid "Check this box if you provide allowance for driver"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.payroll.advice:0
|
||||
#: field:hr.payroll.advice.line,advice_id:0
|
||||
#: field:hr.payslip,advice_id:0
|
||||
#: model:ir.model,name:l10n_in_hr_payroll.model_hr_payroll_advice
|
||||
msgid "Bank Advice"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:salary.detail.byyear:0
|
||||
msgid "Other No."
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.payroll.advice:0
|
||||
msgid "Draft Advices"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: help:hr.payroll.advice,neft:0
|
||||
msgid "Check this box if your company use online transfer for salary"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:salary.detail.byyear:0
|
||||
msgid "To"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:payment.advice.report,number:0
|
||||
msgid "Number"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: selection:payment.advice.report,month:0
|
||||
msgid "September"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.payroll.advice:0
|
||||
#: view:hr.salary.employee.month:0
|
||||
#: view:yearly.salary.detail:0
|
||||
msgid "Cancel"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:payment.advice.report:0
|
||||
msgid "Day of Payment Advices"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: constraint:hr.employee:0
|
||||
msgid "Error! You cannot create recursive hierarchy of Employee(s)."
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:yearly.salary.detail:0
|
||||
msgid "This wizard will print report which display a pay head employee breakup for a specified dates."
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.payslip.run:0
|
||||
msgid "Payslip Batches ready to be Adviced"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:paylip.details.in:0
|
||||
msgid "Pay Slip Details"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:payment.advice.report:0
|
||||
msgid "Total Salary"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:hr.payroll.advice.line,employee_id:0
|
||||
#: model:ir.model,name:l10n_in_hr_payroll.model_hr_employee
|
||||
#: view:payment.advice.report:0
|
||||
#: field:payment.advice.report,employee_id:0
|
||||
msgid "Employee"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.payroll.advice:0
|
||||
msgid "Compute Advice"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: help:hr.employee,join_date:0
|
||||
msgid "Joining date of employee"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:payroll.advice:0
|
||||
msgid "Dear Sir/Madam,"
|
||||
msgstr "Dear Sir/Madam,"
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:hr.payroll.advice,note:0
|
||||
msgid "Description"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:paylip.details.in:0
|
||||
msgid ")"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:res.company:0
|
||||
msgid "Payroll"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:payment.advice.report:0
|
||||
msgid "NEFT"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:paylip.details.in:0
|
||||
#: report:salary.detail.byyear:0
|
||||
msgid "Address"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.payroll.advice:0
|
||||
#: field:hr.payroll.advice,bank_id:0
|
||||
#: view:payment.advice.report:0
|
||||
#: field:payment.advice.report,bank_id:0
|
||||
#: report:payroll.advice:0
|
||||
#: report:salary.detail.byyear:0
|
||||
msgid "Bank"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:hr.salary.employee.month,end_date:0
|
||||
#: field:yearly.salary.detail,date_to:0
|
||||
msgid "End Date"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: selection:payment.advice.report,month:0
|
||||
msgid "February"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: sql_constraint:res.company:0
|
||||
msgid "The company name must be unique !"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.payroll.advice:0
|
||||
#: field:hr.payroll.advice,name:0
|
||||
#: report:paylip.details.in:0
|
||||
#: field:payment.advice.report,name:0
|
||||
#: report:salary.employee.bymonth:0
|
||||
msgid "Name"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: selection:hr.contract,city_type:0
|
||||
msgid "Metro"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.salary.employee.month:0
|
||||
#: field:hr.salary.employee.month,employee_ids:0
|
||||
#: view:yearly.salary.detail:0
|
||||
#: field:yearly.salary.detail,employee_ids:0
|
||||
msgid "Employees"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:paylip.details.in:0
|
||||
msgid "Bank Account"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: selection:payment.advice.report,month:0
|
||||
msgid "April"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:payroll.advice:0
|
||||
msgid "Name of the Employe"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: code:addons/l10n_in_hr_payroll/l10n_in_hr_payroll.py:158
|
||||
#: code:addons/l10n_in_hr_payroll/l10n_in_hr_payroll.py:257
|
||||
#, python-format
|
||||
msgid "Please define bank account for the %s employee"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:hr.salary.employee.month,start_date:0
|
||||
#: field:yearly.salary.detail,date_from:0
|
||||
msgid "Start Date"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.contract:0
|
||||
msgid "Allowance"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: help:hr.payroll.advice,bank_id:0
|
||||
msgid "Select the Bank from which the salary is going to be paid"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.salary.employee.month:0
|
||||
msgid "Employee Pay Head Breakup"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:salary.detail.byyear:0
|
||||
msgid "Phone No."
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:paylip.details.in:0
|
||||
msgid "Credit"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:hr.payroll.advice.line,name:0
|
||||
#: report:payroll.advice:0
|
||||
msgid "Bank Account No."
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: help:hr.payroll.advice,date:0
|
||||
msgid "Advice Date is used to search Payslips"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: selection:payment.advice.report,month:0
|
||||
msgid "May"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.payslip.run:0
|
||||
msgid "Create Advice"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:payment.advice.report:0
|
||||
#: field:payment.advice.report,year:0
|
||||
msgid "Year"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:hr.payroll.advice,neft:0
|
||||
#: field:payment.advice.report,neft:0
|
||||
msgid "NEFT Transaction"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:paylip.details.in:0
|
||||
#: report:salary.detail.byyear:0
|
||||
#: report:salary.employee.bymonth:0
|
||||
msgid "Total"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:payroll.advice:0
|
||||
msgid "form period"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:payment.advice.report:0
|
||||
msgid "Year of Payment Advices"
|
||||
msgstr ""
|
|
@ -0,0 +1,933 @@
|
|||
# Telugu Translation of OpenERP Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * l10n_in_hr_payroll
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 7.0alpha\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2012-08-17 06:46+0000\n"
|
||||
"PO-Revision-Date: 2012-08-17 06:46+0000\n"
|
||||
"Last-Translator: <>\n"
|
||||
"Language-Team: Telugu <te@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: \n"
|
||||
"Plural-Forms: \n"
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:salary.detail.byyear:0
|
||||
msgid "E-mail Address"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:payment.advice.report,employee_bank_no:0
|
||||
msgid "Employee Bank Account"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:payment.advice.report:0
|
||||
msgid "Payment Advices which are in draft state"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:salary.detail.byyear:0
|
||||
msgid "Title"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:payroll.advice:0
|
||||
msgid "Payment Advice from"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: model:ir.model,name:l10n_in_hr_payroll.model_yearly_salary_detail
|
||||
msgid "Hr Salary Employee By Category Report"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:salary.detail.byyear:0
|
||||
msgid "Employees Salary Details"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:salary.detail.byyear:0
|
||||
msgid "Allowances with Basic:"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:salary.detail.byyear:0
|
||||
msgid "Department"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:salary.detail.byyear:0
|
||||
msgid "Deductions:"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:payroll.advice:0
|
||||
msgid "A/C no."
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:hr.contract,driver_salay:0
|
||||
msgid "Driver Salary"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: model:ir.actions.act_window,name:l10n_in_hr_payroll.action_yearly_salary_detail
|
||||
#: model:ir.actions.report.xml,name:l10n_in_hr_payroll.yearly_salary
|
||||
#: model:ir.ui.menu,name:l10n_in_hr_payroll.menu_yearly_salary_detail
|
||||
msgid "Yearly Salary by Employee"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: model:ir.actions.act_window,name:l10n_in_hr_payroll.act_hr_emp_payslip_list
|
||||
msgid "Payslips"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: selection:payment.advice.report,month:0
|
||||
msgid "March"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:paylip.details.in:0
|
||||
msgid "("
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.payroll.advice:0
|
||||
#: field:hr.payroll.advice,company_id:0
|
||||
#: field:hr.payroll.advice.line,company_id:0
|
||||
#: view:payment.advice.report:0
|
||||
#: field:payment.advice.report,company_id:0
|
||||
msgid "Company"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:payroll.advice:0
|
||||
msgid "The Manager"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.payroll.advice:0
|
||||
msgid "Letter Details"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:paylip.details.in:0
|
||||
msgid ","
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.payroll.advice:0
|
||||
msgid "Set to Draft"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: help:hr.employee,number_of_year:0
|
||||
msgid "Total years of work experience"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:payroll.advice:0
|
||||
msgid "to"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:payroll.advice:0
|
||||
msgid "Total :"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:hr.payslip.run,available_advice:0
|
||||
msgid "Made Payment Advice?"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:payment.advice.report:0
|
||||
msgid "Advices which are paid using NEFT transfer"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: help:hr.contract,tds:0
|
||||
msgid "Amount for Tax Deduction at Source"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: model:ir.model,name:l10n_in_hr_payroll.model_hr_payslip
|
||||
msgid "Pay Slip"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:payment.advice.report:0
|
||||
#: field:payment.advice.report,day:0
|
||||
msgid "Day"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:payment.advice.report:0
|
||||
msgid "Month of Payment Advices"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: constraint:hr.payslip:0
|
||||
msgid "Payslip 'Date From' must be before 'Date To'."
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:hr.payroll.advice,batch_id:0
|
||||
msgid "Batch"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:paylip.details.in:0
|
||||
msgid "Code"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.payroll.advice:0
|
||||
msgid "Other Information"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: selection:hr.payroll.advice,state:0
|
||||
#: selection:payment.advice.report,state:0
|
||||
msgid "Cancelled"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:payroll.advice:0
|
||||
msgid "For"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:paylip.details.in:0
|
||||
msgid "Details by Salary Rule Category:"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: help:hr.contract,voluntary_provident_fund:0
|
||||
msgid "VPF computed as percentage(%)"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:hr.payroll.advice,number:0
|
||||
#: report:paylip.details.in:0
|
||||
msgid "Reference"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.payroll.advice:0
|
||||
#: view:payment.advice.report:0
|
||||
msgid "Group By..."
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:hr.contract,medical_insurance:0
|
||||
msgid "Medical Insurance"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:paylip.details.in:0
|
||||
msgid "Identification No"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: selection:hr.payroll.advice,state:0
|
||||
#: selection:payment.advice.report,state:0
|
||||
msgid "Confirmed"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:salary.detail.byyear:0
|
||||
#: report:salary.employee.bymonth:0
|
||||
msgid "From"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:hr.payroll.advice.line,bysal:0
|
||||
#: field:payment.advice.report,bysal:0
|
||||
#: report:payroll.advice:0
|
||||
msgid "By Salary"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.payroll.advice:0
|
||||
#: view:payment.advice.report:0
|
||||
msgid "Confirm"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:hr.payroll.advice,chaque_nos:0
|
||||
#: field:payment.advice.report,cheque_nos:0
|
||||
msgid "Cheque Numbers"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: constraint:res.company:0
|
||||
msgid "Error! You can not create recursive companies."
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: model:ir.actions.act_window,name:l10n_in_hr_payroll.action_salary_employee_month
|
||||
#: model:ir.actions.report.xml,name:l10n_in_hr_payroll.hr_salary_employee_bymonth
|
||||
#: model:ir.ui.menu,name:l10n_in_hr_payroll.menu_salary_employee_month
|
||||
msgid "Yearly Salary by Head"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: code:addons/l10n_in_hr_payroll/l10n_in_hr_payroll.py:184
|
||||
#, python-format
|
||||
msgid "You can not confirm Payment advice without advice lines."
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:hr.payroll.advice,state:0
|
||||
#: field:payment.advice.report,state:0
|
||||
msgid "State"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:payroll.advice:0
|
||||
msgid "Yours Sincerely"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: help:hr.contract,medical_insurance:0
|
||||
msgid "Deduction towards company provided medical insurance"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: model:ir.model,name:l10n_in_hr_payroll.model_hr_payroll_advice_line
|
||||
msgid "Bank Advice Lines"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:paylip.details.in:0
|
||||
msgid "Email"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: help:hr.payslip.run,available_advice:0
|
||||
msgid "If this box is checked which means that Payment Advice exists for current batch"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: code:addons/l10n_in_hr_payroll/l10n_in_hr_payroll.py:158
|
||||
#: code:addons/l10n_in_hr_payroll/l10n_in_hr_payroll.py:184
|
||||
#: code:addons/l10n_in_hr_payroll/l10n_in_hr_payroll.py:240
|
||||
#: code:addons/l10n_in_hr_payroll/l10n_in_hr_payroll.py:257
|
||||
#, python-format
|
||||
msgid "Error !"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.salary.employee.month:0
|
||||
#: view:yearly.salary.detail:0
|
||||
msgid "Print"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: model:ir.model,name:l10n_in_hr_payroll.model_hr_payslip_run
|
||||
msgid "Payslip Batches"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:hr.payroll.advice.line,debit_credit:0
|
||||
#: report:payroll.advice:0
|
||||
msgid "C/D"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:salary.employee.bymonth:0
|
||||
msgid "Yearly Salary Details"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: model:ir.actions.report.xml,name:l10n_in_hr_payroll.payroll_advice
|
||||
msgid "Print Advice"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:hr.payroll.advice,line_ids:0
|
||||
msgid "Employee Salary"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: selection:payment.advice.report,month:0
|
||||
msgid "July"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:res.company:0
|
||||
msgid "Configuration"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: model:ir.actions.act_window,name:l10n_in_hr_payroll.action_view_hr_bank_advice_tree
|
||||
#: model:ir.ui.menu,name:l10n_in_hr_payroll.hr_menu_payment_advice
|
||||
msgid "Payment Advices"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: model:ir.actions.act_window,name:l10n_in_hr_payroll.action_payment_advice_report_all
|
||||
#: model:ir.ui.menu,name:l10n_in_hr_payroll.menu_reporting_payment_advice
|
||||
#: view:payment.advice.report:0
|
||||
msgid "Advices Analysis"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.salary.employee.month:0
|
||||
msgid "This wizard will print report which displays employees break-up of Net Head for a specified dates."
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:hr.payroll.advice.line,ifsc:0
|
||||
msgid "IFSC"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:paylip.details.in:0
|
||||
msgid "Date To"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:hr.contract,tds:0
|
||||
msgid "TDS"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:hr.employee,join_date:0
|
||||
msgid "Join Date"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.payroll.advice:0
|
||||
msgid "Confirm Advices"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: constraint:hr.contract:0
|
||||
msgid "Error! Contract start-date must be less than contract end-date."
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:res.company,dearness_allowance:0
|
||||
msgid "Dearness Allowance"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: selection:payment.advice.report,month:0
|
||||
msgid "August"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.contract:0
|
||||
msgid "Deduction"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.payroll.advice:0
|
||||
msgid "Search Payment advice"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:payroll.advice:0
|
||||
msgid "SI. No."
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:payment.advice.report:0
|
||||
msgid "Payment Advices which are in confirm state"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: selection:payment.advice.report,month:0
|
||||
msgid "December"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.payroll.advice:0
|
||||
msgid "Confirm Sheet"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:payment.advice.report:0
|
||||
#: field:payment.advice.report,month:0
|
||||
msgid "Month"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:salary.detail.byyear:0
|
||||
msgid "Employee Code"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: selection:hr.contract,city_type:0
|
||||
msgid "Non Metro"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.salary.employee.month:0
|
||||
#: view:yearly.salary.detail:0
|
||||
msgid "or"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: model:ir.model,name:l10n_in_hr_payroll.model_hr_salary_employee_month
|
||||
msgid "Hr Salary Employee By Month Report"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:hr.salary.employee.month,category_id:0
|
||||
msgid "Category"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: code:addons/l10n_in_hr_payroll/l10n_in_hr_payroll.py:240
|
||||
#, python-format
|
||||
msgid "Payment advice already exists for %s, 'Set to Draft' to create a new advice."
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.payslip.run:0
|
||||
msgid "To Advice"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:hr.employee,number_of_year:0
|
||||
msgid "No. of Years of Service"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:paylip.details.in:0
|
||||
msgid "Note"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:paylip.details.in:0
|
||||
msgid "Salary Rule Category"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.payroll.advice:0
|
||||
#: selection:hr.payroll.advice,state:0
|
||||
#: view:payment.advice.report:0
|
||||
#: selection:payment.advice.report,state:0
|
||||
msgid "Draft"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:paylip.details.in:0
|
||||
msgid "Date From"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:hr.contract,voluntary_provident_fund:0
|
||||
msgid "Voluntary Provident Fund"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:salary.detail.byyear:0
|
||||
msgid "Employee Name"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: model:ir.model,name:l10n_in_hr_payroll.model_payment_advice_report
|
||||
msgid "Payment Advice Analysis"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.payroll.advice:0
|
||||
#: view:payment.advice.report:0
|
||||
msgid "Status"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:hr.contract,city_type:0
|
||||
msgid "Type of City"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: help:res.company,dearness_allowance:0
|
||||
msgid "Check this box if your company provide Dearness Allowance to employee"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:hr.payroll.advice.line,ifsc_code:0
|
||||
#: field:payment.advice.report,ifsc_code:0
|
||||
#: report:payroll.advice:0
|
||||
msgid "IFSC Code"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: selection:payment.advice.report,month:0
|
||||
msgid "June"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:payment.advice.report:0
|
||||
#: field:payment.advice.report,nbr:0
|
||||
msgid "# Payment Lines"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: model:ir.actions.report.xml,name:l10n_in_hr_payroll.payslip_details_report
|
||||
msgid "PaySlip Details"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.payroll.advice:0
|
||||
msgid "Payment Lines"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:hr.payroll.advice,date:0
|
||||
#: field:payment.advice.report,date:0
|
||||
msgid "Date"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: selection:payment.advice.report,month:0
|
||||
msgid "November"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:payment.advice.report:0
|
||||
msgid "Extended Filters..."
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: model:ir.actions.act_window,help:l10n_in_hr_payroll.action_payment_advice_report_all
|
||||
msgid "This report performs analysis on Payment Advices"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: selection:payment.advice.report,month:0
|
||||
msgid "October"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:paylip.details.in:0
|
||||
#: report:salary.detail.byyear:0
|
||||
msgid "Designation"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: selection:payment.advice.report,month:0
|
||||
msgid "January"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:yearly.salary.detail:0
|
||||
msgid "Pay Head Employee Breakup"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: model:ir.model,name:l10n_in_hr_payroll.model_res_company
|
||||
msgid "Companies"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:paylip.details.in:0
|
||||
#: report:payroll.advice:0
|
||||
msgid "Authorized Signature"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: model:ir.model,name:l10n_in_hr_payroll.model_hr_contract
|
||||
msgid "Contract"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.payroll.advice.line:0
|
||||
msgid "Advice Lines"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:payroll.advice:0
|
||||
msgid "To,"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: help:hr.contract,driver_salay:0
|
||||
msgid "Check this box if you provide allowance for driver"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.payroll.advice:0
|
||||
#: field:hr.payroll.advice.line,advice_id:0
|
||||
#: field:hr.payslip,advice_id:0
|
||||
#: model:ir.model,name:l10n_in_hr_payroll.model_hr_payroll_advice
|
||||
msgid "Bank Advice"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:salary.detail.byyear:0
|
||||
msgid "Other No."
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.payroll.advice:0
|
||||
msgid "Draft Advices"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: help:hr.payroll.advice,neft:0
|
||||
msgid "Check this box if your company use online transfer for salary"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:salary.detail.byyear:0
|
||||
msgid "To"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:payment.advice.report,number:0
|
||||
msgid "Number"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: selection:payment.advice.report,month:0
|
||||
msgid "September"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.payroll.advice:0
|
||||
#: view:hr.salary.employee.month:0
|
||||
#: view:yearly.salary.detail:0
|
||||
msgid "Cancel"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:payment.advice.report:0
|
||||
msgid "Day of Payment Advices"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: constraint:hr.employee:0
|
||||
msgid "Error! You cannot create recursive hierarchy of Employee(s)."
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:yearly.salary.detail:0
|
||||
msgid "This wizard will print report which display a pay head employee breakup for a specified dates."
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.payslip.run:0
|
||||
msgid "Payslip Batches ready to be Adviced"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:paylip.details.in:0
|
||||
msgid "Pay Slip Details"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:payment.advice.report:0
|
||||
msgid "Total Salary"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:hr.payroll.advice.line,employee_id:0
|
||||
#: model:ir.model,name:l10n_in_hr_payroll.model_hr_employee
|
||||
#: view:payment.advice.report:0
|
||||
#: field:payment.advice.report,employee_id:0
|
||||
msgid "Employee"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.payroll.advice:0
|
||||
msgid "Compute Advice"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: help:hr.employee,join_date:0
|
||||
msgid "Joining date of employee"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:payroll.advice:0
|
||||
msgid "Dear Sir/Madam,"
|
||||
msgstr "Dear Sir/Madam,"
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:hr.payroll.advice,note:0
|
||||
msgid "Description"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:paylip.details.in:0
|
||||
msgid ")"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:res.company:0
|
||||
msgid "Payroll"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:payment.advice.report:0
|
||||
msgid "NEFT"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:paylip.details.in:0
|
||||
#: report:salary.detail.byyear:0
|
||||
msgid "Address"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.payroll.advice:0
|
||||
#: field:hr.payroll.advice,bank_id:0
|
||||
#: view:payment.advice.report:0
|
||||
#: field:payment.advice.report,bank_id:0
|
||||
#: report:payroll.advice:0
|
||||
#: report:salary.detail.byyear:0
|
||||
msgid "Bank"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:hr.salary.employee.month,end_date:0
|
||||
#: field:yearly.salary.detail,date_to:0
|
||||
msgid "End Date"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: selection:payment.advice.report,month:0
|
||||
msgid "February"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: sql_constraint:res.company:0
|
||||
msgid "The company name must be unique !"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.payroll.advice:0
|
||||
#: field:hr.payroll.advice,name:0
|
||||
#: report:paylip.details.in:0
|
||||
#: field:payment.advice.report,name:0
|
||||
#: report:salary.employee.bymonth:0
|
||||
msgid "Name"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: selection:hr.contract,city_type:0
|
||||
msgid "Metro"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.salary.employee.month:0
|
||||
#: field:hr.salary.employee.month,employee_ids:0
|
||||
#: view:yearly.salary.detail:0
|
||||
#: field:yearly.salary.detail,employee_ids:0
|
||||
msgid "Employees"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:paylip.details.in:0
|
||||
msgid "Bank Account"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: selection:payment.advice.report,month:0
|
||||
msgid "April"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:payroll.advice:0
|
||||
msgid "Name of the Employe"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: code:addons/l10n_in_hr_payroll/l10n_in_hr_payroll.py:158
|
||||
#: code:addons/l10n_in_hr_payroll/l10n_in_hr_payroll.py:257
|
||||
#, python-format
|
||||
msgid "Please define bank account for the %s employee"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:hr.salary.employee.month,start_date:0
|
||||
#: field:yearly.salary.detail,date_from:0
|
||||
msgid "Start Date"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.contract:0
|
||||
msgid "Allowance"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: help:hr.payroll.advice,bank_id:0
|
||||
msgid "Select the Bank from which the salary is going to be paid"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.salary.employee.month:0
|
||||
msgid "Employee Pay Head Breakup"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:salary.detail.byyear:0
|
||||
msgid "Phone No."
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:paylip.details.in:0
|
||||
msgid "Credit"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:hr.payroll.advice.line,name:0
|
||||
#: report:payroll.advice:0
|
||||
msgid "Bank Account No."
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: help:hr.payroll.advice,date:0
|
||||
msgid "Advice Date is used to search Payslips"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: selection:payment.advice.report,month:0
|
||||
msgid "May"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:hr.payslip.run:0
|
||||
msgid "Create Advice"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:payment.advice.report:0
|
||||
#: field:payment.advice.report,year:0
|
||||
msgid "Year"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: field:hr.payroll.advice,neft:0
|
||||
#: field:payment.advice.report,neft:0
|
||||
msgid "NEFT Transaction"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:paylip.details.in:0
|
||||
#: report:salary.detail.byyear:0
|
||||
#: report:salary.employee.bymonth:0
|
||||
msgid "Total"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: report:payroll.advice:0
|
||||
msgid "form period"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_in_hr_payroll
|
||||
#: view:payment.advice.report:0
|
||||
msgid "Year of Payment Advices"
|
||||
msgstr ""
|
|
@ -0,0 +1,283 @@
|
|||
#-*- coding:utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2011 OpenERP SA (<http://openerp.com>). All Rights Reserved
|
||||
#
|
||||
# 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 time
|
||||
from datetime import datetime
|
||||
from dateutil.relativedelta import relativedelta
|
||||
from calendar import isleap
|
||||
|
||||
from tools.translate import _
|
||||
from osv import fields, osv
|
||||
import netsvc
|
||||
import decimal_precision as dp
|
||||
|
||||
DATETIME_FORMAT = "%Y-%m-%d"
|
||||
|
||||
class hr_contract(osv.osv):
|
||||
"""
|
||||
Employee contract allows to add different values in fields.
|
||||
Fields are used in salary rule computation.
|
||||
"""
|
||||
|
||||
_inherit = 'hr.contract'
|
||||
_description = 'HR Contract'
|
||||
|
||||
_columns = {
|
||||
'tds': fields.float('TDS', digits_compute=dp.get_precision('Payroll'), help="Amount for Tax Deduction at Source"),
|
||||
'driver_salay': fields.boolean('Driver Salary', help="Check this box if you provide allowance for driver"),
|
||||
'medical_insurance': fields.float('Medical Insurance', digits_compute=dp.get_precision('Payroll'), help="Deduction towards company provided medical insurance"),
|
||||
'voluntary_provident_fund': fields.float('Voluntary Provident Fund (%)', digits_compute=dp.get_precision('Payroll'), help="VPF is a safe option wherein you can contribute more than the PF ceiling of 12% that has been mandated by the government and VPF computed as percentage(%)"),
|
||||
'house_rent_allowance_metro_nonmetro': fields.float('House Rent Allowance (%)', digits_compute=dp.get_precision('Payroll'), help="HRA is an allowance given by the employer to the employee for taking care of his rental or accommodation expenses for metro city it is 50 % and for non metro 40%.HRA computed as percentage(%)"),
|
||||
'supplementary_allowance': fields.float('Supplementary Allowance', digits_compute=dp.get_precision('Payroll')),
|
||||
}
|
||||
|
||||
hr_contract()
|
||||
|
||||
class payroll_advice(osv.osv):
|
||||
'''
|
||||
Bank Advice
|
||||
'''
|
||||
_name = 'hr.payroll.advice'
|
||||
_description = 'Bank Advice'
|
||||
_columns = {
|
||||
'name':fields.char('Name', size=32, readonly=True, required=True, states={'draft': [('readonly', False)]},),
|
||||
'note': fields.text('Description'),
|
||||
'date': fields.date('Date', readonly=True, required=True, states={'draft': [('readonly', False)]}, help="Advice Date is used to search Payslips"),
|
||||
'state':fields.selection([
|
||||
('draft', 'Draft'),
|
||||
('confirm', 'Confirmed'),
|
||||
('cancel', 'Cancelled'),
|
||||
], 'State', select=True, readonly=True),
|
||||
'number':fields.char('Reference', size=16, readonly=True),
|
||||
'line_ids':fields.one2many('hr.payroll.advice.line', 'advice_id', 'Employee Salary', states={'draft': [('readonly', False)]}, readonly=True),
|
||||
'chaque_nos':fields.char('Cheque Numbers', size=256),
|
||||
'neft': fields.boolean('NEFT Transaction', help="Check this box if your company use online transfer for salary"),
|
||||
'company_id':fields.many2one('res.company', 'Company', required=True, readonly=True, states={'draft': [('readonly', False)]}),
|
||||
'bank_id':fields.many2one('res.bank', 'Bank', readonly=True, states={'draft': [('readonly', False)]}, help="Select the Bank from which the salary is going to be paid"),
|
||||
'batch_id': fields.many2one('hr.payslip.run', 'Batch', readonly=True)
|
||||
}
|
||||
|
||||
_defaults = {
|
||||
'date': lambda * a: time.strftime('%Y-%m-%d'),
|
||||
'state': lambda * a: 'draft',
|
||||
'company_id': lambda self, cr, uid, context: \
|
||||
self.pool.get('res.users').browse(cr, uid, uid,
|
||||
context=context).company_id.id,
|
||||
'note': "Please make the payroll transfer from above account number to the below mentioned account numbers towards employee salaries:"
|
||||
}
|
||||
|
||||
def compute_advice(self, cr, uid, ids, context=None):
|
||||
"""
|
||||
Advice - Create Advice lines in Payment Advice and
|
||||
compute Advice lines.
|
||||
@param cr: the current row, from the database cursor,
|
||||
@param uid: the current user’s ID for security checks,
|
||||
@param ids: List of Advice’s IDs
|
||||
@return: Advice lines
|
||||
@param context: A standard dictionary for contextual values
|
||||
"""
|
||||
payslip_pool = self.pool.get('hr.payslip')
|
||||
advice_line_pool = self.pool.get('hr.payroll.advice.line')
|
||||
payslip_line_pool = self.pool.get('hr.payslip.line')
|
||||
|
||||
for advice in self.browse(cr, uid, ids, context=context):
|
||||
old_line_ids = advice_line_pool.search(cr, uid, [('advice_id', '=', advice.id)], context=context)
|
||||
if old_line_ids:
|
||||
advice_line_pool.unlink(cr, uid, old_line_ids, context=context)
|
||||
slip_ids = payslip_pool.search(cr, uid, [('date_from', '<=', advice.date), ('date_to', '>=', advice.date), ('state', '=', 'done')], context=context)
|
||||
for slip in payslip_pool.browse(cr, uid, slip_ids, context=context):
|
||||
if not slip.employee_id.bank_account_id and not slip.employee_id.bank_account_id.acc_number:
|
||||
raise osv.except_osv(_('Error !'), _('Please define bank account for the %s employee') % (slip.employee_id.name))
|
||||
line_ids = payslip_line_pool.search(cr, uid, [ ('slip_id', '=', slip.id), ('code', '=', 'NET')], context=context)
|
||||
if line_ids:
|
||||
line = payslip_line_pool.browse(cr, uid, line_ids, context=context)[0]
|
||||
advice_line = {
|
||||
'advice_id': advice.id,
|
||||
'name': slip.employee_id.bank_account_id.acc_number,
|
||||
'employee_id': slip.employee_id.id,
|
||||
'bysal': line.total
|
||||
}
|
||||
advice_line_pool.create(cr, uid, advice_line, context=context)
|
||||
payslip_pool.write(cr, uid, slip_ids, {'advice_id': advice.id}, context=context)
|
||||
return True
|
||||
|
||||
def confirm_sheet(self, cr, uid, ids, context=None):
|
||||
"""
|
||||
confirm Advice - confirmed Advice after computing Advice Lines..
|
||||
@param cr: the current row, from the database cursor,
|
||||
@param uid: the current user’s ID for security checks,
|
||||
@param ids: List of confirm Advice’s IDs
|
||||
@return: confirmed Advice lines and set sequence of Advice.
|
||||
@param context: A standard dictionary for contextual values
|
||||
"""
|
||||
seq_obj = self.pool.get('ir.sequence')
|
||||
for advice in self.browse(cr, uid, ids, context=context):
|
||||
if not advice.line_ids:
|
||||
raise osv.except_osv(_('Error !'), _('You can not confirm Payment advice without advice lines.'))
|
||||
advice_date = datetime.strptime(advice.date, DATETIME_FORMAT)
|
||||
advice_year = advice_date.strftime('%m') + '-' + advice_date.strftime('%Y')
|
||||
number = seq_obj.get(cr, uid, 'payment.advice')
|
||||
sequence_num = 'PAY' + '/' + advice_year + '/' + number
|
||||
self.write(cr, uid, [advice.id], {'number': sequence_num, 'state': 'confirm'}, context=context)
|
||||
return True
|
||||
|
||||
def set_to_draft(self, cr, uid, ids, context=None):
|
||||
"""Resets Advice as draft.
|
||||
"""
|
||||
return self.write(cr, uid, ids, {'state':'draft'}, context=context)
|
||||
|
||||
def cancel_sheet(self, cr, uid, ids, context=None):
|
||||
"""Marks Advice as cancelled.
|
||||
"""
|
||||
return self.write(cr, uid, ids, {'state':'cancel'}, context=context)
|
||||
|
||||
def onchange_company_id(self, cr, uid, ids, company_id=False, context=None):
|
||||
res = {}
|
||||
if company_id:
|
||||
company = self.pool.get('res.company').browse(cr, uid, [company_id], context=context)[0]
|
||||
if company.partner_id.bank_ids:
|
||||
res.update({'bank_id': company.partner_id.bank_ids[0].bank.id})
|
||||
return {
|
||||
'value':res
|
||||
}
|
||||
payroll_advice()
|
||||
|
||||
class hr_payslip_run(osv.osv):
|
||||
|
||||
_inherit = 'hr.payslip.run'
|
||||
_description = 'Payslip Batches'
|
||||
_columns = {
|
||||
'available_advice': fields.boolean('Made Payment Advice?', help="If this box is checked which means that Payment Advice exists for current batch", readonly=False),
|
||||
}
|
||||
def copy(self, cr, uid, id, default={}, context=None):
|
||||
if not default:
|
||||
default = {}
|
||||
default.update({'available_advice': False})
|
||||
return super(hr_payslip_run, self).copy(cr, uid, id, default, context=context)
|
||||
|
||||
def draft_payslip_run(self, cr, uid, ids, context=None):
|
||||
res = super(hr_payslip_run, self).draft_payslip_run(cr, uid, ids, context=context)
|
||||
self.write(cr, uid, ids, {'available_advice': False}, context=context)
|
||||
return res
|
||||
|
||||
def create_advice(self, cr, uid, ids, context=None):
|
||||
wf_service = netsvc.LocalService("workflow")
|
||||
payslip_pool = self.pool.get('hr.payslip')
|
||||
payslip_line_pool = self.pool.get('hr.payslip.line')
|
||||
advice_pool = self.pool.get('hr.payroll.advice')
|
||||
advice_line_pool = self.pool.get('hr.payroll.advice.line')
|
||||
users = self.pool.get('res.users').browse(cr, uid, [uid], context=context)
|
||||
for run in self.browse(cr, uid, ids, context=context):
|
||||
if run.available_advice:
|
||||
raise osv.except_osv(_('Error !'), _("Payment advice already exists for %s, 'Set to Draft' to create a new advice.") %(run.name))
|
||||
advice_data = {
|
||||
'batch_id': run.id,
|
||||
'company_id': users[0].company_id.id,
|
||||
'name': run.name,
|
||||
'date': run.date_end,
|
||||
'bank_id': users[0].company_id.bank_ids and users[0].company_id.bank_ids[0].id or False
|
||||
}
|
||||
advice_id = advice_pool.create(cr, uid, advice_data, context=context)
|
||||
slip_ids = []
|
||||
for slip_id in run.slip_ids:
|
||||
wf_service.trg_validate(uid, 'hr.payslip', slip_id.id, 'hr_verify_sheet', cr)
|
||||
wf_service.trg_validate(uid, 'hr.payslip', slip_id.id, 'process_sheet', cr)
|
||||
slip_ids.append(slip_id.id)
|
||||
|
||||
for slip in payslip_pool.browse(cr, uid, slip_ids, context=context):
|
||||
if not slip.employee_id.bank_account_id or not slip.employee_id.bank_account_id.acc_number:
|
||||
raise osv.except_osv(_('Error !'), _('Please define bank account for the %s employee') % (slip.employee_id.name))
|
||||
line_ids = payslip_line_pool.search(cr, uid, [('slip_id', '=', slip.id), ('code', '=', 'NET')], context=context)
|
||||
if line_ids:
|
||||
line = payslip_line_pool.browse(cr, uid, line_ids, context=context)[0]
|
||||
advice_line = {
|
||||
'advice_id': advice_id,
|
||||
'name': slip.employee_id.bank_account_id.acc_number,
|
||||
'employee_id': slip.employee_id.id,
|
||||
'bysal': line.total
|
||||
}
|
||||
advice_line_pool.create(cr, uid, advice_line, context=context)
|
||||
return self.write(cr, uid, ids, {'available_advice' : True})
|
||||
|
||||
hr_payslip_run()
|
||||
|
||||
class payroll_advice_line(osv.osv):
|
||||
'''
|
||||
Bank Advice Lines
|
||||
'''
|
||||
def onchange_employee_id(self, cr, uid, ids, employee_id=False, context=None):
|
||||
res = {}
|
||||
hr_obj = self.pool.get('hr.employee')
|
||||
if not employee_id:
|
||||
return {'value': res}
|
||||
employee = hr_obj.browse(cr, uid, [employee_id], context=context)[0]
|
||||
res.update({'name': employee.bank_account_id.acc_number , 'ifsc_code': employee.bank_account_id.bank_bic or ''})
|
||||
return {'value': res}
|
||||
|
||||
_name = 'hr.payroll.advice.line'
|
||||
_description = 'Bank Advice Lines'
|
||||
_columns = {
|
||||
'advice_id': fields.many2one('hr.payroll.advice', 'Bank Advice'),
|
||||
'name': fields.char('Bank Account No.', size=25, required=True),
|
||||
'ifsc_code': fields.char('IFSC Code', size=16),
|
||||
'employee_id': fields.many2one('hr.employee', 'Employee', required=True),
|
||||
'bysal': fields.float('By Salary', digits_compute=dp.get_precision('Payroll')),
|
||||
'debit_credit': fields.char('C/D', size=3, required=False),
|
||||
'company_id': fields.related('advice_id', 'company_id', type='many2one', required=False, relation='res.company', string='Company', store=True),
|
||||
'ifsc': fields.related('advice_id', 'neft', type='boolean', string='IFSC'),
|
||||
}
|
||||
_defaults = {
|
||||
'debit_credit': 'C',
|
||||
}
|
||||
|
||||
payroll_advice_line()
|
||||
|
||||
class hr_payslip(osv.osv):
|
||||
'''
|
||||
Employee Pay Slip
|
||||
'''
|
||||
_inherit = 'hr.payslip'
|
||||
_description = 'Pay Slips'
|
||||
_columns = {
|
||||
'advice_id': fields.many2one('hr.payroll.advice', 'Bank Advice')
|
||||
}
|
||||
|
||||
def copy(self, cr, uid, id, default={}, context=None):
|
||||
if not default:
|
||||
default = {}
|
||||
default.update({'advice_id' : False})
|
||||
return super(hr_payslip, self).copy(cr, uid, id, default, context=context)
|
||||
|
||||
hr_payslip()
|
||||
|
||||
class res_company(osv.osv):
|
||||
|
||||
_inherit = 'res.company'
|
||||
_columns = {
|
||||
'dearness_allowance': fields.boolean('Dearness Allowance', help="Check this box if your company provide Dearness Allowance to employee")
|
||||
}
|
||||
_defaults = {
|
||||
'dearness_allowance': True,
|
||||
}
|
||||
|
||||
res_company()
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
|
@ -0,0 +1,16 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<openerp>
|
||||
<data>
|
||||
|
||||
<!-- Salary Structure -->
|
||||
|
||||
<record id="hr_payroll_salary_structure_ind_emp" model="hr.payroll.structure">
|
||||
<field name="code">NE</field>
|
||||
<field name="name">Non-Executive Employee</field>
|
||||
<field eval="[(6, 0, [ref('hr_salary_rule_medical'), ref('hr_salary_rule_da'), ref('hr_salary_rule_lta'), ref('hr_salary_rule_telephone'), ref('hr_salary_rule_internet'), ref('hr_payroll_rule_child1')])]" name="rule_ids"/>
|
||||
<field name="company_id" ref="base.main_company"/>
|
||||
<field name="parent_id" ref="hr_payroll.structure_base"/>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</openerp>
|
|
@ -0,0 +1,38 @@
|
|||
<?xml version="1.0"?>
|
||||
<openerp>
|
||||
<data>
|
||||
|
||||
<report
|
||||
auto="False"
|
||||
id="payslip_details_report"
|
||||
model="hr.payslip"
|
||||
name="paylip.details.in"
|
||||
rml="l10n_in_hr_payroll/report/report_payslip_details.rml"
|
||||
string="PaySlip Details" />
|
||||
|
||||
<report
|
||||
auto="False"
|
||||
id="payroll_advice"
|
||||
model="hr.payroll.advice"
|
||||
name="payroll.advice"
|
||||
rml="l10n_in_hr_payroll/report/report_payroll_advice.rml"
|
||||
string="Print Advice" />
|
||||
|
||||
<report
|
||||
auto="False"
|
||||
id="hr_salary_employee_bymonth"
|
||||
model="hr.salary.employee.month"
|
||||
name="salary.employee.bymonth"
|
||||
rml="l10n_in_hr_payroll/report/report_hr_salary_employee_bymonth.rml"
|
||||
string="Yearly Salary by Head" />
|
||||
|
||||
<report
|
||||
auto="False"
|
||||
id="yearly_salary"
|
||||
model="yearly.salary.detail"
|
||||
name="salary.detail.byyear"
|
||||
rml="l10n_in_hr_payroll/report/report_hr_yearly_salary_detail.rml"
|
||||
string="Yearly Salary by Employee" />
|
||||
|
||||
</data>
|
||||
</openerp>
|
|
@ -0,0 +1,17 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<openerp>
|
||||
<data noupdate="1">
|
||||
|
||||
<record id="seq_type_payment_advice" model="ir.sequence.type">
|
||||
<field name="name">Payment Advice</field>
|
||||
<field name="code">payment.advice</field>
|
||||
</record>
|
||||
|
||||
<record id="seq_payment_advice" model="ir.sequence">
|
||||
<field name="name">Payment Advice</field>
|
||||
<field name="code">payment.advice</field>
|
||||
<field name="padding">3</field>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</openerp>
|
|
@ -0,0 +1,220 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<openerp>
|
||||
<data>
|
||||
|
||||
<record id="hr_contract_form_in_inherit" model="ir.ui.view">
|
||||
<field name="name">hr.contract.form.in.inherit</field>
|
||||
<field name="model">hr.contract</field>
|
||||
<field name="inherit_id" ref="hr_payroll.hr_contract_form_inherit"/>
|
||||
<field name="arch" type="xml">
|
||||
<data>
|
||||
<xpath expr="//field[@name='struct_id']" position="after">
|
||||
<group col="2" colspan="2" name="right_column">
|
||||
<separator colspan="2" string="Allowance"/>
|
||||
<field name="driver_salay"/>
|
||||
<field name="house_rent_allowance_metro_nonmetro"/>
|
||||
<field name="supplementary_allowance"/>
|
||||
</group>
|
||||
<group col="2" colspan="2" name="left_column">
|
||||
<separator colspan="2" string="Deduction"/>
|
||||
<field name="tds"/>
|
||||
<field name="voluntary_provident_fund"/>
|
||||
<field name="medical_insurance"/>
|
||||
</group>
|
||||
</xpath>
|
||||
</data>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="hr_payslip_run_form_inherit" model="ir.ui.view">
|
||||
<field name="name">hr.payslip.run.form.inherit</field>
|
||||
<field name="model">hr.payslip.run</field>
|
||||
<field name="inherit_id" ref="hr_payroll.hr_payslip_run_form"/>
|
||||
<field name="arch" type="xml">
|
||||
<data>
|
||||
<xpath expr="//field[@name='credit_note']" position="after">
|
||||
<newline/>
|
||||
<field name="available_advice"/>
|
||||
</xpath>
|
||||
<xpath expr="//button[@string='Set to Draft']" position="after">
|
||||
<button name="create_advice" string="Create Advice" type="object" states="close" />
|
||||
</xpath>
|
||||
</data>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="hr_payslip_run_search_inherit" model="ir.ui.view">
|
||||
<field name="name">hr.payslip.run.search.inherit</field>
|
||||
<field name="model">hr.payslip.run</field>
|
||||
<field name="inherit_id" ref="hr_payroll.hr_payslip_run_filter"/>
|
||||
<field name="arch" type="xml">
|
||||
<data>
|
||||
<xpath expr="//field[@name='date_end']" position="after">
|
||||
<separator orientation="vertical"/>
|
||||
<filter icon="terp-gtk-go-back-rtl" string="To Advice" domain="[('available_advice','=', False)]" help="Payslip Batches ready to be Adviced"/>
|
||||
</xpath>
|
||||
</data>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="view_hr_bank_advice_tree" model="ir.ui.view">
|
||||
<field name="name">hr.payroll.advice.tree</field>
|
||||
<field name="model">hr.payroll.advice</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Bank Advice">
|
||||
<field name="date"/>
|
||||
<field name="number"/>
|
||||
<field name="name"/>
|
||||
<field name="company_id" groups="base.group_multi_company" widget="selection"/>
|
||||
<field name="bank_id"/>
|
||||
<field name="state"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="view_hr_bank_advice_form" model="ir.ui.view">
|
||||
<field name="name">hr.payroll.advice.form</field>
|
||||
<field name="model">hr.payroll.advice</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Bank Advice" version="7.0">
|
||||
<header>
|
||||
<button name="confirm_sheet" string="Confirm Sheet" states="draft" type="object" class="oe_highlight"/>
|
||||
<button name="compute_advice" string="Compute Advice" states="draft" type="object" class="oe_highlight"/>
|
||||
<button name="cancel_sheet" string="Cancel" states="draft" type="object"/>
|
||||
<button name="set_to_draft" string="Set to Draft" states="cancel,confirm" type="object"/>
|
||||
<div class="oe_right">
|
||||
<field name="state" widget="statusbar" nolabel="1" statusbar_visible="draft"/>
|
||||
</div>
|
||||
<div class="oe_clear"/>
|
||||
</header>
|
||||
<sheet>
|
||||
<group>
|
||||
<label for="Name" class="oe_edit_only" string="Name"/>
|
||||
<h2><field name="name"/></h2>
|
||||
<label for="date" class="oe_edit_only"/>
|
||||
<h2><field name="date"/></h2>
|
||||
<group colspan="3" col="6">
|
||||
<field name="bank_id"/>
|
||||
<field name="number"/>
|
||||
</group>
|
||||
</group>
|
||||
<notebook colspan="4">
|
||||
<page string="Payment Lines">
|
||||
<field name="line_ids" colspan="4" nolabel="1">
|
||||
<tree string="Payment Lines" editable="bottom">
|
||||
<field name="employee_id" on_change="onchange_employee_id(employee_id)"/>
|
||||
<field name="name"/>
|
||||
<field name="ifsc" invisible="1"/>
|
||||
<field name="ifsc_code" attrs="{'invisible':[('ifsc','=', False)]}" />
|
||||
<field name="bysal"/>
|
||||
<field name="debit_credit"/>
|
||||
</tree>
|
||||
</field>
|
||||
</page>
|
||||
<page string="Other Information">
|
||||
<group colspan="4" col="6">
|
||||
<field name="company_id" on_change="onchange_company_id(company_id)" groups="base.group_multi_company" widget="selection"/>
|
||||
<field name="chaque_nos"/>
|
||||
<newline/>
|
||||
<field name="neft"/>
|
||||
<field name="batch_id"/>
|
||||
</group>
|
||||
<separator colspan="4" string="Letter Details"/>
|
||||
<field name="note" colspan="4" nolabel="1"/>
|
||||
</page>
|
||||
</notebook>
|
||||
</sheet>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="view_hr_payroll_advice_filter" model="ir.ui.view">
|
||||
<field name="name">hr.payroll.advice.select</field>
|
||||
<field name="model">hr.payroll.advice</field>
|
||||
<field name="arch" type="xml">
|
||||
<search string="Search Payment advice">
|
||||
<group>
|
||||
<filter icon="terp-document-new" string="Draft" domain="[('state','=','draft')]" help="Draft Advices"/>
|
||||
<filter icon="terp-camera_test" string="Confirm" domain="[('state','=','confirm')]" help="Confirm Advices"/>
|
||||
<separator orientation="vertical"/>
|
||||
<field name="date"/>
|
||||
<field name="number"/>
|
||||
<field name="name"/>
|
||||
<field name="bank_id"/>
|
||||
<field name="batch_id"/>
|
||||
</group>
|
||||
<newline/>
|
||||
<group expand="0" string="Group By...">
|
||||
<filter string="Bank" name="bank_id" icon="terp-go-home" context="{'group_by':'bank_id'}"/>
|
||||
<separator orientation="vertical"/>
|
||||
<filter string="Status" name="state" icon="terp-stock_effects-object-colorize" context="{'group_by':'state'}"/>
|
||||
<separator orientation="vertical" />
|
||||
<filter string="Company" name="company_id" groups="base.group_multi_company" icon="terp-go-home" context="{'group_by':'company_id'}"/>
|
||||
</group>
|
||||
</search>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="action_view_hr_bank_advice_tree" model="ir.actions.act_window">
|
||||
<field name="name">Payment Advices</field>
|
||||
<field name="res_model">hr.payroll.advice</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="view_id" ref="view_hr_bank_advice_tree"/>
|
||||
<field name="search_view_id" ref="view_hr_payroll_advice_filter"/>
|
||||
</record>
|
||||
|
||||
<menuitem
|
||||
action="action_view_hr_bank_advice_tree"
|
||||
id="hr_menu_payment_advice"
|
||||
parent="hr_payroll.menu_hr_root_payroll"
|
||||
/>
|
||||
|
||||
<record id="view_advice_line_form" model="ir.ui.view">
|
||||
<field name="name">advice.line.form</field>
|
||||
<field name="model">hr.payroll.advice.line</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Advice Lines" version="7.0">
|
||||
<sheet>
|
||||
<label for="advice_id" class="oe_edit_only"/>
|
||||
<h1><field name="advice_id"/></h1>
|
||||
<group>
|
||||
<field name="employee_id" on_change="onchange_employee_id(employee_id)" />
|
||||
<field name="name" />
|
||||
<field name="ifsc" invisible="1"/>
|
||||
<field name="ifsc_code" attrs="{'invisible':[('ifsc','=', False)]}" />
|
||||
<field name="bysal" />
|
||||
<field name="debit_credit" />
|
||||
</group>
|
||||
</sheet>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="view_res_company_da" model="ir.ui.view">
|
||||
<field name="name">res.company.inherit</field>
|
||||
<field name="model">res.company</field>
|
||||
<field name="inherit_id" ref="base.view_company_form"/>
|
||||
<field name="arch" type="xml">
|
||||
<data>
|
||||
<page string="Configuration" position="inside">
|
||||
<group name="rule" string="Payroll">
|
||||
<field name="dearness_allowance"/>
|
||||
</group>
|
||||
</page>
|
||||
</data>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- Shortcuts -->
|
||||
|
||||
<act_window name="Payslips"
|
||||
domain="[('advice_id', '=', active_id)]"
|
||||
res_model="hr.payslip"
|
||||
src_model="hr.payroll.advice"
|
||||
view_id ="hr_payroll.view_hr_payslip_tree"
|
||||
id="act_hr_emp_payslip_list"
|
||||
/>
|
||||
|
||||
</data>
|
||||
</openerp>
|
|
@ -0,0 +1,32 @@
|
|||
#!/usr/bin/env python
|
||||
#-*- coding:utf-8 -*-
|
||||
|
||||
##############################################################################
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>). All Rights Reserved
|
||||
# d$
|
||||
#
|
||||
# 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 report_payslip_details
|
||||
import report_payroll_advice
|
||||
import report_hr_salary_employee_bymonth
|
||||
import payment_advice_report
|
||||
import report_hr_yearly_salary_detail
|
||||
import payslip_report
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
|
@ -0,0 +1,87 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2012-Today OpenERP SA (<http://www.openerp.com>).
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
# published by the Free Software Foundation, either version 3 of the
|
||||
# License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
import tools
|
||||
from osv import fields, osv
|
||||
|
||||
class payment_advice_report(osv.osv):
|
||||
_name = "payment.advice.report"
|
||||
_description = "Payment Advice Analysis"
|
||||
_auto = False
|
||||
_columns = {
|
||||
'name':fields.char('Name', size=32, readonly=True),
|
||||
'date': fields.date('Date', readonly=True,),
|
||||
'year': fields.char('Year', size=4, readonly=True),
|
||||
'month': fields.selection([('01', 'January'), ('02', 'February'), ('03', 'March'), ('04', 'April'),
|
||||
('05', 'May'), ('06', 'June'), ('07', 'July'), ('08', 'August'), ('09', 'September'),
|
||||
('10', 'October'), ('11', 'November'), ('12', 'December')], 'Month', readonly=True),
|
||||
'day': fields.char('Day', size=128, readonly=True),
|
||||
'state':fields.selection([
|
||||
('draft', 'Draft'),
|
||||
('confirm', 'Confirmed'),
|
||||
('cancel', 'Cancelled'),
|
||||
], 'State', select=True, readonly=True),
|
||||
'employee_id': fields.many2one('hr.employee', 'Employee', readonly=True),
|
||||
'nbr': fields.integer('# Payment Lines', readonly=True),
|
||||
'number':fields.char('Number', size=16, readonly=True),
|
||||
'bysal': fields.float('By Salary', readonly=True),
|
||||
'bank_id':fields.many2one('res.bank', 'Bank', readonly=True),
|
||||
'company_id':fields.many2one('res.company', 'Company', readonly=True),
|
||||
'cheque_nos':fields.char('Cheque Numbers', size=256, readonly=True),
|
||||
'neft': fields.boolean('NEFT Transaction', readonly=True),
|
||||
'ifsc_code': fields.char('IFSC Code', size=32, readonly=True),
|
||||
'employee_bank_no': fields.char('Employee Bank Account', size=32, required=True),
|
||||
}
|
||||
def init(self, cr):
|
||||
tools.drop_view_if_exists(cr, 'payment_advice_report')
|
||||
cr.execute("""
|
||||
create or replace view payment_advice_report as (
|
||||
select
|
||||
min(l.id) as id,
|
||||
sum(l.bysal) as bysal,
|
||||
p.name,
|
||||
p.state,
|
||||
p.date,
|
||||
p.number,
|
||||
p.company_id,
|
||||
p.bank_id,
|
||||
p.chaque_nos as cheque_nos,
|
||||
p.neft,
|
||||
l.employee_id,
|
||||
l.ifsc_code,
|
||||
l.name as employee_bank_no,
|
||||
to_char(p.date, 'YYYY') as year,
|
||||
to_char(p.date, 'MM') as month,
|
||||
to_char(p.date, 'YYYY-MM-DD') as day,
|
||||
1 as nbr
|
||||
from
|
||||
hr_payroll_advice as p
|
||||
left join hr_payroll_advice_line as l on (p.id=l.advice_id)
|
||||
where
|
||||
l.employee_id IS NOT NULL
|
||||
group by
|
||||
p.number,p.name,p.date,p.state,p.company_id,p.bank_id,p.chaque_nos,p.neft,
|
||||
l.employee_id,l.advice_id,l.bysal,l.ifsc_code, l.name
|
||||
)
|
||||
""")
|
||||
payment_advice_report()
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
|
@ -0,0 +1,88 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<openerp>
|
||||
<data>
|
||||
|
||||
<record id="view_payment_advice_tree" model="ir.ui.view">
|
||||
<field name="name">payment.advice.report.tree</field>
|
||||
<field name="model">payment.advice.report</field>
|
||||
<field name="type">tree</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree colors="blue:state == 'draft';black:state == 'confirm';gray:state == 'cancel' " string="Advices Analysis">
|
||||
<field name="nbr" sum="# Payment Lines"/>
|
||||
<field name="name" invisible="1"/>
|
||||
<field name="employee_id" invisible="1"/>
|
||||
<field name="date" invisible="1"/>
|
||||
<field name="bank_id" invisible="1"/>
|
||||
<field name="state" invisible="1"/>
|
||||
<field name="number" invisible="1"/>
|
||||
<field name="bysal" sum="Total Salary"/>
|
||||
<field name="year" invisible="1"/>
|
||||
<field name="day" invisible="1"/>
|
||||
<field name="month" invisible="1"/>
|
||||
<field name="company_id" invisible="1"/>
|
||||
<field name="cheque_nos" invisible="1"/>
|
||||
<field name="neft" invisible="1"/>
|
||||
<field name="ifsc_code" invisible="1"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
|
||||
<record id="view_payment_advice_search" model="ir.ui.view">
|
||||
<field name="name">payment.advice.report.search</field>
|
||||
<field name="model">payment.advice.report</field>
|
||||
<field name="type">search</field>
|
||||
<field name="arch" type="xml">
|
||||
<search string="Advices Analysis">
|
||||
<group>
|
||||
<filter icon="terp-document-new" string="Draft" domain="[('state','=','draft')]" help="Payment Advices which are in draft state"/>
|
||||
<filter icon="terp-check" string="Confirm" name="confirm" domain="[('state','=','confirm')]" help="Payment Advices which are in confirm state"/>
|
||||
<separator orientation="vertical"/>
|
||||
<filter icon="terp-camera_test" string="NEFT" domain="[('neft','=',True)]" help="Advices which are paid using NEFT transfer"/>
|
||||
<separator orientation="vertical"/>
|
||||
<field name="date"/>
|
||||
<separator orientation="vertical"/>
|
||||
<field name="number"/>
|
||||
<field name="name"/>
|
||||
<field name="employee_id"/>
|
||||
<field name="cheque_nos"/>
|
||||
</group>
|
||||
<newline/>
|
||||
<group expand="0" string="Extended Filters...">
|
||||
<field name="ifsc_code"/>
|
||||
<field name="bank_id" widget="selection"/>
|
||||
<field name="employee_bank_no"/>
|
||||
<separator orientation="vertical"/>
|
||||
<field name="company_id" groups="base.group_multi_company" widget="selection"/>
|
||||
</group>
|
||||
<newline/>
|
||||
<group expand="1" string="Group By...">
|
||||
<filter string="Employee" icon="terp-personal" context="{'group_by':'employee_id'}" />
|
||||
<filter string="Bank" icon="terp-go-home" context="{'group_by':'bank_id'}"/>
|
||||
<separator orientation="vertical"/>
|
||||
<filter string="Status" icon="terp-stock_effects-object-colorize" context="{'group_by':'state'}"/>
|
||||
<separator orientation="vertical"/>
|
||||
<filter string="Company" icon="terp-go-home" groups="base.group_multi_company" context="{'group_by':'company_id'}"/>
|
||||
<separator orientation="vertical"/>
|
||||
<filter string="Day" icon="terp-go-today" context="{'group_by':'day'}" help="Day of Payment Advices"/>
|
||||
<filter string="Month" name="order_month" icon="terp-go-month" context="{'group_by':'month'}" help="Month of Payment Advices"/>
|
||||
<filter string="Year" icon="terp-go-year" context="{'group_by':'year'}" help="Year of Payment Advices"/>
|
||||
</group>
|
||||
</search>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="action_payment_advice_report_all" model="ir.actions.act_window">
|
||||
<field name="name">Advices Analysis</field>
|
||||
<field name="res_model">payment.advice.report</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree</field>
|
||||
<field name="view_id" ref="view_payment_advice_tree"/>
|
||||
<field name="context">{'search_default_confirm':1,'group_by_no_leaf':1,'group_by':[]}</field>
|
||||
<field name="help">This report performs analysis on Payment Advices</field>
|
||||
</record>
|
||||
|
||||
<menuitem action="action_payment_advice_report_all" id="menu_reporting_payment_advice" parent="hr.menu_hr_reporting" sequence="5" groups="base.group_hr_manager"/>
|
||||
|
||||
</data>
|
||||
</openerp>
|
|
@ -0,0 +1,88 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2012-Today OpenERP SA (<http://www.openerp.com>).
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
# published by the Free Software Foundation, either version 3 of the
|
||||
# License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
import tools
|
||||
from osv import fields, osv
|
||||
|
||||
class payslip_report(osv.osv):
|
||||
_name = "payslip.report"
|
||||
_description = "Payslip Analysis"
|
||||
_auto = False
|
||||
_columns = {
|
||||
'name':fields.char('Name', size=32, readonly=True),
|
||||
'date_from': fields.date('Date From', readonly=True,),
|
||||
'date_to': fields.date('Date To', readonly=True,),
|
||||
'year': fields.char('Year', size=4, readonly=True),
|
||||
'month': fields.selection([('01', 'January'), ('02', 'February'), ('03', 'March'), ('04', 'April'),
|
||||
('05', 'May'), ('06', 'June'), ('07', 'July'), ('08', 'August'), ('09', 'September'),
|
||||
('10', 'October'), ('11', 'November'), ('12', 'December')], 'Month', readonly=True),
|
||||
'day': fields.char('Day', size=128, readonly=True),
|
||||
'state': fields.selection([
|
||||
('draft', 'Draft'),
|
||||
('done', 'Done'),
|
||||
('cancel', 'Rejected'),
|
||||
], 'State', readonly=True),
|
||||
'employee_id': fields.many2one('hr.employee', 'Employee', readonly=True),
|
||||
'nbr': fields.integer('# Payslip lines', readonly=True),
|
||||
'number': fields.char('Number', size=16, readonly=True),
|
||||
'struct_id': fields.many2one('hr.payroll.structure', 'Structure', readonly=True),
|
||||
'company_id':fields.many2one('res.company', 'Company', readonly=True),
|
||||
'paid': fields.boolean('Made Payment Order ? ', readonly=True),
|
||||
'total': fields.float('Total', readonly=True),
|
||||
'category_id':fields.many2one('hr.salary.rule.category', 'Category', readonly=True),
|
||||
}
|
||||
def init(self, cr):
|
||||
tools.drop_view_if_exists(cr, 'payslip_report')
|
||||
cr.execute("""
|
||||
create or replace view payslip_report as (
|
||||
select
|
||||
min(l.id) as id,
|
||||
l.name,
|
||||
p.struct_id,
|
||||
p.state,
|
||||
p.date_from,
|
||||
p.date_to,
|
||||
p.number,
|
||||
p.company_id,
|
||||
p.paid,
|
||||
l.category_id,
|
||||
l.employee_id,
|
||||
sum(l.total) as total,
|
||||
to_char(p.date_from, 'YYYY') as year,
|
||||
to_char(p.date_from, 'MM') as month,
|
||||
to_char(p.date_from, 'YYYY-MM-DD') as day,
|
||||
to_char(p.date_to, 'YYYY') as to_year,
|
||||
to_char(p.date_to, 'MM') as to_month,
|
||||
to_char(p.date_to, 'YYYY-MM-DD') as to_day,
|
||||
1 AS nbr
|
||||
from
|
||||
hr_payslip as p
|
||||
left join hr_payslip_line as l on (p.id=l.slip_id)
|
||||
where
|
||||
l.employee_id IS NOT NULL
|
||||
group by
|
||||
p.number,l.name,p.date_from,p.date_to,p.state,p.company_id,p.paid,
|
||||
l.employee_id,p.struct_id,l.category_id
|
||||
)
|
||||
""")
|
||||
payslip_report()
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
|
@ -0,0 +1,87 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<openerp>
|
||||
<data>
|
||||
|
||||
<record id="view_payslip_tree" model="ir.ui.view">
|
||||
<field name="name">payslip.report.tree</field>
|
||||
<field name="model">payslip.report</field>
|
||||
<field name="type">tree</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree colors="blue:state == 'draft';black:state == 'done';gray:state == 'cancel' " string="Payslip Analysis">
|
||||
<field name="nbr" sum="# Payslip Lines"/>
|
||||
<field name="name"/>
|
||||
<field name="employee_id" invisible="1"/>
|
||||
<field name="date_to" invisible="1"/>
|
||||
<field name="date_from" invisible="1"/>
|
||||
<field name="state" invisible="1"/>
|
||||
<field name="number" invisible="1"/>
|
||||
<field name="struct_id" invisible="1"/>
|
||||
<field name="year" invisible="1"/>
|
||||
<field name="day" invisible="1"/>
|
||||
<field name="month" invisible="1"/>
|
||||
<field name="company_id" invisible="1"/>
|
||||
<field name="paid" invisible="1"/>
|
||||
<field name="total" />
|
||||
<field name="category_id" invisible="1"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="view_payslip_search" model="ir.ui.view">
|
||||
<field name="name">payslip.report.search</field>
|
||||
<field name="model">payslip.report</field>
|
||||
<field name="type">search</field>
|
||||
<field name="arch" type="xml">
|
||||
<search string="Payslip Analysis">
|
||||
<group>
|
||||
<filter icon="terp-document-new" string="Draft" domain="[('state','=','draft')]" help="Payslips which are in draft state"/>
|
||||
<filter icon="terp-check" string="Done" name="done" domain="[('state','=','done')]" help="Payslips which are in done state"/>
|
||||
<separator orientation="vertical"/>
|
||||
<filter icon="terp-camera_test" string="Paid" domain="[('paid','=',True)]" help="Payslips which are paid"/>
|
||||
<separator orientation="vertical"/>
|
||||
<field name="date_from"/>
|
||||
<field name="date_to"/>
|
||||
<separator orientation="vertical"/>
|
||||
<field name="number"/>
|
||||
<field name="name"/>
|
||||
<field name="employee_id"/>
|
||||
</group>
|
||||
<newline/>
|
||||
<group expand="1" string="Extended Filters...">
|
||||
<separator orientation="vertical"/>
|
||||
<field name="company_id" groups="base.group_multi_company" widget="selection"/>
|
||||
</group>
|
||||
<newline/>
|
||||
<group expand="1" string="Group By...">
|
||||
<filter string="Employee" name="employee" icon="terp-personal" context="{'group_by':'employee_id'}" />
|
||||
<filter string="Structure" context="{'group_by':'struct_id'}" />
|
||||
<filter string="Category" name="category" context="{'group_by':'category_id'}" />
|
||||
<filter string="Payslip Line" context="{'group_by':'name'}" />
|
||||
<separator orientation="vertical"/>
|
||||
<filter string="Status" icon="terp-stock_effects-object-colorize" context="{'group_by':'state'}"/>
|
||||
<separator orientation="vertical"/>
|
||||
<filter string="Company" icon="terp-go-home" groups="base.group_multi_company" context="{'group_by':'company_id'}"/>
|
||||
<separator orientation="vertical"/>
|
||||
<filter string="Day" icon="terp-go-today" context="{'group_by':'day'}" help="Day of Payslip"/>
|
||||
<filter string="Month" name="order_month" icon="terp-go-month" context="{'group_by':'month'}" help="Month of Payslip"/>
|
||||
<filter string="Year" icon="terp-go-year" context="{'group_by':'year'}" help="Year of Payslip"/>
|
||||
|
||||
</group>
|
||||
</search>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="action_payslip_report_all" model="ir.actions.act_window">
|
||||
<field name="name">Payslip Analysis</field>
|
||||
<field name="res_model">payslip.report</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree</field>
|
||||
<field name="view_id" ref="view_payslip_tree"/>
|
||||
<field name="context">{'search_default_employee':1,'search_default_category':1,'group_by_no_leaf':uid,'group_by':[]}</field>
|
||||
<field name="help">This report performs analysis on Payslip</field>
|
||||
</record>
|
||||
|
||||
<menuitem action="action_payslip_report_all" id="menu_reporting_payslip" parent="hr.menu_hr_reporting" sequence="5" groups="base.group_hr_manager"/>
|
||||
|
||||
</data>
|
||||
</openerp>
|
|
@ -0,0 +1,133 @@
|
|||
#-*- coding:utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2011 OpenERP SA (<http://openerp.com>). All Rights Reserved
|
||||
#
|
||||
# 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
|
||||
import time
|
||||
|
||||
from report import report_sxw
|
||||
|
||||
class report_hr_salary_employee_bymonth(report_sxw.rml_parse):
|
||||
|
||||
def __init__(self, cr, uid, name, context):
|
||||
super(report_hr_salary_employee_bymonth, self).__init__(cr, uid, name, context=context)
|
||||
|
||||
self.localcontext.update({
|
||||
'time': time,
|
||||
'get_employee': self.get_employee,
|
||||
'get_periods': self.get_periods,
|
||||
'get_months_tol': self.get_months_tol,
|
||||
'get_total': self.get_total,
|
||||
})
|
||||
|
||||
self.context = context
|
||||
self.mnths = []
|
||||
self.mnths_total = []
|
||||
self.total = 0.0
|
||||
|
||||
def get_periods(self, form):
|
||||
# Get start year-month-date and end year-month-date
|
||||
first_year = int(form['start_date'][0:4])
|
||||
last_year = int(form['end_date'][0:4])
|
||||
|
||||
first_month = int(form['start_date'][5:7])
|
||||
last_month = int(form['end_date'][5:7])
|
||||
no_months = (last_year-first_year) * 12 + last_month - first_month + 1
|
||||
current_month = first_month
|
||||
current_year = first_year
|
||||
|
||||
# Get name of the months from integer
|
||||
mnth_name = []
|
||||
for count in range(0, no_months):
|
||||
m = datetime.date(current_year, current_month, 1).strftime('%b')
|
||||
mnth_name.append(m)
|
||||
self.mnths.append(str(current_month) + '-' + str(current_year))
|
||||
if current_month == 12:
|
||||
current_month = 0
|
||||
current_year = last_year
|
||||
current_month = current_month + 1
|
||||
for c in range(0, (12-no_months)):
|
||||
mnth_name.append('None')
|
||||
self.mnths.append('None')
|
||||
return [mnth_name]
|
||||
|
||||
def get_salary(self, form, emp_id, emp_salary, total_mnths):
|
||||
category_id = form.get('category_id', [])
|
||||
category_id = category_id and category_id[0] or False
|
||||
self.cr.execute("select to_char(date_to,'mm-yyyy') as to_date ,sum(pl.total) \
|
||||
from hr_payslip_line as pl \
|
||||
left join hr_payslip as p on pl.slip_id = p.id \
|
||||
left join hr_employee as emp on emp.id = p.employee_id \
|
||||
left join resource_resource as r on r.id = emp.resource_id \
|
||||
where p.state = 'done' and p.employee_id = %s and pl.category_id = %s \
|
||||
group by r.name, p.date_to,emp.id",(emp_id, category_id,))
|
||||
sal = self.cr.fetchall()
|
||||
salary = dict(sal)
|
||||
total = 0.0
|
||||
cnt = 1
|
||||
|
||||
for month in self.mnths:
|
||||
if month <> 'None':
|
||||
if len(month) != 7:
|
||||
month = '0' + str(month)
|
||||
if month in salary and salary[month]:
|
||||
emp_salary.append(salary[month])
|
||||
total += salary[month]
|
||||
total_mnths[cnt] = total_mnths[cnt] + salary[month]
|
||||
else:
|
||||
emp_salary.append(0.00)
|
||||
else:
|
||||
emp_salary.append('')
|
||||
total_mnths[cnt] = ''
|
||||
cnt = cnt + 1
|
||||
return emp_salary, total, total_mnths
|
||||
|
||||
def get_employee(self, form):
|
||||
emp_salary = []
|
||||
salary_list = []
|
||||
total_mnths=['Total', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
|
||||
emp_obj = self.pool.get('hr.employee')
|
||||
emp_ids = form.get('employee_ids', [])
|
||||
employees = emp_obj.browse(self.cr, self.uid, emp_ids, context=self.context)
|
||||
|
||||
for emp_id in employees:
|
||||
emp_salary.append(emp_id.name)
|
||||
total = 0.0
|
||||
emp_salary, total, total_mnths = self.get_salary(form, emp_id.id, emp_salary, total_mnths)
|
||||
emp_salary.append(total)
|
||||
salary_list.append(emp_salary)
|
||||
emp_salary = []
|
||||
self.mnths_total.append(total_mnths)
|
||||
return salary_list
|
||||
|
||||
def get_months_tol(self):
|
||||
return self.mnths_total
|
||||
|
||||
def get_total(self):
|
||||
for item in self.mnths_total:
|
||||
for count in range(1, len(item)):
|
||||
if item[count] == '':
|
||||
continue
|
||||
self.total += item[count]
|
||||
return self.total
|
||||
|
||||
report_sxw.report_sxw('report.salary.employee.bymonth', 'hr.salary.employee.month', 'l10n_in_hr_payroll/report/report_hr_salary_employee_bymonth.rml', parser=report_hr_salary_employee_bymonth, header='internal')
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
|
@ -0,0 +1,293 @@
|
|||
<?xml version="1.0"?>
|
||||
<document filename="yearly salary report.pdf">
|
||||
<template pageSize="(620.0,842.0)" title="Yearly Salary Report" author="OpenERP" allowSplitting="50">
|
||||
<pageTemplate id="first">
|
||||
<frame id="first" x1="28.0" y1="28.0" width="539" height="772"/>
|
||||
</pageTemplate>
|
||||
</template>
|
||||
<stylesheet>
|
||||
<blockTableStyle id="Standard_Outline">
|
||||
<blockAlignment value="LEFT"/>
|
||||
<blockValign value="TOP"/>
|
||||
</blockTableStyle>
|
||||
<blockTableStyle id="Table1">
|
||||
<blockAlignment value="LEFT"/>
|
||||
<blockValign value="TOP"/>
|
||||
<lineStyle kind="LINEABOVE" colorName="#000000" start="0,0" stop="0,0"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#000000" start="0,-1" stop="0,-1"/>
|
||||
<lineStyle kind="LINEABOVE" colorName="#000000" start="1,0" stop="1,0"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#000000" start="1,-1" stop="1,-1"/>
|
||||
<lineStyle kind="LINEABOVE" colorName="#000000" start="2,0" stop="2,0"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#000000" start="2,-1" stop="2,-1"/>
|
||||
<lineStyle kind="LINEABOVE" colorName="#000000" start="3,0" stop="3,0"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#000000" start="3,-1" stop="3,-1"/>
|
||||
<lineStyle kind="LINEABOVE" colorName="#000000" start="4,0" stop="4,0"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#000000" start="4,-1" stop="4,-1"/>
|
||||
<lineStyle kind="LINEABOVE" colorName="#000000" start="5,0" stop="5,0"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#000000" start="5,-1" stop="5,-1"/>
|
||||
<lineStyle kind="LINEABOVE" colorName="#000000" start="6,0" stop="6,0"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#000000" start="6,-1" stop="6,-1"/>
|
||||
<lineStyle kind="LINEABOVE" colorName="#000000" start="7,0" stop="7,0"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#000000" start="7,-1" stop="7,-1"/>
|
||||
<lineStyle kind="LINEABOVE" colorName="#000000" start="8,0" stop="8,0"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#000000" start="8,-1" stop="8,-1"/>
|
||||
<lineStyle kind="LINEABOVE" colorName="#000000" start="9,0" stop="9,0"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#000000" start="9,-1" stop="9,-1"/>
|
||||
<lineStyle kind="LINEABOVE" colorName="#000000" start="10,0" stop="10,0"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#000000" start="10,-1" stop="10,-1"/>
|
||||
<lineStyle kind="LINEABOVE" colorName="#000000" start="11,0" stop="11,0"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#000000" start="11,-1" stop="11,-1"/>
|
||||
<lineStyle kind="LINEABOVE" colorName="#000000" start="12,0" stop="12,0"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#000000" start="12,-1" stop="12,-1"/>
|
||||
<lineStyle kind="LINEABOVE" colorName="#000000" start="13,0" stop="13,0"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#000000" start="13,-1" stop="13,-1"/>
|
||||
</blockTableStyle>
|
||||
<blockTableStyle id="Table2">
|
||||
<blockAlignment value="LEFT"/>
|
||||
<blockValign value="TOP"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="0,-1" stop="0,-1"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="1,-1" stop="1,-1"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="2,-1" stop="2,-1"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="3,-1" stop="3,-1"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="4,-1" stop="4,-1"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="5,-1" stop="5,-1"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="6,-1" stop="6,-1"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="7,-1" stop="7,-1"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="8,-1" stop="8,-1"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="9,-1" stop="9,-1"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="10,-1" stop="10,-1"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="11,-1" stop="11,-1"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="12,-1" stop="12,-1"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="13,-1" stop="13,-1"/>
|
||||
</blockTableStyle>
|
||||
<blockTableStyle id="Table6">
|
||||
<blockAlignment value="LEFT"/>
|
||||
<blockValign value="TOP"/>
|
||||
<lineStyle kind="LINEABOVE" colorName="#000000" start="0,0" stop="0,0"/>
|
||||
<lineStyle kind="LINEABOVE" colorName="#000000" start="1,0" stop="1,0"/>
|
||||
<lineStyle kind="LINEABOVE" colorName="#000000" start="2,0" stop="2,0"/>
|
||||
<lineStyle kind="LINEABOVE" colorName="#000000" start="3,0" stop="3,0"/>
|
||||
<lineStyle kind="LINEABOVE" colorName="#000000" start="4,0" stop="4,0"/>
|
||||
<lineStyle kind="LINEABOVE" colorName="#000000" start="5,0" stop="5,0"/>
|
||||
<lineStyle kind="LINEABOVE" colorName="#000000" start="6,0" stop="6,0"/>
|
||||
<lineStyle kind="LINEABOVE" colorName="#000000" start="7,0" stop="7,0"/>
|
||||
<lineStyle kind="LINEABOVE" colorName="#000000" start="8,0" stop="8,0"/>
|
||||
<lineStyle kind="LINEABOVE" colorName="#000000" start="9,0" stop="9,0"/>
|
||||
<lineStyle kind="LINEABOVE" colorName="#000000" start="10,0" stop="10,0"/>
|
||||
<lineStyle kind="LINEABOVE" colorName="#000000" start="11,0" stop="11,0"/>
|
||||
<lineStyle kind="LINEABOVE" colorName="#000000" start="12,0" stop="12,0"/>
|
||||
<lineStyle kind="LINEABOVE" colorName="#000000" start="13,0" stop="13,0"/>
|
||||
</blockTableStyle>
|
||||
<initialize>
|
||||
<paraStyle name="all" alignment="justify"/>
|
||||
</initialize>
|
||||
<paraStyle name="P1" fontName="Helvetica-Bold" fontSize="12.0" leading="15" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
<paraStyle name="P2" fontName="Helvetica" fontSize="2.0" leading="3" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
<paraStyle name="P3" fontName="Helvetica" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
<paraStyle name="P4" fontName="Helvetica" fontSize="2.0" leading="3" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
<paraStyle name="P5" fontName="Helvetica" fontSize="9.0" leading="11" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
<paraStyle name="P6" fontName="Helvetica" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
<paraStyle name="Standard" fontName="Helvetica"/>
|
||||
<paraStyle name="Heading" fontName="Helvetica" fontSize="14.0" leading="17" spaceBefore="12.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="Text body" fontName="Helvetica" spaceBefore="0.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="List" fontName="Helvetica" spaceBefore="0.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="Caption" fontName="Helvetica" fontSize="12.0" leading="15" spaceBefore="6.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="Index" fontName="Helvetica"/>
|
||||
<paraStyle name="terp_header" fontName="Helvetica-Bold" fontSize="15.0" leading="19" alignment="LEFT" spaceBefore="12.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="terp_default_8" fontName="Helvetica" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
<paraStyle name="terp_default_Centre_8" fontName="Helvetica" fontSize="8.0" leading="10" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
<paraStyle name="terp_default_Centre_9" fontName="Helvetica" fontSize="9.0" leading="11" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
<paraStyle name="terp_header_Centre" fontName="Helvetica-Bold" fontSize="12.0" leading="15" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
<paraStyle name="terp_tblheader_Details" fontName="Helvetica-Bold" fontSize="7.0" leading="11" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
<paraStyle name="terp_tblheader_Details_Right" fontName="Helvetica-Bold" fontSize="7.0" leading="11" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
<paraStyle name="terp_default_1" fontName="Helvetica" fontSize="2.0" leading="3" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
<paraStyle name="Table Contents" fontName="Helvetica"/>
|
||||
<paraStyle name="Table Heading" fontName="Helvetica" alignment="CENTER"/>
|
||||
<paraStyle name="terp_default_9" fontName="Helvetica" fontSize="5.0" leading="5" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
<paraStyle name="terp_default_Right_8" fontName="Helvetica" fontSize="5.0" leading="2" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
<paraStyle name="terp_default_Right_9" fontName="Helvetica" fontSize="7.0" leading="11" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
<paraStyle name="terp_default_Right_9_Bold" fontName="Helvetica-Bold" fontSize="5.0" leading="11" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
<paraStyle name="terp_tblheader_General" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="6.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="terp_tblheader_General_Centre" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="CENTER" spaceBefore="6.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="terp_tblheader_General_Right" fontName="Helvetica-Bold" fontSize="5.0" leading="11" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
<images/>
|
||||
</stylesheet>
|
||||
<story>
|
||||
<para style="P1">Yearly Salary Details </para>
|
||||
<para style="P5">From <u>[[ formatLang(data['form']['start_date'], date=True) ]]</u> To <u>[[ formatLang(data['form']['end_date'], date=True) ]]</u> of <u>[[ (data['form']['category_id'][1]) ]]</u> Category</para>
|
||||
<para style="P6">
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
<section>
|
||||
<para style="terp_default_1">[[ repeatIn(get_periods(data['form']),'m') ]]</para>
|
||||
<blockTable colWidths="55.0,40.0,40.0,40.0,40.0,40.0,40.0,40.0,40.0,40.0,40.0,40.0,40.0,57.0" style="Table1">
|
||||
<tr>
|
||||
<td>
|
||||
<para style="terp_tblheader_Details">Name</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_tblheader_Details_Right">[[ m[0] != 'None' and m[0] or '' ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_tblheader_Details_Right">[[ m[1] != 'None' and m[1] or '' ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_tblheader_Details_Right">[[ m[2] != 'None' and m[2] or '' ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_tblheader_Details_Right">[[ m[3] != 'None' and m[3] or '' ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_tblheader_Details_Right">[[ m[4] != 'None' and m[4] or '' ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_tblheader_Details_Right">[[ m[5] != 'None' and m[5] or '' ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_tblheader_Details_Right">[[ m[6] != 'None' and m[6] or '' ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_tblheader_Details_Right">[[ m[7] != 'None' and m[7] or '' ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_tblheader_Details_Right">[[ m[8] != 'None' and m[8] or '' ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_tblheader_Details_Right">[[ m[9] != 'None' and m[9] or '' ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_tblheader_Details_Right">[[ m[10] != 'None' and m[10] or '' ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_tblheader_Details_Right">[[ m[11] != 'None' and m[11] or '' ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_tblheader_Details_Right">Total</para>
|
||||
</td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
<section>
|
||||
<para style="terp_default_1">[[ repeatIn(get_employee(data['form']),'e') ]]</para>
|
||||
<blockTable colWidths="55.0,40.0,40.0,40.0,40.0,40.0,40.0,40.0,40.0,40.0,40.0,40.0,40.0,57.0" style="Table2">
|
||||
<tr>
|
||||
<td>
|
||||
<para style="terp_default_9">[[ e[0] ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_Right_8">
|
||||
<font face="Helvetica" size="5.0">[[ (e[1]!='' and formatLang(e[1])) or removeParentNode('font') ]]</font>
|
||||
</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_Right_8">
|
||||
<font face="Helvetica" size="5.0">[[ (e[2]!='' and formatLang(e[2])) or removeParentNode('font') ]]</font>
|
||||
</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_Right_8">
|
||||
<font face="Helvetica" size="5.0">[[ (e[3]!='' and formatLang(e[3])) or removeParentNode('font') ]]</font>
|
||||
</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_Right_8">
|
||||
<font face="Helvetica" size="5.0">[[ (e[4]!='' and formatLang(e[4])) or removeParentNode('font') ]]</font>
|
||||
</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_Right_8">
|
||||
<font face="Helvetica" size="5.0">[[ (e[5]!='' and formatLang(e[5])) or removeParentNode('font') ]]</font>
|
||||
</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_Right_8">
|
||||
<font face="Helvetica" size="5.0">[[ (e[6]!='' and formatLang(e[6])) or removeParentNode('font') ]]</font>
|
||||
</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_Right_8">
|
||||
<font face="Helvetica" size="5.0">[[ (e[7]!='' and formatLang(e[7])) or removeParentNode('font') ]]</font>
|
||||
</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_Right_8">
|
||||
<font face="Helvetica" size="5.0">[[ (e[8]!='' and formatLang(e[8])) or removeParentNode('font') ]]</font>
|
||||
</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_Right_8">
|
||||
<font face="Helvetica" size="5.0">[[ (e[9]!='' and formatLang(e[9])) or removeParentNode('font') ]]</font>
|
||||
</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_Right_8">
|
||||
<font face="Helvetica" size="5.0">[[ (e[10]!='' and formatLang(e[10])) or removeParentNode('font') ]]</font>
|
||||
</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_Right_8">
|
||||
<font face="Helvetica" size="5.0">[[ (e[11]!='' and formatLang(e[11])) or removeParentNode('font') ]]</font>
|
||||
</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_Right_8">
|
||||
<font face="Helvetica" size="5.0">[[ (e[12]!='' and formatLang(e[12])) or removeParentNode('font') ]]</font>
|
||||
</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_Right_9_Bold">[[ formatLang(e[13]) ]] [[company.currency_id.symbol]]</para>
|
||||
</td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
</section>
|
||||
</section>
|
||||
<section>
|
||||
<para style="terp_default_1">[[ repeatIn(get_months_tol(),'t') ]]</para>
|
||||
<blockTable colWidths="55.0,40.0,40.0,40.0,40.0,40.0,40.0,40.0,40.0,40.0,40.0,40.0,40.0,57.0" style="Table6">
|
||||
<tr>
|
||||
<td>
|
||||
<para style="terp_tblheader_Details">Total</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_tblheader_General_Right">[[ formatLang(t[1]) or removeParentNode('para') ]] [[company.currency_id.symbol]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_tblheader_General_Right">[[ formatLang(t[2]) or removeParentNode('para')]] [[company.currency_id.symbol]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_tblheader_General_Right">[[ formatLang(t[3]) or removeParentNode('para')]] [[company.currency_id.symbol]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_tblheader_General_Right">[[ formatLang(t[4]) or removeParentNode('para')]] [[company.currency_id.symbol]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_tblheader_General_Right">[[ formatLang(t[5]) or removeParentNode('para')]] [[company.currency_id.symbol]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_tblheader_General_Right">[[ formatLang(t[6]) or removeParentNode('para')]] [[company.currency_id.symbol]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_tblheader_General_Right">[[ formatLang(t[7]) or removeParentNode('para')]] [[company.currency_id.symbol]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_tblheader_General_Right">[[ formatLang(t[8]) or removeParentNode('para')]] [[company.currency_id.symbol]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_tblheader_General_Right">[[ formatLang(t[9]) or removeParentNode('para')]] [[company.currency_id.symbol]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_tblheader_General_Right">[[ formatLang(t[10]) or removeParentNode('para')]] [[company.currency_id.symbol]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_tblheader_General_Right">[[ formatLang(t[11]) or removeParentNode('para')]] [[company.currency_id.symbol]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_tblheader_General_Right">[[ formatLang(t[12]) or removeParentNode('para')]] [[company.currency_id.symbol]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_tblheader_General_Right">[[ formatLang(get_total()) ]] [[company.currency_id.symbol]]</para>
|
||||
</td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
</section>
|
||||
</story>
|
||||
</document>
|
|
@ -0,0 +1,164 @@
|
|||
#-*- coding:utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2011 OpenERP SA (<http://openerp.com>). All Rights Reserved
|
||||
#
|
||||
# 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 time
|
||||
import datetime
|
||||
from report import report_sxw
|
||||
|
||||
class employees_yearly_salary_report(report_sxw.rml_parse):
|
||||
|
||||
def __init__(self, cr, uid, name, context):
|
||||
super(employees_yearly_salary_report, self).__init__(cr, uid, name, context)
|
||||
|
||||
self.localcontext.update({
|
||||
'time': time,
|
||||
'get_employee': self.get_employee,
|
||||
'get_employee_detail': self.get_employee_detail,
|
||||
'cal_monthly_amt': self.cal_monthly_amt,
|
||||
'get_periods': self.get_periods,
|
||||
'get_total': self.get_total,
|
||||
'get_allow': self.get_allow,
|
||||
'get_deduct': self.get_deduct,
|
||||
})
|
||||
|
||||
self.context = context
|
||||
|
||||
def get_periods(self, form):
|
||||
self.mnths = []
|
||||
# Get start year-month-date and end year-month-date
|
||||
first_year = int(form['date_from'][0:4])
|
||||
last_year = int(form['date_to'][0:4])
|
||||
|
||||
first_month = int(form['date_from'][5:7])
|
||||
last_month = int(form['date_to'][5:7])
|
||||
no_months = (last_year-first_year) * 12 + last_month - first_month + 1
|
||||
current_month = first_month
|
||||
current_year = first_year
|
||||
|
||||
# Get name of the months from integer
|
||||
mnth_name = []
|
||||
for count in range(0, no_months):
|
||||
m = datetime.date(current_year, current_month, 1).strftime('%b')
|
||||
mnth_name.append(m)
|
||||
self.mnths.append(str(current_month) + '-' + str(current_year))
|
||||
if current_month == 12:
|
||||
current_month = 0
|
||||
current_year = last_year
|
||||
current_month = current_month + 1
|
||||
for c in range(0, (12-no_months)):
|
||||
mnth_name.append('None')
|
||||
self.mnths.append('None')
|
||||
return [mnth_name]
|
||||
|
||||
def get_employee(self, form):
|
||||
return self.pool.get('hr.employee').browse(self.cr,self.uid, form.get('employee_ids', []), context=self.context)
|
||||
|
||||
def get_employee_detail(self, form, obj):
|
||||
self.allow_list = []
|
||||
self.deduct_list = []
|
||||
self.total = 0.00
|
||||
gross = False
|
||||
net = False
|
||||
|
||||
payslip_lines = self.cal_monthly_amt(form, obj.id)
|
||||
for line in payslip_lines:
|
||||
for line[0] in line:
|
||||
if line[0][0] == "Gross":
|
||||
gross = line[0]
|
||||
elif line[0][0] == "Net":
|
||||
net = line[0]
|
||||
elif line[0][13] > 0.0 and line[0][0] != "Net":
|
||||
self.total += line[0][len(line[0])-1]
|
||||
self.allow_list.append(line[0])
|
||||
elif line[0][13] < 0.0:
|
||||
self.total += line[0][len(line[0])-1]
|
||||
self.deduct_list.append(line[0])
|
||||
if gross:
|
||||
self.allow_list.append(gross)
|
||||
if net:
|
||||
self.deduct_list.append(net)
|
||||
return None
|
||||
|
||||
def cal_monthly_amt(self, form, emp_id):
|
||||
category_obj = self.pool.get('hr.salary.rule.category')
|
||||
result = []
|
||||
res = []
|
||||
salaries = {}
|
||||
self.cr.execute('''SELECT rc.code, pl.name, sum(pl.total), \
|
||||
to_char(date_to,'mm-yyyy') as to_date FROM hr_payslip_line as pl \
|
||||
LEFT JOIN hr_salary_rule_category AS rc on (pl.category_id = rc.id) \
|
||||
LEFT JOIN hr_payslip as p on pl.slip_id = p.id \
|
||||
LEFT JOIN hr_employee as emp on emp.id = p.employee_id \
|
||||
WHERE p.employee_id = %s \
|
||||
GROUP BY rc.parent_id, pl.sequence, pl.id, pl.category_id,pl.name,p.date_to,rc.code \
|
||||
ORDER BY pl.sequence, rc.parent_id''',(emp_id,))
|
||||
salary = self.cr.fetchall()
|
||||
for category in salary:
|
||||
if category[0] not in salaries:
|
||||
salaries.setdefault(category[0], {})
|
||||
salaries[category[0]].update({category[1]: {category[3]: category[2]}})
|
||||
elif category[1] not in salaries[category[0]]:
|
||||
salaries[category[0]].setdefault(category[1], {})
|
||||
salaries[category[0]][category[1]].update({category[3]: category[2]})
|
||||
else:
|
||||
salaries[category[0]][category[1]].update({category[3]: category[2]})
|
||||
|
||||
category_ids = category_obj.search(self.cr,self.uid, [], context=self.context)
|
||||
categories = category_obj.read(self.cr, self.uid, category_ids, ['code'], context=self.context)
|
||||
for code in map(lambda x: x['code'], categories):
|
||||
if code in salaries:
|
||||
res = self.salary_list(salaries[code])
|
||||
result.append(res)
|
||||
return result
|
||||
|
||||
def salary_list(self, salaries):
|
||||
cat_salary_all = []
|
||||
for category_name,amount in salaries.items():
|
||||
cat_salary = []
|
||||
total = 0.0
|
||||
cat_salary.append(category_name)
|
||||
for mnth in self.mnths:
|
||||
if mnth <> 'None':
|
||||
if len(mnth) != 7:
|
||||
mnth = '0' + str(mnth)
|
||||
if mnth in amount and amount[mnth]:
|
||||
cat_salary.append(amount[mnth])
|
||||
total += amount[mnth]
|
||||
else:
|
||||
cat_salary.append(0.00)
|
||||
else:
|
||||
cat_salary.append('')
|
||||
cat_salary.append(total)
|
||||
cat_salary_all.append(cat_salary)
|
||||
return cat_salary_all
|
||||
|
||||
def get_allow(self):
|
||||
return self.allow_list
|
||||
|
||||
def get_deduct(self):
|
||||
return self.deduct_list
|
||||
|
||||
def get_total(self):
|
||||
return self.total
|
||||
|
||||
report_sxw.report_sxw('report.salary.detail.byyear', 'yearly.salary.detail', 'hr_payroll/report/report_hr_yearly_salary_detail.rml', parser=employees_yearly_salary_report, header='internal landscape')
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
|
@ -0,0 +1,588 @@
|
|||
<?xml version="1.0"?>
|
||||
<document filename="hr_yearly_salary_detail_report.pdf">
|
||||
<template pageSize="(842.0,595.0)" title="hr_yearly_salary_detail_report" author="Openerp S.A." allowSplitting="20">
|
||||
<pageTemplate id="first">
|
||||
<frame id="first" x1="28.0" y1="57.0" width="786" height="481"/>
|
||||
</pageTemplate>
|
||||
</template>
|
||||
<stylesheet>
|
||||
<blockTableStyle id="Standard_Outline">
|
||||
<blockAlignment value="LEFT"/>
|
||||
<blockValign value="TOP"/>
|
||||
</blockTableStyle>
|
||||
<blockTableStyle id="Table12">
|
||||
<blockAlignment value="LEFT"/>
|
||||
<blockValign value="TOP"/>
|
||||
</blockTableStyle>
|
||||
<blockTableStyle id="Table2">
|
||||
<blockAlignment value="LEFT"/>
|
||||
<blockValign value="TOP"/>
|
||||
<lineStyle kind="LINEBEFORE" colorName="#cccccc" start="0,0" stop="0,-1"/>
|
||||
<lineStyle kind="LINEABOVE" colorName="#cccccc" start="0,0" stop="0,0"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="0,-1" stop="0,-1"/>
|
||||
<lineStyle kind="LINEBEFORE" colorName="#cccccc" start="1,0" stop="1,-1"/>
|
||||
<lineStyle kind="LINEABOVE" colorName="#cccccc" start="1,0" stop="1,0"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="1,-1" stop="1,-1"/>
|
||||
<lineStyle kind="LINEBEFORE" colorName="#cccccc" start="2,0" stop="2,-1"/>
|
||||
<lineStyle kind="LINEABOVE" colorName="#cccccc" start="2,0" stop="2,0"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="2,-1" stop="2,-1"/>
|
||||
<lineStyle kind="LINEBEFORE" colorName="#cccccc" start="3,0" stop="3,-1"/>
|
||||
<lineStyle kind="LINEABOVE" colorName="#cccccc" start="3,0" stop="3,0"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="3,-1" stop="3,-1"/>
|
||||
<lineStyle kind="LINEBEFORE" colorName="#cccccc" start="4,0" stop="4,-1"/>
|
||||
<lineStyle kind="LINEABOVE" colorName="#cccccc" start="4,0" stop="4,0"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="4,-1" stop="4,-1"/>
|
||||
<lineStyle kind="LINEBEFORE" colorName="#cccccc" start="5,0" stop="5,-1"/>
|
||||
<lineStyle kind="LINEAFTER" colorName="#cccccc" start="5,0" stop="5,-1"/>
|
||||
<lineStyle kind="LINEABOVE" colorName="#cccccc" start="5,0" stop="5,0"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="5,-1" stop="5,-1"/>
|
||||
</blockTableStyle>
|
||||
<blockTableStyle id="Table3">
|
||||
<blockAlignment value="LEFT"/>
|
||||
<blockValign value="TOP"/>
|
||||
<lineStyle kind="LINEBEFORE" colorName="#cccccc" start="0,0" stop="0,-1"/>
|
||||
<lineStyle kind="LINEABOVE" colorName="#cccccc" start="0,0" stop="0,0"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="0,-1" stop="0,-1"/>
|
||||
<lineStyle kind="LINEBEFORE" colorName="#cccccc" start="1,0" stop="1,-1"/>
|
||||
<lineStyle kind="LINEABOVE" colorName="#cccccc" start="1,0" stop="1,0"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="1,-1" stop="1,-1"/>
|
||||
<lineStyle kind="LINEBEFORE" colorName="#cccccc" start="2,0" stop="2,-1"/>
|
||||
<lineStyle kind="LINEABOVE" colorName="#cccccc" start="2,0" stop="2,0"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="2,-1" stop="2,-1"/>
|
||||
<lineStyle kind="LINEBEFORE" colorName="#cccccc" start="3,0" stop="3,-1"/>
|
||||
<lineStyle kind="LINEABOVE" colorName="#cccccc" start="3,0" stop="3,0"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="3,-1" stop="3,-1"/>
|
||||
<lineStyle kind="LINEBEFORE" colorName="#cccccc" start="4,0" stop="4,-1"/>
|
||||
<lineStyle kind="LINEABOVE" colorName="#cccccc" start="4,0" stop="4,0"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="4,-1" stop="4,-1"/>
|
||||
<lineStyle kind="LINEBEFORE" colorName="#cccccc" start="5,0" stop="5,-1"/>
|
||||
<lineStyle kind="LINEAFTER" colorName="#cccccc" start="5,0" stop="5,-1"/>
|
||||
<lineStyle kind="LINEABOVE" colorName="#cccccc" start="5,0" stop="5,0"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="5,-1" stop="5,-1"/>
|
||||
</blockTableStyle>
|
||||
<blockTableStyle id="Table5">
|
||||
<blockAlignment value="LEFT"/>
|
||||
<blockValign value="TOP"/>
|
||||
<lineStyle kind="LINEBEFORE" colorName="#cccccc" start="0,0" stop="0,-1"/>
|
||||
<lineStyle kind="LINEABOVE" colorName="#cccccc" start="0,0" stop="0,0"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="0,-1" stop="0,-1"/>
|
||||
<lineStyle kind="LINEBEFORE" colorName="#cccccc" start="1,0" stop="1,-1"/>
|
||||
<lineStyle kind="LINEABOVE" colorName="#cccccc" start="1,0" stop="1,0"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="1,-1" stop="1,-1"/>
|
||||
<lineStyle kind="LINEBEFORE" colorName="#cccccc" start="2,0" stop="2,-1"/>
|
||||
<lineStyle kind="LINEABOVE" colorName="#cccccc" start="2,0" stop="2,0"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="2,-1" stop="2,-1"/>
|
||||
<lineStyle kind="LINEBEFORE" colorName="#cccccc" start="3,0" stop="3,-1"/>
|
||||
<lineStyle kind="LINEABOVE" colorName="#cccccc" start="3,0" stop="3,0"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="3,-1" stop="3,-1"/>
|
||||
<lineStyle kind="LINEBEFORE" colorName="#cccccc" start="4,0" stop="4,-1"/>
|
||||
<lineStyle kind="LINEABOVE" colorName="#cccccc" start="4,0" stop="4,0"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="4,-1" stop="4,-1"/>
|
||||
<lineStyle kind="LINEBEFORE" colorName="#cccccc" start="5,0" stop="5,-1"/>
|
||||
<lineStyle kind="LINEAFTER" colorName="#cccccc" start="5,0" stop="5,-1"/>
|
||||
<lineStyle kind="LINEABOVE" colorName="#cccccc" start="5,0" stop="5,0"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="5,-1" stop="5,-1"/>
|
||||
</blockTableStyle>
|
||||
<blockTableStyle id="Table4">
|
||||
<blockAlignment value="LEFT"/>
|
||||
<blockValign value="TOP"/>
|
||||
<lineStyle kind="LINEABOVE" colorName="#000000" start="0,0" stop="0,0"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#000000" start="0,-1" stop="0,-1"/>
|
||||
<lineStyle kind="LINEABOVE" colorName="#000000" start="1,0" stop="1,0"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#000000" start="1,-1" stop="1,-1"/>
|
||||
<lineStyle kind="LINEABOVE" colorName="#000000" start="2,0" stop="2,0"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#000000" start="2,-1" stop="2,-1"/>
|
||||
<lineStyle kind="LINEABOVE" colorName="#000000" start="3,0" stop="3,0"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#000000" start="3,-1" stop="3,-1"/>
|
||||
<lineStyle kind="LINEABOVE" colorName="#000000" start="4,0" stop="4,0"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#000000" start="4,-1" stop="4,-1"/>
|
||||
<lineStyle kind="LINEABOVE" colorName="#000000" start="5,0" stop="5,0"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#000000" start="5,-1" stop="5,-1"/>
|
||||
<lineStyle kind="LINEABOVE" colorName="#000000" start="6,0" stop="6,0"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#000000" start="6,-1" stop="6,-1"/>
|
||||
<lineStyle kind="LINEABOVE" colorName="#000000" start="7,0" stop="7,0"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#000000" start="7,-1" stop="7,-1"/>
|
||||
<lineStyle kind="LINEABOVE" colorName="#000000" start="8,0" stop="8,0"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#000000" start="8,-1" stop="8,-1"/>
|
||||
<lineStyle kind="LINEABOVE" colorName="#000000" start="9,0" stop="9,0"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#000000" start="9,-1" stop="9,-1"/>
|
||||
<lineStyle kind="LINEABOVE" colorName="#000000" start="10,0" stop="10,0"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#000000" start="10,-1" stop="10,-1"/>
|
||||
<lineStyle kind="LINEABOVE" colorName="#000000" start="11,0" stop="11,0"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#000000" start="11,-1" stop="11,-1"/>
|
||||
<lineStyle kind="LINEABOVE" colorName="#000000" start="12,0" stop="12,0"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#000000" start="12,-1" stop="12,-1"/>
|
||||
<lineStyle kind="LINEABOVE" colorName="#000000" start="13,0" stop="13,0"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#000000" start="13,-1" stop="13,-1"/>
|
||||
</blockTableStyle>
|
||||
<blockTableStyle id="Table7">
|
||||
<blockAlignment value="LEFT"/>
|
||||
<blockValign value="TOP"/>
|
||||
</blockTableStyle>
|
||||
<blockTableStyle id="Table6">
|
||||
<blockAlignment value="LEFT"/>
|
||||
<blockValign value="TOP"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="0,-1" stop="0,-1"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="1,-1" stop="1,-1"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="2,-1" stop="2,-1"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="3,-1" stop="3,-1"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="4,-1" stop="4,-1"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="5,-1" stop="5,-1"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="6,-1" stop="6,-1"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="7,-1" stop="7,-1"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="8,-1" stop="8,-1"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="9,-1" stop="9,-1"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="10,-1" stop="10,-1"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="11,-1" stop="11,-1"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="12,-1" stop="12,-1"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="13,-1" stop="13,-1"/>
|
||||
</blockTableStyle>
|
||||
<blockTableStyle id="Table10">
|
||||
<blockAlignment value="LEFT"/>
|
||||
<blockValign value="TOP"/>
|
||||
</blockTableStyle>
|
||||
<blockTableStyle id="Table8">
|
||||
<blockAlignment value="LEFT"/>
|
||||
<blockValign value="TOP"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="0,-1" stop="0,-1"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="1,-1" stop="1,-1"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="2,-1" stop="2,-1"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="3,-1" stop="3,-1"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="4,-1" stop="4,-1"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="5,-1" stop="5,-1"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="6,-1" stop="6,-1"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="7,-1" stop="7,-1"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="8,-1" stop="8,-1"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="9,-1" stop="9,-1"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="10,-1" stop="10,-1"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="11,-1" stop="11,-1"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="12,-1" stop="12,-1"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="13,-1" stop="13,-1"/>
|
||||
</blockTableStyle>
|
||||
<blockTableStyle id="Table11">
|
||||
<blockAlignment value="LEFT"/>
|
||||
<blockValign value="TOP"/>
|
||||
</blockTableStyle>
|
||||
<blockTableStyle id="Table9">
|
||||
<blockAlignment value="LEFT"/>
|
||||
<blockValign value="TOP"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="0,-1" stop="0,-1"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="1,-1" stop="1,-1"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="2,-1" stop="2,-1"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="3,-1" stop="3,-1"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="4,-1" stop="4,-1"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="5,-1" stop="5,-1"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="6,-1" stop="6,-1"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="7,-1" stop="7,-1"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="8,-1" stop="8,-1"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="9,-1" stop="9,-1"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="10,-1" stop="10,-1"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="11,-1" stop="11,-1"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="12,-1" stop="12,-1"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="13,-1" stop="13,-1"/>
|
||||
</blockTableStyle>
|
||||
<blockTableStyle id="Table1">
|
||||
<blockAlignment value="LEFT"/>
|
||||
<blockValign value="TOP"/>
|
||||
<lineStyle kind="LINEABOVE" colorName="#000000" start="0,0" stop="0,0"/>
|
||||
<lineStyle kind="LINEABOVE" colorName="#000000" start="1,0" stop="1,0"/>
|
||||
<lineStyle kind="LINEABOVE" colorName="#000000" start="2,0" stop="2,0"/>
|
||||
<lineStyle kind="LINEABOVE" colorName="#000000" start="3,0" stop="3,0"/>
|
||||
<lineStyle kind="LINEABOVE" colorName="#000000" start="4,0" stop="4,0"/>
|
||||
<lineStyle kind="LINEABOVE" colorName="#000000" start="5,0" stop="5,0"/>
|
||||
<lineStyle kind="LINEABOVE" colorName="#000000" start="6,0" stop="6,0"/>
|
||||
<lineStyle kind="LINEABOVE" colorName="#000000" start="7,0" stop="7,0"/>
|
||||
<lineStyle kind="LINEABOVE" colorName="#000000" start="8,0" stop="8,0"/>
|
||||
<lineStyle kind="LINEABOVE" colorName="#000000" start="9,0" stop="9,0"/>
|
||||
<lineStyle kind="LINEABOVE" colorName="#000000" start="10,0" stop="10,0"/>
|
||||
<lineStyle kind="LINEABOVE" colorName="#000000" start="11,0" stop="11,0"/>
|
||||
<lineStyle kind="LINEABOVE" colorName="#000000" start="12,0" stop="12,0"/>
|
||||
<lineStyle kind="LINEABOVE" colorName="#000000" start="13,0" stop="13,0"/>
|
||||
</blockTableStyle>
|
||||
<initialize>
|
||||
<paraStyle name="all" alignment="justify"/>
|
||||
</initialize>
|
||||
<paraStyle name="Standard" fontName="Helvetica"/>
|
||||
<paraStyle name="Heading" fontName="Helvetica" fontSize="14.0" leading="17" spaceBefore="12.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="Text body" fontName="Helvetica" fontSize="10.0" leading="13" spaceBefore="0.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="List" fontName="Helvetica" fontSize="10.0" leading="13" spaceBefore="0.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="Caption" fontName="Helvetica" fontSize="12.0" leading="15" spaceBefore="6.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="Index" fontName="Helvetica"/>
|
||||
<paraStyle name="Table Contents" fontName="Helvetica"/>
|
||||
<paraStyle name="Table Heading" fontName="Helvetica" alignment="CENTER"/>
|
||||
<paraStyle name="Drawing" fontName="Helvetica" fontSize="12.0" leading="15" spaceBefore="6.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="Header" fontName="Helvetica"/>
|
||||
<paraStyle name="Endnote" rightIndent="0.0" leftIndent="14.0" fontName="Helvetica" fontSize="10.0" leading="13"/>
|
||||
<paraStyle name="Addressee" fontName="Helvetica" spaceBefore="0.0" spaceAfter="3.0"/>
|
||||
<paraStyle name="Signature" fontName="Helvetica"/>
|
||||
<paraStyle name="Heading 9" fontName="Helvetica-Bold" fontSize="75%" leading="NaN" spaceBefore="12.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="Heading 8" fontName="Helvetica-Bold" fontSize="75%" leading="NaN" spaceBefore="12.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="Heading 7" fontName="Helvetica-Bold" fontSize="75%" leading="NaN" spaceBefore="12.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="Heading 6" fontName="Helvetica-Bold" fontSize="75%" leading="NaN" spaceBefore="12.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="Heading 5" fontName="Helvetica-Bold" fontSize="85%" leading="NaN" spaceBefore="12.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="Heading 4" fontName="Helvetica-BoldOblique" fontSize="85%" leading="NaN" spaceBefore="12.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="Heading 1" fontName="Helvetica-Bold" fontSize="115%" leading="NaN" spaceBefore="12.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="Heading 10" fontName="Helvetica-Bold" fontSize="75%" leading="NaN" spaceBefore="12.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="Heading 2" fontName="Helvetica-BoldOblique" fontSize="14.0" leading="17" spaceBefore="12.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="First line indent" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica" fontSize="10.0" leading="13" spaceBefore="0.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="Hanging indent" rightIndent="0.0" leftIndent="28.0" fontName="Helvetica" fontSize="10.0" leading="13" spaceBefore="0.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="Salutation" fontName="Helvetica"/>
|
||||
<paraStyle name="Text body indent" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica" fontSize="10.0" leading="13" spaceBefore="0.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="Heading 3" fontName="Helvetica-Bold" fontSize="14.0" leading="17" spaceBefore="12.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="List Indent" rightIndent="0.0" leftIndent="142.0" fontName="Helvetica" fontSize="10.0" leading="13" spaceBefore="0.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="Marginalia" rightIndent="0.0" leftIndent="113.0" fontName="Helvetica" fontSize="10.0" leading="13" spaceBefore="0.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="terp_header" fontName="Helvetica-Bold" fontSize="15.0" leading="19" alignment="LEFT" spaceBefore="12.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="terp_default_8" fontName="Helvetica" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
<paraStyle name="terp_default_Bold_8" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
<paraStyle name="terp_default_Bold_9" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
<paraStyle name="terp_default_9" fontName="Helvetica" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
<paraStyle name="terp_tblheader_General" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="6.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="terp_tblheader_General_Centre" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="CENTER" spaceBefore="6.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="terp_default_Centre_8" fontName="Helvetica" fontSize="8.0" leading="10" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
<paraStyle name="terp_tblheader_Details" rightIndent="0.0" leftIndent="-3.0" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
<paraStyle name="Footer" fontName="Helvetica"/>
|
||||
<paraStyle name="Horizontal Line" fontName="Helvetica" fontSize="6.0" leading="8" spaceBefore="0.0" spaceAfter="14.0"/>
|
||||
<paraStyle name="terp_tblheader_General_Right" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
<paraStyle name="terp_tblheader_Details_Centre" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
<paraStyle name="terp_tblheader_Details_Right" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
<paraStyle name="terp_default_Right_8" fontName="Helvetica" fontSize="8.0" leading="10" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
<paraStyle name="terp_header_Right" fontName="Helvetica-Bold" fontSize="15.0" leading="19" alignment="LEFT" spaceBefore="12.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="terp_default_address" fontName="Helvetica" fontSize="10.0" leading="13" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
<paraStyle name="terp_default_Centre_9" fontName="Helvetica" fontSize="9.0" leading="11" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
<paraStyle name="terp_default_Right_9" fontName="Helvetica" fontSize="9.0" leading="11" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
<paraStyle name="terp_default_1" fontName="Helvetica" fontSize="2.0" leading="3" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
<paraStyle name="terp_default_Right_9_Bold" fontName="Helvetica-Bold" fontSize="7.0" leading="11" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
<paraStyle name="terp_default_8_Italic" fontName="Helvetica-Oblique" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
<paraStyle name="terp_default_space" fontName="Helvetica" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="9.0" spaceAfter="0.0"/>
|
||||
<images/>
|
||||
</stylesheet>
|
||||
<story>
|
||||
<para style="terp_default_8">[[ repeatIn(get_employee(data['form']), 'o') ]] </para>
|
||||
<blockTable colWidths="785.0" style="Table12">
|
||||
<tr>
|
||||
<td>
|
||||
<para style="terp_default_Centre_9">From <u>[[ formatLang(data['form']['date_from'], date=True) ]]</u> To <u>[[ formatLang(data['form']['date_to'], date=True) ]]</u></para>
|
||||
</td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
<para style="terp_default_Centre_9">
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
<blockTable colWidths="100.0,162.0,92.0,161.0,103.0,167.0" style="Table2">
|
||||
<tr>
|
||||
<td>
|
||||
<para style="terp_tblheader_Details">Employee Code</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_9">[[ o.identification_id ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_tblheader_Details">Department</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_9">[[ o.department_id and o.department_id.name or '' ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_tblheader_Details">Bank</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_9">[[ o.bank_account_id and o.bank_account_id.bank.name or '' ]]</para>
|
||||
</td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
<blockTable colWidths="100.0,162.0,92.0,161.0,103.0,167.0" style="Table3">
|
||||
<tr>
|
||||
<td>
|
||||
<para style="terp_tblheader_Details">Employee Name</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_9">[[ o.name ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_tblheader_Details">Other No.</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_9">[[ o.otherid or '' ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_tblheader_Details">Address</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_9">[[o.address_home_id and o.address_home_id.name or '' ]]</para>
|
||||
</td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
<blockTable colWidths="100.0,162.0,92.0,161.0,103.0,167.0" style="Table5">
|
||||
<tr>
|
||||
<td>
|
||||
<para style="terp_tblheader_Details">Designation</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_9">[[ o.job_id and o.job_id.name or '' ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_tblheader_Details">Phone No.</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_9">[[ o.work_phone or '' ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_tblheader_Details">E-mail Address</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_9">[[o.work_email or '' ]]</para>
|
||||
</td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
<para style="terp_default_space">
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
<section>
|
||||
<para style="terp_default_1">[[ repeatIn(get_periods(data['form']),'m') ]]</para>
|
||||
<para style="terp_default_1">[[ get_employee_detail((data['form']),o) ]]</para>
|
||||
<blockTable colWidths="195.0,46.0,46.0,46.0,46.0,46.0,46.0,46.0,46.0,46.0,46.0,46.0,46.0,56.0" style="Table4">
|
||||
<tr>
|
||||
<td>
|
||||
<para style="terp_tblheader_Details">Title</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_tblheader_Details_Right">[[ m[0] != 'None' and m[0] or '' ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_tblheader_Details_Right">[[ m[1] != 'None' and m[1] or '' ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_tblheader_Details_Right">[[ m[2] != 'None' and m[2] or '' ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_tblheader_Details_Right">[[ m[3] != 'None' and m[3] or '' ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_tblheader_Details_Right">[[ m[4] != 'None' and m[4] or '' ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_tblheader_Details_Right">[[ m[5] != 'None' and m[5] or '' ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_tblheader_Details_Right">[[ m[6] != 'None' and m[6] or '' ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_tblheader_Details_Right">[[ m[7] != 'None' and m[7] or '' ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_tblheader_Details_Right">[[ m[8] != 'None' and m[8] or '' ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_tblheader_Details_Right">[[ m[9] != 'None' and m[9] or '' ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_tblheader_Details_Right">[[ m[10] != 'None' and m[10] or '' ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_tblheader_Details_Right">[[ m[11] != 'None' and m[11] or '' ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_tblheader_Details_Right">Total</para>
|
||||
</td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
<para style="terp_default_1">
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
<section>
|
||||
<blockTable colWidths="803.0" style="Table7">
|
||||
<tr>
|
||||
<td>
|
||||
<para style="terp_tblheader_Details">Allowances with Basic: </para>
|
||||
</td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
<section>
|
||||
<para style="terp_default_1">[[ repeatIn(get_allow(),'e1') ]]</para>
|
||||
<blockTable colWidths="195.0,46.0,46.0,46.0,46.0,46.0,46.0,46.0,46.0,46.0,46.0,46.0,46.0,56.0" style="Table6">
|
||||
<tr>
|
||||
<td>
|
||||
<para style="terp_default_9"><b>[[ e1[0] in ["Basic","Gross"] and e1[0] ]]</b> </para>
|
||||
<para style="terp_default_9">[[ e1[0] not in ["Basic","Gross"] and e1[0] ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_Right_8">
|
||||
<font face="Helvetica-Bold" size="7.0">[[ (e1[0] in ["Basic","Gross"] and e1[1]!='' and formatLang(e1[1])) or removeParentNode('font') ]]</font>
|
||||
<font face="Helvetica" size="7.0">[[ (e1[0] not in ["Basic","Gross"] and e1[1]!='' and formatLang(e1[1])) or removeParentNode('font') ]]</font>
|
||||
</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_Right_8">
|
||||
<font face="Helvetica-Bold" size="7.0">[[ (e1[0] in ["Basic","Gross"] and e1[2]!='' and formatLang(e1[2])) or removeParentNode('font') ]]</font>
|
||||
<font face="Helvetica" size="7.0">[[ (e1[0] not in ["Basic","Gross"] and e1[2]!='' and formatLang(e1[2])) or removeParentNode('font') ]]</font>
|
||||
</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_Right_8">
|
||||
<font face="Helvetica-Bold" size="7.0">[[ (e1[0] in ["Basic","Gross"] and e1[3]!='' and formatLang(e1[3])) or removeParentNode('font') ]]</font>
|
||||
<font face="Helvetica" size="7.0">[[ (e1[0] not in ["Basic","Gross"] and e1[3]!='' and formatLang(e1[3])) or removeParentNode('font') ]]</font>
|
||||
</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_Right_8">
|
||||
<font face="Helvetica-Bold" size="7.0">[[ (e1[0] in ["Basic","Gross"] and e1[4]!='' and formatLang(e1[4])) or removeParentNode('font') ]]</font>
|
||||
<font face="Helvetica" size="7.0">[[ (e1[0] not in ["Basic","Gross"] and e1[4]!='' and formatLang(e1[4])) or removeParentNode('font') ]]</font>
|
||||
</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_Right_8">
|
||||
<font face="Helvetica-Bold" size="7.0">[[ (e1[0] in ["Basic","Gross"] and e1[5]!='' and formatLang(e1[5])) or removeParentNode('font') ]]</font>
|
||||
<font face="Helvetica" size="7.0">[[ (e1[0] not in ["Basic","Gross"] and e1[5]!='' and formatLang(e1[5])) or removeParentNode('font') ]]</font>
|
||||
</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_Right_8">
|
||||
<font face="Helvetica-Bold" size="7.0">[[ (e1[0] in ["Basic","Gross"] and e1[6]!='' and formatLang(e1[6])) or removeParentNode('font') ]]</font>
|
||||
<font face="Helvetica" size="7.0">[[ (e1[0] not in ["Basic","Gross"] and e1[6]!='' and formatLang(e1[6])) or removeParentNode('font') ]]</font>
|
||||
</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_Right_8">
|
||||
<font face="Helvetica-Bold" size="7.0">[[ (e1[0] in ["Basic","Gross"] and e1[7]!='' and formatLang(e1[7])) or removeParentNode('font') ]]</font>
|
||||
<font face="Helvetica" size="7.0">[[ (e1[0] not in ["Basic","Gross"] and e1[7]!='' and formatLang(e1[7])) or removeParentNode('font') ]]</font>
|
||||
</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_Right_8">
|
||||
<font face="Helvetica-Bold" size="7.0">[[ (e1[0] in ["Basic","Gross"] and e1[8]!='' and formatLang(e1[8])) or removeParentNode('font') ]]</font>
|
||||
<font face="Helvetica" size="7.0">[[ (e1[0] not in ["Basic","Gross"] and e1[8]!='' and formatLang(e1[8])) or removeParentNode('font') ]]</font>
|
||||
</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_Right_8">
|
||||
<font face="Helvetica-Bold" size="7.0">[[ (e1[0] in ["Basic","Gross"] and e1[9]!='' and formatLang(e1[9])) or removeParentNode('font') ]]</font>
|
||||
<font face="Helvetica" size="7.0">[[ (e1[0] not in ["Basic","Gross"] and e1[9]!='' and formatLang(e1[9])) or removeParentNode('font') ]]</font>
|
||||
</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_Right_8">
|
||||
<font face="Helvetica-Bold" size="7.0">[[ (e1[0] in ["Basic","Gross"] and e1[10]!='' and formatLang(e1[10])) or removeParentNode('font') ]]</font>
|
||||
<font face="Helvetica" size="7.0">[[ (e1[0] not in ["Basic","Gross"] and e1[10]!='' and formatLang(e1[10])) or removeParentNode('font') ]]</font>
|
||||
</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_Right_8">
|
||||
<font face="Helvetica-Bold" size="7.0">[[ (e1[0] in ["Basic","Gross"] and e1[11]!='' and formatLang(e1[11])) or removeParentNode('font') ]]</font>
|
||||
<font face="Helvetica" size="7.0">[[ (e1[0] not in ["Basic","Gross"] and e1[11]!='' and formatLang(e1[11])) or removeParentNode('font') ]]</font>
|
||||
</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_Right_8">
|
||||
<font face="Helvetica-Bold" size="7.0">[[ (e1[0] in ["Basic","Gross"] and e1[12]!='' and formatLang(e1[12])) or removeParentNode('font') ]]</font>
|
||||
<font face="Helvetica" size="7.0">[[ (e1[0] not in ["Basic","Gross"] and e1[12]!='' and formatLang(e1[12])) or removeParentNode('font') ]]</font>
|
||||
</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_Right_9_Bold">[[ formatLang(e1[13]) ]] [[ company.currency_id.symbol ]]</para>
|
||||
</td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
</section>
|
||||
<blockTable colWidths="803.0" style="Table10">
|
||||
<tr>
|
||||
<td>
|
||||
<para style="terp_tblheader_Details">Deductions: </para>
|
||||
</td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
<section>
|
||||
<para style="terp_default_1">[[ repeatIn(get_deduct(),'e2') ]]</para>
|
||||
<blockTable colWidths="195.0,46.0,46.0,46.0,46.0,46.0,46.0,46.0,46.0,46.0,46.0,46.0,46.0,56.0" style="Table8">
|
||||
<tr>
|
||||
<td>
|
||||
<para style="terp_default_9"><b>[[ e2[0] in ["Net"] and e2[0] ]]</b> </para>
|
||||
<para style="terp_default_9">[[ e2[0] not in ["Net"] and e2[0] ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_Right_8">
|
||||
<font face="Helvetica-Bold" size="7.0">[[ (e2[0] in ["Net"] and e2[1]!='' and formatLang(e2[1])) or removeParentNode('font') ]]</font>
|
||||
<font face="Helvetica" size="7.0">[[ (e2[0] not in ["Net"] and e2[1]!='' and formatLang(e2[1])) or removeParentNode('font') ]]</font>
|
||||
</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_Right_8">
|
||||
<font face="Helvetica-Bold" size="7.0">[[ (e2[0] in ["Net"] and e2[2]!='' and formatLang(e2[2])) or removeParentNode('font') ]]</font>
|
||||
<font face="Helvetica" size="7.0">[[ (e2[0] not in ["Net"] and e2[2]!='' and formatLang(e2[2])) or removeParentNode('font') ]]</font>
|
||||
</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_Right_8">
|
||||
<font face="Helvetica-Bold" size="7.0">[[ (e2[0] in ["Net"] and e2[3]!='' and formatLang(e2[3])) or removeParentNode('font') ]]</font>
|
||||
<font face="Helvetica" size="7.0">[[ (e2[0] not in ["Net"] and e2[3]!='' and formatLang(e2[3])) or removeParentNode('font') ]]</font>
|
||||
</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_Right_8">
|
||||
<font face="Helvetica-Bold" size="7.0">[[ (e2[0] in ["Net"] and e2[4]!='' and formatLang(e2[4])) or removeParentNode('font') ]]</font>
|
||||
<font face="Helvetica" size="7.0">[[ (e2[0] not in ["Net"] and e2[4]!='' and formatLang(e2[4])) or removeParentNode('font') ]]</font>
|
||||
</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_Right_8">
|
||||
<font face="Helvetica-Bold" size="7.0">[[ (e2[0] in ["Net"] and e2[5]!='' and formatLang(e2[5])) or removeParentNode('font') ]]</font>
|
||||
<font face="Helvetica" size="7.0">[[ (e2[0] not in ["Net"] and e2[5]!='' and formatLang(e2[5])) or removeParentNode('font') ]]</font>
|
||||
</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_Right_8">
|
||||
<font face="Helvetica-Bold" size="7.0">[[ (e2[0] in ["Net"] and e2[6]!='' and formatLang(e2[6])) or removeParentNode('font') ]]</font>
|
||||
<font face="Helvetica" size="7.0">[[ (e2[0] not in ["Net"] and e2[6]!='' and formatLang(e2[6])) or removeParentNode('font') ]]</font>
|
||||
</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_Right_8">
|
||||
<font face="Helvetica-Bold" size="7.0">[[ (e2[0] in ["Net"] and e2[7]!='' and formatLang(e2[7])) or removeParentNode('font') ]]</font>
|
||||
<font face="Helvetica" size="7.0">[[ (e2[0] not in ["Net"] and e2[7]!='' and formatLang(e2[7])) or removeParentNode('font') ]]</font>
|
||||
</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_Right_8">
|
||||
<font face="Helvetica-Bold" size="7.0">[[ (e2[0] in ["Net"] and e2[8]!='' and formatLang(e2[8])) or removeParentNode('font') ]]</font>
|
||||
<font face="Helvetica" size="7.0">[[ (e2[0] not in ["Net"] and e2[8]!='' and formatLang(e2[8])) or removeParentNode('font') ]]</font>
|
||||
</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_Right_8">
|
||||
<font face="Helvetica-Bold" size="7.0">[[ (e2[0] in ["Net"] and e2[9]!='' and formatLang(e2[9])) or removeParentNode('font') ]]</font>
|
||||
<font face="Helvetica" size="7.0">[[ (e2[0] not in ["Net"] and e2[9]!='' and formatLang(e2[9])) or removeParentNode('font') ]]</font>
|
||||
</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_Right_8">
|
||||
<font face="Helvetica-Bold" size="7.0">[[ (e2[0] in ["Net"] and e2[10]!='' and formatLang(e2[10])) or removeParentNode('font') ]]</font>
|
||||
<font face="Helvetica" size="7.0">[[ (e2[0] not in ["Net"] and e2[10]!='' and formatLang(e2[10])) or removeParentNode('font') ]]</font>
|
||||
</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_Right_8">
|
||||
<font face="Helvetica-Bold" size="7.0">[[ (e2[0] in ["Net"] and e2[11]!='' and formatLang(e2[11])) or removeParentNode('font') ]]</font>
|
||||
<font face="Helvetica" size="7.0">[[ (e2[0] not in ["Net"] and e2[11]!='' and formatLang(e2[11])) or removeParentNode('font') ]]</font>
|
||||
</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_Right_8">
|
||||
<font face="Helvetica-Bold" size="7.0">[[ (e2[0] in ["Net"] and e2[12]!='' and formatLang(e2[12])) or removeParentNode('font') ]]</font>
|
||||
<font face="Helvetica" size="7.0">[[ (e2[0] not in ["Net"] and e2[12]!='' and formatLang(e2[12])) or removeParentNode('font') ]]</font>
|
||||
</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_Right_9_Bold">[[ formatLang(e2[13]) ]] [[ company.currency_id.symbol ]]</para>
|
||||
</td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
</section>
|
||||
</section>
|
||||
<para style="terp_default_1">
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
</section>
|
||||
<para style="terp_default_9">
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
</story>
|
||||
</document>
|
|
@ -0,0 +1,82 @@
|
|||
#-*- coding:utf-8 -*-
|
||||
|
||||
##############################################################################
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2011 OpenERP SA (<http://openerp.com>). All Rights Reserved
|
||||
# d$
|
||||
#
|
||||
# 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 time
|
||||
from datetime import datetime
|
||||
|
||||
from report import report_sxw
|
||||
from tools import amount_to_text_en
|
||||
|
||||
class payroll_advice_report(report_sxw.rml_parse):
|
||||
|
||||
def __init__(self, cr, uid, name, context):
|
||||
super(payroll_advice_report, self).__init__(cr, uid, name, context=context)
|
||||
|
||||
self.localcontext.update({
|
||||
'time': time,
|
||||
'get_month': self.get_month,
|
||||
'convert': self.convert,
|
||||
'get_detail': self.get_detail,
|
||||
'get_bysal_total': self.get_bysal_total,
|
||||
})
|
||||
self.context = context
|
||||
|
||||
def get_month(self, input_date):
|
||||
payslip_pool = self.pool.get('hr.payslip')
|
||||
res = {
|
||||
'from_name': '', 'to_name': ''
|
||||
}
|
||||
slip_ids = payslip_pool.search(self.cr, self.uid, [('date_from','<=',input_date), ('date_to','>=',input_date)], context=self.context)
|
||||
if slip_ids:
|
||||
slip = payslip_pool.browse(self.cr, self.uid, slip_ids, context=self.context)[0]
|
||||
from_date = datetime.strptime(slip.date_from, '%Y-%m-%d')
|
||||
to_date = datetime.strptime(slip.date_to, '%Y-%m-%d')
|
||||
res['from_name']= from_date.strftime('%d')+'-'+from_date.strftime('%B')+'-'+from_date.strftime('%Y')
|
||||
res['to_name']= to_date.strftime('%d')+'-'+to_date.strftime('%B')+'-'+to_date.strftime('%Y')
|
||||
return res
|
||||
|
||||
def convert(self, amount, cur):
|
||||
return amount_to_text_en.amount_to_text(amount, 'en', cur);
|
||||
|
||||
def get_bysal_total(self):
|
||||
return self.total_bysal
|
||||
|
||||
def get_detail(self, line_ids):
|
||||
result = []
|
||||
self.total_bysal = 0.00
|
||||
for l in line_ids:
|
||||
res = {}
|
||||
res.update({
|
||||
'name': l.employee_id.name,
|
||||
'acc_no': l.name,
|
||||
'ifsc_code': l.ifsc_code,
|
||||
'bysal': l.bysal,
|
||||
'debit_credit': l.debit_credit,
|
||||
})
|
||||
self.total_bysal += l.bysal
|
||||
result.append(res)
|
||||
return result
|
||||
|
||||
report_sxw.report_sxw('report.payroll.advice', 'hr.payroll.advice', 'l10n_in_hr_payroll/report/report_payroll_advice.rml', parser=payroll_advice_report, header="external")
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
|
@ -0,0 +1,425 @@
|
|||
<?xml version="1.0"?>
|
||||
<document filename="test.pdf">
|
||||
<template pageSize="(595.0,842.0)" title="Test" author="Martin Simon" allowSplitting="20">
|
||||
<pageTemplate id="first">
|
||||
<frame id="first" x1="28.0" y1="28.0" width="539" height="786"/>
|
||||
</pageTemplate>
|
||||
</template>
|
||||
<stylesheet>
|
||||
<blockTableStyle id="Standard_Outline">
|
||||
<blockAlignment value="LEFT"/>
|
||||
<blockValign value="TOP"/>
|
||||
</blockTableStyle>
|
||||
<blockTableStyle id="Table1">
|
||||
<blockAlignment value="LEFT"/>
|
||||
<blockValign value="TOP"/>
|
||||
</blockTableStyle>
|
||||
<blockTableStyle id="Table2">
|
||||
<blockAlignment value="LEFT"/>
|
||||
<blockValign value="TOP"/>
|
||||
</blockTableStyle>
|
||||
<blockTableStyle id="Table3">
|
||||
<blockAlignment value="LEFT"/>
|
||||
<blockValign value="TOP"/>
|
||||
</blockTableStyle>
|
||||
<blockTableStyle id="Table4">
|
||||
<blockAlignment value="LEFT"/>
|
||||
<blockValign value="TOP"/>
|
||||
<lineStyle kind="LINEABOVE" colorName="#000000" start="0,0" stop="0,0"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#000000" start="0,-1" stop="0,-1"/>
|
||||
<lineStyle kind="LINEABOVE" colorName="#000000" start="1,0" stop="1,0"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#000000" start="1,-1" stop="1,-1"/>
|
||||
<lineStyle kind="LINEABOVE" colorName="#000000" start="2,0" stop="2,0"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#000000" start="2,-1" stop="2,-1"/>
|
||||
<lineStyle kind="LINEABOVE" colorName="#000000" start="3,0" stop="3,0"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#000000" start="3,-1" stop="3,-1"/>
|
||||
<lineStyle kind="LINEABOVE" colorName="#000000" start="4,0" stop="4,0"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#000000" start="4,-1" stop="4,-1"/>
|
||||
<lineStyle kind="LINEABOVE" colorName="#000000" start="5,0" stop="5,0"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#000000" start="5,-1" stop="5,-1"/>
|
||||
</blockTableStyle>
|
||||
<blockTableStyle id="Table5">
|
||||
<blockAlignment value="LEFT"/>
|
||||
<blockValign value="TOP"/>
|
||||
<lineStyle kind="LINEABOVE" colorName="#e6e6e6" start="0,0" stop="0,0"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="0,-1" stop="0,-1"/>
|
||||
<lineStyle kind="LINEABOVE" colorName="#e6e6e6" start="1,0" stop="1,0"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="1,-1" stop="1,-1"/>
|
||||
<lineStyle kind="LINEABOVE" colorName="#e6e6e6" start="2,0" stop="2,0"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="2,-1" stop="2,-1"/>
|
||||
<lineStyle kind="LINEABOVE" colorName="#e6e6e6" start="3,0" stop="3,0"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="3,-1" stop="3,-1"/>
|
||||
<lineStyle kind="LINEABOVE" colorName="#e6e6e6" start="4,0" stop="4,0"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="4,-1" stop="4,-1"/>
|
||||
<lineStyle kind="LINEABOVE" colorName="#e6e6e6" start="5,0" stop="5,0"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="5,-1" stop="5,-1"/>
|
||||
</blockTableStyle>
|
||||
<blockTableStyle id="Table6">
|
||||
<blockAlignment value="LEFT"/>
|
||||
<blockValign value="TOP"/>
|
||||
<lineStyle kind="LINEABOVE" colorName="#000000" start="0,0" stop="0,0"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#000000" start="0,-1" stop="0,-1"/>
|
||||
<lineStyle kind="LINEABOVE" colorName="#000000" start="1,0" stop="1,0"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#000000" start="1,-1" stop="1,-1"/>
|
||||
<lineStyle kind="LINEABOVE" colorName="#000000" start="2,0" stop="2,0"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#000000" start="2,-1" stop="2,-1"/>
|
||||
<lineStyle kind="LINEABOVE" colorName="#000000" start="3,0" stop="3,0"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#000000" start="3,-1" stop="3,-1"/>
|
||||
<lineStyle kind="LINEABOVE" colorName="#000000" start="4,0" stop="4,0"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#000000" start="4,-1" stop="4,-1"/>
|
||||
</blockTableStyle>
|
||||
<blockTableStyle id="Table7">
|
||||
<blockAlignment value="LEFT"/>
|
||||
<blockValign value="TOP"/>
|
||||
</blockTableStyle>
|
||||
<initialize>
|
||||
<paraStyle name="all" alignment="justify"/>
|
||||
</initialize>
|
||||
<paraStyle name="P1" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="JUSTIFY" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
<paraStyle name="P2" fontName="Helvetica-Bold" fontSize="6.0" leading="8" alignment="JUSTIFY" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
<paraStyle name="P3" rightIndent="-0.0" leftIndent="0.0" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="JUSTIFY" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
<paraStyle name="P4" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="JUSTIFY" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
<paraStyle name="P5" fontName="Helvetica" fontSize="8.0" leading="10" alignment="JUSTIFY" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
<paraStyle name="P6" fontName="Helvetica" fontSize="8.0" leading="10" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
<paraStyle name="P7" fontName="Helvetica" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
<paraStyle name="P8" fontName="Helvetica" fontSize="8.0" leading="10" alignment="JUSTIFY" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
<paraStyle name="P9" fontName="Helvetica-Bold" fontSize="12.0" leading="15" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
<paraStyle name="P10" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
<paraStyle name="P11" fontName="Helvetica" alignment="LEFT"/>
|
||||
<paraStyle name="P12" fontName="Helvetica" fontSize="8.0" leading="10" alignment="JUSTIFY" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
<paraStyle name="P13" rightIndent="-0.0" leftIndent="0.0" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="JUSTIFY" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
<paraStyle name="Standard" fontName="Helvetica"/>
|
||||
<paraStyle name="Heading" fontName="Helvetica" fontSize="12.0" leading="15" spaceBefore="12.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="Text body" fontName="Helvetica" spaceBefore="0.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="List" fontName="Helvetica" spaceBefore="0.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="Caption" fontName="Helvetica-Oblique" fontSize="12.0" leading="15" spaceBefore="6.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="Index" fontName="Helvetica"/>
|
||||
<paraStyle name="Table Contents" fontName="Helvetica"/>
|
||||
<paraStyle name="Table Heading" fontName="Helvetica" alignment="CENTER"/>
|
||||
<paraStyle name="terp_header" fontName="Helvetica-Bold" fontSize="15.0" leading="19" alignment="LEFT" spaceBefore="12.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="terp_default_8" fontName="Helvetica" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
<paraStyle name="terp_default_Bold_8" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
<paraStyle name="terp_default_Bold_9" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
<paraStyle name="terp_default_9" fontName="Helvetica" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
<paraStyle name="terp_tblheader_General" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="6.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="terp_tblheader_General_Centre" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
<paraStyle name="terp_default_Centre_8" fontName="Helvetica" fontSize="8.0" leading="10" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
<paraStyle name="terp_tblheader_Details" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
<paraStyle name="Footer" fontName="Helvetica"/>
|
||||
<paraStyle name="Horizontal Line" fontName="Helvetica" fontSize="6.0" leading="8" spaceBefore="0.0" spaceAfter="14.0"/>
|
||||
<paraStyle name="Heading 9" fontName="Helvetica-Bold" fontSize="75%" leading="NaN" spaceBefore="12.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="terp_tblheader_General_Right" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
<paraStyle name="terp_tblheader_Details_Centre" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
<paraStyle name="terp_tblheader_Details_Right" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
<paraStyle name="terp_default_Right_8" fontName="Helvetica" fontSize="8.0" leading="10" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
<paraStyle name="terp_header_Right" fontName="Helvetica-Bold" fontSize="15.0" leading="19" alignment="LEFT" spaceBefore="12.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="terp_header_Centre" fontName="Helvetica-Bold" fontSize="15.0" leading="19" alignment="CENTER" spaceBefore="12.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="terp_default_0.30cmspace" fontName="Helvetica" fontSize="10.0" leading="13" alignment="LEFT" spaceBefore="9.0" spaceAfter="0.0"/>
|
||||
<paraStyle name="terp_default_Centre_9" fontName="Helvetica" fontSize="9.0" leading="11" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
<paraStyle name="terp_default_Right_9" fontName="Helvetica" fontSize="8.0" leading="10" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
<paraStyle name="terp_default_1" fontName="Helvetica" fontSize="4.0" leading="5" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
<paraStyle name="terp_default_Right_9_Bold" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
<paraStyle name="terp_default_8_space" fontName="Helvetica-Oblique" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="1.0"/>
|
||||
<paraStyle name="Drawing" fontName="Helvetica-Oblique" fontSize="12.0" leading="15" spaceBefore="6.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="Header" fontName="Helvetica"/>
|
||||
<paraStyle name="Endnote" rightIndent="0.0" leftIndent="14.0" fontName="Helvetica" fontSize="10.0" leading="13" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
<paraStyle name="Addressee" fontName="Helvetica" spaceBefore="0.0" spaceAfter="3.0"/>
|
||||
<paraStyle name="Signature" fontName="Helvetica"/>
|
||||
<paraStyle name="Heading 8" fontName="Helvetica-Bold" fontSize="75%" leading="NaN" spaceBefore="12.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="Heading 7" fontName="Helvetica-Bold" fontSize="75%" leading="NaN" spaceBefore="12.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="Heading 6" fontName="Helvetica-Bold" fontSize="75%" leading="NaN" spaceBefore="12.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="Heading 5" fontName="Helvetica-Bold" fontSize="85%" leading="NaN" spaceBefore="12.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="Heading 4" fontName="Helvetica-BoldOblique" fontSize="85%" leading="NaN" spaceBefore="12.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="Heading 1" fontName="Helvetica-Bold" fontSize="115%" leading="NaN" spaceBefore="12.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="Heading 10" fontName="Helvetica-Bold" fontSize="75%" leading="NaN" spaceBefore="12.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="Heading 2" fontName="Helvetica-BoldOblique" fontSize="14.0" leading="17" spaceBefore="12.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="First line indent" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
<paraStyle name="Hanging indent" rightIndent="0.0" leftIndent="28.0" fontName="Helvetica" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
<paraStyle name="Salutation" fontName="Helvetica"/>
|
||||
<paraStyle name="Text body indent" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
<paraStyle name="Heading 3" fontName="Helvetica-Bold" fontSize="14.0" leading="17" spaceBefore="12.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="List Indent" rightIndent="0.0" leftIndent="142.0" fontName="Helvetica" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
<paraStyle name="Marginalia" rightIndent="0.0" leftIndent="113.0" fontName="Helvetica" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
<images/>
|
||||
</stylesheet>
|
||||
<story>
|
||||
<para style="terp_default_8">[[repeatIn(objects,'o')]]</para>
|
||||
<blockTable colWidths="234.0,305.0" style="Table1">
|
||||
<tr>
|
||||
<td>
|
||||
<para style="P7">[[ formatLang(time.strftime('%Y-%m-%d'),date=True) ]]</para>
|
||||
<para style="P9"/>
|
||||
<para style="terp_default_9">
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="P6">
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<para style="terp_default_Bold_9">To, </para>
|
||||
<para style="terp_default_Bold_9">The Manager</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_Bold_9">
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<para style="terp_default_Bold_9">[[ o.bank_id.name ]] Bank</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_Bold_9">
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<para style="terp_default_1">
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
<para style="terp_default_9">Dear Sir/Madam,</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_9">
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
</td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
<blockTable colWidths="539.0" style="Table2">
|
||||
<tr>
|
||||
<td>
|
||||
<para style="P10">Payment Advice from [[ o.name ]] A/C no. [[ o.company_id.bank_ids and o.company_id.bank_ids[0].acc_number ]] form period [[ get_month(o.date)['from_name'] ]] to [[ get_month(o.date)['to_name'] ]]</para>
|
||||
</td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
<blockTable colWidths="539.0" style="Table3">
|
||||
<tr>
|
||||
<td>
|
||||
<para style="terp_default_9">[[ o.note ]] </para>
|
||||
</td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
<para style="terp_default_8_space">
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
<blockTable colWidths="47.0,146.0,158.0,105.0,83.0" style="Table4">[[ o.neft == True and removeParentNode('blockTable') ]]
|
||||
<tr>
|
||||
<td>
|
||||
<para style="P1">SI. No.</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="P1">Name of the Employe</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="P3">Bank Account No.</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="P3">By Salary</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="P3">C/D</para>
|
||||
</td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
<section>
|
||||
<para style="terp_default_8">[[ repeatIn(get_detail(o.line_ids),'line') ]]</para>
|
||||
<blockTable colWidths="47.0,146.0,158.0,105.0,83.0" style="Table5">[[ o.neft == True and removeParentNode('blockTable') ]]
|
||||
<tr>
|
||||
<td>
|
||||
<para style="P11" leftIndent="15" bulletIndent="0">
|
||||
<bullet><seq id="L1"/>.</bullet>
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="P8">[[ line['name'] ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="P5">[[ line['acc_no'] ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="P8">[[formatLang(line['bysal'])]] [[ (company.currency_id and company.currency_id.symbol) or '' ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="P5">[[ line['debit_credit'] ]]</para>
|
||||
</td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
</section>
|
||||
<blockTable colWidths="40.0,129.0,141.0,104.0,77.0,49.0" style="Table4">[[ o.neft != True and removeParentNode('blockTable') ]]
|
||||
<tr>
|
||||
<td>
|
||||
<para style="P1">SI. No.</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="P1">Name of the Employe</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="P3">Bank Account No.</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="P3">IFSC Code</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="P3">By Salary</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="P3">C/D</para>
|
||||
</td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
<section>
|
||||
<para style="terp_default_8">[[ repeatIn(get_detail(o.line_ids),'line') ]]</para>
|
||||
<blockTable colWidths="39.0,129.0,140.0,104.0,78.0,49.0" style="Table5">[[ o.neft !=True and removeParentNode('blockTable') ]]
|
||||
<tr>
|
||||
<td>
|
||||
<para style="P11" leftIndent="15" bulletIndent="0">
|
||||
<bullet><seq id="L1"/>.</bullet>
|
||||
</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="P8">[[ line['name'] ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="P5">[[ line['acc_no'] ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="P5">[[ line['ifsc_code'] ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="P8">[[formatLang(line['bysal'])]] [[ (company.currency_id and company.currency_id.symbol) or '' ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="P5">[[ line['debit_credit'] ]]</para>
|
||||
</td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
</section>
|
||||
<blockTable colWidths="50.0,144.0,158.0,107.0,80.0" style="Table6">[[ o.neft == True and removeParentNode('blockTable') ]]
|
||||
<tr>
|
||||
<td>
|
||||
<para style="terp_tblheader_Details">
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="P2">
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="P1">Total : <font face="Helvetica" size="6.0">[[ o.line_ids==[] and removeParentNode('para') ]]</font></para>
|
||||
<para style="P4"/>
|
||||
</td>
|
||||
<td>
|
||||
<para style="P4"><font face="Helvetica" size="6.0">[[ o.line_ids==[] and removeParentNode('para') ]]</font>[[ formatLang(get_bysal_total()) ]] [[ (company.currency_id and company.currency_id.symbol) or '' ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="P4">
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
</td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
<blockTable colWidths="50.0,119.0,244.0,99.0,27.0" style="Table6">[[ o.neft !=True and removeParentNode('blockTable') ]]
|
||||
<tr>
|
||||
<td>
|
||||
<para style="terp_tblheader_Details">
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="P2">
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="P1">Total : <font face="Helvetica" size="6.0">[[ o.line_ids==[] and removeParentNode('para') ]]</font></para>
|
||||
<para style="P4"/>
|
||||
</td>
|
||||
<td>
|
||||
<para style="P4"><font face="Helvetica" size="6.0">[[ o.line_ids==[] and removeParentNode('para') ]]</font>[[ formatLang(get_bysal_total()) ]] [[ (company.currency_id and company.currency_id.symbol) or '' ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="P4">
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
</td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
<para style="terp_default_0.30cmspace">
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
<blockTable colWidths="269.0,269.0" style="Table7">
|
||||
<tr>
|
||||
<td>
|
||||
<para style="terp_default_9">Yours Sincerely</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_tblheader_Details">
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<para style="terp_default_9">For [[ company.name ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_tblheader_Details">
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<para style="terp_default_9">
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_tblheader_Details">
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<para style="terp_default_9">
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_tblheader_Details">
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<para style="terp_default_9">Authorized Signature</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_tblheader_Details">
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
</td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
<para style="terp_default_9">
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
<para>
|
||||
<seqReset id="L1"/>
|
||||
</para>
|
||||
</story>
|
||||
</document>
|
|
@ -0,0 +1,35 @@
|
|||
#-*- coding:utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2011 OpenERP SA (<http://openerp.com>). All Rights Reserved
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
from report import report_sxw
|
||||
from hr_payroll import report
|
||||
|
||||
class payslip_details_report_in(report.report_payslip_details.payslip_details_report):
|
||||
|
||||
def __init__(self, cr, uid, name, context):
|
||||
super(payslip_details_report_in, self).__init__(cr, uid, name, context)
|
||||
self.localcontext.update({
|
||||
'get_details_by_rule_category': self.get_details_by_rule_category,
|
||||
})
|
||||
|
||||
report_sxw.report_sxw('report.paylip.details.in', 'hr.payslip', 'l10n_in_hr_payroll/report/report_payslip_details.rml', parser=payslip_details_report_in)
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
|
@ -0,0 +1,372 @@
|
|||
<?xml version="1.0"?>
|
||||
<document filename="test.pdf">
|
||||
<template pageSize="(595.0,842.0)" title="Test" author="Martin Simon" allowSplitting="20">
|
||||
<pageTemplate id="first">
|
||||
<frame id="first" x1="28.0" y1="28.0" width="539" height="786"/>
|
||||
</pageTemplate>
|
||||
</template>
|
||||
<stylesheet>
|
||||
<blockTableStyle id="Standard_Outline">
|
||||
<blockAlignment value="LEFT"/>
|
||||
<blockValign value="TOP"/>
|
||||
</blockTableStyle>
|
||||
<blockTableStyle id="Table1">
|
||||
<blockAlignment value="LEFT"/>
|
||||
<blockValign value="TOP"/>
|
||||
</blockTableStyle>
|
||||
<blockTableStyle id="Table2">
|
||||
<blockAlignment value="LEFT"/>
|
||||
<blockValign value="TOP"/>
|
||||
<lineStyle kind="LINEBEFORE" colorName="#cccccc" start="0,0" stop="0,-1"/>
|
||||
<lineStyle kind="LINEABOVE" colorName="#cccccc" start="0,0" stop="0,0"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="0,-1" stop="0,-1"/>
|
||||
<lineStyle kind="LINEBEFORE" colorName="#cccccc" start="1,0" stop="1,-1"/>
|
||||
<lineStyle kind="LINEABOVE" colorName="#cccccc" start="1,0" stop="1,0"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="1,-1" stop="1,-1"/>
|
||||
<lineStyle kind="LINEBEFORE" colorName="#cccccc" start="2,0" stop="2,-1"/>
|
||||
<lineStyle kind="LINEABOVE" colorName="#cccccc" start="2,0" stop="2,0"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="2,-1" stop="2,-1"/>
|
||||
<lineStyle kind="LINEBEFORE" colorName="#cccccc" start="3,0" stop="3,-1"/>
|
||||
<lineStyle kind="LINEAFTER" colorName="#cccccc" start="3,0" stop="3,-1"/>
|
||||
<lineStyle kind="LINEABOVE" colorName="#cccccc" start="3,0" stop="3,0"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="3,-1" stop="3,-1"/>
|
||||
</blockTableStyle>
|
||||
<blockTableStyle id="Table3">
|
||||
<blockAlignment value="LEFT"/>
|
||||
<blockValign value="TOP"/>
|
||||
<lineStyle kind="LINEBEFORE" colorName="#cccccc" start="0,0" stop="0,-1"/>
|
||||
<lineStyle kind="LINEABOVE" colorName="#cccccc" start="0,0" stop="0,0"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="0,-1" stop="0,-1"/>
|
||||
<lineStyle kind="LINEBEFORE" colorName="#cccccc" start="1,0" stop="1,-1"/>
|
||||
<lineStyle kind="LINEAFTER" colorName="#cccccc" start="1,0" stop="1,-1"/>
|
||||
<lineStyle kind="LINEABOVE" colorName="#cccccc" start="1,0" stop="1,0"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="1,-1" stop="1,-1"/>
|
||||
</blockTableStyle>
|
||||
<blockTableStyle id="Table4">
|
||||
<blockAlignment value="LEFT"/>
|
||||
<blockValign value="TOP"/>
|
||||
<lineStyle kind="LINEBEFORE" colorName="#cccccc" start="0,0" stop="0,-1"/>
|
||||
<lineStyle kind="LINEABOVE" colorName="#cccccc" start="0,0" stop="0,0"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="0,-1" stop="0,-1"/>
|
||||
<lineStyle kind="LINEBEFORE" colorName="#cccccc" start="1,0" stop="1,-1"/>
|
||||
<lineStyle kind="LINEABOVE" colorName="#cccccc" start="1,0" stop="1,0"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="1,-1" stop="1,-1"/>
|
||||
<lineStyle kind="LINEBEFORE" colorName="#cccccc" start="2,0" stop="2,-1"/>
|
||||
<lineStyle kind="LINEABOVE" colorName="#cccccc" start="2,0" stop="2,0"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="2,-1" stop="2,-1"/>
|
||||
<lineStyle kind="LINEBEFORE" colorName="#cccccc" start="3,0" stop="3,-1"/>
|
||||
<lineStyle kind="LINEAFTER" colorName="#cccccc" start="3,0" stop="3,-1"/>
|
||||
<lineStyle kind="LINEABOVE" colorName="#cccccc" start="3,0" stop="3,0"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="3,-1" stop="3,-1"/>
|
||||
</blockTableStyle>
|
||||
<blockTableStyle id="Table5">
|
||||
<blockAlignment value="LEFT"/>
|
||||
<blockValign value="TOP"/>
|
||||
<lineStyle kind="LINEBEFORE" colorName="#cccccc" start="0,0" stop="0,-1"/>
|
||||
<lineStyle kind="LINEABOVE" colorName="#cccccc" start="0,0" stop="0,0"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="0,-1" stop="0,-1"/>
|
||||
<lineStyle kind="LINEBEFORE" colorName="#cccccc" start="1,0" stop="1,-1"/>
|
||||
<lineStyle kind="LINEABOVE" colorName="#cccccc" start="1,0" stop="1,0"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="1,-1" stop="1,-1"/>
|
||||
<lineStyle kind="LINEBEFORE" colorName="#cccccc" start="2,0" stop="2,-1"/>
|
||||
<lineStyle kind="LINEABOVE" colorName="#cccccc" start="2,0" stop="2,0"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="2,-1" stop="2,-1"/>
|
||||
<lineStyle kind="LINEBEFORE" colorName="#cccccc" start="3,0" stop="3,-1"/>
|
||||
<lineStyle kind="LINEAFTER" colorName="#cccccc" start="3,0" stop="3,-1"/>
|
||||
<lineStyle kind="LINEABOVE" colorName="#cccccc" start="3,0" stop="3,0"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="3,-1" stop="3,-1"/>
|
||||
</blockTableStyle>
|
||||
<blockTableStyle id="Table6">
|
||||
<blockAlignment value="LEFT"/>
|
||||
<blockValign value="TOP"/>
|
||||
<lineStyle kind="LINEBEFORE" colorName="#cccccc" start="0,0" stop="0,-1"/>
|
||||
<lineStyle kind="LINEABOVE" colorName="#cccccc" start="0,0" stop="0,0"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="0,-1" stop="0,-1"/>
|
||||
<lineStyle kind="LINEBEFORE" colorName="#cccccc" start="1,0" stop="1,-1"/>
|
||||
<lineStyle kind="LINEABOVE" colorName="#cccccc" start="1,0" stop="1,0"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="1,-1" stop="1,-1"/>
|
||||
<lineStyle kind="LINEBEFORE" colorName="#cccccc" start="2,0" stop="2,-1"/>
|
||||
<lineStyle kind="LINEABOVE" colorName="#cccccc" start="2,0" stop="2,0"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="2,-1" stop="2,-1"/>
|
||||
<lineStyle kind="LINEBEFORE" colorName="#cccccc" start="3,0" stop="3,-1"/>
|
||||
<lineStyle kind="LINEAFTER" colorName="#cccccc" start="3,0" stop="3,-1"/>
|
||||
<lineStyle kind="LINEABOVE" colorName="#cccccc" start="3,0" stop="3,0"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="3,-1" stop="3,-1"/>
|
||||
</blockTableStyle>
|
||||
<blockTableStyle id="Table10">
|
||||
<blockAlignment value="LEFT"/>
|
||||
<blockValign value="TOP"/>
|
||||
</blockTableStyle>
|
||||
<blockTableStyle id="Table11">
|
||||
<blockAlignment value="LEFT"/>
|
||||
<blockValign value="TOP"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#000000" start="0,-1" stop="0,-1"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#000000" start="1,-1" stop="1,-1"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#000000" start="2,-1" stop="2,-1"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#000000" start="3,-1" stop="3,-1"/>
|
||||
</blockTableStyle>
|
||||
<blockTableStyle id="Table12">
|
||||
<blockAlignment value="LEFT"/>
|
||||
<blockValign value="TOP"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="0,-1" stop="0,-1"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="1,-1" stop="1,-1"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="2,-1" stop="2,-1"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="3,-1" stop="3,-1"/>
|
||||
</blockTableStyle>
|
||||
<blockTableStyle id="Table8">
|
||||
<blockAlignment value="LEFT"/>
|
||||
<blockValign value="TOP"/>
|
||||
</blockTableStyle>
|
||||
<blockTableStyle id="Table7">
|
||||
<blockAlignment value="LEFT"/>
|
||||
<blockValign value="TOP"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#000000" start="0,-1" stop="0,-1"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#000000" start="1,-1" stop="1,-1"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#000000" start="2,-1" stop="2,-1"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#000000" start="3,-1" stop="3,-1"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#000000" start="4,-1" stop="4,-1"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#000000" start="5,-1" stop="5,-1"/>
|
||||
</blockTableStyle>
|
||||
<blockTableStyle id="Table16">
|
||||
<blockAlignment value="LEFT"/>
|
||||
<blockValign value="TOP"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="0,-1" stop="0,-1"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="1,-1" stop="1,-1"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="2,-1" stop="2,-1"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="3,-1" stop="3,-1"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="4,-1" stop="4,-1"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="5,-1" stop="5,-1"/>
|
||||
</blockTableStyle>
|
||||
<blockTableStyle id="Table13">
|
||||
<blockAlignment value="LEFT"/>
|
||||
<blockValign value="TOP"/>
|
||||
</blockTableStyle>
|
||||
<initialize>
|
||||
<paraStyle name="all" alignment="justify"/>
|
||||
</initialize>
|
||||
<paraStyle name="P1" fontName="Helvetica" fontSize="2.0" leading="3"/>
|
||||
<paraStyle name="P2" fontName="Helvetica" fontSize="2.0" leading="3"/>
|
||||
<paraStyle name="P3" rightIndent="-56.0" leftIndent="0.0" fontName="Helvetica" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
<paraStyle name="P4" rightIndent="-56.0" leftIndent="0.0" fontName="Helvetica" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
<paraStyle name="P5" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
<paraStyle name="P6" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica" fontSize="8.0" leading="10" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
<paraStyle name="P7" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
<paraStyle name="P8" fontName="Helvetica-Bold" fontSize="14.0" leading="17" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
<paraStyle name="P9" fontName="Helvetica" fontSize="8.0" leading="10" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
<paraStyle name="P10" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
<paraStyle name="P11" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica-Bold" fontSize="2.0" leading="3" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
<paraStyle name="P12" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
<paraStyle name="P13" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="LEFT"/>
|
||||
<paraStyle name="P14" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="RIGHT"/>
|
||||
<paraStyle name="P15" fontName="Helvetica-Bold" fontSize="8.0" leading="10"/>
|
||||
<paraStyle name="P16" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
<paraStyle name="P17" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
<paraStyle name="P18" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
<paraStyle name="P19" fontName="Helvetica" fontSize="2.0" leading="3" alignment="LEFT"/>
|
||||
<paraStyle name="P20" fontName="Helvetica" fontSize="2.0" leading="3"/>
|
||||
<paraStyle name="P21" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
<paraStyle name="P22" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="LEFT"/>
|
||||
<paraStyle name="P23" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="RIGHT"/>
|
||||
<paraStyle name="P24" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
<paraStyle name="P25" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
<paraStyle name="P26" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
<paraStyle name="Standard" fontName="Helvetica"/>
|
||||
<paraStyle name="Heading" fontName="Helvetica" fontSize="14.0" leading="17" spaceBefore="12.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="Text body" fontName="Helvetica" spaceBefore="0.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="List" fontName="Helvetica" spaceBefore="0.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="Caption" fontName="Helvetica" fontSize="12.0" leading="15" spaceBefore="6.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="Index" fontName="Helvetica"/>
|
||||
<paraStyle name="terp_header" fontName="Helvetica-Bold" fontSize="12.0" leading="15" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
<paraStyle name="terp_default_8" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
<paraStyle name="terp_default_space" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
<paraStyle name="terp_header_Centre" fontName="Helvetica-Bold" fontSize="14.0" leading="17" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
<paraStyle name="terp_default_Centre_8" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica" fontSize="8.0" leading="10" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
<paraStyle name="terp_default_Centre_9" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica" fontSize="8.0" leading="10" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
<paraStyle name="terp_default_9" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
<paraStyle name="terp_default_Bold_8" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
<paraStyle name="terp_default_Bold_9" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
<paraStyle name="terp_default_10" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
<paraStyle name="Table Contents" fontName="Helvetica"/>
|
||||
<paraStyle name="terp_tblheader_Details" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
<paraStyle name="terp_tblheader_Details_Right" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
<paraStyle name="terp_tblheader_General" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="6.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="Table Heading" fontName="Helvetica" alignment="CENTER"/>
|
||||
<paraStyle name="payslip_adj" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
<images/>
|
||||
</stylesheet>
|
||||
<story>
|
||||
<para style="P3">[[repeatIn(objects,'o')]]</para>
|
||||
<blockTable colWidths="539.0" style="Table1">
|
||||
<tr>
|
||||
<td>
|
||||
<para style="P8">Pay Slip Details</para>
|
||||
</td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
<para style="terp_header_Centre">
|
||||
<font face="Helvetica" size="6.0">[[o.credit_note==False and removeParentNode('para')]]</font>
|
||||
<font face="Helvetica-Bold" size="14.0">Credit</font>
|
||||
<font face="Helvetica" size="14.0"/>
|
||||
<font face="Helvetica-Bold" size="14.0">Note</font>
|
||||
</para>
|
||||
<para style="P9">([[o.name or removeParentNode('para')]])</para>
|
||||
<blockTable colWidths="63.0,206.0,89.0,181.0" style="Table2">
|
||||
<tr>
|
||||
<td>
|
||||
<para style="P16">Name</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="P16">[[o.employee_id.name]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="P16">Designation </para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="P5">[[ o.employee_id.job_id.name or '' ]]</para>
|
||||
</td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
<blockTable colWidths="63.0,476.0" style="Table3">
|
||||
<tr>
|
||||
<td>
|
||||
<para style="terp_default_Bold_8">
|
||||
<font face="Helvetica">Address </font>
|
||||
</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="P5">[[o.employee_id.address_home_id and o.employee_id.address_home_id.name or '' ]],[[o.employee_id.address_home_id and o.employee_id.address_home_id.street or '' ]],[[o.employee_id.address_home_id and o.employee_id.address_home_id.street2 or '' ]],[[o.employee_id.address_home_id and o.employee_id.address_home_id.zip or '' ]],[[o.employee_id.address_home_id and o.employee_id.address_home_id.city or '' ]],[[o.employee_id.address_home_id and o.employee_id.address_home_id.state_id and o.employee_id.address_home_id.state_id.name or '' ]] [[o.employee_id.address_home_id and o.employee_id.address_home_id.country_id and o.employee_id.address_home_id.country_id.name or '' ]]</para>
|
||||
</td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
<blockTable colWidths="63.0,206.0,89.0,181.0" style="Table4">
|
||||
<tr>
|
||||
<td>
|
||||
<para style="P16">Email</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="P5">[[ o.employee_id.work_email or '' ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_Bold_8">
|
||||
<font face="Helvetica">Identification No</font>
|
||||
</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="P5">[[ o.employee_id.identification_id or '' ]]</para>
|
||||
</td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
<blockTable colWidths="63.0,206.0,89.0,181.0" style="Table5">
|
||||
<tr>
|
||||
<td>
|
||||
<para style="P16">Reference</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="P5">[[ o.number or '' ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="P16">Bank Account</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="P5">[[ o.employee_id.otherid or '' ]]</para>
|
||||
</td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
<blockTable colWidths="63.0,206.0,89.0,181.0" style="Table6">
|
||||
<tr>
|
||||
<td>
|
||||
<para style="P16">Date From</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="P5">[[ o.date_from or '']]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_Bold_8">
|
||||
<font face="Helvetica" size="8.0">Date To</font>
|
||||
</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="P5">[[ o.date_to or '' ]]</para>
|
||||
</td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
<para style="P7"/>
|
||||
<para style="P11">
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
<para style="P5">
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
<blockTable colWidths="539.0" style="Table10">
|
||||
<tr>
|
||||
<td>
|
||||
<para style="P10">Details by Salary Rule Category: </para>
|
||||
</td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
<blockTable colWidths="54.0,388.0,97.0" style="Table11">
|
||||
<tr>
|
||||
<td>
|
||||
<para style="P15">Code</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="P15">Salary Rule Category</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="P14">Total</para>
|
||||
</td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
<para style="P1">
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
<section>
|
||||
<para style="P16">[[repeatIn(get_details_by_rule_category(o.details_by_salary_rule_category),'h') ]]</para>
|
||||
<blockTable colWidths="54.0,388.0,97.0" style="Table12">
|
||||
<tr>
|
||||
<td>
|
||||
<para style="P16">
|
||||
<font face="Helvetica">[[ h['code'] ]]</font>
|
||||
<font face="Helvetica">[[ h['level']!=0 and ( setTag('para','para',{'style':'terp_default_8'})) or removeParentNode('font')]]</font>
|
||||
</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="P17"><font face="Helvetica" color="white">[[ '..'*h['level'] ]]</font>[[ h['rule_category'] ]]<font face="Helvetica">[[ h['level']!=0 and ( setTag('para','para',{'style':'terp_default_8'})) or removeParentNode('font') ]]</font></para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="P6">[[ formatLang(h['total']) ]] [[o.company_id and o.company_id.currency_id.symbol or '']] <font face="Helvetica" size="8.0">[[ h['level']==0 and ( setTag('para','para',{'style':'terp_default_10'})) or removeParentNode('font') ]]</font></para>
|
||||
</td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
</section>
|
||||
<para style="P7">
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
|
||||
<blockTable colWidths="269.0,269.0" style="Table13">
|
||||
<tr>
|
||||
<td>
|
||||
<para style="P5">
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="P12">
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
<para style="P12">
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
<para style="P12">
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
<para style="P12">Authorized Signature </para>
|
||||
</td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
<para style="P4">
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
</story>
|
||||
</document>
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
|
||||
"access_hr_payroll_advice_user","hr.payroll.advice","model_hr_payroll_advice","base.group_hr_user",1,1,1,1
|
||||
"access_hr_payroll_advice_line_user","hr.payroll.advice.line","model_hr_payroll_advice_line","base.group_hr_user",1,1,1,1
|
||||
"access_hr_payroll_advice_report_user","payment.advice.report","model_payment_advice_report","base.group_hr_manager",1,1,1,1
|
||||
"access_hr_payroll_payslip_report_user","payslip.report","model_payslip_report","base.group_hr_manager",1,1,1,1
|
|
Binary file not shown.
After Width: | Height: | Size: 2.5 KiB |
|
@ -0,0 +1,41 @@
|
|||
-
|
||||
In order to test Payment Advice I create a new Payment Advice
|
||||
-
|
||||
I create a new Payment Advice with NEFT Transaction Enable
|
||||
-
|
||||
!record {model: hr.payroll.advice, id: payment_advice_1}:
|
||||
name: 'NEFT Advice'
|
||||
bank_id: base.res_bank_1
|
||||
line_ids:
|
||||
- employee_id: hr.employee_fp
|
||||
name: '90125452552'
|
||||
ifsc_code: 'abn45215145'
|
||||
bysal: 25000.00
|
||||
- employee_id: hr.employee_al
|
||||
name: '00014521111232'
|
||||
ifsc_code: 'sbi45452145'
|
||||
bysal: 20000.00
|
||||
-
|
||||
I check that the Payment Advice is in "Draft"
|
||||
-
|
||||
!assert {model: hr.payroll.advice, id: payment_advice_1}:
|
||||
- state == 'draft'
|
||||
-
|
||||
Now I confirm Payment Advice
|
||||
-
|
||||
!python {model: hr.payroll.advice}: |
|
||||
self.confirm_sheet(cr, uid, [ref('payment_advice_1')])
|
||||
-
|
||||
I check that the Payment Advice state is "Confirmed"
|
||||
-
|
||||
!python {model: hr.payroll.advice}: |
|
||||
advice = self.browse(cr, uid, ref("payment_advice_1"))
|
||||
assert (advice.state == 'confirm')
|
||||
-
|
||||
In order to test the PDF report defined on a Payment Advice, we will print a Print Advice Report when NEFT is checked
|
||||
-
|
||||
!python {model: hr.payroll.advice}: |
|
||||
import netsvc, tools, os
|
||||
(data, format) = netsvc.LocalService('report.payroll.advice').create(cr, uid, [ref('l10n_in_hr_payroll.payment_advice_1')], {})
|
||||
if tools.config['test_report_directory']:
|
||||
file(os.path.join(tools.config['test_report_directory'], 'l10n_in_hr_payroll_summary report'+format), 'wb+').write(data)
|
|
@ -0,0 +1,61 @@
|
|||
-
|
||||
In order to test Payment Advice Creation from Payslip Bacth I create New Payslip Batch
|
||||
-
|
||||
I Create a bank record
|
||||
-
|
||||
!record {model: res.partner.bank, id: res_partner_bank_0}:
|
||||
acc_number: '3025632343043'
|
||||
partner_id: base.res_partner_21
|
||||
state: bank
|
||||
bank: base.res_bank_1
|
||||
-
|
||||
I create a new employee “Rahul”
|
||||
-
|
||||
!record {model: hr.employee, id: hr_employee_rahul0}:
|
||||
country_id: base.in
|
||||
department_id: hr.dep_rd
|
||||
name: Rahul
|
||||
bank_account_id: res_partner_bank_0
|
||||
-
|
||||
I want to generate a payslip from Payslip Batch.
|
||||
-
|
||||
!record {model: hr.payslip.run, id: hr_payslip_run_forAdvice}:
|
||||
name: Payslip Batch
|
||||
-
|
||||
I create record for generating the Payslip for Payslip Batch.
|
||||
-
|
||||
!record {model: hr.payslip.employees, id: hr_payslip_employees}:
|
||||
employee_ids:
|
||||
- hr_employee_rahul0
|
||||
-
|
||||
I generate the payslip by clicking on Generate button wizard.
|
||||
-
|
||||
!python {model: hr.payslip.employees}: |
|
||||
self.compute_sheet(cr, uid, [ref('hr_payslip_employees')], context={'active_id': ref('hr_payslip_run_forAdvice')})
|
||||
-
|
||||
I check that the Payslip Batch is in "Draft"
|
||||
-
|
||||
!assert {model: hr.payslip.run, id: hr_payslip_run_forAdvice}:
|
||||
- state == 'draft'
|
||||
-
|
||||
Now I close Payslip Batch
|
||||
-
|
||||
!python {model: hr.payslip.run}: |
|
||||
self.close_payslip_run(cr, uid, [ref('hr_payslip_run_forAdvice')])
|
||||
-
|
||||
I check that the Payslip Batch is "Close"
|
||||
-
|
||||
!python {model: hr.payslip.run}: |
|
||||
batch = self.browse(cr, uid, ref("hr_payslip_run_forAdvice"))
|
||||
assert (batch.state == 'close')
|
||||
-
|
||||
I create Advice from Payslip Batch using Create Advice button
|
||||
-
|
||||
!python {model: hr.payslip.run}: |
|
||||
self.create_advice(cr, uid, [ref('hr_payslip_run_forAdvice')])
|
||||
-
|
||||
I check for Advice is created from Payslip Batch
|
||||
-
|
||||
!python {model: hr.payroll.advice}: |
|
||||
advice_ids = self.search(cr, uid, [('batch_id','=',ref('hr_payslip_run_forAdvice'))])
|
||||
assert advice_ids,"Advice is not created from Payslip Batch."
|
|
@ -0,0 +1,25 @@
|
|||
# -*- 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 hr_salary_employee_bymonth
|
||||
import hr_yearly_salary_detail
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
|
@ -0,0 +1,71 @@
|
|||
#-*- coding:utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2011 OpenERP SA (<http://openerp.com>). All Rights Reserved
|
||||
#
|
||||
# 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 time
|
||||
|
||||
from osv import osv, fields
|
||||
|
||||
class hr_salary_employee_bymonth(osv.osv_memory):
|
||||
|
||||
_name = 'hr.salary.employee.month'
|
||||
_description = 'Hr Salary Employee By Month Report'
|
||||
_columns = {
|
||||
'start_date': fields.date('Start Date', required=True),
|
||||
'end_date': fields.date('End Date', required=True),
|
||||
'employee_ids': fields.many2many('hr.employee', 'payroll_year_rel', 'payroll_year_id', 'employee_id', 'Employees', required=True),
|
||||
'category_id': fields.many2one('hr.salary.rule.category', 'Category', required=True),
|
||||
}
|
||||
|
||||
def _get_default_category(self, cr, uid, context=None):
|
||||
category_ids = self.pool.get('hr.salary.rule.category').search(cr, uid, [('code', '=', 'NET')], context=context)
|
||||
return category_ids and category_ids[0] or False
|
||||
|
||||
_defaults = {
|
||||
'start_date': lambda *a: time.strftime('%Y-01-01'),
|
||||
'end_date': lambda *a: time.strftime('%Y-%m-%d'),
|
||||
'category_id': _get_default_category
|
||||
}
|
||||
|
||||
def print_report(self, cr, uid, ids, context=None):
|
||||
"""
|
||||
To get the date and print the report
|
||||
@param self: The object pointer.
|
||||
@param cr: A database cursor
|
||||
@param uid: ID of the user currently logged in
|
||||
@param context: A standard dictionary
|
||||
@return: return report
|
||||
"""
|
||||
if context is None:
|
||||
context = {}
|
||||
datas = {'ids': context.get('active_ids', [])}
|
||||
|
||||
res = self.read(cr, uid, ids, context=context)
|
||||
res = res and res[0] or {}
|
||||
datas.update({'form': res})
|
||||
return {
|
||||
'type': 'ir.actions.report.xml',
|
||||
'report_name': 'salary.employee.bymonth',
|
||||
'datas': datas,
|
||||
}
|
||||
|
||||
hr_salary_employee_bymonth()
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
|
@ -0,0 +1,45 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<openerp>
|
||||
<data>
|
||||
<record id="view_salary_employee_month" model="ir.ui.view">
|
||||
<field name="name">Hr monthly Employee Salary</field>
|
||||
<field name="model">hr.salary.employee.month</field>
|
||||
<field name="type">form</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Employee Pay Head Breakup" version="7.0">
|
||||
<label string="This wizard will print report which displays employees break-up of Net Head for a specified dates."/>
|
||||
<footer>
|
||||
<button name="print_report" string="Print" type="object" class="oe_highlight"/>
|
||||
or
|
||||
<button string="Cancel" class="oe_link" special="cancel" />
|
||||
</footer>
|
||||
<group>
|
||||
<field name="start_date"/>
|
||||
<field name="end_date"/>
|
||||
<field name="category_id"/>
|
||||
<separator string="Employees" />
|
||||
<field name="employee_ids" nolabel="1" colspan="4"/>
|
||||
</group>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="action_salary_employee_month" model="ir.actions.act_window">
|
||||
<field name="name">Yearly Salary by Head</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="res_model">hr.salary.employee.month</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">form</field>
|
||||
<field name="target">new</field>
|
||||
</record>
|
||||
|
||||
<menuitem
|
||||
name="Yearly Salary by Head"
|
||||
parent="hr.menu_hr_reporting_timesheet"
|
||||
sequence="200" icon="STOCK_PRINT"
|
||||
action="action_salary_employee_month"
|
||||
id="menu_salary_employee_month"
|
||||
/>
|
||||
|
||||
</data>
|
||||
</openerp>
|
|
@ -0,0 +1,66 @@
|
|||
#-*- coding:utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2011 OpenERP SA (<http://openerp.com>). All Rights Reserved
|
||||
#
|
||||
# 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 time
|
||||
|
||||
from osv import fields, osv
|
||||
|
||||
class yearly_salary_detail(osv.osv_memory):
|
||||
|
||||
_name ='yearly.salary.detail'
|
||||
_description = 'Hr Salary Employee By Category Report'
|
||||
_columns = {
|
||||
'employee_ids': fields.many2many('hr.employee', 'payroll_emp_rel', 'payroll_id', 'employee_id', 'Employees', required=True),
|
||||
'date_from': fields.date('Start Date', required=True),
|
||||
'date_to': fields.date('End Date', required=True),
|
||||
}
|
||||
|
||||
_defaults = {
|
||||
'date_from': lambda *a: time.strftime('%Y-01-01'),
|
||||
'date_to': lambda *a: time.strftime('%Y-%m-%d'),
|
||||
|
||||
}
|
||||
|
||||
def print_report(self, cr, uid, ids, context=None):
|
||||
"""
|
||||
To get the date and print the report
|
||||
@param self: The object pointer.
|
||||
@param cr: A database cursor
|
||||
@param uid: ID of the user currently logged in
|
||||
@param context: A standard dictionary
|
||||
@return: return report
|
||||
"""
|
||||
if context is None:
|
||||
context = {}
|
||||
datas = {'ids': context.get('active_ids', [])}
|
||||
|
||||
res = self.read(cr, uid, ids, context=context)
|
||||
res = res and res[0] or {}
|
||||
datas.update({'form': res})
|
||||
return {
|
||||
'type': 'ir.actions.report.xml',
|
||||
'report_name': 'salary.detail.byyear',
|
||||
'datas': datas,
|
||||
}
|
||||
|
||||
yearly_salary_detail()
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
|
@ -0,0 +1,44 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<openerp>
|
||||
<data>
|
||||
<record id="view_yearly_salary_detail" model="ir.ui.view">
|
||||
<field name="name">Employee Yearly Salary</field>
|
||||
<field name="model">yearly.salary.detail</field>
|
||||
<field name="type">form</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Pay Head Employee Breakup" version="7.0">
|
||||
<label string="This wizard will print report which display a pay head employee breakup for a specified dates."/>
|
||||
<footer>
|
||||
<button name="print_report" string="Print" type="object" class="oe_highlight"/>
|
||||
or
|
||||
<button string="Cancel" class="oe_link" special="cancel" />
|
||||
</footer>
|
||||
<group>
|
||||
<field name="date_from"/>
|
||||
<field name="date_to"/>
|
||||
<separator string="Employees" />
|
||||
<field name="employee_ids" nolabel="1" colspan="4"/>
|
||||
</group>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="action_yearly_salary_detail" model="ir.actions.act_window">
|
||||
<field name="name">Yearly Salary by Employee</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="res_model">yearly.salary.detail</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">form</field>
|
||||
<field name="target">new</field>
|
||||
</record>
|
||||
|
||||
<menuitem
|
||||
name="Yearly Salary by Employee"
|
||||
parent="hr.menu_hr_reporting_timesheet"
|
||||
action="action_yearly_salary_detail"
|
||||
sequence="250" icon="STOCK_PRINT"
|
||||
id="menu_yearly_salary_detail"
|
||||
/>
|
||||
|
||||
</data>
|
||||
</openerp>
|
|
@ -1816,15 +1816,15 @@
|
|||
#
|
||||
-->
|
||||
|
||||
<record id="base.CFA" model="res.currency">
|
||||
<record id="base.XOF" model="res.currency">
|
||||
<field name="name">XOF</field>
|
||||
<field name="symbol">CFA</field>
|
||||
<field name="rounding">1</field>
|
||||
<field name="accuracy">4</field>
|
||||
</record>
|
||||
<record id="base.rateCFA" model="res.currency.rate">
|
||||
<record id="base.rateXOF" model="res.currency.rate">
|
||||
<field name="rate">655.957</field>
|
||||
<field name="currency_id" ref="base.CFA"/>
|
||||
<field name="currency_id" ref="base.XOF"/>
|
||||
<field eval="time.strftime('%Y-01-01')" name="name"/>
|
||||
</record>
|
||||
<!--
|
||||
|
|
|
@ -0,0 +1,38 @@
|
|||
# Turkish translation for openobject-addons
|
||||
# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
|
||||
# This file is distributed under the same license as the openobject-addons package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-02-08 00:36+0000\n"
|
||||
"PO-Revision-Date: 2012-09-07 20:06+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Turkish <tr@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-09-08 04:54+0000\n"
|
||||
"X-Generator: Launchpad (build 15914)\n"
|
||||
|
||||
#. module: pad_project
|
||||
#: constraint:project.task:0
|
||||
msgid "Error ! Task end-date must be greater then task start-date"
|
||||
msgstr "Hata! görev bitiş tarihi başlangıç tarihinden sonra olmalı"
|
||||
|
||||
#. module: pad_project
|
||||
#: model:ir.model,name:pad_project.model_project_task
|
||||
msgid "Task"
|
||||
msgstr "Görev"
|
||||
|
||||
#. module: pad_project
|
||||
#: view:project.task:0
|
||||
msgid "Pad"
|
||||
msgstr ""
|
||||
|
||||
#. module: pad_project
|
||||
#: constraint:project.task:0
|
||||
msgid "Error ! You cannot create recursive tasks."
|
||||
msgstr "Hata ! Yinelenen görevler oluşturamazsınız."
|
|
@ -3,7 +3,7 @@
|
|||
<data>
|
||||
|
||||
<!-- add visibility field to the event form view -->
|
||||
<record id="view_employee_form" model="ir.ui.view">
|
||||
<record id="view_event_form_portal" model="ir.ui.view">
|
||||
<field name="name">portal.event.form</field>
|
||||
<field name="model">event.event</field>
|
||||
<field name="inherit_id" ref="event.view_event_form"/>
|
||||
|
@ -17,6 +17,5 @@
|
|||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</openerp>
|
||||
|
|
|
@ -8,12 +8,8 @@
|
|||
<field name="model">hr.employee</field>
|
||||
<field name="inherit_id" ref="hr.view_employee_form"/>
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="//page[last()]" position="after">
|
||||
<page string="Portal Settings">
|
||||
<group>
|
||||
<field name="visibility"/>
|
||||
</group>
|
||||
</page>
|
||||
<xpath expr="//field[@name='active']" position="before">
|
||||
<field name="visibility"/>
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
|
|
Loading…
Reference in New Issue