[MERGE] from trunk

bzr revid: xmo@openerp.com-20121010154436-wz29sdkbs9vvhjba
This commit is contained in:
Xavier Morel 2012-10-10 17:44:36 +02:00
commit 1e4a677f05
155 changed files with 5205 additions and 2511 deletions

1
debian/control vendored
View File

@ -24,6 +24,7 @@ Depends:
python-lxml,
python-mako,
python-openid,
python-psutil,
python-psycopg2,
python-pybabel,
python-pychart,

View File

@ -1,63 +0,0 @@
# Gunicorn sample configuration file.
# See http://gunicorn.org/configure.html for more details.
#
# To run the OpenERP server via Gunicorn, change the appropriate
# settings below, in order to provide the parameters that
# would normally be passed in the command-line,
# (at least `bind` and `conf['addons_path']`), then execute:
# $ gunicorn openerp:wsgi.core.application -c gunicorn.conf.py
# or if you want to run it behind a reverse proxy, add the line
# import openerp.wsgi.proxied
# in this file and execute:
# $ gunicorn openerp:wsgi.proxied.application -c gunicorn.conf.py
import openerp
# Standard OpenERP XML-RPC port is 8069
bind = '127.0.0.1:8069'
pidfile = '.gunicorn.pid'
# Gunicorn recommends 2-4 x number_of_cpu_cores, but
# you'll want to vary this a bit to find the best for your
# particular work load.
workers = 4
# Some application-wide initialization is needed.
on_starting = openerp.wsgi.core.on_starting
when_ready = openerp.wsgi.core.when_ready
pre_request = openerp.wsgi.core.pre_request
post_request = openerp.wsgi.core.post_request
# openerp request-response cycle can be quite long for
# big reports for example
timeout = 240
max_requests = 2000
# Equivalent of --load command-line option
openerp.conf.server_wide_modules = ['web']
# internal TODO: use openerp.conf.xxx when available
conf = openerp.tools.config
# Path to the OpenERP Addons repository (comma-separated for
# multiple locations)
conf['addons_path'] = '/home/openerp/addons/trunk,/home/openerp/web/trunk/addons'
# Optional database config if not using local socket
#conf['db_name'] = 'mycompany'
#conf['db_host'] = 'localhost'
#conf['db_user'] = 'foo'
#conf['db_port'] = 5432
#conf['db_password'] = 'secret'
# OpenERP Log Level
# DEBUG=10, DEBUG_RPC=8, DEBUG_RPC_ANSWER=6, DEBUG_SQL=5, INFO=20,
# WARNING=30, ERROR=40, CRITICAL=50
# conf['log_level'] = 20
# If --static-http-enable is used, path for the static web directory
#conf['static_http_document_root'] = '/var/www'
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

View File

@ -30,7 +30,6 @@ GNU Public Licence.
(c) 2003-TODAY, Fabien Pinckaers - OpenERP SA
"""
import imp
import logging
import os
import signal
@ -92,7 +91,7 @@ def setup_pid_file():
def preload_registry(dbname):
""" Preload a registry, and start the cron."""
try:
db, registry = openerp.pooler.get_db_and_pool(dbname, update_module=config['init'] or config['update'], pooljobs=False)
db, registry = openerp.pooler.get_db_and_pool(dbname, update_module=openerp.tools.config['init'] or openerp.tools.config['update'], pooljobs=False)
# jobs will start to be processed later, when openerp.cron.start_master_thread() is called by openerp.service.start_services()
registry.schedule_cron_jobs()
@ -111,7 +110,6 @@ def run_test_file(dbname, test_file):
except Exception:
_logger.exception('Failed to initialize database `%s` and run test file `%s`.', dbname, test_file)
def export_translation():
config = openerp.tools.config
dbname = config['db_name']
@ -203,9 +201,10 @@ def quit_on_signals():
try:
while quit_signals_received == 0:
time.sleep(60)
except KeyboardInterrupt, e:
except KeyboardInterrupt:
pass
config = openerp.tools.config
if config['pidfile']:
os.unlink(config['pidfile'])
@ -218,8 +217,7 @@ def configure_babel_localedata_path():
import babel
babel.localedata._dirname = os.path.join(os.path.dirname(sys.executable), 'localedata')
if __name__ == "__main__":
def main():
os.environ["TZ"] = "UTC"
check_root_user()
@ -248,20 +246,13 @@ if __name__ == "__main__":
sys.exit(0)
if not config["stop_after_init"]:
setup_pid_file()
# Some module register themselves when they are loaded so we need the
# services to be running before loading any registry.
openerp.service.start_services()
for m in openerp.conf.server_wide_modules:
try:
openerp.modules.module.load_openerp_module(m)
except Exception:
msg = ''
if m == 'web':
msg = """
The `web` module is provided by the addons found in the `openerp-web` project.
Maybe you forgot to add those addons in your addons_path configuration."""
_logger.exception('Failed to load server-wide module `%s`.%s', m, msg)
if config['workers']:
openerp.service.start_services_workers()
else:
openerp.service.start_services()
if config['db_name']:
for dbname in config['db_name'].split(','):
@ -270,8 +261,10 @@ Maybe you forgot to add those addons in your addons_path configuration."""
if config["stop_after_init"]:
sys.exit(0)
setup_pid_file()
_logger.info('OpenERP server is running, waiting for connections...')
quit_on_signals()
if __name__ == "__main__":
main()
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

54
openerp-wsgi.py Normal file
View File

@ -0,0 +1,54 @@
#!/usr/bin/python
# WSGI Handler sample configuration file.
#
# Change the appropriate settings below, in order to provide the parameters
# that would normally be passed in the command-line.
# (at least conf['addons_path'])
#
# For generic wsgi handlers a global application is defined.
# For uwsgi this should work:
# $ uwsgi_python --http :9090 --pythonpath . --wsgi-file openerp-wsgi.py
#
# For gunicorn additional globals need to be defined in the Gunicorn section.
# Then the following command should run:
# $ gunicorn openerp:service.wsgi_server.application -c openerp-wsgi.py
import openerp
#----------------------------------------------------------
# Common
#----------------------------------------------------------
openerp.multi_process = True # Nah!
# Equivalent of --load command-line option
openerp.conf.server_wide_modules = ['web']
conf = openerp.tools.config
# Path to the OpenERP Addons repository (comma-separated for
# multiple locations)
conf['addons_path'] = '../../addons/trunk,../../web/trunk/addons'
# Optional database config if not using local socket
#conf['db_name'] = 'mycompany'
#conf['db_host'] = 'localhost'
#conf['db_user'] = 'foo'
#conf['db_port'] = 5432
#conf['db_password'] = 'secret'
#----------------------------------------------------------
# Generic WSGI handlers application
#----------------------------------------------------------
application = openerp.service.wsgi_server.application
#----------------------------------------------------------
# Gunicorn
#----------------------------------------------------------
# Standard OpenERP XML-RPC port is 8069
bind = '127.0.0.1:8069'
pidfile = '.gunicorn.pid'
workers = 4
timeout = 240
max_requests = 2000
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

View File

@ -38,11 +38,19 @@ import run_tests
import service
import sql_db
import test
import tiny_socket
import tools
import wizard
import workflow
import wsgi
# backward compatilbility
# TODO: This is for the web addons, can be removed later.
wsgi = service
wsgi.register_wsgi_handler = wsgi.wsgi_server.register_wsgi_handler
# Is the server running in multi-process mode (e.g. behind Gunicorn).
# If this is True, the processes have to communicate some events,
# e.g. database update or cache invalidation. Each process has also
# its own copy of the data structure and we don't need to care about
# locks between threads.
multi_process = False
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

View File

@ -36,7 +36,7 @@ The kernel of OpenERP, needed for all installation.
'data': [
'base_data.xml',
'currency_data.xml',
'country_data.xml',
'res/res_country_data.xml',
'security/base_security.xml',
'base_menu.xml',
'res/res_security.xml',
@ -98,7 +98,6 @@ The kernel of OpenERP, needed for all installation.
],
'installable': True,
'auto_install': True,
'certificate': '0076807797149',
'css': ['static/src/css/modules.css'],
}
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

View File

