diff --git a/setup/lib/cli.py b/setup/lib/cli.py index 5106df6b..3499802f 100755 --- a/setup/lib/cli.py +++ b/setup/lib/cli.py @@ -52,18 +52,23 @@ def main(): 'set_warehouse', 'base_config', 'sale_config', + 'stock_config', + 'purchase_config', 'set_date_format', 'set_company', 'set_taxes', 'set_uom', 'set_steuerzuordnung', - 'setup_journals', + 'setup_journals', + 'set_currencies', ] if cmd == 'rollout': methods = [ 'login', - 'set_dokumentennummern', + 'set_dokumentennummern', + 'set_dmi_noupdate', + 'dmi_confirm_inventory', ] if cmd == 'update': diff --git a/setup/lib/config_at.py b/setup/lib/config_at.py index e263f43d..1391cedc 100644 --- a/setup/lib/config_at.py +++ b/setup/lib/config_at.py @@ -50,7 +50,12 @@ class Config(): 'Kunde Ausland', 'Kunde EU (ohne USt-ID)', 'Kunde EU Unternehmen (mit USt-ID)', - ] + ] + + # Aktive Währungen + self.valid_currencies = [ + 'EUR', + ] # Allgemeine Einstellungen self.base_config = { @@ -59,20 +64,22 @@ class Config(): # Einstellungen Verkauf self.sale_config = { - 'group_sale_delivery_address': True, # Verschiedene Adressen für Rechnung und Lieferung - 'group_sale_pricelist': True, # Preislisten verwenden - 'group_discount_per_so_line': True, # Rabatte verwenden - 'group_uom': True, # Verwende Mengeneinheiten + 'group_sale_delivery_address': True, # Verschiedene Adressen für Rechnung und Lieferung + 'group_sale_pricelist': True, # Preislisten verwenden + 'group_discount_per_so_line': True, # Rabatte verwenden + 'group_uom': True, # Verwende Mengeneinheiten } # Einstellungen Einkauf self.purchase_config = { - 'group_purchase_pricelist': True, # Preislisten verwenden + 'group_purchase_pricelist': True, # Preislisten verwenden } #Einstellungen Lager self.stock_config = { 'group_stock_multiple_locations': True, # Verwalten Sie mehrere Läger und Lagerorte + 'group_stock_tracking_lot': False, # Benutze Verpackungen: Paletten, Boxen, ... + 'group_stock_packaging': False, # Ermöglicht die Auswahl einer Verpackung } self.sequences = { diff --git a/setup/lib/functions.py b/setup/lib/functions.py index cdad1e4d..f527e1b8 100755 --- a/setup/lib/functions.py +++ b/setup/lib/functions.py @@ -273,6 +273,25 @@ class CamadeusFunctions(): wizard_id = self._execute('wizard.multi.charts.accounts', 'create', vals) res = self._execute('wizard.multi.charts.accounts', 'action_next', [wizard_id]) return True + + def set_currencies(self): + """Währungen setzen""" + + c = self.config + + # Set all currencies to active + ids = self._execute('res.currency', 'search', ['|',('active','=',True),('active','=',False)]) + res = self._execute('res.currency', 'write', ids, {'active': True}) + if not res: + return False + + # Set all other UOMs to inactive + inactive_ids = self._execute('res.currency', 'search', [('name','not in',c.valid_currencies)]) + res = self._execute('res.currency', 'write', inactive_ids, {'active': False}) + if not res: + return False + + return True def uninstall_chat(self): """Chat-Modul deinstallieren """ @@ -382,7 +401,28 @@ class CamadeusFunctions(): vals = { 'name': self.config.warehouse_name or self.config.company_data.get('name','Mein Unternehmen') } - warehouse_ids = self._execute('stock.warehouse', 'search', []) + warehouse_ids = self._execute('stock.warehouse', 'search', [('id','=',1)]) return self._execute('stock.warehouse', 'write', warehouse_ids, vals) else: return True + + def set_dmi_noupdate(self): + """DMI: Einträge auf 'no update' setzen""" + + domain = [('module','=','cam_dmi'),('noupdate','=',False)] + data_ids = self._execute('ir.model.data', 'search', domain) + + vals = {'noupdate': True} + return self._execute('ir.model.data', 'write', data_ids, vals) + + def dmi_confirm_inventory(self): + """DMI: Lagerstand einbuchen""" + + dummy,inventory_id = self._execute('ir.model.data', 'get_object_reference', 'cam_dmi','inv_init') + + inventory = self._execute('stock.inventory', 'read', inventory_id, ['state']) + + if inventory.get('state','') == 'confirm': + return self._execute('stock.inventory', 'action_done', [inventory_id]) + + return True \ No newline at end of file