diff --git a/dev/scripts/interfaces/sst01_portal_create_company.py b/dev/scripts/interfaces/sst01_portal_create_company.py
index e6d9362b..cc03b44d 100755
--- a/dev/scripts/interfaces/sst01_portal_create_company.py
+++ b/dev/scripts/interfaces/sst01_portal_create_company.py
@@ -30,7 +30,7 @@ values = {
     "line_ids": ["0000"],
     "opt_out": True,
     "lang": "de",
-    "retailer": True,
+    "is_retailer": True,
 }
 
 res_partner_obj = odoo.env['res.partner']
diff --git a/dev/scripts/interfaces/sst11_pg_create_company.py b/dev/scripts/interfaces/sst11_pg_create_company.py
index 8915a747..ed3a1782 100755
--- a/dev/scripts/interfaces/sst11_pg_create_company.py
+++ b/dev/scripts/interfaces/sst11_pg_create_company.py
@@ -37,7 +37,9 @@ values = {
     "date_vat_check": "2017-08-04",
     "active": True,
     "retail_partner_id": "004354",
-    "retailer": False,
+    "is_retailer": False,
+    "collective_bill": False,
+    "fiscal_position": "Drittland",# IG-Ausland, Drittland or False
     "carrier_id": "LKW"
 }
 
diff --git a/ext/custom-addons/dp_custom/__manifest__.py b/ext/custom-addons/dp_custom/__manifest__.py
index 5043ebc1..539b99e3 100644
--- a/ext/custom-addons/dp_custom/__manifest__.py
+++ b/ext/custom-addons/dp_custom/__manifest__.py
@@ -37,7 +37,7 @@
         'report_intrastat',
         'dp_intercompany_invoicing',
         'sale_partner_incoterm',
-        'base_user_role',
+        'base_user_role'
     ],
     'data': [
         'views/commission_account.xml',
@@ -49,6 +49,7 @@
         'data/glaser_company_data.xml',
         'data/tz_austria_company_data.xml',
         'data/product_data.xml',
+        'data/tax_data.xml',
         'data/cron_job.xml',
         'views/dp_custom_views.xml',
         'views/res_line_views.xml',
diff --git a/ext/custom-addons/dp_custom/data/tax_data.xml b/ext/custom-addons/dp_custom/data/tax_data.xml
new file mode 100644
index 00000000..894b9f8f
--- /dev/null
+++ b/ext/custom-addons/dp_custom/data/tax_data.xml
@@ -0,0 +1,73 @@
+
+
+
+    
+        20% MwSt.
+        20% MwSt.
+        sale
+        percent
+        20
+        1
+    
+
+    
+        10% MwSt.
+        10% MwSt.
+        sale
+        percent
+        10
+        1
+    
+
+    
+        0% MwSt.
+        0% MwSt.
+        sale
+        percent
+        0
+        1
+    
+
+    
+        0% Reverse Charge
+        0% Rev. Chg.
+        sale
+        percent
+        0
+        7
+    
+
+    
+        0% Drittland
+        0% Drittland
+        sale
+        percent
+        0
+        5
+    
+
+    
+        IG-Ausland
+        Übergang der Steuerschuld auf den Leistungsempfänger gem § 19 Abs 1
+            UStG
+        
+    
+
+    
+        
+        
+        
+    
+
+    
+        Drittland
+        
+    
+
+    
+        
+        
+        
+    
+
+
diff --git a/ext/custom-addons/dp_custom/models/account.py b/ext/custom-addons/dp_custom/models/account.py
index e58ea93a..c37960d6 100644
--- a/ext/custom-addons/dp_custom/models/account.py
+++ b/ext/custom-addons/dp_custom/models/account.py
@@ -54,12 +54,14 @@ class AccountInvoiceLine(models.Model):
 
     def write(self, vals):
         res = super(AccountInvoiceLine, self).write(vals)
-        if vals.get('intrastat_id', False) and vals.get('lot_id', False):
-            self.env['stock.production.lot'].browse([vals.get('lot_id', False)]).write({
-                'intrastat_id': vals.get('intrastat_id')
-            })
-        elif vals.get('intrastat_id', False) and not vals.get('lot_id', False):
-            raise UserError(_('Der Intrastrat Code kann nur gesetzt werden wenn ein Lot angegeben wurde.'))
+        for record in self:
+            lot_id = record.lot_id if 'lot_id' not in vals else vals.get('lot_id', False)
+            if vals.get('intrastat_id', False) and lot_id:
+                self.env['stock.production.lot'].browse([vals.get('lot_id', False)]).write({
+                    'intrastat_id': vals.get('intrastat_id')
+                })
+            elif vals.get('intrastat_id', False) and not lot_id:
+                raise UserError(_('Der Intrastrat Code kann nur gesetzt werden wenn ein Lot angegeben wurde.'))
         return res
 
 
diff --git a/ext/custom-addons/dp_custom/models/res_partner.py b/ext/custom-addons/dp_custom/models/res_partner.py
index a7047568..55cf1779 100644
--- a/ext/custom-addons/dp_custom/models/res_partner.py
+++ b/ext/custom-addons/dp_custom/models/res_partner.py
@@ -216,7 +216,8 @@ class Partner(models.Model):
                     _("Die Lieferbedingung mit dem Code \'%s\' kann nicht zugeordnet werden") % vals['incoterm'])
 
         if vals.get('company_odoo_id', False):
