function pre_deleteItem() { global $CFG_GLPI; //if task active, delete denied if ($this->getField('is_active') == 1) { Session::addMessageAfterRedirect(__('This task is active. delete denied', 'fusioninventory')); Html::redirect($CFG_GLPI["root_doc"] . "/plugins/fusinvdeploy/front/task.form.php?id=" . $this->getField('id')); return FALSE; } $task_id = $this->getField('id'); $job = new PluginFusioninventoryTaskjob(); $status = new PluginFusioninventoryTaskjobstate(); $log = new PluginFusioninventoryTaskjoblog(); // clean all sub-tables $a_taskjobs = $job->find("`plugin_fusioninventory_tasks_id`='{$task_id}'"); foreach ($a_taskjobs as $a_taskjob) { $a_taskjobstatuss = $status->find("`plugin_fusioninventory_taskjobs_id`='" . $a_taskjob['id'] . "'"); foreach ($a_taskjobstatuss as $a_taskjobstatus) { $a_taskjoblogs = $log->find("`plugin_fusioninventory_taskjobstates_id`='" . $a_taskjobstatus['id'] . "'"); foreach ($a_taskjoblogs as $a_taskjoblog) { $log->delete($a_taskjoblog, 1); } $status->delete($a_taskjobstatus, 1); } $job->delete($a_taskjob, 1); } return TRUE; }
/** * Cron for clean taskjob * * @return nothing */ static function cronCleantaskjob() { global $DB; $config = new PluginFusioninventoryConfig(); $retentiontime = $config->getValue('delete_task'); $pfTaskjobstate = new PluginFusioninventoryTaskjobstate(); $sql = "SELECT * FROM `glpi_plugin_fusioninventory_taskjoblogs`\n WHERE `date` < date_add(now(), interval -" . $retentiontime . " day)\n GROUP BY `plugin_fusioninventory_taskjobstates_id`"; $result = $DB->query($sql); if ($result) { while ($data = $DB->fetch_array($result)) { $pfTaskjobstate->getFromDB($data['plugin_fusioninventory_taskjobstates_id']); $pfTaskjobstate->delete($pfTaskjobstate->fields, 1); $sql_delete = "DELETE FROM `glpi_plugin_fusioninventory_taskjoblogs`\n WHERE `plugin_fusioninventory_taskjobstates_id` = '" . $data['plugin_fusioninventory_taskjobstates_id'] . "'"; $DB->query($sql_delete); } } }
/** * Purge taskjoblog/state when delete taskjob * * @param type $parm * * @return nothing */ static function purgeTaskjob($parm) { // $parm["id"] $pfTaskjobstate = new PluginFusioninventoryTaskjobstate(); $pfTaskjoblog = new PluginFusioninventoryTaskjoblog(); // all taskjobs $a_taskjobstates = $pfTaskjobstate->find("`plugin_fusioninventory_taskjobs_id`='" . $parm->fields["id"] . "'"); foreach ($a_taskjobstates as $a_taskjobstate) { $a_taskjoblogs = $pfTaskjoblog->find("`plugin_fusioninventory_taskjobstates_id`='" . $a_taskjobstate['id'] . "'"); foreach ($a_taskjoblogs as $a_taskjoblog) { $pfTaskjoblog->delete($a_taskjoblog, 1); } $pfTaskjobstate->delete($a_taskjobstate, 1); } }