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 <default>Brick:Portal:NewRequest:Title</default> 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 <default>Brick:Portal:OngoingRequests:Title</default> 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 <default>Brick:Portal:ClosedRequests:Title</default> fc fc-closed-request fc-2x 1 Brick:Portal:ClosedRequests:Title auto true true 120 false false 400px <default>Brick:Portal:ListAllRequests:Title</default> Brick:Portal:ListAllRequests:Title+ fc fc-ongoing-request fc-2x true 1 Brick:Portal:ListAllRequests:Tab auto true true 30 true false 400px <default>Brick:Portal:SearchInAllRequests:Title</default> Brick:Portal:SearchInAllRequests:Title+ manage-all-tickets-for-portal-user Combodo\iTop\Portal\Brick\ManageBrick
Service
ServiceSubcategory
Ticket go-to-open-requests
Ticket go-to-open-requests
{{'Ticket:baseinfo'|dict_s}}
{{'Ticket:Type'|dict_s}} & {{'Ticket:date'|dict_s}}
Ticket go-to-open-requests
Ticket go-to-open-requests
Person
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