Fall 771: allinonept Umgebung aufsetzen

develop
Ahmed Aly 2018-10-05 16:55:40 +02:00
parent 408c64df44
commit 0d68232293
16 changed files with 199 additions and 59 deletions

View File

@ -49,11 +49,9 @@
'wizards/wizard_confirm_print_invoice.xml',
'security/security.xml',
'data/dp_custom_data.xml',
'data/glaser_company_data.xml',
'data/tz_austria_company_data.xml',
'data/product_data.xml',
'data/tz_tax_data.xml',
'data/glaser_tax_data.xml',
'data/cron_job.xml',
'views/dp_custom_views.xml',
'views/res_line_views.xml',

View File

@ -14,17 +14,4 @@
</field>
</record>
<record id="cron_export_portal_prices_glaser" forcecreate='True' model="ir.cron">
<field name="name">Export Portal Prices Glaser</field>
<field eval="False" name="active"/>
<field name="nextcall" eval="DateTime(2017,1,1,1,0,0)" />
<field name="user_id" ref="dp_custom.glaser_admin_user"/>
<field name="interval_number">1</field>
<field name="interval_type">days</field>
<field name="numbercall">-1</field>
<field name="model_id" ref="base.model_res_partner"/>
<field name="state">code</field>
<field name="code">model.cron_export_portal_prices()
</field>
</record>
</odoo>

View File

@ -18,12 +18,6 @@
(4,ref('dp_custom.group_allow_delete_so_attachments'))]"/>
</record>
<record id="base.main_company" model="res.company">
<field name="admin_user_id" eval="ref('tz_admin_user')"/>
<field name="inter_company_supplier_id" eval="ref('dp_custom.glaser_and_co_company')"/>
<field name="percentage_billing">70.00</field>
</record>
<function id="set_company_customer" model="res.company" name="set_company_customer">
<value eval="[ref('base.main_company')]"/>
</function>

View File

@ -0,0 +1,20 @@
# -*- coding: utf-8 -*-
##############################################################################
#
# datenpol gmbh
# Copyright (C) 2013-TODAY datenpol gmbh (<http://www.datenpol.at/>)
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################

View File

@ -0,0 +1,46 @@
# -*- coding: utf-8 -*-
##############################################################################
#
# datenpol gmbh
# Copyright (C) 2013-TODAY datenpol gmbh (<http://www.datenpol.at/>)
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
# noinspection PyStatementEffect
{
'name': 'Unternehmen Glaser Daten',
'category': 'Custom',
'version': '11.0.1.0.0',
'description': """Fügt alle Daten für das Unternehmen Glaser & Co hinzu""",
'author': 'datenpol gmbh',
'website': 'http://www.datenpol.at/',
'depends': [
'base',
'account',
'sale_stock',
'queue_job',
'website',
'dp_custom'
],
'data': [
'data/glaser_company_data.xml',
'data/glaser_tax_data.xml',
'data/cron_job.xml',
],
'installable': True,
'auto_install': False,
}

