From 82f780e948444cd9938613e99b3a77f32056f3ba Mon Sep 17 00:00:00 2001 From: Florent Xicluna Date: Thu, 19 Jan 2012 20:16:54 +0100 Subject: [PATCH 001/569] [REM] unused imports. bzr revid: florent.xicluna@gmail.com-20120119191654-scm8c3o07icyz5b1 --- openerp/osv/fields.py | 3 --- openerp/tests/common.py | 1 - openerp/tests/test_orm.py | 1 - openerp/tiny_socket.py | 1 - 4 files changed, 6 deletions(-) diff --git a/openerp/osv/fields.py b/openerp/osv/fields.py index 871fc32f884..ff02a8c89f9 100644 --- a/openerp/osv/fields.py +++ b/openerp/osv/fields.py @@ -35,14 +35,11 @@ import base64 import datetime as DT import re -import string -import sys import warnings import xmlrpclib from psycopg2 import Binary import openerp -import openerp.netsvc as netsvc import openerp.tools as tools from openerp.tools.translate import _ from openerp.tools import float_round, float_repr diff --git a/openerp/tests/common.py b/openerp/tests/common.py index 44696384ce7..93e5f6d5bc2 100644 --- a/openerp/tests/common.py +++ b/openerp/tests/common.py @@ -1,5 +1,4 @@ # -*- coding: utf-8 -*- -import os import time import xmlrpclib diff --git a/openerp/tests/test_orm.py b/openerp/tests/test_orm.py index c11d4cd19d2..cf880933fe5 100644 --- a/openerp/tests/test_orm.py +++ b/openerp/tests/test_orm.py @@ -1,4 +1,3 @@ -import os import unittest2 import openerp diff --git a/openerp/tiny_socket.py b/openerp/tiny_socket.py index b4bed83a4c0..f86797f0f67 100644 --- a/openerp/tiny_socket.py +++ b/openerp/tiny_socket.py @@ -22,7 +22,6 @@ import socket import cPickle import cStringIO -import marshal import netsvc From e7838dfbc44472a444b1f58dd7869febbc5984b7 Mon Sep 17 00:00:00 2001 From: Florent Xicluna Date: Thu, 19 Jan 2012 20:17:56 +0100 Subject: [PATCH 002/569] [REF] fix weird indentation, not multiple of four. bzr revid: florent.xicluna@gmail.com-20120119191756-niny262vp1nvmpp8 --- openerp/netsvc.py | 16 ++++++++-------- openerp/osv/orm.py | 12 ++++++------ openerp/service/netrpc_server.py | 6 +++--- openerp/service/web_services.py | 10 +++++----- openerp/tests/test_xmlrpc.py | 4 ++-- 5 files changed, 24 insertions(+), 24 deletions(-) diff --git a/openerp/netsvc.py b/openerp/netsvc.py index ca08a362771..53750ed84da 100644 --- a/openerp/netsvc.py +++ b/openerp/netsvc.py @@ -84,12 +84,12 @@ class Service(object): cls._services.pop(name) def LocalService(name): - # Special case for addons support, will be removed in a few days when addons - # are updated to directly use openerp.osv.osv.service. - if name == 'object_proxy': - return openerp.osv.osv.service + # Special case for addons support, will be removed in a few days when addons + # are updated to directly use openerp.osv.osv.service. + if name == 'object_proxy': + return openerp.osv.osv.service - return Service._services[name] + return Service._services[name] class ExportService(object): """ Proxy for exported services. @@ -198,9 +198,9 @@ def init_logger(): # server intended to test it. def init_alternative_logger(): class H(logging.Handler): - def emit(self, record): - if record.levelno > 20: - print record.levelno, record.pathname, record.msg + def emit(self, record): + if record.levelno > 20: + print record.levelno, record.pathname, record.msg handler = H() logger = logging.getLogger() logger.handlers = [] diff --git a/openerp/osv/orm.py b/openerp/osv/orm.py index 1c12fab27c9..f2686708436 100644 --- a/openerp/osv/orm.py +++ b/openerp/osv/orm.py @@ -98,10 +98,10 @@ def transfer_node_to_modifiers(node, modifiers, context=None, in_tree_view=False if node.get('states'): if 'invisible' in modifiers and isinstance(modifiers['invisible'], list): - # TODO combine with AND or OR, use implicit AND for now. - modifiers['invisible'].append(('state', 'not in', node.get('states').split(','))) + # TODO combine with AND or OR, use implicit AND for now. + modifiers['invisible'].append(('state', 'not in', node.get('states').split(','))) else: - modifiers['invisible'] = [('state', 'not in', node.get('states').split(','))] + modifiers['invisible'] = [('state', 'not in', node.get('states').split(','))] for a in ('invisible', 'readonly', 'required'): if node.get(a): @@ -894,8 +894,8 @@ class BaseModel(object): for c in cls.__dict__.get(s, []): exist = False for c2 in range(len(new)): - #For _constraints, we should check field and methods as well - if new[c2][2]==c[2] and (new[c2][0] == c[0] \ + #For _constraints, we should check field and methods as well + if new[c2][2]==c[2] and (new[c2][0] == c[0] \ or getattr(new[c2][0],'__name__', True) == \ getattr(c[0],'__name__', False)): # If new class defines a constraint with @@ -2690,7 +2690,7 @@ class BaseModel(object): elif val in dict(self._columns[field].selection(self, cr, uid, context=context)): return raise except_orm(_('ValidateError'), - _('The value "%s" for the field "%s.%s" is not in the selection') % (value, self._table, field)) + _('The value "%s" for the field "%s.%s" is not in the selection') % (value, self._table, field)) def _check_removed_columns(self, cr, log=False): # iterate on the database columns to drop the NOT NULL constraints diff --git a/openerp/service/netrpc_server.py b/openerp/service/netrpc_server.py index f86d6d21273..efe26906720 100644 --- a/openerp/service/netrpc_server.py +++ b/openerp/service/netrpc_server.py @@ -125,9 +125,9 @@ class TinySocketServerThread(threading.Thread,netsvc.Server): ct.start() lt = len(self.threads) if (lt > 10) and (lt % 10 == 0): - # Not many threads should be serving at the same time, so log - # their abuse. - netsvc.Logger().notifyChannel("web-services", netsvc.LOG_DEBUG, + # Not many threads should be serving at the same time, so log + # their abuse. + netsvc.Logger().notifyChannel("web-services", netsvc.LOG_DEBUG, "Netrpc: %d threads" % len(self.threads)) self.socket.close() except Exception, e: diff --git a/openerp/service/web_services.py b/openerp/service/web_services.py index 1bda0230c89..8c3db0e88af 100644 --- a/openerp/service/web_services.py +++ b/openerp/service/web_services.py @@ -521,11 +521,11 @@ GNU Public Licence. 'OS Name : %s\n' \ %(platform.platform(), platform.os.name) if os.name == 'posix': - if platform.system() == 'Linux': - lsbinfo = os.popen('lsb_release -a').read() - environment += '%s'%(lsbinfo) - else: - environment += 'Your System is not lsb compliant\n' + if platform.system() == 'Linux': + lsbinfo = os.popen('lsb_release -a').read() + environment += '%s'%(lsbinfo) + else: + environment += 'Your System is not lsb compliant\n' environment += 'Operating System Release : %s\n' \ 'Operating System Version : %s\n' \ 'Operating System Architecture : %s\n' \ diff --git a/openerp/tests/test_xmlrpc.py b/openerp/tests/test_xmlrpc.py index 954d3447360..ca0ae454437 100644 --- a/openerp/tests/test_xmlrpc.py +++ b/openerp/tests/test_xmlrpc.py @@ -19,8 +19,8 @@ ADMIN_USER_ID = common.ADMIN_USER_ID ADMIN_PASSWORD = common.ADMIN_PASSWORD def setUpModule(): - common.start_openerp() - common.create_xmlrpc_proxies() + common.start_openerp() + common.create_xmlrpc_proxies() tearDownModule = common.tearDownModule From efef81654b90e70a24d1a330c0ef8d9942e05444 Mon Sep 17 00:00:00 2001 From: Florent Xicluna Date: Thu, 19 Jan 2012 20:18:38 +0100 Subject: [PATCH 003/569] [REF] replace deprecated <> symbol. bzr revid: florent.xicluna@gmail.com-20120119191838-r07oybyiqbkfehsz --- openerp/osv/orm.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/openerp/osv/orm.py b/openerp/osv/orm.py index f2686708436..dceb14a2710 100644 --- a/openerp/osv/orm.py +++ b/openerp/osv/orm.py @@ -1303,7 +1303,7 @@ class BaseModel(object): if not line[i]: continue - if field[:len(prefix)] <> prefix: + if field[:len(prefix)] != prefix: if line[i] and skip: return False continue @@ -2666,7 +2666,7 @@ class BaseModel(object): # if val is a many2one, just write the ID if type(val) == tuple: val = val[0] - if (val<>False) or (type(val)<>bool): + if val is not False: cr.execute(update_query, (ss[1](val), key)) def _check_selection_field_value(self, cr, uid, field, value, context=None): From c749cd8fcc864e6103f55bcf7b12e0910f2ffa14 Mon Sep 17 00:00:00 2001 From: Florent Xicluna Date: Mon, 23 Jan 2012 15:29:32 +0100 Subject: [PATCH 004/569] =?UTF-8?q?[IMP]=C2=A0upgrade=20the=20Pickle=20pro?= =?UTF-8?q?tocol=20to=20consume=20less=20bandwidth.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit bzr revid: florent.xicluna@gmail.com-20120123142932-idcqz4p46gvbvhfh --- openerp/tiny_socket.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/openerp/tiny_socket.py b/openerp/tiny_socket.py index b4bed83a4c0..c3960afd054 100644 --- a/openerp/tiny_socket.py +++ b/openerp/tiny_socket.py @@ -28,6 +28,10 @@ import netsvc #.apidoc title: Net-RPC classes +# Pickle protocol version 2 is optimized compared to default (version 0) +PICKLE_PROTOCOL = 2 + + class Myexception(Exception): """ custom exception object store @@ -63,8 +67,8 @@ class mysocket: netsvc.close_socket(self.sock) def mysend(self, msg, exception=False, traceback=None): - msg = cPickle.dumps([msg,traceback]) - self.sock.sendall('%8d%s%s' % (len(msg), exception and "1" or "0", msg)) + msg = cPickle.dumps([msg, traceback], PICKLE_PROTOCOL) + self.sock.sendall('%8d%d%s' % (len(msg), bool(exception), msg)) def myreceive(self): buf='' From bac1a957193c5b76fc944d268d2b711809e34d19 Mon Sep 17 00:00:00 2001 From: Florent Xicluna Date: Mon, 23 Jan 2012 15:30:15 +0100 Subject: [PATCH 005/569] =?UTF-8?q?[IMP]=C2=A0merge=20two=20socket.recv=20?= =?UTF-8?q?into=20one.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit bzr revid: florent.xicluna@gmail.com-20120123143015-gz22l5qre6ria8f4 --- openerp/tiny_socket.py | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/openerp/tiny_socket.py b/openerp/tiny_socket.py index c3960afd054..87db82f6d91 100644 --- a/openerp/tiny_socket.py +++ b/openerp/tiny_socket.py @@ -72,15 +72,14 @@ class mysocket: def myreceive(self): buf='' - while len(buf) < 8: - chunk = self.sock.recv(8 - len(buf)) + while len(buf) < 9: + chunk = self.sock.recv(9 - len(buf)) if not chunk: raise socket.timeout buf += chunk - size = int(buf) - buf = self.sock.recv(1) - if buf != "0": - exception = buf + size = int(buf[:8]) + if buf[8] != "0": + exception = buf[8] else: exception = False msg = '' From 5c40627e4bd91c2355a4d196f62e1ccfa83aaf12 Mon Sep 17 00:00:00 2001 From: Xavier Morel Date: Thu, 26 Jan 2012 14:30:13 +0100 Subject: [PATCH 006/569] [FIX] don't just print a warning if an @eval fails in an XML file bzr revid: xmo@openerp.com-20120126133013-5fnsouix8cutwlik --- openerp/tools/convert.py | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/openerp/tools/convert.py b/openerp/tools/convert.py index 553aa48effc..ec3e67670c3 100644 --- a/openerp/tools/convert.py +++ b/openerp/tools/convert.py @@ -129,15 +129,14 @@ def _eval_xml(self, node, pool, cr, uid, idref, context=None): f_val = f_val[0] return f_val a_eval = node.get('eval','') - idref2 = {} if a_eval: idref2 = _get_idref(self, cr, uid, f_model, context, idref) try: return unsafe_eval(a_eval, idref2) except Exception: - logger = logging.getLogger('init') - logger.warning('could not eval(%s) for %s in %s' % (a_eval, node.get('name'), context), exc_info=True) - return "" + logging.getLogger('openerp.tools.convert.init').error( + 'Could not eval(%s) for %s in %s', a_eval, node.get('name'), context) + raise if t == 'xml': def _process(s, idref): m = re.findall('[^%]%\((.*?)\)[ds]', s) From 111d8b76f7e384a3b1a77d802b52eedbb7ae04c7 Mon Sep 17 00:00:00 2001 From: Florent Xicluna Date: Wed, 1 Feb 2012 13:33:11 +0100 Subject: [PATCH 007/569] [REF] one unused import and one redundant import. bzr revid: florent.xicluna@gmail.com-20120201123311-yvljvcj0luly77qt --- openerp-server | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/openerp-server b/openerp-server index 334c1790526..5868b4f33d5 100755 --- a/openerp-server +++ b/openerp-server @@ -42,9 +42,6 @@ import openerp __author__ = openerp.release.author __version__ = openerp.release.version -import sys -import imp - def check_root_user(): """ Exit if the process's user is 'root' (on POSIX system).""" if os.name == 'posix': @@ -200,7 +197,7 @@ def quit_on_signals(): try: while quit_signals_received == 0: time.sleep(60) - except KeyboardInterrupt, e: + except KeyboardInterrupt: pass if config['pidfile']: From 1ef81548ba5dd463adaf20433b7bc4b39ebb8e78 Mon Sep 17 00:00:00 2001 From: Florent Xicluna Date: Wed, 8 Feb 2012 15:22:48 +0100 Subject: [PATCH 008/569] [REF] additional cleanup after vmt's logging refactoring. bzr revid: florent.xicluna@gmail.com-20120208142248-p63odfqo673yqqml --- openerp/service/netrpc_server.py | 2 +- openerp/service/web_services.py | 17 ++++++++--------- openerp/wizard/__init__.py | 6 +----- 3 files changed, 10 insertions(+), 15 deletions(-) diff --git a/openerp/service/netrpc_server.py b/openerp/service/netrpc_server.py index 327ebc5bbdc..fcbfaf0ba82 100644 --- a/openerp/service/netrpc_server.py +++ b/openerp/service/netrpc_server.py @@ -131,7 +131,7 @@ class TinySocketServerThread(threading.Thread,netsvc.Server): _logger.debug("Netrpc: %d threads", len(self.threads)) self.socket.close() except Exception, e: - _logger.warning("Netrpc: closing because of exception %s" % str(e)) + _logger.warning("Netrpc: closing because of exception %s", e) self.socket.close() return False diff --git a/openerp/service/web_services.py b/openerp/service/web_services.py index 43f4d1af639..661b74a6995 100644 --- a/openerp/service/web_services.py +++ b/openerp/service/web_services.py @@ -224,9 +224,9 @@ class db(netsvc.ExportService): if not data or res: _logger.error( - 'DUMP DB: %s failed! Please verify the configuration of the database password on the server. '\ - 'It should be provided as a -w command-line option, or as `db_password` in the '\ - 'server configuration file.\n %s' % (db_name, data)) + 'DUMP DB: %s failed! Please verify the configuration of the database password on the server. ' + 'It should be provided as a -w command-line option, or as `db_password` in the ' + 'server configuration file.\n %s', db_name, data) raise Exception, "Couldn't dump database" _logger.info('DUMP DB successful: %s', db_name) @@ -239,7 +239,7 @@ class db(netsvc.ExportService): self._set_pg_psw_env_var() if self.exp_db_exist(db_name): - _logger.warning('RESTORE DB: %s already exists' % (db_name,)) + _logger.warning('RESTORE DB: %s already exists', db_name) raise Exception, "Database already exists" self._create_empty_database(db_name) @@ -268,7 +268,7 @@ class db(netsvc.ExportService): res = stdout.close() if res: raise Exception, "Couldn't restore database" - _logger.info('RESTORE DB: %s' % (db_name)) + _logger.info('RESTORE DB: %s', db_name) return True finally: @@ -451,8 +451,7 @@ GNU Public Licence. backup_directory = os.path.join(tools.config['root_path'], 'backup', time.strftime('%Y-%m-%d-%H-%M')) if zips and not os.path.isdir(backup_directory): - _logger.info('create a new backup directory to \ - store the old modules: %s', backup_directory) + _logger.info('create a new backup directory to store the old modules: %s', backup_directory) os.makedirs(backup_directory) for module in zips: @@ -678,7 +677,7 @@ class report_spool(netsvc.ExportService): self._reports[id]['state'] = True except Exception, exception: - _logger.exception('Exception: %s\n', str(exception)) + _logger.exception('Exception: %s\n', exception) if hasattr(exception, 'name') and hasattr(exception, 'value'): self._reports[id]['exception'] = openerp.exceptions.DeferredException(tools.ustr(exception.name), tools.ustr(exception.value)) else: @@ -715,7 +714,7 @@ class report_spool(netsvc.ExportService): self._reports[id]['format'] = format self._reports[id]['state'] = True except Exception, exception: - _logger.exception('Exception: %s\n', str(exception)) + _logger.exception('Exception: %s\n', exception) if hasattr(exception, 'name') and hasattr(exception, 'value'): self._reports[id]['exception'] = openerp.exceptions.DeferredException(tools.ustr(exception.name), tools.ustr(exception.value)) else: diff --git a/openerp/wizard/__init__.py b/openerp/wizard/__init__.py index 7354a43498d..debf0f1e74f 100644 --- a/openerp/wizard/__init__.py +++ b/openerp/wizard/__init__.py @@ -31,7 +31,6 @@ import openerp.pooler as pooler from openerp.osv.osv import except_osv from openerp.osv.orm import except_orm -import sys _logger = logging.getLogger(__name__) @@ -168,10 +167,7 @@ class interface(netsvc.Service): or isinstance(e, except_orm): netsvc.abort_response(2, e.name, 'warning', e.value) else: - import traceback - tb_s = reduce(lambda x, y: x+y, traceback.format_exception( - sys.exc_type, sys.exc_value, sys.exc_traceback)) - _logger.error('Exception in call: ' + tb_s) + _logger.exception('Exception in call:') raise return res From 57ca8e47975101c57991cf89efe86c033ff8a6de Mon Sep 17 00:00:00 2001 From: Florent Xicluna Date: Wed, 8 Feb 2012 18:00:34 +0100 Subject: [PATCH 009/569] [REF] openerp.report: better use of isinstance. bzr revid: florent.xicluna@gmail.com-20120208170034-2w8szxy350qpwas6 --- openerp/report/custom.py | 2 +- openerp/report/render/rml2txt/utils.py | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/openerp/report/custom.py b/openerp/report/custom.py index 051d1f29862..d06f2d721f7 100644 --- a/openerp/report/custom.py +++ b/openerp/report/custom.py @@ -108,7 +108,7 @@ class report_custom(report_int): key = levels.keys() for l in key: objs = eval('obj.'+l,{'obj': obj}) - if not isinstance(objs, browse_record_list) and type(objs) <> type([]): + if not isinstance(objs, (browse_record_list, list)): objs = [objs] field_new = [] cond_new = [] diff --git a/openerp/report/render/rml2txt/utils.py b/openerp/report/render/rml2txt/utils.py index 122411afb2d..c08210ecc79 100644 --- a/openerp/report/render/rml2txt/utils.py +++ b/openerp/report/render/rml2txt/utils.py @@ -75,9 +75,9 @@ def _process_text(self, txt): txt2 = eval(sps.pop(0),self.localcontext) except: txt2 = '' - if type(txt2) == type(0) or type(txt2) == type(0.0): + if isinstance(txt2, (int, float)): txt2 = str(txt2) - if type(txt2)==type('') or type(txt2)==type(u''): + if isinstance(txt2, basestring): result += txt2 return result From b5fa51f4a691b840e588bc33e4e960958860fd12 Mon Sep 17 00:00:00 2001 From: Florent Xicluna Date: Wed, 8 Feb 2012 18:02:17 +0100 Subject: [PATCH 010/569] =?UTF-8?q?[REF]=C2=A0openerp.report:=20use=20the?= =?UTF-8?q?=20recommended=20syntax=20to=20raise=20error=20and=20never=20us?= =?UTF-8?q?e=20empty=20except:.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit bzr revid: florent.xicluna@gmail.com-20120208170217-xsa5odzlhite0nda --- openerp/report/custom.py | 2 +- openerp/report/interface.py | 4 ++-- openerp/report/preprocess.py | 2 +- openerp/report/printscreen/ps_list.py | 2 +- openerp/report/render/rml2html/rml2html.py | 2 +- openerp/report/render/rml2pdf/trml2pdf.py | 2 +- openerp/report/render/rml2txt/utils.py | 8 ++++---- 7 files changed, 11 insertions(+), 11 deletions(-) diff --git a/openerp/report/custom.py b/openerp/report/custom.py index d06f2d721f7..a03ae0b8a53 100644 --- a/openerp/report/custom.py +++ b/openerp/report/custom.py @@ -267,7 +267,7 @@ class report_custom(report_int): else: try: row.append(float(r[j])) - except: + except Exception: row.append(r[j]) results2.append(row) if report['type']=='pie': diff --git a/openerp/report/interface.py b/openerp/report/interface.py index 9a97c445671..69474a18433 100644 --- a/openerp/report/interface.py +++ b/openerp/report/interface.py @@ -44,8 +44,8 @@ class report_int(netsvc.Service): def __init__(self, name): assert not self.exists(name), 'The report "%s" already exists!' % name super(report_int, self).__init__(name) - if name[0:7]<>'report.': - raise Exception, 'ConceptionError, bad report name, should start with "report."' + if not name.startswith('report.'): + raise Exception('ConceptionError, bad report name, should start with "report."') self.name = name self.id = 0 self.name2 = '.'.join(name.split('.')[1:]) diff --git a/openerp/report/preprocess.py b/openerp/report/preprocess.py index e681860d7a2..93b6b4d1bc9 100644 --- a/openerp/report/preprocess.py +++ b/openerp/report/preprocess.py @@ -48,7 +48,7 @@ class report(object): try: while n.tag != txt.group(3): n = n.getparent() - except: + except Exception: n = node else: n = node.getparent() diff --git a/openerp/report/printscreen/ps_list.py b/openerp/report/printscreen/ps_list.py index dc280a53e3e..8f0629462f8 100644 --- a/openerp/report/printscreen/ps_list.py +++ b/openerp/report/printscreen/ps_list.py @@ -56,7 +56,7 @@ class report_printscreen_list(report_int): def _parse_string(self, view): try: dom = etree.XML(view.encode('utf-8')) - except: + except Exception: dom = etree.XML(view) return self._parse_node(dom) diff --git a/openerp/report/render/rml2html/rml2html.py b/openerp/report/render/rml2html/rml2html.py index 504492772df..a26f6eadaa6 100644 --- a/openerp/report/render/rml2html/rml2html.py +++ b/openerp/report/render/rml2html/rml2html.py @@ -98,7 +98,7 @@ class _flowable(object): try: if new_child.get('style').find('terp_tblheader')!= -1: new_node.tag = 'th' - except: + except Exception: pass process(node,new_node) if new_node.get('colWidths',False): diff --git a/openerp/report/render/rml2pdf/trml2pdf.py b/openerp/report/render/rml2pdf/trml2pdf.py index 96287166074..58457993142 100644 --- a/openerp/report/render/rml2pdf/trml2pdf.py +++ b/openerp/report/render/rml2pdf/trml2pdf.py @@ -424,7 +424,7 @@ class _rml_canvas(object): flow.drawOn(self.canvas,infos['x'],infos['y']) infos['height']-=h else: - raise ValueError, "Not enough space" + raise ValueError("Not enough space") def _line_mode(self, node): ljoin = {'round':1, 'mitered':0, 'bevelled':2} diff --git a/openerp/report/render/rml2txt/utils.py b/openerp/report/render/rml2txt/utils.py index c08210ecc79..95e99c32ce1 100644 --- a/openerp/report/render/rml2txt/utils.py +++ b/openerp/report/render/rml2txt/utils.py @@ -37,7 +37,7 @@ def _child_get(node, self=None, tagname=None): if n.get('rml_except', False): try: eval(n.get('rml_except'), {}, self.localcontext) - except: + except Exception: continue if n.get('rml_tag'): try: @@ -46,7 +46,7 @@ def _child_get(node, self=None, tagname=None): n2.tag = tag n2.attrib.update(attr) yield n2 - except: + except Exception: yield n else: yield n @@ -55,7 +55,7 @@ def _child_get(node, self=None, tagname=None): if self and self.localcontext and n.get('rml_except', False): try: eval(n.get('rml_except'), {}, self.localcontext) - except: + except Exception: continue if (tagname is None) or (n.tag==tagname): yield n @@ -73,7 +73,7 @@ def _process_text(self, txt): if sps: try: txt2 = eval(sps.pop(0),self.localcontext) - except: + except Exception: txt2 = '' if isinstance(txt2, (int, float)): txt2 = str(txt2) From 9621008df12a65730a123e389d84ef8b21e5941d Mon Sep 17 00:00:00 2001 From: Florent Xicluna Date: Wed, 8 Feb 2012 18:03:51 +0100 Subject: [PATCH 011/569] =?UTF-8?q?[REF]=C2=A0openerp.report:=20replace=20?= =?UTF-8?q?deprecated=20has=5Fkey.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit bzr revid: florent.xicluna@gmail.com-20120208170351-1vmewmuufmxn7x52 --- openerp/report/custom.py | 14 +++++++------- openerp/report/print_xml.py | 4 ++-- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/openerp/report/custom.py b/openerp/report/custom.py index a03ae0b8a53..b33065fcdee 100644 --- a/openerp/report/custom.py +++ b/openerp/report/custom.py @@ -221,7 +221,7 @@ class report_custom(report_int): res_dic[prev].append(line) else: prev = line[groupby] - if res_dic.has_key(line[groupby]): + if line[groupby] in res_dic: res_dic[line[groupby]].append(line) else: res_dic[line[groupby]] = [] @@ -389,7 +389,7 @@ class report_custom(report_int): if date_idx != None: for r in results: key = process_date['Y'](r[date_idx]) - if not data_by_year.has_key(key): + if key not in data_by_year: data_by_year[key] = [] for i in range(len(r)): r[i] = fct[i](r[i]) @@ -407,14 +407,14 @@ class report_custom(report_int): for d in data_by_year[line]: for idx in range(len(fields)-1): fields_bar.append({}) - if fields_bar[idx].has_key(d[0]): + if d[0] in fields_bar[idx]: fields_bar[idx][d[0]] += d[idx+1] else: fields_bar[idx][d[0]] = d[idx+1] for idx in range(len(fields)-1): data = {} for k in fields_bar[idx].keys(): - if data.has_key(k): + if k in data: data[k] += fields_bar[idx][k] else: data[k] = fields_bar[idx][k] @@ -488,7 +488,7 @@ class report_custom(report_int): if date_idx != None: for r in results: key = process_date['Y'](r[date_idx]) - if not data_by_year.has_key(key): + if key not in data_by_year: data_by_year[key] = [] for i in range(len(r)): r[i] = fct[i](r[i]) @@ -507,14 +507,14 @@ class report_custom(report_int): for d in data_by_year[line]: for idx in range(len(fields)-1): fields_bar.append({}) - if fields_bar[idx].has_key(d[0]): + if d[0] in fields_bar[idx]: fields_bar[idx][d[0]] += d[idx+1] else: fields_bar[idx][d[0]] = d[idx+1] for idx in range(len(fields)-1): data = {} for k in fields_bar[idx].keys(): - if data.has_key(k): + if k in data: data[k] += fields_bar[idx][k] else: data[k] = fields_bar[idx][k] diff --git a/openerp/report/print_xml.py b/openerp/report/print_xml.py index ee1b9a316b3..2137eabee79 100644 --- a/openerp/report/print_xml.py +++ b/openerp/report/print_xml.py @@ -200,7 +200,7 @@ class document(object): else: args = [] # get the object - if attrs.has_key('model'): + if 'model' in attrs: obj = self.pool.get(attrs['model']) else: if isinstance(browser, list): @@ -209,7 +209,7 @@ class document(object): obj = browser._table # get the ids - if attrs.has_key('ids'): + if 'ids' in attrs: ids = self.eval(browser, attrs['ids']) else: if isinstance(browser, list): From 7675d45c2c10e833bc5d5f0b3f905f1cca652a3d Mon Sep 17 00:00:00 2001 From: Florent Xicluna Date: Wed, 8 Feb 2012 18:04:56 +0100 Subject: [PATCH 012/569] [REF] openerp.report: fix weird indentation, not multiple of four. bzr revid: florent.xicluna@gmail.com-20120208170456-ak1ykpy6yel71ylc --- openerp/report/interface.py | 2 +- openerp/report/print_xml.py | 2 +- openerp/report/printscreen/ps_form.py | 2 +- openerp/report/render/rml2html/rml2html.py | 16 ++++++++-------- openerp/report/render/rml2pdf/trml2pdf.py | 2 +- openerp/report/render/rml2txt/rml2txt.py | 4 ++-- openerp/report/render/simple.py | 2 +- 7 files changed, 15 insertions(+), 15 deletions(-) diff --git a/openerp/report/interface.py b/openerp/report/interface.py index 69474a18433..17dc0973d7e 100644 --- a/openerp/report/interface.py +++ b/openerp/report/interface.py @@ -181,7 +181,7 @@ class report_rml(report_int): def create_pdf(self, rml, localcontext = None, logo=None, title=None): if not localcontext: - localcontext={} + localcontext = {} localcontext.update({'internal_header':self.internal_header}) if logo: self.bin_datas['logo'] = logo diff --git a/openerp/report/print_xml.py b/openerp/report/print_xml.py index 2137eabee79..c2af0984c2e 100644 --- a/openerp/report/print_xml.py +++ b/openerp/report/print_xml.py @@ -228,7 +228,7 @@ class document(object): if not isinstance(datas[atr['value']], (str, unicode)): txt = str(datas[atr['value']]) else: - txt = datas[atr['value']] + txt = datas[atr['value']] el.text = txt else: for el_cld in node: diff --git a/openerp/report/printscreen/ps_form.py b/openerp/report/printscreen/ps_form.py index 8e3823e6b03..cf6d77cbe26 100644 --- a/openerp/report/printscreen/ps_form.py +++ b/openerp/report/printscreen/ps_form.py @@ -120,7 +120,7 @@ class report_printscreen_list(report_int): line[f]=round(line[f],precision) col = etree.SubElement(node_line, 'col', tree='no') if line[f] != None: - col.text = tools.ustr(line[f] or '') + col.text = tools.ustr(line[f] or '') else: col.text = '/' diff --git a/openerp/report/render/rml2html/rml2html.py b/openerp/report/render/rml2html/rml2html.py index a26f6eadaa6..17ed2e3103e 100644 --- a/openerp/report/render/rml2html/rml2html.py +++ b/openerp/report/render/rml2html/rml2html.py @@ -232,7 +232,7 @@ class _rml_stylesheet(object): attr = {} attrs = ps.attrib for key, val in attrs.items(): - attr[key] = val + attr[key] = val attrs = [] for a in attr: if a in self._tags: @@ -296,13 +296,13 @@ class _rml_template(object): frames[(posy,posx,tmpl.get('id'))] = _rml_tmpl_frame(posx, utils.unit_get(tmpl.get('width'))) for tmpl in pt.findall('pageGraphics'): for n in tmpl: - if n.tag == 'image': - self.data = rc + utils._process_text(self, n.text) - if n.tag in self._tags: - t = self._tags[n.tag](n, self.style,self.localcontext) - frames[(t.posy,t.posx,n.tag)] = t - else: - self.style.update(n) + if n.tag == 'image': + self.data = rc + utils._process_text(self, n.text) + if n.tag in self._tags: + t = self._tags[n.tag](n, self.style,self.localcontext) + frames[(t.posy,t.posx,n.tag)] = t + else: + self.style.update(n) keys = frames.keys() keys.sort() keys.reverse() diff --git a/openerp/report/render/rml2pdf/trml2pdf.py b/openerp/report/render/rml2pdf/trml2pdf.py index 58457993142..a17c03b40cb 100644 --- a/openerp/report/render/rml2pdf/trml2pdf.py +++ b/openerp/report/render/rml2pdf/trml2pdf.py @@ -82,7 +82,7 @@ class NumberedCanvas(canvas.Canvas): def showPage(self): self._currentPage +=1 if not self._flag: - self._pageCount += 1 + self._pageCount += 1 else: self.pages.update({self._currentPage:self._pageCount}) self._codes.append({'code': self._code, 'stack': self._codeStack}) diff --git a/openerp/report/render/rml2txt/rml2txt.py b/openerp/report/render/rml2txt/rml2txt.py index 4a30e0d2345..8a8c1b7f3c7 100755 --- a/openerp/report/render/rml2txt/rml2txt.py +++ b/openerp/report/render/rml2txt/rml2txt.py @@ -336,8 +336,8 @@ class _rml_stylesheet(object): attr = {} attrs = ps.attributes for i in range(attrs.length): - name = attrs.item(i).localName - attr[name] = ps.get(name) + name = attrs.item(i).localName + attr[name] = ps.get(name) attrs = [] for a in attr: if a in self._tags: diff --git a/openerp/report/render/simple.py b/openerp/report/render/simple.py index 4ce10991924..49d1adf148e 100644 --- a/openerp/report/render/simple.py +++ b/openerp/report/render/simple.py @@ -82,7 +82,7 @@ if __name__=='__main__': ''' if s.render(): - print s.get() + print s.get() # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: From 6312fd9426d6ccdbbfdada88763961f4b29d5c06 Mon Sep 17 00:00:00 2001 From: Florent Xicluna Date: Wed, 8 Feb 2012 18:07:00 +0100 Subject: [PATCH 013/569] [REF] openerp.report: remove unused imports and vars, simplify logging. bzr revid: florent.xicluna@gmail.com-20120208170700-csx9jb3nwmvq3dzj --- openerp/report/custom.py | 3 --- openerp/report/render/html2html/html2html.py | 2 -- openerp/report/render/makohtml2html/makohtml2html.py | 8 +++----- openerp/report/render/odt2odt/odt2odt.py | 1 - openerp/report/render/rml2html/rml2html.py | 2 +- openerp/report/render/rml2txt/rml2txt.py | 2 -- openerp/report/render/rml2txt/utils.py | 1 - openerp/report/render/simple.py | 1 - 8 files changed, 4 insertions(+), 16 deletions(-) diff --git a/openerp/report/custom.py b/openerp/report/custom.py index b33065fcdee..80dd9462175 100644 --- a/openerp/report/custom.py +++ b/openerp/report/custom.py @@ -21,7 +21,6 @@ import os import time -import openerp.netsvc as netsvc import openerp.tools as tools from openerp.tools.safe_eval import safe_eval as eval @@ -67,7 +66,6 @@ class report_custom(report_int): # def _row_get(self, cr, uid, objs, fields, conditions, row_canvas=None, group_by=None): result = [] - tmp = [] for obj in objs: tobreak = False for cond in conditions: @@ -365,7 +363,6 @@ class report_custom(report_int): order_date['Y'] = lambda x : x abscissa = [] - tmp = {} idx = 0 date_idx = None diff --git a/openerp/report/render/html2html/html2html.py b/openerp/report/render/html2html/html2html.py index 181c7f7ba67..09d7ad5e825 100644 --- a/openerp/report/render/html2html/html2html.py +++ b/openerp/report/render/html2html/html2html.py @@ -20,9 +20,7 @@ ############################################################################## from openerp.report.render.rml2pdf import utils -from lxml import etree import copy -import openerp.pooler as pooler import base64 import cStringIO import re diff --git a/openerp/report/render/makohtml2html/makohtml2html.py b/openerp/report/render/makohtml2html/makohtml2html.py index 57e57bd8d63..dbb3327a105 100644 --- a/openerp/report/render/makohtml2html/makohtml2html.py +++ b/openerp/report/render/makohtml2html/makohtml2html.py @@ -23,8 +23,7 @@ import mako from lxml import etree from mako.template import Template from mako.lookup import TemplateLookup -import openerp.netsvc as netsvc -import traceback, sys, os +import os _logger = logging.getLogger(__name__) @@ -126,9 +125,8 @@ class makohtml2html(object): final_html += self.format_header(etree_obj) final_html += self.format_body(etree_obj) return final_html - except Exception,e: - tb_s = reduce(lambda x, y: x+y, traceback.format_exception(sys.exc_type, sys.exc_value, sys.exc_traceback)) - _logger.error('report :\n%s\n%s\n', tb_s, str(e)) + except Exception: + _logger.exception('report :') def parseNode(html, localcontext = {}): r = makohtml2html(html, localcontext) diff --git a/openerp/report/render/odt2odt/odt2odt.py b/openerp/report/render/odt2odt/odt2odt.py index d077207f4d7..b9713943dc8 100644 --- a/openerp/report/render/odt2odt/odt2odt.py +++ b/openerp/report/render/odt2odt/odt2odt.py @@ -20,7 +20,6 @@ ############################################################################## from openerp.report.render.rml2pdf import utils -from lxml import etree import copy class odt2odt(object): diff --git a/openerp/report/render/rml2html/rml2html.py b/openerp/report/render/rml2html/rml2html.py index 17ed2e3103e..90bd58af99a 100644 --- a/openerp/report/render/rml2html/rml2html.py +++ b/openerp/report/render/rml2html/rml2html.py @@ -39,7 +39,7 @@ import sys import cStringIO from lxml import etree import copy -import utils + from openerp.report.render.rml2pdf import utils class _flowable(object): diff --git a/openerp/report/render/rml2txt/rml2txt.py b/openerp/report/render/rml2txt/rml2txt.py index 8a8c1b7f3c7..ab1930d81ba 100755 --- a/openerp/report/render/rml2txt/rml2txt.py +++ b/openerp/report/render/rml2txt/rml2txt.py @@ -22,9 +22,7 @@ import sys import StringIO -import copy from lxml import etree -import base64 import utils diff --git a/openerp/report/render/rml2txt/utils.py b/openerp/report/render/rml2txt/utils.py index 95e99c32ce1..2bf66925527 100644 --- a/openerp/report/render/rml2txt/utils.py +++ b/openerp/report/render/rml2txt/utils.py @@ -22,7 +22,6 @@ import re import reportlab import reportlab.lib.units -from lxml import etree from openerp.tools.safe_eval import safe_eval as eval _regex = re.compile('\[\[(.+?)\]\]') diff --git a/openerp/report/render/simple.py b/openerp/report/render/simple.py index 49d1adf148e..cb3831c141f 100644 --- a/openerp/report/render/simple.py +++ b/openerp/report/render/simple.py @@ -66,7 +66,6 @@ class simple(render.render): return self.result.getvalue() if __name__=='__main__': - import time s = simple() s.xml = ''' From ab9db3f6227789fabf3fdfcd2eda016b996bfd28 Mon Sep 17 00:00:00 2001 From: Florent Xicluna Date: Wed, 8 Feb 2012 22:33:13 +0100 Subject: [PATCH 014/569] [REM] more unused imports. bzr revid: florent.xicluna@gmail.com-20120208213313-1v0dugc59ch1fnnu --- openerp/service/http_server.py | 2 -- openerp/tests/addons/test_limits/models.py | 1 - 2 files changed, 3 deletions(-) diff --git a/openerp/service/http_server.py b/openerp/service/http_server.py index 07e31ea9c7d..63e0d08fc92 100644 --- a/openerp/service/http_server.py +++ b/openerp/service/http_server.py @@ -44,10 +44,8 @@ import posixpath import urllib import os import logging -from SimpleXMLRPCServer import SimpleXMLRPCDispatcher from websrv_lib import * -import openerp.netsvc as netsvc import openerp.tools as tools try: diff --git a/openerp/tests/addons/test_limits/models.py b/openerp/tests/addons/test_limits/models.py index 5240acd23ab..32e2a9a16f4 100644 --- a/openerp/tests/addons/test_limits/models.py +++ b/openerp/tests/addons/test_limits/models.py @@ -27,7 +27,6 @@ class m(openerp.osv.osv.Model): return True def consume_cpu_time(self, cr, uid, seconds, context=None): - import os t0 = time.clock() t1 = time.clock() while t1 - t0 < seconds: From a1e5c645d97e4e8f48cec546e858643029b7424a Mon Sep 17 00:00:00 2001 From: Antony Lesuisse Date: Thu, 9 Feb 2012 22:33:17 +0100 Subject: [PATCH 015/569] postgres use postgres instead of template1 and template1 instead of template0 bzr revid: al@openerp.com-20120209213317-3tt4o0sj87764ocn --- openerp/service/web_services.py | 10 +++++----- openerp/tools/config.py | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/openerp/service/web_services.py b/openerp/service/web_services.py index 3a9ba89c002..24ec650e432 100644 --- a/openerp/service/web_services.py +++ b/openerp/service/web_services.py @@ -117,7 +117,7 @@ class db(netsvc.ExportService): return fn(*params) def _create_empty_database(self, name): - db = sql_db.db_connect('template1') + db = sql_db.db_connect('postgres') cr = db.cursor() chosen_template = tools.config['db_template'] try: @@ -176,7 +176,7 @@ class db(netsvc.ExportService): openerp.modules.registry.RegistryManager.delete(db_name) sql_db.close_db(db_name) - db = sql_db.db_connect('template1') + db = sql_db.db_connect('postgres') cr = db.cursor() cr.autocommit(True) # avoid transaction block try: @@ -278,7 +278,7 @@ class db(netsvc.ExportService): openerp.modules.registry.RegistryManager.delete(old_name) sql_db.close_db(old_name) - db = sql_db.db_connect('template1') + db = sql_db.db_connect('postgres') cr = db.cursor() cr.autocommit(True) # avoid transaction block try: @@ -306,7 +306,7 @@ class db(netsvc.ExportService): raise openerp.exceptions.AccessDenied() chosen_template = tools.config['db_template'] templates_list = tuple(set(['template0', 'template1', 'postgres', chosen_template])) - db = sql_db.db_connect('template1') + db = sql_db.db_connect('postgres') cr = db.cursor() try: try: @@ -544,7 +544,7 @@ GNU Public Licence. return http_server.list_http_services() def exp_check_connectivity(self): - return bool(sql_db.db_connect('template1')) + return bool(sql_db.db_connect('postgres')) def exp_get_os_time(self): return os.times() diff --git a/openerp/tools/config.py b/openerp/tools/config.py index d628447a7a8..a03937601dc 100644 --- a/openerp/tools/config.py +++ b/openerp/tools/config.py @@ -223,7 +223,7 @@ class configmanager(object): help="specify the database port", type="int") group.add_option("--db_maxconn", dest="db_maxconn", type='int', my_default=64, help="specify the the maximum number of physical connections to posgresql") - group.add_option("--db-template", dest="db_template", my_default="template0", + group.add_option("--db-template", dest="db_template", my_default="template1", help="specify a custom database template to create a new database") parser.add_option_group(group) From d52e838455be4b038064bd9a1d972869b13257c1 Mon Sep 17 00:00:00 2001 From: Bogdan Stanciu Date: Sun, 12 Feb 2012 12:45:09 +0100 Subject: [PATCH 016/569] [IMP] some English corrections & 'encoding' into 'coding' for several py files. No code change. bzr revid: bogdanovidiu.stanciu@gmail.com-20120212114509-yrw86zewyv70dow7 --- openerp/addons/base/i18n/af.po | 4 +- openerp/addons/base/i18n/am.po | 4 +- openerp/addons/base/i18n/ar.po | 4 +- openerp/addons/base/i18n/base.pot | 4 +- openerp/addons/base/i18n/bg.po | 4 +- openerp/addons/base/i18n/bs.po | 4 +- openerp/addons/base/i18n/ca.po | 4 +- openerp/addons/base/i18n/cs.po | 4 +- openerp/addons/base/i18n/da.po | 4 +- openerp/addons/base/i18n/de.po | 4 +- openerp/addons/base/i18n/el.po | 4 +- openerp/addons/base/i18n/en_GB.po | 6 +- openerp/addons/base/i18n/es.po | 4 +- openerp/addons/base/i18n/es_AR.po | 2 +- openerp/addons/base/i18n/es_CL.po | 4 +- openerp/addons/base/i18n/es_CR.po | 4 +- openerp/addons/base/i18n/es_EC.po | 4 +- openerp/addons/base/i18n/et.po | 4 +- openerp/addons/base/i18n/eu.po | 4 +- openerp/addons/base/i18n/fa.po | 4 +- openerp/addons/base/i18n/fa_AF.po | 4 +- openerp/addons/base/i18n/fi.po | 4 +- openerp/addons/base/i18n/fr.po | 8 +-- openerp/addons/base/i18n/gl.po | 4 +- openerp/addons/base/i18n/he.po | 4 +- openerp/addons/base/i18n/hr.po | 4 +- openerp/addons/base/i18n/hu.po | 4 +- openerp/addons/base/i18n/hy.po | 4 +- openerp/addons/base/i18n/id.po | 4 +- openerp/addons/base/i18n/is.po | 4 +- openerp/addons/base/i18n/it.po | 4 +- openerp/addons/base/i18n/ja.po | 4 +- openerp/addons/base/i18n/kk.po | 4 +- openerp/addons/base/i18n/ko.po | 4 +- openerp/addons/base/i18n/lt.po | 4 +- openerp/addons/base/i18n/lt_LT.po | 2 +- openerp/addons/base/i18n/lv.po | 4 +- openerp/addons/base/i18n/mk.po | 4 +- openerp/addons/base/i18n/mn.po | 4 +- openerp/addons/base/i18n/nb.po | 4 +- openerp/addons/base/i18n/nl.po | 91 ++++++++++++-------------- openerp/addons/base/i18n/nl_BE.po | 4 +- openerp/addons/base/i18n/nl_NL.po | 2 +- openerp/addons/base/i18n/pl.po | 4 +- openerp/addons/base/i18n/pt.po | 4 +- openerp/addons/base/i18n/pt_BR.po | 8 +-- openerp/addons/base/i18n/ro.po | 4 +- openerp/addons/base/i18n/ru.po | 4 +- openerp/addons/base/i18n/sk.po | 4 +- openerp/addons/base/i18n/sl.po | 4 +- openerp/addons/base/i18n/sq.po | 4 +- openerp/addons/base/i18n/sr.po | 4 +- openerp/addons/base/i18n/sr@latin.po | 4 +- openerp/addons/base/i18n/sv.po | 4 +- openerp/addons/base/i18n/th.po | 4 +- openerp/addons/base/i18n/tlh.po | 4 +- openerp/addons/base/i18n/tr.po | 4 +- openerp/addons/base/i18n/uk.po | 4 +- openerp/addons/base/i18n/uk_UA.po | 2 +- openerp/addons/base/i18n/ur.po | 4 +- openerp/addons/base/i18n/vi.po | 4 +- openerp/addons/base/i18n/zh_CN.po | 4 +- openerp/addons/base/i18n/zh_HK.po | 4 +- openerp/addons/base/i18n/zh_TW.po | 4 +- openerp/addons/base/ir/ir_actions.py | 4 +- openerp/addons/base/res/res_country.py | 5 +- openerp/release.py | 2 +- openerp/service/http_server.py | 4 +- openerp/service/websrv_lib.py | 4 +- openerp/tools/yaml_import.py | 2 +- 70 files changed, 181 insertions(+), 185 deletions(-) diff --git a/openerp/addons/base/i18n/af.po b/openerp/addons/base/i18n/af.po index 750498c192f..10b7c035815 100644 --- a/openerp/addons/base/i18n/af.po +++ b/openerp/addons/base/i18n/af.po @@ -775,7 +775,7 @@ msgstr "" msgid "" "Manual: Launched manually.\n" "Automatic: Runs whenever the system is reconfigured.\n" -"Launch Manually Once: after hacing been launched manually, it sets " +"Launch Manually Once: after having been launched manually, it sets " "automatically to Done." msgstr "" @@ -5461,7 +5461,7 @@ msgstr "" #. module: base #: help:res.country.state,code:0 -msgid "The state code in three chars.\n" +msgid "The state code in max. three chars." msgstr "" #. module: base diff --git a/openerp/addons/base/i18n/am.po b/openerp/addons/base/i18n/am.po index c1e1faad680..3214ddec3a7 100644 --- a/openerp/addons/base/i18n/am.po +++ b/openerp/addons/base/i18n/am.po @@ -775,7 +775,7 @@ msgstr "" msgid "" "Manual: Launched manually.\n" "Automatic: Runs whenever the system is reconfigured.\n" -"Launch Manually Once: after hacing been launched manually, it sets " +"Launch Manually Once: after having been launched manually, it sets " "automatically to Done." msgstr "" @@ -5461,7 +5461,7 @@ msgstr "" #. module: base #: help:res.country.state,code:0 -msgid "The state code in three chars.\n" +msgid "The state code in max. three chars." msgstr "" #. module: base diff --git a/openerp/addons/base/i18n/ar.po b/openerp/addons/base/i18n/ar.po index 72c254eedb6..5912643d3c0 100644 --- a/openerp/addons/base/i18n/ar.po +++ b/openerp/addons/base/i18n/ar.po @@ -795,7 +795,7 @@ msgstr "" msgid "" "Manual: Launched manually.\n" "Automatic: Runs whenever the system is reconfigured.\n" -"Launch Manually Once: after hacing been launched manually, it sets " +"Launch Manually Once: after having been launched manually, it sets " "automatically to Done." msgstr "" @@ -5545,7 +5545,7 @@ msgstr "" #. module: base #: help:res.country.state,code:0 -msgid "The state code in three chars.\n" +msgid "The state code in max. three chars." msgstr "رمز الولاية (ثلاثة حروف).\n" #. module: base diff --git a/openerp/addons/base/i18n/base.pot b/openerp/addons/base/i18n/base.pot index 357319afe91..c1ca9862e96 100644 --- a/openerp/addons/base/i18n/base.pot +++ b/openerp/addons/base/i18n/base.pot @@ -727,7 +727,7 @@ msgstr "" #: help:ir.actions.todo,type:0 msgid "Manual: Launched manually.\n" "Automatic: Runs whenever the system is reconfigured.\n" -"Launch Manually Once: after hacing been launched manually, it sets automatically to Done." +"Launch Manually Once: after having been launched manually, it sets automatically to Done." msgstr "" #. module: base @@ -5037,7 +5037,7 @@ msgstr "" #. module: base #: help:res.country.state,code:0 -msgid "The state code in three chars.\n" +msgid "The state code in max. three chars." "" msgstr "" diff --git a/openerp/addons/base/i18n/bg.po b/openerp/addons/base/i18n/bg.po index b44b49136f9..5f070859688 100644 --- a/openerp/addons/base/i18n/bg.po +++ b/openerp/addons/base/i18n/bg.po @@ -797,7 +797,7 @@ msgstr "" msgid "" "Manual: Launched manually.\n" "Automatic: Runs whenever the system is reconfigured.\n" -"Launch Manually Once: after hacing been launched manually, it sets " +"Launch Manually Once: after having been launched manually, it sets " "automatically to Done." msgstr "" @@ -5552,7 +5552,7 @@ msgstr "" #. module: base #: help:res.country.state,code:0 -msgid "The state code in three chars.\n" +msgid "The state code in max. three chars." msgstr "Кодът на държавата в три букви.\n" #. module: base diff --git a/openerp/addons/base/i18n/bs.po b/openerp/addons/base/i18n/bs.po index 8b489f353b9..f4a109a9f86 100644 --- a/openerp/addons/base/i18n/bs.po +++ b/openerp/addons/base/i18n/bs.po @@ -783,7 +783,7 @@ msgstr "" msgid "" "Manual: Launched manually.\n" "Automatic: Runs whenever the system is reconfigured.\n" -"Launch Manually Once: after hacing been launched manually, it sets " +"Launch Manually Once: after having been launched manually, it sets " "automatically to Done." msgstr "" @@ -5469,7 +5469,7 @@ msgstr "" #. module: base #: help:res.country.state,code:0 -msgid "The state code in three chars.\n" +msgid "The state code in max. three chars." msgstr "" #. module: base diff --git a/openerp/addons/base/i18n/ca.po b/openerp/addons/base/i18n/ca.po index e9e3c958f8f..dbcc9dd3c31 100644 --- a/openerp/addons/base/i18n/ca.po +++ b/openerp/addons/base/i18n/ca.po @@ -807,7 +807,7 @@ msgstr "" msgid "" "Manual: Launched manually.\n" "Automatic: Runs whenever the system is reconfigured.\n" -"Launch Manually Once: after hacing been launched manually, it sets " +"Launch Manually Once: after having been launched manually, it sets " "automatically to Done." msgstr "" @@ -5641,7 +5641,7 @@ msgstr "" #. module: base #: help:res.country.state,code:0 -msgid "The state code in three chars.\n" +msgid "The state code in max. three chars." msgstr "El codi de la província de 3 caràcters.\n" #. module: base diff --git a/openerp/addons/base/i18n/cs.po b/openerp/addons/base/i18n/cs.po index 9d7f5fd42da..08924e330d5 100644 --- a/openerp/addons/base/i18n/cs.po +++ b/openerp/addons/base/i18n/cs.po @@ -806,7 +806,7 @@ msgstr "" msgid "" "Manual: Launched manually.\n" "Automatic: Runs whenever the system is reconfigured.\n" -"Launch Manually Once: after hacing been launched manually, it sets " +"Launch Manually Once: after having been launched manually, it sets " "automatically to Done." msgstr "" @@ -5635,7 +5635,7 @@ msgstr "" #. module: base #: help:res.country.state,code:0 -msgid "The state code in three chars.\n" +msgid "The state code in max. three chars." msgstr "Kód státu ve třech znacích.\n" #. module: base diff --git a/openerp/addons/base/i18n/da.po b/openerp/addons/base/i18n/da.po index fc56fd78eba..d4fdbe01cc4 100644 --- a/openerp/addons/base/i18n/da.po +++ b/openerp/addons/base/i18n/da.po @@ -775,7 +775,7 @@ msgstr "" msgid "" "Manual: Launched manually.\n" "Automatic: Runs whenever the system is reconfigured.\n" -"Launch Manually Once: after hacing been launched manually, it sets " +"Launch Manually Once: after having been launched manually, it sets " "automatically to Done." msgstr "" @@ -5461,7 +5461,7 @@ msgstr "" #. module: base #: help:res.country.state,code:0 -msgid "The state code in three chars.\n" +msgid "The state code in max. three chars." msgstr "" #. module: base diff --git a/openerp/addons/base/i18n/de.po b/openerp/addons/base/i18n/de.po index 401ede6d3f9..13f9e6f19da 100644 --- a/openerp/addons/base/i18n/de.po +++ b/openerp/addons/base/i18n/de.po @@ -813,7 +813,7 @@ msgstr "" msgid "" "Manual: Launched manually.\n" "Automatic: Runs whenever the system is reconfigured.\n" -"Launch Manually Once: after hacing been launched manually, it sets " +"Launch Manually Once: after having been launched manually, it sets " "automatically to Done." msgstr "Manuell: manuell gestartet" @@ -5678,7 +5678,7 @@ msgstr "" #. module: base #: help:res.country.state,code:0 -msgid "The state code in three chars.\n" +msgid "The state code in max. three chars." msgstr "Der 3 stellige Staatencode\n" #. module: base diff --git a/openerp/addons/base/i18n/el.po b/openerp/addons/base/i18n/el.po index eca0eba1ee5..9f1dc8937e1 100644 --- a/openerp/addons/base/i18n/el.po +++ b/openerp/addons/base/i18n/el.po @@ -795,7 +795,7 @@ msgstr "" msgid "" "Manual: Launched manually.\n" "Automatic: Runs whenever the system is reconfigured.\n" -"Launch Manually Once: after hacing been launched manually, it sets " +"Launch Manually Once: after having been launched manually, it sets " "automatically to Done." msgstr "" @@ -5589,7 +5589,7 @@ msgstr "" #. module: base #: help:res.country.state,code:0 -msgid "The state code in three chars.\n" +msgid "The state code in max. three chars." msgstr "Ο κωδικός κατάστασης με 3 χαρακτήρες\n" #. module: base diff --git a/openerp/addons/base/i18n/en_GB.po b/openerp/addons/base/i18n/en_GB.po index ba564da1057..2c9d775d610 100644 --- a/openerp/addons/base/i18n/en_GB.po +++ b/openerp/addons/base/i18n/en_GB.po @@ -802,7 +802,7 @@ msgstr "" msgid "" "Manual: Launched manually.\n" "Automatic: Runs whenever the system is reconfigured.\n" -"Launch Manually Once: after hacing been launched manually, it sets " +"Launch Manually Once: after having been launched manually, it sets " "automatically to Done." msgstr "" @@ -5618,8 +5618,8 @@ msgstr "" #. module: base #: help:res.country.state,code:0 -msgid "The state code in three chars.\n" -msgstr "The state code in three chars.\n" +msgid "The state code in max. three chars." +msgstr "The state code in max. three chars." #. module: base #: model:res.country,name:base.sj diff --git a/openerp/addons/base/i18n/es.po b/openerp/addons/base/i18n/es.po index 697adbf8dd3..4548e2692b8 100644 --- a/openerp/addons/base/i18n/es.po +++ b/openerp/addons/base/i18n/es.po @@ -842,7 +842,7 @@ msgstr "" msgid "" "Manual: Launched manually.\n" "Automatic: Runs whenever the system is reconfigured.\n" -"Launch Manually Once: after hacing been launched manually, it sets " +"Launch Manually Once: after having been launched manually, it sets " "automatically to Done." msgstr "" @@ -5726,7 +5726,7 @@ msgstr "" #. module: base #: help:res.country.state,code:0 -msgid "The state code in three chars.\n" +msgid "The state code in max. three chars." msgstr "El código de la provincia de 3 caracteres.\n" #. module: base diff --git a/openerp/addons/base/i18n/es_AR.po b/openerp/addons/base/i18n/es_AR.po index 5f2d8cb3305..e0a1569cffe 100644 --- a/openerp/addons/base/i18n/es_AR.po +++ b/openerp/addons/base/i18n/es_AR.po @@ -5583,7 +5583,7 @@ msgstr "STOCK_MEDIA_PAUSE" #. module: base #: help:res.country.state,code:0 -msgid "The state code in three chars.\n" +msgid "The state code in max. three chars." msgstr "El código de la provincia de 3 caracteres.\n" #. module: base diff --git a/openerp/addons/base/i18n/es_CL.po b/openerp/addons/base/i18n/es_CL.po index 9f432778665..e3ff1de6ef3 100644 --- a/openerp/addons/base/i18n/es_CL.po +++ b/openerp/addons/base/i18n/es_CL.po @@ -811,7 +811,7 @@ msgstr "" msgid "" "Manual: Launched manually.\n" "Automatic: Runs whenever the system is reconfigured.\n" -"Launch Manually Once: after hacing been launched manually, it sets " +"Launch Manually Once: after having been launched manually, it sets " "automatically to Done." msgstr "" @@ -5652,7 +5652,7 @@ msgstr "" #. module: base #: help:res.country.state,code:0 -msgid "The state code in three chars.\n" +msgid "The state code in max. three chars." msgstr "El código de la provincia de 3 caracteres.\n" #. module: base diff --git a/openerp/addons/base/i18n/es_CR.po b/openerp/addons/base/i18n/es_CR.po index e5e6a7f4e3f..a4d9a8129d5 100644 --- a/openerp/addons/base/i18n/es_CR.po +++ b/openerp/addons/base/i18n/es_CR.po @@ -879,7 +879,7 @@ msgstr "" msgid "" "Manual: Launched manually.\n" "Automatic: Runs whenever the system is reconfigured.\n" -"Launch Manually Once: after hacing been launched manually, it sets " +"Launch Manually Once: after having been launched manually, it sets " "automatically to Done." msgstr "" "Manual: Lanzado manualmente.\n" @@ -6736,7 +6736,7 @@ msgstr "" #. module: base #: help:res.country.state,code:0 -msgid "The state code in three chars.\n" +msgid "The state code in max. three chars." msgstr "El código de la provincia de 3 caracteres.\n" #. module: base diff --git a/openerp/addons/base/i18n/es_EC.po b/openerp/addons/base/i18n/es_EC.po index dfd3f325733..dadcd9c0e46 100644 --- a/openerp/addons/base/i18n/es_EC.po +++ b/openerp/addons/base/i18n/es_EC.po @@ -807,7 +807,7 @@ msgstr "" msgid "" "Manual: Launched manually.\n" "Automatic: Runs whenever the system is reconfigured.\n" -"Launch Manually Once: after hacing been launched manually, it sets " +"Launch Manually Once: after having been launched manually, it sets " "automatically to Done." msgstr "" @@ -5642,7 +5642,7 @@ msgstr "" #. module: base #: help:res.country.state,code:0 -msgid "The state code in three chars.\n" +msgid "The state code in max. three chars." msgstr "El código de la provincia de 3 caracteres.\n" #. module: base diff --git a/openerp/addons/base/i18n/et.po b/openerp/addons/base/i18n/et.po index 0ad14eaff39..7552ae0719b 100644 --- a/openerp/addons/base/i18n/et.po +++ b/openerp/addons/base/i18n/et.po @@ -788,7 +788,7 @@ msgstr "" msgid "" "Manual: Launched manually.\n" "Automatic: Runs whenever the system is reconfigured.\n" -"Launch Manually Once: after hacing been launched manually, it sets " +"Launch Manually Once: after having been launched manually, it sets " "automatically to Done." msgstr "" @@ -5499,7 +5499,7 @@ msgstr "" #. module: base #: help:res.country.state,code:0 -msgid "The state code in three chars.\n" +msgid "The state code in max. three chars." msgstr "Maakonna kolmekohaline kood.\n" #. module: base diff --git a/openerp/addons/base/i18n/eu.po b/openerp/addons/base/i18n/eu.po index f63e1b6dc4f..378c973a0eb 100644 --- a/openerp/addons/base/i18n/eu.po +++ b/openerp/addons/base/i18n/eu.po @@ -775,7 +775,7 @@ msgstr "" msgid "" "Manual: Launched manually.\n" "Automatic: Runs whenever the system is reconfigured.\n" -"Launch Manually Once: after hacing been launched manually, it sets " +"Launch Manually Once: after having been launched manually, it sets " "automatically to Done." msgstr "" @@ -5461,7 +5461,7 @@ msgstr "" #. module: base #: help:res.country.state,code:0 -msgid "The state code in three chars.\n" +msgid "The state code in max. three chars." msgstr "" #. module: base diff --git a/openerp/addons/base/i18n/fa.po b/openerp/addons/base/i18n/fa.po index 5e55e009c97..a465ce96c3c 100644 --- a/openerp/addons/base/i18n/fa.po +++ b/openerp/addons/base/i18n/fa.po @@ -786,7 +786,7 @@ msgstr "" msgid "" "Manual: Launched manually.\n" "Automatic: Runs whenever the system is reconfigured.\n" -"Launch Manually Once: after hacing been launched manually, it sets " +"Launch Manually Once: after having been launched manually, it sets " "automatically to Done." msgstr "" @@ -5502,7 +5502,7 @@ msgstr "" #. module: base #: help:res.country.state,code:0 -msgid "The state code in three chars.\n" +msgid "The state code in max. three chars." msgstr "کد استان در ۳ نویسه‌ای.\n" #. module: base diff --git a/openerp/addons/base/i18n/fa_AF.po b/openerp/addons/base/i18n/fa_AF.po index 2b467ff72d1..e3d0389fe01 100644 --- a/openerp/addons/base/i18n/fa_AF.po +++ b/openerp/addons/base/i18n/fa_AF.po @@ -775,7 +775,7 @@ msgstr "" msgid "" "Manual: Launched manually.\n" "Automatic: Runs whenever the system is reconfigured.\n" -"Launch Manually Once: after hacing been launched manually, it sets " +"Launch Manually Once: after having been launched manually, it sets " "automatically to Done." msgstr "" @@ -5461,7 +5461,7 @@ msgstr "" #. module: base #: help:res.country.state,code:0 -msgid "The state code in three chars.\n" +msgid "The state code in max. three chars." msgstr "" #. module: base diff --git a/openerp/addons/base/i18n/fi.po b/openerp/addons/base/i18n/fi.po index a68401483b1..a6cb99831fb 100644 --- a/openerp/addons/base/i18n/fi.po +++ b/openerp/addons/base/i18n/fi.po @@ -799,7 +799,7 @@ msgstr "" msgid "" "Manual: Launched manually.\n" "Automatic: Runs whenever the system is reconfigured.\n" -"Launch Manually Once: after hacing been launched manually, it sets " +"Launch Manually Once: after having been launched manually, it sets " "automatically to Done." msgstr "" @@ -5620,7 +5620,7 @@ msgstr "" #. module: base #: help:res.country.state,code:0 -msgid "The state code in three chars.\n" +msgid "The state code in max. three chars." msgstr "Osavaltion koodi kolmella kirjaimella.\n" #. module: base diff --git a/openerp/addons/base/i18n/fr.po b/openerp/addons/base/i18n/fr.po index c94296d2cbd..b47d352f885 100644 --- a/openerp/addons/base/i18n/fr.po +++ b/openerp/addons/base/i18n/fr.po @@ -815,7 +815,7 @@ msgstr "" msgid "" "Manual: Launched manually.\n" "Automatic: Runs whenever the system is reconfigured.\n" -"Launch Manually Once: after hacing been launched manually, it sets " +"Launch Manually Once: after having been launched manually, it sets " "automatically to Done." msgstr "" @@ -5653,7 +5653,7 @@ msgstr "" #. module: base #: help:res.country.state,code:0 -msgid "The state code in three chars.\n" +msgid "The state code in max. three chars." msgstr "Le code état en trois caractères.\n" #. module: base @@ -11276,7 +11276,7 @@ msgstr "Séquences" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_miss msgid "Mss" -msgstr "Mme" +msgstr "Mlle" #. module: base #: model:ir.model,name:base.model_ir_ui_view @@ -11404,7 +11404,7 @@ msgstr "Filtre" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_madam msgid "Ms." -msgstr "Mlle" +msgstr "Mme" #. module: base #: view:base.module.import:0 diff --git a/openerp/addons/base/i18n/gl.po b/openerp/addons/base/i18n/gl.po index e166e224d57..804c17bad22 100644 --- a/openerp/addons/base/i18n/gl.po +++ b/openerp/addons/base/i18n/gl.po @@ -808,7 +808,7 @@ msgstr "" msgid "" "Manual: Launched manually.\n" "Automatic: Runs whenever the system is reconfigured.\n" -"Launch Manually Once: after hacing been launched manually, it sets " +"Launch Manually Once: after having been launched manually, it sets " "automatically to Done." msgstr "" @@ -5635,7 +5635,7 @@ msgstr "" #. module: base #: help:res.country.state,code:0 -msgid "The state code in three chars.\n" +msgid "The state code in max. three chars." msgstr "O código de estado en tres caracteres.\n" #. module: base diff --git a/openerp/addons/base/i18n/he.po b/openerp/addons/base/i18n/he.po index 191882068f0..49655e7ae5c 100644 --- a/openerp/addons/base/i18n/he.po +++ b/openerp/addons/base/i18n/he.po @@ -785,7 +785,7 @@ msgstr "" msgid "" "Manual: Launched manually.\n" "Automatic: Runs whenever the system is reconfigured.\n" -"Launch Manually Once: after hacing been launched manually, it sets " +"Launch Manually Once: after having been launched manually, it sets " "automatically to Done." msgstr "" @@ -5487,7 +5487,7 @@ msgstr "" #. module: base #: help:res.country.state,code:0 -msgid "The state code in three chars.\n" +msgid "The state code in max. three chars." msgstr "ביטוי הקוד בשלוש תוים.\n" #. module: base diff --git a/openerp/addons/base/i18n/hr.po b/openerp/addons/base/i18n/hr.po index 65fab4e5c30..bead1791bdc 100644 --- a/openerp/addons/base/i18n/hr.po +++ b/openerp/addons/base/i18n/hr.po @@ -840,7 +840,7 @@ msgstr "" msgid "" "Manual: Launched manually.\n" "Automatic: Runs whenever the system is reconfigured.\n" -"Launch Manually Once: after hacing been launched manually, it sets " +"Launch Manually Once: after having been launched manually, it sets " "automatically to Done." msgstr "" @@ -5646,7 +5646,7 @@ msgstr "" #. module: base #: help:res.country.state,code:0 -msgid "The state code in three chars.\n" +msgid "The state code in max. three chars." msgstr "Troznamenkasta šifra države/pokrajine/županije.\n" #. module: base diff --git a/openerp/addons/base/i18n/hu.po b/openerp/addons/base/i18n/hu.po index 6894d272558..d8a699102bf 100644 --- a/openerp/addons/base/i18n/hu.po +++ b/openerp/addons/base/i18n/hu.po @@ -804,7 +804,7 @@ msgstr "" msgid "" "Manual: Launched manually.\n" "Automatic: Runs whenever the system is reconfigured.\n" -"Launch Manually Once: after hacing been launched manually, it sets " +"Launch Manually Once: after having been launched manually, it sets " "automatically to Done." msgstr "" @@ -5625,7 +5625,7 @@ msgstr "" #. module: base #: help:res.country.state,code:0 -msgid "The state code in three chars.\n" +msgid "The state code in max. three chars." msgstr "Az állam kódja három karakterben.\n" #. module: base diff --git a/openerp/addons/base/i18n/hy.po b/openerp/addons/base/i18n/hy.po index 11c3cd40faf..b7e53816cae 100644 --- a/openerp/addons/base/i18n/hy.po +++ b/openerp/addons/base/i18n/hy.po @@ -775,7 +775,7 @@ msgstr "" msgid "" "Manual: Launched manually.\n" "Automatic: Runs whenever the system is reconfigured.\n" -"Launch Manually Once: after hacing been launched manually, it sets " +"Launch Manually Once: after having been launched manually, it sets " "automatically to Done." msgstr "" @@ -5461,7 +5461,7 @@ msgstr "" #. module: base #: help:res.country.state,code:0 -msgid "The state code in three chars.\n" +msgid "The state code in max. three chars." msgstr "" #. module: base diff --git a/openerp/addons/base/i18n/id.po b/openerp/addons/base/i18n/id.po index a62ce35ff65..323819ab4a5 100644 --- a/openerp/addons/base/i18n/id.po +++ b/openerp/addons/base/i18n/id.po @@ -779,7 +779,7 @@ msgstr "" msgid "" "Manual: Launched manually.\n" "Automatic: Runs whenever the system is reconfigured.\n" -"Launch Manually Once: after hacing been launched manually, it sets " +"Launch Manually Once: after having been launched manually, it sets " "automatically to Done." msgstr "" @@ -5465,7 +5465,7 @@ msgstr "" #. module: base #: help:res.country.state,code:0 -msgid "The state code in three chars.\n" +msgid "The state code in max. three chars." msgstr "" #. module: base diff --git a/openerp/addons/base/i18n/is.po b/openerp/addons/base/i18n/is.po index 87a31071d27..fb292a07512 100644 --- a/openerp/addons/base/i18n/is.po +++ b/openerp/addons/base/i18n/is.po @@ -775,7 +775,7 @@ msgstr "" msgid "" "Manual: Launched manually.\n" "Automatic: Runs whenever the system is reconfigured.\n" -"Launch Manually Once: after hacing been launched manually, it sets " +"Launch Manually Once: after having been launched manually, it sets " "automatically to Done." msgstr "" @@ -5461,7 +5461,7 @@ msgstr "" #. module: base #: help:res.country.state,code:0 -msgid "The state code in three chars.\n" +msgid "The state code in max. three chars." msgstr "" #. module: base diff --git a/openerp/addons/base/i18n/it.po b/openerp/addons/base/i18n/it.po index c5928215769..64f7a787c29 100644 --- a/openerp/addons/base/i18n/it.po +++ b/openerp/addons/base/i18n/it.po @@ -808,7 +808,7 @@ msgstr "" msgid "" "Manual: Launched manually.\n" "Automatic: Runs whenever the system is reconfigured.\n" -"Launch Manually Once: after hacing been launched manually, it sets " +"Launch Manually Once: after having been launched manually, it sets " "automatically to Done." msgstr "" @@ -5645,7 +5645,7 @@ msgstr "" #. module: base #: help:res.country.state,code:0 -msgid "The state code in three chars.\n" +msgid "The state code in max. three chars." msgstr "Il codice dello stato in 3 caratteri\n" #. module: base diff --git a/openerp/addons/base/i18n/ja.po b/openerp/addons/base/i18n/ja.po index 84f3f3d2c55..3b727699679 100644 --- a/openerp/addons/base/i18n/ja.po +++ b/openerp/addons/base/i18n/ja.po @@ -818,7 +818,7 @@ msgstr "" msgid "" "Manual: Launched manually.\n" "Automatic: Runs whenever the system is reconfigured.\n" -"Launch Manually Once: after hacing been launched manually, it sets " +"Launch Manually Once: after having been launched manually, it sets " "automatically to Done." msgstr "" "手動:手動起動\n" @@ -6134,7 +6134,7 @@ msgstr "" #. module: base #: help:res.country.state,code:0 -msgid "The state code in three chars.\n" +msgid "The state code in max. three chars." msgstr "" #. module: base diff --git a/openerp/addons/base/i18n/kk.po b/openerp/addons/base/i18n/kk.po index 0205a66a540..de3a57e6e0f 100644 --- a/openerp/addons/base/i18n/kk.po +++ b/openerp/addons/base/i18n/kk.po @@ -775,7 +775,7 @@ msgstr "" msgid "" "Manual: Launched manually.\n" "Automatic: Runs whenever the system is reconfigured.\n" -"Launch Manually Once: after hacing been launched manually, it sets " +"Launch Manually Once: after having been launched manually, it sets " "automatically to Done." msgstr "" @@ -5461,7 +5461,7 @@ msgstr "" #. module: base #: help:res.country.state,code:0 -msgid "The state code in three chars.\n" +msgid "The state code in max. three chars." msgstr "" #. module: base diff --git a/openerp/addons/base/i18n/ko.po b/openerp/addons/base/i18n/ko.po index c5026451183..a4141f5d609 100644 --- a/openerp/addons/base/i18n/ko.po +++ b/openerp/addons/base/i18n/ko.po @@ -784,7 +784,7 @@ msgstr "" msgid "" "Manual: Launched manually.\n" "Automatic: Runs whenever the system is reconfigured.\n" -"Launch Manually Once: after hacing been launched manually, it sets " +"Launch Manually Once: after having been launched manually, it sets " "automatically to Done." msgstr "" @@ -5518,7 +5518,7 @@ msgstr "" #. module: base #: help:res.country.state,code:0 -msgid "The state code in three chars.\n" +msgid "The state code in max. three chars." msgstr "3문자의 상태 코드\n" #. module: base diff --git a/openerp/addons/base/i18n/lt.po b/openerp/addons/base/i18n/lt.po index 66ff76f538c..8e0ae0d384e 100644 --- a/openerp/addons/base/i18n/lt.po +++ b/openerp/addons/base/i18n/lt.po @@ -778,7 +778,7 @@ msgstr "" msgid "" "Manual: Launched manually.\n" "Automatic: Runs whenever the system is reconfigured.\n" -"Launch Manually Once: after hacing been launched manually, it sets " +"Launch Manually Once: after having been launched manually, it sets " "automatically to Done." msgstr "" @@ -5483,7 +5483,7 @@ msgstr "" #. module: base #: help:res.country.state,code:0 -msgid "The state code in three chars.\n" +msgid "The state code in max. three chars." msgstr "Savivaldybės kodas iš trijų simbolių.\n" #. module: base diff --git a/openerp/addons/base/i18n/lt_LT.po b/openerp/addons/base/i18n/lt_LT.po index eb5c33417cd..409e6fe1bb7 100644 --- a/openerp/addons/base/i18n/lt_LT.po +++ b/openerp/addons/base/i18n/lt_LT.po @@ -5407,7 +5407,7 @@ msgstr "" #. module: base #: help:res.country.state,code:0 -msgid "The state code in three chars.\n" +msgid "The state code in max. three chars." "" msgstr "" diff --git a/openerp/addons/base/i18n/lv.po b/openerp/addons/base/i18n/lv.po index eedaf5de4fb..9f52a9bcaf8 100644 --- a/openerp/addons/base/i18n/lv.po +++ b/openerp/addons/base/i18n/lv.po @@ -786,7 +786,7 @@ msgstr "" msgid "" "Manual: Launched manually.\n" "Automatic: Runs whenever the system is reconfigured.\n" -"Launch Manually Once: after hacing been launched manually, it sets " +"Launch Manually Once: after having been launched manually, it sets " "automatically to Done." msgstr "" @@ -5514,7 +5514,7 @@ msgstr "" #. module: base #: help:res.country.state,code:0 -msgid "The state code in three chars.\n" +msgid "The state code in max. three chars." msgstr "Stāvokļa kods, sastāvošs no trīs burtiem.\n" #. module: base diff --git a/openerp/addons/base/i18n/mk.po b/openerp/addons/base/i18n/mk.po index 0544dbb6017..e5293173930 100644 --- a/openerp/addons/base/i18n/mk.po +++ b/openerp/addons/base/i18n/mk.po @@ -786,7 +786,7 @@ msgstr "" msgid "" "Manual: Launched manually.\n" "Automatic: Runs whenever the system is reconfigured.\n" -"Launch Manually Once: after hacing been launched manually, it sets " +"Launch Manually Once: after having been launched manually, it sets " "automatically to Done." msgstr "" @@ -5472,7 +5472,7 @@ msgstr "" #. module: base #: help:res.country.state,code:0 -msgid "The state code in three chars.\n" +msgid "The state code in max. three chars." msgstr "" #. module: base diff --git a/openerp/addons/base/i18n/mn.po b/openerp/addons/base/i18n/mn.po index b3f470baadd..7e7ce75c2ed 100644 --- a/openerp/addons/base/i18n/mn.po +++ b/openerp/addons/base/i18n/mn.po @@ -789,7 +789,7 @@ msgstr "" msgid "" "Manual: Launched manually.\n" "Automatic: Runs whenever the system is reconfigured.\n" -"Launch Manually Once: after hacing been launched manually, it sets " +"Launch Manually Once: after having been launched manually, it sets " "automatically to Done." msgstr "" @@ -5537,7 +5537,7 @@ msgstr "" #. module: base #: help:res.country.state,code:0 -msgid "The state code in three chars.\n" +msgid "The state code in max. three chars." msgstr "Мужийн код гурван тэмдэгтээр.\n" #. module: base diff --git a/openerp/addons/base/i18n/nb.po b/openerp/addons/base/i18n/nb.po index 42f7fd2da30..4d21f12d3c6 100644 --- a/openerp/addons/base/i18n/nb.po +++ b/openerp/addons/base/i18n/nb.po @@ -795,7 +795,7 @@ msgstr "" msgid "" "Manual: Launched manually.\n" "Automatic: Runs whenever the system is reconfigured.\n" -"Launch Manually Once: after hacing been launched manually, it sets " +"Launch Manually Once: after having been launched manually, it sets " "automatically to Done." msgstr "" @@ -5533,7 +5533,7 @@ msgstr "" #. module: base #: help:res.country.state,code:0 -msgid "The state code in three chars.\n" +msgid "The state code in max. three chars." msgstr "Koden til staten med tre karakterer.\n" #. module: base diff --git a/openerp/addons/base/i18n/nl.po b/openerp/addons/base/i18n/nl.po index 2b9799e8fa1..32a85ba06c4 100644 --- a/openerp/addons/base/i18n/nl.po +++ b/openerp/addons/base/i18n/nl.po @@ -7,14 +7,14 @@ msgstr "" "Project-Id-Version: OpenERP Server 5.0.0\n" "Report-Msgid-Bugs-To: support@openerp.com\n" "POT-Creation-Date: 2012-02-08 00:44+0000\n" -"PO-Revision-Date: 2012-02-12 19:08+0000\n" +"PO-Revision-Date: 2012-02-11 08:55+0000\n" "Last-Translator: Mario Gielissen \n" "Language-Team: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-02-13 04:49+0000\n" -"X-Generator: Launchpad (build 14781)\n" +"X-Launchpad-Export-Date: 2012-02-12 04:41+0000\n" +"X-Generator: Launchpad (build 14771)\n" #. module: base #: model:res.country,name:base.sh @@ -275,7 +275,7 @@ msgstr "Inuktitut / ᐃᓄᒃᑎᑐᑦ" #: model:ir.module.category,name:base.module_category_sales_management #: model:ir.module.module,shortdesc:base.module_sale msgid "Sales Management" -msgstr "Verkoopbeheer" +msgstr "" #. module: base #: view:res.partner:0 @@ -371,7 +371,7 @@ msgstr "Naam assistent" #. module: base #: model:res.groups,name:base.group_partner_manager msgid "Partner Manager" -msgstr "Partner beheer" +msgstr "" #. module: base #: model:ir.module.category,name:base.module_category_customer_relationship_management @@ -392,7 +392,7 @@ msgstr "Ongeldige group_by" #. module: base #: field:ir.module.category,child_ids:0 msgid "Child Applications" -msgstr "Child applicaties" +msgstr "" #. module: base #: field:res.partner,credit_limit:0 @@ -402,7 +402,7 @@ msgstr "Kredietlimiet" #. module: base #: model:ir.module.module,description:base.module_web_graph msgid "Openerp web graph view" -msgstr "Openerp web grafiek view" +msgstr "" #. module: base #: field:ir.model.data,date_update:0 @@ -412,7 +412,7 @@ msgstr "Wijzigingsdatum" #. module: base #: model:ir.module.module,shortdesc:base.module_base_action_rule msgid "Automated Action Rules" -msgstr "Automatische aktie regels" +msgstr "" #. module: base #: view:ir.attachment:0 @@ -573,7 +573,7 @@ msgstr "" #. module: base #: model:ir.module.module,shortdesc:base.module_sale_layout msgid "Sales Orders Print Layout" -msgstr "Verkooporder Afdruk Layout" +msgstr "" #. module: base #: selection:base.language.install,lang:0 @@ -752,7 +752,7 @@ msgstr "Eritrea" #. module: base #: sql_constraint:res.company:0 msgid "The company name must be unique !" -msgstr "De naam van het bedrijf moet uniek zijn!" +msgstr "" #. module: base #: view:res.config:0 @@ -790,7 +790,7 @@ msgstr "" #. module: base #: view:ir.mail_server:0 msgid "Security and Authentication" -msgstr "Beveiliging en Authenticatie" +msgstr "" #. module: base #: view:base.language.export:0 @@ -808,7 +808,7 @@ msgstr "" msgid "" "Manual: Launched manually.\n" "Automatic: Runs whenever the system is reconfigured.\n" -"Launch Manually Once: after hacing been launched manually, it sets " +"Launch Manually Once: after having been launched manually, it sets " "automatically to Done." msgstr "" @@ -881,7 +881,7 @@ msgstr "" #. module: base #: model:ir.module.module,shortdesc:base.module_document_webdav msgid "Shared Repositories (WebDAV)" -msgstr "Gedeelde Repositories (WebDAV)" +msgstr "" #. module: base #: model:ir.module.module,description:base.module_import_google @@ -1105,7 +1105,7 @@ msgstr "" #: code:addons/base/ir/ir_mail_server.py:192 #, python-format msgid "Connection test failed!" -msgstr "Verbindings test mislukt!" +msgstr "" #. module: base #: selection:ir.actions.server,state:0 @@ -1227,12 +1227,12 @@ msgstr "Spaans (GT) / Spanje (GT)" #. module: base #: field:ir.mail_server,smtp_port:0 msgid "SMTP Port" -msgstr "SMTP poort" +msgstr "" #. module: base #: model:ir.module.module,shortdesc:base.module_import_sugarcrm msgid "SugarCRM Import" -msgstr "SugarCRM Import" +msgstr "" #. module: base #: view:res.lang:0 @@ -1249,12 +1249,12 @@ msgstr "" #: code:addons/base/module/wizard/base_language_install.py:55 #, python-format msgid "Language Pack" -msgstr "Taalpakket" +msgstr "" #. module: base #: model:ir.module.module,shortdesc:base.module_web_tests msgid "Tests" -msgstr "Testen" +msgstr "" #. module: base #: field:ir.ui.view_sc,res_id:0 @@ -1315,7 +1315,7 @@ msgstr "" #. module: base #: field:ir.module.category,parent_id:0 msgid "Parent Application" -msgstr "Parent applicatie" +msgstr "" #. module: base #: code:addons/base/res/res_users.py:222 @@ -1332,7 +1332,7 @@ msgstr "Om een taal te exporteren, geen taal kiezen." #: model:ir.module.module,shortdesc:base.module_document #: model:ir.module.module,shortdesc:base.module_knowledge msgid "Document Management System" -msgstr "Document Beheer Systeem" +msgstr "" #. module: base #: model:ir.module.module,shortdesc:base.module_crm_claim @@ -1596,7 +1596,7 @@ msgstr "Drijvende comma" #: model:ir.module.category,name:base.module_category_warehouse_management #: model:ir.module.module,shortdesc:base.module_stock msgid "Warehouse Management" -msgstr "Magazijnbeheer" +msgstr "" #. module: base #: model:ir.model,name:base.model_res_request_link @@ -1769,8 +1769,6 @@ msgid "" "simplified payment mode encoding, automatic picking lists generation and " "more." msgstr "" -"Helpt u het meeste te halen uit uw kassa's met snelle codering, eenvoudige " -"betaalmethode codering, automatische piklijst generatie en meer." #. module: base #: model:res.country,name:base.mv @@ -1806,28 +1804,27 @@ msgstr "Dagen" #. module: base #: model:ir.module.module,shortdesc:base.module_web_rpc msgid "OpenERP Web web" -msgstr "OpenERP Web" +msgstr "" #. module: base #: model:ir.module.module,shortdesc:base.module_html_view msgid "Html View" -msgstr "Html weergave" +msgstr "" #. module: base #: field:res.currency,position:0 msgid "Symbol position" -msgstr "Symbool positie" +msgstr "" #. module: base #: model:ir.module.module,shortdesc:base.module_process msgid "Enterprise Process" -msgstr "Bedrijfsprocessen" +msgstr "" #. module: base #: help:ir.cron,function:0 msgid "Name of the method to be called when this job is processed." msgstr "" -"Naam van de methode die wordt aangeroepen als deze taak wordt uitgevoerd." #. module: base #: model:ir.module.module,shortdesc:base.module_hr_evaluation @@ -1849,7 +1846,7 @@ msgstr " (kopie)" #. module: base #: field:res.company,rml_footer1:0 msgid "General Information Footer" -msgstr "Algemene Info Voettekst" +msgstr "" #. module: base #: view:res.lang:0 @@ -1956,7 +1953,7 @@ msgstr "%s (kopie)" #. module: base #: model:ir.module.module,shortdesc:base.module_account_chart msgid "Template of Charts of Accounts" -msgstr "Grootboekschema template" +msgstr "" #. module: base #: field:res.partner.address,type:0 @@ -2043,12 +2040,12 @@ msgstr "Finland" #: code:addons/base/res/res_company.py:156 #, python-format msgid "Website: " -msgstr "Website: " +msgstr "" #. module: base #: model:ir.ui.menu,name:base.menu_administration msgid "Settings" -msgstr "Voorkeuren" +msgstr "" #. module: base #: selection:ir.actions.act_window,view_type:0 @@ -2080,8 +2077,6 @@ msgid "" "Display this bank account on the footer of printed documents like invoices " "and sales orders." msgstr "" -"Laat dit bankrekeningnummer zien in de voettekst van ieder afgedrukte " -"document zoals facturen en verkooporders." #. module: base #: view:base.language.import:0 @@ -2190,7 +2185,7 @@ msgstr "" #. module: base #: model:ir.module.module,shortdesc:base.module_subscription msgid "Recurring Documents" -msgstr "Herhalende documenten" +msgstr "" #. module: base #: model:res.country,name:base.bs @@ -2229,7 +2224,7 @@ msgstr "Aantal bijgewerkte modules" #. module: base #: field:ir.cron,function:0 msgid "Method" -msgstr "Methode" +msgstr "" #. module: base #: view:res.partner.event:0 @@ -2253,7 +2248,7 @@ msgstr "" #. module: base #: model:ir.module.module,shortdesc:base.module_base_setup msgid "Initial Setup Tools" -msgstr "Initiële Installatie Tools" +msgstr "" #. module: base #: field:ir.actions.act_window,groups_id:0 @@ -2315,7 +2310,7 @@ msgstr "Beginpagina componenten beheer" #. module: base #: field:res.company,rml_header1:0 msgid "Report Header / Company Slogan" -msgstr "Rapporthoofd / Bedrijfs slogan" +msgstr "" #. module: base #: model:res.country,name:base.pl @@ -2368,7 +2363,7 @@ msgstr "" #. module: base #: field:ir.mail_server,smtp_debug:0 msgid "Debugging" -msgstr "Fouten opsporen" +msgstr "" #. module: base #: model:ir.module.module,description:base.module_crm_helpdesk @@ -2478,12 +2473,12 @@ msgstr "Huidige koers" #. module: base #: model:ir.module.module,shortdesc:base.module_idea msgid "Ideas" -msgstr "Ideeën" +msgstr "" #. module: base #: model:ir.module.module,shortdesc:base.module_sale_crm msgid "Opportunity to Quotation" -msgstr "Verkoopkans naar offerte" +msgstr "" #. module: base #: model:ir.module.module,description:base.module_sale_analytic_plans @@ -2510,7 +2505,7 @@ msgstr "" #. module: base #: model:ir.actions.report.xml,name:base.report_ir_model_overview msgid "Model Overview" -msgstr "Model Overzicht" +msgstr "" #. module: base #: model:ir.module.module,shortdesc:base.module_product_margin @@ -2520,7 +2515,7 @@ msgstr "" #. module: base #: model:ir.ui.menu,name:base.menu_invoiced msgid "Invoicing" -msgstr "Facturering" +msgstr "" #. module: base #: field:ir.ui.view_sc,name:0 @@ -2561,7 +2556,7 @@ msgstr "" #: field:ir.model.data,res_id:0 #: field:ir.values,res_id:0 msgid "Record ID" -msgstr "Record-id" +msgstr "" #. module: base #: field:ir.actions.server,email:0 @@ -2645,7 +2640,7 @@ msgstr "Fout tijdens communicatie met de uitgevers garantie server." #: model:res.groups,name:base.group_sale_manager #: model:res.groups,name:base.group_tool_manager msgid "Manager" -msgstr "Beheer" +msgstr "" #. module: base #: model:ir.ui.menu,name:base.menu_custom @@ -2682,7 +2677,7 @@ msgstr "IDs opschonen" #. module: base #: view:res.groups:0 msgid "Inherited" -msgstr "Overgeërfd" +msgstr "" #. module: base #: field:ir.model.fields,serialization_field_id:0 @@ -2705,7 +2700,7 @@ msgstr "%y - Jaar zonder eeuw [00,99]." #: code:addons/base/res/res_company.py:155 #, python-format msgid "Fax: " -msgstr "Fax: " +msgstr "" #. module: base #: model:res.country,name:base.si @@ -5644,7 +5639,7 @@ msgstr "" #. module: base #: help:res.country.state,code:0 -msgid "The state code in three chars.\n" +msgid "The state code in max. three chars." msgstr "De provinciecode in drie karakters.\n" #. module: base diff --git a/openerp/addons/base/i18n/nl_BE.po b/openerp/addons/base/i18n/nl_BE.po index 526625a6597..7b720f4511d 100644 --- a/openerp/addons/base/i18n/nl_BE.po +++ b/openerp/addons/base/i18n/nl_BE.po @@ -790,7 +790,7 @@ msgstr "" msgid "" "Manual: Launched manually.\n" "Automatic: Runs whenever the system is reconfigured.\n" -"Launch Manually Once: after hacing been launched manually, it sets " +"Launch Manually Once: after having been launched manually, it sets " "automatically to Done." msgstr "" @@ -5476,7 +5476,7 @@ msgstr "" #. module: base #: help:res.country.state,code:0 -msgid "The state code in three chars.\n" +msgid "The state code in max. three chars." msgstr "" #. module: base diff --git a/openerp/addons/base/i18n/nl_NL.po b/openerp/addons/base/i18n/nl_NL.po index 216dc70bd16..061a453645b 100644 --- a/openerp/addons/base/i18n/nl_NL.po +++ b/openerp/addons/base/i18n/nl_NL.po @@ -5598,7 +5598,7 @@ msgstr "STOCK_MEDIA_PAUSE" #. module: base #: help:res.country.state,code:0 -msgid "The state code in three chars.\n" +msgid "The state code in max. three chars." msgstr "De provinciecode in drie karakters.\n" #. module: base diff --git a/openerp/addons/base/i18n/pl.po b/openerp/addons/base/i18n/pl.po index f78e5733b36..e7bd3ec9b14 100644 --- a/openerp/addons/base/i18n/pl.po +++ b/openerp/addons/base/i18n/pl.po @@ -793,7 +793,7 @@ msgstr "" msgid "" "Manual: Launched manually.\n" "Automatic: Runs whenever the system is reconfigured.\n" -"Launch Manually Once: after hacing been launched manually, it sets " +"Launch Manually Once: after having been launched manually, it sets " "automatically to Done." msgstr "" @@ -5578,7 +5578,7 @@ msgstr "" #. module: base #: help:res.country.state,code:0 -msgid "The state code in three chars.\n" +msgid "The state code in max. three chars." msgstr "Trzyliterowy kod regionu\n" #. module: base diff --git a/openerp/addons/base/i18n/pt.po b/openerp/addons/base/i18n/pt.po index edec4cffb17..fe6b53693cb 100644 --- a/openerp/addons/base/i18n/pt.po +++ b/openerp/addons/base/i18n/pt.po @@ -802,7 +802,7 @@ msgstr "" msgid "" "Manual: Launched manually.\n" "Automatic: Runs whenever the system is reconfigured.\n" -"Launch Manually Once: after hacing been launched manually, it sets " +"Launch Manually Once: after having been launched manually, it sets " "automatically to Done." msgstr "" @@ -5567,7 +5567,7 @@ msgstr "" #. module: base #: help:res.country.state,code:0 -msgid "The state code in three chars.\n" +msgid "The state code in max. three chars." msgstr "O código do estado com três caracteres\n" #. module: base diff --git a/openerp/addons/base/i18n/pt_BR.po b/openerp/addons/base/i18n/pt_BR.po index 6f1dc01c7da..8eec70f77b6 100644 --- a/openerp/addons/base/i18n/pt_BR.po +++ b/openerp/addons/base/i18n/pt_BR.po @@ -13,8 +13,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-02-13 04:49+0000\n" -"X-Generator: Launchpad (build 14781)\n" +"X-Launchpad-Export-Date: 2012-02-12 04:42+0000\n" +"X-Generator: Launchpad (build 14771)\n" #. module: base #: model:res.country,name:base.sh @@ -840,7 +840,7 @@ msgstr "" msgid "" "Manual: Launched manually.\n" "Automatic: Runs whenever the system is reconfigured.\n" -"Launch Manually Once: after hacing been launched manually, it sets " +"Launch Manually Once: after having been launched manually, it sets " "automatically to Done." msgstr "" "Manual: Iniciado manualmente\n" @@ -5850,7 +5850,7 @@ msgstr "" #. module: base #: help:res.country.state,code:0 -msgid "The state code in three chars.\n" +msgid "The state code in max. three chars." msgstr "O código de situação com 3 caracteres.\n" #. module: base diff --git a/openerp/addons/base/i18n/ro.po b/openerp/addons/base/i18n/ro.po index 3e947cbbfc9..27ff3506cea 100644 --- a/openerp/addons/base/i18n/ro.po +++ b/openerp/addons/base/i18n/ro.po @@ -811,7 +811,7 @@ msgstr "" msgid "" "Manual: Launched manually.\n" "Automatic: Runs whenever the system is reconfigured.\n" -"Launch Manually Once: after hacing been launched manually, it sets " +"Launch Manually Once: after having been launched manually, it sets " "automatically to Done." msgstr "" @@ -5649,7 +5649,7 @@ msgstr "" #. module: base #: help:res.country.state,code:0 -msgid "The state code in three chars.\n" +msgid "The state code in max. three chars." msgstr "Codul statului, din trei caractere.\n" #. module: base diff --git a/openerp/addons/base/i18n/ru.po b/openerp/addons/base/i18n/ru.po index 62c4e6698cd..835efe3fa58 100644 --- a/openerp/addons/base/i18n/ru.po +++ b/openerp/addons/base/i18n/ru.po @@ -806,7 +806,7 @@ msgstr "" msgid "" "Manual: Launched manually.\n" "Automatic: Runs whenever the system is reconfigured.\n" -"Launch Manually Once: after hacing been launched manually, it sets " +"Launch Manually Once: after having been launched manually, it sets " "automatically to Done." msgstr "" @@ -5628,7 +5628,7 @@ msgstr "" #. module: base #: help:res.country.state,code:0 -msgid "The state code in three chars.\n" +msgid "The state code in max. three chars." msgstr "Код области из трёх букв.\n" #. module: base diff --git a/openerp/addons/base/i18n/sk.po b/openerp/addons/base/i18n/sk.po index 46f537ae09e..c4fb21e7f70 100644 --- a/openerp/addons/base/i18n/sk.po +++ b/openerp/addons/base/i18n/sk.po @@ -792,7 +792,7 @@ msgstr "" msgid "" "Manual: Launched manually.\n" "Automatic: Runs whenever the system is reconfigured.\n" -"Launch Manually Once: after hacing been launched manually, it sets " +"Launch Manually Once: after having been launched manually, it sets " "automatically to Done." msgstr "" @@ -5574,7 +5574,7 @@ msgstr "" #. module: base #: help:res.country.state,code:0 -msgid "The state code in three chars.\n" +msgid "The state code in max. three chars." msgstr "Kód štátu na 3 znaky.\n" #. module: base diff --git a/openerp/addons/base/i18n/sl.po b/openerp/addons/base/i18n/sl.po index a344ffba70b..0de03559923 100644 --- a/openerp/addons/base/i18n/sl.po +++ b/openerp/addons/base/i18n/sl.po @@ -801,7 +801,7 @@ msgstr "" msgid "" "Manual: Launched manually.\n" "Automatic: Runs whenever the system is reconfigured.\n" -"Launch Manually Once: after hacing been launched manually, it sets " +"Launch Manually Once: after having been launched manually, it sets " "automatically to Done." msgstr "" @@ -5617,7 +5617,7 @@ msgstr "" #. module: base #: help:res.country.state,code:0 -msgid "The state code in three chars.\n" +msgid "The state code in max. three chars." msgstr "Koda zvezne države v treh znakih.\n" #. module: base diff --git a/openerp/addons/base/i18n/sq.po b/openerp/addons/base/i18n/sq.po index 38896cd6a56..297d3f37ea9 100644 --- a/openerp/addons/base/i18n/sq.po +++ b/openerp/addons/base/i18n/sq.po @@ -774,7 +774,7 @@ msgstr "" msgid "" "Manual: Launched manually.\n" "Automatic: Runs whenever the system is reconfigured.\n" -"Launch Manually Once: after hacing been launched manually, it sets " +"Launch Manually Once: after having been launched manually, it sets " "automatically to Done." msgstr "" @@ -5460,7 +5460,7 @@ msgstr "" #. module: base #: help:res.country.state,code:0 -msgid "The state code in three chars.\n" +msgid "The state code in max. three chars." msgstr "" #. module: base diff --git a/openerp/addons/base/i18n/sr.po b/openerp/addons/base/i18n/sr.po index ad02d9eec00..65f02a38fce 100644 --- a/openerp/addons/base/i18n/sr.po +++ b/openerp/addons/base/i18n/sr.po @@ -795,7 +795,7 @@ msgstr "" msgid "" "Manual: Launched manually.\n" "Automatic: Runs whenever the system is reconfigured.\n" -"Launch Manually Once: after hacing been launched manually, it sets " +"Launch Manually Once: after having been launched manually, it sets " "automatically to Done." msgstr "" @@ -5561,7 +5561,7 @@ msgstr "" #. module: base #: help:res.country.state,code:0 -msgid "The state code in three chars.\n" +msgid "The state code in max. three chars." msgstr "Šifra države u ti karaktera.\n" #. module: base diff --git a/openerp/addons/base/i18n/sr@latin.po b/openerp/addons/base/i18n/sr@latin.po index 6435154a90a..92ba916bf1a 100644 --- a/openerp/addons/base/i18n/sr@latin.po +++ b/openerp/addons/base/i18n/sr@latin.po @@ -837,7 +837,7 @@ msgstr "" msgid "" "Manual: Launched manually.\n" "Automatic: Runs whenever the system is reconfigured.\n" -"Launch Manually Once: after hacing been launched manually, it sets " +"Launch Manually Once: after having been launched manually, it sets " "automatically to Done." msgstr "" "Ručno: Pokrenuto ručno.\n" @@ -5644,7 +5644,7 @@ msgstr "" #. module: base #: help:res.country.state,code:0 -msgid "The state code in three chars.\n" +msgid "The state code in max. three chars." msgstr "" #. module: base diff --git a/openerp/addons/base/i18n/sv.po b/openerp/addons/base/i18n/sv.po index ddb985cb2a8..c9d0a27b8c9 100644 --- a/openerp/addons/base/i18n/sv.po +++ b/openerp/addons/base/i18n/sv.po @@ -797,7 +797,7 @@ msgstr "" msgid "" "Manual: Launched manually.\n" "Automatic: Runs whenever the system is reconfigured.\n" -"Launch Manually Once: after hacing been launched manually, it sets " +"Launch Manually Once: after having been launched manually, it sets " "automatically to Done." msgstr "" @@ -5583,7 +5583,7 @@ msgstr "" #. module: base #: help:res.country.state,code:0 -msgid "The state code in three chars.\n" +msgid "The state code in max. three chars." msgstr "Landskod, tre tecken\n" #. module: base diff --git a/openerp/addons/base/i18n/th.po b/openerp/addons/base/i18n/th.po index 5dc4e9d0386..0951f766fca 100644 --- a/openerp/addons/base/i18n/th.po +++ b/openerp/addons/base/i18n/th.po @@ -775,7 +775,7 @@ msgstr "" msgid "" "Manual: Launched manually.\n" "Automatic: Runs whenever the system is reconfigured.\n" -"Launch Manually Once: after hacing been launched manually, it sets " +"Launch Manually Once: after having been launched manually, it sets " "automatically to Done." msgstr "" @@ -5461,7 +5461,7 @@ msgstr "" #. module: base #: help:res.country.state,code:0 -msgid "The state code in three chars.\n" +msgid "The state code in max. three chars." msgstr "" #. module: base diff --git a/openerp/addons/base/i18n/tlh.po b/openerp/addons/base/i18n/tlh.po index b2500e94c1e..1c087b508eb 100644 --- a/openerp/addons/base/i18n/tlh.po +++ b/openerp/addons/base/i18n/tlh.po @@ -774,7 +774,7 @@ msgstr "" msgid "" "Manual: Launched manually.\n" "Automatic: Runs whenever the system is reconfigured.\n" -"Launch Manually Once: after hacing been launched manually, it sets " +"Launch Manually Once: after having been launched manually, it sets " "automatically to Done." msgstr "" @@ -5460,7 +5460,7 @@ msgstr "" #. module: base #: help:res.country.state,code:0 -msgid "The state code in three chars.\n" +msgid "The state code in max. three chars." msgstr "" #. module: base diff --git a/openerp/addons/base/i18n/tr.po b/openerp/addons/base/i18n/tr.po index 49dea1a9448..b9d1bb2a7c5 100644 --- a/openerp/addons/base/i18n/tr.po +++ b/openerp/addons/base/i18n/tr.po @@ -806,7 +806,7 @@ msgstr "" msgid "" "Manual: Launched manually.\n" "Automatic: Runs whenever the system is reconfigured.\n" -"Launch Manually Once: after hacing been launched manually, it sets " +"Launch Manually Once: after having been launched manually, it sets " "automatically to Done." msgstr "" @@ -5662,7 +5662,7 @@ msgstr "" #. module: base #: help:res.country.state,code:0 -msgid "The state code in three chars.\n" +msgid "The state code in max. three chars." msgstr "Üç karakterden oluşan eyalet kodu.\n" #. module: base diff --git a/openerp/addons/base/i18n/uk.po b/openerp/addons/base/i18n/uk.po index 8a22baa55ba..1ded396d476 100644 --- a/openerp/addons/base/i18n/uk.po +++ b/openerp/addons/base/i18n/uk.po @@ -796,7 +796,7 @@ msgstr "" msgid "" "Manual: Launched manually.\n" "Automatic: Runs whenever the system is reconfigured.\n" -"Launch Manually Once: after hacing been launched manually, it sets " +"Launch Manually Once: after having been launched manually, it sets " "automatically to Done." msgstr "" @@ -5507,7 +5507,7 @@ msgstr "" #. module: base #: help:res.country.state,code:0 -msgid "The state code in three chars.\n" +msgid "The state code in max. three chars." msgstr "Код області довжиною в три букви.\n" #. module: base diff --git a/openerp/addons/base/i18n/uk_UA.po b/openerp/addons/base/i18n/uk_UA.po index a33cdf8b473..87fbfe76e2b 100644 --- a/openerp/addons/base/i18n/uk_UA.po +++ b/openerp/addons/base/i18n/uk_UA.po @@ -5424,7 +5424,7 @@ msgstr "STOCK_MEDIA_PAUSE" #. module: base #: help:res.country.state,code:0 -msgid "The state code in three chars.\n" +msgid "The state code in max. three chars." "" msgstr "" diff --git a/openerp/addons/base/i18n/ur.po b/openerp/addons/base/i18n/ur.po index b9467f4518a..a45da1f2dad 100644 --- a/openerp/addons/base/i18n/ur.po +++ b/openerp/addons/base/i18n/ur.po @@ -775,7 +775,7 @@ msgstr "" msgid "" "Manual: Launched manually.\n" "Automatic: Runs whenever the system is reconfigured.\n" -"Launch Manually Once: after hacing been launched manually, it sets " +"Launch Manually Once: after having been launched manually, it sets " "automatically to Done." msgstr "" @@ -5461,7 +5461,7 @@ msgstr "" #. module: base #: help:res.country.state,code:0 -msgid "The state code in three chars.\n" +msgid "The state code in max. three chars." msgstr "" #. module: base diff --git a/openerp/addons/base/i18n/vi.po b/openerp/addons/base/i18n/vi.po index d12ece2051f..d8e03b80386 100644 --- a/openerp/addons/base/i18n/vi.po +++ b/openerp/addons/base/i18n/vi.po @@ -799,7 +799,7 @@ msgstr "" msgid "" "Manual: Launched manually.\n" "Automatic: Runs whenever the system is reconfigured.\n" -"Launch Manually Once: after hacing been launched manually, it sets " +"Launch Manually Once: after having been launched manually, it sets " "automatically to Done." msgstr "" @@ -5490,7 +5490,7 @@ msgstr "" #. module: base #: help:res.country.state,code:0 -msgid "The state code in three chars.\n" +msgid "The state code in max. three chars." msgstr "" #. module: base diff --git a/openerp/addons/base/i18n/zh_CN.po b/openerp/addons/base/i18n/zh_CN.po index fe7a5cc0aaa..7b618b1e0e5 100644 --- a/openerp/addons/base/i18n/zh_CN.po +++ b/openerp/addons/base/i18n/zh_CN.po @@ -821,7 +821,7 @@ msgstr "OpenERP的翻译在Launchpad.net网站上进行,OpenERP项目本身也 msgid "" "Manual: Launched manually.\n" "Automatic: Runs whenever the system is reconfigured.\n" -"Launch Manually Once: after hacing been launched manually, it sets " +"Launch Manually Once: after having been launched manually, it sets " "automatically to Done." msgstr "" "手动:手动执行\n" @@ -5895,7 +5895,7 @@ msgstr "" #. module: base #: help:res.country.state,code:0 -msgid "The state code in three chars.\n" +msgid "The state code in max. three chars." msgstr "三个字符的省/州代码\n" #. module: base diff --git a/openerp/addons/base/i18n/zh_HK.po b/openerp/addons/base/i18n/zh_HK.po index 30dc4956d39..06a099c2196 100644 --- a/openerp/addons/base/i18n/zh_HK.po +++ b/openerp/addons/base/i18n/zh_HK.po @@ -775,7 +775,7 @@ msgstr "" msgid "" "Manual: Launched manually.\n" "Automatic: Runs whenever the system is reconfigured.\n" -"Launch Manually Once: after hacing been launched manually, it sets " +"Launch Manually Once: after having been launched manually, it sets " "automatically to Done." msgstr "" @@ -5461,7 +5461,7 @@ msgstr "" #. module: base #: help:res.country.state,code:0 -msgid "The state code in three chars.\n" +msgid "The state code in max. three chars." msgstr "" #. module: base diff --git a/openerp/addons/base/i18n/zh_TW.po b/openerp/addons/base/i18n/zh_TW.po index cacb85a6f34..5b6c6c37767 100644 --- a/openerp/addons/base/i18n/zh_TW.po +++ b/openerp/addons/base/i18n/zh_TW.po @@ -779,7 +779,7 @@ msgstr "" msgid "" "Manual: Launched manually.\n" "Automatic: Runs whenever the system is reconfigured.\n" -"Launch Manually Once: after hacing been launched manually, it sets " +"Launch Manually Once: after having been launched manually, it sets " "automatically to Done." msgstr "" @@ -5470,7 +5470,7 @@ msgstr "" #. module: base #: help:res.country.state,code:0 -msgid "The state code in three chars.\n" +msgid "The state code in max. three chars." msgstr "三個字元之省或州代碼\n" #. module: base diff --git a/openerp/addons/base/ir/ir_actions.py b/openerp/addons/base/ir/ir_actions.py index 236c6af7119..0a282503570 100644 --- a/openerp/addons/base/ir/ir_actions.py +++ b/openerp/addons/base/ir/ir_actions.py @@ -619,7 +619,7 @@ class actions_server(osv.osv): # ids : original ids # id : current id of the object # OUT: - # False : Finnished correctly + # False : Finished correctly # ACTION_ID : Action to launch # FIXME: refactor all the eval() calls in run()! @@ -831,7 +831,7 @@ class ir_actions_todo(osv.osv): 'type': fields.selection(TODO_TYPES, 'Type', required=True, help="""Manual: Launched manually. Automatic: Runs whenever the system is reconfigured. -Launch Manually Once: after hacing been launched manually, it sets automatically to Done."""), +Launch Manually Once: after having been launched manually, it sets automatically to Done."""), 'groups_id': fields.many2many('res.groups', 'res_groups_action_rel', 'uid', 'gid', 'Groups'), 'note': fields.text('Text', translate=True), 'category_id': fields.many2one('ir.actions.todo.category','Category'), diff --git a/openerp/addons/base/res/res_country.py b/openerp/addons/base/res/res_country.py index f240784dc47..d0269dd4df1 100644 --- a/openerp/addons/base/res/res_country.py +++ b/openerp/addons/base/res/res_country.py @@ -86,9 +86,10 @@ class CountryState(osv.osv): _columns = { 'country_id': fields.many2one('res.country', 'Country', required=True), - 'name': fields.char('State Name', size=64, required=True), + 'name': fields.char('State Name', size=64, required=True, + help='Administrative divisions of a country. E.g. Fed. State, Departement, Canton'), 'code': fields.char('State Code', size=3, - help='The state code in three chars.\n', required=True), + help='The state code in max. three chars.', required=True), } def name_search(self, cr, user, name='', args=None, operator='ilike', context=None, limit=100): diff --git a/openerp/release.py b/openerp/release.py index bd3935713b9..1f573c54814 100644 --- a/openerp/release.py +++ b/openerp/release.py @@ -1,4 +1,4 @@ -# -*- encoding: utf-8 -*- +# -*- coding: utf-8 -*- ############################################################################## # # OpenERP, Open Source Management Solution diff --git a/openerp/service/http_server.py b/openerp/service/http_server.py index 07e31ea9c7d..5fb46b42ffc 100644 --- a/openerp/service/http_server.py +++ b/openerp/service/http_server.py @@ -5,10 +5,10 @@ # # # WARNING: This program as such is intended to be used by professional -# programmers who take the whole responsability of assessing all potential +# programmers who take the whole responsibility of assessing all potential # consequences resulting from its eventual inadequacies and bugs # End users who are looking for a ready-to-use solution with commercial -# garantees and support are strongly adviced to contract a Free Software +# guarantees and support are strongly advised to contract a Free Software # Service Company # # This program is Free Software; you can redistribute it and/or diff --git a/openerp/service/websrv_lib.py b/openerp/service/websrv_lib.py index 4da6536ed51..d9f654f4edb 100644 --- a/openerp/service/websrv_lib.py +++ b/openerp/service/websrv_lib.py @@ -3,10 +3,10 @@ # Copyright P. Christeas 2008-2010 # # WARNING: This program as such is intended to be used by professional -# programmers who take the whole responsability of assessing all potential +# programmers who take the whole responsibility of assessing all potential # consequences resulting from its eventual inadequacies and bugs # End users who are looking for a ready-to-use solution with commercial -# garantees and support are strongly adviced to contract a Free Software +# guarantees and support are strongly advised to contract a Free Software # Service Company # # This program is Free Software; you can redistribute it and/or diff --git a/openerp/tools/yaml_import.py b/openerp/tools/yaml_import.py index c36376ba1b7..1c676e3a1c6 100644 --- a/openerp/tools/yaml_import.py +++ b/openerp/tools/yaml_import.py @@ -1,4 +1,4 @@ -# -*- encoding: utf-8 -*- +# -*- coding: utf-8 -*- import threading import types import time # used to eval time.strftime expressions From 0ea407eb5ab51e604ad5550d8d0672bd659a3a73 Mon Sep 17 00:00:00 2001 From: Bogdan Stanciu Date: Sun, 12 Feb 2012 12:48:12 +0100 Subject: [PATCH 017/569] [IMP] added two address formats (CH and RO) bzr revid: bogdanovidiu.stanciu@gmail.com-20120212114812-dbt4jy0jxisn55x8 --- openerp/addons/base/base_data.xml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/openerp/addons/base/base_data.xml b/openerp/addons/base/base_data.xml index 03e62dd6ba6..1c4e7fc639b 100644 --- a/openerp/addons/base/base_data.xml +++ b/openerp/addons/base/base_data.xml @@ -197,6 +197,7 @@ Switzerland ch + Ivory Coast (Cote D'Ivoire) @@ -767,6 +768,7 @@ Romania ro + Russian Federation From 434af1f37af3267797a08b65b4c39ce132bbad4e Mon Sep 17 00:00:00 2001 From: Bogdan Stanciu Date: Sun, 12 Feb 2012 13:25:57 +0100 Subject: [PATCH 018/569] [IMP] corrected a few titles vs. "shortcuts" and added three titles to res.partner.title bzr revid: bogdanovidiu.stanciu@gmail.com-20120212122557-6od8yipxs6bp31ht --- openerp/addons/base/i18n/af.po | 6 ++-- openerp/addons/base/i18n/am.po | 6 ++-- openerp/addons/base/i18n/ar.po | 6 ++-- openerp/addons/base/i18n/base.pot | 35 ++++++++++++++++++-- openerp/addons/base/i18n/bg.po | 8 ++--- openerp/addons/base/i18n/bs.po | 6 ++-- openerp/addons/base/i18n/ca.po | 6 ++-- openerp/addons/base/i18n/cs.po | 8 ++--- openerp/addons/base/i18n/da.po | 6 ++-- openerp/addons/base/i18n/de.po | 6 ++-- openerp/addons/base/i18n/el.po | 6 ++-- openerp/addons/base/i18n/en_GB.po | 12 +++---- openerp/addons/base/i18n/es.po | 6 ++-- openerp/addons/base/i18n/es_CL.po | 6 ++-- openerp/addons/base/i18n/es_CR.po | 6 ++-- openerp/addons/base/i18n/es_EC.po | 10 +++--- openerp/addons/base/i18n/et.po | 6 ++-- openerp/addons/base/i18n/eu.po | 6 ++-- openerp/addons/base/i18n/fa.po | 6 ++-- openerp/addons/base/i18n/fa_AF.po | 6 ++-- openerp/addons/base/i18n/fi.po | 8 ++--- openerp/addons/base/i18n/fr.po | 6 ++-- openerp/addons/base/i18n/gl.po | 10 +++--- openerp/addons/base/i18n/he.po | 6 ++-- openerp/addons/base/i18n/hr.po | 6 ++-- openerp/addons/base/i18n/hu.po | 10 +++--- openerp/addons/base/i18n/hy.po | 6 ++-- openerp/addons/base/i18n/id.po | 6 ++-- openerp/addons/base/i18n/is.po | 6 ++-- openerp/addons/base/i18n/it.po | 10 +++--- openerp/addons/base/i18n/ja.po | 6 ++-- openerp/addons/base/i18n/kk.po | 6 ++-- openerp/addons/base/i18n/ko.po | 6 ++-- openerp/addons/base/i18n/lt.po | 6 ++-- openerp/addons/base/i18n/lv.po | 6 ++-- openerp/addons/base/i18n/mk.po | 6 ++-- openerp/addons/base/i18n/mn.po | 8 ++--- openerp/addons/base/i18n/nb.po | 8 ++--- openerp/addons/base/i18n/nl.po | 6 ++-- openerp/addons/base/i18n/nl_BE.po | 6 ++-- openerp/addons/base/i18n/pl.po | 6 ++-- openerp/addons/base/i18n/pt.po | 6 ++-- openerp/addons/base/i18n/pt_BR.po | 8 ++--- openerp/addons/base/i18n/ro.po | 6 ++-- openerp/addons/base/i18n/ru.po | 6 ++-- openerp/addons/base/i18n/sk.po | 6 ++-- openerp/addons/base/i18n/sl.po | 6 ++-- openerp/addons/base/i18n/sq.po | 6 ++-- openerp/addons/base/i18n/sr.po | 12 +++---- openerp/addons/base/i18n/sr@latin.po | 6 ++-- openerp/addons/base/i18n/sv.po | 8 ++--- openerp/addons/base/i18n/th.po | 6 ++-- openerp/addons/base/i18n/tlh.po | 6 ++-- openerp/addons/base/i18n/tr.po | 8 ++--- openerp/addons/base/i18n/uk.po | 6 ++-- openerp/addons/base/i18n/ur.po | 6 ++-- openerp/addons/base/i18n/vi.po | 6 ++-- openerp/addons/base/i18n/zh_CN.po | 8 ++--- openerp/addons/base/i18n/zh_HK.po | 6 ++-- openerp/addons/base/i18n/zh_TW.po | 6 ++-- openerp/addons/base/res/res_partner_data.xml | 21 ++++++++++-- 61 files changed, 250 insertions(+), 206 deletions(-) diff --git a/openerp/addons/base/i18n/af.po b/openerp/addons/base/i18n/af.po index 10b7c035815..5b00d0558af 100644 --- a/openerp/addons/base/i18n/af.po +++ b/openerp/addons/base/i18n/af.po @@ -3682,7 +3682,7 @@ msgstr "" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_sir -msgid "M." +msgid "Mr." msgstr "" #. module: base @@ -10995,7 +10995,7 @@ msgstr "" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_miss -msgid "Mss" +msgid "Miss" msgstr "" #. module: base @@ -11115,7 +11115,7 @@ msgstr "" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_madam -msgid "Ms." +msgid "Mrs." msgstr "" #. module: base diff --git a/openerp/addons/base/i18n/am.po b/openerp/addons/base/i18n/am.po index 3214ddec3a7..b1e142e769b 100644 --- a/openerp/addons/base/i18n/am.po +++ b/openerp/addons/base/i18n/am.po @@ -3682,7 +3682,7 @@ msgstr "" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_sir -msgid "M." +msgid "Mr." msgstr "" #. module: base @@ -10995,7 +10995,7 @@ msgstr "" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_miss -msgid "Mss" +msgid "Miss" msgstr "" #. module: base @@ -11115,7 +11115,7 @@ msgstr "" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_madam -msgid "Ms." +msgid "Mrs." msgstr "" #. module: base diff --git a/openerp/addons/base/i18n/ar.po b/openerp/addons/base/i18n/ar.po index 5912643d3c0..98baaf19bf1 100644 --- a/openerp/addons/base/i18n/ar.po +++ b/openerp/addons/base/i18n/ar.po @@ -3745,7 +3745,7 @@ msgstr "GPL-2 أو إصدار أحدث" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_sir -msgid "M." +msgid "Mr." msgstr "" #. module: base @@ -11110,7 +11110,7 @@ msgstr "المتواليات" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_miss -msgid "Mss" +msgid "Miss" msgstr "" #. module: base @@ -11233,7 +11233,7 @@ msgstr "مرشح الفرز" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_madam -msgid "Ms." +msgid "Mrs." msgstr "السيدة" #. module: base diff --git a/openerp/addons/base/i18n/base.pot b/openerp/addons/base/i18n/base.pot index c1ca9862e96..0a97521219b 100644 --- a/openerp/addons/base/i18n/base.pot +++ b/openerp/addons/base/i18n/base.pot @@ -3430,7 +3430,7 @@ msgstr "" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_sir -msgid "M." +msgid "Sir" msgstr "" #. module: base @@ -10134,7 +10134,7 @@ msgstr "" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_miss -msgid "Mss" +msgid "Miss" msgstr "" #. module: base @@ -10249,7 +10249,7 @@ msgstr "" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_madam -msgid "Ms." +msgid "Mrs." msgstr "" #. module: base @@ -11306,6 +11306,35 @@ msgstr "" msgid "Madam" msgstr "" +#. module: base +#: model:res.partner.title,name:base.res_partner_title_mister +msgid "Mister" +msgstr "" +#. module: base +#: model:res.partner.title,name:base.res_partner_title_doctor +msgid "Doctor" +msgstr "" +#. module: base +#: model:res.partner.title,name:base.res_partner_title_prof +msgid "Professor" +msgstr "" + +#. module: base +#: model:res.partner.title,shortcut:base.res_partner_title_mister +msgid "Mr." +msgstr "" + +#. module: base +#: model:res.partner.title,shortcut:base.res_partner_title_doctor +msgid "Dr." +msgstr "" + +#. module: base +#: model:res.partner.title,shortcut:base.res_partner_title_prof +msgid "Prof." +msgstr "" + + #. module: base #: model:res.country,name:base.ee msgid "Estonia" diff --git a/openerp/addons/base/i18n/bg.po b/openerp/addons/base/i18n/bg.po index 5f070859688..327c1e65c8a 100644 --- a/openerp/addons/base/i18n/bg.po +++ b/openerp/addons/base/i18n/bg.po @@ -3751,8 +3751,8 @@ msgstr "GPL версия 2 или по-нова" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_sir -msgid "M." -msgstr "M." +msgid "Mr." +msgstr "Mr." #. module: base #: code:addons/base/module/module.py:519 @@ -11115,7 +11115,7 @@ msgstr "Последователност" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_miss -msgid "Mss" +msgid "Miss" msgstr "" #. module: base @@ -11235,7 +11235,7 @@ msgstr "Филтър" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_madam -msgid "Ms." +msgid "Mrs." msgstr "Г-жа" #. module: base diff --git a/openerp/addons/base/i18n/bs.po b/openerp/addons/base/i18n/bs.po index f4a109a9f86..bdf09238918 100644 --- a/openerp/addons/base/i18n/bs.po +++ b/openerp/addons/base/i18n/bs.po @@ -3690,7 +3690,7 @@ msgstr "GPL-2 ili novija verzija" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_sir -msgid "M." +msgid "Mr." msgstr "" #. module: base @@ -11003,7 +11003,7 @@ msgstr "Sekvence" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_miss -msgid "Mss" +msgid "Miss" msgstr "" #. module: base @@ -11123,7 +11123,7 @@ msgstr "" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_madam -msgid "Ms." +msgid "Mrs." msgstr "" #. module: base diff --git a/openerp/addons/base/i18n/ca.po b/openerp/addons/base/i18n/ca.po index dbcc9dd3c31..f4d57a65484 100644 --- a/openerp/addons/base/i18n/ca.po +++ b/openerp/addons/base/i18n/ca.po @@ -3805,7 +3805,7 @@ msgstr "GPL-2 o versió posterior" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_sir -msgid "M." +msgid "Mr." msgstr "Sr." #. module: base @@ -11259,7 +11259,7 @@ msgstr "Seqüències" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_miss -msgid "Mss" +msgid "Miss" msgstr "Sra." #. module: base @@ -11385,7 +11385,7 @@ msgstr "Filtre" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_madam -msgid "Ms." +msgid "Mrs." msgstr "Sra." #. module: base diff --git a/openerp/addons/base/i18n/cs.po b/openerp/addons/base/i18n/cs.po index 08924e330d5..a72e16f34dc 100644 --- a/openerp/addons/base/i18n/cs.po +++ b/openerp/addons/base/i18n/cs.po @@ -3822,8 +3822,8 @@ msgstr "GPL-2 nebo pozdější verze" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_sir -msgid "M." -msgstr "M." +msgid "Mr." +msgstr "Mr." #. module: base #: code:addons/base/module/module.py:519 @@ -11233,7 +11233,7 @@ msgstr "Posloupnosti" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_miss -msgid "Mss" +msgid "Miss" msgstr "Paní" #. module: base @@ -11355,7 +11355,7 @@ msgstr "Filtr" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_madam -msgid "Ms." +msgid "Mrs." msgstr "Pan" #. module: base diff --git a/openerp/addons/base/i18n/da.po b/openerp/addons/base/i18n/da.po index d4fdbe01cc4..53663056459 100644 --- a/openerp/addons/base/i18n/da.po +++ b/openerp/addons/base/i18n/da.po @@ -3682,7 +3682,7 @@ msgstr "" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_sir -msgid "M." +msgid "Mr." msgstr "" #. module: base @@ -10995,7 +10995,7 @@ msgstr "Sekvenser" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_miss -msgid "Mss" +msgid "Miss" msgstr "" #. module: base @@ -11115,7 +11115,7 @@ msgstr "" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_madam -msgid "Ms." +msgid "Mrs." msgstr "" #. module: base diff --git a/openerp/addons/base/i18n/de.po b/openerp/addons/base/i18n/de.po index 13f9e6f19da..40bcd5b9b72 100644 --- a/openerp/addons/base/i18n/de.po +++ b/openerp/addons/base/i18n/de.po @@ -3835,7 +3835,7 @@ msgstr "GPL-2 oder höher" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_sir -msgid "M." +msgid "Mr." msgstr "Hr." #. module: base @@ -11360,7 +11360,7 @@ msgstr "Sequenzen" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_miss -msgid "Mss" +msgid "Miss" msgstr "Frau" #. module: base @@ -11485,7 +11485,7 @@ msgstr "Filter" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_madam -msgid "Ms." +msgid "Mrs." msgstr "Frau" #. module: base diff --git a/openerp/addons/base/i18n/el.po b/openerp/addons/base/i18n/el.po index 9f1dc8937e1..22febb8de85 100644 --- a/openerp/addons/base/i18n/el.po +++ b/openerp/addons/base/i18n/el.po @@ -3776,7 +3776,7 @@ msgstr "GPL-2 ή μεταγενέστερη έκδοση" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_sir -msgid "M." +msgid "Mr." msgstr "" #. module: base @@ -11159,7 +11159,7 @@ msgstr "Ιεραρχήσεις" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_miss -msgid "Mss" +msgid "Miss" msgstr "" #. module: base @@ -11281,7 +11281,7 @@ msgstr "Φίλτρο" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_madam -msgid "Ms." +msgid "Mrs." msgstr "Κα/Δς" #. module: base diff --git a/openerp/addons/base/i18n/en_GB.po b/openerp/addons/base/i18n/en_GB.po index 2c9d775d610..bc509103502 100644 --- a/openerp/addons/base/i18n/en_GB.po +++ b/openerp/addons/base/i18n/en_GB.po @@ -3790,8 +3790,8 @@ msgstr "GPL-2 or later version" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_sir -msgid "M." -msgstr "M." +msgid "Mr." +msgstr "Mr." #. module: base #: code:addons/base/module/module.py:519 @@ -11221,8 +11221,8 @@ msgstr "Sequences" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_miss -msgid "Mss" -msgstr "Mss" +msgid "Miss" +msgstr "Miss" #. module: base #: model:ir.model,name:base.model_ir_ui_view @@ -11346,8 +11346,8 @@ msgstr "Filter" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_madam -msgid "Ms." -msgstr "Ms." +msgid "Mrs." +msgstr "Mrs." #. module: base #: view:base.module.import:0 diff --git a/openerp/addons/base/i18n/es.po b/openerp/addons/base/i18n/es.po index 4548e2692b8..5ebd7d1a0dc 100644 --- a/openerp/addons/base/i18n/es.po +++ b/openerp/addons/base/i18n/es.po @@ -3887,7 +3887,7 @@ msgstr "GPL-2 o versión posterior" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_sir -msgid "M." +msgid "Mr." msgstr "Sr." #. module: base @@ -11344,7 +11344,7 @@ msgstr "Secuencias" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_miss -msgid "Mss" +msgid "Miss" msgstr "Sra." #. module: base @@ -11471,7 +11471,7 @@ msgstr "Filtro" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_madam -msgid "Ms." +msgid "Mrs." msgstr "Sra." #. module: base diff --git a/openerp/addons/base/i18n/es_CL.po b/openerp/addons/base/i18n/es_CL.po index e3ff1de6ef3..c87eb21ac41 100644 --- a/openerp/addons/base/i18n/es_CL.po +++ b/openerp/addons/base/i18n/es_CL.po @@ -3813,7 +3813,7 @@ msgstr "GPL-2 o versión posterior" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_sir -msgid "M." +msgid "Mr." msgstr "Sr." #. module: base @@ -11270,7 +11270,7 @@ msgstr "Secuencias" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_miss -msgid "Mss" +msgid "Miss" msgstr "Sra." #. module: base @@ -11397,7 +11397,7 @@ msgstr "Filtro" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_madam -msgid "Ms." +msgid "Mrs." msgstr "Sra." #. module: base diff --git a/openerp/addons/base/i18n/es_CR.po b/openerp/addons/base/i18n/es_CR.po index a4d9a8129d5..913775326c7 100644 --- a/openerp/addons/base/i18n/es_CR.po +++ b/openerp/addons/base/i18n/es_CR.po @@ -4442,7 +4442,7 @@ msgstr "GPL-2 o versión posterior" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_sir -msgid "M." +msgid "Mr." msgstr "Sr." #. module: base @@ -13818,7 +13818,7 @@ msgstr "Secuencias" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_miss -msgid "Mss" +msgid "Miss" msgstr "Sra." #. module: base @@ -13945,7 +13945,7 @@ msgstr "Filtro" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_madam -msgid "Ms." +msgid "Mrs." msgstr "Sra." #. module: base diff --git a/openerp/addons/base/i18n/es_EC.po b/openerp/addons/base/i18n/es_EC.po index dadcd9c0e46..e81781da452 100644 --- a/openerp/addons/base/i18n/es_EC.po +++ b/openerp/addons/base/i18n/es_EC.po @@ -3805,8 +3805,8 @@ msgstr "GPL-2 o versión posterior" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_sir -msgid "M." -msgstr "M." +msgid "Mr." +msgstr "Mr." #. module: base #: code:addons/base/module/module.py:519 @@ -11264,8 +11264,8 @@ msgstr "Secuencias" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_miss -msgid "Mss" -msgstr "Mss" +msgid "Miss" +msgstr "Miss" #. module: base #: model:ir.model,name:base.model_ir_ui_view @@ -11391,7 +11391,7 @@ msgstr "Filtro" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_madam -msgid "Ms." +msgid "Mrs." msgstr "Sra." #. module: base diff --git a/openerp/addons/base/i18n/et.po b/openerp/addons/base/i18n/et.po index 7552ae0719b..f2457c654a4 100644 --- a/openerp/addons/base/i18n/et.po +++ b/openerp/addons/base/i18n/et.po @@ -3713,7 +3713,7 @@ msgstr "GPL-2 või hilisem versioon" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_sir -msgid "M." +msgid "Mr." msgstr "" #. module: base @@ -11043,7 +11043,7 @@ msgstr "Jadad" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_miss -msgid "Mss" +msgid "Miss" msgstr "" #. module: base @@ -11163,7 +11163,7 @@ msgstr "Filter" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_madam -msgid "Ms." +msgid "Mrs." msgstr "" #. module: base diff --git a/openerp/addons/base/i18n/eu.po b/openerp/addons/base/i18n/eu.po index 378c973a0eb..92667018edb 100644 --- a/openerp/addons/base/i18n/eu.po +++ b/openerp/addons/base/i18n/eu.po @@ -3682,7 +3682,7 @@ msgstr "" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_sir -msgid "M." +msgid "Mr." msgstr "" #. module: base @@ -10995,7 +10995,7 @@ msgstr "" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_miss -msgid "Mss" +msgid "Miss" msgstr "" #. module: base @@ -11115,7 +11115,7 @@ msgstr "" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_madam -msgid "Ms." +msgid "Mrs." msgstr "" #. module: base diff --git a/openerp/addons/base/i18n/fa.po b/openerp/addons/base/i18n/fa.po index a465ce96c3c..c1a94fc9ce1 100644 --- a/openerp/addons/base/i18n/fa.po +++ b/openerp/addons/base/i18n/fa.po @@ -3715,7 +3715,7 @@ msgstr "مجوز GPL-2 یا نگارش بالاتر" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_sir -msgid "M." +msgid "Mr." msgstr "" #. module: base @@ -11048,7 +11048,7 @@ msgstr "دنباله‌ها" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_miss -msgid "Mss" +msgid "Miss" msgstr "" #. module: base @@ -11168,7 +11168,7 @@ msgstr "پالایه" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_madam -msgid "Ms." +msgid "Mrs." msgstr "" #. module: base diff --git a/openerp/addons/base/i18n/fa_AF.po b/openerp/addons/base/i18n/fa_AF.po index e3d0389fe01..27e99d07a6c 100644 --- a/openerp/addons/base/i18n/fa_AF.po +++ b/openerp/addons/base/i18n/fa_AF.po @@ -3682,7 +3682,7 @@ msgstr "" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_sir -msgid "M." +msgid "Mr." msgstr "" #. module: base @@ -10995,7 +10995,7 @@ msgstr "" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_miss -msgid "Mss" +msgid "Miss" msgstr "" #. module: base @@ -11115,7 +11115,7 @@ msgstr "" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_madam -msgid "Ms." +msgid "Mrs." msgstr "" #. module: base diff --git a/openerp/addons/base/i18n/fi.po b/openerp/addons/base/i18n/fi.po index a6cb99831fb..3b27c52ae46 100644 --- a/openerp/addons/base/i18n/fi.po +++ b/openerp/addons/base/i18n/fi.po @@ -3793,7 +3793,7 @@ msgstr "GPL-2 tai myöhäisempi versio" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_sir -msgid "M." +msgid "Mr." msgstr "" #. module: base @@ -11226,7 +11226,7 @@ msgstr "Jaksot" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_miss -msgid "Mss" +msgid "Miss" msgstr "" #. module: base @@ -11352,8 +11352,8 @@ msgstr "Suodin" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_madam -msgid "Ms." -msgstr "Ms." +msgid "Mrs." +msgstr "Mrs." #. module: base #: view:base.module.import:0 diff --git a/openerp/addons/base/i18n/fr.po b/openerp/addons/base/i18n/fr.po index b47d352f885..975b97a543f 100644 --- a/openerp/addons/base/i18n/fr.po +++ b/openerp/addons/base/i18n/fr.po @@ -3817,7 +3817,7 @@ msgstr "GPL-2 ou version supérieure" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_sir -msgid "M." +msgid "Mr." msgstr "M." #. module: base @@ -11275,7 +11275,7 @@ msgstr "Séquences" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_miss -msgid "Mss" +msgid "Miss" msgstr "Mlle" #. module: base @@ -11403,7 +11403,7 @@ msgstr "Filtre" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_madam -msgid "Ms." +msgid "Mrs." msgstr "Mme" #. module: base diff --git a/openerp/addons/base/i18n/gl.po b/openerp/addons/base/i18n/gl.po index 804c17bad22..66b56a02246 100644 --- a/openerp/addons/base/i18n/gl.po +++ b/openerp/addons/base/i18n/gl.po @@ -3805,8 +3805,8 @@ msgstr "GPL-2 ou versión posterior" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_sir -msgid "M." -msgstr "M." +msgid "Mr." +msgstr "Mr." #. module: base #: code:addons/base/module/module.py:519 @@ -11245,8 +11245,8 @@ msgstr "Secuencias" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_miss -msgid "Mss" -msgstr "MSS" +msgid "Miss" +msgstr "Miss" #. module: base #: model:ir.model,name:base.model_ir_ui_view @@ -11372,7 +11372,7 @@ msgstr "Filtro" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_madam -msgid "Ms." +msgid "Mrs." msgstr "Ms" #. module: base diff --git a/openerp/addons/base/i18n/he.po b/openerp/addons/base/i18n/he.po index 49655e7ae5c..6d1a3501066 100644 --- a/openerp/addons/base/i18n/he.po +++ b/openerp/addons/base/i18n/he.po @@ -3702,7 +3702,7 @@ msgstr "גרסא GPL-2 או מאוחרת יותר." #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_sir -msgid "M." +msgid "Mr." msgstr "" #. module: base @@ -11030,7 +11030,7 @@ msgstr "רציפות" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_miss -msgid "Mss" +msgid "Miss" msgstr "" #. module: base @@ -11150,7 +11150,7 @@ msgstr "" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_madam -msgid "Ms." +msgid "Mrs." msgstr "" #. module: base diff --git a/openerp/addons/base/i18n/hr.po b/openerp/addons/base/i18n/hr.po index bead1791bdc..4460921847e 100644 --- a/openerp/addons/base/i18n/hr.po +++ b/openerp/addons/base/i18n/hr.po @@ -3835,7 +3835,7 @@ msgstr "GPL-2 ili novija verzija" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_sir -msgid "M." +msgid "Mr." msgstr "g." #. module: base @@ -11218,7 +11218,7 @@ msgstr "Sekvence" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_miss -msgid "Mss" +msgid "Miss" msgstr "gđica" #. module: base @@ -11344,7 +11344,7 @@ msgstr "Filter" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_madam -msgid "Ms." +msgid "Mrs." msgstr "gđa." #. module: base diff --git a/openerp/addons/base/i18n/hu.po b/openerp/addons/base/i18n/hu.po index d8a699102bf..5d20eb6f771 100644 --- a/openerp/addons/base/i18n/hu.po +++ b/openerp/addons/base/i18n/hu.po @@ -3792,7 +3792,7 @@ msgstr "GPL-2 vagy korábbi verzió" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_sir -msgid "M." +msgid "Mr." msgstr "Úr" #. module: base @@ -11243,8 +11243,8 @@ msgstr "Sorszámok" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_miss -msgid "Mss" -msgstr "Mss" +msgid "Miss" +msgstr "Miss" #. module: base #: model:ir.model,name:base.model_ir_ui_view @@ -11372,8 +11372,8 @@ msgstr "Szűrő" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_madam -msgid "Ms." -msgstr "Ms." +msgid "Mrs." +msgstr "Mrs." #. module: base #: view:base.module.import:0 diff --git a/openerp/addons/base/i18n/hy.po b/openerp/addons/base/i18n/hy.po index b7e53816cae..9984f2c03f4 100644 --- a/openerp/addons/base/i18n/hy.po +++ b/openerp/addons/base/i18n/hy.po @@ -3682,7 +3682,7 @@ msgstr "" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_sir -msgid "M." +msgid "Mr." msgstr "" #. module: base @@ -10995,7 +10995,7 @@ msgstr "" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_miss -msgid "Mss" +msgid "Miss" msgstr "" #. module: base @@ -11115,7 +11115,7 @@ msgstr "" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_madam -msgid "Ms." +msgid "Mrs." msgstr "" #. module: base diff --git a/openerp/addons/base/i18n/id.po b/openerp/addons/base/i18n/id.po index 323819ab4a5..cc5113f856f 100644 --- a/openerp/addons/base/i18n/id.po +++ b/openerp/addons/base/i18n/id.po @@ -3686,7 +3686,7 @@ msgstr "" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_sir -msgid "M." +msgid "Mr." msgstr "" #. module: base @@ -10999,7 +10999,7 @@ msgstr "" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_miss -msgid "Mss" +msgid "Miss" msgstr "" #. module: base @@ -11119,7 +11119,7 @@ msgstr "" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_madam -msgid "Ms." +msgid "Mrs." msgstr "" #. module: base diff --git a/openerp/addons/base/i18n/is.po b/openerp/addons/base/i18n/is.po index fb292a07512..425ea2516db 100644 --- a/openerp/addons/base/i18n/is.po +++ b/openerp/addons/base/i18n/is.po @@ -3682,7 +3682,7 @@ msgstr "" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_sir -msgid "M." +msgid "Mr." msgstr "" #. module: base @@ -10995,7 +10995,7 @@ msgstr "" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_miss -msgid "Mss" +msgid "Miss" msgstr "" #. module: base @@ -11115,7 +11115,7 @@ msgstr "" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_madam -msgid "Ms." +msgid "Mrs." msgstr "" #. module: base diff --git a/openerp/addons/base/i18n/it.po b/openerp/addons/base/i18n/it.po index 64f7a787c29..40f6a45e2ff 100644 --- a/openerp/addons/base/i18n/it.po +++ b/openerp/addons/base/i18n/it.po @@ -3810,8 +3810,8 @@ msgstr "GPL-2 o successiva" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_sir -msgid "M." -msgstr "M." +msgid "Mr." +msgstr "Mr." #. module: base #: code:addons/base/module/module.py:519 @@ -11265,8 +11265,8 @@ msgstr "Sequenze" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_miss -msgid "Mss" -msgstr "Mss" +msgid "Miss" +msgstr "Miss" #. module: base #: model:ir.model,name:base.model_ir_ui_view @@ -11392,7 +11392,7 @@ msgstr "Filtro" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_madam -msgid "Ms." +msgid "Mrs." msgstr "Sig.ra" #. module: base diff --git a/openerp/addons/base/i18n/ja.po b/openerp/addons/base/i18n/ja.po index 3b727699679..00064377974 100644 --- a/openerp/addons/base/i18n/ja.po +++ b/openerp/addons/base/i18n/ja.po @@ -4096,7 +4096,7 @@ msgstr "GPL-2 またはそれ以降のバージョン" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_sir -msgid "M." +msgid "Mr." msgstr "" #. module: base @@ -11674,7 +11674,7 @@ msgstr "" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_miss -msgid "Mss" +msgid "Miss" msgstr "" #. module: base @@ -11794,7 +11794,7 @@ msgstr "" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_madam -msgid "Ms." +msgid "Mrs." msgstr "" #. module: base diff --git a/openerp/addons/base/i18n/kk.po b/openerp/addons/base/i18n/kk.po index de3a57e6e0f..70c941b9aa6 100644 --- a/openerp/addons/base/i18n/kk.po +++ b/openerp/addons/base/i18n/kk.po @@ -3682,7 +3682,7 @@ msgstr "" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_sir -msgid "M." +msgid "Mr." msgstr "" #. module: base @@ -10995,7 +10995,7 @@ msgstr "" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_miss -msgid "Mss" +msgid "Miss" msgstr "" #. module: base @@ -11115,7 +11115,7 @@ msgstr "Сүзгі" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_madam -msgid "Ms." +msgid "Mrs." msgstr "миссис" #. module: base diff --git a/openerp/addons/base/i18n/ko.po b/openerp/addons/base/i18n/ko.po index a4141f5d609..8fd9331052c 100644 --- a/openerp/addons/base/i18n/ko.po +++ b/openerp/addons/base/i18n/ko.po @@ -3729,7 +3729,7 @@ msgstr "GPL-2 또는 이후 버젼" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_sir -msgid "M." +msgid "Mr." msgstr "" #. module: base @@ -11056,7 +11056,7 @@ msgstr "시퀀스" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_miss -msgid "Mss" +msgid "Miss" msgstr "" #. module: base @@ -11176,7 +11176,7 @@ msgstr "필터" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_madam -msgid "Ms." +msgid "Mrs." msgstr "" #. module: base diff --git a/openerp/addons/base/i18n/lt.po b/openerp/addons/base/i18n/lt.po index 8e0ae0d384e..821b0705ff5 100644 --- a/openerp/addons/base/i18n/lt.po +++ b/openerp/addons/base/i18n/lt.po @@ -3694,7 +3694,7 @@ msgstr "" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_sir -msgid "M." +msgid "Mr." msgstr "" #. module: base @@ -11029,7 +11029,7 @@ msgstr "" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_miss -msgid "Mss" +msgid "Miss" msgstr "" #. module: base @@ -11149,7 +11149,7 @@ msgstr "" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_madam -msgid "Ms." +msgid "Mrs." msgstr "Ponia" #. module: base diff --git a/openerp/addons/base/i18n/lv.po b/openerp/addons/base/i18n/lv.po index 9f52a9bcaf8..1402da79c00 100644 --- a/openerp/addons/base/i18n/lv.po +++ b/openerp/addons/base/i18n/lv.po @@ -3717,7 +3717,7 @@ msgstr "GPL-2 vai vēlāka versija" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_sir -msgid "M." +msgid "Mr." msgstr "" #. module: base @@ -11063,7 +11063,7 @@ msgstr "Sērijas" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_miss -msgid "Mss" +msgid "Miss" msgstr "" #. module: base @@ -11183,7 +11183,7 @@ msgstr "Filtrs" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_madam -msgid "Ms." +msgid "Mrs." msgstr "" #. module: base diff --git a/openerp/addons/base/i18n/mk.po b/openerp/addons/base/i18n/mk.po index e5293173930..83994f31964 100644 --- a/openerp/addons/base/i18n/mk.po +++ b/openerp/addons/base/i18n/mk.po @@ -3693,7 +3693,7 @@ msgstr "" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_sir -msgid "M." +msgid "Mr." msgstr "" #. module: base @@ -11006,7 +11006,7 @@ msgstr "" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_miss -msgid "Mss" +msgid "Miss" msgstr "" #. module: base @@ -11126,7 +11126,7 @@ msgstr "" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_madam -msgid "Ms." +msgid "Mrs." msgstr "" #. module: base diff --git a/openerp/addons/base/i18n/mn.po b/openerp/addons/base/i18n/mn.po index 7e7ce75c2ed..1f58def2e90 100644 --- a/openerp/addons/base/i18n/mn.po +++ b/openerp/addons/base/i18n/mn.po @@ -3746,8 +3746,8 @@ msgstr "GPL-2 болон дараагийн хувилбар" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_sir -msgid "M." -msgstr "M." +msgid "Mr." +msgstr "Mr." #. module: base #: code:addons/base/module/module.py:519 @@ -11086,7 +11086,7 @@ msgstr "Дараалал" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_miss -msgid "Mss" +msgid "Miss" msgstr "Хатагтай" #. module: base @@ -11207,7 +11207,7 @@ msgstr "Шүүлт" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_madam -msgid "Ms." +msgid "Mrs." msgstr "Хатагтай." #. module: base diff --git a/openerp/addons/base/i18n/nb.po b/openerp/addons/base/i18n/nb.po index 4d21f12d3c6..91fa3298775 100644 --- a/openerp/addons/base/i18n/nb.po +++ b/openerp/addons/base/i18n/nb.po @@ -3734,8 +3734,8 @@ msgstr "GPL-2 eller senere versjon" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_sir -msgid "M." -msgstr "M." +msgid "Mr." +msgstr "Mr." #. module: base #: code:addons/base/module/module.py:519 @@ -11081,7 +11081,7 @@ msgstr "Sekvenser" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_miss -msgid "Mss" +msgid "Miss" msgstr "" #. module: base @@ -11201,7 +11201,7 @@ msgstr "Filter" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_madam -msgid "Ms." +msgid "Mrs." msgstr "" #. module: base diff --git a/openerp/addons/base/i18n/nl.po b/openerp/addons/base/i18n/nl.po index 32a85ba06c4..311d04e0a54 100644 --- a/openerp/addons/base/i18n/nl.po +++ b/openerp/addons/base/i18n/nl.po @@ -3800,7 +3800,7 @@ msgstr "GPL-2 of latere versie" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_sir -msgid "M." +msgid "Mr." msgstr "Hr." #. module: base @@ -11252,7 +11252,7 @@ msgstr "Reeksen" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_miss -msgid "Mss" +msgid "Miss" msgstr "Mej." #. module: base @@ -11379,7 +11379,7 @@ msgstr "Filter" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_madam -msgid "Ms." +msgid "Mrs." msgstr "Mw." #. module: base diff --git a/openerp/addons/base/i18n/nl_BE.po b/openerp/addons/base/i18n/nl_BE.po index 7b720f4511d..d9fcfaa86af 100644 --- a/openerp/addons/base/i18n/nl_BE.po +++ b/openerp/addons/base/i18n/nl_BE.po @@ -3697,7 +3697,7 @@ msgstr "" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_sir -msgid "M." +msgid "Mr." msgstr "" #. module: base @@ -11010,7 +11010,7 @@ msgstr "" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_miss -msgid "Mss" +msgid "Miss" msgstr "" #. module: base @@ -11130,7 +11130,7 @@ msgstr "" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_madam -msgid "Ms." +msgid "Mrs." msgstr "" #. module: base diff --git a/openerp/addons/base/i18n/pl.po b/openerp/addons/base/i18n/pl.po index e7bd3ec9b14..5e6569da9d7 100644 --- a/openerp/addons/base/i18n/pl.po +++ b/openerp/addons/base/i18n/pl.po @@ -3761,7 +3761,7 @@ msgstr "GPL-2 lub wersja późniejsza" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_sir -msgid "M." +msgid "Mr." msgstr "" #. module: base @@ -11159,7 +11159,7 @@ msgstr "Numeracje" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_miss -msgid "Mss" +msgid "Miss" msgstr "" #. module: base @@ -11281,7 +11281,7 @@ msgstr "Filtr" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_madam -msgid "Ms." +msgid "Mrs." msgstr "Pani" #. module: base diff --git a/openerp/addons/base/i18n/pt.po b/openerp/addons/base/i18n/pt.po index fe6b53693cb..92315dee4ef 100644 --- a/openerp/addons/base/i18n/pt.po +++ b/openerp/addons/base/i18n/pt.po @@ -3757,7 +3757,7 @@ msgstr "GPL-2 ou version anterior" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_sir -msgid "M." +msgid "Mr." msgstr "" #. module: base @@ -11162,7 +11162,7 @@ msgstr "Sequências" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_miss -msgid "Mss" +msgid "Miss" msgstr "" #. module: base @@ -11284,7 +11284,7 @@ msgstr "Filtro" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_madam -msgid "Ms." +msgid "Mrs." msgstr "Srª." #. module: base diff --git a/openerp/addons/base/i18n/pt_BR.po b/openerp/addons/base/i18n/pt_BR.po index 8eec70f77b6..51e34a6e9be 100644 --- a/openerp/addons/base/i18n/pt_BR.po +++ b/openerp/addons/base/i18n/pt_BR.po @@ -3975,8 +3975,8 @@ msgstr "GPL-2 ou versão superior" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_sir -msgid "M." -msgstr "M." +msgid "Mr." +msgstr "Mr." #. module: base #: code:addons/base/module/module.py:519 @@ -11709,7 +11709,7 @@ msgstr "Seqüências" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_miss -msgid "Mss" +msgid "Miss" msgstr "Sra" #. module: base @@ -11836,7 +11836,7 @@ msgstr "Filtro" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_madam -msgid "Ms." +msgid "Mrs." msgstr "Sra." #. module: base diff --git a/openerp/addons/base/i18n/ro.po b/openerp/addons/base/i18n/ro.po index 27ff3506cea..2cbc45fb22d 100644 --- a/openerp/addons/base/i18n/ro.po +++ b/openerp/addons/base/i18n/ro.po @@ -3812,7 +3812,7 @@ msgstr "GPL-2 sau versiune mai nouă" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_sir -msgid "M." +msgid "Mr." msgstr "Dl." #. module: base @@ -11271,7 +11271,7 @@ msgstr "Secvențe" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_miss -msgid "Mss" +msgid "Miss" msgstr "D-ra" #. module: base @@ -11399,7 +11399,7 @@ msgstr "Filtru" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_madam -msgid "Ms." +msgid "Mrs." msgstr "Dna." #. module: base diff --git a/openerp/addons/base/i18n/ru.po b/openerp/addons/base/i18n/ru.po index 835efe3fa58..57ac744865d 100644 --- a/openerp/addons/base/i18n/ru.po +++ b/openerp/addons/base/i18n/ru.po @@ -3794,7 +3794,7 @@ msgstr "GPL версии 2 или более поздней" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_sir -msgid "M." +msgid "Mr." msgstr "Г-н" #. module: base @@ -11243,7 +11243,7 @@ msgstr "Нумерация" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_miss -msgid "Mss" +msgid "Miss" msgstr "Г-жа" #. module: base @@ -11369,7 +11369,7 @@ msgstr "Фильтр" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_madam -msgid "Ms." +msgid "Mrs." msgstr "Г-жа" #. module: base diff --git a/openerp/addons/base/i18n/sk.po b/openerp/addons/base/i18n/sk.po index c4fb21e7f70..c8f621a6ed8 100644 --- a/openerp/addons/base/i18n/sk.po +++ b/openerp/addons/base/i18n/sk.po @@ -3760,7 +3760,7 @@ msgstr "GPL-2 alebo novšia verzia" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_sir -msgid "M." +msgid "Mr." msgstr "pán" #. module: base @@ -11163,7 +11163,7 @@ msgstr "Postupnosti" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_miss -msgid "Mss" +msgid "Miss" msgstr "slečna" #. module: base @@ -11290,7 +11290,7 @@ msgstr "Filter" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_madam -msgid "Ms." +msgid "Mrs." msgstr "pani" #. module: base diff --git a/openerp/addons/base/i18n/sl.po b/openerp/addons/base/i18n/sl.po index 0de03559923..45d82a64cd1 100644 --- a/openerp/addons/base/i18n/sl.po +++ b/openerp/addons/base/i18n/sl.po @@ -3789,7 +3789,7 @@ msgstr "GPL-2 ali naslednja verzija" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_sir -msgid "M." +msgid "Mr." msgstr "G." #. module: base @@ -11220,7 +11220,7 @@ msgstr "Zaporedja" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_miss -msgid "Mss" +msgid "Miss" msgstr "Gospodična" #. module: base @@ -11348,7 +11348,7 @@ msgstr "Filter" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_madam -msgid "Ms." +msgid "Mrs." msgstr "Ga." #. module: base diff --git a/openerp/addons/base/i18n/sq.po b/openerp/addons/base/i18n/sq.po index 297d3f37ea9..6637361df72 100644 --- a/openerp/addons/base/i18n/sq.po +++ b/openerp/addons/base/i18n/sq.po @@ -3681,7 +3681,7 @@ msgstr "" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_sir -msgid "M." +msgid "Mr." msgstr "" #. module: base @@ -10994,7 +10994,7 @@ msgstr "" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_miss -msgid "Mss" +msgid "Miss" msgstr "" #. module: base @@ -11114,7 +11114,7 @@ msgstr "" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_madam -msgid "Ms." +msgid "Mrs." msgstr "" #. module: base diff --git a/openerp/addons/base/i18n/sr.po b/openerp/addons/base/i18n/sr.po index 65f02a38fce..61d5fa09aff 100644 --- a/openerp/addons/base/i18n/sr.po +++ b/openerp/addons/base/i18n/sr.po @@ -3758,8 +3758,8 @@ msgstr "GPL-2 ili novija verzija" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_sir -msgid "M." -msgstr "M." +msgid "Mr." +msgstr "Mr." #. module: base #: code:addons/base/module/module.py:519 @@ -11139,8 +11139,8 @@ msgstr "Sekvence" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_miss -msgid "Mss" -msgstr "Mss" +msgid "Miss" +msgstr "Miss" #. module: base #: model:ir.model,name:base.model_ir_ui_view @@ -11259,8 +11259,8 @@ msgstr "Filter" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_madam -msgid "Ms." -msgstr "Ms." +msgid "Mrs." +msgstr "Mrs." #. module: base #: view:base.module.import:0 diff --git a/openerp/addons/base/i18n/sr@latin.po b/openerp/addons/base/i18n/sr@latin.po index 92ba916bf1a..114337effd1 100644 --- a/openerp/addons/base/i18n/sr@latin.po +++ b/openerp/addons/base/i18n/sr@latin.po @@ -3865,7 +3865,7 @@ msgstr "" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_sir -msgid "M." +msgid "Mr." msgstr "" #. module: base @@ -11178,7 +11178,7 @@ msgstr "" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_miss -msgid "Mss" +msgid "Miss" msgstr "" #. module: base @@ -11298,7 +11298,7 @@ msgstr "" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_madam -msgid "Ms." +msgid "Mrs." msgstr "" #. module: base diff --git a/openerp/addons/base/i18n/sv.po b/openerp/addons/base/i18n/sv.po index c9d0a27b8c9..352e6ba4513 100644 --- a/openerp/addons/base/i18n/sv.po +++ b/openerp/addons/base/i18n/sv.po @@ -3768,8 +3768,8 @@ msgstr "GPL-2 eller senare version" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_sir -msgid "M." -msgstr "M." +msgid "Mr." +msgstr "Mr." #. module: base #: code:addons/base/module/module.py:519 @@ -11176,7 +11176,7 @@ msgstr "Nummerserier" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_miss -msgid "Mss" +msgid "Miss" msgstr "Fru" #. module: base @@ -11300,7 +11300,7 @@ msgstr "Filtrera" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_madam -msgid "Ms." +msgid "Mrs." msgstr "Frk." #. module: base diff --git a/openerp/addons/base/i18n/th.po b/openerp/addons/base/i18n/th.po index 0951f766fca..d91bddb206b 100644 --- a/openerp/addons/base/i18n/th.po +++ b/openerp/addons/base/i18n/th.po @@ -3682,7 +3682,7 @@ msgstr "" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_sir -msgid "M." +msgid "Mr." msgstr "" #. module: base @@ -10995,7 +10995,7 @@ msgstr "ลำดับ" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_miss -msgid "Mss" +msgid "Miss" msgstr "" #. module: base @@ -11115,7 +11115,7 @@ msgstr "" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_madam -msgid "Ms." +msgid "Mrs." msgstr "" #. module: base diff --git a/openerp/addons/base/i18n/tlh.po b/openerp/addons/base/i18n/tlh.po index 1c087b508eb..60cf53c393f 100644 --- a/openerp/addons/base/i18n/tlh.po +++ b/openerp/addons/base/i18n/tlh.po @@ -3681,7 +3681,7 @@ msgstr "" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_sir -msgid "M." +msgid "Mr." msgstr "" #. module: base @@ -10994,7 +10994,7 @@ msgstr "" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_miss -msgid "Mss" +msgid "Miss" msgstr "" #. module: base @@ -11114,7 +11114,7 @@ msgstr "" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_madam -msgid "Ms." +msgid "Mrs." msgstr "" #. module: base diff --git a/openerp/addons/base/i18n/tr.po b/openerp/addons/base/i18n/tr.po index b9d1bb2a7c5..9ec92ff00cd 100644 --- a/openerp/addons/base/i18n/tr.po +++ b/openerp/addons/base/i18n/tr.po @@ -3824,8 +3824,8 @@ msgstr "GPL-2 veya sonraki sürümü" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_sir -msgid "M." -msgstr "M." +msgid "Mr." +msgstr "Mr." #. module: base #: code:addons/base/module/module.py:519 @@ -11280,7 +11280,7 @@ msgstr "Silsileler" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_miss -msgid "Mss" +msgid "Miss" msgstr "Bayan" #. module: base @@ -11404,7 +11404,7 @@ msgstr "Süzgeç" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_madam -msgid "Ms." +msgid "Mrs." msgstr "Bayan" #. module: base diff --git a/openerp/addons/base/i18n/uk.po b/openerp/addons/base/i18n/uk.po index 1ded396d476..f42d5e2d0e1 100644 --- a/openerp/addons/base/i18n/uk.po +++ b/openerp/addons/base/i18n/uk.po @@ -3717,7 +3717,7 @@ msgstr "GPL-2 або пізніша версія" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_sir -msgid "M." +msgid "Mr." msgstr "" #. module: base @@ -11046,7 +11046,7 @@ msgstr "Послідовності" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_miss -msgid "Mss" +msgid "Miss" msgstr "" #. module: base @@ -11166,7 +11166,7 @@ msgstr "Фільтр" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_madam -msgid "Ms." +msgid "Mrs." msgstr "" #. module: base diff --git a/openerp/addons/base/i18n/ur.po b/openerp/addons/base/i18n/ur.po index a45da1f2dad..582ee6bd2c5 100644 --- a/openerp/addons/base/i18n/ur.po +++ b/openerp/addons/base/i18n/ur.po @@ -3682,7 +3682,7 @@ msgstr "" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_sir -msgid "M." +msgid "Mr." msgstr "" #. module: base @@ -10995,7 +10995,7 @@ msgstr "" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_miss -msgid "Mss" +msgid "Miss" msgstr "" #. module: base @@ -11115,7 +11115,7 @@ msgstr "" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_madam -msgid "Ms." +msgid "Mrs." msgstr "" #. module: base diff --git a/openerp/addons/base/i18n/vi.po b/openerp/addons/base/i18n/vi.po index d8e03b80386..35e1c2cc32f 100644 --- a/openerp/addons/base/i18n/vi.po +++ b/openerp/addons/base/i18n/vi.po @@ -3709,7 +3709,7 @@ msgstr "" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_sir -msgid "M." +msgid "Mr." msgstr "" #. module: base @@ -11028,7 +11028,7 @@ msgstr "Sequences" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_miss -msgid "Mss" +msgid "Miss" msgstr "" #. module: base @@ -11150,7 +11150,7 @@ msgstr "Bộ lọc" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_madam -msgid "Ms." +msgid "Mrs." msgstr "" #. module: base diff --git a/openerp/addons/base/i18n/zh_CN.po b/openerp/addons/base/i18n/zh_CN.po index 7b618b1e0e5..8a1ffd6136a 100644 --- a/openerp/addons/base/i18n/zh_CN.po +++ b/openerp/addons/base/i18n/zh_CN.po @@ -4081,7 +4081,7 @@ msgstr "GPL-2 或更新版本" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_sir -msgid "M." +msgid "Mr." msgstr "先生" #. module: base @@ -11468,8 +11468,8 @@ msgstr "序列" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_miss -msgid "Mss" -msgstr "Mss" +msgid "Miss" +msgstr "Miss" #. module: base #: model:ir.model,name:base.model_ir_ui_view @@ -11588,7 +11588,7 @@ msgstr "过滤" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_madam -msgid "Ms." +msgid "Mrs." msgstr "女士" #. module: base diff --git a/openerp/addons/base/i18n/zh_HK.po b/openerp/addons/base/i18n/zh_HK.po index 06a099c2196..78232e87ecf 100644 --- a/openerp/addons/base/i18n/zh_HK.po +++ b/openerp/addons/base/i18n/zh_HK.po @@ -3682,7 +3682,7 @@ msgstr "" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_sir -msgid "M." +msgid "Mr." msgstr "" #. module: base @@ -10995,7 +10995,7 @@ msgstr "" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_miss -msgid "Mss" +msgid "Miss" msgstr "" #. module: base @@ -11115,7 +11115,7 @@ msgstr "" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_madam -msgid "Ms." +msgid "Mrs." msgstr "" #. module: base diff --git a/openerp/addons/base/i18n/zh_TW.po b/openerp/addons/base/i18n/zh_TW.po index 5b6c6c37767..116eca54d8d 100644 --- a/openerp/addons/base/i18n/zh_TW.po +++ b/openerp/addons/base/i18n/zh_TW.po @@ -3687,7 +3687,7 @@ msgstr "GPL-2 或更新版本" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_sir -msgid "M." +msgid "Mr." msgstr "" #. module: base @@ -11013,7 +11013,7 @@ msgstr "序列" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_miss -msgid "Mss" +msgid "Miss" msgstr "" #. module: base @@ -11133,7 +11133,7 @@ msgstr "過濾器" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_madam -msgid "Ms." +msgid "Mrs." msgstr "女士" #. module: base diff --git a/openerp/addons/base/res/res_partner_data.xml b/openerp/addons/base/res/res_partner_data.xml index 138e44176f0..5bcb65a0461 100644 --- a/openerp/addons/base/res/res_partner_data.xml +++ b/openerp/addons/base/res/res_partner_data.xml @@ -20,17 +20,32 @@ contact Madam - Ms. + Mrs. contact Miss - Mss + Miss contact Sir - M. + Sir + + + contact + Mister + Mr. + + + contact + Doctor + Dr. + + + contact + Professor + Prof. From 2332c23c30c05fb68c025a9a55522a382a394b0d Mon Sep 17 00:00:00 2001 From: Xavier Morel Date: Thu, 23 Feb 2012 11:30:45 +0100 Subject: [PATCH 019/569] [IMP] replaces tools.misc.get_languages by the static dictionary it returns, rename that dict to ALL_LANGUAGES for clarity bzr revid: xmo@openerp.com-20120223103045-a44cl5kdkrnehc66 --- openerp/addons/base/res/res_lang.py | 2 +- openerp/tools/misc.py | 168 ++++++++++++++-------------- 2 files changed, 83 insertions(+), 87 deletions(-) diff --git a/openerp/addons/base/res/res_lang.py b/openerp/addons/base/res/res_lang.py index 13acf109b04..261f401f6be 100644 --- a/openerp/addons/base/res/res_lang.py +++ b/openerp/addons/base/res/res_lang.py @@ -80,7 +80,7 @@ class lang(osv.osv): _logger.warning(msg, lang, lc) if not lang_name: - lang_name = tools.get_languages().get(lang, lang) + lang_name = tools.ALL_LANGUAGES.get(lang, lang) def fix_xa0(s): diff --git a/openerp/tools/misc.py b/openerp/tools/misc.py index a5c72900fc7..89cd8695078 100644 --- a/openerp/tools/misc.py +++ b/openerp/tools/misc.py @@ -550,95 +550,91 @@ def get_iso_codes(lang): lang = lang.split('_')[0] return lang -def get_languages(): - # The codes below are those from Launchpad's Rosetta, with the exception - # of some trivial codes where the Launchpad code is xx and we have xx_XX. - languages={ - 'ab_RU': u'Abkhazian / аҧсуа', - 'ar_AR': u'Arabic / الْعَرَبيّة', - 'bg_BG': u'Bulgarian / български език', - 'bs_BS': u'Bosnian / bosanski jezik', - 'ca_ES': u'Catalan / Català', - 'cs_CZ': u'Czech / Čeština', - 'da_DK': u'Danish / Dansk', - 'de_DE': u'German / Deutsch', - 'el_GR': u'Greek / Ελληνικά', - 'en_CA': u'English (CA)', - 'en_GB': u'English (UK)', - 'en_US': u'English (US)', - 'es_AR': u'Spanish (AR) / Español (AR)', - 'es_BO': u'Spanish (BO) / Español (BO)', - 'es_CL': u'Spanish (CL) / Español (CL)', - 'es_CO': u'Spanish (CO) / Español (CO)', - 'es_CR': u'Spanish (CR) / Español (CR)', - 'es_DO': u'Spanish (DO) / Español (DO)', - 'es_EC': u'Spanish (EC) / Español (EC)', - 'es_ES': u'Spanish / Español', - 'es_GT': u'Spanish (GT) / Español (GT)', - 'es_HN': u'Spanish (HN) / Español (HN)', - 'es_MX': u'Spanish (MX) / Español (MX)', - 'es_NI': u'Spanish (NI) / Español (NI)', - 'es_PA': u'Spanish (PA) / Español (PA)', - 'es_PE': u'Spanish (PE) / Español (PE)', - 'es_PR': u'Spanish (PR) / Español (PR)', - 'es_PY': u'Spanish (PY) / Español (PY)', - 'es_SV': u'Spanish (SV) / Español (SV)', - 'es_UY': u'Spanish (UY) / Español (UY)', - 'es_VE': u'Spanish (VE) / Español (VE)', - 'et_EE': u'Estonian / Eesti keel', - 'fa_IR': u'Persian / فارس', - 'fi_FI': u'Finnish / Suomi', - 'fr_BE': u'French (BE) / Français (BE)', - 'fr_CH': u'French (CH) / Français (CH)', - 'fr_FR': u'French / Français', - 'gl_ES': u'Galician / Galego', - 'gu_IN': u'Gujarati / ગુજરાતી', - 'he_IL': u'Hebrew / עִבְרִי', - 'hi_IN': u'Hindi / हिंदी', - 'hr_HR': u'Croatian / hrvatski jezik', - 'hu_HU': u'Hungarian / Magyar', - 'id_ID': u'Indonesian / Bahasa Indonesia', - 'it_IT': u'Italian / Italiano', - 'iu_CA': u'Inuktitut / ᐃᓄᒃᑎᑐᑦ', - 'ja_JP': u'Japanese / 日本語', - 'ko_KP': u'Korean (KP) / 한국어 (KP)', - 'ko_KR': u'Korean (KR) / 한국어 (KR)', - 'lt_LT': u'Lithuanian / Lietuvių kalba', - 'lv_LV': u'Latvian / latviešu valoda', - 'ml_IN': u'Malayalam / മലയാളം', - 'mn_MN': u'Mongolian / монгол', - 'nb_NO': u'Norwegian Bokmål / Norsk bokmål', - 'nl_NL': u'Dutch / Nederlands', - 'nl_BE': u'Flemish (BE) / Vlaams (BE)', - 'oc_FR': u'Occitan (FR, post 1500) / Occitan', - 'pl_PL': u'Polish / Język polski', - 'pt_BR': u'Portugese (BR) / Português (BR)', - 'pt_PT': u'Portugese / Português', - 'ro_RO': u'Romanian / română', - 'ru_RU': u'Russian / русский язык', - 'si_LK': u'Sinhalese / සිංහල', - 'sl_SI': u'Slovenian / slovenščina', - 'sk_SK': u'Slovak / Slovenský jazyk', - 'sq_AL': u'Albanian / Shqip', - 'sr_RS': u'Serbian (Cyrillic) / српски', - 'sr@latin': u'Serbian (Latin) / srpski', - 'sv_SE': u'Swedish / svenska', - 'te_IN': u'Telugu / తెలుగు', - 'tr_TR': u'Turkish / Türkçe', - 'vi_VN': u'Vietnamese / Tiếng Việt', - 'uk_UA': u'Ukrainian / українська', - 'ur_PK': u'Urdu / اردو', - 'zh_CN': u'Chinese (CN) / 简体中文', - 'zh_HK': u'Chinese (HK)', - 'zh_TW': u'Chinese (TW) / 正體字', - 'th_TH': u'Thai / ภาษาไทย', - 'tlh_TLH': u'Klingon', - } - return languages +ALL_LANGUAGES = { + 'ab_RU': u'Abkhazian / аҧсуа', + 'ar_AR': u'Arabic / الْعَرَبيّة', + 'bg_BG': u'Bulgarian / български език', + 'bs_BS': u'Bosnian / bosanski jezik', + 'ca_ES': u'Catalan / Català', + 'cs_CZ': u'Czech / Čeština', + 'da_DK': u'Danish / Dansk', + 'de_DE': u'German / Deutsch', + 'el_GR': u'Greek / Ελληνικά', + 'en_CA': u'English (CA)', + 'en_GB': u'English (UK)', + 'en_US': u'English (US)', + 'es_AR': u'Spanish (AR) / Español (AR)', + 'es_BO': u'Spanish (BO) / Español (BO)', + 'es_CL': u'Spanish (CL) / Español (CL)', + 'es_CO': u'Spanish (CO) / Español (CO)', + 'es_CR': u'Spanish (CR) / Español (CR)', + 'es_DO': u'Spanish (DO) / Español (DO)', + 'es_EC': u'Spanish (EC) / Español (EC)', + 'es_ES': u'Spanish / Español', + 'es_GT': u'Spanish (GT) / Español (GT)', + 'es_HN': u'Spanish (HN) / Español (HN)', + 'es_MX': u'Spanish (MX) / Español (MX)', + 'es_NI': u'Spanish (NI) / Español (NI)', + 'es_PA': u'Spanish (PA) / Español (PA)', + 'es_PE': u'Spanish (PE) / Español (PE)', + 'es_PR': u'Spanish (PR) / Español (PR)', + 'es_PY': u'Spanish (PY) / Español (PY)', + 'es_SV': u'Spanish (SV) / Español (SV)', + 'es_UY': u'Spanish (UY) / Español (UY)', + 'es_VE': u'Spanish (VE) / Español (VE)', + 'et_EE': u'Estonian / Eesti keel', + 'fa_IR': u'Persian / فارس', + 'fi_FI': u'Finnish / Suomi', + 'fr_BE': u'French (BE) / Français (BE)', + 'fr_CH': u'French (CH) / Français (CH)', + 'fr_FR': u'French / Français', + 'gl_ES': u'Galician / Galego', + 'gu_IN': u'Gujarati / ગુજરાતી', + 'he_IL': u'Hebrew / עִבְרִי', + 'hi_IN': u'Hindi / हिंदी', + 'hr_HR': u'Croatian / hrvatski jezik', + 'hu_HU': u'Hungarian / Magyar', + 'id_ID': u'Indonesian / Bahasa Indonesia', + 'it_IT': u'Italian / Italiano', + 'iu_CA': u'Inuktitut / ᐃᓄᒃᑎᑐᑦ', + 'ja_JP': u'Japanese / 日本語', + 'ko_KP': u'Korean (KP) / 한국어 (KP)', + 'ko_KR': u'Korean (KR) / 한국어 (KR)', + 'lt_LT': u'Lithuanian / Lietuvių kalba', + 'lv_LV': u'Latvian / latviešu valoda', + 'ml_IN': u'Malayalam / മലയാളം', + 'mn_MN': u'Mongolian / монгол', + 'nb_NO': u'Norwegian Bokmål / Norsk bokmål', + 'nl_NL': u'Dutch / Nederlands', + 'nl_BE': u'Flemish (BE) / Vlaams (BE)', + 'oc_FR': u'Occitan (FR, post 1500) / Occitan', + 'pl_PL': u'Polish / Język polski', + 'pt_BR': u'Portugese (BR) / Português (BR)', + 'pt_PT': u'Portugese / Português', + 'ro_RO': u'Romanian / română', + 'ru_RU': u'Russian / русский язык', + 'si_LK': u'Sinhalese / සිංහල', + 'sl_SI': u'Slovenian / slovenščina', + 'sk_SK': u'Slovak / Slovenský jazyk', + 'sq_AL': u'Albanian / Shqip', + 'sr_RS': u'Serbian (Cyrillic) / српски', + 'sr@latin': u'Serbian (Latin) / srpski', + 'sv_SE': u'Swedish / svenska', + 'te_IN': u'Telugu / తెలుగు', + 'tr_TR': u'Turkish / Türkçe', + 'vi_VN': u'Vietnamese / Tiếng Việt', + 'uk_UA': u'Ukrainian / українська', + 'ur_PK': u'Urdu / اردو', + 'zh_CN': u'Chinese (CN) / 简体中文', + 'zh_HK': u'Chinese (HK)', + 'zh_TW': u'Chinese (TW) / 正體字', + 'th_TH': u'Thai / ภาษาไทย', + 'tlh_TLH': u'Klingon', +} def scan_languages(): # Now it will take all languages from get languages function without filter it with base module languages - lang_dict = get_languages() + lang_dict = ALL_LANGUAGES ret = [(lang, lang_dict.get(lang, lang)) for lang in list(lang_dict)] ret.sort(key=lambda k:k[1]) return ret From 18d38fb5eebeb52ad88678a7017a4230c7783727 Mon Sep 17 00:00:00 2001 From: Xavier Morel Date: Thu, 23 Feb 2012 11:32:07 +0100 Subject: [PATCH 020/569] [IMP] document tools.misc.scan_languages, make its implementation less retarded bzr revid: xmo@openerp.com-20120223103207-ra1a0dzcyoe745cx --- openerp/tools/misc.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/openerp/tools/misc.py b/openerp/tools/misc.py index 89cd8695078..06105fbdb56 100644 --- a/openerp/tools/misc.py +++ b/openerp/tools/misc.py @@ -633,12 +633,12 @@ ALL_LANGUAGES = { } def scan_languages(): - # Now it will take all languages from get languages function without filter it with base module languages - lang_dict = ALL_LANGUAGES - ret = [(lang, lang_dict.get(lang, lang)) for lang in list(lang_dict)] - ret.sort(key=lambda k:k[1]) - return ret + """ Returns all languages supported by OpenERP for translation + :returns: a list of (lang_code, lang_name) pairs + :rtype: [(str, unicode)] + """ + return sorted(ALL_LANGUAGES.iteritems(), key=lambda k: k[1]) def get_user_companies(cr, user): def _get_company_children(cr, ids): From 25e699d72dc1d3e61af94402ad3e66b23cd24303 Mon Sep 17 00:00:00 2001 From: Samus Aran Date: Fri, 23 Mar 2012 16:08:50 +0100 Subject: [PATCH 021/569] [IMP] Creating new row in db also update write_date and write_uid bzr revid: cto@openerp.com-20120323150850-26j5ht8eexue86sh --- openerp/osv/orm.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/openerp/osv/orm.py b/openerp/osv/orm.py index 32b039f6598..22c1a0bc183 100644 --- a/openerp/osv/orm.py +++ b/openerp/osv/orm.py @@ -4172,9 +4172,9 @@ class BaseModel(object): and vals[field]: self._check_selection_field_value(cr, user, field, vals[field], context=context) if self._log_access: - upd0 += ',create_uid,create_date' - upd1 += ",%s,(now() at time zone 'UTC')" - upd2.append(user) + upd0 += ',create_uid,create_date,write_uid,write_date' + upd1 += ",%s,(now() at time zone 'UTC'),%s,(now() at time zone 'UTC')" + upd2.extend((user, user)) cr.execute('insert into "'+self._table+'" (id'+upd0+") values ("+str(id_new)+upd1+')', tuple(upd2)) self.check_access_rule(cr, user, [id_new], 'create', context=context) upd_todo.sort(lambda x, y: self._columns[x].priority-self._columns[y].priority) From 1e60a8da8865c8bcd6885c491ddf03bb8467ac34 Mon Sep 17 00:00:00 2001 From: "Amit Bhavsar (Open ERP)" Date: Thu, 19 Apr 2012 16:24:35 +0530 Subject: [PATCH 022/569] [FIX]account: Improve code lp bug: https://launchpad.net/bugs/985459 fixed bzr revid: amb@tinyerp.com-20120419105435-cy21chpu633xouhl --- addons/account/account.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/account/account.py b/addons/account/account.py index 75bfc891980..a91e4817242 100644 --- a/addons/account/account.py +++ b/addons/account/account.py @@ -1386,7 +1386,7 @@ class account_move(osv.osv): if not l[0]: l[2].update({ 'reconcile_id':False, - 'reconcil_partial_id':False, + 'reconcile_partial_id':False, 'analytic_lines':False, 'invoice':False, 'ref':False, From 76066c62c5cad89f25ea42e8f466c746540aa07a Mon Sep 17 00:00:00 2001 From: "Amit (OpenERP)" Date: Wed, 25 Apr 2012 12:54:09 +0530 Subject: [PATCH 023/569] [FIX] hr : Fixes the problem on copy method of hr department object lp bug: https://launchpad.net/bugs/988165 fixed bzr revid: amp@tinyerp.com-20120425072409-ohl0xr62lszadhnm --- addons/hr/hr.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/addons/hr/hr.py b/addons/hr/hr.py index bd0c730d92d..891da9d0d9e 100644 --- a/addons/hr/hr.py +++ b/addons/hr/hr.py @@ -283,7 +283,14 @@ class hr_department(osv.osv): 'manager_id': fields.many2one('hr.employee', 'Manager'), 'member_ids': fields.one2many('hr.employee', 'department_id', 'Members', readonly=True), } - + + def copy(self, cr, uid, id, default=None, context=None): + if default is None: + default = {} + default = default.copy() + default.update({'member_ids': []}) + return super(hr_department, self).copy(cr, uid, id, default, context=context) + hr_department() From 2c935c1c5697d67280d6d01b9f2ce1978cbdf2a8 Mon Sep 17 00:00:00 2001 From: "Khushboo Bhatt (Open ERP)" Date: Tue, 15 May 2012 14:11:29 +0530 Subject: [PATCH 024/569] [IMP/ADD]added l10_in_hr_payroll.changes in module descrpition and added notes in salary rules. bzr revid: kbh@tinyerp.com-20120515084129-uu7aroc0izfb0zk5 --- addons/hr_payroll/hr_payroll_demo.xml | 8 + addons/l10n_in_hr_payroll/__init__.py | 26 ++ addons/l10n_in_hr_payroll/__openerp__.py | 55 +++ .../data/hr.salary.rule.csv | 12 + .../l10n_in_hr_payroll/l10n_in_hr_payroll.py | 34 ++ .../l10n_in_hr_payroll_data.xml | 425 ++++++++++++++++++ .../l10n_in_hr_payroll_demo.xml | 16 + .../l10n_in_hr_payroll_report.xml | 14 + .../l10n_in_hr_payroll_view.xml | 21 + addons/l10n_in_hr_payroll/report/__init__.py | 27 ++ .../report/report_payslip_details.py | 38 ++ .../report/report_payslip_details.rml | 372 +++++++++++++++ .../security/hr.salary.rule.csv | 3 + 13 files changed, 1051 insertions(+) create mode 100644 addons/l10n_in_hr_payroll/__init__.py create mode 100644 addons/l10n_in_hr_payroll/__openerp__.py create mode 100644 addons/l10n_in_hr_payroll/data/hr.salary.rule.csv create mode 100644 addons/l10n_in_hr_payroll/l10n_in_hr_payroll.py create mode 100644 addons/l10n_in_hr_payroll/l10n_in_hr_payroll_data.xml create mode 100644 addons/l10n_in_hr_payroll/l10n_in_hr_payroll_demo.xml create mode 100644 addons/l10n_in_hr_payroll/l10n_in_hr_payroll_report.xml create mode 100644 addons/l10n_in_hr_payroll/l10n_in_hr_payroll_view.xml create mode 100644 addons/l10n_in_hr_payroll/report/__init__.py create mode 100644 addons/l10n_in_hr_payroll/report/report_payslip_details.py create mode 100644 addons/l10n_in_hr_payroll/report/report_payslip_details.rml create mode 100644 addons/l10n_in_hr_payroll/security/hr.salary.rule.csv diff --git a/addons/hr_payroll/hr_payroll_demo.xml b/addons/hr_payroll/hr_payroll_demo.xml index 36ac3e23a7b..33b345591eb 100644 --- a/addons/hr_payroll/hr_payroll_demo.xml +++ b/addons/hr_payroll/hr_payroll_demo.xml @@ -31,6 +31,12 @@ House Rent Allowance + Rent receipts can be shown for taking tax benefit for living in a rented house.Income tax exemption for HRA will be least of following: + 1. The actual amount of HRA received as a part of salary. + 2. 40% (if living in non-metro area) or 50% (if living in metro area) of (basic salary+Dearness allowance (DA)). + 3. Rent paid minus 10% of (basic salary+DA). + Read more: http://www.pankajbatra.com/finance/income-tax-calculator-2012-2013-2014/#ixzz1upoomH73 + @@ -50,6 +56,8 @@ Professional Tax + Professional tax deducted from salary by employer should be removed from taxable salary before computation of income tax. + Read more: http://www.pankajbatra.com/finance/income-tax-calculator-2012-2013-2014/#ixzz1uugbJcaM diff --git a/addons/l10n_in_hr_payroll/__init__.py b/addons/l10n_in_hr_payroll/__init__.py new file mode 100644 index 00000000000..dd0fa2330b7 --- /dev/null +++ b/addons/l10n_in_hr_payroll/__init__.py @@ -0,0 +1,26 @@ +# -*- encoding: utf-8 -*- +############################################################################## +# +# OpenERP, Open Source Management Solution +# Copyright (C) 2004-2010 Tiny SPRL (). +# +# 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 . +# +############################################################################## + +import hr_payroll +import l10n_in_hr_payroll +import report + +# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: \ No newline at end of file diff --git a/addons/l10n_in_hr_payroll/__openerp__.py b/addons/l10n_in_hr_payroll/__openerp__.py new file mode 100644 index 00000000000..27528fbddcf --- /dev/null +++ b/addons/l10n_in_hr_payroll/__openerp__.py @@ -0,0 +1,55 @@ +# -*- encoding: utf-8 -*- +############################################################################## +# +# OpenERP, Open Source Management Solution +# Copyright (C) 2004-2010 Tiny SPRL (). +# +# 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 . +# +############################################################################## +{ + 'name': 'India payroll', + 'category': 'Localization', + 'init_xml': [], + 'author': 'OpenERP SA', + 'website':'http://www.openerp.com', + 'depends': ['hr_payroll'], + 'version': '1.0', + 'description': """ +Indian Payroll Rules. +======================= + + * Employee Details + * Employee Contracts + * Passport based Contract + * Allowances / Deductions + * Allow to configure Basic / Grows / Net Salary + * Employee PaySlip + * Monthly Payroll Register + * Integrated with Holiday Management + * Medical Allowance, Travel Allowance, Child Allowance, ... + """, + + 'active': False, + 'update_xml': [ + 'l10n_in_hr_payroll_view.xml', + 'l10n_in_hr_payroll_data.xml', + 'data/hr.salary.rule.csv', + 'l10n_in_hr_payroll_report.xml', + ], + 'demo_xml': ['l10n_in_hr_payroll_demo.xml'], + 'installable': True +} + +# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: \ No newline at end of file diff --git a/addons/l10n_in_hr_payroll/data/hr.salary.rule.csv b/addons/l10n_in_hr_payroll/data/hr.salary.rule.csv new file mode 100644 index 00000000000..0d62cf670e0 --- /dev/null +++ b/addons/l10n_in_hr_payroll/data/hr.salary.rule.csv @@ -0,0 +1,12 @@ +"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,,50,"Education Allowance","Child Education Allowance",23,"CHEA","hr_payroll_rule_child1","range","employee.children", +2,"fix",2,2,,100,"Education Allowance","Child Education Allowance",24,"CHEA","hr_payroll_rule_child1","range","employee.children", +,,,,,,,,,,,,, +3,"fix",1,1,,150,"Education Allowance with Hostel","Child Education Allowance",26,"CHEAH","hr_payroll_rule_child2","range","employee.children", +4,"fix",2,2,,300,"Education Allowance with Hostel","Child Education Allowance",27,"CHEAH","hr_payroll_rule_child2","range","employee.children", +,,,,,,,,,,,,, +5,"fix",0,2999,,0,"Professional Tax for Gujarat","Deduction",121,"PT0","hr_payslip_line_professionaltax_guj","range","categories.GROSS", +6,"fix",3000,5999,,-20,"Professional Tax for Gujarat","Deduction",121,"PT20","hr_payslip_line_professionaltax_guj","range","categories.GROSS", +7,"fix",6000,8999,,-80,"Professional Tax for Gujarat","Deduction",121,"PT80","hr_payslip_line_professionaltax_guj","range","categories.GROSS", +8,"fix",9000,11999,,-150,"Professional Tax for Gujarat","Deduction",121,"PT150","hr_payslip_line_professionaltax_guj","range","categories.GROSS", +9,"fix",12000,1000000,,-200,"Professional Tax for Gujarat","Deduction",121,"PT200","hr_payslip_line_professionaltax_guj","range","categories.GROSS", diff --git a/addons/l10n_in_hr_payroll/l10n_in_hr_payroll.py b/addons/l10n_in_hr_payroll/l10n_in_hr_payroll.py new file mode 100644 index 00000000000..dc075b0be36 --- /dev/null +++ b/addons/l10n_in_hr_payroll/l10n_in_hr_payroll.py @@ -0,0 +1,34 @@ +#-*- coding:utf-8 -*- +############################################################################## +# +# OpenERP, Open Source Management Solution +# Copyright (C) 2011 OpenERP SA (). 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 . +# +############################################################################## + +from osv import fields, osv +import decimal_precision as dp + +class hr_contract_in(osv.osv): + _inherit = 'hr.contract' + + _columns = { + 'tds': fields.float('TDS', digits_compute=dp.get_precision('Payroll')), + } + +hr_contract_in() + +# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: \ No newline at end of file diff --git a/addons/l10n_in_hr_payroll/l10n_in_hr_payroll_data.xml b/addons/l10n_in_hr_payroll/l10n_in_hr_payroll_data.xml new file mode 100644 index 00000000000..6edee15874f --- /dev/null +++ b/addons/l10n_in_hr_payroll/l10n_in_hr_payroll_data.xml @@ -0,0 +1,425 @@ + + + + + + + + Child Education Allowance + CEA + + + + + + + DA + Dearness Allowance + + percentage + contract.wage + + + DA is calculated in % + for more details:http://www.citehr.com/26809-how-calculate-dearness-allowance-da.html + + + + CEA + Child Education Allowance + + fix + none + + Per school going child 1200 per annum is non-taxable. Maximum for 2 children, so max 2400 per annum becomes non-taxable. + + + + CHEA + Education Allowance + + + python + result = bool(employee.children) + fix + Education allowance of Rs. 50 per month per child for up to 2 children of the employee is exempted. + + + + + CHEAH + Education Allowance with Hostel + + + python + result = bool(employee.children) + fix + In case the children are in hostel, the exemption available is Rs.150 per month per child for up to 2 children. + + + + + MGMTA + Grade/Special/Management/Supplementary Allowance + + fix + + + This allowance is normally given as an additional benefit to employees and is fully taxable. + for more details : http://www.rupeetalk.com/finance-basics/income-tax-basics/income-tax-guides/tax-implications-of-salary-components.php + + + + CCA + City Compensatory Allowance + + fix + + + 10% of basic+da is the maximum. + for more details :http://www.citehr.com/250071-what-cca-allowance.html + + + + ARRE + Arrears + + fix + + + 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. + Read more: http://www.pankajbatra.com/finance/income-tax-calculator-2012-2013-2014/#ixzz1uurtGGGd + + + + GRA + Gratuity + + none + code + result = (categories.NET/26) * 15 * 5 + + Covered under the Payment of Gratuity Act, 1971: (Last drawn monthly basic salary + dearness allowance)/26 x 15 days x number of years of service (date of joining – date of retirement/leaving job) + + + + + LTA + Leave Travel Allowance + + percentage + contract.wage + + + As per Income tax rules of India, if transport bills for LTA are not provided, + the amount will be taxed. E.g. If an employee has LTA allowance as Rs 50,000 in his CTC(cost to company), + and he provides proofs of Rs 40,000 (boarding pass, air tickets, taxi vouchers) then income tax will be + deducted for rest of the Rs 10,000. Does not matter whats the amount of LTA in an employee’s package, + income tax laws only permits domestic air tickets only for LTA claim. + Read more: http://www.pankajbatra.com/news/lta-proof-reimbursement-to-employer-not-required-supreme-court-india-ruling/#ixzz1uutlHSez + + + + LE + Leave Encashment + + none + fix + 0.0 + + Payment by way of leave encashment received by Central & 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 + Read more: http://www.pankajbatra.com/finance/income-tax-calculator-2012-2013-2014/#ixzz1uuunHwjE + + + + PI + Performance Incentive/Bonus + + fix + + + This would be fully taxable based on incentive. + + + + MEDA + Medical Reimbursement + + fix + + + This component is on-taxable up to 15000 per year (or Rs 1250 per month) on producing medical bills. + + + + PERJ + Periodical Journals + + fix + + + 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. + + + + UNIF + Uniform/Dress Allowance + + fix + + + Some sections of employees mat get allowance for purchase of office dress/uniform. + In such case, the component would become non-taxable. + + + + TELR + Telephone Reimbursement + + fix + + + 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. + Read more: http://www.pankajbatra.com/finance/income-tax-calculator-2012-2013-2014/#ixzz1uuvaUK7A + + + + CAR + Car Expenses Reimbursement + + fix + + + 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. + Read more: http://www.pankajbatra.com/finance/income-tax-calculator-2012-2013-2014/#ixzz1uuw12Cjj + + + + INT + Internet Expense + + fix + + + Employer may also provide reimbursement of internet expenses and thus this would become non taxable. + + + + DRI + Driver Salary + + fix + + + Rs. 900 per month (non taxable) + + + + GFNR + Gifts From Non-Relatives + + fix + + + gift gift is from non relatives person worth more than Rs.50000, + one is liable to pay the tax what ever he received excess of the limit or Rs 50,000. + + + + GFR + Gifts From Relatives + + fix + + + gift is from relaives whould be non taxable with no limits. + + + + HRI + House Rent Income + + fix + + Income from house property + + 30% of the rental income can be reduced as a standard deduction + + + + OTI + Other Income + + python + result = bool(contract.others) + code + result = contract.others + Bank account/NSC/Post Office/SCSS interest + + + + + STG + Short Term Gains from Share Trading/Equity MFs + + fix + + + if stocks/equity mutual funds are sold before one year, + 15% tax would be payable on such gains. STT should have been on transaction. + Read more: http://www.pankajbatra.com/finance/income-tax-calculator-2012-2013-2014/#ixzz1uuwSxEvI + + + + LTG + Long Term Gains from Share Trading/Equity MFs + + fix + + + If stocks/equity mutual funds are kept for more than a year before sale, + it would be long term gains and such gains would be fully exempt from income tax. + Securities transaction tax (STT) must have been paid on transactions for availing + this exemption. + Read more: http://www.pankajbatra.com/finance/income-tax-calculator-2012-2013-2014/#ixzz1uuwtRkCT + + + + + PTG + Professional Tax for Gujarat + + fix + + + + + PROFESSIONAL TAX FOR COMPANY SHOULD BE PAID ON OR BEFORE 30TH SEPT, + THE AMOUNT IS Rs. 2000 PER YEAR. THERE IS NO PAYMENT FORM TO BE FLLED. + Attribution: http://www.citehr.com/249518-companys-professional-tax-gujarat.html#ixzz1uuyvgt2L + + + + TDS + Tax Deducted at Source + + python + result = bool(contract.tds) + code + result = -(contract.tds) + + As per income tax rules, all payment which are taxable in nature should be + done after deduction of taxes at the source itself. Hence employer compute + income tax on salary payment and deduct it every month. This TDS is based + on employee’s saving/investment declaration at the start of year. If + investments for tax saving is not done, large amount may be deducted in last few months. + Read more: http://www.pankajbatra.com/finance/income-tax-calculator-2012-2013-2014/#ixzz1uv0gPhgQ + + + + VPF + Voluntarily Provident Fund Contribution + + fix + + + + 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 the 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/- + for more details:http://www.dotcominfoway.com/blog/vpf-or-voluntary-provident-fund-special-benefits-for-employees + + + + CPT + Dedution for Company Provided Transport + + fix + + + + + + LWF + Dedution Towards State Labour Welfare Fund + + fix + + + 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) + 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) + Attribution: http://www.citehr.com/270132-labour-welfare-fund-deduction-salary.html + + + + CGTI + Dedution Towards Company Provided Group Term Insurance + + fix + + + + + + DLA + Dedution Towards Leave Availed + + fix + + + + + + CMT + Dedution Towards Company Provided Medical Insurance + + fix + + + + + + ODE + Other Dedution from Employer + + fix + + + + + + EPC + Employer's PF Contribution + + code + result = (rules.PF.amount_percentage * contract.wage)/100 + + + + + diff --git a/addons/l10n_in_hr_payroll/l10n_in_hr_payroll_demo.xml b/addons/l10n_in_hr_payroll/l10n_in_hr_payroll_demo.xml new file mode 100644 index 00000000000..3160e238a6f --- /dev/null +++ b/addons/l10n_in_hr_payroll/l10n_in_hr_payroll_demo.xml @@ -0,0 +1,16 @@ + + + + + + + + IND + Indian Employee + + + + + + + diff --git a/addons/l10n_in_hr_payroll/l10n_in_hr_payroll_report.xml b/addons/l10n_in_hr_payroll/l10n_in_hr_payroll_report.xml new file mode 100644 index 00000000000..e3fff82fc38 --- /dev/null +++ b/addons/l10n_in_hr_payroll/l10n_in_hr_payroll_report.xml @@ -0,0 +1,14 @@ + + + + + + + + diff --git a/addons/l10n_in_hr_payroll/l10n_in_hr_payroll_view.xml b/addons/l10n_in_hr_payroll/l10n_in_hr_payroll_view.xml new file mode 100644 index 00000000000..cb9a2d93a81 --- /dev/null +++ b/addons/l10n_in_hr_payroll/l10n_in_hr_payroll_view.xml @@ -0,0 +1,21 @@ + + + + + + hr.contract.form.in.inherit + hr.contract + form + 20 + + + + + + + + + + + + diff --git a/addons/l10n_in_hr_payroll/report/__init__.py b/addons/l10n_in_hr_payroll/report/__init__.py new file mode 100644 index 00000000000..c90599352c2 --- /dev/null +++ b/addons/l10n_in_hr_payroll/report/__init__.py @@ -0,0 +1,27 @@ +#!/usr/bin/env python +#-*- coding:utf-8 -*- + +############################################################################## +# +# OpenERP, Open Source Management Solution +# Copyright (C) 2004-2009 Tiny SPRL (). 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 . +# +############################################################################## + +import report_payslip_details + +# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/l10n_in_hr_payroll/report/report_payslip_details.py b/addons/l10n_in_hr_payroll/report/report_payslip_details.py new file mode 100644 index 00000000000..cfd29f8afba --- /dev/null +++ b/addons/l10n_in_hr_payroll/report/report_payslip_details.py @@ -0,0 +1,38 @@ +#!/usr/bin/env python +#-*- coding:utf-8 -*- + +############################################################################## +# +# OpenERP, Open Source Management Solution +# Copyright (C) 2004-2009 Tiny SPRL (). 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 . +# +############################################################################## + +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: diff --git a/addons/l10n_in_hr_payroll/report/report_payslip_details.rml b/addons/l10n_in_hr_payroll/report/report_payslip_details.rml new file mode 100644 index 00000000000..a7ab3db3185 --- /dev/null +++ b/addons/l10n_in_hr_payroll/report/report_payslip_details.rml @@ -0,0 +1,372 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + [[repeatIn(objects,'o')]] + + + + Pay Slip Details + + + + + [[o.credit_note==False and removeParentNode('para')]] + Credit + + Note + + ([[o.name or removeParentNode('para')]]) + + + + Name + + + [[o.employee_id.name]] + + + Designation + + + [[ o.employee_id.job_id.name or '' ]] + + + + + + + + Address + + + + [[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 '' ]] + + + + + + + Email + + + [[ o.employee_id.work_email or '' ]] + + + + Identification No + + + + [[ o.employee_id.identification_id or '' ]] + + + + + + + Reference + + + [[ o.number or '' ]] + + + Bank Account + + + [[ o.employee_id.otherid or '' ]] + + + + + + + Date From + + + [[ o.date_from or '']] + + + + Date To + + + + [[ o.date_to or '' ]] + + + + + + + + + + + + + + Details by Salary Rule Category: + + + + + + + Code + + + Salary Rule Category + + + Total + + + + + + +
+ [[repeatIn(get_details_by_rule_category(o.details_by_salary_rule_category),'h') ]] + + + + + [[ h['code'] ]] + [[ h['level']!=0 and ( setTag('para','para',{'style':'terp_default_8'})) or removeParentNode('font')]] + + + + [[ '..'*h['level'] ]][[ h['rule_category'] ]][[ h['level']!=0 and ( setTag('para','para',{'style':'terp_default_8'})) or removeParentNode('font') ]] + + + [[ formatLang(h['total']) ]] [[o.company_id and o.company_id.currency_id.symbol or '']] [[ h['level']==0 and ( setTag('para','para',{'style':'terp_default_10'})) or removeParentNode('font') ]] + + + +
+ + + + + + + + + + + + + + + + + + + + + + Authorized Signature + + + + + + +
+
+ diff --git a/addons/l10n_in_hr_payroll/security/hr.salary.rule.csv b/addons/l10n_in_hr_payroll/security/hr.salary.rule.csv new file mode 100644 index 00000000000..f18a77cd01b --- /dev/null +++ b/addons/l10n_in_hr_payroll/security/hr.salary.rule.csv @@ -0,0 +1,3 @@ +"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink" +"access_hr_salary_head","hr.salary.head","model_hr_salary_head","base.group_hr_user",1,1,1,1 +"access_hr_salary_rule","hr.salary.rule","model_hr_salary_rule","base.group_hr_user",1,1,1,1 From c34e57aaf632ef45df11cbeb36e1d02f3d2c52e1 Mon Sep 17 00:00:00 2001 From: "Khushboo Bhatt (Open ERP)" Date: Tue, 15 May 2012 16:54:43 +0530 Subject: [PATCH 025/569] [IMP]improved child allowance rule for employee. bzr revid: kbh@tinyerp.com-20120515112443-h79ixtb311xs7sdt --- .../data/hr.salary.rule.csv | 6 ++--- .../l10n_in_hr_payroll_data.xml | 23 ++++++------------- 2 files changed, 9 insertions(+), 20 deletions(-) diff --git a/addons/l10n_in_hr_payroll/data/hr.salary.rule.csv b/addons/l10n_in_hr_payroll/data/hr.salary.rule.csv index 0d62cf670e0..c7a257e8675 100644 --- a/addons/l10n_in_hr_payroll/data/hr.salary.rule.csv +++ b/addons/l10n_in_hr_payroll/data/hr.salary.rule.csv @@ -1,9 +1,7 @@ "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,,50,"Education Allowance","Child Education Allowance",23,"CHEA","hr_payroll_rule_child1","range","employee.children", -2,"fix",2,2,,100,"Education Allowance","Child Education Allowance",24,"CHEA","hr_payroll_rule_child1","range","employee.children", +1,"fix",1,1,,1200,"Education Allowance","Child Education Allowance",23,"CHEA","hr_payroll_rule_child1","range","employee.children", +2,"fix",2,2,,2400,"Education Allowance","Child Education Allowance",24,"CHEA","hr_payroll_rule_child1","range","employee.children", ,,,,,,,,,,,,, -3,"fix",1,1,,150,"Education Allowance with Hostel","Child Education Allowance",26,"CHEAH","hr_payroll_rule_child2","range","employee.children", -4,"fix",2,2,,300,"Education Allowance with Hostel","Child Education Allowance",27,"CHEAH","hr_payroll_rule_child2","range","employee.children", ,,,,,,,,,,,,, 5,"fix",0,2999,,0,"Professional Tax for Gujarat","Deduction",121,"PT0","hr_payslip_line_professionaltax_guj","range","categories.GROSS", 6,"fix",3000,5999,,-20,"Professional Tax for Gujarat","Deduction",121,"PT20","hr_payslip_line_professionaltax_guj","range","categories.GROSS", diff --git a/addons/l10n_in_hr_payroll/l10n_in_hr_payroll_data.xml b/addons/l10n_in_hr_payroll/l10n_in_hr_payroll_data.xml index 6edee15874f..e5286409100 100644 --- a/addons/l10n_in_hr_payroll/l10n_in_hr_payroll_data.xml +++ b/addons/l10n_in_hr_payroll/l10n_in_hr_payroll_data.xml @@ -42,21 +42,10 @@ python result = bool(employee.children) fix - Education allowance of Rs. 50 per month per child for up to 2 children of the employee is exempted. + Per school going child 1200 per annum is non-taxable. Maximum for 2 children, so max 2400 per annum becomes non-taxable.
- - CHEAH - Education Allowance with Hostel - - - python - result = bool(employee.children) - fix - In case the children are in hostel, the exemption available is Rs.150 per month per child for up to 2 children. - - MGMTA @@ -129,7 +118,7 @@ fix 0.0 - Payment by way of leave encashment received by Central & State Govt. + 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: @@ -137,7 +126,8 @@ 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 - Read more: http://www.pankajbatra.com/finance/income-tax-calculator-2012-2013-2014/#ixzz1uuunHwjE + Read more: http://www.pankajbatra.com/finance/income-tax-calculator-2012-2013-2014/#ixzz1uuunHwjE + @@ -190,9 +180,10 @@ fix - In some of the cases, companies may provide a component for telephone bills. + 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. - Read more: http://www.pankajbatra.com/finance/income-tax-calculator-2012-2013-2014/#ixzz1uuvaUK7A + Read more: http://www.pankajbatra.com/finance/income-tax-calculator-2012-2013-2014/#ixzz1uuvaUK7A + From 0752cc0fe9bef22a448ae2fec7b52a68cb634335 Mon Sep 17 00:00:00 2001 From: "Khushboo Bhatt (Open ERP)" Date: Wed, 16 May 2012 10:37:16 +0530 Subject: [PATCH 026/569] [IMP]improved child allowance rule for employee. bzr revid: kbh@tinyerp.com-20120516050716-kprn03ib238h5tua --- addons/l10n_in_hr_payroll/data/hr.salary.rule.csv | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/addons/l10n_in_hr_payroll/data/hr.salary.rule.csv b/addons/l10n_in_hr_payroll/data/hr.salary.rule.csv index c7a257e8675..2b6b4fbd847 100644 --- a/addons/l10n_in_hr_payroll/data/hr.salary.rule.csv +++ b/addons/l10n_in_hr_payroll/data/hr.salary.rule.csv @@ -1,6 +1,6 @@ "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,,1200,"Education Allowance","Child Education Allowance",23,"CHEA","hr_payroll_rule_child1","range","employee.children", -2,"fix",2,2,,2400,"Education Allowance","Child Education Allowance",24,"CHEA","hr_payroll_rule_child1","range","employee.children", +1,"fix",1,1,,1200,"Education Allowance","Child Education Allowance",23,"CHEAONE","hr_payroll_rule_child1","range","employee.children", +2,"fix",2,10,,2400,"Education Allowance","Child Education Allowance",24,"CHEATWO","hr_payroll_rule_child1","range","employee.children", ,,,,,,,,,,,,, ,,,,,,,,,,,,, 5,"fix",0,2999,,0,"Professional Tax for Gujarat","Deduction",121,"PT0","hr_payslip_line_professionaltax_guj","range","categories.GROSS", From 38bc8ca8f0cb2dd98c7f98446df9b1ba8c5b96ec Mon Sep 17 00:00:00 2001 From: "Khushboo Bhatt (Open ERP)" Date: Thu, 17 May 2012 17:33:35 +0530 Subject: [PATCH 027/569] [IMP]improved rules(HRA,DA,city allowance,driver salary,transport allowance). bzr revid: kbh@tinyerp.com-20120517120335-inov2l3rsfraix96 --- addons/hr_payroll/hr_payroll_demo.xml | 67 ++++-- .../l10n_in_hr_payroll/l10n_in_hr_payroll.py | 2 + .../l10n_in_hr_payroll_data.xml | 222 +++++++++++------- .../l10n_in_hr_payroll_view.xml | 1 + 4 files changed, 185 insertions(+), 107 deletions(-) diff --git a/addons/hr_payroll/hr_payroll_demo.xml b/addons/hr_payroll/hr_payroll_demo.xml index 33b345591eb..d3826773e7d 100644 --- a/addons/hr_payroll/hr_payroll_demo.xml +++ b/addons/hr_payroll/hr_payroll_demo.xml @@ -16,29 +16,48 @@ Professional Tax Register - - Meal Voucher Register + + Food coupon Register - - percentage - - contract.wage - HRA + + HRA_M + code + result = (contract.wage + DA) * 0.50 - House Rent Allowance - - Rent receipts can be shown for taking tax benefit for living in a rented house.Income tax exemption for HRA will be least of following: - 1. The actual amount of HRA received as a part of salary. - 2. 40% (if living in non-metro area) or 50% (if living in metro area) of (basic salary+Dearness allowance (DA)). - 3. Rent paid minus 10% of (basic salary+DA). - Read more: http://www.pankajbatra.com/finance/income-tax-calculator-2012-2013-2014/#ixzz1upoomH73 + House Rent Allowance for metro city + + +Rent receipts can be shown for taking tax benefit for living in a rented house. +Income tax exemption for HRA will be least of following: + 1. The actual amount of HRA received as a part of salary. + 2. 40% (if living in non-metro area). + 3. Rent paid minus 10% of (basic salary+DA). + Read more: http://www.pankajbatra.com/finance/income-tax-calculator-2012-2013-2014/#ixzz1upoomH73 + + code + result = (contract.wage + DA) * 0.40 + HRA_NONM + + + House Rent Allowance for non metro city + + +Rent receipts can be shown for taking tax benefit for living in a rented house. +Income tax exemption for HRA will be least of following: + 1. The actual amount of HRA received as a part of salary. + 2. 50% (if living in metro area) of (basic salary+Dearness allowance (DA)). + 3. Rent paid minus 10% of (basic salary+DA). + Read more: http://www.pankajbatra.com/finance/income-tax-calculator-2012-2013-2014/#ixzz1upoomH73 + + + fix @@ -56,8 +75,9 @@ Professional Tax - Professional tax deducted from salary by employer should be removed from taxable salary before computation of income tax. - Read more: http://www.pankajbatra.com/finance/income-tax-calculator-2012-2013-2014/#ixzz1uugbJcaM + +Professional tax deducted from salary by employer should be removed from taxable salary before computation of income tax. +Read more: http://www.pankajbatra.com/finance/income-tax-calculator-2012-2013-2014/#ixzz1uugbJcaM @@ -80,14 +100,17 @@ - - fix + + code worked_days.WORK100.number_of_days - MA + FC - - Meal Voucher + + python + result = bool(contract.food_coupon_amount) + Food Coupons + result = worked_days.WORK100.number_of_days * contract.food_coupon_amount @@ -98,7 +121,7 @@ Get 1% of sales result = (inputs.SALEURO.amount + inputs.SALASIA.amount) * 0.01 - + diff --git a/addons/l10n_in_hr_payroll/l10n_in_hr_payroll.py b/addons/l10n_in_hr_payroll/l10n_in_hr_payroll.py index dc075b0be36..f7505257537 100644 --- a/addons/l10n_in_hr_payroll/l10n_in_hr_payroll.py +++ b/addons/l10n_in_hr_payroll/l10n_in_hr_payroll.py @@ -27,6 +27,8 @@ class hr_contract_in(osv.osv): _columns = { 'tds': fields.float('TDS', digits_compute=dp.get_precision('Payroll')), + 'food_coupon_amount': fields.float('Food Coupons ', digits_compute=dp.get_precision('Payroll')), + } hr_contract_in() diff --git a/addons/l10n_in_hr_payroll/l10n_in_hr_payroll_data.xml b/addons/l10n_in_hr_payroll/l10n_in_hr_payroll_data.xml index e5286409100..19500c73e48 100644 --- a/addons/l10n_in_hr_payroll/l10n_in_hr_payroll_data.xml +++ b/addons/l10n_in_hr_payroll/l10n_in_hr_payroll_data.xml @@ -18,10 +18,11 @@ percentage contract.wage - + - DA is calculated in % - for more details:http://www.citehr.com/26809-how-calculate-dearness-allowance-da.html + +DA is calculated in % +for more details:http://www.citehr.com/26809-how-calculate-dearness-allowance-da.html @@ -31,7 +32,9 @@ fix none - Per school going child 1200 per annum is non-taxable. Maximum for 2 children, so max 2400 per annum becomes non-taxable. + +Per school going child 1200 per annum is non-taxable. + Maximum for 2 children, so max 2400 per annum becomes non-taxable. @@ -42,7 +45,6 @@ python result = bool(employee.children) fix - Per school going child 1200 per annum is non-taxable. Maximum for 2 children, so max 2400 per annum becomes non-taxable. @@ -54,19 +56,40 @@ fix - This allowance is normally given as an additional benefit to employees and is fully taxable. - for more details : http://www.rupeetalk.com/finance-basics/income-tax-basics/income-tax-guides/tax-implications-of-salary-components.php + +This allowance is normally given as an additional benefit to employees and is fully taxable. +for more details : http://www.rupeetalk.com/finance-basics/income-tax-basics/income-tax-guides/tax-implications-of-salary-components.php
- - CCA + + CBDA City Compensatory Allowance + none + + code + result = (contract.wage + DA) * 0.10 + + + + + CMETRO + City Allowance for Metro city + + none + fix - - - 10% of basic+da is the maximum. - for more details :http://www.citehr.com/250071-what-cca-allowance.html + 850.0 + + + + CNMETRO + City Allowance for Non Metro city + + none + + fix + 800.0 @@ -76,10 +99,11 @@ fix - 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. - Read more: http://www.pankajbatra.com/finance/income-tax-calculator-2012-2013-2014/#ixzz1uurtGGGd + +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. +Read more: http://www.pankajbatra.com/finance/income-tax-calculator-2012-2013-2014/#ixzz1uurtGGGd @@ -90,7 +114,10 @@ code result = (categories.NET/26) * 15 * 5 - Covered under the Payment of Gratuity Act, 1971: (Last drawn monthly basic salary + dearness allowance)/26 x 15 days x number of years of service (date of joining – date of retirement/leaving job) + +Covered under the Payment of Gratuity Act, 1971: +(Last drawn monthly basic salary + dearness allowance)/26 x 15 days x +number of years of service (date of joining – date of retirement/leaving job) @@ -102,12 +129,14 @@ contract.wage - As per Income tax rules of India, if transport bills for LTA are not provided, - the amount will be taxed. E.g. If an employee has LTA allowance as Rs 50,000 in his CTC(cost to company), - and he provides proofs of Rs 40,000 (boarding pass, air tickets, taxi vouchers) then income tax will be - deducted for rest of the Rs 10,000. Does not matter whats the amount of LTA in an employee’s package, - income tax laws only permits domestic air tickets only for LTA claim. - Read more: http://www.pankajbatra.com/news/lta-proof-reimbursement-to-employer-not-required-supreme-court-india-ruling/#ixzz1uutlHSez + +As per Income tax rules of India, if transport bills for LTA are not provided, +the amount will be taxed. E.g. If an employee has LTA allowance as Rs 50,000 +in his CTC(cost to company),and he provides proofs of Rs 40,000 (boarding pass, +air tickets, taxi vouchers) then income tax will be deducted for rest of the +Rs 10,000. Does not matter whats the amount of LTA in an employee’s package, +income tax laws only permits domestic air tickets only for LTA claim. +Read more: http://www.pankajbatra.com/news/lta-proof-reimbursement-to-employer-not-required-supreme-court-india-ruling/#ixzz1uutlHSez @@ -118,15 +147,16 @@ fix 0.0 - 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 - Read more: http://www.pankajbatra.com/finance/income-tax-calculator-2012-2013-2014/#ixzz1uuunHwjE + +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 + Read more: http://www.pankajbatra.com/finance/income-tax-calculator-2012-2013-2014/#ixzz1uuunHwjE @@ -155,11 +185,12 @@ Periodical Journals fix - + - 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. + +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. @@ -169,8 +200,9 @@ fix - Some sections of employees mat get allowance for purchase of office dress/uniform. - In such case, the component would become non-taxable. + +Some sections of employees mat get allowance for purchase of office dress/uniform. +In such case, the component would become non-taxable. @@ -180,9 +212,11 @@ fix - 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. - Read more: http://www.pankajbatra.com/finance/income-tax-calculator-2012-2013-2014/#ixzz1uuvaUK7A + +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. +Read more: http://www.pankajbatra.com/finance/income-tax-calculator-2012-2013-2014/#ixzz1uuvaUK7A @@ -193,10 +227,11 @@ fix - 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. - Read more: http://www.pankajbatra.com/finance/income-tax-calculator-2012-2013-2014/#ixzz1uuw12Cjj + +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. +Read more: http://www.pankajbatra.com/finance/income-tax-calculator-2012-2013-2014/#ixzz1uuw12Cjj @@ -214,7 +249,10 @@ Driver Salary fix - + + python + result = bool(employee.vehicle) + Rs. 900 per month (non taxable) @@ -226,8 +264,9 @@ fix - gift gift is from non relatives person worth more than Rs.50000, - one is liable to pay the tax what ever he received excess of the limit or Rs 50,000. + +gift gift is from non relatives person worth more than Rs.50000, +one is liable to pay the tax what ever he received excess of the limit or Rs 50,000. @@ -251,6 +290,15 @@ 30% of the rental income can be reduced as a standard deduction + + TA + Transport/Conveyance Allownace + + fix + + + + OTI Other Income @@ -270,9 +318,10 @@ fix - if stocks/equity mutual funds are sold before one year, - 15% tax would be payable on such gains. STT should have been on transaction. - Read more: http://www.pankajbatra.com/finance/income-tax-calculator-2012-2013-2014/#ixzz1uuwSxEvI + +If stocks/equity mutual funds are sold before one year, +15% tax would be payable on such gains. STT should have been on transaction. +Read more: http://www.pankajbatra.com/finance/income-tax-calculator-2012-2013-2014/#ixzz1uuwSxEvI @@ -282,11 +331,12 @@ fix - If stocks/equity mutual funds are kept for more than a year before sale, - it would be long term gains and such gains would be fully exempt from income tax. - Securities transaction tax (STT) must have been paid on transactions for availing - this exemption. - Read more: http://www.pankajbatra.com/finance/income-tax-calculator-2012-2013-2014/#ixzz1uuwtRkCT + +If stocks/equity mutual funds are kept for more than a year before sale, +it would be long term gains and such gains would be fully exempt from income tax. +Securities transaction tax (STT) must have been paid on transactions for availing +this exemption. +Read more: http://www.pankajbatra.com/finance/income-tax-calculator-2012-2013-2014/#ixzz1uuwtRkCT @@ -299,9 +349,9 @@ - PROFESSIONAL TAX FOR COMPANY SHOULD BE PAID ON OR BEFORE 30TH SEPT, - THE AMOUNT IS Rs. 2000 PER YEAR. THERE IS NO PAYMENT FORM TO BE FLLED. - Attribution: http://www.citehr.com/249518-companys-professional-tax-gujarat.html#ixzz1uuyvgt2L +Professional tax for company should be paid on or before 30th sept, +The amount is Rs.2000 per year.There is no payment form to be filled. +Read more: http://www.citehr.com/249518-companys-professional-tax-gujarat.html#ixzz1uuyvgt2L @@ -313,12 +363,13 @@ code result = -(contract.tds) - As per income tax rules, all payment which are taxable in nature should be - done after deduction of taxes at the source itself. Hence employer compute - income tax on salary payment and deduct it every month. This TDS is based - on employee’s saving/investment declaration at the start of year. If - investments for tax saving is not done, large amount may be deducted in last few months. - Read more: http://www.pankajbatra.com/finance/income-tax-calculator-2012-2013-2014/#ixzz1uv0gPhgQ + +As per income tax rules, all payment which are taxable in nature should be +done after deduction of taxes at the source itself. Hence employer compute +income tax on salary payment and deduct it every month. This TDS is based +on employee’s saving/investment declaration at the start of year. If investments +for tax saving is not done, large amount may be deducted in last few months. +Read more: http://www.pankajbatra.com/finance/income-tax-calculator-2012-2013-2014/#ixzz1uv0gPhgQ @@ -329,17 +380,17 @@ - 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 the 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/- - for more details:http://www.dotcominfoway.com/blog/vpf-or-voluntary-provident-fund-special-benefits-for-employees +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 the 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/- +read more: more:http://www.dotcominfoway.com/blog/vpf-or-voluntary-provident-fund-special-benefits-for-employees @@ -347,7 +398,7 @@ Dedution for Company Provided Transport fix - + @@ -358,13 +409,14 @@ fix - 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) - 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) - Attribution: http://www.citehr.com/270132-labour-welfare-fund-deduction-salary.html + +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) +read more: http://www.citehr.com/270132-labour-welfare-fund-deduction-salary.html diff --git a/addons/l10n_in_hr_payroll/l10n_in_hr_payroll_view.xml b/addons/l10n_in_hr_payroll/l10n_in_hr_payroll_view.xml index cb9a2d93a81..939dc0b3b79 100644 --- a/addons/l10n_in_hr_payroll/l10n_in_hr_payroll_view.xml +++ b/addons/l10n_in_hr_payroll/l10n_in_hr_payroll_view.xml @@ -12,6 +12,7 @@ + From 00dd3743f8d1c39b7388078564b9f66acac61c68 Mon Sep 17 00:00:00 2001 From: "Khushboo Bhatt (Open ERP)" Date: Mon, 21 May 2012 12:36:43 +0530 Subject: [PATCH 028/569] [IMP]improved rules for gratuity,leave,uniform,telephone,proffessional developement. And implement method for gratuity rule. bzr revid: kbh@tinyerp.com-20120521070643-523rov1a8v63f13p --- .../l10n_in_hr_payroll/l10n_in_hr_payroll.py | 37 +++++++++++++++++++ .../l10n_in_hr_payroll_data.xml | 19 +++++++--- .../l10n_in_hr_payroll_view.xml | 1 + 3 files changed, 52 insertions(+), 5 deletions(-) diff --git a/addons/l10n_in_hr_payroll/l10n_in_hr_payroll.py b/addons/l10n_in_hr_payroll/l10n_in_hr_payroll.py index f7505257537..ee373b20f3c 100644 --- a/addons/l10n_in_hr_payroll/l10n_in_hr_payroll.py +++ b/addons/l10n_in_hr_payroll/l10n_in_hr_payroll.py @@ -22,12 +22,49 @@ from osv import fields, osv import decimal_precision as dp +import time +from datetime import datetime +from datetime import timedelta +from datetime import date +from calendar import isleap +from dateutil.relativedelta import relativedelta + class hr_contract_in(osv.osv): _inherit = 'hr.contract' + + def _compute_year(self, cr, uid, ids, fields, args, context=None): + """ + @param cr: the current row, from the database cursor, + @param uid: the current user’s ID for security checks, + @param ids: List of Openday’s IDs + @return: No. of years of experience. + @param context: A standard dictionary for contextual values + """ + res = {} + for contract in self.browse(cr, uid, ids, context=context): + c_date = time.strftime('%Y-%m-%d') + DATETIME_FORMAT = "%Y-%m-%d" + date_start = datetime.strptime(contract.date_start, DATETIME_FORMAT) + current_date = datetime.strptime(c_date,DATETIME_FORMAT) + diffyears = current_date.year - date_start.year + difference = current_date - date_start.replace(current_date.year) + days_in_year = isleap(current_date.year) and 366 or 365 + difference_in_years = diffyears + (difference.days + difference.seconds/86400.0)/days_in_year + years = relativedelta(current_date, date_start).years + months = relativedelta(current_date, date_start).months + mnth = months * 0.01 + if months < 10: + year_month= float(mnth) + float(years) + res[contract.id] = year_month + else: + year_months = float(mnth) + float(years) + res[contract.id] = year_months + return res _columns = { 'tds': fields.float('TDS', digits_compute=dp.get_precision('Payroll')), 'food_coupon_amount': fields.float('Food Coupons ', digits_compute=dp.get_precision('Payroll')), + 'No_of_year':fields.function(_compute_year, string='No. of Years of service',type="float",readonly=True), } diff --git a/addons/l10n_in_hr_payroll/l10n_in_hr_payroll_data.xml b/addons/l10n_in_hr_payroll/l10n_in_hr_payroll_data.xml index 19500c73e48..101877a9d3b 100644 --- a/addons/l10n_in_hr_payroll/l10n_in_hr_payroll_data.xml +++ b/addons/l10n_in_hr_payroll/l10n_in_hr_payroll_data.xml @@ -97,7 +97,7 @@ for more details : http://www.rupeetalk.com/finance-basics/income-tax-basics/inc Arrears fix - + Generally arrears are fully taxable, but employee may claim exemption u/s 89(1). @@ -112,7 +112,7 @@ Read more: http://www.pankajbatra.com/finance/income-tax-calculator-2012-2013-20 none code - result = (categories.NET/26) * 15 * 5 + result = (contract.wage + DA) * 15 * contract.No_of_year / worked_days.WORK100.number_of_days Covered under the Payment of Gratuity Act, 1971: @@ -165,7 +165,7 @@ is to be limited to minimum of all below: Performance Incentive/Bonus fix - + This would be fully taxable based on incentive. @@ -198,7 +198,7 @@ business growth.This part would become non taxable on providing original bills.< Uniform/Dress Allowance fix - + Some sections of employees mat get allowance for purchase of office dress/uniform. @@ -210,7 +210,7 @@ In such case, the component would become non-taxable. Telephone Reimbursement fix - + In some of the cases, companies may provide a component for telephone bills. @@ -220,6 +220,15 @@ Read more: http://www.pankajbatra.com/finance/income-tax-calculator-2012-2013-20 + + PDA + Professional Development Allowance + + fix + + + + CAR Car Expenses Reimbursement diff --git a/addons/l10n_in_hr_payroll/l10n_in_hr_payroll_view.xml b/addons/l10n_in_hr_payroll/l10n_in_hr_payroll_view.xml index 939dc0b3b79..f09c326bff1 100644 --- a/addons/l10n_in_hr_payroll/l10n_in_hr_payroll_view.xml +++ b/addons/l10n_in_hr_payroll/l10n_in_hr_payroll_view.xml @@ -13,6 +13,7 @@ + From cf28ac19188994335b59ea50d88d394cd9c1a1d5 Mon Sep 17 00:00:00 2001 From: "Khushboo Bhatt (Open ERP)" Date: Mon, 21 May 2012 18:57:03 +0530 Subject: [PATCH 029/569] [IMP]improved salary rules for allowance and deduction. bzr revid: kbh@tinyerp.com-20120521132703-m1q4s1ccxyp3nr0p --- .../data/hr.salary.rule.csv | 5 - .../l10n_in_hr_payroll/l10n_in_hr_payroll.py | 12 +- .../l10n_in_hr_payroll_data.xml | 133 +++++++++++++----- .../l10n_in_hr_payroll_view.xml | 19 ++- 4 files changed, 127 insertions(+), 42 deletions(-) diff --git a/addons/l10n_in_hr_payroll/data/hr.salary.rule.csv b/addons/l10n_in_hr_payroll/data/hr.salary.rule.csv index 2b6b4fbd847..b41229965c8 100644 --- a/addons/l10n_in_hr_payroll/data/hr.salary.rule.csv +++ b/addons/l10n_in_hr_payroll/data/hr.salary.rule.csv @@ -3,8 +3,3 @@ 2,"fix",2,10,,2400,"Education Allowance","Child Education Allowance",24,"CHEATWO","hr_payroll_rule_child1","range","employee.children", ,,,,,,,,,,,,, ,,,,,,,,,,,,, -5,"fix",0,2999,,0,"Professional Tax for Gujarat","Deduction",121,"PT0","hr_payslip_line_professionaltax_guj","range","categories.GROSS", -6,"fix",3000,5999,,-20,"Professional Tax for Gujarat","Deduction",121,"PT20","hr_payslip_line_professionaltax_guj","range","categories.GROSS", -7,"fix",6000,8999,,-80,"Professional Tax for Gujarat","Deduction",121,"PT80","hr_payslip_line_professionaltax_guj","range","categories.GROSS", -8,"fix",9000,11999,,-150,"Professional Tax for Gujarat","Deduction",121,"PT150","hr_payslip_line_professionaltax_guj","range","categories.GROSS", -9,"fix",12000,1000000,,-200,"Professional Tax for Gujarat","Deduction",121,"PT200","hr_payslip_line_professionaltax_guj","range","categories.GROSS", diff --git a/addons/l10n_in_hr_payroll/l10n_in_hr_payroll.py b/addons/l10n_in_hr_payroll/l10n_in_hr_payroll.py index ee373b20f3c..1a2f25be562 100644 --- a/addons/l10n_in_hr_payroll/l10n_in_hr_payroll.py +++ b/addons/l10n_in_hr_payroll/l10n_in_hr_payroll.py @@ -63,9 +63,19 @@ class hr_contract_in(osv.osv): _columns = { 'tds': fields.float('TDS', digits_compute=dp.get_precision('Payroll')), + 'house_rent_income': fields.float('House Rent Income ', digits_compute=dp.get_precision('Payroll')), + 'saving_bank_account': fields.float('Saving Bank Account Income ', digits_compute=dp.get_precision('Payroll')), + 'other_income': fields.float('Other Income ', digits_compute=dp.get_precision('Payroll')), + 'short_term_gain':fields.float('Short Term Gain from Share Trading/Equity MFs ', digits_compute=dp.get_precision('Payroll')), + 'long_term_gain':fields.float('Long Term Gain from Share Trading/Equity MFs', digits_compute=dp.get_precision('Payroll')), 'food_coupon_amount': fields.float('Food Coupons ', digits_compute=dp.get_precision('Payroll')), + 'driver_salay': fields.boolean('Driver salary '), + 'professional_tax': fields.float('Professional Tax ', digits_compute=dp.get_precision('Payroll')), + 'leave_avail_dedution': fields.float('leave Avail deduction ', digits_compute=dp.get_precision('Payroll')), 'No_of_year':fields.function(_compute_year, string='No. of Years of service',type="float",readonly=True), - + 'medical_insurance': fields.float('Medical Insurance', digits_compute=dp.get_precision('Payroll')), + 'voluntarily_provident_fund': fields.float('Voluntarily Provident Fund', digits_compute=dp.get_precision('Payroll')), + 'company_transport': fields.float('Company provided transport', digits_compute=dp.get_precision('Payroll')), } hr_contract_in() diff --git a/addons/l10n_in_hr_payroll/l10n_in_hr_payroll_data.xml b/addons/l10n_in_hr_payroll/l10n_in_hr_payroll_data.xml index 101877a9d3b..81cb1bcd725 100644 --- a/addons/l10n_in_hr_payroll/l10n_in_hr_payroll_data.xml +++ b/addons/l10n_in_hr_payroll/l10n_in_hr_payroll_data.xml @@ -54,7 +54,7 @@ Per school going child 1200 per annum is non-taxable. Grade/Special/Management/Supplementary Allowance fix - + This allowance is normally given as an additional benefit to employees and is fully taxable. @@ -209,8 +209,8 @@ In such case, the component would become non-taxable. TELR Telephone Reimbursement - fix - + code + result = 1500 *12 In some of the cases, companies may provide a component for telephone bills. @@ -233,8 +233,8 @@ Read more: http://www.pankajbatra.com/finance/income-tax-calculator-2012-2013-20 CAR Car Expenses Reimbursement - fix - + code + result = 1800 * 12 In case company provides component for this and employee use self owned car for official @@ -248,7 +248,7 @@ Read more: http://www.pankajbatra.com/finance/income-tax-calculator-2012-2013-20 Internet Expense fix - + Employer may also provide reimbursement of internet expenses and thus this would become non taxable. @@ -257,11 +257,10 @@ Read more: http://www.pankajbatra.com/finance/income-tax-calculator-2012-2013-20 DRI Driver Salary + python + result = bool(contract.driver_salay) fix - python - result = bool(employee.vehicle) - Rs. 900 per month (non taxable) @@ -271,7 +270,7 @@ Read more: http://www.pankajbatra.com/finance/income-tax-calculator-2012-2013-20 Gifts From Non-Relatives fix - + gift gift is from non relatives person worth more than Rs.50000, @@ -283,7 +282,7 @@ one is liable to pay the tax what ever he received excess of the limit or Rs 50, Gifts From Relatives fix - + gift is from relaives whould be non taxable with no limits. @@ -293,10 +292,22 @@ one is liable to pay the tax what ever he received excess of the limit or Rs 50, House Rent Income fix - - Income from house property + + python + result = bool(contract.house_rent_income) - 30% of the rental income can be reduced as a standard deduction + Income from house property.30% of the rental income can be reduced as a standard deduction + + + + SBAI + Saving Bank Account Interest + + code + result = contract.saving_bank_account + python + result = bool(contract.saving_bank_account) + @@ -313,19 +324,30 @@ one is liable to pay the tax what ever he received excess of the limit or Rs 50, Other Income python - result = bool(contract.others) + result = bool(contract.other_income) code - result = contract.others + result = contract.other_income Bank account/NSC/Post Office/SCSS interest + + AI + Agricultural Income + + fix + + + + STG Short Term Gains from Share Trading/Equity MFs - fix - + code + result = contract.short_term_gain + python + result = bool(contract.short_term_gain) If stocks/equity mutual funds are sold before one year, @@ -337,8 +359,10 @@ Read more: http://www.pankajbatra.com/finance/income-tax-calculator-2012-2013-20 LTG Long Term Gains from Share Trading/Equity MFs - fix - + code + result = contract.long_term_gain + python + result = bool(contract.long_term_gain) If stocks/equity mutual funds are kept for more than a year before sale, @@ -349,13 +373,15 @@ Read more: http://www.pankajbatra.com/finance/income-tax-calculator-2012-2013-20 - - PTG - Professional Tax for Gujarat + + PT + Professional Tax - fix + python + result = bool(contract.professional_tax) + code + result = -(contract.professional_tax) - Professional tax for company should be paid on or before 30th sept, @@ -385,8 +411,10 @@ Read more: http://www.pankajbatra.com/finance/income-tax-calculator-2012-2013-20 VPF Voluntarily Provident Fund Contribution - fix - + python + result = bool(contract.voluntarily_provident_fund) + code + result = -(contract.voluntarily_provident_fund) VPF is a safe option wherein you can contribute more than the PF ceiling of 12% @@ -406,8 +434,10 @@ read more: more:http://www.dotcominfoway.com/blog/vpf-or-voluntary-provident-fun CPT Dedution for Company Provided Transport - fix - + python + result = bool(contract.company_transport) + code + result = -(contract.company_transport) @@ -416,7 +446,7 @@ read more: more:http://www.dotcominfoway.com/blog/vpf-or-voluntary-provident-fun Dedution Towards State Labour Welfare Fund fix - + The LWF is applicable to all the members of the organisation except the @@ -433,7 +463,7 @@ read more: http://www.citehr.com/270132-labour-welfare-fund-deduction-salary.htm Dedution Towards Company Provided Group Term Insurance fix - + @@ -441,8 +471,10 @@ read more: http://www.citehr.com/270132-labour-welfare-fund-deduction-salary.htm DLA Dedution Towards Leave Availed - fix - + python + result = bool(contract.leave_avail_dedution) + code + result = -(contract.leave_avail_dedution) @@ -450,7 +482,10 @@ read more: http://www.citehr.com/270132-labour-welfare-fund-deduction-salary.htm CMT Dedution Towards Company Provided Medical Insurance - fix + python + result = bool(contract.medical_insurance) + code + result = - (contract.medical_insurance) @@ -469,9 +504,37 @@ read more: http://www.citehr.com/270132-labour-welfare-fund-deduction-salary.htm Employer's PF Contribution code - result = (rules.PF.amount_percentage * contract.wage)/100 + result = (contract.wage + DA) * 0.12 + + + EPFC + Employee's PF Contribution + + code + result = (contract.wage + DA) / 8.33 + + + + + ENPC + Employer's NPS Contribution + + code + result = (contract.wage + DA) * 0.10 + + + + + ENPFC + Employee's NPS Contribution + + code + result = (contract.wage + DA) * 0.10 + + + diff --git a/addons/l10n_in_hr_payroll/l10n_in_hr_payroll_view.xml b/addons/l10n_in_hr_payroll/l10n_in_hr_payroll_view.xml index f09c326bff1..b6096873748 100644 --- a/addons/l10n_in_hr_payroll/l10n_in_hr_payroll_view.xml +++ b/addons/l10n_in_hr_payroll/l10n_in_hr_payroll_view.xml @@ -11,9 +11,26 @@ - + + + + + + + + + + + + + + + + + + From d2d7cd1292c260a2aae4a459e85784d66e14b6dd Mon Sep 17 00:00:00 2001 From: "Khushboo Bhatt (Open ERP)" Date: Tue, 22 May 2012 11:19:59 +0530 Subject: [PATCH 030/569] [IMP]improved salary rules for VPF,LTA,medical Allowance,howse income. bzr revid: kbh@tinyerp.com-20120522054959-s95pc1goslo28t38 --- .../l10n_in_hr_payroll/l10n_in_hr_payroll.py | 2 +- .../l10n_in_hr_payroll_data.xml | 32 +++++++++---------- 2 files changed, 16 insertions(+), 18 deletions(-) diff --git a/addons/l10n_in_hr_payroll/l10n_in_hr_payroll.py b/addons/l10n_in_hr_payroll/l10n_in_hr_payroll.py index 1a2f25be562..f093fefced3 100644 --- a/addons/l10n_in_hr_payroll/l10n_in_hr_payroll.py +++ b/addons/l10n_in_hr_payroll/l10n_in_hr_payroll.py @@ -74,7 +74,7 @@ class hr_contract_in(osv.osv): 'leave_avail_dedution': fields.float('leave Avail deduction ', digits_compute=dp.get_precision('Payroll')), 'No_of_year':fields.function(_compute_year, string='No. of Years of service',type="float",readonly=True), 'medical_insurance': fields.float('Medical Insurance', digits_compute=dp.get_precision('Payroll')), - 'voluntarily_provident_fund': fields.float('Voluntarily Provident Fund', digits_compute=dp.get_precision('Payroll')), + 'voluntarily_provident_fund': fields.float('Voluntarily Provident Fund', digits_compute=dp.get_precision('Payroll'),help="it is computed as percentage.(%)"), 'company_transport': fields.float('Company provided transport', digits_compute=dp.get_precision('Payroll')), } diff --git a/addons/l10n_in_hr_payroll/l10n_in_hr_payroll_data.xml b/addons/l10n_in_hr_payroll/l10n_in_hr_payroll_data.xml index 81cb1bcd725..0d8d18b5e80 100644 --- a/addons/l10n_in_hr_payroll/l10n_in_hr_payroll_data.xml +++ b/addons/l10n_in_hr_payroll/l10n_in_hr_payroll_data.xml @@ -125,9 +125,8 @@ number of years of service (date of joining – date of retirement/leaving job) LTA Leave Travel Allowance - percentage - contract.wage - + fix + 1666 As per Income tax rules of India, if transport bills for LTA are not provided, @@ -175,7 +174,7 @@ is to be limited to minimum of all below: Medical Reimbursement fix - + This component is on-taxable up to 15000 per year (or Rs 1250 per month) on producing medical bills. @@ -209,8 +208,8 @@ In such case, the component would become non-taxable. TELR Telephone Reimbursement - code - result = 1500 *12 + fix + 1500 In some of the cases, companies may provide a component for telephone bills. @@ -233,8 +232,8 @@ Read more: http://www.pankajbatra.com/finance/income-tax-calculator-2012-2013-20 CAR Car Expenses Reimbursement - code - result = 1800 * 12 + fix + 1800 In case company provides component for this and employee use self owned car for official @@ -291,10 +290,9 @@ one is liable to pay the tax what ever he received excess of the limit or Rs 50, HRI House Rent Income - fix - - python - result = bool(contract.house_rent_income) + code + result = contract.house_rent_income + none Income from house property.30% of the rental income can be reduced as a standard deduction @@ -414,7 +412,7 @@ Read more: http://www.pankajbatra.com/finance/income-tax-calculator-2012-2013-20 python result = bool(contract.voluntarily_provident_fund) code - result = -(contract.voluntarily_provident_fund) + result = -(contract.wage + DA) * contract.voluntarily_provident_fund / 100 VPF is a safe option wherein you can contribute more than the PF ceiling of 12% @@ -504,7 +502,7 @@ read more: http://www.citehr.com/270132-labour-welfare-fund-deduction-salary.htm Employer's PF Contribution code - result = (contract.wage + DA) * 0.12 + result = - (contract.wage + DA) * 0.12 @@ -513,7 +511,7 @@ read more: http://www.citehr.com/270132-labour-welfare-fund-deduction-salary.htm Employee's PF Contribution code - result = (contract.wage + DA) / 8.33 + result = - (contract.wage + DA) * 8.33 / 100 @@ -522,7 +520,7 @@ read more: http://www.citehr.com/270132-labour-welfare-fund-deduction-salary.htm Employer's NPS Contribution code - result = (contract.wage + DA) * 0.10 + result = - (contract.wage + DA) * 0.10 @@ -531,7 +529,7 @@ read more: http://www.citehr.com/270132-labour-welfare-fund-deduction-salary.htm Employee's NPS Contribution code - result = (contract.wage + DA) * 0.10 + result = - (contract.wage + DA) * 0.10 From cf88acabfa7c1e18f9f88c0497d8eec135ac7dbd Mon Sep 17 00:00:00 2001 From: "Khushboo Bhatt (Open ERP)" Date: Wed, 23 May 2012 11:15:19 +0530 Subject: [PATCH 031/569] [IMP]improved salary rules,descriptions for rules, fields tooltip,gratuity calculation method,code for rules. bzr revid: kbh@tinyerp.com-20120523054519-bdrmcnryfvj30j99 --- addons/hr_payroll/hr_payroll_demo.xml | 17 ++- addons/hr_payroll/test/payslip.yml | 4 +- .../l10n_in_hr_payroll/l10n_in_hr_payroll.py | 78 +++++++------ .../l10n_in_hr_payroll_data.xml | 107 ++++-------------- .../l10n_in_hr_payroll_view.xml | 16 ++- .../security/hr.salary.rule.csv | 1 - 6 files changed, 92 insertions(+), 131 deletions(-) diff --git a/addons/hr_payroll/hr_payroll_demo.xml b/addons/hr_payroll/hr_payroll_demo.xml index d3826773e7d..7fd266c628b 100644 --- a/addons/hr_payroll/hr_payroll_demo.xml +++ b/addons/hr_payroll/hr_payroll_demo.xml @@ -23,15 +23,14 @@ - HRA_M + HRAM code result = (contract.wage + DA) * 0.50 House Rent Allowance for metro city - -Rent receipts can be shown for taking tax benefit for living in a rented house. + Rent receipts can be shown for taking tax benefit for living in a rented house. Income tax exemption for HRA will be least of following: 1. The actual amount of HRA received as a part of salary. 2. 40% (if living in non-metro area). @@ -43,13 +42,12 @@ Income tax exemption for HRA will be least of following: code result = (contract.wage + DA) * 0.40 - HRA_NONM + HRANM House Rent Allowance for non metro city - -Rent receipts can be shown for taking tax benefit for living in a rented house. + Rent receipts can be shown for taking tax benefit for living in a rented house. Income tax exemption for HRA will be least of following: 1. The actual amount of HRA received as a part of salary. 2. 50% (if living in metro area) of (basic salary+Dearness allowance (DA)). @@ -75,8 +73,7 @@ Income tax exemption for HRA will be least of following: Professional Tax - -Professional tax deducted from salary by employer should be removed from taxable salary before computation of income tax. + Professional tax deducted from salary by employer should be removed from taxable salary before computation of income tax. Read more: http://www.pankajbatra.com/finance/income-tax-calculator-2012-2013-2014/#ixzz1uugbJcaM @@ -142,7 +139,7 @@ Read more: http://www.pankajbatra.com/finance/income-tax-calculator-2012-2013-20 ME Marketing Executive - + @@ -150,7 +147,7 @@ Read more: http://www.pankajbatra.com/finance/income-tax-calculator-2012-2013-20 MEQP Marketing Executive for Quentin Paolino - + diff --git a/addons/hr_payroll/test/payslip.yml b/addons/hr_payroll/test/payslip.yml index c3ad3a1a85c..e44cfcaa325 100644 --- a/addons/hr_payroll/test/payslip.yml +++ b/addons/hr_payroll/test/payslip.yml @@ -17,11 +17,11 @@ code: SD company_id: base.main_company rule_ids: - - hr_salary_rule_houserentallowance1 + - hr_salary_rule_houserentallowancemetro - hr_salary_rule_convanceallowance1 - hr_salary_rule_professionaltax1 - hr_salary_rule_providentfund1 - - hr_salary_rule_meal_voucher + - hr_salary_rule_food_coupon - hr_salary_rule_sales_commission - I create a contract for "Richard" diff --git a/addons/l10n_in_hr_payroll/l10n_in_hr_payroll.py b/addons/l10n_in_hr_payroll/l10n_in_hr_payroll.py index f093fefced3..3e3fcaa0006 100644 --- a/addons/l10n_in_hr_payroll/l10n_in_hr_payroll.py +++ b/addons/l10n_in_hr_payroll/l10n_in_hr_payroll.py @@ -23,11 +23,11 @@ from osv import fields, osv import decimal_precision as dp import time -from datetime import datetime -from datetime import timedelta -from datetime import date +from datetime import datetime, timedelta, date from calendar import isleap from dateutil.relativedelta import relativedelta +from bsddb.dbtables import _columns +from epsilon.hotfix import require class hr_contract_in(osv.osv): _inherit = 'hr.contract' @@ -41,43 +41,53 @@ class hr_contract_in(osv.osv): @param context: A standard dictionary for contextual values """ res = {} - for contract in self.browse(cr, uid, ids, context=context): - c_date = time.strftime('%Y-%m-%d') - DATETIME_FORMAT = "%Y-%m-%d" - date_start = datetime.strptime(contract.date_start, DATETIME_FORMAT) - current_date = datetime.strptime(c_date,DATETIME_FORMAT) - diffyears = current_date.year - date_start.year - difference = current_date - date_start.replace(current_date.year) - days_in_year = isleap(current_date.year) and 366 or 365 - difference_in_years = diffyears + (difference.days + difference.seconds/86400.0)/days_in_year - years = relativedelta(current_date, date_start).years - months = relativedelta(current_date, date_start).months - mnth = months * 0.01 - if months < 10: - year_month= float(mnth) + float(years) - res[contract.id] = year_month - else: - year_months = float(mnth) + float(years) - res[contract.id] = year_months + c_date = time.strftime('%Y-%m-%d') + DATETIME_FORMAT = "%Y-%m-%d" + current_date = datetime.strptime(c_date,DATETIME_FORMAT) + employee_pool = self.pool.get('hr.employee') + for contract in self.browse(cr, uid, ids, context): + employee = employee_pool.browse(cr, uid, contract.employee_id.id, context=context) + if employee.join_date: + date_start = datetime.strptime(employee.join_date, DATETIME_FORMAT) + diffyears = current_date.year - date_start.year + difference = current_date - date_start.replace(current_date.year) + days_in_year = isleap(current_date.year) and 366 or 365 + difference_in_years = diffyears + (difference.days + difference.seconds/86400.0)/days_in_year + total_years = relativedelta(current_date, date_start).years + total_months = relativedelta(current_date, date_start).months + if total_months < 10: + year_month= float(total_months)/10 + float(total_years) + res[contract.id] = year_month + else: + year_months = float(total_months)/100 + float(total_years) + res[contract.id] = year_months return res _columns = { 'tds': fields.float('TDS', digits_compute=dp.get_precision('Payroll')), - 'house_rent_income': fields.float('House Rent Income ', digits_compute=dp.get_precision('Payroll')), - 'saving_bank_account': fields.float('Saving Bank Account Income ', digits_compute=dp.get_precision('Payroll')), - 'other_income': fields.float('Other Income ', digits_compute=dp.get_precision('Payroll')), - 'short_term_gain':fields.float('Short Term Gain from Share Trading/Equity MFs ', digits_compute=dp.get_precision('Payroll')), - 'long_term_gain':fields.float('Long Term Gain from Share Trading/Equity MFs', digits_compute=dp.get_precision('Payroll')), - 'food_coupon_amount': fields.float('Food Coupons ', digits_compute=dp.get_precision('Payroll')), - 'driver_salay': fields.boolean('Driver salary '), - 'professional_tax': fields.float('Professional Tax ', digits_compute=dp.get_precision('Payroll')), - 'leave_avail_dedution': fields.float('leave Avail deduction ', digits_compute=dp.get_precision('Payroll')), - 'No_of_year':fields.function(_compute_year, string='No. of Years of service',type="float",readonly=True), - 'medical_insurance': fields.float('Medical Insurance', digits_compute=dp.get_precision('Payroll')), - 'voluntarily_provident_fund': fields.float('Voluntarily Provident Fund', digits_compute=dp.get_precision('Payroll'),help="it is computed as percentage.(%)"), - 'company_transport': fields.float('Company provided transport', digits_compute=dp.get_precision('Payroll')), + 'house_rent_income': fields.float('House Rent Income ', digits_compute=dp.get_precision('Payroll'),help="Income from house property."), + 'saving_bank_account': fields.float('Saving Bank Account Income ', digits_compute=dp.get_precision('Payroll'),help="saving income for bank account."), + 'other_income': fields.float('Other Income ', digits_compute=dp.get_precision('Payroll'),help="Other income of employee."), + 'short_term_gain':fields.float('Short Term Gain from Share Trading/Equity MFs ', digits_compute=dp.get_precision('Payroll'),help="stocks/equity mutual funds are sold before one year."), + 'long_term_gain':fields.float('Long Term Gain from Share Trading/Equity MFs', digits_compute=dp.get_precision('Payroll'),help="stocks/equity mutual funds are kept for more than a year."), + 'food_coupon_amount': fields.float('Food Coupons ', digits_compute=dp.get_precision('Payroll'),help="amount of food coupon per day"), + 'driver_salay': fields.boolean('Driver salary',help="if checked,driver get fixed salary per month."), + 'professional_tax': fields.float('Professional Tax ', digits_compute=dp.get_precision('Payroll'),help="Professional tax deducted from salary"), + 'leave_avail_dedution': fields.float('leave availed deduction ', digits_compute=dp.get_precision('Payroll'),help="emergency leave of employee"), + 'number_of_year':fields.function(_compute_year, string='No. of Years of service',type="float",help="Total number of years and months of employee has work in company",store=True), + 'medical_insurance': fields.float('Medical Insurance', digits_compute=dp.get_precision('Payroll'),help="Deduction towards company provided medical insurance"), + 'voluntarily_provident_fund': fields.float('Voluntarily Provident Fund', digits_compute=dp.get_precision('Payroll'),help="VPF computed as percentage.(%)"), + 'company_transport': fields.float('Company provided transport', digits_compute=dp.get_precision('Payroll'),help="Deduction for company provided transport."), } hr_contract_in() + +class hr_employee(osv.osv): + _inherit = 'hr.employee' + _columns = { + 'join_date': fields.date('Join date',help="join date of employee in company",required=True) + } +hr_employee() + # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: \ No newline at end of file diff --git a/addons/l10n_in_hr_payroll/l10n_in_hr_payroll_data.xml b/addons/l10n_in_hr_payroll/l10n_in_hr_payroll_data.xml index 0d8d18b5e80..71ef017b838 100644 --- a/addons/l10n_in_hr_payroll/l10n_in_hr_payroll_data.xml +++ b/addons/l10n_in_hr_payroll/l10n_in_hr_payroll_data.xml @@ -9,7 +9,6 @@ CEA - @@ -20,8 +19,7 @@ contract.wage - -DA is calculated in % + DA is calculated in % for more details:http://www.citehr.com/26809-how-calculate-dearness-allowance-da.html @@ -32,9 +30,8 @@ for more details:http://www.citehr.com/26809-how-calculate-dearness-allowance-da fix none - -Per school going child 1200 per annum is non-taxable. - Maximum for 2 children, so max 2400 per annum becomes non-taxable. + Per school going child 1200 per annum is non-taxable. +Maximum for 2 children, so max 2400 per annum becomes non-taxable. @@ -50,14 +47,13 @@ Per school going child 1200 per annum is non-taxable. - MGMTA + SA Grade/Special/Management/Supplementary Allowance fix - -This allowance is normally given as an additional benefit to employees and is fully taxable. + This allowance is normally given as an additional benefit to employees and is fully taxable. for more details : http://www.rupeetalk.com/finance-basics/income-tax-basics/income-tax-guides/tax-implications-of-salary-components.php @@ -99,8 +95,7 @@ for more details : http://www.rupeetalk.com/finance-basics/income-tax-basics/inc fix - -Generally arrears are fully taxable, but employee may claim exemption u/s 89(1). + 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. Read more: http://www.pankajbatra.com/finance/income-tax-calculator-2012-2013-2014/#ixzz1uurtGGGd @@ -112,10 +107,9 @@ Read more: http://www.pankajbatra.com/finance/income-tax-calculator-2012-2013-20 none code - result = (contract.wage + DA) * 15 * contract.No_of_year / worked_days.WORK100.number_of_days + result = (contract.wage + DA) * 15 * contract.number_of_year / worked_days.WORK100.number_of_days - -Covered under the Payment of Gratuity Act, 1971: + Covered under the Payment of Gratuity Act, 1971: (Last drawn monthly basic salary + dearness allowance)/26 x 15 days x number of years of service (date of joining – date of retirement/leaving job) @@ -128,13 +122,7 @@ number of years of service (date of joining – date of retirement/leaving job) fix 1666 - -As per Income tax rules of India, if transport bills for LTA are not provided, -the amount will be taxed. E.g. If an employee has LTA allowance as Rs 50,000 -in his CTC(cost to company),and he provides proofs of Rs 40,000 (boarding pass, -air tickets, taxi vouchers) then income tax will be deducted for rest of the -Rs 10,000. Does not matter whats the amount of LTA in an employee’s package, -income tax laws only permits domestic air tickets only for LTA claim. + As per Income tax rules of India, if transport bills for LTA are not provided,the amount will be taxed. E.g. If an employee has LTA allowance as Rs 50,000 in his CTC(cost to company),and he provides proofs of Rs 40,000 (boarding pass,air tickets, taxi vouchers) then income tax will be deducted for rest of the Rs 10,000. Does not matter whats the amount of LTA in an employee’s package, income tax laws only permits domestic air tickets only for LTA claim. Read more: http://www.pankajbatra.com/news/lta-proof-reimbursement-to-employer-not-required-supreme-court-india-ruling/#ixzz1uutlHSez @@ -146,11 +134,7 @@ Read more: http://www.pankajbatra.com/news/lta-proof-reimbursement-to-employer-n fix 0.0 - -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: + 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 @@ -186,10 +170,7 @@ is to be limited to minimum of all below: fix - -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. + 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. @@ -199,9 +180,7 @@ business growth.This part would become non taxable on providing original bills.< fix - -Some sections of employees mat get allowance for purchase of office dress/uniform. -In such case, the component would become non-taxable. + Some sections of employees mat get allowance for purchase of office dress/uniform.In such case, the component would become non-taxable. @@ -211,10 +190,7 @@ In such case, the component would become non-taxable. fix 1500 - -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. + 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. Read more: http://www.pankajbatra.com/finance/income-tax-calculator-2012-2013-2014/#ixzz1uuvaUK7A @@ -235,10 +211,7 @@ Read more: http://www.pankajbatra.com/finance/income-tax-calculator-2012-2013-20 fix 1800 - -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. + 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. Read more: http://www.pankajbatra.com/finance/income-tax-calculator-2012-2013-2014/#ixzz1uuw12Cjj @@ -271,8 +244,7 @@ Read more: http://www.pankajbatra.com/finance/income-tax-calculator-2012-2013-20 fix - -gift gift is from non relatives person worth more than Rs.50000, + Gift is from non relatives person worth more than Rs.50000, one is liable to pay the tax what ever he received excess of the limit or Rs 50,000. @@ -294,7 +266,7 @@ one is liable to pay the tax what ever he received excess of the limit or Rs 50, result = contract.house_rent_income none - Income from house property.30% of the rental income can be reduced as a standard deduction + Income from house property.30% of the rental income can be reduced as a standard deduction. @@ -309,7 +281,7 @@ one is liable to pay the tax what ever he received excess of the limit or Rs 50, - TA + TCA Transport/Conveyance Allownace fix @@ -347,9 +319,7 @@ one is liable to pay the tax what ever he received excess of the limit or Rs 50, python result = bool(contract.short_term_gain) - -If stocks/equity mutual funds are sold before one year, -15% tax would be payable on such gains. STT should have been on transaction. + If stocks/equity mutual funds are sold before one year, 15% tax would be payable on such gains. STT should have been on transaction. Read more: http://www.pankajbatra.com/finance/income-tax-calculator-2012-2013-2014/#ixzz1uuwSxEvI @@ -362,11 +332,7 @@ Read more: http://www.pankajbatra.com/finance/income-tax-calculator-2012-2013-20 python result = bool(contract.long_term_gain) - -If stocks/equity mutual funds are kept for more than a year before sale, -it would be long term gains and such gains would be fully exempt from income tax. -Securities transaction tax (STT) must have been paid on transactions for availing -this exemption. + If stocks/equity mutual funds are kept for more than a year before sale,it would be long term gains and such gains would be fully exempt from income tax. Securities transaction tax (STT) must have been paid on transactions for availing this exemption. Read more: http://www.pankajbatra.com/finance/income-tax-calculator-2012-2013-2014/#ixzz1uuwtRkCT @@ -381,9 +347,7 @@ Read more: http://www.pankajbatra.com/finance/income-tax-calculator-2012-2013-20 result = -(contract.professional_tax) - -Professional tax for company should be paid on or before 30th sept, -The amount is Rs.2000 per year.There is no payment form to be filled. + Professional tax for company should be paid on or before 30th sept,The amount is Rs.2000 per year.There is no payment form to be filled. Read more: http://www.citehr.com/249518-companys-professional-tax-gujarat.html#ixzz1uuyvgt2L @@ -396,12 +360,7 @@ Read more: http://www.citehr.com/249518-companys-professional-tax-gujarat.html#i code result = -(contract.tds) - -As per income tax rules, all payment which are taxable in nature should be -done after deduction of taxes at the source itself. Hence employer compute -income tax on salary payment and deduct it every month. This TDS is based -on employee’s saving/investment declaration at the start of year. If investments -for tax saving is not done, large amount may be deducted in last few months. + As per income tax rules, all payment which are taxable in nature should be done after deduction of taxes at the source itself. Hence employer compute income tax on salary payment and deduct it every month. This TDS is based on employee’s saving/investment declaration at the start of year. If investments for tax saving is not done, large amount may be deducted in last few months. Read more: http://www.pankajbatra.com/finance/income-tax-calculator-2012-2013-2014/#ixzz1uv0gPhgQ @@ -414,17 +373,7 @@ Read more: http://www.pankajbatra.com/finance/income-tax-calculator-2012-2013-20 code result = -(contract.wage + DA) * contract.voluntarily_provident_fund / 100 - -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 the 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/- + 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/- read more: more:http://www.dotcominfoway.com/blog/vpf-or-voluntary-provident-fund-special-benefits-for-employees @@ -446,13 +395,7 @@ read more: more:http://www.dotcominfoway.com/blog/vpf-or-voluntary-provident-fun fix - -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) + 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) read more: http://www.citehr.com/270132-labour-welfare-fund-deduction-salary.html @@ -498,7 +441,7 @@ read more: http://www.citehr.com/270132-labour-welfare-fund-deduction-salary.htm - EPC + EPF Employer's PF Contribution code @@ -507,7 +450,7 @@ read more: http://www.citehr.com/270132-labour-welfare-fund-deduction-salary.htm - EPFC + EPMF Employee's PF Contribution code diff --git a/addons/l10n_in_hr_payroll/l10n_in_hr_payroll_view.xml b/addons/l10n_in_hr_payroll/l10n_in_hr_payroll_view.xml index b6096873748..6e8ad07d37c 100644 --- a/addons/l10n_in_hr_payroll/l10n_in_hr_payroll_view.xml +++ b/addons/l10n_in_hr_payroll/l10n_in_hr_payroll_view.xml @@ -12,7 +12,7 @@ - + @@ -35,6 +35,18 @@ - + + hr.employee.form.inherit + hr.employee + form + + + + + + + + + diff --git a/addons/l10n_in_hr_payroll/security/hr.salary.rule.csv b/addons/l10n_in_hr_payroll/security/hr.salary.rule.csv index f18a77cd01b..0015ef665b0 100644 --- a/addons/l10n_in_hr_payroll/security/hr.salary.rule.csv +++ b/addons/l10n_in_hr_payroll/security/hr.salary.rule.csv @@ -1,3 +1,2 @@ "id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink" -"access_hr_salary_head","hr.salary.head","model_hr_salary_head","base.group_hr_user",1,1,1,1 "access_hr_salary_rule","hr.salary.rule","model_hr_salary_rule","base.group_hr_user",1,1,1,1 From 5f3e8f9c92c0c3b5db05fafd9db24ed36754afd9 Mon Sep 17 00:00:00 2001 From: "Khushboo Bhatt (Open ERP)" Date: Wed, 23 May 2012 11:42:03 +0530 Subject: [PATCH 032/569] [IMP]improved salary rule for child hostel allowance. bzr revid: kbh@tinyerp.com-20120523061203-rwgfx6opd07t1r9g --- addons/l10n_in_hr_payroll/data/hr.salary.rule.csv | 3 +++ addons/l10n_in_hr_payroll/l10n_in_hr_payroll.py | 4 ++-- addons/l10n_in_hr_payroll/l10n_in_hr_payroll_data.xml | 11 +++++++++++ 3 files changed, 16 insertions(+), 2 deletions(-) diff --git a/addons/l10n_in_hr_payroll/data/hr.salary.rule.csv b/addons/l10n_in_hr_payroll/data/hr.salary.rule.csv index b41229965c8..8a563d762e4 100644 --- a/addons/l10n_in_hr_payroll/data/hr.salary.rule.csv +++ b/addons/l10n_in_hr_payroll/data/hr.salary.rule.csv @@ -2,4 +2,7 @@ 1,"fix",1,1,,1200,"Education Allowance","Child Education Allowance",23,"CHEAONE","hr_payroll_rule_child1","range","employee.children", 2,"fix",2,10,,2400,"Education Allowance","Child Education Allowance",24,"CHEATWO","hr_payroll_rule_child1","range","employee.children", ,,,,,,,,,,,,, +3,"fix",1,1,,300,"Child Hostel Allowance","Child Education Allowance",26,"CHOONE","hr_payroll_rule_child2","range","employee.children", +4,"fix",2,10,,600,"Child Hostel Allowance","Child Education Allowance",27,"CHOTWO","hr_payroll_rule_child2","range","employee.children", + ,,,,,,,,,,,,, diff --git a/addons/l10n_in_hr_payroll/l10n_in_hr_payroll.py b/addons/l10n_in_hr_payroll/l10n_in_hr_payroll.py index 3e3fcaa0006..3ec0d50cf0a 100644 --- a/addons/l10n_in_hr_payroll/l10n_in_hr_payroll.py +++ b/addons/l10n_in_hr_payroll/l10n_in_hr_payroll.py @@ -59,8 +59,8 @@ class hr_contract_in(osv.osv): year_month= float(total_months)/10 + float(total_years) res[contract.id] = year_month else: - year_months = float(total_months)/100 + float(total_years) - res[contract.id] = year_months + year_months = float(total_months)/100 + float(total_years) + res[contract.id] = year_months return res _columns = { diff --git a/addons/l10n_in_hr_payroll/l10n_in_hr_payroll_data.xml b/addons/l10n_in_hr_payroll/l10n_in_hr_payroll_data.xml index 71ef017b838..77124d8c419 100644 --- a/addons/l10n_in_hr_payroll/l10n_in_hr_payroll_data.xml +++ b/addons/l10n_in_hr_payroll/l10n_in_hr_payroll_data.xml @@ -45,6 +45,17 @@ Maximum for 2 children, so max 2400 per annum becomes non-taxable. + + CHEAH + Child Hostel Allowance + + + python + result = bool(employee.children) + fix + In case the children are in hostel, the exemption available is Rs.300 per month per child for up to 2 children. + + SA From 48e4dd20ce7486251721e7182e24667026984924 Mon Sep 17 00:00:00 2001 From: "Khushboo Bhatt (Open ERP)" Date: Wed, 23 May 2012 12:24:47 +0530 Subject: [PATCH 033/569] [IMP]removed unnecessary category of salary rule,changed category_id for child allowance. bzr revid: kbh@tinyerp.com-20120523065447-cl7f1xuav7z9p1uj --- addons/l10n_in_hr_payroll/data/hr.salary.rule.csv | 8 ++++---- addons/l10n_in_hr_payroll/l10n_in_hr_payroll_data.xml | 7 ------- 2 files changed, 4 insertions(+), 11 deletions(-) diff --git a/addons/l10n_in_hr_payroll/data/hr.salary.rule.csv b/addons/l10n_in_hr_payroll/data/hr.salary.rule.csv index 8a563d762e4..0877a73d02a 100644 --- a/addons/l10n_in_hr_payroll/data/hr.salary.rule.csv +++ b/addons/l10n_in_hr_payroll/data/hr.salary.rule.csv @@ -1,8 +1,8 @@ "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,,1200,"Education Allowance","Child Education Allowance",23,"CHEAONE","hr_payroll_rule_child1","range","employee.children", -2,"fix",2,10,,2400,"Education Allowance","Child Education Allowance",24,"CHEATWO","hr_payroll_rule_child1","range","employee.children", +1,"fix",1,1,,1200,"Education Allowance","Allowance",23,"CHEAONE","hr_payroll_rule_child1","range","employee.children", +2,"fix",2,10,,2400,"Education Allowance","Allowance",24,"CHEATWO","hr_payroll_rule_child1","range","employee.children", ,,,,,,,,,,,,, -3,"fix",1,1,,300,"Child Hostel Allowance","Child Education Allowance",26,"CHOONE","hr_payroll_rule_child2","range","employee.children", -4,"fix",2,10,,600,"Child Hostel Allowance","Child Education Allowance",27,"CHOTWO","hr_payroll_rule_child2","range","employee.children", +3,"fix",1,1,,300,"Child Hostel Allowance","Allowance",26,"CHOONE","hr_payroll_rule_child2","range","employee.children", +4,"fix",2,10,,600,"Child Hostel Allowance","Allowance",27,"CHOTWO","hr_payroll_rule_child2","range","employee.children", ,,,,,,,,,,,,, diff --git a/addons/l10n_in_hr_payroll/l10n_in_hr_payroll_data.xml b/addons/l10n_in_hr_payroll/l10n_in_hr_payroll_data.xml index 77124d8c419..56d6f97f98c 100644 --- a/addons/l10n_in_hr_payroll/l10n_in_hr_payroll_data.xml +++ b/addons/l10n_in_hr_payroll/l10n_in_hr_payroll_data.xml @@ -2,13 +2,6 @@ - - - - Child Education Allowance - CEA - - From c6410d12582767019039c4d0db072d3415112b79 Mon Sep 17 00:00:00 2001 From: "Khushboo Bhatt (Open ERP)" Date: Wed, 23 May 2012 12:59:45 +0530 Subject: [PATCH 034/569] [IMP]improve method for gratuity rule. bzr revid: kbh@tinyerp.com-20120523072945-2gtphj2fageseg7g --- .../l10n_in_hr_payroll/l10n_in_hr_payroll.py | 57 +++++++++---------- .../l10n_in_hr_payroll_data.xml | 2 +- .../l10n_in_hr_payroll_view.xml | 2 +- 3 files changed, 30 insertions(+), 31 deletions(-) diff --git a/addons/l10n_in_hr_payroll/l10n_in_hr_payroll.py b/addons/l10n_in_hr_payroll/l10n_in_hr_payroll.py index 3ec0d50cf0a..e4b485a08aa 100644 --- a/addons/l10n_in_hr_payroll/l10n_in_hr_payroll.py +++ b/addons/l10n_in_hr_payroll/l10n_in_hr_payroll.py @@ -31,6 +31,28 @@ from epsilon.hotfix import require class hr_contract_in(osv.osv): _inherit = 'hr.contract' + + _columns = { + 'tds': fields.float('TDS', digits_compute=dp.get_precision('Payroll')), + 'house_rent_income': fields.float('House Rent Income ', digits_compute=dp.get_precision('Payroll'),help="Income from house property."), + 'saving_bank_account': fields.float('Saving Bank Account Income ', digits_compute=dp.get_precision('Payroll'),help="Saving income for bank account."), + 'other_income': fields.float('Other Income ', digits_compute=dp.get_precision('Payroll'),help="Other income of employee."), + 'short_term_gain':fields.float('Short Term Gain from Share Trading/Equity MFs ', digits_compute=dp.get_precision('Payroll'),help="Stocks/equity mutual funds are sold before one year."), + 'long_term_gain':fields.float('Long Term Gain from Share Trading/Equity MFs', digits_compute=dp.get_precision('Payroll'),help="Stocks/equity mutual funds are kept for more than a year."), + 'food_coupon_amount': fields.float('Food Coupons ', digits_compute=dp.get_precision('Payroll'),help="Amount of food coupon per day."), + 'driver_salay': fields.boolean('Driver Salary',help="If checked,driver get fixed salary per month."), + 'professional_tax': fields.float('Professional Tax ', digits_compute=dp.get_precision('Payroll'),help="Professional tax deducted from salary"), + 'leave_avail_dedution': fields.float('Leave Availed Deduction ', digits_compute=dp.get_precision('Payroll'),help="Deduction for emergency leave of employee."), + 'medical_insurance': fields.float('Medical Insurance', digits_compute=dp.get_precision('Payroll'),help="Deduction towards company provided medical insurance."), + 'voluntarily_provident_fund': fields.float('Voluntarily Provident Fund', digits_compute=dp.get_precision('Payroll'),help="VPF computed as percentage.(%)"), + 'company_transport': fields.float('Company Provided Transport', digits_compute=dp.get_precision('Payroll'),help="Deduction for company provided transport."), + } + +hr_contract_in() + + +class hr_employee(osv.osv): + _inherit = 'hr.employee' def _compute_year(self, cr, uid, ids, fields, args, context=None): """ @@ -44,9 +66,7 @@ class hr_contract_in(osv.osv): c_date = time.strftime('%Y-%m-%d') DATETIME_FORMAT = "%Y-%m-%d" current_date = datetime.strptime(c_date,DATETIME_FORMAT) - employee_pool = self.pool.get('hr.employee') - for contract in self.browse(cr, uid, ids, context): - employee = employee_pool.browse(cr, uid, contract.employee_id.id, context=context) + for employee in self.browse(cr, uid, ids, context): if employee.join_date: date_start = datetime.strptime(employee.join_date, DATETIME_FORMAT) diffyears = current_date.year - date_start.year @@ -57,36 +77,15 @@ class hr_contract_in(osv.osv): total_months = relativedelta(current_date, date_start).months if total_months < 10: year_month= float(total_months)/10 + float(total_years) - res[contract.id] = year_month + res[employee.id] = year_month else: year_months = float(total_months)/100 + float(total_years) - res[contract.id] = year_months + res[employee.id] = year_months return res - + _columns = { - 'tds': fields.float('TDS', digits_compute=dp.get_precision('Payroll')), - 'house_rent_income': fields.float('House Rent Income ', digits_compute=dp.get_precision('Payroll'),help="Income from house property."), - 'saving_bank_account': fields.float('Saving Bank Account Income ', digits_compute=dp.get_precision('Payroll'),help="saving income for bank account."), - 'other_income': fields.float('Other Income ', digits_compute=dp.get_precision('Payroll'),help="Other income of employee."), - 'short_term_gain':fields.float('Short Term Gain from Share Trading/Equity MFs ', digits_compute=dp.get_precision('Payroll'),help="stocks/equity mutual funds are sold before one year."), - 'long_term_gain':fields.float('Long Term Gain from Share Trading/Equity MFs', digits_compute=dp.get_precision('Payroll'),help="stocks/equity mutual funds are kept for more than a year."), - 'food_coupon_amount': fields.float('Food Coupons ', digits_compute=dp.get_precision('Payroll'),help="amount of food coupon per day"), - 'driver_salay': fields.boolean('Driver salary',help="if checked,driver get fixed salary per month."), - 'professional_tax': fields.float('Professional Tax ', digits_compute=dp.get_precision('Payroll'),help="Professional tax deducted from salary"), - 'leave_avail_dedution': fields.float('leave availed deduction ', digits_compute=dp.get_precision('Payroll'),help="emergency leave of employee"), - 'number_of_year':fields.function(_compute_year, string='No. of Years of service',type="float",help="Total number of years and months of employee has work in company",store=True), - 'medical_insurance': fields.float('Medical Insurance', digits_compute=dp.get_precision('Payroll'),help="Deduction towards company provided medical insurance"), - 'voluntarily_provident_fund': fields.float('Voluntarily Provident Fund', digits_compute=dp.get_precision('Payroll'),help="VPF computed as percentage.(%)"), - 'company_transport': fields.float('Company provided transport', digits_compute=dp.get_precision('Payroll'),help="Deduction for company provided transport."), - } - -hr_contract_in() - - -class hr_employee(osv.osv): - _inherit = 'hr.employee' - _columns = { - 'join_date': fields.date('Join date',help="join date of employee in company",required=True) + 'join_date': fields.date('Join Date',help="joining date of employee "), + 'number_of_year':fields.function(_compute_year, string='No. of Years of Service',type="float",help="Total years of work experience.",store=True), } hr_employee() diff --git a/addons/l10n_in_hr_payroll/l10n_in_hr_payroll_data.xml b/addons/l10n_in_hr_payroll/l10n_in_hr_payroll_data.xml index 56d6f97f98c..03f4fc164f4 100644 --- a/addons/l10n_in_hr_payroll/l10n_in_hr_payroll_data.xml +++ b/addons/l10n_in_hr_payroll/l10n_in_hr_payroll_data.xml @@ -111,7 +111,7 @@ Read more: http://www.pankajbatra.com/finance/income-tax-calculator-2012-2013-20 none code - result = (contract.wage + DA) * 15 * contract.number_of_year / worked_days.WORK100.number_of_days + result = (contract.wage + DA) * 15 * employee.number_of_year / worked_days.WORK100.number_of_days Covered under the Payment of Gratuity Act, 1971: (Last drawn monthly basic salary + dearness allowance)/26 x 15 days x diff --git a/addons/l10n_in_hr_payroll/l10n_in_hr_payroll_view.xml b/addons/l10n_in_hr_payroll/l10n_in_hr_payroll_view.xml index 6e8ad07d37c..750965d09ce 100644 --- a/addons/l10n_in_hr_payroll/l10n_in_hr_payroll_view.xml +++ b/addons/l10n_in_hr_payroll/l10n_in_hr_payroll_view.xml @@ -12,7 +12,6 @@ - @@ -44,6 +43,7 @@ + From b7e6823cf6e0fc73a1b356a3821a1916e8365fb8 Mon Sep 17 00:00:00 2001 From: "Khushboo Bhatt (Open ERP)" Date: Wed, 23 May 2012 14:33:31 +0530 Subject: [PATCH 035/569] [IMP]remove unnessesary import and variable. bzr revid: kbh@tinyerp.com-20120523090331-gibnbltx5a5nvhli --- addons/l10n_in_hr_payroll/l10n_in_hr_payroll.py | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/addons/l10n_in_hr_payroll/l10n_in_hr_payroll.py b/addons/l10n_in_hr_payroll/l10n_in_hr_payroll.py index e4b485a08aa..9e74c925d01 100644 --- a/addons/l10n_in_hr_payroll/l10n_in_hr_payroll.py +++ b/addons/l10n_in_hr_payroll/l10n_in_hr_payroll.py @@ -19,15 +19,12 @@ # ############################################################################## -from osv import fields, osv -import decimal_precision as dp - import time from datetime import datetime, timedelta, date from calendar import isleap from dateutil.relativedelta import relativedelta -from bsddb.dbtables import _columns -from epsilon.hotfix import require +from osv import fields, osv +import decimal_precision as dp class hr_contract_in(osv.osv): _inherit = 'hr.contract' @@ -77,10 +74,9 @@ class hr_employee(osv.osv): total_months = relativedelta(current_date, date_start).months if total_months < 10: year_month= float(total_months)/10 + float(total_years) - res[employee.id] = year_month else: - year_months = float(total_months)/100 + float(total_years) - res[employee.id] = year_months + year_month = float(total_months)/100 + float(total_years) + res[employee.id] = year_month return res _columns = { From 2672c529790c48faef2abb771640c6c03d1f60e8 Mon Sep 17 00:00:00 2001 From: "Khushboo Bhatt (Open ERP)" Date: Wed, 23 May 2012 17:42:10 +0530 Subject: [PATCH 036/569] [IMP]improved method for gratuity,added House rent Allowance rule and food coupon rule,added Contribution Register. bzr revid: kbh@tinyerp.com-20120523121210-qy0sv0xq2be1v7gw --- addons/hr_payroll/hr_payroll_demo.xml | 56 ----------------- .../l10n_in_hr_payroll/l10n_in_hr_payroll.py | 43 +++++++------ .../l10n_in_hr_payroll_data.xml | 62 ++++++++++++++++++- .../l10n_in_hr_payroll_view.xml | 2 +- 4 files changed, 85 insertions(+), 78 deletions(-) diff --git a/addons/hr_payroll/hr_payroll_demo.xml b/addons/hr_payroll/hr_payroll_demo.xml index 7fd266c628b..76189c85306 100644 --- a/addons/hr_payroll/hr_payroll_demo.xml +++ b/addons/hr_payroll/hr_payroll_demo.xml @@ -4,10 +4,6 @@ - - House Rent Allowance Register - - Provident Fund Register @@ -16,46 +12,8 @@ Professional Tax Register - - Food coupon Register - - - - HRAM - code - result = (contract.wage + DA) * 0.50 - - - House Rent Allowance for metro city - - Rent receipts can be shown for taking tax benefit for living in a rented house. -Income tax exemption for HRA will be least of following: - 1. The actual amount of HRA received as a part of salary. - 2. 40% (if living in non-metro area). - 3. Rent paid minus 10% of (basic salary+DA). - Read more: http://www.pankajbatra.com/finance/income-tax-calculator-2012-2013-2014/#ixzz1upoomH73 - - - - - code - result = (contract.wage + DA) * 0.40 - HRANM - - - House Rent Allowance for non metro city - - Rent receipts can be shown for taking tax benefit for living in a rented house. -Income tax exemption for HRA will be least of following: - 1. The actual amount of HRA received as a part of salary. - 2. 50% (if living in metro area) of (basic salary+Dearness allowance (DA)). - 3. Rent paid minus 10% of (basic salary+DA). - Read more: http://www.pankajbatra.com/finance/income-tax-calculator-2012-2013-2014/#ixzz1upoomH73 - - - fix @@ -97,20 +55,6 @@ Read more: http://www.pankajbatra.com/finance/income-tax-calculator-2012-2013-20 - - code - - worked_days.WORK100.number_of_days - FC - - - python - result = bool(contract.food_coupon_amount) - Food Coupons - result = worked_days.WORK100.number_of_days * contract.food_coupon_amount - - - code SALE diff --git a/addons/l10n_in_hr_payroll/l10n_in_hr_payroll.py b/addons/l10n_in_hr_payroll/l10n_in_hr_payroll.py index 9e74c925d01..bb149ba4b19 100644 --- a/addons/l10n_in_hr_payroll/l10n_in_hr_payroll.py +++ b/addons/l10n_in_hr_payroll/l10n_in_hr_payroll.py @@ -20,29 +20,31 @@ ############################################################################## import time -from datetime import datetime, timedelta, date +from datetime import datetime, timedelta from calendar import isleap from dateutil.relativedelta import relativedelta + from osv import fields, osv import decimal_precision as dp class hr_contract_in(osv.osv): _inherit = 'hr.contract' - + _description = 'contract' + _columns = { 'tds': fields.float('TDS', digits_compute=dp.get_precision('Payroll')), - 'house_rent_income': fields.float('House Rent Income ', digits_compute=dp.get_precision('Payroll'),help="Income from house property."), - 'saving_bank_account': fields.float('Saving Bank Account Income ', digits_compute=dp.get_precision('Payroll'),help="Saving income for bank account."), - 'other_income': fields.float('Other Income ', digits_compute=dp.get_precision('Payroll'),help="Other income of employee."), - 'short_term_gain':fields.float('Short Term Gain from Share Trading/Equity MFs ', digits_compute=dp.get_precision('Payroll'),help="Stocks/equity mutual funds are sold before one year."), - 'long_term_gain':fields.float('Long Term Gain from Share Trading/Equity MFs', digits_compute=dp.get_precision('Payroll'),help="Stocks/equity mutual funds are kept for more than a year."), - 'food_coupon_amount': fields.float('Food Coupons ', digits_compute=dp.get_precision('Payroll'),help="Amount of food coupon per day."), - 'driver_salay': fields.boolean('Driver Salary',help="If checked,driver get fixed salary per month."), - 'professional_tax': fields.float('Professional Tax ', digits_compute=dp.get_precision('Payroll'),help="Professional tax deducted from salary"), - 'leave_avail_dedution': fields.float('Leave Availed Deduction ', digits_compute=dp.get_precision('Payroll'),help="Deduction for emergency leave of employee."), - 'medical_insurance': fields.float('Medical Insurance', digits_compute=dp.get_precision('Payroll'),help="Deduction towards company provided medical insurance."), - 'voluntarily_provident_fund': fields.float('Voluntarily Provident Fund', digits_compute=dp.get_precision('Payroll'),help="VPF computed as percentage.(%)"), - 'company_transport': fields.float('Company Provided Transport', digits_compute=dp.get_precision('Payroll'),help="Deduction for company provided transport."), + 'house_rent_income': fields.float('House Rent Income ', digits_compute=dp.get_precision('Payroll'), help="Income from house property."), + 'saving_bank_account': fields.float('Saving Bank Account Income ', digits_compute=dp.get_precision('Payroll'), help="Saving income for bank account."), + 'other_income': fields.float('Other Income ', digits_compute=dp.get_precision('Payroll'), help="Other income of employee."), + 'short_term_gain':fields.float('Short Term Gain from Share Trading/Equity MFs ', digits_compute=dp.get_precision('Payroll'), help="Stocks/equity mutual funds are sold before one year."), + 'long_term_gain':fields.float('Long Term Gain from Share Trading/Equity MFs', digits_compute=dp.get_precision('Payroll'), help="Stocks/equity mutual funds are kept for more than a year."), + 'food_coupon_amount': fields.float('Food Coupons ', digits_compute=dp.get_precision('Payroll'), help="Amount of food coupon per day."), + 'driver_salay': fields.boolean('Driver Salary', help=" Allowance for company provided driver."), + 'professional_tax': fields.float('Professional Tax ', digits_compute=dp.get_precision('Payroll'), help="Professional tax deducted from salary"), + 'leave_avail_dedution': fields.float('Leave Availed Deduction ', digits_compute=dp.get_precision('Payroll'), help="Deduction for emergency leave of employee."), + '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 computed as percentage.(%)"), + 'company_transport': fields.float('Company Provided Transport', digits_compute=dp.get_precision('Payroll'), help="Deduction for company provided transport."), } hr_contract_in() @@ -50,7 +52,8 @@ hr_contract_in() class hr_employee(osv.osv): _inherit = 'hr.employee' - + _description = 'employee' + def _compute_year(self, cr, uid, ids, fields, args, context=None): """ @param cr: the current row, from the database cursor, @@ -63,7 +66,7 @@ class hr_employee(osv.osv): c_date = time.strftime('%Y-%m-%d') DATETIME_FORMAT = "%Y-%m-%d" current_date = datetime.strptime(c_date,DATETIME_FORMAT) - for employee in self.browse(cr, uid, ids, context): + for employee in self.browse(cr, uid, ids, context=context): if employee.join_date: date_start = datetime.strptime(employee.join_date, DATETIME_FORMAT) diffyears = current_date.year - date_start.year @@ -73,15 +76,15 @@ class hr_employee(osv.osv): total_years = relativedelta(current_date, date_start).years total_months = relativedelta(current_date, date_start).months if total_months < 10: - year_month= float(total_months)/10 + float(total_years) + year_month= float(total_months)/10 + total_years else: - year_month = float(total_months)/100 + float(total_years) + year_month = float(total_months)/100 + total_years res[employee.id] = year_month return res _columns = { - 'join_date': fields.date('Join Date',help="joining date of employee "), - 'number_of_year':fields.function(_compute_year, string='No. of Years of Service',type="float",help="Total years of work experience.",store=True), + 'join_date': fields.date('Join Date', help="joining date of employee "), + 'number_of_year':fields.function(_compute_year, string='No. of Years of Service', type="float", help="Total years of work experience."), } hr_employee() diff --git a/addons/l10n_in_hr_payroll/l10n_in_hr_payroll_data.xml b/addons/l10n_in_hr_payroll/l10n_in_hr_payroll_data.xml index 03f4fc164f4..203a6a9c82d 100644 --- a/addons/l10n_in_hr_payroll/l10n_in_hr_payroll_data.xml +++ b/addons/l10n_in_hr_payroll/l10n_in_hr_payroll_data.xml @@ -1,9 +1,66 @@ + + + + House Rent Allowance Register + + + + Food coupon Register + + + HRAM + code + result = (contract.wage + DA) * 0.50 + + + House Rent Allowance for metro city + + Rent receipts can be shown for taking tax benefit for living in a rented house. +Income tax exemption for HRA will be least of following: + 1. The actual amount of HRA received as a part of salary. + 2. 40% (if living in non-metro area). + 3. Rent paid minus 10% of (basic salary+DA). + Read more: http://www.pankajbatra.com/finance/income-tax-calculator-2012-2013-2014/#ixzz1upoomH73 + + + + + code + result = (contract.wage + DA) * 0.40 + HRANM + + + House Rent Allowance for non metro city + + Rent receipts can be shown for taking tax benefit for living in a rented house. +Income tax exemption for HRA will be least of following: + 1. The actual amount of HRA received as a part of salary. + 2. 50% (if living in metro area) of (basic salary+Dearness allowance (DA)). + 3. Rent paid minus 10% of (basic salary+DA). + Read more: http://www.pankajbatra.com/finance/income-tax-calculator-2012-2013-2014/#ixzz1upoomH73 + + + + + code + + worked_days.WORK100.number_of_days + FC + + + python + result = bool(contract.food_coupon_amount) + Food Coupons + result = worked_days.WORK100.number_of_days * contract.food_coupon_amount + + + DA Dearness Allowance @@ -451,6 +508,7 @@ read more: http://www.citehr.com/270132-labour-welfare-fund-deduction-salary.htm code result = - (contract.wage + DA) * 0.12 + 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. @@ -459,6 +517,7 @@ read more: http://www.citehr.com/270132-labour-welfare-fund-deduction-salary.htm code result = - (contract.wage + DA) * 8.33 / 100 + Employer contribution does not become part of employee’s income and hence income tax is not payable on this part. @@ -469,6 +528,7 @@ read more: http://www.citehr.com/270132-labour-welfare-fund-deduction-salary.htm code result = - (contract.wage + DA) * 0.10 + 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. @@ -478,8 +538,8 @@ read more: http://www.citehr.com/270132-labour-welfare-fund-deduction-salary.htm code result = - (contract.wage + DA) * 0.10 + Employee can claim deduction even of employer's contribution to NPS. - diff --git a/addons/l10n_in_hr_payroll/l10n_in_hr_payroll_view.xml b/addons/l10n_in_hr_payroll/l10n_in_hr_payroll_view.xml index 750965d09ce..d6b8eb02724 100644 --- a/addons/l10n_in_hr_payroll/l10n_in_hr_payroll_view.xml +++ b/addons/l10n_in_hr_payroll/l10n_in_hr_payroll_view.xml @@ -25,7 +25,7 @@ - + From dc6e8fa90423afe2766355d2c2ed4f4f153ba102 Mon Sep 17 00:00:00 2001 From: "Khushboo Bhatt (Open ERP)" Date: Wed, 23 May 2012 19:05:05 +0530 Subject: [PATCH 037/569] [IMP]improved method for gratuity,added House rent Allowance rule and food coupon rule,added Contribution Register. bzr revid: kbh@tinyerp.com-20120523133505-v6pvrvo25q9ur5kv --- addons/hr_payroll/hr_payroll_demo.xml | 27 +++++++- .../l10n_in_hr_payroll/l10n_in_hr_payroll.py | 2 + .../l10n_in_hr_payroll_data.xml | 61 +++++-------------- 3 files changed, 43 insertions(+), 47 deletions(-) diff --git a/addons/hr_payroll/hr_payroll_demo.xml b/addons/hr_payroll/hr_payroll_demo.xml index 76189c85306..e7ab610b8bb 100644 --- a/addons/hr_payroll/hr_payroll_demo.xml +++ b/addons/hr_payroll/hr_payroll_demo.xml @@ -4,6 +4,10 @@ + + House Rent Allowance Register + + Provident Fund Register @@ -12,8 +16,28 @@ Professional Tax Register + + Meal Voucher Register + + + + House Rent Allowance + percentage + + contract.wage + HRA + + + Rent receipts can be shown for taking tax benefit for living in a rented house. +Income tax exemption for HRA will be least of following: + 1. The actual amount of HRA received as a part of salary. + 2. 50% (if living in metro area) of (basic salary+Dearness allowance (DA)). + 3. Rent paid minus 10% of (basic salary+DA). + + + fix @@ -31,8 +55,7 @@ Professional Tax - Professional tax deducted from salary by employer should be removed from taxable salary before computation of income tax. -Read more: http://www.pankajbatra.com/finance/income-tax-calculator-2012-2013-2014/#ixzz1uugbJcaM + Professional tax deducted from salary by employer should be removed from taxable salary before computation of income tax. diff --git a/addons/l10n_in_hr_payroll/l10n_in_hr_payroll.py b/addons/l10n_in_hr_payroll/l10n_in_hr_payroll.py index bb149ba4b19..9444afd74e0 100644 --- a/addons/l10n_in_hr_payroll/l10n_in_hr_payroll.py +++ b/addons/l10n_in_hr_payroll/l10n_in_hr_payroll.py @@ -80,6 +80,8 @@ class hr_employee(osv.osv): else: year_month = float(total_months)/100 + total_years res[employee.id] = year_month + else: + res[employee.id] = 0.0 return res _columns = { diff --git a/addons/l10n_in_hr_payroll/l10n_in_hr_payroll_data.xml b/addons/l10n_in_hr_payroll/l10n_in_hr_payroll_data.xml index 203a6a9c82d..7afd6eecba1 100644 --- a/addons/l10n_in_hr_payroll/l10n_in_hr_payroll_data.xml +++ b/addons/l10n_in_hr_payroll/l10n_in_hr_payroll_data.xml @@ -1,16 +1,6 @@ - - - - House Rent Allowance Register - - - - Food coupon Register - - @@ -18,7 +8,6 @@ code result = (contract.wage + DA) * 0.50 - House Rent Allowance for metro city Rent receipts can be shown for taking tax benefit for living in a rented house. @@ -26,7 +15,6 @@ Income tax exemption for HRA will be least of following: 1. The actual amount of HRA received as a part of salary. 2. 40% (if living in non-metro area). 3. Rent paid minus 10% of (basic salary+DA). - Read more: http://www.pankajbatra.com/finance/income-tax-calculator-2012-2013-2014/#ixzz1upoomH73 @@ -35,7 +23,6 @@ Income tax exemption for HRA will be least of following: result = (contract.wage + DA) * 0.40 HRANM - House Rent Allowance for non metro city Rent receipts can be shown for taking tax benefit for living in a rented house. @@ -43,20 +30,19 @@ Income tax exemption for HRA will be least of following: 1. The actual amount of HRA received as a part of salary. 2. 50% (if living in metro area) of (basic salary+Dearness allowance (DA)). 3. Rent paid minus 10% of (basic salary+DA). - Read more: http://www.pankajbatra.com/finance/income-tax-calculator-2012-2013-2014/#ixzz1upoomH73 + code worked_days.WORK100.number_of_days FC - python result = bool(contract.food_coupon_amount) - Food Coupons + Food Coupons Allowance result = worked_days.WORK100.number_of_days * contract.food_coupon_amount @@ -69,8 +55,7 @@ Income tax exemption for HRA will be least of following: contract.wage - DA is calculated in % -for more details:http://www.citehr.com/26809-how-calculate-dearness-allowance-da.html + DA is calculated in % @@ -114,8 +99,7 @@ Maximum for 2 children, so max 2400 per annum becomes non-taxable. fix - This allowance is normally given as an additional benefit to employees and is fully taxable. -for more details : http://www.rupeetalk.com/finance-basics/income-tax-basics/income-tax-guides/tax-implications-of-salary-components.php + This allowance is normally given as an additional benefit to employees and is fully taxable. @@ -156,10 +140,9 @@ for more details : http://www.rupeetalk.com/finance-basics/income-tax-basics/inc fix - Generally arrears are fully taxable, but employee may claim exemption u/s 89(1). + 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. -Read more: http://www.pankajbatra.com/finance/income-tax-calculator-2012-2013-2014/#ixzz1uurtGGGd +Now difference of income tax between payment year and actual year would be allowed for deduction. @@ -172,8 +155,7 @@ Read more: http://www.pankajbatra.com/finance/income-tax-calculator-2012-2013-20 Covered under the Payment of Gratuity Act, 1971: (Last drawn monthly basic salary + dearness allowance)/26 x 15 days x -number of years of service (date of joining – date of retirement/leaving job) - +number of years of service (date of joining – date of retirement/leaving job) @@ -183,8 +165,7 @@ number of years of service (date of joining – date of retirement/leaving job) fix 1666 - As per Income tax rules of India, if transport bills for LTA are not provided,the amount will be taxed. E.g. If an employee has LTA allowance as Rs 50,000 in his CTC(cost to company),and he provides proofs of Rs 40,000 (boarding pass,air tickets, taxi vouchers) then income tax will be deducted for rest of the Rs 10,000. Does not matter whats the amount of LTA in an employee’s package, income tax laws only permits domestic air tickets only for LTA claim. -Read more: http://www.pankajbatra.com/news/lta-proof-reimbursement-to-employer-not-required-supreme-court-india-ruling/#ixzz1uutlHSez + As per Income tax rules of India, if transport bills for LTA are not provided,the amount will be taxed. E.g. If an employee has LTA allowance as Rs 50,000 in his CTC(cost to company),and he provides proofs of Rs 40,000 (boarding pass,air tickets, taxi vouchers) then income tax will be deducted for rest of the Rs 10,000. Does not matter whats the amount of LTA in an employee’s package, income tax laws only permits domestic air tickets only for LTA claim. @@ -199,9 +180,7 @@ Read more: http://www.pankajbatra.com/news/lta-proof-reimbursement-to-employer-n 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 - Read more: http://www.pankajbatra.com/finance/income-tax-calculator-2012-2013-2014/#ixzz1uuunHwjE - + 4.Rs. 3 Lakh @@ -252,7 +231,6 @@ Read more: http://www.pankajbatra.com/news/lta-proof-reimbursement-to-employer-n 1500 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. -Read more: http://www.pankajbatra.com/finance/income-tax-calculator-2012-2013-2014/#ixzz1uuvaUK7A @@ -272,8 +250,7 @@ Read more: http://www.pankajbatra.com/finance/income-tax-calculator-2012-2013-20 fix 1800 - 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. -Read more: http://www.pankajbatra.com/finance/income-tax-calculator-2012-2013-2014/#ixzz1uuw12Cjj + 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. @@ -380,8 +357,7 @@ one is liable to pay the tax what ever he received excess of the limit or Rs 50, python result = bool(contract.short_term_gain) - If stocks/equity mutual funds are sold before one year, 15% tax would be payable on such gains. STT should have been on transaction. -Read more: http://www.pankajbatra.com/finance/income-tax-calculator-2012-2013-2014/#ixzz1uuwSxEvI + If stocks/equity mutual funds are sold before one year, 15% tax would be payable on such gains. STT should have been on transaction. @@ -393,8 +369,7 @@ Read more: http://www.pankajbatra.com/finance/income-tax-calculator-2012-2013-20 python result = bool(contract.long_term_gain) - If stocks/equity mutual funds are kept for more than a year before sale,it would be long term gains and such gains would be fully exempt from income tax. Securities transaction tax (STT) must have been paid on transactions for availing this exemption. -Read more: http://www.pankajbatra.com/finance/income-tax-calculator-2012-2013-2014/#ixzz1uuwtRkCT + If stocks/equity mutual funds are kept for more than a year before sale,it would be long term gains and such gains would be fully exempt from income tax. Securities transaction tax (STT) must have been paid on transactions for availing this exemption. @@ -408,8 +383,7 @@ Read more: http://www.pankajbatra.com/finance/income-tax-calculator-2012-2013-20 result = -(contract.professional_tax) - Professional tax for company should be paid on or before 30th sept,The amount is Rs.2000 per year.There is no payment form to be filled. -Read more: http://www.citehr.com/249518-companys-professional-tax-gujarat.html#ixzz1uuyvgt2L + Professional tax for company should be paid on or before 30th sept,The amount is Rs.2000 per year.There is no payment form to be filled. @@ -421,8 +395,7 @@ Read more: http://www.citehr.com/249518-companys-professional-tax-gujarat.html#i code result = -(contract.tds) - As per income tax rules, all payment which are taxable in nature should be done after deduction of taxes at the source itself. Hence employer compute income tax on salary payment and deduct it every month. This TDS is based on employee’s saving/investment declaration at the start of year. If investments for tax saving is not done, large amount may be deducted in last few months. -Read more: http://www.pankajbatra.com/finance/income-tax-calculator-2012-2013-2014/#ixzz1uv0gPhgQ + As per income tax rules, all payment which are taxable in nature should be done after deduction of taxes at the source itself. Hence employer compute income tax on salary payment and deduct it every month. This TDS is based on employee’s saving/investment declaration at the start of year. If investments for tax saving is not done, large amount may be deducted in last few months. @@ -434,8 +407,7 @@ Read more: http://www.pankajbatra.com/finance/income-tax-calculator-2012-2013-20 code result = -(contract.wage + DA) * contract.voluntarily_provident_fund / 100 - 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/- -read more: more:http://www.dotcominfoway.com/blog/vpf-or-voluntary-provident-fund-special-benefits-for-employees + 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/- @@ -456,8 +428,7 @@ read more: more:http://www.dotcominfoway.com/blog/vpf-or-voluntary-provident-fun fix - 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) -read more: http://www.citehr.com/270132-labour-welfare-fund-deduction-salary.html + 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). From c77d5a88e9d096a0bc6f38fffbebfae567aa01c0 Mon Sep 17 00:00:00 2001 From: "Khushboo Bhatt (Open ERP)" Date: Thu, 24 May 2012 10:42:26 +0530 Subject: [PATCH 038/569] [IMP]added icon on module. bzr revid: kbh@tinyerp.com-20120524051226-rrsq51grjcstmuyw --- .../l10n_in_hr_payroll/static/src/img/icon.png | Bin 0 -> 2519 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 addons/l10n_in_hr_payroll/static/src/img/icon.png diff --git a/addons/l10n_in_hr_payroll/static/src/img/icon.png b/addons/l10n_in_hr_payroll/static/src/img/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..ddaf38f8b6ddad86483eb34aa261ac964f444443 GIT binary patch literal 2519 zcmb_ec{r5q8hN zn3<`eHHZm2!Vdw*Ha(9n5FnlwCWat_&-$5`cn}0grjDTi!1rKBc(|m2&7H{z62=$A zgueyBLgoVi|EQTE#y09BXA~Ed<1J2K*w*OiE%{x0FgMxS9JlZB#Vg90iO2Sz;kjuj zTzgzxMEHJi+gTCela10xScy;M4-wuFmd%Y)2~f4F=G*QG^19c@r$mqEG%OqT+4yRw z^e&92)!^S75<7dfzb~~A7j?6@TbaYFMMBs18}J|b&jXE^{BzWY%t_ln;?>FJyZ$W; zP*vdZ!}9hQ?!Koba5_{tVOAFCF$40m|Ca^d7l@iTm`oZpd{rvuPYFLDnWwBcso3hC z=;sxGcg2Tw;?YMkJwih6rlv~2aEAgJ9T@+Ll$ow2M(vky`#Ssv?-o4A8Vc86mcgUaI0cpvS87^*{sEnhAXuNio5_U>za>MSbribsl$EpBC$HK~#M8(d ztK|-~=Q(E!j(?sjm}-Y_^V8vOztZXhEk4gnPW2WE*iltjJsJ|x(>IN8q%GCzzVspw z@{F}=b&e9Zi-v|Ssj63&JW?zkb|c=ad7CmkCnIbIOoohrK|uHQE-rNZ-re1;|Fa;H zxhW!{QQ6H^%*g1p;&68TQ90j;Dqvc-MAFI$V~4D#r!i#nhwsTs`i~q=l>FL4&a7rs zfLf*VI_9CZznY$;tp)*FG2X(o@ma#{SO*ZL-f%TD&SLczmRHUOul-QieHDo<)}vS0 zoV0OqxyIB_w!UpyCMHHXdia*ezK$J*Vp%G>w&`VS4-fwOuB%WlF2Nn~n$=d^KdeFK zR7<86?v*}hL7IBS*W3&lsrLH)5?4n+QAcu*d^X0HE$vF(ON&omU+0@;!+&ga{D^T0 zi`eIh5{uH=ce>iQFZRXkS7;ItV=@YqcxKS1=Y~IGG>XapRi&j)s=IpEs=oo!U zg0(o~s!nh=3!Kx&rx%_$+N5_((|u}5OS6h#(0hauWrdFgHH@u&4)GF{&bBfv6$l8h zJ8#9B{#dUEmL;X=rcUf_+}MV_AeiQWUtxPG=DIO_b=TOu4oa;3mErZd;f)>Ytvidt z*)~?J(lQ^u0l%pMF$0x16u?q`SNY)UXUqv-Kfm0#4fWfm4=&g6T4IwCP*Mv=vxsY= zlrTt18NKMHBd0EwlY8)&Cto9pb%`(@L$^8i^fkV-=*;~>0Wjby&!iMnS?q~iJYJSw zbSgXJE>El;+{lQKoXp!e9-&UGTw|aUMlUK9*@+%#T3A1*af85=j9-TCPm@bEoOg8MQWfV{{Z zOZhQ^L{bvg*myRIm2?v<7ZE{a9VhNnJ9K@$_lRVu*~~lImC=R^9@Td=qZgHAGBpX$ ziXPj4fBRmoduy{mQIS*?K!%qOCXW+d1gRqmVBaG4V#{w{c-$%~s<}gb7ne5YKV#s} zMzONO>`x48m4ju_s2%yAB!a=nVPQ}d@;6zEW$op-V=WQ77z+yxSLzZ=n6UM}h(0k9 z>>3xo7c3y5NLX8X`ffkJM>z*3w<%rT)BPpJSqxR*zKAS_q8*hxFf^3WG41|+Lj31O zxqm=R;!6VsFo}0VxmFIJA5?r10H;S)N5wg7D3Qu=O zhLrwYPMU)`nXETIUNF@rgiCF=4*F0fT+q`E@~iHdkhP0Tdb{UqpW4ZlX7G-|EFBuU z%^XKi#wPKg6QOHu!3HIK6VdGA*kvmvYHLl>QIq^Cr=AhXVDMcE0+XZBaWT6)vhS6W$_4i@i zJnQq3&_|DzN@?-QM@{rfo7N9YW?V)4x_WUwW(8%eIDC2+{G*RSky z=zL6dL(g4wyS-xg)s(^sF*1XzcKyWLxnzaQnE%sn{O^w7zc&$6tMkkn-sq&Yyv@sC zzatlB Date: Thu, 24 May 2012 11:58:46 +0530 Subject: [PATCH 039/569] [IMP]removed changes from hr_payroll and changed code for Professional tax. bzr revid: kbh@tinyerp.com-20120524062846-5had196y4n50fpli --- addons/hr_payroll/hr_payroll_demo.xml | 39 +++++++++++-------- .../l10n_in_hr_payroll_data.xml | 2 +- 2 files changed, 23 insertions(+), 18 deletions(-) diff --git a/addons/hr_payroll/hr_payroll_demo.xml b/addons/hr_payroll/hr_payroll_demo.xml index e7ab610b8bb..36ac3e23a7b 100644 --- a/addons/hr_payroll/hr_payroll_demo.xml +++ b/addons/hr_payroll/hr_payroll_demo.xml @@ -16,26 +16,21 @@ Professional Tax Register - + Meal Voucher Register + percentage + + contract.wage + HRA + + House Rent Allowance - percentage - - contract.wage - HRA - - - Rent receipts can be shown for taking tax benefit for living in a rented house. -Income tax exemption for HRA will be least of following: - 1. The actual amount of HRA received as a part of salary. - 2. 50% (if living in metro area) of (basic salary+Dearness allowance (DA)). - 3. Rent paid minus 10% of (basic salary+DA). - + @@ -55,7 +50,6 @@ Income tax exemption for HRA will be least of following: Professional Tax - Professional tax deducted from salary by employer should be removed from taxable salary before computation of income tax. @@ -78,6 +72,17 @@ Income tax exemption for HRA will be least of following: + + fix + + worked_days.WORK100.number_of_days + MA + + + Meal Voucher + + + code SALE @@ -85,7 +90,7 @@ Income tax exemption for HRA will be least of following: Get 1% of sales result = (inputs.SALEURO.amount + inputs.SALASIA.amount) * 0.01 - + @@ -106,7 +111,7 @@ Income tax exemption for HRA will be least of following: ME Marketing Executive - + @@ -114,7 +119,7 @@ Income tax exemption for HRA will be least of following: MEQP Marketing Executive for Quentin Paolino - + diff --git a/addons/l10n_in_hr_payroll/l10n_in_hr_payroll_data.xml b/addons/l10n_in_hr_payroll/l10n_in_hr_payroll_data.xml index 7afd6eecba1..0d8d1664700 100644 --- a/addons/l10n_in_hr_payroll/l10n_in_hr_payroll_data.xml +++ b/addons/l10n_in_hr_payroll/l10n_in_hr_payroll_data.xml @@ -374,7 +374,7 @@ one is liable to pay the tax what ever he received excess of the limit or Rs 50, - PT + PTD Professional Tax python From 4e3f8665b0c49b34ab56f32d9127cbb75342f88d Mon Sep 17 00:00:00 2001 From: "Khushboo Bhatt (Open ERP)" Date: Thu, 24 May 2012 12:09:48 +0530 Subject: [PATCH 040/569] [IMP]removed unnessary changes. bzr revid: kbh@tinyerp.com-20120524063948-hj3waasxo0h15a2c --- addons/hr_payroll/test/payslip.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/addons/hr_payroll/test/payslip.yml b/addons/hr_payroll/test/payslip.yml index e44cfcaa325..c3ad3a1a85c 100644 --- a/addons/hr_payroll/test/payslip.yml +++ b/addons/hr_payroll/test/payslip.yml @@ -17,11 +17,11 @@ code: SD company_id: base.main_company rule_ids: - - hr_salary_rule_houserentallowancemetro + - hr_salary_rule_houserentallowance1 - hr_salary_rule_convanceallowance1 - hr_salary_rule_professionaltax1 - hr_salary_rule_providentfund1 - - hr_salary_rule_food_coupon + - hr_salary_rule_meal_voucher - hr_salary_rule_sales_commission - I create a contract for "Richard" From 034a85428f8a93dcab1d5e259bc54450156fcf52 Mon Sep 17 00:00:00 2001 From: "Khushboo Bhatt (Open ERP)" Date: Thu, 24 May 2012 16:54:12 +0530 Subject: [PATCH 041/569] [IMP]sequence changed for rules,update module descriptor,improved rule of gratuity and VPF. bzr revid: kbh@tinyerp.com-20120524112412-8142nscbm8zl7zzr --- addons/l10n_in_hr_payroll/__openerp__.py | 7 +- .../data/hr.salary.rule.csv | 9 +- .../l10n_in_hr_payroll/l10n_in_hr_payroll.py | 8 +- .../l10n_in_hr_payroll_data.xml | 105 ++++++++---------- .../l10n_in_hr_payroll_view.xml | 10 +- 5 files changed, 62 insertions(+), 77 deletions(-) diff --git a/addons/l10n_in_hr_payroll/__openerp__.py b/addons/l10n_in_hr_payroll/__openerp__.py index 27528fbddcf..c605756417e 100644 --- a/addons/l10n_in_hr_payroll/__openerp__.py +++ b/addons/l10n_in_hr_payroll/__openerp__.py @@ -30,12 +30,13 @@ Indian Payroll Rules. ======================= - * Employee Details + -Configuration of hr_payroll for India localization + -All main contributions rules for India payslip. + * New payslip report * Employee Contracts - * Passport based Contract - * Allowances / Deductions * Allow to configure Basic / Grows / Net Salary * Employee PaySlip + * Allowance / Deduction * Monthly Payroll Register * Integrated with Holiday Management * Medical Allowance, Travel Allowance, Child Allowance, ... diff --git a/addons/l10n_in_hr_payroll/data/hr.salary.rule.csv b/addons/l10n_in_hr_payroll/data/hr.salary.rule.csv index 0877a73d02a..04e265e136f 100644 --- a/addons/l10n_in_hr_payroll/data/hr.salary.rule.csv +++ b/addons/l10n_in_hr_payroll/data/hr.salary.rule.csv @@ -1,8 +1,7 @@ "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,,1200,"Education Allowance","Allowance",23,"CHEAONE","hr_payroll_rule_child1","range","employee.children", -2,"fix",2,10,,2400,"Education Allowance","Allowance",24,"CHEATWO","hr_payroll_rule_child1","range","employee.children", +1,"fix",1,1,,1200,"Education Allowance For One Child","Allowance",23,"CHEAONE","hr_payroll_rule_child1","range","employee.children", +2,"fix",2,10,,2400,"Education Allowance For Two Child","Allowance",24,"CHEATWO","hr_payroll_rule_child1","range","employee.children", ,,,,,,,,,,,,, -3,"fix",1,1,,300,"Child Hostel Allowance","Allowance",26,"CHOONE","hr_payroll_rule_child2","range","employee.children", -4,"fix",2,10,,600,"Child Hostel Allowance","Allowance",27,"CHOTWO","hr_payroll_rule_child2","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", ,,,,,,,,,,,,, diff --git a/addons/l10n_in_hr_payroll/l10n_in_hr_payroll.py b/addons/l10n_in_hr_payroll/l10n_in_hr_payroll.py index 9444afd74e0..8d85ebbdf09 100644 --- a/addons/l10n_in_hr_payroll/l10n_in_hr_payroll.py +++ b/addons/l10n_in_hr_payroll/l10n_in_hr_payroll.py @@ -20,7 +20,7 @@ ############################################################################## import time -from datetime import datetime, timedelta +from datetime import datetime from calendar import isleap from dateutil.relativedelta import relativedelta @@ -58,13 +58,13 @@ class hr_employee(osv.osv): """ @param cr: the current row, from the database cursor, @param uid: the current user’s ID for security checks, - @param ids: List of Openday’s IDs + @param ids: List of employee’s IDs @return: No. of years of experience. @param context: A standard dictionary for contextual values """ res = {} - c_date = time.strftime('%Y-%m-%d') DATETIME_FORMAT = "%Y-%m-%d" + c_date = time.strftime(DATETIME_FORMAT) current_date = datetime.strptime(c_date,DATETIME_FORMAT) for employee in self.browse(cr, uid, ids, context=context): if employee.join_date: @@ -86,7 +86,7 @@ class hr_employee(osv.osv): _columns = { 'join_date': fields.date('Join Date', help="joining date of employee "), - 'number_of_year':fields.function(_compute_year, string='No. of Years of Service', type="float", help="Total years of work experience."), + 'number_of_year':fields.function(_compute_year, string='No. of Years of Service', type="float", store=True, help="Total years of work experience."), } hr_employee() diff --git a/addons/l10n_in_hr_payroll/l10n_in_hr_payroll_data.xml b/addons/l10n_in_hr_payroll/l10n_in_hr_payroll_data.xml index 0d8d1664700..c21a1aed02b 100644 --- a/addons/l10n_in_hr_payroll/l10n_in_hr_payroll_data.xml +++ b/addons/l10n_in_hr_payroll/l10n_in_hr_payroll_data.xml @@ -1,7 +1,7 @@ - + HRAM @@ -9,7 +9,7 @@ result = (contract.wage + DA) * 0.50 House Rent Allowance for metro city - + Rent receipts can be shown for taking tax benefit for living in a rented house. Income tax exemption for HRA will be least of following: 1. The actual amount of HRA received as a part of salary. @@ -24,7 +24,7 @@ Income tax exemption for HRA will be least of following: HRANM House Rent Allowance for non metro city - + Rent receipts can be shown for taking tax benefit for living in a rented house. Income tax exemption for HRA will be least of following: 1. The actual amount of HRA received as a part of salary. @@ -35,16 +35,13 @@ Income tax exemption for HRA will be least of following: - code - - worked_days.WORK100.number_of_days FC - python - result = bool(contract.food_coupon_amount) + none Food Coupons Allowance + code result = worked_days.WORK100.number_of_days * contract.food_coupon_amount - + @@ -54,42 +51,30 @@ Income tax exemption for HRA will be least of following: percentage contract.wage - + DA is calculated in % - - CEA - Child Education Allowance - - fix - none - - Per school going child 1200 per annum is non-taxable. -Maximum for 2 children, so max 2400 per annum becomes non-taxable. - - CHEA - Education Allowance + Child Education Allowance - python result = bool(employee.children) fix - + + Per school going child 1200 per annum is non-taxable.Maximum for 2 children, so max 2400 per annum becomes non-taxable. CHEAH Child Hostel Allowance - python result = bool(employee.children) fix - In case the children are in hostel, the exemption available is Rs.300 per month per child for up to 2 children. - + In case the children are in hostel, the exemption available for child. + @@ -98,7 +83,7 @@ Maximum for 2 children, so max 2400 per annum becomes non-taxable. fix - + This allowance is normally given as an additional benefit to employees and is fully taxable. @@ -107,7 +92,7 @@ Maximum for 2 children, so max 2400 per annum becomes non-taxable. City Compensatory Allowance none - + code result = (contract.wage + DA) * 0.10 @@ -118,7 +103,7 @@ Maximum for 2 children, so max 2400 per annum becomes non-taxable. City Allowance for Metro city none - + fix 850.0 @@ -128,7 +113,7 @@ Maximum for 2 children, so max 2400 per annum becomes non-taxable. City Allowance for Non Metro city none - + fix 800.0 @@ -139,7 +124,7 @@ Maximum for 2 children, so max 2400 per annum becomes non-taxable. fix - + 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. @@ -164,7 +149,7 @@ number of years of service (date of joining – date of retirement/leaving job)< fix 1666 - + As per Income tax rules of India, if transport bills for LTA are not provided,the amount will be taxed. E.g. If an employee has LTA allowance as Rs 50,000 in his CTC(cost to company),and he provides proofs of Rs 40,000 (boarding pass,air tickets, taxi vouchers) then income tax will be deducted for rest of the Rs 10,000. Does not matter whats the amount of LTA in an employee’s package, income tax laws only permits domestic air tickets only for LTA claim. @@ -175,7 +160,7 @@ number of years of service (date of joining – date of retirement/leaving job)< none fix 0.0 - + 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) @@ -189,7 +174,7 @@ number of years of service (date of joining – date of retirement/leaving job)< fix - + This would be fully taxable based on incentive. @@ -199,7 +184,7 @@ number of years of service (date of joining – date of retirement/leaving job)< fix - + This component is on-taxable up to 15000 per year (or Rs 1250 per month) on producing medical bills. @@ -209,7 +194,7 @@ number of years of service (date of joining – date of retirement/leaving job)< fix - + 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. @@ -219,7 +204,7 @@ number of years of service (date of joining – date of retirement/leaving job)< fix - + Some sections of employees mat get allowance for purchase of office dress/uniform.In such case, the component would become non-taxable. @@ -229,7 +214,7 @@ number of years of service (date of joining – date of retirement/leaving job)< fix 1500 - + 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. @@ -240,7 +225,7 @@ number of years of service (date of joining – date of retirement/leaving job)< fix - + @@ -249,7 +234,7 @@ number of years of service (date of joining – date of retirement/leaving job)< fix 1800 - + 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. @@ -259,7 +244,7 @@ number of years of service (date of joining – date of retirement/leaving job)< fix - + Employer may also provide reimbursement of internet expenses and thus this would become non taxable. @@ -271,7 +256,7 @@ number of years of service (date of joining – date of retirement/leaving job)< result = bool(contract.driver_salay) fix - + Rs. 900 per month (non taxable) @@ -281,7 +266,7 @@ number of years of service (date of joining – date of retirement/leaving job)< fix - + Gift is from non relatives person worth more than Rs.50000, one is liable to pay the tax what ever he received excess of the limit or Rs 50,000. @@ -292,7 +277,7 @@ one is liable to pay the tax what ever he received excess of the limit or Rs 50, fix - + gift is from relaives whould be non taxable with no limits. @@ -303,7 +288,7 @@ one is liable to pay the tax what ever he received excess of the limit or Rs 50, code result = contract.house_rent_income none - + Income from house property.30% of the rental income can be reduced as a standard deduction. @@ -315,7 +300,7 @@ one is liable to pay the tax what ever he received excess of the limit or Rs 50, result = contract.saving_bank_account python result = bool(contract.saving_bank_account) - + @@ -324,7 +309,7 @@ one is liable to pay the tax what ever he received excess of the limit or Rs 50, fix - + @@ -336,7 +321,7 @@ one is liable to pay the tax what ever he received excess of the limit or Rs 50, code result = contract.other_income Bank account/NSC/Post Office/SCSS interest - + @@ -345,7 +330,7 @@ one is liable to pay the tax what ever he received excess of the limit or Rs 50, fix - + @@ -356,7 +341,7 @@ one is liable to pay the tax what ever he received excess of the limit or Rs 50, result = contract.short_term_gain python result = bool(contract.short_term_gain) - + If stocks/equity mutual funds are sold before one year, 15% tax would be payable on such gains. STT should have been on transaction. @@ -368,11 +353,11 @@ one is liable to pay the tax what ever he received excess of the limit or Rs 50, result = contract.long_term_gain python result = bool(contract.long_term_gain) - + If stocks/equity mutual funds are kept for more than a year before sale,it would be long term gains and such gains would be fully exempt from income tax. Securities transaction tax (STT) must have been paid on transactions for availing this exemption. - + PTD Professional Tax @@ -381,7 +366,7 @@ one is liable to pay the tax what ever he received excess of the limit or Rs 50, result = bool(contract.professional_tax) code result = -(contract.professional_tax) - + Professional tax for company should be paid on or before 30th sept,The amount is Rs.2000 per year.There is no payment form to be filled. @@ -403,10 +388,10 @@ one is liable to pay the tax what ever he received excess of the limit or Rs 50, Voluntarily Provident Fund Contribution python - result = bool(contract.voluntarily_provident_fund) + result = bool(contract.voluntary_provident_fund) code - result = -(contract.wage + DA) * contract.voluntarily_provident_fund / 100 - + result = -(contract.wage + DA) * contract.voluntary_provident_fund / 100 + 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/- @@ -489,7 +474,7 @@ one is liable to pay the tax what ever he received excess of the limit or Rs 50, code result = - (contract.wage + DA) * 8.33 / 100 Employer contribution does not become part of employee’s income and hence income tax is not payable on this part. - + @@ -498,7 +483,7 @@ one is liable to pay the tax what ever he received excess of the limit or Rs 50, code result = - (contract.wage + DA) * 0.10 - + 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. @@ -508,7 +493,7 @@ one is liable to pay the tax what ever he received excess of the limit or Rs 50, code result = - (contract.wage + DA) * 0.10 - + Employee can claim deduction even of employer's contribution to NPS. diff --git a/addons/l10n_in_hr_payroll/l10n_in_hr_payroll_view.xml b/addons/l10n_in_hr_payroll/l10n_in_hr_payroll_view.xml index d6b8eb02724..29323b458d5 100644 --- a/addons/l10n_in_hr_payroll/l10n_in_hr_payroll_view.xml +++ b/addons/l10n_in_hr_payroll/l10n_in_hr_payroll_view.xml @@ -11,20 +11,20 @@ - + + + + - - - - + From d6fcf87a89be305b80323755e553f054282ec7b0 Mon Sep 17 00:00:00 2001 From: jir Date: Fri, 25 May 2012 12:15:47 +0530 Subject: [PATCH 042/569] [FIX] Problem of uses not defined [close] states in field in account_invoice.py lp bug: https://launchpad.net/bugs/1004283 fixed bzr revid: jir@jir-desktop-20120525064547-qtxq60s0aa2fijk2 --- addons/account/account_invoice.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/addons/account/account_invoice.py b/addons/account/account_invoice.py index 9426d713188..dedc54a9a57 100644 --- a/addons/account/account_invoice.py +++ b/addons/account/account_invoice.py @@ -213,7 +213,7 @@ class account_invoice(osv.osv): \n* The \'Paid\' state is set automatically when the invoice is paid. Its related journal entries may or may not be reconciled. \ \n* The \'Cancelled\' state is used when user cancel invoice.'), 'date_invoice': fields.date('Invoice Date', readonly=True, states={'draft':[('readonly',False)]}, select=True, help="Keep empty to use the current date"), - 'date_due': fields.date('Due Date', states={'paid':[('readonly',True)], 'open':[('readonly',True)], 'close':[('readonly',True)]}, select=True, + 'date_due': fields.date('Due Date', states={'paid':[('readonly',True)], 'open':[('readonly',True)], 'cancel':[('readonly',True)]}, select=True, help="If you use payment terms, the due date will be computed automatically at the generation "\ "of accounting entries. If you keep the payment term and the due date empty, it means direct payment. The payment term may compute several due dates, for example 50% now, 50% in one month."), 'partner_id': fields.many2one('res.partner', 'Partner', change_default=True, readonly=True, required=True, states={'draft':[('readonly',False)]}), @@ -252,7 +252,7 @@ class account_invoice(osv.osv): 'currency_id': fields.many2one('res.currency', 'Currency', required=True, readonly=True, states={'draft':[('readonly',False)]}), 'journal_id': fields.many2one('account.journal', 'Journal', required=True, readonly=True, states={'draft':[('readonly',False)]}), 'company_id': fields.many2one('res.company', 'Company', required=True, change_default=True, readonly=True, states={'draft':[('readonly',False)]}), - 'check_total': fields.float('Verification Total', digits_compute=dp.get_precision('Account'), states={'open':[('readonly',True)],'close':[('readonly',True)]}), + 'check_total': fields.float('Verification Total', digits_compute=dp.get_precision('Account'), states={'open':[('readonly',True)],'cancel':[('readonly',True)],'paid':[('readonly',True)]}), 'reconciled': fields.function(_reconciled, string='Paid/Reconciled', type='boolean', store={ 'account.invoice': (lambda self, cr, uid, ids, c={}: ids, None, 50), # Check if we can remove ? From 405f134bd3e7bb430d25602b838af439bdf2630c Mon Sep 17 00:00:00 2001 From: "Amit (OpenERP)" Date: Fri, 25 May 2012 12:17:09 +0530 Subject: [PATCH 043/569] [FIX] sale_margin : correction on super method parameter lp bug: https://launchpad.net/bugs/1003948 fixed bzr revid: amp@tinyerp.com-20120525064709-a918ieuh4zb298zo --- addons/sale_margin/sale_margin.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/sale_margin/sale_margin.py b/addons/sale_margin/sale_margin.py index 82a7150b6d1..64e07276c08 100644 --- a/addons/sale_margin/sale_margin.py +++ b/addons/sale_margin/sale_margin.py @@ -70,7 +70,7 @@ class sale_order(osv.osv): return result def _get_order(self, cr, uid, ids, context=None): - return super(self,sale_order)._get_order(cr, uid, ids, context=context) + return super(sale_order, self)._get_order(cr, uid, ids, context=context) _columns = { 'margin': fields.function(_product_margin, string='Margin', help="It gives profitability by calculating the difference between the Unit Price and Cost Price.", store={ From c1c6205388a46e823ed97776643ddde8013fc4d1 Mon Sep 17 00:00:00 2001 From: "Khushboo Bhatt (Open ERP)" Date: Mon, 28 May 2012 11:48:02 +0530 Subject: [PATCH 044/569] [IMP]changed sequence of salary rules. bzr revid: kbh@tinyerp.com-20120528061802-rqijgqi3pbb4isjg --- .../l10n_in_hr_payroll_data.xml | 191 +++++++++--------- 1 file changed, 95 insertions(+), 96 deletions(-) diff --git a/addons/l10n_in_hr_payroll/l10n_in_hr_payroll_data.xml b/addons/l10n_in_hr_payroll/l10n_in_hr_payroll_data.xml index c21a1aed02b..a9e219c33a6 100644 --- a/addons/l10n_in_hr_payroll/l10n_in_hr_payroll_data.xml +++ b/addons/l10n_in_hr_payroll/l10n_in_hr_payroll_data.xml @@ -3,6 +3,17 @@ + + DA + Dearness Allowance + + percentage + contract.wage + + + DA is calculated in % + + HRAM code @@ -33,26 +44,23 @@ Income tax exemption for HRA will be least of following: - - - FC + + TCA + Transport/Conveyance Allownace - none - Food Coupons Allowance - code - result = worked_days.WORK100.number_of_days * contract.food_coupon_amount - - + fix + + + - - DA - Dearness Allowance + + SA + Grade/Special/Management/Supplementary Allowance - percentage - contract.wage - - - DA is calculated in % + fix + + + This allowance is normally given as an additional benefit to employees and is fully taxable. @@ -77,16 +85,6 @@ Income tax exemption for HRA will be least of following: - - SA - Grade/Special/Management/Supplementary Allowance - - fix - - - This allowance is normally given as an additional benefit to employees and is fully taxable. - - CBDA City Compensatory Allowance @@ -97,7 +95,6 @@ Income tax exemption for HRA will be least of following: result = (contract.wage + DA) * 0.10 - CMETRO City Allowance for Metro city @@ -188,6 +185,16 @@ number of years of service (date of joining – date of retirement/leaving job)< This component is on-taxable up to 15000 per year (or Rs 1250 per month) on producing medical bills. + + FC + + none + Food Coupons Allowance + code + result = worked_days.WORK100.number_of_days * contract.food_coupon_amount + + + PERJ Periodical Journals @@ -281,6 +288,15 @@ one is liable to pay the tax what ever he received excess of the limit or Rs 50, gift is from relaives whould be non taxable with no limits. + + AI + Agricultural Income + + fix + + + + HRI House Rent Income @@ -303,15 +319,6 @@ one is liable to pay the tax what ever he received excess of the limit or Rs 50, - - TCA - Transport/Conveyance Allownace - - fix - - - - OTI Other Income @@ -324,15 +331,6 @@ one is liable to pay the tax what ever he received excess of the limit or Rs 50, - - AI - Agricultural Income - - fix - - - - STG Short Term Gains from Share Trading/Equity MFs @@ -358,18 +356,6 @@ one is liable to pay the tax what ever he received excess of the limit or Rs 50, - - PTD - Professional Tax - - python - result = bool(contract.professional_tax) - code - result = -(contract.professional_tax) - - - Professional tax for company should be paid on or before 30th sept,The amount is Rs.2000 per year.There is no payment form to be filled. - TDS @@ -383,6 +369,39 @@ one is liable to pay the tax what ever he received excess of the limit or Rs 50, As per income tax rules, all payment which are taxable in nature should be done after deduction of taxes at the source itself. Hence employer compute income tax on salary payment and deduct it every month. This TDS is based on employee’s saving/investment declaration at the start of year. If investments for tax saving is not done, large amount may be deducted in last few months. + + PTD + Professional Tax + + python + result = bool(contract.professional_tax) + code + result = -(contract.professional_tax) + + + Professional tax for company should be paid on or before 30th sept,The amount is Rs.2000 per year.There is no payment form to be filled. + + + + EPMF + Employee's PF Contribution + + code + result = - (contract.wage + DA) * 8.33 / 100 + Employer contribution does not become part of employee’s income and hence income tax is not payable on this part. + + + + + ENPFC + Employee's NPS Contribution + + code + result = - (contract.wage + DA) * 0.10 + + Employee can claim deduction even of employer's contribution to NPS. + + VPF Voluntarily Provident Fund Contribution @@ -391,7 +410,7 @@ one is liable to pay the tax what ever he received excess of the limit or Rs 50, result = bool(contract.voluntary_provident_fund) code result = -(contract.wage + DA) * contract.voluntary_provident_fund / 100 - + 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/- @@ -403,7 +422,7 @@ one is liable to pay the tax what ever he received excess of the limit or Rs 50, result = bool(contract.company_transport) code result = -(contract.company_transport) - + @@ -412,7 +431,7 @@ one is liable to pay the tax what ever he received excess of the limit or Rs 50, fix - + 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). @@ -422,7 +441,7 @@ one is liable to pay the tax what ever he received excess of the limit or Rs 50, fix - + @@ -433,7 +452,7 @@ one is liable to pay the tax what ever he received excess of the limit or Rs 50, result = bool(contract.leave_avail_dedution) code result = -(contract.leave_avail_dedution) - + @@ -445,7 +464,7 @@ one is liable to pay the tax what ever he received excess of the limit or Rs 50, code result = - (contract.medical_insurance) - + @@ -454,7 +473,17 @@ one is liable to pay the tax what ever he received excess of the limit or Rs 50, fix - + + + + + ENPC + Employer's NPS Contribution + + code + result = - (contract.wage + DA) * 0.10 + + 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. @@ -463,39 +492,9 @@ one is liable to pay the tax what ever he received excess of the limit or Rs 50, code result = - (contract.wage + DA) * 0.12 - + 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. - - - EPMF - Employee's PF Contribution - - code - result = - (contract.wage + DA) * 8.33 / 100 - Employer contribution does not become part of employee’s income and hence income tax is not payable on this part. - - - - - ENPC - Employer's NPS Contribution - - code - result = - (contract.wage + DA) * 0.10 - - 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. - - - - ENPFC - Employee's NPS Contribution - - code - result = - (contract.wage + DA) * 0.10 - - Employee can claim deduction even of employer's contribution to NPS. - From a15c85fd4a93152d074ad6f7dc602507bb11ee7f Mon Sep 17 00:00:00 2001 From: "Khushboo Bhatt (Open ERP)" Date: Mon, 28 May 2012 14:24:08 +0530 Subject: [PATCH 045/569] [IMP]ids changed. bzr revid: kbh@tinyerp.com-20120528085408-p1409ajat1yu5vkk --- addons/l10n_in_hr_payroll/l10n_in_hr_payroll_data.xml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/addons/l10n_in_hr_payroll/l10n_in_hr_payroll_data.xml b/addons/l10n_in_hr_payroll/l10n_in_hr_payroll_data.xml index a9e219c33a6..d5c83722784 100644 --- a/addons/l10n_in_hr_payroll/l10n_in_hr_payroll_data.xml +++ b/addons/l10n_in_hr_payroll/l10n_in_hr_payroll_data.xml @@ -382,7 +382,7 @@ one is liable to pay the tax what ever he received excess of the limit or Rs 50, Professional tax for company should be paid on or before 30th sept,The amount is Rs.2000 per year.There is no payment form to be filled. - + EPMF Employee's PF Contribution @@ -392,7 +392,7 @@ one is liable to pay the tax what ever he received excess of the limit or Rs 50, - + ENPFC Employee's NPS Contribution @@ -476,7 +476,7 @@ one is liable to pay the tax what ever he received excess of the limit or Rs 50, - + ENPC Employer's NPS Contribution @@ -486,7 +486,7 @@ one is liable to pay the tax what ever he received excess of the limit or Rs 50, 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. - + EPF Employer's PF Contribution From 986fd1159f8e59d370728c7f8c82ccc449a0cf7d Mon Sep 17 00:00:00 2001 From: "Khushboo Bhatt (Open ERP)" Date: Mon, 4 Jun 2012 11:48:28 +0530 Subject: [PATCH 046/569] [IMP]object and view of payment_advice and advice_line are added. bzr revid: kbh@tinyerp.com-20120604061828-4dhq5c9w8t2o42sk --- .../l10n_in_hr_payroll/l10n_in_hr_payroll.py | 115 +++++++++++++++++- .../l10n_in_hr_payroll_data.xml | 2 +- .../l10n_in_hr_payroll_view.xml | 65 ++++++++++ 3 files changed, 180 insertions(+), 2 deletions(-) diff --git a/addons/l10n_in_hr_payroll/l10n_in_hr_payroll.py b/addons/l10n_in_hr_payroll/l10n_in_hr_payroll.py index 8d85ebbdf09..b2bd5c111da 100644 --- a/addons/l10n_in_hr_payroll/l10n_in_hr_payroll.py +++ b/addons/l10n_in_hr_payroll/l10n_in_hr_payroll.py @@ -20,13 +20,29 @@ ############################################################################## import time +from datetime import date from datetime import datetime -from calendar import isleap +from datetime import timedelta from dateutil.relativedelta import relativedelta +from tools.translate import _ +from calendar import isleap + from osv import fields, osv import decimal_precision as dp +def prev_bounds(cdate=False): + when = date.fromtimestamp(time.mktime(time.strptime(cdate,"%Y-%m-%d"))) + this_first = date(when.year, when.month, 1) + month = when.month + 1 + year = when.year + if month > 12: + month = 1 + year += 1 + next_month = date(year, month, 1) + prev_end = next_month - timedelta(days=1) + return this_first, prev_end + class hr_contract_in(osv.osv): _inherit = 'hr.contract' _description = 'contract' @@ -90,4 +106,101 @@ class hr_employee(osv.osv): } hr_employee() +class payroll_advice(osv.osv): + ''' + Bank Advice Note + ''' + + _name = 'hr.payroll.advice' + _description = 'Bank Advice Note' + _columns = { + 'name':fields.char('Name', size=2048, required=True, readonly=False), + 'note': fields.text('Description'), + 'date': fields.date('Date'), + 'state':fields.selection([ + ('draft','Draft Sheet'), + ('confirm','Confirm Sheet'), + ('cancel','Reject'), + ],'State', select=True, readonly=True), + 'number':fields.char('Number', size=64, required=False, readonly=True), + 'line_ids':fields.one2many('hr.payroll.advice.line', 'advice_id', 'Employee Salary', required=False), + 'chaque_nos':fields.char('Chaque Nos', size=256, required=False, readonly=False), + 'company_id':fields.many2one('res.company', 'Company', required=False), + 'bank_id':fields.many2one('res.bank', 'Bank', required=False, help="Select the Bank Address from whcih the salary is going to be paid"), + } + _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, + } + + def compute_advice(self, cr, uid, ids, context=None): + payslip_pool = self.pool.get('hr.payslip') + advice_line_pool = self.pool.get('hr.payroll.advice.line') + sequence_pool = self.pool.get('ir.sequence') + payslip_line_pool = self.pool.get('hr.payslip.line') + + for advice in self.browse(cr, uid, ids, context=context): + dates = prev_bounds(advice.date) + slip_ids = payslip_pool.search(cr, uid, [ ('date_from','<=',advice.date),('date_to','>=',advice.date),('date_from','=',dates[0]),('date_to','=',dates[1])], context=context) + if not slip_ids: + raise osv.except_osv(_('Error !'), _('You can get only current month payslips') % (slip_ids)) + for slip in payslip_pool.browse(cr, uid, slip_ids, context=context): + line_ids = payslip_line_pool.search(cr, uid, [ ('slip_id','in',slip_ids),('code','=',"NET")], context=context) + for line in slip.line_ids: + if not slip.employee_id.bank_account_id: + raise osv.except_osv(_('Error !'), _('Please define bank account for the %s employee') % (slip.employee_id.name)) + advice_line= { + 'advice_id':advice.id, + 'name':slip.employee_id.bank_account_id.acc_number, + 'employee_id':slip.employee_id.id, + 'bysal':line.total + } + id = advice_line_pool.create(cr, uid, advice_line, context=context) + number = self.pool.get('ir.sequence').get(cr, uid, 'advice.line') + self.write(cr, uid, ids, {'state':'confirm','number':number}, context=context) + + def confirm_sheet(self, cr, uid, ids, context=None): + self.write(cr, uid, ids, {'state':'confirm'}, context=context) + return True + + def set_to_draft(self, cr, uid, ids, context=None): + self.write(cr, uid, ids, {'state':'draft'}, context=context) + return True + + def cancel_sheet(self, cr, uid, ids, context=None): + self.write(cr, uid, ids, {'state':'cancel'}, context=context) + return True + + 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) + if company.partner_id.bank_ids: + res.update({'bank': company.partner_id.bank_ids[0].bank.name}) + return { + 'value':res + } + +payroll_advice() + +class payroll_advice_line(osv.osv): + ''' + Bank Advice Lines + ''' + + _name = 'hr.payroll.advice.line' + _description = 'Bank Advice Lines' + _columns = { + 'advice_id':fields.many2one('hr.payroll.advice', 'Bank Advice', required=False), + 'name':fields.char('Bank Account A/C', size=64, required=True, readonly=False), + 'employee_id':fields.many2one('hr.employee', 'Employee', required=True), + 'amount': fields.float('Amount', digits_compute=dp.get_precision('Payroll')), + 'bysal': fields.float('By Salary', digits_compute=dp.get_precision('Payroll')), + } + +payroll_advice_line() + # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: \ No newline at end of file diff --git a/addons/l10n_in_hr_payroll/l10n_in_hr_payroll_data.xml b/addons/l10n_in_hr_payroll/l10n_in_hr_payroll_data.xml index d5c83722784..8e62df86de6 100644 --- a/addons/l10n_in_hr_payroll/l10n_in_hr_payroll_data.xml +++ b/addons/l10n_in_hr_payroll/l10n_in_hr_payroll_data.xml @@ -134,7 +134,7 @@ Now difference of income tax between payment year and actual year would be allow none code result = (contract.wage + DA) * 15 * employee.number_of_year / worked_days.WORK100.number_of_days - + Covered under the Payment of Gratuity Act, 1971: (Last drawn monthly basic salary + dearness allowance)/26 x 15 days x number of years of service (date of joining – date of retirement/leaving job) diff --git a/addons/l10n_in_hr_payroll/l10n_in_hr_payroll_view.xml b/addons/l10n_in_hr_payroll/l10n_in_hr_payroll_view.xml index 29323b458d5..de131f43e55 100644 --- a/addons/l10n_in_hr_payroll/l10n_in_hr_payroll_view.xml +++ b/addons/l10n_in_hr_payroll/l10n_in_hr_payroll_view.xml @@ -48,5 +48,70 @@ + + + hr.payroll.advice.form + hr.payroll.advice + form + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +