Пример #1
0
 function cleanDBonPurge()
 {
     global $DB;
     // Delete all licenses
     $query2 = "SELECT `id`\n                 FROM `glpi_softwarelicenses`\n                 WHERE `softwares_id` = '" . $this->fields['id'] . "'";
     if ($result2 = $DB->query($query2)) {
         if ($DB->numrows($result2)) {
             $lic = new SoftwareLicense();
             while ($data = $DB->fetch_assoc($result2)) {
                 $lic->delete(array("id" => $data["id"]));
             }
         }
     }
     $version = new SoftwareVersion();
     $version->cleanDBonItemDelete(__CLASS__, $this->fields['id']);
     $ip = new Item_Problem();
     $ip->cleanDBonItemDelete(__CLASS__, $this->fields['id']);
 }
if (!isset($_GET["id"])) {
    $_GET["id"] = "";
}
if (!isset($_GET["softwares_id"])) {
    $_GET["softwares_id"] = "";
}
$license = new SoftwareLicense();
if (isset($_POST["add"])) {
    $license->check(-1, 'w', $_POST);
    $newID = $license->add($_POST);
    Event::log($_POST['softwares_id'], "software", 4, "inventory", $_SESSION["glpiname"] . " " . $LANG['log'][85] . " {$newID}.");
    glpi_header($_SERVER['HTTP_REFERER']);
} else {
    if (isset($_POST["delete"])) {
        $license->check($_POST['id'], 'd');
        $license->delete($_POST);
        Event::log($license->fields['softwares_id'], "software", 4, "inventory", $_SESSION["glpiname"] . " " . $LANG['log'][87] . " " . $_POST["id"]);
        $license->redirectToList();
    } else {
        if (isset($_POST["update"])) {
            $license->check($_POST['id'], 'w');
            $license->update($_POST);
            Event::log($license->fields['softwares_id'], "software", 4, "inventory", $_SESSION["glpiname"] . " " . $LANG['log'][86] . " " . $_POST["id"]);
            glpi_header($_SERVER['HTTP_REFERER']);
        } else {
            commonHeader($LANG['Menu'][4], $_SERVER['PHP_SELF'], "inventory", "software");
            $license->showForm($_GET["id"], array('softwares_id' => $_GET["softwares_id"]));
            commonFooter();
        }
    }
}
Пример #3
0
        if ($_SESSION['glpibackcreated']) {
            Html::redirect($license->getFormURL() . "?id=" . $newID);
        }
    }
    Html::back();
} else {
    if (isset($_POST["restore"])) {
        $license->check($_POST['id'], DELETE);
        if ($license->restore($_POST)) {
            Event::log($_POST["id"], "software", 4, "inventory", sprintf(__('%s restores an item'), $_SESSION["glpiname"]));
        }
        $license->redirectToList();
    } else {
        if (isset($_POST["delete"])) {
            $license->check($_POST['id'], DELETE);
            $license->delete($_POST, 0);
            Event::log($license->fields['softwares_id'], "software", 4, "inventory", sprintf(__('%1$s deletes the license %2$s'), $_SESSION["glpiname"], $_POST["id"]));
            $license->redirectToList();
        } else {
            if (isset($_POST["purge"])) {
                $license->check($_POST['id'], PURGE);
                $license->delete($_POST, 1);
                Event::log($license->fields['softwares_id'], "software", 4, "inventory", sprintf(__('%1$s purges the license %2$s'), $_SESSION["glpiname"], $_POST["id"]));
                $license->redirectToList();
            } else {
                if (isset($_POST["update"])) {
                    $license->check($_POST['id'], UPDATE);
                    $license->update($_POST);
                    Event::log($license->fields['softwares_id'], "software", 4, "inventory", sprintf(__('%1$s updates the license %2$s'), $_SESSION["glpiname"], $_POST["id"]));
                    Html::back();
                } else {
Пример #4
0
 /**
  * Transfer affected licenses to a computer
  *
  * @param $ID ID of the License
  **/
 function transferAffectedLicense($ID)
 {
     global $DB;
     $computer_softwarelicense = new Computer_SoftwareLicense();
     $license = new SoftwareLicense();
     if ($computer_softwarelicense->getFromDB($ID)) {
         if ($license->getFromDB($computer_softwarelicense->getField('softwarelicenses_id'))) {
             //// Update current : decrement number by 1 if valid
             if ($license->getField('number') > 1) {
                 $license->update(array('id' => $license->getID(), 'number' => $license->getField('number') - 1));
             } else {
                 if ($license->getField('number') == 1) {
                     // Drop license
                     $license->delete(array('id' => $license->getID()));
                 }
             }
             // Create new license : need to transfer softwre and versions before
             $input = array();
             $newsoftID = $this->copySingleSoftware($license->fields['softwares_id']);
             if ($newsoftID > 0) {
                 //// If license already exists : increment number by one
                 $query = "SELECT *\n                         FROM `glpi_softwarelicenses`\n                         WHERE `softwares_id` = '{$newsoftID}'\n                               AND `name` = '" . addslashes($license->fields['name']) . "'\n                               AND `serial` = '" . addslashes($license->fields['serial']) . "'";
                 $newlicID = -1;
                 if ($result = $DB->query($query)) {
                     //// If exists : increment number by 1
                     if ($DB->numrows($result) > 0) {
                         $data = $DB->fetch_assoc($result);
                         $newlicID = $data['id'];
                         $license->update(array('id' => $data['id'], 'number' => $data['number'] + 1));
                     } else {
                         //// If not exists : create with number = 1
                         $input = $license->fields;
                         foreach (array('softwareversions_id_buy', 'softwareversions_id_use') as $field) {
                             if ($license->fields[$field] > 0) {
                                 $newversID = $this->copySingleVersion($license->fields[$field]);
                                 if ($newversID > 0 && $newversID != $license->fields[$field]) {
                                     $input[$field] = $newversID;
                                 }
                             }
                         }
                         unset($input['id']);
                         $input['number'] = 1;
                         $input['entities_id'] = $this->to;
                         $input['softwares_id'] = $newsoftID;
                         $newlicID = $license->add(toolbox::addslashes_deep($input));
                     }
                 }
                 if ($newlicID > 0) {
                     $input = array('id' => $ID, 'softwarelicenses_id' => $newlicID);
                     $computer_softwarelicense->update($input);
                 }
             }
         }
     }
     // getFromDB
 }
 /**
  * Delete old licenses software entries
  *
  * @param $glpi_computers_id integer : glpi computer id.
  *
  * @return nothing.
  * */
 static function resetOfficePack($glpi_computers_id)
 {
     global $DB;
     $query = "SELECT *\n                FROM `glpi_computers_softwarelicenses`\n                WHERE `computers_id` = '{$glpi_computers_id}' AND `is_dynamic`";
     $result = $DB->query($query);
     if ($DB->numrows($result) > 0) {
         while ($data = $DB->fetch_assoc($result)) {
             $query2 = "SELECT COUNT(*)\n                       FROM `glpi_computers_softwarelicenses`\n                       WHERE `softwarelicenses_id` = '" . $data['softwarelicenses_id'] . "'";
             $result2 = $DB->query($query2);
             if ($DB->result($result2, 0, 0) == 1) {
                 $license = new SoftwareLicense();
                 $license->getFromDB($data['softwarelicenses_id']);
                 $query3 = "SELECT COUNT(*)\n                          FROM `glpi_softwarelicenses`\n                          WHERE `softwares_id`='" . $license->fields['softwares_id'] . "'";
                 $result3 = $DB->query($query3);
                 if ($DB->result($result3, 0, 0) == 1) {
                     $soft = new Software();
                     $soft->delete(array('id' => $license->fields['softwares_id']), 1);
                 }
                 $license->delete(array("id" => $data['softwareversions_id']));
             }
         }
         $computer_softwarelicenses = new Computer_SoftwareVersion();
         $computer_softwarelicenses->deleteByCriteria(array('computers_id' => $glpi_computers_id));
     }
 }