-            parent_id = self.env['res.partner'].with_context(active_test=False).search([('id', '=', vals['company_odoo_id'])])
+            parent_id = self.env['res.partner'].with_context(active_test=False).search(
+                [('id', '=', vals['company_odoo_id'])])
             if parent_id:
                 vals['parent_id'] = parent_id.id
                 vals['street'] = parent_id.street
@@ -240,6 +241,20 @@ class Partner(models.Model):
                 raise ValidationError(
                     _("Die Auslieferungsmethode mit dem Namen \'%s\' existiert nicht") % vals['carrier_id'])
 
+        if 'fiscal_position' in vals:
+            if not vals.get('fiscal_position', False):
+                vals['property_account_position_id'] = False
+                del vals['fiscal_position']
+            else:
+                property_account_position_id = self.env['account.fiscal.position'].search(
+                    [('name', '=', vals['fiscal_position'])])
+                if property_account_position_id:
+                    vals['property_account_position_id'] = property_account_position_id.id
+                    del vals['fiscal_position']
+                else:
+                    raise ValidationError(
+                        _("Steuerzuorndung \'%s\' kann nicht zugeordnet werden") % vals['fiscal_position'])
+
         return vals
 
     @api.model
@@ -247,15 +262,15 @@ class Partner(models.Model):
         common_list = ['street', 'street2', 'zip', 'city', 'country_id', 'fax', 'phone', 'mobile',
                        'endkunde', 'line_ids', 'lang', 'portal_id', 'email', 'opt_out']
         if self.env.context.get('sst_1', False):
-            common_list.extend(['name', 'name2', 'info_kundennr', 'info_uid', 'retailer'])
+            common_list.extend(['name', 'name2', 'info_kundennr', 'info_uid', 'comment', 'retail_partner_id'])
             return common_list
         elif self.env.context.get('sst_11', False):
             common_list.extend(['name', 'ref', 'partner_sector_id', 'comment', 'vat', 'property_payment_term_id',
-                                'property_pricelist_id', 'date_vat_check', 'active', 'property_product_pricelist',
-                                'retail_partner_id', 'retailer', 'info_uid', 'name2', 'carrier_id'])
+                                'date_vat_check', 'active', 'property_product_pricelist', 'retail_partner_id',
+                                'is_retailer', 'name2', 'carrier_id', 'collective_bill', 'fiscal_position'])
             return common_list
         elif self.env.context.get('sst_14', False):
-            common_list.extend(['firstname', 'lastname', 'midname', 'company_odoo_id'])
+            common_list = ['firstname', 'lastname', 'midname', 'email', 'company_odoo_id', 'portal_id', 'opt_out']
             return common_list
         else:
             return super(Partner, self)._get_specified_fields()
diff --git a/ext/custom-addons/dp_custom/models/sale.py b/ext/custom-addons/dp_custom/models/sale.py
index 9858927d..4d7b6456 100644
--- a/ext/custom-addons/dp_custom/models/sale.py
+++ b/ext/custom-addons/dp_custom/models/sale.py
@@ -63,7 +63,7 @@ class SaleOrder(models.Model):
     @api.onchange('partner_invoice_id')
     def _onchange_partner_invoice_id(self):
         for record in self:
-            if record.partner_invoice_id.retailer:
+            if record.partner_invoice_id.is_retailer:
                 record.payment_term_id = record.partner_invoice_id.property_payment_term_id
 
     @api.multi
