$contract->redirectToList(); } else { if (isset($_POST["restore"])) { $contract->check($_POST['id'], 'd'); if ($contract->restore($_POST)) { Event::log($_POST["id"], "contracts", 4, "financial", sprintf(__('%s restores an item'), $_SESSION["glpiname"])); } $contract->redirectToList(); } else { if (isset($_POST["purge"])) { $contract->check($_POST['id'], 'd'); if ($contract->delete($_POST, 1)) { Event::log($_POST["id"], "contracts", 4, "financial", sprintf(__('%s purges an item'), $_SESSION["glpiname"])); } $contract->redirectToList(); } else { if (isset($_POST["update"])) { $contract->check($_POST['id'], 'w'); if ($contract->update($_POST)) { Event::log($_POST["id"], "contracts", 4, "financial", sprintf(__('%s updates an item'), $_SESSION["glpiname"])); } Html::back(); } else { Html::header(Contract::getTypeName(2), $_SERVER['PHP_SELF'], "financial", "contract"); $contract->showForm($_GET["id"], array('withtemplate' => $_GET["withtemplate"])); Html::footer(); } } } } }
public function createLinkWithItem($detailID = 0, $items_id = 0, $itemtype = 0, $plugin_order_orders_id = 0, $entity = 0, $templateID = 0, $history = true, $check_link = true) { global $DB; if (!$check_link || !$this->itemAlreadyLinkedToAnOrder($itemtype, $items_id, $plugin_order_orders_id, $detailID)) { $detail = new PluginOrderOrder_Item(); $restricted = array('ConsumableItem', 'CartridgeItem'); if ($itemtype == 'SoftwareLicense') { $detail->getFromDB($detailID); $query = "SELECT `id`\n FROM `glpi_plugin_order_orders_items`\n WHERE `plugin_order_orders_id` = '{$plugin_order_orders_id}'\n AND `plugin_order_references_id` = '{$detail->fields["plugin_order_references_id"]}'\n AND `price_taxfree` LIKE '{$detail->fields["price_taxfree"]}'\n AND `discount` LIKE '{$detail->fields["discount"]}'\n AND `states_id` = 1 "; $result = $DB->query($query); $nb = $DB->numrows($result); if ($nb) { for ($i = 0; $i < $nb; $i++) { $ID = $DB->result($result, $i, 'id'); $input["id"] = $ID; $input["items_id"] = $items_id; $detail->update($input); $this->generateInfoComRelatedToOrder($entity, $ID, $itemtype, $items_id, 0); $lic = new SoftwareLicense(); $lic->getFromDB($items_id); $values["id"] = $lic->fields["id"]; $values["number"] = $lic->fields["number"] + 1; $lic->update($values); } if ($history) { $order = new PluginOrderOrder(); $new_value = __("Item linked to order", "order") . ' : ' . $lic->getField("name"); $order->addHistory('PluginOrderOrder', '', $new_value, $plugin_order_orders_id); } } } elseif (in_array($itemtype, $restricted)) { if ($itemtype == 'ConsumableItem') { $item = new Consumable(); $type = 'Consumable'; $pkey = 'consumableitems_id'; } elseif ($itemtype == 'CartridgeItem') { $item = new Cartridge(); $type = 'Cartridge'; $pkey = 'cartridgeitems_id'; } $detail->getFromDB($detailID); $input[$pkey] = $items_id; $input["date_in"] = $detail->fields["delivery_date"]; $newID = $item->add($input); $input["id"] = $detailID; $input["items_id"] = $newID; $input["itemtype"] = $itemtype; if ($detail->update($input)) { $this->generateInfoComRelatedToOrder($entity, $detailID, $type, $newID, 0); } } elseif ($itemtype == 'Contract') { $input["id"] = $detailID; $input["items_id"] = $items_id; $input["itemtype"] = $itemtype; if ($detail->update($input)) { $detail->getFromDB($detailID); $item = new Contract(); if ($item->update(array('id' => $items_id, 'cost' => $detail->fields["price_discounted"]))) { $order = new PluginOrderOrder(); $order->getFromDB($plugin_order_orders_id); if (!countElementsInTable('glpi_contracts_suppliers', "`contracts_id`='{$items_id}' AND `suppliers_id`='" . $order->fields['suppliers_id'] . "'")) { $contract_supplier = new Contract_Supplier(); $contract_supplier->add(array('contracts_id' => $items_id, 'suppliers_id' => $order->fields['suppliers_id'])); } } } } else { $input["id"] = $detailID; $input["items_id"] = $items_id; $input["itemtype"] = $itemtype; if ($detail->update($input)) { $this->generateInfoComRelatedToOrder($entity, $detailID, $itemtype, $items_id, $templateID); if ($history) { $order = new PluginOrderOrder(); $order->getFromDB($detail->fields["plugin_order_orders_id"]); $item = new $itemtype(); $item->getFromDB($items_id); $new_value = __("Item linked to order", "order") . ' : ' . $item->getField("name"); $order->addHistory('PluginOrderOrder', '', $new_value, $order->fields["id"]); } } } if ($history) { $order = new PluginOrderOrder(); $order->getFromDB($detail->fields["plugin_order_orders_id"]); $new_value = __("Item linked to order", "order") . ' : ' . $order->fields["name"]; $order->addHistory($itemtype, '', $new_value, $items_id); } Session::addMessageAfterRedirect(__("Item linked to order", "order"), true); } else { Session::addMessageAfterRedirect(__("Item already linked to another one", "order"), true, ERROR); } }