dp_script: pricelisten können jetzt richtig gesetzt werden
parent
644619d3c4
commit
3499d5aa29
|
|
@ -49,7 +49,7 @@ class Config():
|
|||
'group_uom': True, # Verwende Mengeneinheiten
|
||||
'group_discount_per_so_line': True, # Rabatt auf Verkaufszeilen
|
||||
'multi_sales_price': True, # Mehrere Verkaufspreise pro Produkt
|
||||
'multi_sales_price_method': 'formula',
|
||||
'multi_sales_price_method': 'percentage',
|
||||
# [percentage] Multiple prices per product (e.g. customer segments, currencies)
|
||||
# [formula] rices computed from formulas (discounts, margins, roundings)
|
||||
'module_sale_margin': False,
|
||||
|
|
|
|||
|
|
@ -6,6 +6,7 @@ import odoorpc
|
|||
|
||||
from urllib.parse import urlparse
|
||||
|
||||
|
||||
class DatenpolFunctions:
|
||||
def __init__(self, environment, config):
|
||||
self.env = environment
|
||||
|
|
@ -40,8 +41,10 @@ class DatenpolFunctions:
|
|||
with open(self.config.dump_file, 'rb') as dump_file:
|
||||
self.odoo.db.restore(self.env.super_admin_pw, self.env.dbname, dump_file, True)
|
||||
except Exception:
|
||||
raise Exception("Wiederherstellen der Datenbank fehlgeschlagen. Eventuell wurde './dp [env] dump' nicht ausgeführt.")
|
||||
print("\nACHTUNG: Nicht vergessen './dp [env] anonym' auszuführen, sodass es zu keiner Kommunikation mit dem Produktivsystem kommt")
|
||||
raise Exception(
|
||||
"Wiederherstellen der Datenbank fehlgeschlagen. Eventuell wurde './dp [env] dump' nicht ausgeführt.")
|
||||
print(
|
||||
"\nACHTUNG: Nicht vergessen './dp [env] anonym' auszuführen, sodass es zu keiner Kommunikation mit dem Produktivsystem kommt")
|
||||
return True
|
||||
|
||||
def drop_db(self):
|
||||
|
|
@ -62,6 +65,24 @@ class DatenpolFunctions:
|
|||
|
||||
res_settings = self.odoo.env['res.config.settings']
|
||||
vals = res_settings.default_get([])
|
||||
if self.config.settings.get('multi_sales_price', False):
|
||||
if self.config.settings.get('multi_sales_price_method', False) and self.config.settings.get(
|
||||
'multi_sales_price_method', False) == 'percentage':
|
||||
self.config.settings.update({
|
||||
"group_sale_pricelist": True,
|
||||
"group_product_pricelist": False,
|
||||
"group_pricelist_item": True,
|
||||
"sale_pricelist_setting": "formula",
|
||||
})
|
||||
if self.config.settings.get('multi_sales_price_method', False) and self.config.settings.get(
|
||||
'multi_sales_price_method', False) == 'formula':
|
||||
self.config.settings.update({
|
||||
"group_sale_pricelist": True,
|
||||
"group_product_pricelist": True,
|
||||
"group_pricelist_item": False,
|
||||
"sale_pricelist_setting": "percentage",
|
||||
})
|
||||
|
||||
vals.update(self.config.settings)
|
||||
wizard_id = res_settings.create(vals)
|
||||
return res_settings.execute(wizard_id)
|
||||
|
|
@ -151,12 +172,13 @@ class DatenpolFunctions:
|
|||
c = self.config
|
||||
# Standard Sales Tax
|
||||
sales_tax_ids = self.odoo.env['account.tax'].search(
|
||||
[('name', '=', c.default_sales_tax)])
|
||||
[('name', '=', c.default_sales_tax)])
|
||||
self.odoo.env['ir.default'].set('product.template', 'taxes_id', sales_tax_ids, company_id=self.company_id.id)
|
||||
# Standard Purchase Tax
|
||||
supplier_tax_ids = self.odoo.env['account.tax'].search(
|
||||
[('name', '=', c.default_supplier_tax)])
|
||||
self.odoo.env['ir.default'].set('product.template', 'supplier_taxes_id', supplier_tax_ids, company_id=self.company_id.id)
|
||||
[('name', '=', c.default_supplier_tax)])
|
||||
self.odoo.env['ir.default'].set('product.template', 'supplier_taxes_id', supplier_tax_ids,
|
||||
company_id=self.company_id.id)
|
||||
return True
|
||||
|
||||
def set_incoterms(self):
|
||||
|
|
@ -192,7 +214,8 @@ class DatenpolFunctions:
|
|||
"""Module installieren"""
|
||||
|
||||
module_to_install = [module] if module else self.config.modules
|
||||
mod_ids = self.odoo.env['ir.module.module'].search([('name', 'in', module_to_install), ('state', '!=', 'installed')])
|
||||
mod_ids = self.odoo.env['ir.module.module'].search(
|
||||
[('name', 'in', module_to_install), ('state', '!=', 'installed')])
|
||||
if not len(mod_ids) == 1 and raise_exception:
|
||||
raise Exception('Module %s not found or is not in state "uninstalled".' % module_to_install)
|
||||
self.odoo.env['ir.module.module'].button_immediate_install(mod_ids)
|
||||
|
|
@ -255,7 +278,8 @@ class DatenpolFunctions:
|
|||
j_ids = self.odoo.env['account.journal'].search([('code', '=', 'Re.:')])
|
||||
if len(j_ids) != 1:
|
||||
return False
|
||||
journals = self.odoo.env['account.journal'].read(j_ids, ['refund_sequence', 'sequence_id', 'refund_sequence_id'])
|
||||
journals = self.odoo.env['account.journal'].read(j_ids,
|
||||
['refund_sequence', 'sequence_id', 'refund_sequence_id'])
|
||||
|
||||
# Rechnungsnummer
|
||||
if seq_dict.get('account.invoice', False):
|
||||
|
|
@ -348,14 +372,14 @@ class DatenpolFunctions:
|
|||
|
||||
# Mappings inaktiver Steuern löschen (also wenn rechte Seite eine inaktive Steuer ist, wie z. B "strf. i.g.L"))
|
||||
valid_position_ids = self.odoo.env['account.fiscal.position'].search(
|
||||
[('name', 'in', c.valid_fiscal_positions)])
|
||||
#valid_tax_ids = self.odoo.env['account.tax'].search([('parent_id', '=', False)])
|
||||
[('name', 'in', c.valid_fiscal_positions)])
|
||||
# valid_tax_ids = self.odoo.env['account.tax'].search([('parent_id', '=', False)])
|
||||
|
||||
# position_tax_line_ids = self.odoo.env['account.fiscal.position.tax'].search(
|
||||
# [('position_id', 'in', valid_position_ids),
|
||||
# ('tax_dest_id', 'not in', valid_tax_ids)])
|
||||
# vals = {'tax_dest_id': False}
|
||||
# return self.odoo.env['account.fiscal.position.tax'].write(position_tax_line_ids, vals)
|
||||
# position_tax_line_ids = self.odoo.env['account.fiscal.position.tax'].search(
|
||||
# [('position_id', 'in', valid_position_ids),
|
||||
# ('tax_dest_id', 'not in', valid_tax_ids)])
|
||||
# vals = {'tax_dest_id': False}
|
||||
# return self.odoo.env['account.fiscal.position.tax'].write(position_tax_line_ids, vals)
|
||||
return True
|
||||
|
||||
def update_module(self):
|
||||
|
|
@ -402,7 +426,7 @@ class DatenpolFunctions:
|
|||
"""Modul Upgrade abbrechen"""
|
||||
module_name = self.config.module_name
|
||||
mod_ids = self.odoo.env['ir.module.module'].search(
|
||||
[('name', '=', module_name), ('state', '=', 'to upgrade')])
|
||||
[('name', '=', module_name), ('state', '=', 'to upgrade')])
|
||||
if not len(mod_ids) == 1:
|
||||
raise Exception("Module '%s' not found or is not installed." % module_name)
|
||||
|
||||
|
|
@ -429,7 +453,7 @@ class DatenpolFunctions:
|
|||
|
||||
for module_name in self.config.modules:
|
||||
mod_ids = self.odoo.env['ir.module.module'].search(
|
||||
[('name', '=', module_name), ('state', '=', 'installed')])
|
||||
[('name', '=', module_name), ('state', '=', 'installed')])
|
||||
if not len(mod_ids) == 1:
|
||||
raise Exception('Module "%s" not found or ist not installed.' % module_name)
|
||||
self.odoo.env['ir.module.module'].button_upgrade(mod_ids)
|
||||
|
|
@ -441,7 +465,7 @@ class DatenpolFunctions:
|
|||
"""Name des Zentrallagers setzen"""
|
||||
|
||||
is_installed = self.odoo.env['ir.module.module'].search(
|
||||
[('name', '=', 'stock'), ('state', '=', 'installed')])
|
||||
[('name', '=', 'stock'), ('state', '=', 'installed')])
|
||||
if is_installed:
|
||||
vals = {
|
||||
'name': self.config.warehouse_name or self.config.company_data.get('name', 'Mein Unternehmen'),
|
||||
|
|
@ -583,7 +607,8 @@ class DatenpolFunctions:
|
|||
return False
|
||||
|
||||
product_category_ids = self.odoo.env['product.category'].search([])
|
||||
return self.odoo.env['product.category'].write(product_category_ids, {'removal_strategy_id': strategy_ids[0]})
|
||||
return self.odoo.env['product.category'].write(product_category_ids,
|
||||
{'removal_strategy_id': strategy_ids[0]})
|
||||
return True
|
||||
|
||||
def set_default_values(self):
|
||||
|
|
@ -825,4 +850,3 @@ class DatenpolFunctions:
|
|||
if res_ids:
|
||||
return self.odoo.env['ir.translation'].unlink(res_ids)
|
||||
return True
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue