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'); + } + } +} +]]> + + +