/**
  * Purge task and taskjob related with method
  *
  * @param $method value name of the method
  *
  * @return nothing
  *
  **/
 static function cleanTasksbyMethod($method)
 {
     $pfTaskjob = new PluginFusioninventoryTaskjob();
     $pfTask = new PluginFusioninventoryTask();
     $a_taskjobs = $pfTaskjob->find("`method`='" . $method . "'");
     $task_id = 0;
     foreach ($a_taskjobs as $a_taskjob) {
         $pfTaskjob->delete($a_taskjob, 1);
         if ($task_id != $a_taskjob['plugin_fusioninventory_tasks_id'] and $task_id != '0') {
             // Search if this task have other taskjobs, if not, we will delete it
             $findtaskjobs = $pfTaskjob->find("`plugin_fusioninventory_tasks_id`='" . $task_id . "'");
             if (count($findtaskjobs) == '0') {
                 $pfTask->delete(array('id' => $task_id), 1);
             }
         }
         $task_id = $a_taskjob['plugin_fusioninventory_tasks_id'];
     }
     if ($task_id != '0') {
         // Search if this task have other taskjobs, if not, we will delete it
         $findtaskjobs = $pfTaskjob->find("`plugin_fusioninventory_tasks_id`='" . $task_id . "'");
         if (count($findtaskjobs) == '0') {
             $pfTask->delete(array('id' => $task_id), 1);
         }
     }
 }
 /**
  * @test
  */
 public function deleteTask()
 {
     global $DB;
     $pfTask = new PluginFusioninventoryTask();
     $pfTaskjob = new PluginFusioninventoryTaskjob();
     $pfTaskjobState = new PluginFusioninventoryTaskjobstate();
     $pfTaskjoblog = new PluginFusioninventoryTaskjoblog();
     //delete task
     $return = $pfTask->delete(array('id' => self::$tasks_id));
     $this->assertEquals(true, $return);
     //check deletion of job
     $jobs_found = $pfTaskjob->find("id = " . self::$taskjobs_id);
     $this->assertEquals(array(), $jobs_found);
     //check deletion of state
     $states_found = $pfTaskjobState->find("id = " . self::$taskjobstates_id);
     $this->assertEquals(array(), $states_found);
     //check deletion of log
     $logs_found = $pfTaskjoblog->find("id = " . self::$taskjobstates_id);
     $this->assertEquals(array(), $logs_found);
 }
        } else {
            Session::checkRight('plugin_fusioninventory_iprange', UPDATE);
            if ($iprange->checkip($_POST)) {
                $_POST['ip_start'] = (int) $_POST['ip_start0'] . "." . (int) $_POST['ip_start1'] . ".";
                $_POST['ip_start'] .= (int) $_POST['ip_start2'] . "." . (int) $_POST['ip_start3'];
                $_POST['ip_end'] = (int) $_POST['ip_end0'] . "." . (int) $_POST['ip_end1'] . ".";
                $_POST['ip_end'] .= (int) $_POST['ip_end2'] . "." . (int) $_POST['ip_end3'];
                $iprange->update($_POST);
            }
        }
        Html::back();
    } else {
        if (isset($_POST["delete"])) {
            if (isset($_POST['communication'])) {
                $task = new PluginFusioninventoryTask();
                $task->delete(array('id' => $_POST['task_id']), 1);
                $_SERVER['HTTP_REFERER'] = str_replace("&allowcreate=1", "", $_SERVER['HTTP_REFERER']);
                Html::back();
            } else {
                Session::checkRight('plugin_fusioninventory_"iprange', PURGE);
                $iprange->delete($_POST);
                Html::redirect(Toolbox::getItemTypeSearchURL('PluginFusioninventoryIPRange'));
            }
        }
    }
}
$id = "";
if (isset($_GET["id"])) {
    $id = $_GET["id"];
}
$allowcreate = 0;
 $p_xml = gzuncompress($GLOBALS["HTTP_RAW_POST_DATA"]);
 $pxml = @simplexml_load_string($p_xml);
 if (isset($pxml->DEVICEID)) {
     $ptc->setXML("<?xml version='1.0' encoding='ISO-8859-1'?>\n<REPLY>\n</REPLY>");
     $pta = new PluginFusioninventoryAgents();
     $ptt = new PluginFusioninventoryTask();
     $ptcm = new PluginFusioninventoryConfigModules();
     $a_agent = $pta->InfosByKey($pxml->DEVICEID);
     $a_tasks = $ptt->find("`agent_id`='" . $a_agent['ID'] . "'", "date");
     $single = 0;
     $_SESSION['glpi_plugin_fusioninventory_addagentprocess'] = '0';
     foreach ($a_tasks as $task_id => $datas) {
         if ($a_tasks[$task_id]['action'] == 'INVENTORY' and $ptcm->isActivated('inventoryocs') and $a_agent['module_inventory'] == '1') {
             $ptc->addInventory();
             $input['ID'] = $task_id;
             $ptt->delete($input);
             $ocsinventory = '0';
             $single = 1;
         }
         if ($a_tasks[$task_id]['action'] == 'NETDISCOVERY' and $ptcm->isActivated('netdiscovery') and $a_agent['module_netdiscovery'] == '1') {
             $single = 1;
             $ptc->addDiscovery($pxml, 1);
             $input['ID'] = $task_id;
             $ptt->delete($input);
         }
         if ($a_tasks[$task_id]['action'] == 'SNMPQUERY' and $ptcm->isActivated('snmp') and $a_agent['module_snmpquery'] == '1') {
             $single = 1;
             $ptc->addQuery($pxml, 1);
             $input['ID'] = $task_id;
             $ptt->delete($input);
         }