View File

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<odoo noupdate="1">
<record id="dp_custom.cron_export_portal_prices_glaser" forcecreate='True' model="ir.cron">
<field name="name">Export Portal Prices Glaser</field>
<field eval="False" name="active"/>
<field name="nextcall" eval="DateTime(2017,1,1,1,0,0)" />
<field name="user_id" ref="dp_custom.glaser_admin_user"/>
<field name="interval_number">1</field>
<field name="interval_type">days</field>
<field name="numbercall">-1</field>
<field name="model_id" ref="base.model_res_partner"/>
<field name="state">code</field>
<field name="code">model.cron_export_portal_prices()
</field>
</record>
</odoo>

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo noupdate="1">
<record id="glaser_and_co_company" model="res.company">
<record id="dp_custom.glaser_and_co_company" model="res.company">
<field name="name">Glaser &amp; Co.</field>
<field name="street">Neugasse 36</field>
<field name="city">Spannberg</field>
@ -15,21 +15,21 @@
<field name="vat_check_vies" eval="False"/>
</record>
<function id="set_company_supplier" model="res.company" name="set_company_supplier">
<value eval="[ref('glaser_and_co_company')]"/>
<function id="dp_custom.set_company_supplier" model="res.company" name="set_company_supplier">
<value eval="[ref('dp_custom.glaser_and_co_company')]"/>
</function>
<function id="set_company_logo" model="res.company" name="set_company_logo">
<value eval="[ref('glaser_and_co_company')]"/>
<function id="dp_custom.set_company_logo" model="res.company" name="set_company_logo">
<value eval="[ref('dp_custom.glaser_and_co_company')]"/>
<value>../static/src/img/logo_glaser.png</value>
</function>
<record id="glaser_admin_user" model="res.users">
<record id="dp_custom.glaser_admin_user" model="res.users">
<field name="lastname">Glaser &amp; Co. ADMIN</field>
<field name="login">glaser-admin</field>
<field name="email">admin@glaser.at</field>
<field name="company_id" eval="ref('glaser_and_co_company')"/>
<field name="company_ids" eval="[(6, 0, [ref('glaser_and_co_company')])]"/>
<field name="company_id" eval="ref('dp_custom.glaser_and_co_company')"/>
<field name="company_ids" eval="[(6, 0, [ref('dp_custom.glaser_and_co_company')])]"/>
<field name="groups_id"
eval="[(4,ref('account.group_account_manager')),
(4,ref('sales_team.group_sale_manager')),
@ -42,15 +42,21 @@
(4,ref('dp_custom.group_allow_delete_so_attachments'))]"/>
</record>
<record id="glaser_and_co_company" model="res.company">
<field name="admin_user_id" eval="ref('glaser_admin_user')"/>
<record id="dp_custom.glaser_and_co_company" model="res.company">
<field name="admin_user_id" eval="ref('dp_custom.glaser_admin_user')"/>
</record>
<record id="base.main_company" model="res.company">
<field name="admin_user_id" eval="ref('dp_custom.tz_admin_user')"/>
<field name="inter_company_supplier_id" eval="ref('dp_custom.glaser_and_co_company')"/>
<field name="percentage_billing">70.00</field>
</record>
<!--<function-->
<!--id="set_company_favicon"-->
<!--id="dp_custom.set_company_favicon"-->
<!--model="res.company"-->
<!--name="set_company_favicon"-->
<!--eval="[ref('glaser_and_co_company')]">-->
<!--eval="[ref('dp_custom.glaser_and_co_company')]">-->
<!--<value>../static/src/img/favicon_glaser.png</value>-->
<!--</function>-->

View File

