Anpassungen für Odoo 10

develop
Christian Hattemer 2016-11-14 14:48:16 +01:00
parent 45f818bc86
commit 75c8dfdcfb
3 changed files with 43 additions and 39 deletions

View File

@ -82,7 +82,6 @@ def main():
'login', 'login',
'install_module_sale', 'install_module_sale',
#'setup_accounting', #'setup_accounting',
#'setup_accounting2',
'set_admin_rights', 'set_admin_rights',
] ]

View File

@ -83,11 +83,11 @@ class Config():
# Einstellungen Verkauf # Einstellungen Verkauf
self.sale_config = { self.sale_config = {
'group_sale_delivery_address': True, # Verschiedene Adressen für Rechnung und Lieferung 'group_sale_delivery_address': 0, # Verschiedene Adressen für Rechnung und Lieferung
'group_sale_pricelist': True, # Preislisten verwenden 'sale_pricelist_setting': 'fixed', # Verkaufspreis: [fixed], [percentage], [formula]
'group_discount_per_so_line': True, # Rabatte verwenden 'group_discount_per_so_line': 0, # Rabatt auf Verkaufszeilen
'group_uom': True, # Verwende Mengeneinheiten 'group_uom': 0, # Verwende Mengeneinheiten
'group_invoice_deli_orders': True, # Erstelle Rechnungen durch Auslieferungen 'default_invoice_policy': 'order' # Standardabrechnung: [order], [delivery]
} }
self.order_policy = 'picking' # Erzeuge Rechnung: [manual], [picking], [prepaid] self.order_policy = 'picking' # Erzeuge Rechnung: [manual], [picking], [prepaid]
@ -100,12 +100,12 @@ class Config():
'group_costing_method': True, # Benutzen Sie 'Einkaufs-' oder 'Durchschnittspreis' zur Bestandsbewertung 'group_costing_method': True, # Benutzen Sie 'Einkaufs-' oder 'Durchschnittspreis' zur Bestandsbewertung
} }
# Einstellungen Finanzen
self.finance_config = { self.finance_config = {
#'group_multi_currency':True 'group_multi_currency': False, # Multiwährungsfunktion aktivieren
'default_sale_tax_id': 'XML:l10n_at.1_tax_at_mwst_10', # Standardsteuer Verkauf
} }
# Einstellungen Personal # Einstellungen Personal
self.hr_config = { self.hr_config = {
'module_hr_expense': True, # Spesen der Mitarbeiter verwalten 'module_hr_expense': True, # Spesen der Mitarbeiter verwalten
@ -115,11 +115,12 @@ class Config():
# Einstellungen Lager # Einstellungen Lager
self.stock_config = { self.stock_config = {
'group_stock_multiple_locations': True, # Verwalten Sie mehrere Lager und Lagerorte 'warehouse_and_location_usage_level': 0, # Warehouses and Locations usage level
'group_stock_tracking_lot': False, # Benutze Verpackungen: Paletten, Boxen, ... 'group_stock_tracking_lot': 0, # Verpackungsgrößen bei der Verpackung: Paletten, Kisten, Behälter...
'group_stock_production_lot': True, # Verfolgen Sie Los- und Seriennummern. 'group_stock_production_lot': 0, # Verfolgen Sie Los- und Seriennummern
'group_stock_packaging': False, # Ermöglicht die Auswahl einer Verpackung 'group_stock_packaging': 0, # Manage available packaging options per products
'group_stock_adv_location': True, # Verwalten Sie erweiterte Routen im Lager 'group_stock_adv_location': 0, # Advanced routing of products using rules
'group_product_variant': 0, # Produkte können mehrere Attribute haben, die Varianten definieren
} }
# Einstellungen Fertigung # Einstellungen Fertigung

View File

@ -95,6 +95,26 @@ class DatenpolFunctions():
fi.close() fi.close()
return content return content
def resolve_xml_id(self, value):
# In case the value starts with 'XML:' then take the remaining string
# as an XML-Id, resolve it and return that. Otherwise return value
# unchanged.
if type(value) != str or value[:4] != 'XML:':
return value
xml_id = value[4:]
res_id = self._execute('ir.model.data', 'xmlid_to_res_id', xml_id)
if not res_id:
raise Exception('XML-Id "%s" nicht vorhanden!' % xml_id)
return res_id
def resolve_xml_ids(self, data):
# Resolve all XML-Ids in the dict data
# Note: This happens in-place, the original dict is returned
for k, v in data.iteritems():
data[k] = self.resolve_xml_id(v)
return data
def set_company(self): def set_company(self):
"""Setze Unternehmensdaten (Allgemein, RML, Logo)""" """Setze Unternehmensdaten (Allgemein, RML, Logo)"""
@ -344,15 +364,6 @@ class DatenpolFunctions():
return self._execute('res.users', 'write', [user_id], vals) return self._execute('res.users', 'write', [user_id], vals)
def setup_accounting(self): def setup_accounting(self):
"""Konfiguration Buchhaltung"""
vals = self._execute('account.installer', 'default_get', [])
vals['charts'] = self.config.chart_of_accounts
wizard_id = self._execute('account.installer', 'create', vals)
self._execute('account.installer', 'action_next', [wizard_id])
return True
def setup_accounting2(self):
"""Konfiguration Kontenplan""" """Konfiguration Kontenplan"""
c = self.config c = self.config
@ -690,14 +701,7 @@ class DatenpolFunctions():
"""Defaultwerte für Dokumente setzen""" """Defaultwerte für Dokumente setzen"""
for model, field, value in self.config.default_values: for model, field, value in self.config.default_values:
# Falls XML ID (prefix "XML:") dann die DB ID holen value = self.resolve_xml_id(value)
if value[0:4] == 'XML:':
xml_id = value[4:]
dummy, dummy2, res_id = self._execute('ir.model.data', 'xmlid_lookup', xml_id)
if not res_id:
raise Exception('Defaultwerte anlegen: XML ID %s nicht vorhanden!' % (xml_id))
value = res_id
vals = { vals = {
'name': field, 'name': field,
'model': model, 'model': model,
@ -800,7 +804,7 @@ class DatenpolFunctions():
if hasattr(self.config, 'finance_config'): if hasattr(self.config, 'finance_config'):
vals = self._execute('account.config.settings', 'default_get', []) vals = self._execute('account.config.settings', 'default_get', [])
vals.update(self.config.finance_config) vals.update(self.resolve_xml_ids(self.config.finance_config))
wizard_id = self._execute('account.config.settings', 'create', vals) wizard_id = self._execute('account.config.settings', 'create', vals)
return self._execute('account.config.settings', 'execute', [wizard_id]) return self._execute('account.config.settings', 'execute', [wizard_id])
return True return True