@@ -458,7 +458,7 @@ class SaleOrderLine(models.Model):
                 vals = line._prepare_invoice_line(qty=qty)
                 vals.update({'invoice_id': invoice_id, 'sale_line_ids': [(6, 0, [line.id])]})
                 invoice_lines |= self.env['account.invoice.line'].create(vals)
-                if line.order_id.partner_invoice_id.retailer:
+                if line.order_id.partner_invoice_id.is_retailer:
                     discount = line.calc_discount()
                     discount = int(round(discount))
                     if discount > 0:
diff --git a/ext/custom-addons/dp_retail_invoice/models/res_partner.py b/ext/custom-addons/dp_retail_invoice/models/res_partner.py
index 8b63ed92..1b2e6941 100644
--- a/ext/custom-addons/dp_retail_invoice/models/res_partner.py
+++ b/ext/custom-addons/dp_retail_invoice/models/res_partner.py
@@ -24,8 +24,8 @@ from odoo import api, fields, models
 class Partner(models.Model):
     _inherit = 'res.partner'
 
-    retailer = fields.Boolean(string='Ist ein Händler')
-    retail_partner_id = fields.Many2one(comodel_name='res.partner', string='Händler', domain=[('retailer', '=', True)],
+    is_retailer = fields.Boolean(string='Ist ein Händler')
+    retail_partner_id = fields.Many2one(comodel_name='res.partner', string='Händler', domain=[('is_retailer', '=', True)],
                                         help='Wenn ein Händler existiert, dann passiert die Verrechnung über den Händler')
 
     @api.multi
diff --git a/ext/custom-addons/dp_retail_invoice/views/res_partner_views.xml b/ext/custom-addons/dp_retail_invoice/views/res_partner_views.xml
index 71508fba..50f2594f 100644
--- a/ext/custom-addons/dp_retail_invoice/views/res_partner_views.xml
+++ b/ext/custom-addons/dp_retail_invoice/views/res_partner_views.xml
@@ -7,7 +7,7 @@
         
         
             
-                
+                
             
             
                 
diff --git a/setup/lib/config.py b/setup/lib/config.py
index 847239d9..60ffca94 100644
--- a/setup/lib/config.py
+++ b/setup/lib/config.py
@@ -7,8 +7,8 @@ class Config(object):
 
         self.module_name = None
         self.lang = 'de_DE'  # de_DE, en_US
-        self.default_sales_tax = 'Mehrwertsteuer 20%'
-        self.default_supplier_tax = 'Vorsteuer 20%'
+        self.default_sales_tax = '20% MwSt'
+        self.default_supplier_tax = '20% VSt'
         self.price_decimals = 2  # Nachkommastellen Preis
         self.uom_decimals = 3  # Nachkommastellen Mengeneinheiten
 
@@ -30,14 +30,19 @@ class Config(object):
         # [pick_pack_ship] Verpacken Sie die Produkte an einer Pack-Station bevor Sie den Versand vornehmen
         self.delivery_steps = 'ship_only'
 
+        # Aktive Steuern
+        self.valid_taxes = [
+            '20% MwSt.',
+            '10% MwSt.',
+            '0% MwSt.',
+            '0% Rev. Chg.',
+            '0% Drittland'
+        ]
+
         # Aktive Steuerzuordnungen
         self.valid_fiscal_positions = [
-            # 'Lieferant EU (ohne Ust-ID)',
-            # 'Lieferant EU Unternehmen (mit USt-ID)',
-            # 'Lieferant Ausland',
-            'Kunde Ausland',
-            'Kunde EU (ohne USt-ID)',
-            'Kunde EU Unternehmen (mit USt-ID)',
+            'IG-Ausland',
+            'Drittland'
         ]
 
         self.settings = {
diff --git a/setup/lib/functions.py b/setup/lib/functions.py
index 2f893420..b28fdc28 100644
--- a/setup/lib/functions.py
+++ b/setup/lib/functions.py
@@ -182,11 +182,13 @@ class DatenpolFunctions(object):
             [('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)
-        return True
+        # 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)
+        # return True
+        tax_ids = self.odoo.env['account.tax'].search([('description', 'not in', self.config.valid_taxes)])
+        return self.odoo.env['account.tax'].browse(tax_ids).write({'active': False})
 
     def set_incoterms(self):
         """Lieferbedingungen setzen"""
@@ -390,8 +392,8 @@ class DatenpolFunctions(object):
         self.odoo.env['account.fiscal.position'].write(invalid_ids, {'active': False})
 
         # 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_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)])
 
         #        position_tax_line_ids = self.odoo.env['account.fiscal.position.tax'].search(