diff --git a/ext/custom-addons/dp_custom/models/product.py b/ext/custom-addons/dp_custom/models/product.py
index f65bba12..9878fe97 100644
--- a/ext/custom-addons/dp_custom/models/product.py
+++ b/ext/custom-addons/dp_custom/models/product.py
@@ -18,11 +18,11 @@
 #    along with this program.  If not, see .
 #
 ##############################################################################
+from odoo.addons.component.core import Component
+
 from odoo import fields, models, api, _
 from odoo.exceptions import ValidationError
 
-from odoo.addons.component.core import Component
-
 
 class ProductXCategory(models.Model):
     _name = 'product.xcategory'
@@ -142,21 +142,30 @@ class ProductPricelistItemEventListener(Component):
 
     @api.model
     def on_record_write(self, record, fields=None):
-        partners = self.env['res.partner'].search([('property_product_pricelist', '=', record.id)])
+        partners = self.env['res.partner'].search([('property_product_pricelist', '=', record.pricelist_id.id)])
         for partner in partners:
-            if partner.portal_id and partner.active:
+            if partner.portal_id and partner.company_type == 'company':
                 partner.portal_export_pending = True
 
     @api.model
     def on_record_create(self, record, fields=None):
-        partners = self.env['res.partner'].search([('property_product_pricelist', '=', record.id)])
+        partners = self.env['res.partner'].search([('property_product_pricelist', '=', record.pricelist_id.id)])
         for partner in partners:
-            if partner.portal_id:
+            if partner.portal_id and partner.company_type == 'company':
                 partner.portal_export_pending = True
 
     @api.model
     def on_record_unlink(self, record):
-        partners = self.env['res.partner'].search([('property_product_pricelist', '=', record.id)])
+        partners = self.env['res.partner'].search([('property_product_pricelist', '=', record.pricelist_id.id)])
         for partner in partners:
-            if partner.portal_id:
+            if partner.portal_id and partner.company_type == 'company':
                 partner.portal_export_pending = True
+
+
+class ProductPricelistItem(models.Model):
+    _inherit = 'product.pricelist.item'
+
+    applied_on = fields.Selection(selection=[
+        ('3_global', 'Global'),
+        ('2_product_category', ' Product Category'),
+        ('0_product_variant', 'Product Variant')])
diff --git a/ext/custom-addons/dp_custom/models/res_partner.py b/ext/custom-addons/dp_custom/models/res_partner.py
index 4462539e..6ea85e64 100644
--- a/ext/custom-addons/dp_custom/models/res_partner.py
+++ b/ext/custom-addons/dp_custom/models/res_partner.py
@@ -34,17 +34,13 @@ class PartnerEventListener(Component):
     _apply_on = ['res.partner']
 
     def on_record_write(self, record, fields=None):
-        if record.active and record.portal_id:
-            if 'company_type' in fields:
-                if record.company_type == 'company' and record.type != 'delivery':
-                    self.env['res.partner'].with_delay().job_export_portal_price(record)
-            if 'property_product_pricelist' in fields:
-                for contact in record.child_ids:
-                    if contact.type != 'delivery':
-                        self.env['res.partner'].with_delay().job_export_portal_price(contact)
-            if 'parent_id' in fields:
-                if record.type != 'delivery':
-                    self.env['res.partner'].with_delay().job_export_portal_price(record)
+        if record.active and record.portal_id and record.company_type == 'company':
+            if 'company_type' in fields or 'property_product_pricelist' in fields:
+                self.env['res.partner'].with_delay().job_export_portal_price(record)
+
+    def on_record_create(self, record, fields=None):
+        if record.active and record.portal_id and record.company_type == 'company':
+            self.env['res.partner'].with_delay().job_export_portal_price(record)
 
 
 class Partner(models.Model):
@@ -283,8 +279,7 @@ class Partner(models.Model):
     def cron_export_portal_prices(self):
         partners = self.search([('portal_export_pending', '=', True), ('company_id', '=', self.env.user.company_id.id)])
         for partner in partners:
-            if partner.type != 'delivery':
-                self.with_delay().job_export_portal_price(partner)
+            self.with_delay().job_export_portal_price(partner)
             partner.portal_export_pending = False
 
     @api.multi
@@ -296,14 +291,14 @@ class Partner(models.Model):
         data = []
         for item in pricelist.item_ids:
             if item.compute_price == 'percentage' and item.applied_on in ['3_global', '2_product_category',
-                                                                          '1_product']:
+                                                                          '0_product_variant']:
                 code = False
                 if item.applied_on == '2_product_category':
                     code = item.categ_id.code
-                if item.applied_on == '1_product':
+                if item.applied_on == '0_product_variant':
                     code = item.product_tmpl_id.default_code
                 data.append({
-                    'customer_id': partner_id.portal_id,
+                    'customer_id': partner_id.commercial_partner_id.portal_id,
                     'code': code,
                     'discount': 1 - (item.percent_price / 100)
                 })
diff --git a/ext/custom-addons/dp_custom/views/product_views.xml b/ext/custom-addons/dp_custom/views/product_views.xml
index f532d46e..9d7438e4 100644
--- a/ext/custom-addons/dp_custom/views/product_views.xml
+++ b/ext/custom-addons/dp_custom/views/product_views.xml
@@ -62,6 +62,17 @@
         
     
 
+    
+        dp_product_pricelist_item_form_view
+        product.pricelist.item
+        
+        
+            
+                {'invisible':[('applied_on', '=', '1_product')]}
+            
+        
+    
+
     
         product_xcategory_form_view
         product.xcategory
diff --git a/ext/custom-addons/dp_custom/wizards/portal_assign_company.py b/ext/custom-addons/dp_custom/wizards/portal_assign_company.py
index a87ed3ab..7c8ea910 100644
--- a/ext/custom-addons/dp_custom/wizards/portal_assign_company.py
+++ b/ext/custom-addons/dp_custom/wizards/portal_assign_company.py
@@ -64,7 +64,7 @@ class PortalAssignCompany(models.TransientModel):
 
         # Wichtig hier ist, dass dieser Call vor dem ersten Write stattfindet, da das Portal
         # parallel einen Call absetzt, dann dann blockieren würde.
-        self.send_to_portal(partner.portal_id, partner.id)
+        # self.send_to_portal(partner.portal_id, partner.id)
         partner.write({'portal_pending': False, 'active': True})
 
         return True