Files
iTop/datamodels/2.x/itop-full-itil/datamodel.itop-full-itil.xml
2024-10-21 18:21:37 +02:00

75 lines
2.5 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<itop_design xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="3.3">
<classes>
<class id="Ticket">
<methods>
<method id="CreateFromServiceSubcategory" _delta="define">
<comment>/**
* Instanciate an object of the relevant class, depending on the request type
* @return DBObject
*/</comment>
<static>true</static>
<access>public</access>
<type>Factory</type>
<code><![CDATA[ static public function CreateFromServiceSubcategory($oServiceSubcategory)
{
$sType = $oServiceSubcategory->Get('request_type');
if ($sType == 'incident')
{
if (!class_exists('Incident'))
{
throw new Exception('Could not create a ticket after the service '.$oServiceSubcategory->Get('friendlyname').' of type '.$sType.': unknown class "Incident"');
}
$oRet = new Incident();
}
else
{
if (!class_exists('UserRequest'))
{
throw new Exception('Could not create a ticket after the service '.$oServiceSubcategory->Get('friendlyname').' of type '.$sType.': unknown class "UserRequest"');
}
$oRet = new UserRequest();
}
return $oRet;
}]]></code>
</method>
</methods>
</class>
</classes>
<module_designs>
<module_design id="itop-portal">
<bricks>
<brick id="services">
<levels>
<level id="1">
<levels>
<level id="1">
<levels>
<level id="1">
<actions>
<action id="create_from_this">
<class _delta="delete"/>
<factory_method _delta="define"><![CDATA[\Ticket::CreateFromServiceSubcategory]]></factory_method>
</action>
</actions>
</level>
</levels>
</level>
</levels>
</level>
</levels>
</brick>
</bricks>
<classes>
<class id="ServiceSubcategory">
<scopes>
<scope id="all">
<oql_view _delta="redefine"><![CDATA[SELECT ServiceSubcategory WHERE status != 'obsolete']]></oql_view>
</scope>
</scopes>
</class>
</classes>
</module_design>
</module_designs>
</itop_design>