@ -1,80 +1,80 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo noupdate="1">
<record id="glaser_account_tax_20_mwst" model="account.tax">
<record id="dp_custom.glaser_account_tax_20_mwst" model="account.tax">
<field name="name">20% MwSt.</field>
<field name="description">20% MwSt.</field>
<field name="type_tax_use">sale</field>
<field name="amount_type">percent</field>
<field name="amount">20</field>
<field name="bmd_tax_code">1</field>
<field name="company_id" eval="ref('glaser_and_co_company')"/>
<field name="company_id" eval="ref('dp_custom.glaser_and_co_company')"/>
</record>
<record id="glaser_account_tax_10_mwst" model="account.tax">
<record id="dp_custom.glaser_account_tax_10_mwst" model="account.tax">
<field name="name">10% MwSt.</field>
<field name="description">10% MwSt.</field>
<field name="type_tax_use">sale</field>
<field name="amount_type">percent</field>
<field name="amount">10</field>
<field name="bmd_tax_code">1</field>
<field name="company_id" eval="ref('glaser_and_co_company')"/>
<field name="company_id" eval="ref('dp_custom.glaser_and_co_company')"/>
</record>
<record id="glaser_account_tax_0_mwst" model="account.tax">
<record id="dp_custom.glaser_account_tax_0_mwst" model="account.tax">
<field name="name">0% MwSt.</field>
<field name="description">0% MwSt.</field>
<field name="type_tax_use">sale</field>
<field name="amount_type">percent</field>
<field name="amount">0</field>
<field name="bmd_tax_code">1</field>
<field name="company_id" eval="ref('glaser_and_co_company')"/>
<field name="company_id" eval="ref('dp_custom.glaser_and_co_company')"/>
</record>
<record id="glaser_account_tax_0_reverse_charge" model="account.tax">
<record id="dp_custom.glaser_account_tax_0_reverse_charge" model="account.tax">
<field name="name">0% Reverse Charge</field>
<field name="description">0% Rev. Chg.</field>
<field name="type_tax_use">sale</field>
<field name="amount_type">percent</field>
<field name="amount">0</field>
<field name="bmd_tax_code">7</field>
<field name="company_id" eval="ref('glaser_and_co_company')"/>
<field name="company_id" eval="ref('dp_custom.glaser_and_co_company')"/>
</record>
<record id="glaser_account_tax_0_drittland" model="account.tax">
<record id="dp_custom.glaser_account_tax_0_drittland" model="account.tax">
<field name="name">0% Drittland</field>
<field name="description">0% Drittland</field>
<field name="type_tax_use">sale</field>
<field name="amount_type">percent</field>
<field name="amount">0</field>
<field name="bmd_tax_code">5</field>
<field name="company_id" eval="ref('glaser_and_co_company')"/>
<field name="company_id" eval="ref('dp_custom.glaser_and_co_company')"/>
</record>
<record id="glaser_account_fiscal_position_ig_ausland" model="account.fiscal.position">
<record id="dp_custom.glaser_account_fiscal_position_ig_ausland" model="account.fiscal.position">
<field name="name">IG-Ausland</field>
<field name="note">Übergang der Steuerschuld auf den Leistungsempfänger gem § 19 Abs 1
UStG
</field>
<field name="company_id" eval="ref('glaser_and_co_company')"/>
<field name="company_id" eval="ref('dp_custom.glaser_and_co_company')"/>
</record>
<record id="glaser_account_fiscal_position_tax_ig_ausland" model="account.fiscal.position.tax">
<record id="dp_custom.glaser_account_fiscal_position_tax_ig_ausland" model="account.fiscal.position.tax">
<field name="tax_src_id" search="[('name','=','20% MwSt.')]"/>
<field name="tax_dest_id" search="[('name','=','0% Reverse Charge')]"/>
<field name="position_id" ref="glaser_account_fiscal_position_ig_ausland"/>
<field name="position_id" ref="dp_custom.glaser_account_fiscal_position_ig_ausland"/>
</record>
<record id="glaser_account_fiscal_position_drittland" model="account.fiscal.position">
<record id="dp_custom.glaser_account_fiscal_position_drittland" model="account.fiscal.position">
<field name="name">Drittland</field>
<field name="note"/>
<field name="company_id" eval="ref('glaser_and_co_company')"/>
<field name="company_id" eval="ref('dp_custom.glaser_and_co_company')"/>
</record>
<record id="glaser_account_fiscal_position_tax_drittland" model="account.fiscal.position.tax">
<record id="dp_custom.glaser_account_fiscal_position_tax_drittland" model="account.fiscal.position.tax">
<field name="tax_src_id" search="[('name','=','20% MwSt.')]"/>
<field name="tax_dest_id" search="[('name','=','0% Drittland')]"/>
<field name="position_id" ref="glaser_account_fiscal_position_drittland"/>
<field name="position_id" ref="dp_custom.glaser_account_fiscal_position_drittland"/>
</record>
</odoo>

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 329 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

View File

@ -126,6 +126,7 @@ def main():
'set_company',
'enable_res_config_for_company', # muss bei multicompany ausgefuehrt werden
'set_multicompany_data', # set_multicompany_data
'set_multicompany_admin_user',
'set_uom',
'set_taxes',
'set_fiscal_position',

View File

@ -47,7 +47,7 @@ class Config(object):
self.settings = {
# Einstellungen Allgemein
'auth_signup_reset_passwort': True,
# 'auth_signup_reset_passwort': True,
'group_multi_company': True,
# Einstellungen Verkauf
@ -92,6 +92,8 @@ class Config(object):
'module_mrp_byproduct': False,
'use_manufacturing_lead': False,
'manufacturing_lead': 0,
'external_report_layout': 'custom'
}
self.removal_strategy = 'fifo' # [fifo], [lifo], [fefo]
@ -127,7 +129,6 @@ class Config(object):
'dp_reports_account',
'dp_reports_purchase',
'dp_reports_stock',
# 'dp_reports_stock',
'account_cancel',
'stock',
'dp_changelogs',

View File