@ -294,7 +294,6 @@ CREATE TABLE ir_module_module (
shortdesc character varying(256),
complexity character varying(32),
category_id integer REFERENCES ir_module_category ON DELETE SET NULL,
certificate character varying(64),
description text,
application boolean default False,
demo boolean default False,

File diff suppressed because it is too large Load Diff

View File

@ -14,5 +14,12 @@
<field name="company_id" ref="main_company"/>
<field name="groups_id" eval="[(6,0,[ref('base.group_user')])]"/>
</record>
<!-- new rate for demo transactions in multi currency -->
<record id="rateUSDbis" model="res.currency.rate">
<field name="rate">1.5289</field>
<field name="currency_id" ref="USD"/>
<field eval="time.strftime('%Y-06-06')" name="name"/>
</record>
</data>
</openerp>

View File

@ -29,5 +29,17 @@
<menuitem id="menu_ir_property" name="Parameters" parent="menu_custom" sequence="24"/>
<menuitem id="next_id_4" name="Low Level Objects" parent="menu_custom" sequence="30"/>
<record id="action_client_base_menu" model="ir.actions.client">
<field name="name">Open Settings Menu</field>
<field name="tag">reload</field>
<field name="params" eval="{'menu_id': ref('base.menu_administration')}"/>
</record>
<record id="open_menu" model="ir.actions.todo">
<field name="action_id" ref="action_client_base_menu"/>
<field name="type">automatic</field>
<field name="sequence">100</field>
<field name="state">done</field>
</record>
</data>
</openerp>

View File

@ -8,6 +8,7 @@
<field name="symbol">$</field>
<field name="rounding">0.01</field>
<field name="accuracy">4</field>
<field name="position">before</field>
<field name="company_id" ref="main_company"/>
</record>
<record id="rateUSD" model="res.currency.rate">

View File

@ -14,8 +14,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-09-05 04:37+0000\n"
"X-Generator: Launchpad (build 15901)\n"
"X-Launchpad-Export-Date: 2012-09-20 04:35+0000\n"
"X-Generator: Launchpad (build 15985)\n"
#. module: base
#: model:res.country,name:base.sh

View File

@ -14,8 +14,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-09-05 04:38+0000\n"
"X-Generator: Launchpad (build 15901)\n"
"X-Launchpad-Export-Date: 2012-09-20 04:35+0000\n"
"X-Generator: Launchpad (build 15985)\n"
#. module: base
#: model:res.country,name:base.sh

View File

@ -14,8 +14,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-09-05 04:38+0000\n"
"X-Generator: Launchpad (build 15901)\n"
"X-Launchpad-Export-Date: 2012-09-20 04:35+0000\n"
"X-Generator: Launchpad (build 15985)\n"
#. module: base
#: model:res.country,name:base.sh

View File

@ -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-09-05 04:38+0000\n"
"X-Generator: Launchpad (build 15901)\n"
"X-Launchpad-Export-Date: 2012-09-20 04:35+0000\n"
"X-Generator: Launchpad (build 15985)\n"
#. module: base
#: model:res.country,name:base.sh

View File

@ -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
@ -1317,11 +1317,6 @@ msgstr ""
msgid "Create _Menu"
msgstr ""
#. module: base
#: field:res.payterm,name:0
msgid "Payment Term (short name)"
msgstr ""
#. module: base
#: model:ir.model,name:base.model_res_bank
#: view:res.bank:0
@ -2155,7 +2150,7 @@ msgstr ""
#. module: base
#: selection:base.language.install,lang:0
msgid "Portugese (BR) / Português (BR)"
msgid "Portuguese (BR) / Português (BR)"
msgstr ""
#. module: base
@ -3002,7 +2997,7 @@ msgstr ""
#. module: base
#: selection:base.language.install,lang:0
msgid "Portugese / Português"
msgid "Portuguese / Português"
msgstr ""
#. module: base
@ -3206,11 +3201,6 @@ msgstr ""
msgid "Error ! You cannot create recursive associated members."
msgstr ""
#. module: base
#: view:res.payterm:0
msgid "Payment Term"
msgstr ""
#. module: base
#: selection:res.lang,direction:0
msgid "Right-to-Left"
@ -3430,7 +3420,7 @@ msgstr ""
#. module: base
#: model:res.partner.title,shortcut:base.res_partner_title_sir
msgid "M."
msgid "Sir"
msgstr ""
#. module: base
@ -5037,7 +5027,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 ""
@ -10134,7 +10124,7 @@ msgstr ""
#. module: base
#: model:res.partner.title,shortcut:base.res_partner_title_miss
msgid "Mss"
msgid "Miss"
msgstr ""
#. module: base
@ -10249,7 +10239,7 @@ msgstr ""
#. module: base
#: model:res.partner.title,shortcut:base.res_partner_title_madam
msgid "Ms."
msgid "Mrs."
msgstr ""
#. module: base
@ -11306,6 +11296,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"

View File

@ -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-09-05 04:39+0000\n"
"X-Generator: Launchpad (build 15901)\n"
"X-Launchpad-Export-Date: 2012-09-20 04:36+0000\n"
"X-Generator: Launchpad (build 15985)\n"
#. module: base
#: model:res.country,name:base.sh

View File

@ -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-09-05 04:38+0000\n"
"X-Generator: Launchpad (build 15901)\n"
"X-Launchpad-Export-Date: 2012-09-20 04:36+0000\n"
"X-Generator: Launchpad (build 15985)\n"
#. module: base
#: model:res.country,name:base.sh

View File

@ -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-09-05 04:39+0000\n"
"X-Generator: Launchpad (build 15901)\n"
"X-Launchpad-Export-Date: 2012-09-20 04:36+0000\n"
"X-Generator: Launchpad (build 15985)\n"
#. module: base
#: model:res.country,name:base.sh

View File

@ -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-09-05 04:39+0000\n"
"X-Generator: Launchpad (build 15901)\n"
"X-Launchpad-Export-Date: 2012-09-20 04:36+0000\n"
"X-Generator: Launchpad (build 15985)\n"
"X-Poedit-Language: Czech\n"
#. module: base

View File

@ -14,8 +14,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-09-05 04:39+0000\n"
"X-Generator: Launchpad (build 15901)\n"
"X-Launchpad-Export-Date: 2012-09-20 04:36+0000\n"
"X-Generator: Launchpad (build 15985)\n"
#. module: base
#: model:res.country,name:base.sh

View File

@ -14,8 +14,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-09-05 04:40+0000\n"
"X-Generator: Launchpad (build 15901)\n"
"X-Launchpad-Export-Date: 2012-09-20 04:37+0000\n"
"X-Generator: Launchpad (build 15985)\n"
#. module: base
#: model:res.country,name:base.sh
@ -7492,7 +7492,7 @@ msgstr "Arbeitstage"
#. module: base
#: model:ir.module.module,shortdesc:base.module_multi_company
msgid "Multi-Company"
msgstr ""
msgstr "Mehrfach-Unternehmen"
#. module: base
#: field:ir.actions.report.xml,report_rml_content:0
@ -8331,6 +8331,21 @@ msgid ""
"Secondly, price differences between actual purchase price and fixed product "
"standard price are booked on a separate account"
msgstr ""
"\n"
"Dieses Modul unterstützt die Angelsächsische Buchungsmethodik durch Änderung "
"der Buchungslogik bei Lagerbewegungen.\n"
"============================================================================="
"=========================\n"
"\n"
"Der Unterschied zwischen Angelsächsischer und der \"Rheinischen\" (auch "
"kontinentale genannt) Buchungsmethoden liegt im Bewertungsansatz. "
"Angelsächsisch werden die Kosten im Moment des Verkaufs, Kontinental werden "
"die Kosten bis zum Versand herangezogen. Dieses Modul fügt diese "
"Funktionalität durch Hinzufügen eines Interimskontos ein, in dem der Wert "
"der ausgelieferten Ware gegengebucht wird, wenn die Rechnung erstellt wird "
"und der Gegenwert auf das Debtoren- bzw. Kreditorenkonto wertgestellt wird.\n"
"Zweitens werden Preisunterschiede zwischen aktuellen Einkaufspreis und dem "
"vorgegebenen Einstandspreis auf einem separaten Konto verbucht."
#. module: base
#: field:res.partner,title:0
@ -8689,6 +8704,95 @@ msgid ""
"from Gate A\n"
" "
msgstr ""
"\n"
"Dieses Modul ergänzt das Lager-Verwaltungs-Modul durch Umsetzung Push- und "
"Pull-Warenflüsse.\n"
"============================================================================="
"=====\n"
"\n"
"Typischerweise kann dies verwendet werden für:\n"
"* Verwaltung von Produkt-Fertigungs-Flüssen\n"
"* Verwaltung von Standard-Lagerorten je Produkt\n"
"* Waren-Routing innerhalb der Lager an betriebliche Erfordernisse anpassen, "
"wie z. B.\n"
" - Qualitätskontrollen\n"
" - \"After Sales\" Dienstleistungen\n"
" - Retouren an Lieferanten\n"
"\n"
"* Unterstützen von Vermietungsverwaltung, durch Erzeugen von automatischen "
"Retouren für Mietobjekte\n"
"\n"
"Nach der Installation dieses Moduls erscheint ein zusätzlicher Reiter im "
"Produkt-Formular, in dem Sie Push-/Pull-Flüsse festlegen können. Die "
"Demodaten des Produktes CPU1 zeigen dies:\n"
"\n"
"Push-Flüsse\n"
"----------\n"
"Push-Flüsse sind sinnvoll, wenn der Warenzugang immer eine entsprechende "
"Warenbewegung \n"
"an einen anderen Ort, ggf. mit Zeitverzögerung, zur Folge haben soll. Die "
"ursprüngliche\n"
"Lagerverwaltung sieht bereits Push-Flüsse per Lagerort vor, diese können "
"jedoch nicht per\n"
"Produkt detailliert werden.\n"
"\n"
"Ein Push-Fluss wird durch die Festlegung der Verkettung der Lagerorte und "
"der jeweiligen \n"
"Parameter. Sobald eine vorgegebene Anzahl Produkte am Quellort bewegt "
"wurden, wird eine \n"
"verkettete Bewegung gemäß der Fluss-Parameter (Zielort, Verzögerung, "
"Bewegungsart, \n"
"Berichtsinhalt, ...) vorgesehen. Die neue Lagerbewegung kann, je nach "
"Angaben, automatisch\n"
"geschehen oder aber manuell bestätigt und angestossen werden.\n"
"\n"
"Pull-Flüsse\n"
"----------\n"
"Pull-Flüsse sind ein wenig anders als Push-Flüsse, in dem sie nicht so sehr "
"in Bezug stehen \n"
"zu Lagerbewegungen, sondern vielmehr aus Bedarfen abgeleitet werden.\n"
"Was \"bezogen\" wird erzeugt einen Bedarf, nicht notwendigerweise ein "
"Produkt.\n"
"Ein klassisches Beispiel für einen Pull-Fluss ist ein Unternehmen mit "
"Verkaufsfilialen (Outlets).\n"
"Das Mutterhaus ist für die Belieferung der Filialen zuständig.\n"
"\n"
"[Kunde] <- A [Filiale A] <- B [Holding] <~ C [Lieferant]\n"
"\n"
"Wenn ein Beschaffungsauftrag in der Filiale A (z. B. durch einen "
"Verkauf/Auftrag) eintrifft, wird\n"
"daraus ein weiterer Beschaffungsauftrag erstellt, welcher an \"Holding B\" "
"eine Anforderung\n"
"bewirkt (Bezugsanforderung). Hier wird lediglich ein Lagertransfer von der "
"Holding B nach \n"
"Filiale A angestossen.\n"
"Wenn die Bedarfsanforderung der Filiale in der Holding bearbeitet wird und, "
"sollte der\n"
"Bestand in der Holding ausverkauft sein, so kann daraus ein "
"Beschaffungsauftrag an den\n"
"Lieferanten C erstellt werden (Pull/Bezug).\n"
"Im Ergebnis wird der Bezug des Kunden in der Filiale Bedarfsanforderungen "
"bis hin zum \n"
"Lieferanten bewirken.\n"
"\n"
"Technisch erlaubt ein Pull-Fluss eine andere Behandlung von Beschaffungen in "
"Abhängigkeit\n"
"nicht nur des betrachteten Produktes selbst, sondern auch vom Ort an dem der "
"Bedarf\n"
"auftritt bzw. dessen Ziel.\n"
"\n"
"Anwendungsfall:\n"
"--------\n"
"\n"
"Sie können die Demonstrationsdaten folgendemassen verwenden:\n"
"CPU1: Eine CPU1 im Shop 1 verkaufen und die Terminierung laufen lassen\n"
"- Lager: Lieferschein, Shop 1: Wareneingang\n"
"CPU3:\n"
"- Bei Erhalt des Produktes wird dies der Qualitätskontrolle zugeführt, "
"danach im Regal 2 abgelegt.\n"
"- Bei Lieferung an den Kunden: Warenentnahmeschein -> Packliste -> "
"Lieferschein von Tor A\n"
" "
#. module: base
#: model:ir.module.module,description:base.module_marketing
@ -8880,6 +8984,21 @@ msgid ""
"invoice and send propositions for membership renewal.\n"
" "
msgstr ""
"\n"
"Dieses Modul ermöglicht die Mitglieder-Verwaltung.\n"
"==============================================\n"
"\n"
"Es werden verschiedene Arten von Mitgliedern unterstützt:\n"
"* Beitragsfreie Mitglieder\n"
"* Gruppenmitglieder (z. B. Teilnehmer-Gruppen zur Mitgliedschaft aller "
"Gruppenmitglieder)\n"
"* Beitragspflichtige Mitglieder\n"
"* Sonderpreise für bestimmte Mitglieder\n"
"\n"
"Integriert wird dieses Modul in das Verkaufsmodul und die Buchhaltung und "
"erlaubt automatische\n"
"Rechnungsstellung und das Versenden von Mitgliedschaftsverlängerungen.\n"
" "
#. module: base
#: model:ir.module.module,description:base.module_hr_attendance
@ -8892,6 +9011,13 @@ msgid ""
"actions(Sign in/Sign out) performed by them.\n"
" "
msgstr ""
"\n"
"Dieses Modul verwaltet die Anwesenheitszeiten von Mitarbeitern.\n"
"=========================================================\n"
"\n"
"Führt Konten über die Anwesenheiten der Mitarbeiter aus Basis von Aktionen \n"
"(An- und Abmeldung) durch diese.\n"
" "
#. module: base
#: field:ir.module.module,maintainer:0
@ -8961,6 +9087,21 @@ msgid ""
" * Number Padding\n"
" "
msgstr ""
"\n"
"Dieses Modul verwaltet intern verwendete Folgen-/Sequenznummern für Einträge "
"der Buchhaltung.\n"
"============================================================================="
"======\n"
"\n"
"Ermöglich Ihnen die Einstellung der geführten Buchungssequenzen.\n"
"\n"
"Sie können dabei folgende Einstellungen vornehmen:\n"
" * Präfix\n"
" * Postfix (Anhang)\n"
" * Nächste Zahl\n"
" * Inkrement / Erhöhungswert\n"
" * Ziffernanzahl / führende Nullen\n"
" "
#. module: base
#: model:res.country,name:base.to
@ -9309,7 +9450,7 @@ msgstr "Dominika"
#. module: base
#: model:ir.module.module,shortdesc:base.module_base_module_record
msgid "Record and Create Modules"
msgstr ""
msgstr "Module Aufzeichnen und Erzeugen"
#. module: base
#: model:ir.model,name:base.model_partner_sms_send
@ -9353,6 +9494,45 @@ msgid ""
" Administration / Users / Users\n"
" for example, you maybe will do it for the user 'admin'.\n"
msgstr ""
"\n"
"Dieses Modul dient der Verwaltung von Urlaub und Urlaubsanträgen.\n"
"=========================================================\n"
"\n"
"Setzt eine Pinwand für die Personalverwaltung um, welches folgen Inhalt "
"hat:\n"
" * Abwesenheiten / Urlaub\n"
"\n"
"Nehmen Sie zur Kenntnis:\n"
" - Eine Synchronisation mit internen Terminkalendern (Kundenverwaltung) "
"ist möglich: Um automatisch\n"
" ein Ereignis anzulegen, wenn ein Urlaubsantrag genehmigt wird, müssen "
"Sie den Urlaubsstatus mit\n"
" mit einer Ereigniskategorie verknüpfen. Diese Information und Ihre "
"Farbwahl treffen Sie in:\n"
" Personal->Konfiguration->Abwesenheiten->Abwesenheitsarten\n"
" - Ein Mitarbeiter kann eine Anfrage nach mehr freien Tagen, abhängig von "
"der Abwesenheitsart, stellen.\n"
" Die Gesamtzahl der Abwesenheitstage wird entsprechend erhöht, wenn der "
"Antrag gewährt wird.\n"
" - Es gibt zwei Wege die Abwesenheiten eines Mitarbeiters zu drucken:\n"
" * Mitarbeiter können nach Abteilungen ausgewählt werden, bei Auswahl "
"im Menü:\n"
" Personal->Berichtswesen->Urlaubstage->Urlaube nach Abteilung\n"
" * Mitarbeiterspezifisch kann eine Übersicht zur Urlaubsnahme und "
"Abwesenheiten erstellt werden:\n"
" Personal->Personal->Mitarbeiter\n"
" dort wählen Sie die Mitarbeiter aus, die Sie interessieren. "
"Anschließend wählen Sie den \n"
" Bericht \"Mitarbieter Urlaub\"\n"
" - Der Assistent \"Mitarbieter Urlaub\" erlaubt Ihnen die Auswahl der "
"Urlaube nach Status \"bestätigt\" \n"
" oder \"bestätigt und genehmigt\". Dieser Status muss durch einen "
"Mitarbeiter der Zuständigkeitsgruppe\n"
" Peronalverwaltung vorgenommen werden. Diese Einstellungen nehmen Sie "
"im Menü:\n"
" Einstellungen -> Benutzer -> Benutzer (Zugriffsrechte)\n"
" vor. Als Benutzer \"admin\" können Sie diese Eintragungen "
"beispielsweise auf jeden Fall vornehmen.\n"
#. module: base
#: field:ir.actions.report.xml,report_xsl:0
@ -9372,7 +9552,7 @@ msgstr "Erweiterte Lieferketten"
#. module: base
#: model:ir.module.module,shortdesc:base.module_pad
msgid "Collaborative Pads"
msgstr ""
msgstr "Plattform für Zusammenarbeit"
#. module: base
#: model:ir.module.module,shortdesc:base.module_account_anglo_saxon
@ -9786,6 +9966,30 @@ msgid ""
"created\n"
" CALENDAR_NAME: Name of calendar to access\n"
msgstr ""
"\n"
"Dieses Modul fügt die Funktionalität eines CalDAV-System hinzu.\n"
"========================================================\n"
"\n"
" - WebDAV-Server liefert den Zugang zu Kalendern\n"
" - Synchronisation von Kalendern mittels WebDAV\n"
" - Ereignis-Kategorien und Aufgaben-Attribute des Kalenders anpassen\n"
" - Liefert iCal -import und -export-Funktionalität\n"
"\n"
"Um auf Kalender mittels CalDAV-Anwendungen zuzugreifen, tragen Sie folgende "
"Adresse ein:\n"
" http://HOST:PORT/webdav/DATENBANK/calendars/users/BENUTZER/c\n"
"\n"
"Für den Zugriff auf den OpenERP-Kalender mittels WebCal von entferntem Ort, "
"benutzen Sie eine URL wie:\n"
" http://HOST:PORT/webdav/DATENBANK/Calendars/KALENDER_NAME.ics\n"
"\n"
"Wobei \n"
"- HOST Die Adresse des Servers auf dem WebDAV läuft\n"
"- PORT: TCP-Port des OpenERP-Server, Standardmässig 8069\n"
"- DATENBANK: Name der Datenbank, in der der OpenERP-Kalender erstellt ist "
"(und die gerade \n"
" von OpenERP im Einsatz ist!)\n"
"- KALENDER_NAME Name des zu verwendenden Kalenders\n"
#. module: base
#: field:ir.model.fields,selectable:0
@ -9821,6 +10025,15 @@ msgid ""
"mail into mail.message with attachments.\n"
" "
msgstr ""
"\n"
"Dieses Modul stellt ein Outlook-Plugin zur Verfügung.\n"
"=============================================\n"
"\n"
"Das Outlook-Plugin erlaubt Ihnen die Auswahl eines Objektes, dem Sie Ihre\n"
"E-Mail oder Anhänge hinzufügen möchten. Sie können einen Partner, eine\n"
"Aufgabe ein Projekt, eine Kostenstelle/Kostenart oder ein anderes Objekt \n"
"auswählen, dem Sie Mail oder Anhänge hinzufügen möchten.\n"
" "
#. module: base
#: view:ir.attachment:0

View File

@ -12,8 +12,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-09-05 04:40+0000\n"
"X-Generator: Launchpad (build 15901)\n"
"X-Launchpad-Export-Date: 2012-09-20 04:37+0000\n"
"X-Generator: Launchpad (build 15985)\n"
"X-Poedit-Country: GREECE\n"
"X-Poedit-Language: Greek\n"
"X-Poedit-SourceCharset: utf-8\n"

View File

@ -14,8 +14,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-09-05 04:45+0000\n"
"X-Generator: Launchpad (build 15901)\n"
"X-Launchpad-Export-Date: 2012-09-20 04:42+0000\n"
"X-Generator: Launchpad (build 15985)\n"
#. module: base
#: model:res.country,name:base.sh
@ -5024,7 +5024,7 @@ msgstr "`code` must be unique."
#. module: base
#: model:ir.module.module,shortdesc:base.module_hr_expense
msgid "Expenses Management"
msgstr ""
msgstr "Expenses Management"
#. module: base
#: view:workflow.activity:0
@ -5035,7 +5035,7 @@ msgstr "Incoming Transitions"
#. module: base
#: field:ir.values,value_unpickle:0
msgid "Default value or action reference"
msgstr ""
msgstr "Default value or action reference"
#. module: base
#: model:res.country,name:base.sr
@ -5045,7 +5045,7 @@ msgstr "Suriname"
#. module: base
#: model:ir.module.module,shortdesc:base.module_project_timesheet
msgid "Bill Time on Tasks"
msgstr ""
msgstr "Bill Time on Tasks"
#. module: base
#: model:ir.module.category,name:base.module_category_marketing
@ -5062,7 +5062,7 @@ msgstr "Bank account"
#. module: base
#: model:ir.module.module,shortdesc:base.module_l10n_gr
msgid "Greece - Accounting"
msgstr ""
msgstr "Greece - Accounting"
#. module: base
#: selection:base.language.install,lang:0

View File

@ -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-09-05 04:43+0000\n"
"X-Generator: Launchpad (build 15901)\n"
"X-Launchpad-Export-Date: 2012-09-20 04:41+0000\n"
"X-Generator: Launchpad (build 15985)\n"
#. module: base
#: model:res.country,name:base.sh

View File

@ -14,8 +14,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-09-05 04:45+0000\n"
"X-Generator: Launchpad (build 15901)\n"
"X-Launchpad-Export-Date: 2012-09-20 04:42+0000\n"
"X-Generator: Launchpad (build 15985)\n"
#. module: base
#: model:res.country,name:base.sh

View File

@ -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-09-05 04:45+0000\n"
"X-Generator: Launchpad (build 15901)\n"
"X-Launchpad-Export-Date: 2012-09-20 04:42+0000\n"
"X-Generator: Launchpad (build 15985)\n"
#. module: base
#: model:res.country,name:base.sh

View File

@ -14,8 +14,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-09-05 04:45+0000\n"
"X-Generator: Launchpad (build 15901)\n"
"X-Launchpad-Export-Date: 2012-09-20 04:43+0000\n"
"X-Generator: Launchpad (build 15985)\n"
"Language: \n"
#. module: base

View File

@ -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-09-05 04:46+0000\n"
"X-Generator: Launchpad (build 15901)\n"
"X-Launchpad-Export-Date: 2012-09-20 04:43+0000\n"
"X-Generator: Launchpad (build 15985)\n"
#. module: base
#: model:res.country,name:base.sh
@ -1229,6 +1229,23 @@ msgid ""
"At the end of the month, the planning manager can also check if the encoded "
"timesheets are respecting the planned time on each analytic account.\n"
msgstr ""
"Realizar un seguimiento de su planificación\n"
"Este módulo le ayuda a gestionar sus planificaciones.\n"
"===============================================\n"
"\n"
"Este módulo es la base de la contabilidad analítica y está totalmente "
"integrado con\n"
"* Hojas de servicio\n"
"* Gestión de ausencias\n"
"* Gestión de proyectos\n"
"\n"
"Así, cada director de departamento puede saber si alguien en su equipo aún "
"tiene tiempo asignado para una planificación determinada (teniendo en cuenta "
"las hojas de validación) o si todavía necesita codificar tareas.\n"
"\n"
"Al final del mes, el encargado de la planificación también puede comprobar "
"si la tabla de tiempos codificados están respetando los plazos previstos en "
"cada cuenta analítica.\n"
#. module: base
#: selection:ir.property,type:0
@ -1496,6 +1513,26 @@ msgid ""
"database,\n"
" but in the servers rootpad like /server/bin/filestore.\n"
msgstr ""
"\n"
"Este es un sistema de gestión documental completo.\n"
"==============================================\n"
"\n"
" * Autenticación de usuarios\n"
" * Indexación de documentos: -.. Pptx y docx no son compatibles con la "
"plataforma Windows.\n"
" * El tablero de documentos que incluye:\n"
" * Nuevos archivos (lista)\n"
" * Los archivos por tipo de recurso (gráfico)\n"
" * Los archivos por empresa (gráfico)\n"
" * Tamaño de archivos por mes (gráfico)\n"
"\n"
"ATENCIÓN:\n"
" - Al instalar este módulo en una compañía en funcionamiento que que "
"tienen ya PDF almacenados en la base de datos, \n"
" los pierde todos.\n"
" - Después de instalar este módulo los PDF ya no se almacenan en la base "
"de datos,\n"
" si no en los servidores rootpad como / server / bin / filestore.\n"
#. module: base
#: view:res.lang:0
@ -1564,6 +1601,15 @@ msgid ""
"Web.\n"
" "
msgstr ""
"\n"
"Este es el módulo test que permite mostrar etiquetas HTML en vistas de "
"formulario en XML.\n"
"============================================================================="
"\n"
"\n"
"Crea una vista de formulario ejemplo utilizando etiquetas HTML. Esto es "
"visible solo en el cliente Web.\n"
" "
#. module: base
#: model:ir.module.category,description:base.module_category_purchase_management
@ -1776,6 +1822,24 @@ msgid ""
"\n"
" "
msgstr ""
"\n"
"Este módulo agrega herramientas para compartir genéricas a su base de datos "
"de OpenERP.\n"
"========================================================================\n"
"\n"
"Específicamente agrega un botón 'compartir' disponible en el cliente Web "
"para\n"
"compartir cualquier tipo de datos OpenERP con colegas, clientes, amigos, "
"etc.\n"
"\n"
"El sistema funciona creando nuevos usuarios y grupos sobre la marcha, y\n"
"combinando los derechos de acceso adecuados y reglas para asegurar que los\n"
"usuarios compartidos sólo tienen acceso a los datos compartidos con ellos.\n"
"\n"
"Esto es muy útil para el trabajo colaborativo, compartir conocimientos,\n"
"sincronización con otras empresas, etc\n"
"\n"
" "
#. module: base
#: field:res.currency,accuracy:0
@ -1856,6 +1920,49 @@ msgid ""
"\n"
" "
msgstr ""
"\n"
"Validación de IVA para números IVA de las empresas\n"
"========================================\n"
"\n"
"Después de instalar este módulo, los valores ingresados en el campo IVA de "
"Empresas\n"
"serán validados para todos los países soportados. El país se infiere del "
"código\n"
"de país de 2 letras que es prefijo del número IVA, por ejemplo "
"\"BE0477472701\"\n"
"se validará usando las reglas belgas.\n"
"\n"
"Hay dos niveles diferentes de validación de números IVA:\n"
"\n"
" * Por defecto, se ejecuta una validación simple fuera de línea usando las "
"reglas de\n"
" validación conocidas para el país, usualmente un simple control de "
"dígitos. Esto es \n"
" rápido y está siempre disponible, pero permite números que quizá no "
"están\n"
" verdaderamente asignados, o que ya no son válidos.\n"
" * Cuando la opción \"Verificación VAT VIES\" está activada (en la "
"configuración de la\n"
" compañía del usuario), los números IVA se enviarán a la base de datos en "
"línea\n"
" VIES de la UE, que verificará realmente si el número es válido y está "
"asignado\n"
" actualmente a una empresa de la UE. Esto es un poco mas lento que la "
"validación\n"
" simple fuera de línea, requiere una conexión a Internet, y podría no "
"estar disponible\n"
" todo el tiempo. Si el servicio no está disponible o no es compatible con "
"el país\n"
" requerido (por ejemplo, para países no comunitarios), se ejecutará en su "
"lugar una\n"
" validación simple.\n"
"\n"
"Los países soportados actualmente son los países de la UE, y algunos países "
"no\n"
"comunitarios como Chile, Colombia, México, Noruega o Rusia. Para países no\n"
"soportados, solo se validará el código de país.\n"
"\n"
" "
#. module: base
#: view:ir.sequence:0

View File

@ -14,8 +14,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-09-08 04:54+0000\n"
"X-Generator: Launchpad (build 15914)\n"
"X-Launchpad-Export-Date: 2012-09-20 04:43+0000\n"
"X-Generator: Launchpad (build 15985)\n"
#. module: base
#: model:res.country,name:base.sh

View File

@ -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-09-05 04:39+0000\n"
"X-Generator: Launchpad (build 15901)\n"
"X-Launchpad-Export-Date: 2012-09-20 04:37+0000\n"
"X-Generator: Launchpad (build 15985)\n"
#. module: base
#: model:res.country,name:base.sh

View File

@ -14,8 +14,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-09-05 04:38+0000\n"
"X-Generator: Launchpad (build 15901)\n"
"X-Launchpad-Export-Date: 2012-09-20 04:36+0000\n"
"X-Generator: Launchpad (build 15985)\n"
#. module: base
#: model:res.country,name:base.sh

View File

@ -9,8 +9,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-09-05 04:42+0000\n"
"X-Generator: Launchpad (build 15901)\n"
"X-Launchpad-Export-Date: 2012-09-20 04:39+0000\n"
"X-Generator: Launchpad (build 15985)\n"
"X-Poedit-Country: IRAN, ISLAMIC REPUBLIC OF\n"
"X-Poedit-Language: Persian\n"

View File

@ -14,8 +14,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-09-05 04:46+0000\n"
"X-Generator: Launchpad (build 15901)\n"
"X-Launchpad-Export-Date: 2012-09-20 04:43+0000\n"
"X-Generator: Launchpad (build 15985)\n"
#. module: base
#: model:res.country,name:base.sh

View File

@ -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-09-05 04:39+0000\n"
"X-Generator: Launchpad (build 15901)\n"
"X-Launchpad-Export-Date: 2012-09-20 04:37+0000\n"
"X-Generator: Launchpad (build 15985)\n"
#. module: base
#: model:res.country,name:base.sh

View File

@ -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-09-05 04:40+0000\n"
"X-Generator: Launchpad (build 15901)\n"
"X-Launchpad-Export-Date: 2012-09-20 04:37+0000\n"
"X-Generator: Launchpad (build 15985)\n"
#. module: base
#: model:res.country,name:base.sh

View File

@ -14,8 +14,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-09-05 04:40+0000\n"
"X-Generator: Launchpad (build 15901)\n"
"X-Launchpad-Export-Date: 2012-09-20 04:37+0000\n"
"X-Generator: Launchpad (build 15985)\n"
#. module: base
#: model:res.country,name:base.sh

View File

@ -14,8 +14,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-09-05 04:40+0000\n"
"X-Generator: Launchpad (build 15901)\n"
"X-Launchpad-Export-Date: 2012-09-20 04:38+0000\n"
"X-Generator: Launchpad (build 15985)\n"
#. module: base
#: model:res.country,name:base.sh

View File

@ -14,8 +14,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-09-05 04:40+0000\n"
"X-Generator: Launchpad (build 15901)\n"
"X-Launchpad-Export-Date: 2012-09-20 04:38+0000\n"
"X-Generator: Launchpad (build 15985)\n"
#. module: base
#: model:res.country,name:base.sh

View File

@ -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-09-05 04:43+0000\n"
"X-Generator: Launchpad (build 15901)\n"
"X-Launchpad-Export-Date: 2012-09-20 04:40+0000\n"
"X-Generator: Launchpad (build 15985)\n"
"Language: hr\n"
#. module: base

View File

@ -14,8 +14,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-09-05 04:41+0000\n"
"X-Generator: Launchpad (build 15901)\n"
"X-Launchpad-Export-Date: 2012-09-20 04:38+0000\n"
"X-Generator: Launchpad (build 15985)\n"
#. module: base
#: model:res.country,name:base.sh
@ -1821,7 +1821,7 @@ msgstr ""
#. module: base
#: model:ir.module.module,shortdesc:base.module_hr_evaluation
msgid "Employee Appraisals"
msgstr ""
msgstr "Munkavállaló értékelése"
#. module: base
#: selection:ir.actions.server,state:0
@ -3141,7 +3141,7 @@ msgstr ""
#. module: base
#: model:ir.module.module,shortdesc:base.module_hr_contract
msgid "Employee Contracts"
msgstr ""
msgstr "Munkavállalói szerződések"
#. module: base
#: model:ir.module.module,description:base.module_wiki_faq
@ -6487,7 +6487,7 @@ msgstr "Automatikus frissítést ad a nézethez."
#. module: base
#: help:res.partner,employee:0
msgid "Check this box if the partner is an Employee."
msgstr "Jelölje be, ha a partner egy alkalmazott."
msgstr "Jelölje be, ha a partner egy alkalmazott"
#. module: base
#: model:ir.module.module,shortdesc:base.module_crm_profiling
@ -15321,7 +15321,7 @@ msgstr "Wrong ID for the browse record, got %r, expected an integer."
#: field:res.partner.address,function:0
#: selection:workflow.activity,kind:0
msgid "Function"
msgstr "Függvény"
msgstr "Beosztás"
#. module: base
#: view:res.widget:0

View File

@ -14,8 +14,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-09-05 04:38+0000\n"
"X-Generator: Launchpad (build 15901)\n"
"X-Launchpad-Export-Date: 2012-09-20 04:35+0000\n"
"X-Generator: Launchpad (build 15985)\n"
#. module: base
#: model:res.country,name:base.sh

View File

@ -14,8 +14,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-09-05 04:41+0000\n"
"X-Generator: Launchpad (build 15901)\n"
"X-Launchpad-Export-Date: 2012-09-20 04:38+0000\n"
"X-Generator: Launchpad (build 15985)\n"
#. module: base
#: model:res.country,name:base.sh

View File

@ -14,8 +14,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-09-05 04:41+0000\n"
"X-Generator: Launchpad (build 15901)\n"
"X-Launchpad-Export-Date: 2012-09-20 04:38+0000\n"
"X-Generator: Launchpad (build 15985)\n"
#. module: base
#: model:res.country,name:base.sh

View File

@ -14,8 +14,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-09-05 04:41+0000\n"
"X-Generator: Launchpad (build 15901)\n"
"X-Launchpad-Export-Date: 2012-09-20 04:38+0000\n"
"X-Generator: Launchpad (build 15985)\n"
#. module: base
#: model:res.country,name:base.sh

View File

@ -8,14 +8,14 @@ msgstr ""
"Project-Id-Version: openobject-server\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2012-02-08 00:44+0000\n"
"PO-Revision-Date: 2012-08-20 15:37+0000\n"
"Last-Translator: OpenERP Administrators <Unknown>\n"
"PO-Revision-Date: 2012-09-20 05:23+0000\n"
"Last-Translator: Akira Hiyama <Unknown>\n"
"Language-Team: Japanese <ja@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-09-05 04:41+0000\n"
"X-Generator: Launchpad (build 15901)\n"
"X-Launchpad-Export-Date: 2012-09-21 04:41+0000\n"
"X-Generator: Launchpad (build 15985)\n"
#. module: base
#: model:res.country,name:base.sh
@ -193,7 +193,7 @@ msgstr "販売分析の配布"
#. module: base
#: model:ir.module.module,shortdesc:base.module_web_process
msgid "Process"
msgstr "プロセス"
msgstr "処理"
#. module: base
#: model:ir.module.module,shortdesc:base.module_analytic_journal_billing_rate
@ -17384,7 +17384,7 @@ msgstr ""
" ・ 各アクションが手動の検証を必要とする場合は、手動で実際のキャンペーンを開始することもできます。\n"
" ・ 最後にキャンペーンを実際に起動し、キャンペーンの全てが完全に自動的に行われるよう統計値を監視します。\n"
"\n"
"キャンペーンの実行中にも、ちろんパラメータ、入力セグメント、ワークフローなどの微調整を続ける事ができます。\n"
"キャンペーンの実行中にも、ちろんパラメータ、入力セグメント、ワークフローなどの微調整を続ける事ができます。\n"
"\n"
"注記デモデータが必要なら、marketing_campaign_crm_demoモジュールをインストールできます。それはCRMリードに依存するため、CR"
"Mアプリケーションもインストールすることになります。\n"

View File

@ -14,8 +14,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-09-05 04:40+0000\n"
"X-Generator: Launchpad (build 15901)\n"
"X-Launchpad-Export-Date: 2012-09-20 04:37+0000\n"
"X-Generator: Launchpad (build 15985)\n"
#. module: base
#: model:res.country,name:base.sh

View File

@ -14,8 +14,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-09-05 04:41+0000\n"
"X-Generator: Launchpad (build 15901)\n"
"X-Launchpad-Export-Date: 2012-09-20 04:38+0000\n"
"X-Generator: Launchpad (build 15985)\n"
#. module: base
#: model:res.country,name:base.sh

View File

@ -14,8 +14,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-09-05 04:41+0000\n"
"X-Generator: Launchpad (build 15901)\n"
"X-Launchpad-Export-Date: 2012-09-20 04:39+0000\n"
"X-Generator: Launchpad (build 15985)\n"
#. module: base
#: model:res.country,name:base.sh

View File

@ -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-09-05 04:42+0000\n"
"X-Generator: Launchpad (build 15901)\n"
"X-Launchpad-Export-Date: 2012-09-20 04:39+0000\n"
"X-Generator: Launchpad (build 15985)\n"
#. module: base
#: model:res.country,name:base.sh

View File

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

View File

@ -14,8 +14,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-09-05 04:42+0000\n"
"X-Generator: Launchpad (build 15901)\n"
"X-Launchpad-Export-Date: 2012-09-20 04:39+0000\n"
"X-Generator: Launchpad (build 15985)\n"
#. module: base
#: model:res.country,name:base.sh

View File

@ -14,8 +14,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-09-05 04:42+0000\n"
"X-Generator: Launchpad (build 15901)\n"
"X-Launchpad-Export-Date: 2012-09-20 04:39+0000\n"
"X-Generator: Launchpad (build 15985)\n"
#. module: base
#: model:res.country,name:base.sh

View File

@ -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-09-05 04:42+0000\n"
"X-Generator: Launchpad (build 15901)\n"
"X-Launchpad-Export-Date: 2012-09-20 04:39+0000\n"
"X-Generator: Launchpad (build 15985)\n"
#. module: base
#: model:res.country,name:base.sh

View File

@ -14,8 +14,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-09-05 04:42+0000\n"
"X-Generator: Launchpad (build 15901)\n"
"X-Launchpad-Export-Date: 2012-09-20 04:39+0000\n"
"X-Generator: Launchpad (build 15985)\n"
#. module: base
#: model:res.country,name:base.sh

View File

@ -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-09-05 04:39+0000\n"
"X-Generator: Launchpad (build 15901)\n"
"X-Launchpad-Export-Date: 2012-09-20 04:36+0000\n"
"X-Generator: Launchpad (build 15985)\n"
#. module: base
#: model:res.country,name:base.sh
@ -97,7 +97,7 @@ msgstr "Code (bijv: nl__NL)"
#: field:workflow.transition,wkf_id:0
#: field:workflow.workitem,wkf_id:0
msgid "Workflow"
msgstr "Werkschema"
msgstr "Workflow"
#. module: base
#: selection:ir.sequence,implementation:0
@ -363,6 +363,13 @@ msgid ""
" - tree_but_open\n"
"For defaults, an optional condition"
msgstr ""
"Voor acties, een van deze mogelijke acties:\n"
" - client_action_multi\n"
" - client_print_multi\n"
" - client_action_relate\n"
" - tree_but_open\n"
"Voor standaard waarden:\n"
" - een optionele conditie"
#. module: base
#: sql_constraint:res.lang:0
@ -572,7 +579,7 @@ msgstr ""
#. module: base
#: view:ir.values:0
msgid "Action Binding"
msgstr ""
msgstr "Actie koppeling"
#. module: base
#: model:res.country,name:base.gf
@ -2811,7 +2818,7 @@ msgstr "Overgeërfd"
#. module: base
#: field:ir.model.fields,serialization_field_id:0
msgid "Serialization Field"
msgstr ""
msgstr "Reeks veld"
#. module: base
#: model:ir.module.category,description:base.module_category_report_designer
@ -2873,7 +2880,7 @@ msgstr "Fout!"
#. module: base
#: model:ir.module.module,shortdesc:base.module_l10n_fr_rib
msgid "French RIB Bank Details"
msgstr ""
msgstr "Franse RIB bank details"
#. module: base
#: view:res.lang:0
@ -2954,7 +2961,7 @@ msgstr "Bangladesh"
#. module: base
#: model:ir.module.module,shortdesc:base.module_project_retro_planning
msgid "Project Retro-planning"
msgstr ""
msgstr "Project Retro-planning"
#. module: base
#: model:ir.module.module,shortdesc:base.module_stock_planning
@ -3005,7 +3012,7 @@ msgstr ""
#. module: base
#: field:ir.actions.client,params_store:0
msgid "Params storage"
msgstr ""
msgstr "Parameters opslag"
#. module: base
#: code:addons/base/module/module.py:409
@ -3036,6 +3043,10 @@ msgid ""
"since it's the same which has been renamed.\n"
" "
msgstr ""
"\n"
"Met deze module kunt u relaties segmenten/indelen op basis van vragen.\n"
"===========================================================\n"
" "
#. module: base
#: code:addons/report_sxw.py:434
@ -3160,7 +3171,7 @@ msgstr ""
#. module: base
#: model:ir.module.module,shortdesc:base.module_wiki_quality_manual
msgid "Wiki: Quality Manual"
msgstr ""
msgstr "Wiki: Kwaliteit handleiding"
#. module: base
#: selection:ir.actions.act_window.view,view_mode:0
@ -3274,7 +3285,7 @@ msgstr "OpenERP web-diagram weergave"
#. module: base
#: model:res.groups,name:base.group_hr_user
msgid "HR Officer"
msgstr ""
msgstr "HR Officer"
#. module: base
#: model:ir.module.module,shortdesc:base.module_hr_contract
@ -3633,7 +3644,7 @@ msgstr "Mayotte"
#. module: base
#: model:ir.module.module,shortdesc:base.module_crm_todo
msgid "Tasks on CRM"
msgstr ""
msgstr "Relatiebeheer taken"
#. module: base
#: model:ir.module.category,name:base.module_category_generic_modules_accounting
@ -4219,6 +4230,9 @@ msgid ""
"its dependencies are satisfied. If the module has no dependency, it is "
"always installed."
msgstr ""
"Een auto-installatie module wordt automatisch geïnstalleerd door het systeem "
"als aan alle afhankelijkheden zijn voldaan. Als de module geen "
"afhankelijkheden heeft, wordt de module altijd geïnstalleerd."
#. module: base
#: model:ir.actions.act_window,name:base.res_lang_act_window
@ -4605,6 +4619,20 @@ msgid ""
"above. Specify the interval information and partner to be invoice.\n"
" "
msgstr ""
"\n"
"Maak herhalende documenten (abonnementen).\n"
"=======================================\n"
"\n"
"Met deze module kunt u een nieuw document maken en een abonnement hieraan "
"koppelen.\n"
"\n"
"U kunt bijvoorbeeld een factuur automatisch periodiek laten aanmaken. Dit "
"doet u door:\n"
"* Maak een document type gebaseerd op het object factuur\n"
"* Maak een abonnement aan waarvan de bron het document is, zoals aangemaakt "
"bij stap 1.\n"
"* Specificeer het interval en de klant voor de factuur\n"
" "
#. module: base
#: field:ir.actions.server,srcmodel_id:0
@ -4826,7 +4854,7 @@ msgstr "BTW nummer validatie"
#. module: base
#: model:ir.module.module,shortdesc:base.module_crm_partner_assign
msgid "Partners Geo-Localization"
msgstr ""
msgstr "Partners Geo-Localisatie"
#. module: base
#: model:res.country,name:base.ke
@ -5334,6 +5362,13 @@ msgid ""
" those assets. And it allows to create Move's of the depreciation lines.\n"
" "
msgstr ""
"Financieel beheer van uw activa.\n"
"=========================\n"
"Met deze module beheert u, uw activa van uw bedrijf of van een individu. U "
"beheert uw afschrijvingen van \n"
"deze activa. Deze afschrijvingen worden als journaalposten verwerkt in uw "
"financiële administratie.\n"
" "
#. module: base
#: model:res.country,name:base.bv
@ -5640,6 +5675,31 @@ msgid ""
"Budgets per Budgets.\n"
"\n"
msgstr ""
"\n"
"Deze module geeft accountants de mogelijkheid om kostenplaats- en "
"overlappende budgetten te beheren.\n"
"============================================================================="
"==========\n"
"\n"
"Wanneer de hoofdbudgetten en onderliggende budgetten zijn gedefinieerd (in "
"financieel/budgetten)\n"
"kunnen de projectmanagers de geplande bedragen invoeren per kostenplaats.\n"
"\n"
"De accountant heeft de mogelijkheid om alle gebudgetteerde bedragen te zien "
"van ieder\n"
"budget en hoofdbudget, zodat het totale gebudgetteerde bedrag niet groter of "
"lager \n"
"is dan wat was gebudgetteerd. deze informatie kan ook als grafiek worden "
"bekeken.\n"
"\n"
"Er zijn drie rapportages beschikbaar:\n"
"1. Deze is beschikbaar bij de lijst van budgetten. Het geeft de spreiding "
"van deze budgetten weer over de kostenplaatsen per hoofdbudget.\n"
"2. Dit is een totaal van het eerste rapport. het geeft alleen de spreiding "
"weer voor de geselecteerde budgetten van de kostenplaatsen.\n"
"3. Dit rapport is beschikbaar bij de kostenplaats. Het geeft de spreiding "
"weer van de geselecteerde kostenplaats van het hoofdbudget, per budget.\n"
"\n"
#. module: base
#: help:res.lang,iso_code:0
@ -5968,6 +6028,8 @@ msgid ""
"How many times the method is called,\n"
"a negative number indicates no limit."
msgstr ""
"Hoeveel keer deze regel wordt aangeroepen,\n"
"een negatieve waarde geeft aan dat er geen limiet is."
#. module: base
#: field:res.partner.bank.type.field,bank_type_id:0
@ -6025,7 +6087,7 @@ msgstr "Vul aub de sleutelcode in die staat in uw contract document:"
#: view:workflow.activity:0
#: field:workflow.activity,flow_start:0
msgid "Flow Start"
msgstr "Begin werkschema"
msgstr "Begin workflow"
#. module: base
#: model:ir.model,name:base.model_res_partner_title
@ -6453,6 +6515,11 @@ msgid ""
"\n"
" "
msgstr ""
"\n"
"Met deze module kunt u aangeven welk factureerproduct moet worden gebruikt "
"als een werknemer uren boekt op het contract/kostenplaats.\n"
"\n"
" "
#. module: base
#: model:ir.module.module,shortdesc:base.module_audittrail
@ -6601,7 +6668,7 @@ msgstr "Ongelezen"
#. module: base
#: field:res.users,id:0
msgid "ID"
msgstr ""
msgstr "ID"
#. module: base
#: field:ir.cron,doall:0
@ -6676,7 +6743,7 @@ msgstr "Vink aan als de relatie een werknemer is."
#. module: base
#: model:ir.module.module,shortdesc:base.module_crm_profiling
msgid "Customer Profiling"
msgstr ""
msgstr "Klant profiling"
#. module: base
#: model:ir.module.module,shortdesc:base.module_project_issue
@ -6712,6 +6779,8 @@ msgid ""
"Please check that all your lines have %d columns.Stopped around line %d "
"having %d columns."
msgstr ""
"Controleer of al uw regels %d kolommen hebben. Gestopt bij regel %d met %d "
"kolommen."
#. module: base
#: field:base.language.export,advice:0
@ -6853,6 +6922,7 @@ msgstr "Controle"
#: help:ir.values,company_id:0
msgid "If set, action binding only applies for this company"
msgstr ""
"Indien aangevinkt is deze regel alleen van toepassing voor dit bedrijf."
#. module: base
#: model:res.country,name:base.lc
@ -6866,6 +6936,9 @@ msgid ""
"password, otherwise leave empty. After a change of password, the user has to "
"login again."
msgstr ""
"Specificeer een waarde alleen wanneer u een gebruiker aanmaakt of als u het "
"wachtwoord van de gebruiker wijzigt. Laat anders de waarde leeg. Na het "
"wijzigen van het wachtwoord, dient de gebruiker opnieuw in te loggen."
#. module: base
#: view:publisher_warranty.contract:0
@ -6915,7 +6988,7 @@ msgstr "Bewerken"
#. module: base
#: field:ir.actions.client,params:0
msgid "Supplementary arguments"
msgstr ""
msgstr "Aanvullende argumenten"
#. module: base
#: field:res.users,view:0
@ -7067,6 +7140,8 @@ msgid ""
"Action bound to this entry - helper field for binding an action, will "
"automatically set the correct reference"
msgstr ""
"Actie gekoppeld aan deze regel. Hulp veld voor het koppelen van een actie. "
"De referentie wordt automatisch correct ingevuld."
#. module: base
#: model:ir.ui.menu,name:base.menu_project_long_term
@ -7384,7 +7459,7 @@ msgstr "Lezen"
#. module: base
#: model:ir.module.module,shortdesc:base.module_association
msgid "Associations Management"
msgstr ""
msgstr "Verenigingenbeheer"
#. module: base
#: help:ir.model,modules:0
@ -7425,7 +7500,7 @@ msgstr ""
#. module: base
#: view:workflow.workitem:0
msgid "Workflow Workitems"
msgstr "Werkschema taken"
msgstr "Workflow taken"
#. module: base
#: model:res.country,name:base.vc
@ -7543,7 +7618,7 @@ msgstr "Myanmar (Birma)"
#. module: base
#: help:ir.model.fields,modules:0
msgid "List of modules in which the field is defined"
msgstr ""
msgstr "Lijst van modules waarin het veld wordt gebruikt."
#. module: base
#: selection:base.language.install,lang:0
@ -7666,6 +7741,13 @@ msgid ""
"all the tasks will change accordingly.\n"
" "
msgstr ""
"\n"
"Verander de data op basis van een verandering in de einddatum.\n"
"===================================================\n"
"\n"
"Indien de einddatun van een project is gewijzigd, dan worden de deadline "
"datum en de startdatum van alle taken ook gewijzgd.\n"
" "
#. module: base
#: help:res.users,view:0
@ -7710,7 +7792,7 @@ msgstr "Dutch / Nederlands"
#. module: base
#: selection:res.company,paper_format:0
msgid "US Letter"
msgstr ""
msgstr "US Letter"
#. module: base
#: model:ir.module.module,description:base.module_stock_location
@ -7813,6 +7895,12 @@ msgid ""
"Contains the installer for marketing-related modules.\n"
" "
msgstr ""
"\n"
"Menu voor marketing.\n"
"==================\n"
"\n"
"Bevat de installer voor marketing gerelateerde modules.\n"
" "
#. module: base
#: model:ir.module.category,name:base.module_category_knowledge_management
@ -7996,6 +8084,9 @@ msgid ""
"the same values as those available in the condition field, e.g. `Hello [[ "
"object.partner_id.name ]]`"
msgstr ""
"Het e-mail onderwerp kan expressies bevatten welke worden gekenmerkt door "
"rechte haken. De velden zijn gebaseerd op dezelfde waarden zoals beschikbaar "
"in de conditievelden. Bijv.: `Hallo [[ object.partner_id.name ]]`"
#. module: base
#: model:ir.module.module,description:base.module_account_sequence
@ -8027,11 +8118,14 @@ msgid ""
"serialization field, instead of having its own database column. This cannot "
"be changed after creation."
msgstr ""
"Indien aangevinkt wordt dit veld opgeslagen in vrije ruimte van het reeks "
"veld in plaats dat het veld een eigen database kolom heeft. Dit kan achteraf "
"niet worden veranderd!"
#. module: base
#: view:res.partner.bank:0
msgid "Bank accounts belonging to one of your companies"
msgstr ""
msgstr "Bankrekening welke behoort aan één van uw bedrijven."
#. module: base
#: help:res.users,action_id:0
@ -8058,6 +8152,8 @@ msgid ""
"The field on the current object that links to the target object record (must "
"be a many2one, or an integer field with the record ID)"
msgstr ""
"Het veld van het huidige object wat is gekoppeld aan het doel object record "
"(moet een many2one, of een integer veld zijn met het record ID)"
#. module: base
#: code:addons/base/module/module.py:423
@ -8194,6 +8290,8 @@ msgid ""
"You cannot have multiple records with the same external ID in the same "
"module!"
msgstr ""
"Het is niet toegestaan om meerdere records te hebben met dezelfde externe ID "
"in hetzelfde model."
#. module: base
#: selection:ir.property,type:0
@ -8287,6 +8385,9 @@ msgid ""
"Model to which this entry applies - helper field for setting a model, will "
"automatically set the correct model name"
msgstr ""
"Model waarover deze regel gaat. Deze zoekwaarde helpt u bij het instellen "
"van het juiste modelnaam. Na de keuze wordt de modelnaam automatisch voor u "
"ingevuld."
#. module: base
#: view:res.lang:0
@ -8419,7 +8520,7 @@ msgstr ""
#. module: base
#: model:ir.module.module,shortdesc:base.module_account_anglo_saxon
msgid "Anglo-Saxon Accounting"
msgstr ""
msgstr "Angelsaksische boekhouding"
#. module: base
#: model:res.country,name:base.np
@ -8470,7 +8571,7 @@ msgstr ""
#: model:ir.ui.menu,name:base.menu_values_form_action
#: view:ir.values:0
msgid "Action Bindings"
msgstr ""
msgstr "Actie koppeling"
#. module: base
#: view:ir.sequence:0
@ -8850,7 +8951,7 @@ msgstr "Herhaling"
#. module: base
#: model:ir.module.module,shortdesc:base.module_project_planning
msgid "Resources Planing"
msgstr ""
msgstr "Resource planing"
#. module: base
#: field:ir.module.module,complexity:0
@ -8860,7 +8961,7 @@ msgstr "Complexiteit"
#. module: base
#: selection:ir.actions.act_window,target:0
msgid "Inline"
msgstr ""
msgstr "Inline"
#. module: base
#: model:res.partner.bank.type.field,name:base.bank_normal_field_bic
@ -8967,7 +9068,7 @@ msgstr "Reparatie management"
#. module: base
#: model:ir.module.module,shortdesc:base.module_account_asset
msgid "Assets Management"
msgstr ""
msgstr "Beheer van activa"
#. module: base
#: view:ir.model.access:0
@ -9358,7 +9459,7 @@ msgstr "Referentiegids"
#. module: base
#: view:ir.values:0
msgid "Default Value Scope"
msgstr ""
msgstr "Bereik standaard waarde"
#. module: base
#: view:ir.ui.view:0
@ -9468,7 +9569,7 @@ msgstr "Aanmaakdatum"
#. module: base
#: help:ir.actions.server,trigger_name:0
msgid "The workflow signal to trigger"
msgstr ""
msgstr "Het workflow signaal om te triggeren"
#. module: base
#: model:ir.module.module,description:base.module_mrp
@ -9517,7 +9618,7 @@ msgstr ""
#. module: base
#: model:ir.module.module,description:base.module_google_base_account
msgid "The module adds google user in res user"
msgstr ""
msgstr "De module voegt een Google gebruiker toe aan het gebruikers bestand"
#. module: base
#: selection:base.language.install,state:0
@ -9554,7 +9655,7 @@ msgstr "Algerije"
#. module: base
#: model:ir.module.module,shortdesc:base.module_plugin
msgid "CRM Plugins"
msgstr ""
msgstr "Relatiebeheer plugins"
#. module: base
#: model:ir.actions.act_window,name:base.action_model_model
@ -9657,7 +9758,7 @@ msgstr ""
#. module: base
#: model:ir.module.module,shortdesc:base.module_mrp_jit
msgid "Just In Time Scheduling"
msgstr ""
msgstr "Just In Time Planning"
#. module: base
#: model:ir.module.module,shortdesc:base.module_account_bank_statement_extensions
@ -10047,7 +10148,7 @@ msgstr ""
#. module: base
#: model:ir.module.module,shortdesc:base.module_base_synchro
msgid "Multi-DB Synchronization"
msgstr ""
msgstr "Meerdere databases synchronisatie"
#. module: base
#: selection:ir.module.module,complexity:0
@ -10088,6 +10189,9 @@ msgid ""
"Todo list for CRM leads and opportunities.\n"
" "
msgstr ""
"\n"
"TODO lijst voor relatiebeheer leads en prospects.\n"
" "
#. module: base
#: field:ir.actions.act_window.view,view_id:0
@ -10100,7 +10204,7 @@ msgstr "Weergave"
#. module: base
#: model:ir.module.module,shortdesc:base.module_wiki_sale_faq
msgid "Wiki: Sale FAQ"
msgstr ""
msgstr "Wiki: Verkoop FAQ"
#. module: base
#: selection:ir.module.module,state:0
@ -10266,6 +10370,20 @@ msgid ""
"\n"
" "
msgstr ""
"\n"
"Deze module geeft u de mogelijkheid om het standaard factuurtarief te "
"definiëren per kostenplaats.\n"
"============================================================================="
"====\n"
"\n"
"Dit wordt vaak gebruikt wanneer een werknemer zijn urenstaat invult. De "
"waarden worden dan automatisch ingevuld, maar de mogelijkheid om deze aan te "
"passen blijft bestaan.\n"
"\n"
"Indien geen gegevens zijn ingevoerd voor de rekening, wordt de standaard "
"waarde van de kostenplaats gebruikt.\n"
"\n"
" "
#. module: base
#: model:ir.ui.menu,name:base.menu_fundrising
@ -10316,7 +10434,7 @@ msgstr "res.log"
#: view:workflow.activity:0
#: field:workflow.activity,flow_stop:0
msgid "Flow Stop"
msgstr "Einde werkschema"
msgstr "Einde workflow"
#. module: base
#: selection:ir.cron,interval_type:0
@ -10344,7 +10462,7 @@ msgstr "Fout !"
#. module: base
#: model:ir.module.module,shortdesc:base.module_marketing_campaign_crm_demo
msgid "Marketing Campaign - Demo"
msgstr ""
msgstr "Marketing Campagne - Demo gegevens"
#. module: base
#: model:ir.module.module,shortdesc:base.module_fetchmail_hr_recruitment
@ -10376,7 +10494,7 @@ msgstr "Deze methode bestaat niet meer"
#. module: base
#: model:ir.module.module,shortdesc:base.module_import_google
msgid "Google Import"
msgstr ""
msgstr "Google Import"
#. module: base
#: model:res.partner.category,name:base.res_partner_category_12
@ -10594,7 +10712,7 @@ msgstr ""
"Maak een claim van een uitgaande levering.\n"
"===================================\n"
"\n"
"Voegt claim link toe aan een uitgaande order.\n"
"Voegt claim link toe aan een uitgaande levering.\n"
#. module: base
#: view:ir.model:0
@ -10632,6 +10750,7 @@ msgstr "%A - Volledige naam van de dag."
#: help:ir.values,user_id:0
msgid "If set, action binding only applies for this user."
msgstr ""
"Indien aangevinkt is deze regel alleen van toepassing voor deze gebruiker."
#. module: base
#: model:res.country,name:base.gw
@ -10699,6 +10818,8 @@ msgstr "Voltooid"
msgid ""
"Specify if missed occurrences should be executed when the server restarts."
msgstr ""
"Specificeert of gemiste acties, opnieuw moeten worden gestart als de server "
"herstart."
#. module: base
#: model:res.partner.title,name:base.res_partner_title_miss
@ -11367,7 +11488,7 @@ msgstr "Alles stoppen"
#. module: base
#: model:ir.module.module,shortdesc:base.module_analytic_user_function
msgid "Jobs on Contracts"
msgstr ""
msgstr "Werknemerfunctie per contract/kostenplaats"
#. module: base
#: model:ir.module.module,description:base.module_import_sugarcrm
@ -11472,7 +11593,7 @@ msgstr "Contract bevestiging fout"
#. module: base
#: field:ir.values,key2:0
msgid "Qualifier"
msgstr ""
msgstr "Kwalificatie"
#. module: base
#: field:res.country.state,name:0
@ -11717,7 +11838,7 @@ msgstr "ir.wizard.screen"
#. module: base
#: model:ir.model,name:base.model_workflow
msgid "workflow"
msgstr "Werkschema"
msgstr "workflow"
#. module: base
#: code:addons/base/ir/ir_model.py:255
@ -11949,7 +12070,7 @@ msgstr "Tunesië"
#. module: base
#: view:ir.actions.todo:0
msgid "Wizards to be Launched"
msgstr ""
msgstr "Wizards welke worden gestart"
#. module: base
#: model:ir.module.category,name:base.module_category_manufacturing
@ -12083,7 +12204,7 @@ msgstr ""
#. module: base
#: field:res.groups,trans_implied_ids:0
msgid "Transitively inherits"
msgstr ""
msgstr "Transitieve overerving"
#. module: base
#: field:ir.default,ref_table:0
@ -12293,7 +12414,7 @@ msgstr "Guatemala - Boekhouding"
#. module: base
#: help:ir.cron,args:0
msgid "Arguments to be passed to the method, e.g. (uid,)."
msgstr ""
msgstr "Argumenten welke worden doorgegeven aan de methodes, bijv. (uid)."
#. module: base
#: model:res.partner.category,name:base.res_partner_category_5
@ -12704,7 +12825,7 @@ msgstr "ir.actions.client"
#. module: base
#: help:ir.values,value:0
msgid "Default value (pickled) or reference to an action"
msgstr ""
msgstr "Standaardwaarde of verwijzing naar een actie"
#. module: base
#: sql_constraint:res.groups:0
@ -12763,7 +12884,7 @@ msgstr ""
#. module: base
#: view:ir.rule:0
msgid "Rule definition (domain filter)"
msgstr ""
msgstr "Regel definitie (domein filter)"
#. module: base
#: model:ir.model,name:base.model_workflow_instance
@ -12862,7 +12983,7 @@ msgstr "Low Level-objecten"
#. module: base
#: help:ir.values,model:0
msgid "Model to which this entry applies"
msgstr ""
msgstr "Model waarover deze regel gaat."
#. module: base
#: field:res.country,address_format:0
@ -13012,6 +13133,9 @@ msgid ""
" OpenERP Web kanban view.\n"
" "
msgstr ""
"\n"
" OpenERP Web kanban weergave.\n"
" "
#. module: base
#: model:ir.ui.menu,name:base.menu_project_management_time_tracking
@ -13209,6 +13333,9 @@ msgid ""
"Python code to be executed if condition is met.\n"
"It is a Python block that can use the same values as for the condition field"
msgstr ""
"Python code welke wordt gestart als aan de conditie is voldaan.\n"
"Het is een Python block dat dezelfde waardes kan gebruiken als voor een "
"conditie veld."
#. module: base
#: model:ir.actions.act_window,name:base.action_partner_supplier_form
@ -13352,7 +13479,7 @@ msgstr "Stel bankrekeningen in"
#. module: base
#: field:ir.actions.client,tag:0
msgid "Client action tag"
msgstr ""
msgstr "Client actie tag"
#. module: base
#: code:addons/base/res/res_lang.py:189
@ -13363,7 +13490,7 @@ msgstr "U kunt geen taal verwijderen die gebruikers voorkeurstaal is !"
#. module: base
#: field:ir.values,model_id:0
msgid "Model (change only)"
msgstr ""
msgstr "Model"
#. module: base
#: model:ir.module.module,description:base.module_marketing_campaign_crm_demo
@ -13432,6 +13559,8 @@ msgid ""
"The object that should receive the workflow signal (must have an associated "
"workflow)"
msgstr ""
"et object dat het workflow signaal moet ontvangen (moet een verbonden "
"workflow heben)"
#. module: base
#: model:ir.module.category,description:base.module_category_account_voucher
@ -13690,6 +13819,18 @@ msgid ""
"supplier in the routing of the assembly operation.\n"
" "
msgstr ""
"\n"
"Deze module maakt het mogelijk een tussentijdse verzamelproces mogelijk voor "
"de ontvangst van grondstoffen aan productieorders.\n"
"============================================================================="
"================\n"
"\n"
"Dit kunt u bijvoorbeeld gebruiken indien u productie uitbesteed aan uw "
"leverancier/onderaannemer.\n"
"Zet in dit geval bij de grondstof de optie \"Automatisch verzamelen\" uit en "
"zet de locatie van de leverancier\n"
"in de routing van de assemblage verwerking.\n"
" "
#. module: base
#: view:ir.actions.server:0
@ -13703,6 +13844,9 @@ msgid ""
"are available. To add a new language, you can use the 'Load an Official "
"Translation' wizard available from the 'Administration' menu."
msgstr ""
"De standaard taal welke wordt gebruikt in de user interface, wanneer "
"vertalingen aanwezig zijn. Om een nieuwe taal toe te voegen kunt u de \"Laad "
"een officiële vertaling\" gebruiken vanuit het instellingen menu."
#. module: base
#: model:ir.module.module,description:base.module_l10n_es
@ -13999,6 +14143,8 @@ msgid ""
"This cron task is currently being executed and may not be modified, please "
"try again in a few minutes"
msgstr ""
"Deze planner taak wordt op dit moment uitgevoerd en kan zodoende niet worden "
"aangepast. Probeert u het over enkele minuten opnieuw."
#. module: base
#: model:ir.module.module,description:base.module_product_expiry
@ -14378,6 +14524,8 @@ msgstr "TLS (STARTTLS)"
#: help:ir.actions.act_window,usage:0
msgid "Used to filter menu and home actions from the user form."
msgstr ""
"Wordt gebruikt om het menu en home acties te filteren van het "
"gebruikersbestand."
#. module: base
#: model:res.country,name:base.sa
@ -14394,7 +14542,7 @@ msgstr ""
#. module: base
#: model:ir.module.module,shortdesc:base.module_fetchmail_crm_claim
msgid "eMail Gateway for CRM Claim"
msgstr "E-mail gateway voor CRM Claims"
msgstr "E-mail Gateway voor CRM Claims"
#. module: base
#: help:res.partner,supplier:0
@ -14498,7 +14646,7 @@ msgstr ""
#. module: base
#: model:ir.module.module,description:base.module_auth_openid
msgid "Allow users to login through OpenID."
msgstr ""
msgstr "Geeft gebruikers de mogelijkheid om in te loggen met OpenID."
#. module: base
#: model:ir.module.module,shortdesc:base.module_account_payment
@ -14605,6 +14753,8 @@ msgstr "En"
msgid ""
"Database identifier of the record to which this applies. 0 = for all records"
msgstr ""
"Database identifier van het record waar dit toe behoort. 0 = voor alle "
"records"
#. module: base
#: field:ir.model.fields,relation:0
@ -14687,7 +14837,7 @@ msgstr "Onderliggend veld"
#. module: base
#: view:ir.rule:0
msgid "Detailed algorithm:"
msgstr ""
msgstr "Gedetailleerde algoritme:"
#. module: base
#: field:ir.actions.act_window,usage:0
@ -14856,6 +15006,10 @@ msgid ""
" This module provides the core of the OpenERP web client.\n"
" "
msgstr ""
"\n"
" OpenERP Web core module.\n"
" deze module bevat de core functionaliteiten van de web cliënt.\n"
" "
#. module: base
#: sql_constraint:res.country:0
@ -15061,7 +15215,7 @@ msgstr ""
#: code:addons/orm.py:791
#, python-format
msgid "Serialization field `%s` not found for sparse field `%s`!"
msgstr ""
msgstr "Reeks veld '%s' niet gevonden voor sparse veld '%s'!"
#. module: base
#: model:res.country,name:base.jm
@ -15335,11 +15489,14 @@ msgid ""
" OpenERP Web test suite.\n"
" "
msgstr ""
"\n"
" OpenERP Web test suite.\n"
" "
#. module: base
#: view:ir.values:0
msgid "Action Bindings/Defaults"
msgstr ""
msgstr "Acties/Standaard waarden"
#. module: base
#: view:ir.rule:0
@ -15713,7 +15870,7 @@ msgstr "Maanden"
#. module: base
#: view:workflow.instance:0
msgid "Workflow Instances"
msgstr "Exemplaren werkschema"
msgstr "Workflow instanties"
#. module: base
#: code:addons/base/res/res_partner.py:284
@ -15805,6 +15962,8 @@ msgid ""
"This field is computed automatically based on bank accounts defined, having "
"the display on footer checkbox set."
msgstr ""
"Dit veld wordt automatisch berekend, gebaseerd op de gedefinieerde "
"bankrekeningen, indien het veld voor het weergeven in de voet is aangevinkt."
#. module: base
#: model:ir.module.module,description:base.module_mrp_subproduct

View File

@ -14,8 +14,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-09-05 04:45+0000\n"
"X-Generator: Launchpad (build 15901)\n"
"X-Launchpad-Export-Date: 2012-09-20 04:42+0000\n"
"X-Generator: Launchpad (build 15985)\n"
#. module: base
#: model:res.country,name:base.sh

View File

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

View File

@ -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-09-05 04:42+0000\n"
"X-Generator: Launchpad (build 15901)\n"
"X-Launchpad-Export-Date: 2012-09-20 04:39+0000\n"
"X-Generator: Launchpad (build 15985)\n"
#. module: base
#: model:res.country,name:base.sh

View File

@ -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-09-05 04:43+0000\n"
"X-Generator: Launchpad (build 15901)\n"
"X-Launchpad-Export-Date: 2012-09-20 04:40+0000\n"
"X-Generator: Launchpad (build 15985)\n"
#. module: base
#: model:res.country,name:base.sh

File diff suppressed because it is too large Load Diff

View File

@ -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-09-05 04:43+0000\n"
"X-Generator: Launchpad (build 15901)\n"
"X-Launchpad-Export-Date: 2012-09-20 04:40+0000\n"
"X-Generator: Launchpad (build 15985)\n"
#. module: base
#: model:res.country,name:base.sh
@ -460,7 +460,7 @@ msgstr "Obiect Sursa"
#. module: base
#: model:res.partner.bank.type,format_layout:base.bank_normal
msgid "%(bank_name)s: %(acc_number)s"
msgstr "%(nume_banca)s: %(numar_de_cont)s"
msgstr "%(bank_name)s: %(acc_number)s"
#. module: base
#: view:ir.actions.todo:0

File diff suppressed because it is too large Load Diff

View File

@ -14,8 +14,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-09-05 04:43+0000\n"
"X-Generator: Launchpad (build 15901)\n"
"X-Launchpad-Export-Date: 2012-09-20 04:40+0000\n"
"X-Generator: Launchpad (build 15985)\n"
#. module: base
#: model:res.country,name:base.sh

View File

@ -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-09-05 04:43+0000\n"
"X-Generator: Launchpad (build 15901)\n"
"X-Launchpad-Export-Date: 2012-09-20 04:41+0000\n"
"X-Generator: Launchpad (build 15985)\n"
#. module: base
#: model:res.country,name:base.sh

View File

@ -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-09-05 04:38+0000\n"
"X-Generator: Launchpad (build 15901)\n"
"X-Launchpad-Export-Date: 2012-09-20 04:35+0000\n"
"X-Generator: Launchpad (build 15985)\n"
#. module: base
#: model:res.country,name:base.sh

View File

@ -14,8 +14,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-09-05 04:43+0000\n"
"X-Generator: Launchpad (build 15901)\n"
"X-Launchpad-Export-Date: 2012-09-20 04:40+0000\n"
"X-Generator: Launchpad (build 15985)\n"
#. module: base
#: model:res.country,name:base.sh

View File

@ -14,8 +14,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-09-05 04:46+0000\n"
"X-Generator: Launchpad (build 15901)\n"
"X-Launchpad-Export-Date: 2012-09-20 04:43+0000\n"
"X-Generator: Launchpad (build 15985)\n"
#. module: base
#: model:res.country,name:base.sh

View File

@ -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-09-05 04:44+0000\n"
"X-Generator: Launchpad (build 15901)\n"
"X-Launchpad-Export-Date: 2012-09-20 04:41+0000\n"
"X-Generator: Launchpad (build 15985)\n"
#. module: base
#: model:res.country,name:base.sh

View File

@ -14,8 +14,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-09-05 04:44+0000\n"
"X-Generator: Launchpad (build 15901)\n"
"X-Launchpad-Export-Date: 2012-09-20 04:41+0000\n"
"X-Generator: Launchpad (build 15985)\n"
#. module: base
#: model:res.country,name:base.sh

View File

@ -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-09-05 04:44+0000\n"
"X-Generator: Launchpad (build 15901)\n"
"X-Launchpad-Export-Date: 2012-09-20 04:41+0000\n"
"X-Generator: Launchpad (build 15985)\n"
#. module: base
#: model:res.country,name:base.sh

View File

@ -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-09-05 04:44+0000\n"
"X-Generator: Launchpad (build 15901)\n"
"X-Launchpad-Export-Date: 2012-09-20 04:41+0000\n"
"X-Generator: Launchpad (build 15985)\n"
#. module: base
#: model:res.country,name:base.sh

View File

@ -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-09-05 04:44+0000\n"
"X-Generator: Launchpad (build 15901)\n"
"X-Launchpad-Export-Date: 2012-09-20 04:41+0000\n"
"X-Generator: Launchpad (build 15985)\n"
#. module: base
#: model:res.country,name:base.sh

View File

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

View File

@ -14,8 +14,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-09-05 04:44+0000\n"
"X-Generator: Launchpad (build 15901)\n"
"X-Launchpad-Export-Date: 2012-09-20 04:42+0000\n"
"X-Generator: Launchpad (build 15985)\n"
#. module: base
#: model:res.country,name:base.sh

View File

@ -14,8 +14,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-09-05 04:44+0000\n"
"X-Generator: Launchpad (build 15901)\n"
"X-Launchpad-Export-Date: 2012-09-20 04:42+0000\n"
"X-Generator: Launchpad (build 15985)\n"
#. module: base
#: model:res.country,name:base.sh

View File

@ -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-09-05 04:46+0000\n"
"X-Generator: Launchpad (build 15901)\n"
"X-Launchpad-Export-Date: 2012-09-20 04:43+0000\n"
"X-Generator: Launchpad (build 15985)\n"
#. module: base
#: model:res.country,name:base.sh

View File

@ -14,8 +14,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-09-05 04:44+0000\n"
"X-Generator: Launchpad (build 15901)\n"
"X-Launchpad-Export-Date: 2012-09-20 04:42+0000\n"
"X-Generator: Launchpad (build 15985)\n"
#. module: base
#: model:res.country,name:base.sh

View File

@ -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-09-05 04:45+0000\n"
"X-Generator: Launchpad (build 15901)\n"
"X-Launchpad-Export-Date: 2012-09-20 04:42+0000\n"
"X-Generator: Launchpad (build 15985)\n"
#. module: base
#: model:res.country,name:base.sh

View File

@ -1170,9 +1170,9 @@
<field name="model">ir.translation</field>
<field name="arch" type="xml">
<form string="Translations" version="7.0">
<header>
<t t-call="ui.Header">
<field name="state" widget="statusbar" nolabel="1"/>
</header>
</t>
<sheet>
<group>
<group>
@ -1442,6 +1442,7 @@
<field name="name"/>
<field name="model_id"/>
<field name="group_id"/>
<field name="active"/>
</group>
<group string="Access" col="4">
<field name="perm_read"/>
@ -1493,8 +1494,9 @@
<sheet>
<group>
<group string="General">
<field colspan="4" name="name"/>
<field name="name"/>
<field name="model_id"/>
<field name="active"/>
</group>
<group col="4" string="Access Rights">
<field name="perm_read"/>
@ -1731,26 +1733,30 @@
<field name="name">Config Wizard Steps</field>
<field name="arch" type="xml">
<form string="Config Wizard Steps" version="7.0">
<header>
<t t-call="ui.Header">
<button name="action_launch"
states="open" string="Launch"
type="object" icon="gtk-execute" class="oe_highlight"
help="Launch Configuration Wizard"/>
states="open" string="Launch"
type="object" icon="gtk-execute"
class="oe_highlight"
help="Launch Configuration Wizard"/>
<button name="action_open" states="done"
string="Set as Todo" type="object"
icon="gtk-convert" class="oe_highlight"/>
<field name="state" widget="statusbar" statusbar_visible="open,done" nolabel="1" readonly="1" statusbar_colors='{"open":"red","done":"blue"}'/>
</header>
<sheet>
<group col="4">
<field name="action_id"/>
<field name="type"/>
<field name="sequence"/>
</group>
<group string="Groups">
<field name="groups_id" nolabel="1" colspan="4"/>
</group>
</sheet>
string="Set as Todo" type="object"
icon="gtk-convert" class="oe_highlight"/>
<field name="state" widget="statusbar"
statusbar_visible="open,done" nolabel="1"
readonly="1"
statusbar_colors='{"open":"red","done":"blue"}'/>
</t>
<sheet>
<group col="4">
<field name="action_id"/>
<field name="type"/>
<field name="sequence"/>
</group>
<group string="Groups">
<field name="groups_id" nolabel="1" colspan="4"/>
</group>
</sheet>
</form>
</field>
</record>

View File

@ -328,7 +328,7 @@ class act_wizard(osv.osv):
act_wizard()
class act_url(osv.osv):
_name = 'ir.actions.url'
_name = 'ir.actions.act_url'
_table = 'ir_act_url'
_inherit = 'ir.actions.actions'
_sequence = 'ir_actions_id_seq'
@ -574,7 +574,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()!
@ -771,7 +771,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),
}

View File

@ -266,6 +266,105 @@ class ir_cron(osv.osv):
cr.commit()
cr.close()
def _process_job(self, cr, job):
""" Run a given job taking care of the repetition.
The cursor has a lock on the job (aquired by _acquire_job()).
:param job: job to be run (as a dictionary).
"""
try:
now = datetime.now()
nextcall = datetime.strptime(job['nextcall'], DEFAULT_SERVER_DATETIME_FORMAT)
numbercall = job['numbercall']
ok = False
while nextcall < now and numbercall:
if numbercall > 0:
numbercall -= 1
if not ok or job['doall']:
self._callback(cr, job['user_id'], job['model'], job['function'], job['args'], job['id'])
if numbercall:
nextcall += _intervalTypes[job['interval_type']](job['interval_number'])
ok = True
addsql = ''
if not numbercall:
addsql = ', active=False'
cr.execute("UPDATE ir_cron SET nextcall=%s, numbercall=%s"+addsql+" WHERE id=%s",
(nextcall.strftime(DEFAULT_SERVER_DATETIME_FORMAT), numbercall, job['id']))
finally:
cr.commit()
cr.close()
@classmethod
def _acquire_job(cls, db_name):
# TODO remove 'check' argument from addons/base_action_rule/base_action_rule.py
""" Try to process one cron job.
This selects in database all the jobs that should be processed. It then
tries to lock each of them and, if it succeeds, run the cron job (if it
doesn't succeed, it means the job was already locked to be taken care
of by another thread) and return.
If a job was processed, returns True, otherwise returns False.
"""
db = openerp.sql_db.db_connect(db_name)
cr = db.cursor()
try:
# Careful to compare timestamps with 'UTC' - everything is UTC as of v6.1.
cr.execute("""SELECT * FROM ir_cron
WHERE numbercall != 0
AND active AND nextcall <= (now() at time zone 'UTC')
ORDER BY priority""")
for job in cr.dictfetchall():
task_cr = db.cursor()
try:
# Try to grab an exclusive lock on the job row from within the task transaction
acquired_lock = False
task_cr.execute("""SELECT *
FROM ir_cron
WHERE id=%s
FOR UPDATE NOWAIT""",
(job['id'],), log_exceptions=False)
acquired_lock = True
except psycopg2.OperationalError, e:
if e.pgcode == '55P03':
# Class 55: Object not in prerequisite state; 55P03: lock_not_available
_logger.debug('Another process/thread is already busy executing job `%s`, skipping it.', job['name'])
continue
else:
# Unexpected OperationalError
raise
finally:
if not acquired_lock:
# we're exiting due to an exception while acquiring the lot
task_cr.close()
# Got the lock on the job row, run its code
_logger.debug('Starting job `%s`.', job['name'])
openerp.modules.registry.RegistryManager.check_registry_signaling(db_name)
registry = openerp.pooler.get_pool(db_name)
registry[cls._name]._process_job(task_cr, job)
openerp.modules.registry.RegistryManager.signal_caches_change(db_name)
return True
except psycopg2.ProgrammingError, e:
if e.pgcode == '42P01':
# Class 42 — Syntax Error or Access Rule Violation; 42P01: undefined_table
# The table ir_cron does not exist; this is probably not an OpenERP database.
_logger.warning('Tried to poll an undefined table on database %s.', db_name)
else:
raise
except Exception, ex:
_logger.warning('Exception in cron:', exc_info=True)
finally:
cr.commit()
cr.close()
return False
def update_running_cron(self, cr):
""" Schedule as soon as possible a wake-up for this database. """
# Verify whether the server is already started and thus whether we need to commit

