Merge lp:openobject-addons

bzr revid: jam@tinyerp.com-20120910043039-vu4qn4t20je6ew8r
This commit is contained in:
Jigar Amin - OpenERP 2012-09-10 10:00:39 +05:30
commit 6c7cdd7712
87 changed files with 11921 additions and 487 deletions

View File

@ -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)

View File

@ -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"/>

View File

@ -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):

View File

@ -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

View File

@ -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">

View File

@ -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:

View File

@ -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">

View File

@ -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}

View File

@ -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>

View File

@ -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"

411
addons/edi/i18n/nb.po Normal file
View File

@ -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."

View File

@ -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"

335
addons/fetchmail/i18n/nb.po Normal file
View File

@ -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"

View File

@ -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"

View File

@ -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 &amp; 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>

View File

@ -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:

View File

@ -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()

View File

@ -136,3 +136,5 @@
</data>
</openerp>

View File

@ -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

View File

@ -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'));
});
},
});
}

View File

@ -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>

View File

@ -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".
-

View File

@ -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:

View File

@ -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:

View File

@ -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>

View File

@ -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>

View File

@ -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"

View File

@ -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>

View File

@ -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>

View File

@ -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:

View File

@ -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"

View File

@ -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()

View File

@ -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>

View File

@ -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):

View File

@ -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,

View File

@ -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>

View File

@ -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>

View File

@ -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"

View File

@ -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: "

View File

@ -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">

66
addons/l10n_cn/i18n/nb.po Normal file
View File

@ -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"

66
addons/l10n_de/i18n/nb.po Normal file
View File

@ -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 ""

View File

@ -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:

View File

@ -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:

View File

@ -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",
1 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
2 1 fix 1 1 100 Education Allowance For One Child Allowance 23 CHEAONE hr_payroll_rule_child1 range employee.children
3 2 fix 2 10 200 Education Allowance For Two Child Allowance 24 CHEATWO hr_payroll_rule_child1 range employee.children
4 3 fix 1 1 300 Child Hostel Allowance For One Child Allowance 26 CHOONE hr_payroll_rule_child2 range employee.children
5 4 fix 2 10 600 Child Hostel Allowance For Two Child Allowance 27 CHOTWO hr_payroll_rule_child2 range employee.children

View File

@ -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 employees 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 employees 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 &gt;= 3000 </field>
<field name="amount_select">code</field>
<field name="amount_python_compute">result = (-200 if contract.wage &gt;= 12000
else -150 if ((contract.wage &gt;= 9000) and (contract.wage &lt;= 11999))
else -80 if ((contract.wage &gt;= 6000) and (contract.wage &lt;= 8999))
else -20 if ((contract.wage &gt;= 3000) and (contract.wage &lt;= 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 employees 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>

View File

@ -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 ""

View File

@ -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 ""

View File

@ -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 ""

View File

@ -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 ""

View File

@ -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 ""

View File

@ -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 ""

View File

@ -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 users ID for security checks,
@param ids: List of Advices 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 users ID for security checks,
@param ids: List of confirm Advices 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:

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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:

View File

@ -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:

View File

@ -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>

View File

@ -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:

View File

@ -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>

View File

@ -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:

View File

@ -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>

View File

@ -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:

View File

@ -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>

View File

@ -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:

View File

@ -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>

View File

@ -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:

View File

@ -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>

View File

@ -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
1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
2 access_hr_payroll_advice_user hr.payroll.advice model_hr_payroll_advice base.group_hr_user 1 1 1 1
3 access_hr_payroll_advice_line_user hr.payroll.advice.line model_hr_payroll_advice_line base.group_hr_user 1 1 1 1
4 access_hr_payroll_advice_report_user payment.advice.report model_payment_advice_report base.group_hr_manager 1 1 1 1
5 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

View File

@ -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)

View File

@ -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."

View File

@ -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:

View File

@ -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:

View File

@ -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>

View File

@ -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:

View File

@ -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>

View File

@ -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>
<!--

View File

@ -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."

View File

@ -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>

View File

@ -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>