@ -7,7 +7,7 @@ class ConfigAllInOnePT(Config):
def __init__(self):
super(ConfigAllInOnePT, self).__init__()
self.company_xmlid = 'dp_custom.glaser_and_co_company'
self.company_xmlid = 'base.main_company'
self.company_data = {
'name': 'TZ Technik Solution GesmbH',
@ -18,7 +18,7 @@ class ConfigAllInOnePT(Config):
'phone': False,
'email': False,
'website': False,
'company_registry': False,
'company_registry': '405457k',
'country_id': 'at', # 'de' für Deutschland
'vat': False,
'vat_check_vies': True,
@ -27,6 +27,15 @@ class ConfigAllInOnePT(Config):
# 'favicon_backend_mimetype': 'image/x-icon'
}
self.multi_company_admin = {
'id': "ref('dp_custom.tz_admin_user')",
'lastname': 'TZ Technik ADMIN',
'login': 'tz-admin',
'company_id': "ref('base.main_company')",
'company_ids': ["ref('base.main_company')"],
'email': 'admin@tz-austria.at'
}
# Nur für Lager
# Wenn nicht gesetzt, dann wird der Firmenname genommen
self.warehouse_name = 'TZ Technik'
@ -83,9 +92,40 @@ class ConfigAllInOnePT(Config):
# },
}
self.multi_company_settings = {
'chart_template_id': ('xmlid', 'l10n_at.austria_chart_template')
}
self.modules.extend([
'mrp',
'hr',
'board',
'mass_mailing'
'crm',
'crm_project',
'crm_livechat',
'sale_crm',
'wk_debrand_odoo',
'mobikul'
])
self.modules.extend([
'mrp',
'hr',
'board',
'mass_mailing'
'crm',
'crm_project',
'crm_livechat',
'sale_crm',
'wk_debrand_odoo',
'mobikul'
])
self.multi_website_modules.extend([
'website_customer_group',
'website_blog',
'website_crm',
'website_mass_mailing',
'website_hr',
])
self.websites = [
{

View File

@ -42,6 +42,7 @@ ENVIRONMENTS = {
'br-glaser' : Environment('http://localhost', '8080', 'tz-austria_1', 'glaser-admin', 'x', 'admin', config = ConfigGlaser()),
'aa' : Environment('http://localhost', '8080', 'tz-austria_1', 'admin', 'x', 'admin', config = ConfigTZA()),
'aa-allinonept': Environment('http://localhost', '8080', 'tz-austria_allinonept', 'admin', 'x', 'admin', config = ConfigAllInOnePT()),
'aa-tz' : Environment('http://localhost', '8080', 'tz-austria_1', 'tz-admin', 'x', 'admin', config = ConfigTZA()),
'aa-glaser' : Environment('http://localhost', '8080', 'tz-austria_1', 'glaser-admin', 'x', 'admin', config = ConfigGlaser()),

View File

@ -155,7 +155,6 @@ class DatenpolFunctions(object):
def enable_res_config_for_company(self):
"""Setze beim portal_template_user die Company als zulässiges Unternehmen"""
portal_template_user = self.odoo.env.ref('auth_signup.default_template_user')
vals = {}
companies = self.odoo.env['res.company'].search([])
vals_company = []
for company in companies:
@ -183,6 +182,36 @@ class DatenpolFunctions(object):
return res_settings.browse(wizard_id).execute()
return True
def set_multicompany_admin_user(self):
"""Multicompany User erstellen oder """
admin_user_data = self.config.multi_company_admin
if not admin_user_data:
return True
user_obj = self.odoo.env['res.users']
for key, value in admin_user_data.items():
if type(value) is str:
if value.startswith("ref('") and value.endswith("')"):
xml_id = value.replace("ref('", "").replace("')", "")
admin_user_data[key] = self.odoo.env.ref(xml_id).id
if type(value) is list:
for idx, rec in enumerate(value):
if rec.startswith("ref('") and rec.endswith("')"):
xml_id = rec.replace("ref('", "").replace("')", "")
admin_user_data[key][idx] = self.odoo.env.ref(xml_id).id
if admin_user_data.get('id'):
user_id = admin_user_data['id']
del admin_user_data['id']
user_obj.browse(user_id).write(admin_user_data)
else:
if 'id' in admin_user_data.keys():
del admin_user_data['id']
vals = user_obj.default_get([])
vals.update(admin_user_data)
user_obj.create(vals)
return True
def load_languages(self):
"""Lade zusätzliche Sprachen"""