diff --git a/core/dbobject.class.php b/core/dbobject.class.php
index 5f40cc25be..b409d36068 100644
--- a/core/dbobject.class.php
+++ b/core/dbobject.class.php
@@ -3696,6 +3696,7 @@ abstract class DBObject implements iDisplay
/**
* Complete a filter ($aContextParam['filter']) data from context
+ * (Called on source object)
* @param array $aContextParam Context used for creation form prefilling
*
*/
diff --git a/datamodels/2.x/itop-service-mgmt-provider/datamodel.itop-service-mgmt-provider.xml b/datamodels/2.x/itop-service-mgmt-provider/datamodel.itop-service-mgmt-provider.xml
index 97349e87c7..77c3a012a7 100755
--- a/datamodels/2.x/itop-service-mgmt-provider/datamodel.itop-service-mgmt-provider.xml
+++ b/datamodels/2.x/itop-service-mgmt-provider/datamodel.itop-service-mgmt-provider.xml
@@ -173,7 +173,36 @@
list
-
+
+
+
+Get('provider_id')))
+ {
+ $aContextParam['filter']->ResetCondition();
+ $aContextParam['filter']->AddCondition('org_id', $aContextParam['source_obj']->Get('provider_id'));
+ }
+ }
+ elseif (($aContextParam['dest_class'] == 'Contact' || is_subclass_of($aContextParam['dest_class'], 'Contact'))
+ || ($aContextParam['dest_class'] == 'Document' || is_subclass_of($aContextParam['dest_class'], 'Document')))
+ {
+ if(MetaModel::IsValidAttCode($aContextParam['dest_class'],'org_id') && !empty($aContextParam['source_obj']->Get('provider_id')) && !empty($aContextParam['source_obj']->Get('org_id')))
+ {
+ $aContextParam['filter']->ResetCondition();
+ $sOrgIds = array( $aContextParam['source_obj']->Get('provider_id'),
+ $aContextParam['source_obj']->Get('org_id'));
+ $aContextParam['filter']->AddCondition('org_id', $sOrgIds , 'IN');
+ }
+ }
+}
+]]>
+
+
+
diff --git a/datamodels/2.x/itop-service-mgmt/datamodel.itop-service-mgmt.xml b/datamodels/2.x/itop-service-mgmt/datamodel.itop-service-mgmt.xml
index a7706d29ee..598b53ebf1 100755
--- a/datamodels/2.x/itop-service-mgmt/datamodel.itop-service-mgmt.xml
+++ b/datamodels/2.x/itop-service-mgmt/datamodel.itop-service-mgmt.xml
@@ -177,7 +177,36 @@
list
-
+
+
+
+ Get('provider_id')))
+ {
+ $aContextParam['filter']->ResetCondition();
+ $aContextParam['filter']->AddCondition('org_id', $aContextParam['source_obj']->Get('provider_id'));
+ }
+ }
+ elseif (($aContextParam['dest_class'] == 'Contact' || is_subclass_of($aContextParam['dest_class'], 'Contact'))
+ || ($aContextParam['dest_class'] == 'Document' || is_subclass_of($aContextParam['dest_class'], 'Document')))
+ {
+ if(MetaModel::IsValidAttCode($aContextParam['dest_class'],'org_id') && !empty($aContextParam['source_obj']->Get('provider_id')) && !empty($aContextParam['source_obj']->Get('org_id')))
+ {
+ $aContextParam['filter']->ResetCondition();
+ $sOrgIds = array( $aContextParam['source_obj']->Get('provider_id'),
+ $aContextParam['source_obj']->Get('org_id'));
+ $aContextParam['filter']->AddCondition('org_id', $sOrgIds , 'IN');
+ }
+ }
+}
+]]>
+
+
+