service_id AND sc.org_id = :this->org_id AND slt.request_type = :request_type AND slt.priority = :this->priority]]>
cmdbAbstractObject
_Ticket
bizmodel,searchable,structure
true
autoincrement
ticket
id
finalclass
false
ongoing
resolved
closed
$ibo-lifecycle-neutral-state-primary-color
$ibo-lifecycle-neutral-state-secondary-color
operational_status
ongoing
status
ref
true
org_id
Organization
false
DEL_AUTO
org_id
name
org_id]]>
caller_id
Person
true
DEL_AUTO
caller_id
name
team_id
Team
true
DEL_AUTO
team_id
name
team_id
email
team_id]]>
agent_id
Person
true
DEL_AUTO
false
agent_id
name
title
false
description
false
html
true
start_date
true
end_date
true
last_update
true
none
close_date
true
private_log
true
lnkContactToTicket
ticket_id
0
0
contact_id
true
WorkOrder
ticket_id
0
0
EVENT_DB_LINKS_CHANGED
OnLinksChangedTicket
0
EVENT_DB_BEFORE_WRITE
OnBeforeWriteTicket
0
false
public
EventListener
UpdateImpactedItems();
}
]]>
false
public
EventListener
ListChanges();
if ($this->IsNew() || array_key_exists('functionalcis_list', $aChanges) || array_key_exists('contacts_list', $aChanges)) {
$this->UpdateImpactedItems();
}
}
]]>
false
public
Overload-DBObject
MakeTicketRef($iNextId);
$this->SetIfNull('ref', $sRef);
$iKey = parent::DBInsertNoReload();
return $iKey;
}
]]>
false
protected
Overload-DBObject
true
public
Overload-DBObject
/**
*
* Add the current contact associated Person to the contacts_list of this Ticket
* No error if there is no associated Person or if the Person is already in the list
* @return bool Return true on success
*/
false
public
0) {
$oContactsSet = $this->Get('contacts_list');
if (!in_array($iPersonId, $oContactsSet->GetColumnAsArray('contact_id'))) {
$oLnk = MetaModel::NewObject('lnkContactToTicket');
$oLnk->Set('contact_id', $iPersonId);
$oLnk->Set('ticket_id', $this->GetKey());
$oContactsSet->AddItem($oLnk);
$this->Set('contacts_list', $oContactsSet);
$this->DBUpdate();
}
}
return true;
}]]>
/**
*
* Remove the current user associated Person from the contacts_list of this Ticket
* No error if there is no associated Person or if the Person is not in the list
* @return bool Return true
*/
false
public
0) {
$oContactsSet = $this->Get('contacts_list');
foreach ($oContactsSet as $oLnk) {
if ($oLnk->Get('contact_id') == $iPersonId) {
$oContactsSet->RemoveItem($oLnk->GetKey());
$this->Set('contacts_list', $oContactsSet);
$this->DBUpdate();
return true;
}
}
}
return true;
}]]>
-
10
-
20
-
30
-
40
-
50
-
60
-
70
-
75
-
80
-
90
-
100
-
110
-
120
-
130
-
150
-
10
-
20
-
30
-
35
-
10
-
20
-
30
-
35
-
40
-
50
-
60
-
70
-
10
-
20
-
30
-
40
-
50
-
60
-
65
-
70
-
10
-
20
-
30
cmdbAbstractObject
1
bizmodel
false
autoincrement
lnkcontacttoticket
id
false
true
ticket_id
Ticket
false
DEL_AUTO
ticket_id
ref
contact_id
Contact
false
DEL_AUTO
contact_id
email
contact_id
name
role
true
manual
computed
do_not_notify
impact_code
manual
false
list
-
10
-
20
-
30
-
10
-
20
-
30
-
10
-
20
-
30
-
10
-
20
-
30
cmdbAbstractObject
bizmodel,searchable,incidentmgmt,requestmgmt,changemgmt,m2prequest
false
autoincrement
workorder
id
status
name
false
open
closed
status
open
false
list
description
false
ticket_id
Ticket
true
DEL_AUTO
ticket_id
ref
SELECT Team
team_id
Team
false
DEL_MANUAL
team_id
email
team_id]]>
owner_id
Person
true
DEL_MANUAL
false
agent_id
email
start_date
false
end_date
true
log
true
closed
SetCurrentDateIfNull
end_date
false
public
StimulusUserAction
Get('log');
$sLog = $oLog->GetModifiedEntry('html');
if ($sLog != '')
{
$oTicket = MetaModel::GetObject('Ticket', $this->Get('ticket_id'), false);
if ($oTicket)
{
$oTicket->Set('private_log', $sLog);
$oTicket->DBUpdate();
}
}
}]]>
false
protected
Overload-DBObject
UpdateParentTicketLog();
}]]>
-
10
-
20
-
30
-
40
-
50
-
60
-
70
-
80
-
10
-
20
-
30
-
40
-
50
-
60
-
70
-
10
-
20
-
30
-
40
-
50
-
10
-
20
-
30
-
40
-
50
-
60
Ticket
caller_id
add_only
0
0
-
20
Ticket
team_id
none
0
0
true
400px
10
Brick:Portal:NewRequest:Title
Brick:Portal:NewRequest:Title+
fc fc-new-request fc-2x
ServiceFamily
icon
Service
servicefamily_id
description
description
icon
Class:Service
service_id
description
description
Class:ServiceSubcategory
UserRequest
fc fc-new-request fc-1-6x fc-flip-horizontal
list
auto
true
20
400px
Brick:Portal:OngoingRequests:Title
Brick:Portal:OngoingRequests:Title+
fc fc-ongoing-request fc-2x
true
1
Brick:Portal:OngoingRequests:Tab:OnGoing
2
Brick:Portal:OngoingRequests:Tab:Resolved
full
true
true
50
false
400px
Brick:Portal:ClosedRequests:Title
fc fc-closed-request fc-2x
1
Brick:Portal:ClosedRequests:Title
auto
true
true
120
false
false
400px
Brick:Portal:ListAllRequests:Title
Brick:Portal:ListAllRequests:Title+
fc fc-ongoing-request fc-2x
true
1
Brick:Portal:ListAllRequests:Tab
auto
true
true
30
true
false
400px
Brick:Portal:SearchInAllRequests:Title
Brick:Portal:SearchInAllRequests:Title+
manage-all-tickets-for-portal-user
Combodo\iTop\Portal\Brick\ManageBrick
org_id]]>
true
org_id AND s.status = 'production']]>
true
org_id AND s.status = 'implementation']]>
org_id AND ssc.status = 'production']]>
true
org_id AND ssc.status = 'implementation']]>
org_id AND T.finalclass IN ('UserRequest', 'Incident')]]>
set(caller_id, $current_contact_id$)
copy(org_id, org_id)
set(origin, portal)
Service
copy(id, service_id)
ServiceSubcategory
copy(id, servicesubcategory_id)
copy(service_id, service_id)
ongoing-tickets-for-portal-user
services