mirror of
https://github.com/Combodo/iTop.git
synced 2026-02-13 07:24:13 +01:00
#792 Duplicate entries in the parent/child tickets when updating the case log and applying a stimulus (e.g. Close the WO) at the same time.
SVN:trunk[2930]
This commit is contained in:
@@ -1534,14 +1534,10 @@
|
||||
{
|
||||
if (!MetaModel::IsValidClass('UserRequest')) return true; // Do nothing
|
||||
|
||||
$sLogPublic = utils::ReadPostedParam('attr_public_log', null,false,'raw_data');
|
||||
if ( $sLogPublic != null)
|
||||
$oLog = $this->Get('public_log');
|
||||
$sLogPublic = $oLog->GetModifiedEntry();
|
||||
if ($sLogPublic != '')
|
||||
{
|
||||
$oMyChange = MetaModel::NewObject("CMDBChange");
|
||||
$oMyChange->Set("date", time());
|
||||
$sUserString = CMDBChange::GetCurrentUserName();
|
||||
$oMyChange->Set("userinfo", $sUserString."(automatic update)");
|
||||
$iChangeId = $oMyChange->DBInsert();
|
||||
$sOQL = "SELECT UserRequest WHERE parent_incident_id=:ticket";
|
||||
$oChildRequestSet = new DBObjectSet(DBObjectSearch::FromOQL($sOQL),
|
||||
array(),
|
||||
@@ -1552,18 +1548,14 @@
|
||||
while($oRequest = $oChildRequestSet->Fetch())
|
||||
{
|
||||
$oRequest->set('public_log',$sLogPublic);
|
||||
$oRequest->DBUpdateTracked($oMyChange);
|
||||
$oRequest->DBUpdate();
|
||||
}
|
||||
|
||||
}
|
||||
$sLogPrivate = utils::ReadPostedParam('attr_private_log', null,false,'raw_data');
|
||||
if ( $sLogPrivate != null)
|
||||
$oLog = $this->Get('private_log');
|
||||
$sLogPrivate = $oLog->GetModifiedEntry();
|
||||
if ($sLogPrivate != '')
|
||||
{
|
||||
$oMyChange = MetaModel::NewObject("CMDBChange");
|
||||
$oMyChange->Set("date", time());
|
||||
$sUserString = CMDBChange::GetCurrentUserName();
|
||||
$oMyChange->Set("userinfo", $sUserString."(automatic update)");
|
||||
$iChangeId = $oMyChange->DBInsert();
|
||||
$sOQL = "SELECT UserRequest WHERE parent_incident_id=:ticket";
|
||||
$oChildRequestSet = new DBObjectSet(DBObjectSearch::FromOQL($sOQL),
|
||||
array(),
|
||||
@@ -1574,7 +1566,7 @@
|
||||
while($oRequest = $oChildRequestSet->Fetch())
|
||||
{
|
||||
$oRequest->set('private_log',$sLogPrivate);
|
||||
$oRequest->DBUpdateTracked($oMyChange);
|
||||
$oRequest->DBUpdate();
|
||||
}
|
||||
}
|
||||
return true;
|
||||
@@ -1587,14 +1579,10 @@
|
||||
<type>LifecycleAction</type>
|
||||
<code><![CDATA[ public function UpdateChildIncidentLog()
|
||||
{
|
||||
$sLogPublic = utils::ReadPostedParam('attr_public_log', null,false,'raw_data');
|
||||
if ( $sLogPublic != null)
|
||||
$oLog = $this->Get('public_log');
|
||||
$sLogPublic = $oLog->GetModifiedEntry();
|
||||
if ($sLogPublic != '')
|
||||
{
|
||||
$oMyChange = MetaModel::NewObject("CMDBChange");
|
||||
$oMyChange->Set("date", time());
|
||||
$sUserString = CMDBChange::GetCurrentUserName();
|
||||
$oMyChange->Set("userinfo", $sUserString."(automatic update)");
|
||||
$iChangeId = $oMyChange->DBInsert();
|
||||
$sOQL = "SELECT Incident WHERE parent_incident_id=:ticket";
|
||||
$oChildIncidentSet = new DBObjectSet(DBObjectSearch::FromOQL($sOQL),
|
||||
array(),
|
||||
@@ -1605,18 +1593,14 @@
|
||||
while($oIncident = $oChildIncidentSet->Fetch())
|
||||
{
|
||||
$oIncident->set('public_log',$sLogPublic);
|
||||
$oIncident->DBUpdateTracked($oMyChange);
|
||||
$oIncident->DBUpdate();
|
||||
}
|
||||
|
||||
}
|
||||
$sLogPrivate = utils::ReadPostedParam('attr_private_log', null,false,'raw_data');
|
||||
if ( $sLogPrivate != null)
|
||||
$oLog = $this->Get('private_log');
|
||||
$sLogPrivate = $oLog->GetModifiedEntry();
|
||||
if ($sLogPrivate != '')
|
||||
{
|
||||
$oMyChange = MetaModel::NewObject("CMDBChange");
|
||||
$oMyChange->Set("date", time());
|
||||
$sUserString = CMDBChange::GetCurrentUserName();
|
||||
$oMyChange->Set("userinfo", $sUserString."(automatic update)");
|
||||
$iChangeId = $oMyChange->DBInsert();
|
||||
$sOQL = "SELECT Incident WHERE parent_incident_id=:ticket";
|
||||
$oChildIncidentSet = new DBObjectSet(DBObjectSearch::FromOQL($sOQL),
|
||||
array(),
|
||||
@@ -1627,7 +1611,7 @@
|
||||
while($oIncident = $oChildIncidentSet->Fetch())
|
||||
{
|
||||
$oIncident->set('private_log',$sLogPrivate);
|
||||
$oIncident->DBUpdateTracked($oMyChange);
|
||||
$oIncident->DBUpdate();
|
||||
}
|
||||
}
|
||||
return true;
|
||||
|
||||
@@ -1859,11 +1859,6 @@
|
||||
<code><![CDATA[ public function resolveChilds($sStimulusCode)
|
||||
{
|
||||
|
||||
$oMyChange = MetaModel::NewObject("CMDBChange");
|
||||
$oMyChange->Set("date", time());
|
||||
$sUserString = CMDBChange::GetCurrentUserName();
|
||||
$oMyChange->Set("userinfo", $sUserString."(automatic resolution)");
|
||||
$iChangeId = $oMyChange->DBInsert();
|
||||
$sOQL = "SELECT UserRequest WHERE parent_request_id=:ticket";
|
||||
$oChildRequestSet = new DBObjectSet(DBObjectSearch::FromOQL($sOQL),
|
||||
array(),
|
||||
@@ -1882,7 +1877,7 @@
|
||||
$oRequest->set('resolution_code',$this->Get('resolution_code'));
|
||||
$oRequest->set('solution','Automatically resolved by request:[[UserRequest:'.$this->Get('ref').']]');
|
||||
$oRequest->ApplyStimulus('ev_autoresolve');
|
||||
$oRequest->DBUpdateTracked($oMyChange);
|
||||
$oRequest->DBUpdate();
|
||||
}
|
||||
}
|
||||
return true;
|
||||
@@ -1895,14 +1890,10 @@
|
||||
<type>LifecycleAction</type>
|
||||
<code><![CDATA[ public function UpdateChildRequestLog()
|
||||
{
|
||||
$sLogPublic = utils::ReadPostedParam('attr_public_log', null,false,'raw_data');
|
||||
if ( $sLogPublic != null)
|
||||
$oLog = $this->Get('public_log');
|
||||
$sLogPublic = $oLog->GetModifiedEntry();
|
||||
if ($sLogPublic != '')
|
||||
{
|
||||
$oMyChange = MetaModel::NewObject("CMDBChange");
|
||||
$oMyChange->Set("date", time());
|
||||
$sUserString = CMDBChange::GetCurrentUserName();
|
||||
$oMyChange->Set("userinfo", $sUserString."(automatic update)");
|
||||
$iChangeId = $oMyChange->DBInsert();
|
||||
$sOQL = "SELECT UserRequest WHERE parent_request_id=:ticket";
|
||||
$oChildRequestSet = new DBObjectSet(DBObjectSearch::FromOQL($sOQL),
|
||||
array(),
|
||||
@@ -1913,18 +1904,14 @@
|
||||
while($oRequest = $oChildRequestSet->Fetch())
|
||||
{
|
||||
$oRequest->set('public_log',$sLogPublic);
|
||||
$oRequest->DBUpdateTracked($oMyChange);
|
||||
$oRequest->DBUpdate();
|
||||
}
|
||||
|
||||
}
|
||||
$sLogPrivate = utils::ReadPostedParam('attr_private_log', null,false,'raw_data');
|
||||
if ( $sLogPrivate != null)
|
||||
$oLog = $this->Get('private_log');
|
||||
$sLogPrivate = $oLog->GetModifiedEntry();
|
||||
if ($sLogPrivate != '')
|
||||
{
|
||||
$oMyChange = MetaModel::NewObject("CMDBChange");
|
||||
$oMyChange->Set("date", time());
|
||||
$sUserString = CMDBChange::GetCurrentUserName();
|
||||
$oMyChange->Set("userinfo", $sUserString."(automatic update)");
|
||||
$iChangeId = $oMyChange->DBInsert();
|
||||
$sOQL = "SELECT UserRequest WHERE parent_request_id=:ticket";
|
||||
$oChildRequestSet = new DBObjectSet(DBObjectSearch::FromOQL($sOQL),
|
||||
array(),
|
||||
@@ -1935,7 +1922,7 @@
|
||||
while($oRequest = $oChildRequestSet->Fetch())
|
||||
{
|
||||
$oRequest->set('private_log',$sLogPrivate);
|
||||
$oRequest->DBUpdateTracked($oMyChange);
|
||||
$oRequest->DBUpdate();
|
||||
}
|
||||
}
|
||||
return true;
|
||||
|
||||
@@ -1845,11 +1845,6 @@
|
||||
<code><![CDATA[ public function resolveChilds($sStimulusCode)
|
||||
{
|
||||
|
||||
$oMyChange = MetaModel::NewObject("CMDBChange");
|
||||
$oMyChange->Set("date", time());
|
||||
$sUserString = CMDBChange::GetCurrentUserName();
|
||||
$oMyChange->Set("userinfo", $sUserString."(automatic resolution)");
|
||||
$iChangeId = $oMyChange->DBInsert();
|
||||
$sOQL = "SELECT UserRequest WHERE parent_request_id=:ticket";
|
||||
$oChildRequestSet = new DBObjectSet(DBObjectSearch::FromOQL($sOQL),
|
||||
array(),
|
||||
@@ -1868,7 +1863,7 @@
|
||||
$oRequest->set('resolution_code',$this->Get('resolution_code'));
|
||||
$oRequest->set('solution','Automatically resolved by request:[[UserRequest:'.$this->Get('ref').']]');
|
||||
$oRequest->ApplyStimulus('ev_autoresolve');
|
||||
$oRequest->DBUpdateTracked($oMyChange);
|
||||
$oRequest->DBUpdate();
|
||||
}
|
||||
}
|
||||
return true;
|
||||
@@ -1881,14 +1876,10 @@
|
||||
<type>LifecycleAction</type>
|
||||
<code><![CDATA[ public function UpdateChildRequestLog()
|
||||
{
|
||||
$sLogPublic = utils::ReadPostedParam('attr_public_log', null,false,'raw_data');
|
||||
if ( $sLogPublic != null)
|
||||
$oLog = $this->Get('public_log');
|
||||
$sLogPublic = $oLog->GetModifiedEntry();
|
||||
if ($sLogPublic != '')
|
||||
{
|
||||
$oMyChange = MetaModel::NewObject("CMDBChange");
|
||||
$oMyChange->Set("date", time());
|
||||
$sUserString = CMDBChange::GetCurrentUserName();
|
||||
$oMyChange->Set("userinfo", $sUserString."(automatic update)");
|
||||
$iChangeId = $oMyChange->DBInsert();
|
||||
$sOQL = "SELECT UserRequest WHERE parent_request_id=:ticket";
|
||||
$oChildRequestSet = new DBObjectSet(DBObjectSearch::FromOQL($sOQL),
|
||||
array(),
|
||||
@@ -1899,18 +1890,14 @@
|
||||
while($oRequest = $oChildRequestSet->Fetch())
|
||||
{
|
||||
$oRequest->set('public_log',$sLogPublic);
|
||||
$oRequest->DBUpdateTracked($oMyChange);
|
||||
$oRequest->DBUpdate();
|
||||
}
|
||||
|
||||
}
|
||||
$sLogPrivate = utils::ReadPostedParam('attr_private_log', null,false,'raw_data');
|
||||
if ( $sLogPrivate != null)
|
||||
$oLog = $this->Get('private_log');
|
||||
$sLogPrivate = $oLog->GetModifiedEntry();
|
||||
if ($sLogPrivate != '')
|
||||
{
|
||||
$oMyChange = MetaModel::NewObject("CMDBChange");
|
||||
$oMyChange->Set("date", time());
|
||||
$sUserString = CMDBChange::GetCurrentUserName();
|
||||
$oMyChange->Set("userinfo", $sUserString."(automatic update)");
|
||||
$iChangeId = $oMyChange->DBInsert();
|
||||
$sOQL = "SELECT UserRequest WHERE parent_request_id=:ticket";
|
||||
$oChildRequestSet = new DBObjectSet(DBObjectSearch::FromOQL($sOQL),
|
||||
array(),
|
||||
@@ -1921,7 +1908,7 @@
|
||||
while($oRequest = $oChildRequestSet->Fetch())
|
||||
{
|
||||
$oRequest->set('private_log',$sLogPrivate);
|
||||
$oRequest->DBUpdateTracked($oMyChange);
|
||||
$oRequest->DBUpdate();
|
||||
}
|
||||
}
|
||||
return true;
|
||||
|
||||
@@ -572,30 +572,17 @@
|
||||
<type>StimulusUserAction</type>
|
||||
<code><![CDATA[ public function UpdateParentTicketLog()
|
||||
{
|
||||
$sLog = utils::ReadPostedParam('attr_log', null,false,'raw_data');
|
||||
if ( $sLog != null)
|
||||
$oLog = $this->Get('log');
|
||||
$sLog = $oLog->GetModifiedEntry();
|
||||
if ($sLog != '')
|
||||
{
|
||||
$oMyChange = MetaModel::NewObject("CMDBChange");
|
||||
$oMyChange->Set("date", time());
|
||||
$sUserString = CMDBChange::GetCurrentUserName();
|
||||
$oMyChange->Set("userinfo", $sUserString);
|
||||
$iChangeId = $oMyChange->DBInsert();
|
||||
$sOQL = "SELECT Ticket WHERE id=:ticket";
|
||||
$oParentTicketSet = new DBObjectSet(DBObjectSearch::FromOQL($sOQL),
|
||||
array(),
|
||||
array(
|
||||
'ticket' => $this->Get('ticket_id'),
|
||||
)
|
||||
);
|
||||
while($oTicket = $oParentTicketSet->Fetch())
|
||||
$oTicket = MetaModel::GetObject('Ticket', $this->Get('ticket_id'), false);
|
||||
if ($oTicket)
|
||||
{
|
||||
$oTicket->set('private_log',$sLog);
|
||||
$oTicket->DBUpdateTracked($oMyChange);
|
||||
$oTicket->Set('private_log', $sLog);
|
||||
$oTicket->DBUpdate();
|
||||
}
|
||||
|
||||
}
|
||||
return true;
|
||||
|
||||
}]]></code>
|
||||
</method>
|
||||
<method id="OnUpdate">
|
||||
|
||||
Reference in New Issue
Block a user