View File

@ -468,6 +468,7 @@ class ir_model_access(osv.osv):
_name = 'ir.model.access'
_columns = {
'name': fields.char('Name', size=64, required=True, select=True),
'active': fields.boolean('Active', help='If you uncheck the active field, it will disable the ACL without deleting it (if you delete a native ACL, it will be re-created when you reload the module.'),
'model_id': fields.many2one('ir.model', 'Object', required=True, domain=[('osv_memory','=', False)], select=True, ondelete='cascade'),
'group_id': fields.many2one('res.groups', 'Group', ondelete='cascade', select=True),
'perm_read': fields.boolean('Read Access'),
@ -475,6 +476,9 @@ class ir_model_access(osv.osv):
'perm_create': fields.boolean('Create Access'),
'perm_unlink': fields.boolean('Delete Access'),
}
_defaults = {
'active': True,
}
def check_groups(self, cr, uid, group):
grouparr = group.split('.')
@ -499,14 +503,16 @@ class ir_model_access(osv.osv):
cr.execute("SELECT perm_" + mode + " "
" FROM ir_model_access a "
" JOIN ir_model m ON (m.id = a.model_id) "
" WHERE m.model = %s AND a.group_id = %s", (model_name, group_id)
" WHERE m.model = %s AND a.active IS True "
" AND a.group_id = %s", (model_name, group_id)
)
r = cr.fetchone()
if r is None:
cr.execute("SELECT perm_" + mode + " "
" FROM ir_model_access a "
" JOIN ir_model m ON (m.id = a.model_id) "
" WHERE m.model = %s AND a.group_id IS NULL", (model_name, )
" WHERE m.model = %s AND a.active IS True "
" AND a.group_id IS NULL", (model_name, )
)
r = cr.fetchone()
@ -531,6 +537,7 @@ class ir_model_access(osv.osv):
LEFT JOIN ir_module_category c ON (c.id=g.category_id)
WHERE
m.model=%s AND
a.active IS True AND
a.perm_''' + access_mode, (model_name,))
return [('%s/%s' % x) if x[0] else x[1] for x in cr.fetchall()]
@ -560,6 +567,7 @@ class ir_model_access(osv.osv):
' JOIN res_groups_users_rel gu ON (gu.gid = a.group_id) '
' WHERE m.model = %s '
' AND gu.uid = %s '
' AND a.active IS True '
, (model_name, uid,)
)
r = cr.fetchone()[0]
@ -571,6 +579,7 @@ class ir_model_access(osv.osv):
' JOIN ir_model m ON (m.id = a.model_id) '
' WHERE a.group_id IS NULL '
' AND m.model = %s '
' AND a.active IS True '
, (model_name,)
)
r = cr.fetchone()[0]

View File

@ -75,6 +75,7 @@ class ir_rule(osv.osv):
_columns = {
'name': fields.char('Name', size=128, select=1),
'active': fields.boolean('Active', help="If you uncheck the active field, it will disable the record rule without deleting it (if you delete a native record rule, it may be re-created when you reload the module."),
'model_id': fields.many2one('ir.model', 'Object',select=1, required=True, ondelete="cascade"),
'global': fields.function(_get_value, string='Global', type='boolean', store=True, help="If no group is specified the rule is global and applied to everyone"),
'groups': fields.many2many('res.groups', 'rule_group_rel', 'rule_group_id', 'group_id', 'Groups'),
@ -89,6 +90,7 @@ class ir_rule(osv.osv):
_order = 'model_id DESC'
_defaults = {
'active': True,
'perm_read': True,
'perm_write': True,
'perm_create': True,
@ -114,6 +116,7 @@ class ir_rule(osv.osv):
FROM ir_rule r
JOIN ir_model m ON (r.model_id = m.id)
WHERE m.model = %s
AND r.active is True
AND r.perm_""" + mode + """
AND (r.id IN (SELECT rule_group_id FROM rule_group_rel g_rel
JOIN res_groups_users_rel u_rel ON (g_rel.group_id = u_rel.gid)

View File

@ -267,7 +267,7 @@ class ir_translation(osv.osv):
# FIXME: should assert that `source` is unicode and fix all callers to always pass unicode
# so we can remove the string encoding/decoding.
if not lang:
return u''
return tools.ustr(source or '')
if isinstance(types, basestring):
types = (types,)
if source:

View File

@ -298,7 +298,7 @@ class ir_ui_menu(osv.osv):
('ir.actions.report.xml', 'ir.actions.report.xml'),
('ir.actions.act_window', 'ir.actions.act_window'),
('ir.actions.wizard', 'ir.actions.wizard'),
('ir.actions.url', 'ir.actions.url'),
('ir.actions.act_url', 'ir.actions.act_url'),
('ir.actions.server', 'ir.actions.server'),
('ir.actions.client', 'ir.actions.client'),
]),

View File

@ -192,7 +192,6 @@ class view(osv.osv):
def write(self, cr, uid, ids, vals, context=None):
if not isinstance(ids, (list, tuple)):
ids = [ids]
result = super(view, self).write(cr, uid, ids, vals, context)
# drop the corresponding view customizations (used for dashboards for example), otherwise
# not all users would see the updated views
@ -200,7 +199,7 @@ class view(osv.osv):
if custom_view_ids:
self.pool.get('ir.ui.view.custom').unlink(cr, uid, custom_view_ids)
return result
return super(view, self).write(cr, uid, ids, vals, context)
def graph_get(self, cr, uid, id, model, node_obj, conn_obj, src_node, des_node, label, scale, context=None):
nodes=[]

View File

@ -237,7 +237,6 @@ class module(osv.osv):
'menus_by_module': fields.function(_get_views, string='Menus', type='text', multi="meta", store=True),
'reports_by_module': fields.function(_get_views, string='Reports', type='text', multi="meta", store=True),
'views_by_module': fields.function(_get_views, string='Views', type='text', multi="meta", store=True),
'certificate' : fields.char('Quality Certificate', size=64, readonly=True),
'application': fields.boolean('Application', readonly=True),
'icon': fields.char('Icon URL', size=128),
'icon_image': fields.function(_get_icon_image, string='Icon', type="binary"),
@ -253,12 +252,9 @@ class module(osv.osv):
def _name_uniq_msg(self, cr, uid, ids, context=None):
return _('The name of the module must be unique !')
def _certificate_uniq_msg(self, cr, uid, ids, context=None):
return _('The certificate ID of the module must be unique !')
_sql_constraints = [
('name_uniq', 'UNIQUE (name)',_name_uniq_msg ),
('certificate_uniq', 'UNIQUE (certificate)',_certificate_uniq_msg )
]
def unlink(self, cr, uid, ids, context=None):
@ -511,7 +507,6 @@ class module(osv.osv):
'contributors': ', '.join(terp.get('contributors', [])) or False,
'website': terp.get('website', ''),
'license': terp.get('license', 'AGPL-3'),
'certificate': terp.get('certificate') or False,
'sequence': terp.get('sequence', 100),
'application': terp.get('application', False),
'auto_install': terp.get('auto_install', False),
@ -677,14 +672,6 @@ class module(osv.osv):
if not mod.description:
_logger.warning('module %s: description is empty !', mod.name)
if not mod.certificate or not mod.certificate.isdigit():
_logger.info('module %s: no quality certificate', mod.name)
else:
val = long(mod.certificate[2:]) % 97 == 29
if not val:
_logger.critical('module %s: invalid quality certificate: %s', mod.name, mod.certificate)
raise osv.except_osv(_('Error'), _('Module %s: Invalid Quality Certificate') % (mod.name,))
class module_dependency(osv.osv):
_name = "ir.module.module.dependency"
_description = "Module dependency"

View File

@ -25,25 +25,25 @@
</record>
<record model="ir.module.category" id="module_category_sales_management">
<field name="name">Sales Management</field>
<field name="name">Sales</field>
<field name="description">Helps you handle your quotations, sale orders and invoicing.</field>
<field name="sequence">2</field>
</record>
<record model="ir.module.category" id="module_category_project_management">
<field name="name">Project Management</field>
<field name="name">Project</field>
<field name="description">Helps you manage your projects and tasks by tracking them, generating plannings, etc...</field>
<field name="sequence">3</field>
</record>
<record model="ir.module.category" id="module_category_knowledge_management">
<field name="name">Knowledge Management</field>
<field name="name">Knowledge</field>
<field name="description">Lets you install addons geared towards sharing knowledge with and between your employees.</field>
<field name="sequence">4</field>
</record>
<record model="ir.module.category" id="module_category_warehouse_management">
<field name="name">Warehouse Management</field>
<field name="name">Warehouse</field>
<field name="description">Helps you manage your inventory and main stock operations: delivery orders, receptions, etc.</field>
<field name="sequence">5</field>
</record>
@ -67,7 +67,7 @@
</record>
<record model="ir.module.category" id="module_category_purchase_management">
<field name="name">Purchase Management</field>
<field name="name">Purchases</field>
<field name="description">Helps you manage your purchase-related processes such as requests for quotations, supplier invoices, etc...</field>
<field name="sequence">9</field>
</record>
@ -134,7 +134,7 @@
</record>
<record model="res.groups" id="group_multi_currency">
<field name="category_id" ref="module_category_usability"/>
<field name="category_id" ref="module_category_hidden"/>
</record>
<record model="res.groups" id="group_no_one">

View File

@ -47,10 +47,10 @@ class base_module_upgrade(osv.osv_memory):
ids = self.get_module_list(cr, uid, context=context)
if not ids:
res['arch'] = '''<form string="Apply Schedule Upgrade" version="7.0">
<header>
<t t-call="ui.Header">
<button name="config" string="Start configuration" type="object" icon="gtk-ok"/>
<button special="cancel" string="Close" icon="gtk-cancel"/>
</header>
</t>
<separator string="Apply Schedule Upgrade" colspan="4"/>
</form>'''

View File

@ -172,38 +172,35 @@ class res_partner_bank(osv.osv):
('required', field.required)]
return res
def _prepare_name_get(self, cr, uid, bank_type_obj, bank_obj, context=None):
def _prepare_name_get(self, cr, uid, bank_dicts, context=None):
""" Format the name of a res.partner.bank.
This function is designed to be inherited to add replacement fields.
:param bank_dicts: a list of res.partner.bank dicts, as returned by the method read()
:return: [(id, name), ...], as returned by the method name_get()
"""
Format the name of a res.partner.bank.
This function is designed to be inherited to add replacement fields.
:param browse_record bank_type_obj: res.partner.bank.type object
:param browse_record bank_obj: res.partner.bank object
:rtype: str
:return: formatted name of a res.partner.bank record
"""
return bank_type_obj.format_layout % bank_obj._data[bank_obj.id]
# prepare a mapping {code: format_layout} for all bank types
bank_type_obj = self.pool.get('res.partner.bank.type')
bank_types = bank_type_obj.browse(cr, uid, bank_type_obj.search(cr, uid, []), context=context)
bank_code_format = dict((bt.code, bt.format_layout) for bt in bank_types)
res = []
for data in bank_dicts:
name = data['acc_number']
if data['state'] and bank_code_format.get(data['state']):
try:
if not data.get('bank_name'):
data['bank_name'] = _('BANK')
name = bank_code_format[data['state']] % data
except Exception:
raise osv.except_osv(_("Formating Error"), _("Invalid Bank Account Type Name format."))
res.append((data.get('id', False), name))
return res
def name_get(self, cr, uid, ids, context=None):
if not len(ids):
return []
bank_type_obj = self.pool.get('res.partner.bank.type')
res = []
for val in self.browse(cr, uid, ids, context=context):
result = val.acc_number
if val.state:
type_ids = bank_type_obj.search(cr, uid, [('code','=',val.state)])
if type_ids:
t = bank_type_obj.browse(cr, uid, type_ids[0], context=context)
try:
# avoid the default format_layout to result in "False: ..."
if not val._data[val.id]['bank_name']:
val._data[val.id]['bank_name'] = _('BANK')
result = self._prepare_name_get(cr, uid, t, val, context=context)
except:
result += ' [Formatting Error]'
raise
res.append((val.id, result))
return res
bank_dicts = self.read(cr, uid, ids, context=context)
return self._prepare_name_get(cr, uid, bank_dicts, context=context)
def onchange_company_id(self, cr, uid, ids, company_id, context=None):
result = {}

View File

@ -90,8 +90,8 @@
<form string="Bank account" version="7.0">
<group col="4">
<field name="state"/>
<field name="acc_number"/>
<field name="company_id" on_change="onchange_company_id(company_id)"
<field name="acc_number" placeholder="Account Number"/>
<field name="company_id" groups="base.group_multi_company" on_change="onchange_company_id(company_id)"
invisible="context.get('company_hide', True)" widget="selection"/>
<field name="footer" invisible="context.get('footer_hide', True)"/>
</group>
@ -113,7 +113,7 @@
<group name="bank" string="Information About the Bank">
<field name="bank" on_change="onchange_bank_id(bank)"/>
<field name="bank_name" attrs="{'required': [('company_id','&lt;&gt;',False)]}"/>
<field name="bank_bic" placeholder="[Identifier code]" />
<field name="bank_bic" placeholder="e.g. GEBABEBB" />
</group>
</group>

View File

@ -111,8 +111,8 @@ class res_company(osv.osv):
'rml_header1': fields.char('Company Slogan', size=200, help="Appears by default on the top right corner of your printed documents (report header)."),
'rml_header2': fields.text('RML Internal Header', required=True),
'rml_header3': fields.text('RML Internal Header for Landscape Reports', required=True),
'rml_footer': fields.text('Report Footer', help="Footer text displayed at the bottom of all reports. Automatically set based on company details, "\
"but may also be customized by directly editing it."),
'rml_footer': fields.text('Report Footer', help="Footer text displayed at the bottom of all reports."),
'rml_footer_readonly': fields.related('rml_footer', type='text', string='Report Footer', readonly=True),
'custom_footer': fields.boolean('Custom Footer', help="Check this to define the report footer manually. Otherwise it will be filled in automatically."),
'logo': fields.related('partner_id', 'image', string="Logo", type="binary"),
'currency_id': fields.many2one('res.currency', 'Currency', required=True),
@ -138,36 +138,28 @@ class res_company(osv.osv):
('name_uniq', 'unique (name)', 'The company name must be unique !')
]
def onchange_footer(self, cr, uid, ids, context=None):
# when touched, the footer becomes custom
return {'value': {'custom_footer': True}}
def onchange_footer(self, cr, uid, ids, custom_footer, phone, fax, email, website, vat, company_registry, bank_ids, context=None):
if custom_footer:
return {}
def set_auto_footer(self, cr, uid, ids, context=None):
# unset the flag 'custom_footer'; this will automatically compute the footer
return self.write(cr, uid, ids, {'custom_footer': False}, context=context)
def compute_footer(self, cr, uid, ids, context=None):
# first line (notice that missing elements are filtered out before the join)
res = ' | '.join(filter(bool, [
phone and '%s: %s' % (_('Phone'), phone),
fax and '%s: %s' % (_('Fax'), fax),
email and '%s: %s' % (_('Email'), email),
website and '%s: %s' % (_('Website'), website),
vat and '%s: %s' % (_('TIN'), vat),
company_registry and '%s: %s' % (_('Reg'), company_registry),
]))
# second line: bank accounts
res_partner_bank = self.pool.get('res.partner.bank')
for company in self.browse(cr, uid, ids, context):
if not company.custom_footer:
# first line (notice that missing elements are filtered out before the join)
res = ' | '.join(filter(bool, [
company.phone and '%s: %s' % (_('Phone'), company.phone),
company.fax and '%s: %s' % (_('Fax'), company.fax),
company.email and '%s: %s' % (_('Email'), company.email),
company.website and '%s: %s' % (_('Website'), company.website),
company.vat and '%s: %s' % (_('TIN'), company.vat),
company.company_registry and '%s: %s' % (_('Reg'), company.company_registry),
]))
# second line: bank accounts
account_ids = [acc.id for acc in company.bank_ids if acc.footer]
account_names = res_partner_bank.name_get(cr, uid, account_ids, context=context)
if account_names:
title = _('Bank Accounts') if len(account_names) > 1 else _('Bank Account')
res += '\n%s: %s' % (title, ', '.join(name for id, name in account_names))
# update footer
self.write(cr, uid, [company.id], {'rml_footer': res}, context=context)
return True
account_data = self.resolve_2many_commands(cr, uid, 'bank_ids', bank_ids, context=context)
account_names = res_partner_bank._prepare_name_get(cr, uid, account_data, context=context)
if account_names:
title = _('Bank Accounts') if len(account_names) > 1 else _('Bank Account')
res += '\n%s: %s' % (title, ', '.join(name for id, name in account_names))
return {'value': {'rml_footer': res, 'rml_footer_readonly': res}}
def on_change_country(self, cr, uid, ids, country_id, context=None):
currency_id = self._get_euro(cr, uid, context=context)
@ -203,7 +195,7 @@ class res_company(osv.osv):
]
ids = proxy.search(cr, uid, args, context=context)
user = self.pool.get('res.users').browse(cr, uid, uid, context=context)
user = self.pool.get('res.users').browse(cr, SUPERUSER_ID, uid, context=context)
for rule in proxy.browse(cr, uid, ids, context):
if eval(rule.expression, {'context': context, 'user': user}):
return rule.company_dest_id.id
@ -248,17 +240,11 @@ class res_company(osv.osv):
self.cache_restart(cr)
company_id = super(res_company, self).create(cr, uid, vals, context=context)
obj_partner.write(cr, uid, partner_id, {'company_id': company_id}, context=context)
self.compute_footer(cr, uid, [company_id], context=context)
return company_id
def write(self, cr, uid, ids, values, context=None):
self.cache_restart(cr)
if isinstance(ids, (int, long)):
ids = [ids]
super(res_company, self).write(cr, uid, ids, values, context=context)
if 'rml_footer' not in values:
self.compute_footer(cr, uid, ids, context=context)
return True
return super(res_company, self).write(cr, uid, ids, values, context=context)
def _get_euro(self, cr, uid, context=None):
rate_obj = self.pool.get('res.currency.rate')

View File

@ -55,29 +55,26 @@
<div>
<field name="rml_header1" placeholder="e.g. Global Business Solutions"/>
</div>
<field name="website" widget="url" placeholder="e.g. www.openerp.com"/>
<field name="website" widget="url" placeholder="e.g. www.openerp.com"
on_change="onchange_footer(custom_footer, phone, fax, email, website, vat, company_registry, bank_ids)"/>
</group>
<group>
<field name="phone"/>
<field name="fax"/>
<field name="email"/>
<field name="vat"/>
<field name="company_registry"/>
<field name="phone" on_change="onchange_footer(custom_footer, phone, fax, email, website, vat, company_registry, bank_ids)"/>
<field name="fax" on_change="onchange_footer(custom_footer, phone, fax, email, website, vat, company_registry, bank_ids)"/>
<field name="email" on_change="onchange_footer(custom_footer, phone, fax, email, website, vat, company_registry, bank_ids)"/>
<field name="vat" on_change="onchange_footer(custom_footer, phone, fax, email, website, vat, company_registry, bank_ids)"/>
<field name="company_registry" on_change="onchange_footer(custom_footer, phone, fax, email, website, vat, company_registry, bank_ids)"/>
</group>
</group>
<group string="Bank Accounts">
<field name="bank_ids" nolabel="1"
context="{'default_company_id': active_id, 'footer_hide': False}"/>
<field name="bank_ids" nolabel="1" context="{'default_company_id': active_id, 'footer_hide': False}"
on_change="onchange_footer(custom_footer, phone, fax, email, website, vat, company_registry, bank_ids)"/>
</group>
<group string="Report Footer Configuration">
<field name="paper_format" on_change="onchange_paper_format(paper_format)"/>
<field name="custom_footer" invisible="1"/>
<label for="rml_footer"/>
<div>
<field name="rml_footer" on_change="onchange_footer()"/>
<button string="Set Automatic Footer" type="object" name="set_auto_footer"
attrs="{'invisible': [('custom_footer','=',False)]}" class="oe_edit_only"/>
</div>
<field name="custom_footer" on_change="onchange_footer(custom_footer, phone, fax, email, website, vat, company_registry, bank_ids)"/>
<field name="rml_footer" attrs="{'invisible': [('custom_footer','=',False)]}"/>
<field name="rml_footer_readonly" attrs="{'invisible': [('custom_footer','=',True)]}"/>
</group>
</page>
<page string="Header/Footer" groups="base.group_no_one">

View File

@ -552,5 +552,22 @@ class res_config_settings(osv.osv_memory):
if action_ids:
return act_window.read(cr, uid, action_ids[0], [], context=context)
return {}
def name_get(self, cr, uid, ids, context=None):
""" Override name_get method to return an appropriate configuration wizard
name, and not the generated name."""
if not ids:
return []
# name_get may receive int id instead of an id list
if isinstance(ids, (int, long)):
ids = [ids]
act_window = self.pool.get('ir.actions.act_window')
action_ids = act_window.search(cr, uid, [('res_model', '=', self._name)], context=context)
name = self._name
if action_ids:
name = act_window.read(cr, uid, action_ids[0], ['name'], context=context)['name']
return [(record.id, name) for record in self.browse(cr, uid , ids, context=context)]
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

View File

@ -64,7 +64,7 @@ addresses belonging to this country.\n\nYou can use the python-style string pate
'The code of the country must be unique !')
]
_defaults = {
'address_format': "%(company_name)s\n%(street)s\n%(street2)s\n%(city)s,%(state_code)s %(zip)s\n%(country_name)s",
'address_format': "%(street)s\n%(street2)s\n%(city)s %(state_code)s %(zip)s\n%(country_name)s",
}
_order='name'
@ -89,9 +89,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),
}
_order = 'code'

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data noupdate="1">
<record id="ad" model="res.country">
<field name="name">Andorra, Principality of</field>
<field name="code">ad</field>
@ -70,7 +70,7 @@
<record id="au" model="res.country">
<field name="name">Australia</field>
<field name="code">au</field>
<field name="address_format" eval="'%(street)s\n%(street2)s %(state_code)s %(zip)s\n%(country_name)s'" />
<field name="address_format" eval="'%(street)s\n%(street2)s\n%(city)s %(state_code)s %(zip)s\n%(country_name)s'" />
<field name="currency_id" ref="AUD"/>
</record>
<record id="aw" model="res.country">
@ -106,7 +106,7 @@
<record id="be" model="res.country">
<field name="name">Belgium</field>
<field name="code">be</field>
<field name="address_format" eval="'%(street)s\n%(zip)s, %(city)s\n%(country_name)s'" />
<field name="address_format" eval="'%(street)s\n%(street2)s\n%(zip)s %(city)s\n%(country_name)s'" />
<field name="currency_id" ref="EUR"/>
</record>
<record id="bf" model="res.country">
@ -162,7 +162,7 @@
<record id="br" model="res.country">
<field name="name">Brazil</field>
<field name="code">br</field>
<field name="address_format" eval="'%(street)s\n%(street2)s\n%(city)s,%(state_code)s %(zip)s%(country_name)s'" />
<field name="address_format" eval="'%(street)s\n%(street2)s\n%(city)s %(state_code)s\n%(zip)s\n%(country_name)s'" />
<field name="currency_id" ref="BRL"/>
</record>
<record id="bs" model="res.country">
@ -198,7 +198,7 @@
<record id="ca" model="res.country">
<field name="name">Canada</field>
<field name="code">ca</field>
<field name="address_format" eval="'%(street)s\n%(street2)s\n%(city)s, %(state_code)s %(zip)s\n%(country_name)s'" />
<field name="address_format" eval="'%(street)s\n%(street2)s\n%(city)s %(state_code)s %(zip)s\n%(country_name)s'" />
<field name="currency_id" ref="CAD"/>
</record>
<record id="cc" model="res.country">
@ -350,7 +350,7 @@
<record id="es" model="res.country">
<field name="name">Spain</field>
<field name="code">es</field>
<field name="address_format" eval="'%(street)s\n%(zip)s %(city)s,%(state_name)s\n%(country_name)s'" />
<field name="address_format" eval="'%(street)s\n%(street2)s\n%(zip)s %(city)s\n%(country_name)s'" />
<field name="currency_id" ref="EUR"/>
</record>
<record id="et" model="res.country">
@ -386,7 +386,7 @@
<record id="fr" model="res.country">
<field name="name">France</field>
<field name="code">fr</field>
<field name="address_format" eval="'%(street)s\n%(zip)s %(city)s\n%(country_name)s'" />
<field name="address_format" eval="'%(street)s\n%(street2)s\n%(zip)s %(city)s\n%(country_name)s'" />
<field name="currency_id" ref="EUR"/>
</record>
<record id="ga" model="res.country">
@ -532,7 +532,7 @@
<record id="in" model="res.country">
<field name="name">India</field>
<field name="code">in</field>
<field name="address_format" eval="'%(street)s\n%(street2)s\n%(city)s, %(zip)s\n%(state_name)s%(country_name)s'" />
<field name="address_format" eval="'%(street)s\n%(street2)s\n%(city)s %(zip)s\n%(state_name)s\n%(country_name)s'" />
<field name="currency_id" ref="INR"/>
</record>
<record id="io" model="res.country">
@ -1174,7 +1174,7 @@
</record>
<record id="uk" model="res.country">
<field name="name">United Kingdom</field>
<field name="address_format" eval="'%(street)s\n%(street2)s\n%(city)s\n%(country_name)s\n%(zip)s'" />
<field name="address_format" eval="'%(street)s\n%(street2)s\n%(city)s\n%(state_name)s\n%(zip)s\n%(country_name)s'" />
<field name="code">gb</field>
<field name="currency_id" ref="GBP"/>
</record>
@ -1186,7 +1186,7 @@
<record id="us" model="res.country">
<field name="name">United States</field>
<field name="code">us</field>
<field name="address_format" eval="'%(street)s\n%(street2)s\n%(city)s, %(state_code)s %(zip)s\n%(country_name)s'" />
<field name="address_format" eval="'%(street)s\n%(street2)s\n%(city)s %(state_code)s %(zip)s\n%(country_name)s'" />
<field name="currency_id" ref="USD"/>
</record>
<record id="uy" model="res.country">
@ -1269,6 +1269,7 @@
<field name="code">zm</field>
<field name="currency_id" ref="ZMK"/>
</record>
<!-- DEPRECATED, New name of Zaire is Democratic Republic of the Congo ! -->
<record id="zr" model="res.country">
<field name="name">Zaire</field>
@ -1280,5 +1281,5 @@
<field name="code">zw</field>
<field name="currency_id" ref="ZWD"/>
</record>
</data>
</data>
</openerp>

View File

@ -77,7 +77,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):

View File

@ -22,24 +22,59 @@
import math
import openerp
from osv import osv, fields
from openerp import SUPERUSER_ID
import re
import tools
from tools.translate import _
import logging
import pooler
import pytz
from lxml import etree
class format_address(object):
def fields_view_get_address(self, cr, uid, arch, context={}):
user_obj = self.pool.get('res.users')
fmt = user_obj.browse(cr, SUPERUSER_ID, uid, context).company_id.country_id
fmt = fmt and fmt.address_format
layouts = {
'%(city)s %(state_code)s\n%(zip)s': """
<div class="address_format">
<field name="city" placeholder="City" style="width: 50%%"/>
<field name="state_id" class="oe_no_button" placeholder="State" style="width: 47%%" options='{"no_open": true}'/>
<br/>
<field name="zip" placeholder="ZIP"/>
</div>
""",
'%(zip)s %(city)s': """
<div class="address_format">
<field name="zip" placeholder="ZIP" style="width: 40%%"/>
<field name="city" placeholder="City" style="width: 57%%"/>
<br/>
<field name="state_id" class="oe_no_button" placeholder="State" options='{"no_open": true}'/>
</div>
""",
'%(city)s\n%(state_name)s\n%(zip)s': """
<div class="address_format">
<field name="city" placeholder="City"/>
<field name="state_id" class="oe_no_button" placeholder="State" options='{"no_open": true}'/>
<field name="zip" placeholder="ZIP"/>
</div>
"""
}
for k,v in layouts.items():
if fmt and (k in fmt):
doc = etree.fromstring(arch)
for node in doc.xpath("//div[@class='address_format']"):
tree = etree.fromstring(v)
node.getparent().replace(node, tree)
arch = etree.tostring(doc)
break
return arch
def _tz_get(self,cr,uid, context=None):
return [(x, x) for x in pytz.all_timezones]
class res_payterm(osv.osv):
_description = 'Payment term'
_name = 'res.payterm'
_order = 'name'
_columns = {
'name': fields.char('Payment Term (short name)', size=64),
}
class res_partner_category(osv.osv):
def name_get(self, cr, uid, ids, context=None):
@ -127,7 +162,7 @@ def _lang_get(self, cr, uid, context=None):
POSTAL_ADDRESS_FIELDS = ('street', 'street2', 'zip', 'city', 'state_id', 'country_id')
ADDRESS_FIELDS = POSTAL_ADDRESS_FIELDS + ('email', 'phone', 'fax', 'mobile', 'website', 'ref', 'lang')
class res_partner(osv.osv):
class res_partner(osv.osv, format_address):
_description = 'Partner'
_name = "res.partner"
@ -151,28 +186,31 @@ class res_partner(osv.osv):
'name': fields.char('Name', size=128, required=True, select=True),
'date': fields.date('Date', select=1),
'title': fields.many2one('res.partner.title', 'Title'),
'parent_id': fields.many2one('res.partner', 'Owned by'),
'parent_id': fields.many2one('res.partner', 'Company'),
'child_ids': fields.one2many('res.partner', 'parent_id', 'Contacts'),
'ref': fields.char('Reference', size=64, select=1),
'lang': fields.selection(_lang_get, 'Language',
help="If the selected language is loaded in the system, all documents related to this partner will be printed in this language. If not, it will be english."),
help="If the selected language is loaded in the system, all documents related to this contact will be printed in this language. If not, it will be English."),
'tz': fields.selection(_tz_get, 'Timezone', size=64,
help="The partner's timezone, used to output proper date and time values inside printed reports. "
"It is important to set a value for this field. You should use the same timezone "
"that is otherwise used to pick and render date and time values: your computer's timezone."),
'user_id': fields.many2one('res.users', 'Salesperson', help='The internal user that is in charge of communicating with this partner if any.'),
'vat': fields.char('TIN', size=32, help="Tax Identification Number. Check the box if the partner is subjected to taxes. Used by the some of the legal statements."),
'user_id': fields.many2one('res.users', 'Salesperson', help='The internal user that is in charge of communicating with this contact if any.'),
'vat': fields.char('TIN', size=32, help="Tax Identification Number. Check the box if this contact is subjected to taxes. Used by the some of the legal statements."),
'bank_ids': fields.one2many('res.partner.bank', 'partner_id', 'Banks'),
'website': fields.char('Website', size=64, help="Website of Partner or Company"),
'comment': fields.text('Notes'),
'address': fields.one2many('res.partner.address', 'partner_id', 'Contacts'), # should be removed in version 7, but kept until then for backward compatibility
'address': fields.one2many('res.partner.address', 'partner_id', 'Addresses',
deprecated="The address information is now directly stored on each Partner record. "\
"Multiple contacts with their own address can be added via the child_ids relationship. "\
"This field will be removed as of OpenERP 7.1."),
'category_id': fields.many2many('res.partner.category', id1='partner_id', id2='category_id', string='Tags'),
'credit_limit': fields.float(string='Credit Limit'),
'ean13': fields.char('EAN13', size=13),
'active': fields.boolean('Active'),
'customer': fields.boolean('Customer', help="Check this box if the partner is a customer."),
'supplier': fields.boolean('Supplier', help="Check this box if the partner is a supplier. If it's not checked, purchase people will not see it when encoding a purchase order."),
'employee': fields.boolean('Employee', help="Check this box if the partner is an Employee."),
'customer': fields.boolean('Customer', help="Check this box if this contact is a customer."),
'supplier': fields.boolean('Supplier', help="Check this box if this contact is a supplier. If it's not checked, purchase people will not see it when encoding a purchase order."),
'employee': fields.boolean('Employee', help="Check this box if this contact is an Employee."),
'function': fields.char('Job Position', size=128),
'type': fields.selection([('default', 'Default'), ('invoice', 'Invoice'),
('delivery', 'Delivery'), ('contact', 'Contact'),
@ -184,7 +222,8 @@ class res_partner(osv.osv):
'city': fields.char('City', size=128),
'state_id': fields.many2one("res.country.state", 'State'),
'country_id': fields.many2one('res.country', 'Country'),
'country': fields.related('country_id', type='many2one', relation='res.country', string='Country'), # for backward compatibility
'country': fields.related('country_id', type='many2one', relation='res.country', string='Country',
deprecated="This field will be removed as of OpenERP 7.1, use country_id instead"),
'email': fields.char('Email', size=240),
'phone': fields.char('Phone', size=64),
'fax': fields.char('Fax', size=64),
@ -194,13 +233,13 @@ class res_partner(osv.osv):
'use_parent_address': fields.boolean('Use Company Address', help="Select this if you want to set company's address information for this contact"),
# image: all image fields are base64 encoded and PIL-supported
'image': fields.binary("Image",
help="This field holds the image used as avatar for the partner, limited to 1024x1024px"),
help="This field holds the image used as avatar for this contact, limited to 1024x1024px"),
'image_medium': fields.function(_get_image, fnct_inv=_set_image,
string="Medium-sized image", type="binary", multi="_get_image",
store={
'res.partner': (lambda self, cr, uid, ids, c={}: ids, ['image'], 10),
},
help="Medium-sized image of the partner. It is automatically "\
help="Medium-sized image of this contact. It is automatically "\
"resized as a 128x128px image, with aspect ratio preserved. "\
"Use this field in form views or some kanban views."),
'image_small': fields.function(_get_image, fnct_inv=_set_image,
@ -208,7 +247,7 @@ class res_partner(osv.osv):
store={
'res.partner': (lambda self, cr, uid, ids, c={}: ids, ['image'], 10),
},
help="Small-sized image of the partner. It is automatically "\
help="Small-sized image of this contact. It is automatically "\
"resized as a 64x64px image, with aspect ratio preserved. "\
"Use this field anywhere a small image is required."),
'company_id': fields.many2one('res.company', 'Company', select=1),
@ -231,6 +270,14 @@ class res_partner(osv.osv):
image = tools.image_colorize(open(openerp.modules.get_module_resource('base', 'static/src/img', 'avatar.png')).read())
return tools.image_resize_image_big(image.encode('base64'))
def fields_view_get(self, cr, user, view_id=None, view_type='form', context=None, toolbar=False, submenu=False):
if (not view_id) and (view_type=='form') and context and context.get('force_email', False):
view_id = self.pool.get('ir.model.data').get_object_reference(cr, user, 'base', 'view_partner_simple_form')[1]
res = super(res_partner,self).fields_view_get(cr, user, view_id, view_type, context, toolbar=toolbar, submenu=submenu)
if view_type == 'form':
res['arch'] = self.fields_view_get_address(cr, user, res['arch'], context=context)
return res
_defaults = {
'active': True,
'lang': lambda self, cr, uid, ctx: ctx.get('lang', 'en_US'),
@ -350,7 +397,7 @@ class res_partner(osv.osv):
- otherwise: default, everything is set as the name """
match = re.search(r'([^\s,<@]+@[^>\s,]+)', text)
if match:
email = match.group(1)
email = match.group(1)
name = text[:text.index(email)].replace('"','').replace('<','').strip()
else:
name, email = text, ''
@ -398,7 +445,7 @@ class res_partner(osv.osv):
def find_or_create(self, cr, uid, email, context=None):
""" Find a partner with the given ``email`` or use :py:method:`~.name_create`
to create one
:param str email: email-like string, which should contain at least one email,
e.g. ``"Raoul Grosbedon <r.g@grosbedon.fr>"``"""
assert email, 'an email is required for find_or_create to work'
@ -498,7 +545,7 @@ class res_partner(osv.osv):
# get the information that will be injected into the display format
# get the address format
address_format = address.country_id and address.country_id.address_format or \
'%(company_name)s\n%(street)s\n%(street2)s\n%(city)s,%(state_code)s %(zip)s'
"%(street)s\n%(street2)s\n%(city)s %(state_code)s %(zip)s\n%(country_name)s"
args = {
'state_code': address.state_id and address.state_id.code or '',
'state_name': address.state_id and address.state_id.name or '',
@ -511,10 +558,10 @@ class res_partner(osv.osv):
args[field] = getattr(address, field) or ''
if without_company:
args['company_name'] = ''
elif address.parent_id:
address_format = '%(company_name)s\n' + address_format
return address_format % args
# res.partner.address is deprecated; it is still there for backward compability only and will be removed in next version
class res_partner_address(osv.osv):
_table = "res_partner"

View File

@ -20,17 +20,32 @@
<record id="res_partner_title_madam" model="res.partner.title">
<field name="domain">contact</field>
<field name="name">Madam</field>
<field name="shortcut">Ms.</field>
<field name="shortcut">Mrs.</field>
</record>
<record id="res_partner_title_miss" model="res.partner.title">
<field name="domain">contact</field>
<field name="name">Miss</field>
<field name="shortcut">Mss</field>
<field name="shortcut">Miss</field>
</record>
<record id="res_partner_title_sir" model="res.partner.title">
<field name="domain">contact</field>
<field name="name">Sir</field>
<field name="shortcut">M.</field>
<field name="shortcut">Sir</field>
</record>
<record id="res_partner_title_mister" model="res.partner.title">
<field name="domain">contact</field>
<field name="name">Mister</field>
<field name="shortcut">Mr.</field>
</record>
<record id="res_partner_title_doctor" model="res.partner.title">
<field name="domain">contact</field>
<field name="name">Doctor</field>
<field name="shortcut">Dr.</field>
</record>
<record id="res_partner_title_prof" model="res.partner.title">
<field name="domain">contact</field>
<field name="name">Professor</field>
<field name="shortcut">Prof.</field>
</record>
<!-- Default bank account description -->

Some files were not shown because too many files have changed in this diff Show More