public static function showOrderSupplierInfos($ID) { //TODO : en cours global $DB; $order = new PluginOrderOrder(); $order->getFromDB($ID); $suppliers_id = $order->fields["suppliers_id"]; Session::initNavigateListItems(__CLASS__, __("Order", "order") . " = " . $order->fields["name"]); $candelete = $order->can($ID, UPDATE); $rand = mt_rand(); $link = Toolbox::getItemTypeFormURL(__CLASS__); echo "<form method='post' name='show_supplierinfos{$rand}' id='show_supplierinfos{$rand}' " . "action=\"" . $link . "\">"; echo "<div class='center'>"; echo "<input type='hidden' name='plugin_order_orders_id' value='" . $ID . "'>"; $table = getTableForItemType(__CLASS__); $nb_elements = countElementsInTable($table, "`plugin_order_orders_id` = '{$ID}'"); if ($nb_elements > 0) { echo "<table class='tab_cadre_fixe'>"; echo "<tr><th colspan='4'>" . __("Supplier Detail", "order") . "</th></tr>"; echo "<tr>"; echo "<th> </th>"; echo "<th>" . __("Supplier") . "</th>"; echo "<th>" . __("Quote number", "order") . "</th>"; echo "<th>" . __("Order number") . "</th>"; echo "</tr>"; $datas = getAllDatasFromTable($table, "`plugin_order_orders_id` = '{$ID}'"); foreach ($datas as $data) { Session::addToNavigateListItems(__CLASS__, $data['id']); echo "<input type='hidden' name='item[" . $data["id"] . "]' value='" . $ID . "'>"; echo "<tr class='tab_bg_1 center'>"; echo "<td>"; if ($candelete) { echo "<input type='checkbox' name='check[" . $data["id"] . "]'"; if (isset($_POST['check']) && $_POST['check'] == 'all') { echo " checked "; } echo ">"; } echo "</td>"; echo "<td><a href='" . $link . "?id=" . $data["id"] . "&plugin_order_orders_id=" . $ID . "'>" . Dropdown::getDropdownName("glpi_suppliers", $data["suppliers_id"]) . "</a></td>"; echo "<td>" . $data["num_quote"] . "</td>"; echo "<td>" . $data["num_order"] . "</td>"; echo "</tr>"; } echo "</table></div>"; if ($candelete) { Html::openArrowMassives("show_supplierinfos{$rand}", true); Html::closeArrowMassives(array('delete' => __("Delete permanently"))); } } Html::closeForm(); }
public static function updateDelivryStatus($orders_id) { global $DB; $config = PluginOrderConfig::getConfig(); $order = new PluginOrderOrder(); $order->getFromDB($orders_id); $query = "SELECT `states_id`\n FROM `glpi_plugin_order_orders_items`\n WHERE `plugin_order_orders_id` = '{$orders_id}'"; $result = $DB->query($query); $number = $DB->numrows($result); $delivery_status = 0; $is_delivered = 1; //Except order to be totally delivered if ($number) { while ($data = $DB->fetch_array($result)) { if ($data["states_id"] == PluginOrderOrder::ORDER_DEVICE_DELIVRED) { $delivery_status = 1; } else { $is_delivered = 0; } } } //Are all items delivered ? if ($is_delivered && !$order->isDelivered()) { $order->updateOrderStatus($orders_id, $config->getDeliveredState()); //At least one item is delivered } else { if ($delivery_status) { $order->updateOrderStatus($orders_id, $config->getPartiallyDeliveredState()); } } }
public function showOrders($ref) { global $DB; $order = new PluginOrderOrder(); $query = "SELECT `glpi_plugin_order_orders_items`.*\n FROM `glpi_plugin_order_orders_items`\n LEFT JOIN `glpi_plugin_order_references`\n ON (`glpi_plugin_order_references`.`id` = `glpi_plugin_order_orders_items`.`plugin_order_references_id`)\n WHERE `plugin_order_references_id` = '" . $ref->getID() . "'"; $query .= getEntitiesRestrictRequest(" AND ", "glpi_plugin_order_references", "entities_id", $ref->fields["entities_id"], true); $query .= " GROUP BY `glpi_plugin_order_orders_items`.`plugin_order_orders_id`\n ORDER BY `entities_id`, `name` "; $result = $DB->query($query); $nb = $DB->numrows($result); echo "<div class='center'>"; if ($nb) { if (isset($_REQUEST["start"])) { $start = $_REQUEST["start"]; } else { $start = 0; } $query_limit = $query . " LIMIT " . intval($start) . "," . intval($_SESSION['glpilist_limit']); Html::printAjaxPager(__("Linked orders", "order"), $start, $nb); echo "<table class='tab_cadre_fixe'>"; echo "<tr>"; echo "<th>" . __("Name") . "</a></th>"; echo "<th>" . __("Entity") . "</th>"; echo "</tr>"; foreach ($DB->request($query_limit) as $data) { echo "<tr class='tab_bg_1' align='center'>"; echo "<td>"; $order->getFromDB($data['plugin_order_orders_id']); echo $order->getLink(PluginOrderOrder::canView()); echo "</td>"; echo "<td>"; echo Dropdown::getDropdownName("glpi_entities", $order->fields["entities_id"]); echo "</td>"; echo "</tr>"; } echo "</table>"; } else { echo "<table class='tab_cadre_fixe'>"; echo "<tr class='tab_bg_1'><td class='center'>" . __("No item to display") . "</td></tr>"; echo "</table>"; } echo "</div>"; }
} Html::redirect($_SERVER['HTTP_REFERER']); } else { if (isset($_POST["undovalidation"])) { if (pluginOrderOrder::canView() && pluginOrderOrder::canUndo()) { $pluginOrderOrder->updateOrderStatus($_POST["id"], $config->getDraftState(), $_POST["comment"]); Session::addMessageAfterRedirect(__("Order currently edited", "order")); } Html::redirect($_SERVER['HTTP_REFERER']); } else { if (isset($_POST["add_item"])) { //Details management if ($_POST["discount"] < 0 || $_POST["discount"] > 100) { Session::addMessageAfterRedirect(__("The discount pourcentage must be between 0 and 100", "order"), false, ERROR); } else { $pluginOrderOrder->getFromDB($_POST["plugin_order_orders_id"]); $new_value = __("Add reference", "order") . " "; $new_value .= Dropdown::getDropdownName("glpi_plugin_order_references", $_POST["plugin_order_references_id"]); $new_value .= " (" . __("Quantity", "order") . " : " . $_POST["quantity"]; $new_value .= " " . __("Discount (%)", "order") . " : " . $_POST["discount"] . ")"; $pluginOrderOrder->addHistory("PluginOrderOrder", "", $new_value, $_POST["plugin_order_orders_id"]); $pluginOrderOrder_Item->addDetails($_POST["plugin_order_references_id"], $_POST["itemtype"], $_POST["plugin_order_orders_id"], $_POST["quantity"], $_POST["price"], $_POST["discount"], $_POST["plugin_order_ordertaxes_id"]); } Html::redirect($_SERVER['HTTP_REFERER']); } else { if (isset($_POST["delete_item"])) { if (isset($_POST["plugin_order_orders_id"]) && $_POST["plugin_order_orders_id"] > 0 && isset($_POST["item"])) { foreach ($_POST["item"] as $ID => $val) { if ($val == 1) { $pluginOrderOrder_Item->getFromDB($ID); if ($pluginOrderOrder_Item->fields["itemtype"] == 'SoftwareLicense') {
public static function showOrdersItems(PluginOrderBill $bill) { global $DB, $CFG_GLPI; $reference = new PluginOrderReference(); $order = new PluginOrderOrder(); $order->getFromDB($bill->fields['plugin_order_orders_id']); //Can write orders, and order is not already paid $canedit = $order->can($order->getID(), UPDATE) && !$order->isPaid() && !$order->isCanceled(); $query_ref = "SELECT `glpi_plugin_order_orders_items`.`id` AS IDD, " . "`glpi_plugin_order_orders_items`.`plugin_order_references_id` AS id, " . "`glpi_plugin_order_references`.`name`, " . "`glpi_plugin_order_references`.`itemtype`, " . "`glpi_plugin_order_references`.`manufacturers_id` " . "FROM `glpi_plugin_order_orders_items`, `glpi_plugin_order_references` " . "WHERE `plugin_order_orders_id` = '" . $order->getID() . "' " . "AND `glpi_plugin_order_orders_items`.`plugin_order_references_id` = `glpi_plugin_order_references`.`id` " . "GROUP BY `glpi_plugin_order_orders_items`.`plugin_order_references_id` " . "ORDER BY `glpi_plugin_order_references`.`name`"; $result_ref = $DB->query($query_ref); while ($data_ref = $DB->fetch_array($result_ref)) { echo "<div class='center'><table class='tab_cadre_fixe'>"; if (!$DB->numrows($result_ref)) { echo "<tr><th>" . __("No item to take delivery of", "order") . "</th></tr></table></div>"; } else { $order_item = new PluginOrderOrder_Item(); $rand = mt_rand(); $itemtype = $data_ref["itemtype"]; $item = new $itemtype(); echo "<tr><th><ul><li>"; echo "<a href=\"javascript:showHideDiv('generation{$rand}','generation_img{$rand}', '" . $CFG_GLPI['root_doc'] . "/pics/plus.png','" . $CFG_GLPI['root_doc'] . "/pics/moins.png');\">"; echo "<img alt='' name='generation_img{$rand}' src=\"" . $CFG_GLPI['root_doc'] . "/pics/plus.png\">"; echo "</a>"; echo "</li></ul></th>"; echo "<th>" . __("Type") . "</th>"; echo "<th>" . __("Manufacturer") . "</th>"; echo "<th>" . __("Product reference", "order") . "</th>"; echo "</tr>"; echo "<tr class='tab_bg_1 center'>"; echo "<td></td>"; echo "<td align='center'>" . $item->getTypeName() . "</td>"; //Entity echo "<td align='center'>"; echo Dropdown::getDropdownName('glpi_entities', $order->getEntityID()); echo "</td>"; echo "<td>" . $reference->getReceptionReferenceLink($data_ref) . "</td>"; echo "</tr></table>"; echo "<div class='center' id='generation{$rand}' style='display:none'>"; echo "<form method='post' name='bills_form{$rand}' id='bills_form{$rand}'\n action='" . Toolbox::getItemTypeFormURL('PluginOrderBill') . "'>"; echo "<input type='hidden' name='plugin_order_orders_id' value='" . $order->getID() . "'>"; echo "<table class='tab_cadre_fixe'>"; echo "<th></th>"; echo "<th>" . __("Reference") . "</th>"; echo "<th>" . __("Type") . "</th>"; echo "<th>" . __("Model") . "</th>"; echo "<th>" . __("Bill", "order") . "</th>"; echo "<th>" . __("Bill status", "order") . "</th>"; echo "</tr>"; $results = $order_item->queryBills($order->getID(), $data_ref['id']); while ($data = $DB->fetch_array($results)) { echo "<tr class='tab_bg_1'>"; if ($canedit) { echo "<td width='10'>"; $sel = ""; if (isset($_GET["select"]) && $_GET["select"] == "all") { $sel = "checked"; } echo "<input type='checkbox' name='item[" . $data["IDD"] . "]' value='1' {$sel}>"; echo "<input type='hidden' name='plugin_order_orders_id' value='" . $order->getID() . "'>"; echo "</td>"; } //Reference echo "<td align='center'>"; echo $reference->getReceptionReferenceLink($data); echo "</td>"; //Type echo "<td align='center'>"; if (file_exists($CFG_GLPI['root_doc'] . "/inc/" . strtolower($data["itemtype"]) . "type.class.php")) { echo Dropdown::getDropdownName(getTableForItemType($data["itemtype"] . "Type"), $data["types_id"]); } echo "</td>"; //Model echo "<td align='center'>"; if (file_exists($CFG_GLPI['root_doc'] . "/inc/" . strtolower($data["itemtype"]) . "model.class.php")) { echo Dropdown::getDropdownName(getTableForItemType($data["itemtype"] . "Model"), $data["models_id"]); } $bill = new PluginOrderBill(); echo "<td align='center'>"; if ($data["plugin_order_bills_id"] > 0) { if ($bill->can($data['plugin_order_bills_id'], READ)) { echo "<a href='" . $bill->getLinkURL() . "'>" . $bill->getName(true) . "</a>"; } else { echo $bill->getName(); } } echo "</td>"; echo "<td align='center'>"; echo Dropdown::getDropdownName(getTableForItemType('PluginOrderBillState'), $data['plugin_order_billstates_id']); echo "</td>"; echo "</tr>"; } } echo "</table>"; if ($canedit) { echo "<div class='center'>"; echo "<table width='950px' class='tab_glpi'>"; echo "<tr><td><img src=\"" . $CFG_GLPI["root_doc"] . "/pics/arrow-left.png\" alt=''></td><td class='center'>"; echo "<a onclick= \"if ( markCheckboxes('bills_form{$rand}') ) " . "return false;\" href='#'>" . __("Check all") . "</a></td>"; echo "<td>/</td><td class='center'>"; echo "<a onclick= \"if ( unMarkCheckboxes('bills_form{$rand}') ) " . "return false;\" href='#'>" . __("Uncheck all") . "</a>"; echo "</td><td align='left' width='80%'>"; echo "<input type='hidden' name='plugin_order_orders_id' value='" . $order->getID() . "'>"; $order_item->dropdownBillItemsActions($order->getID()); echo "</td>"; echo "</table>"; echo "</div>"; } Html::closeForm(); echo "</div>"; } echo "<br>"; }
public function showForm($ID, $options = array()) { $this->initForm($ID, $options); $this->showFormHeader($options); $order_order = new PluginOrderOrder(); $order_order->getFromDB($this->fields['plugin_order_orders_id']); $order_reference = new PluginOrderReference(); $order_reference->getFromDB($this->fields["plugin_order_references_id"]); $canedit = $order_order->can($this->fields['plugin_order_orders_id'], UPDATE) && $order_order->canUpdateOrder() && !$order_order->isCanceled(); $canedit_comment = $order_order->can($this->fields['plugin_order_orders_id'], UPDATE) && !$order_order->isCanceled(); echo "<input type='hidden' name='plugin_order_orders_id' value='" . $this->fields['plugin_order_orders_id'] . "'>"; echo "<tr class='tab_bg_1'>"; echo "<td>" . __("Order", "order") . ": </td>"; echo "<td>"; echo $order_order->getLink(true); echo "</td>"; echo "<td>" . __("Reference") . ": </td>"; echo "<td>"; $data = array(); $data["id"] = $this->fields["plugin_order_references_id"]; $data["name"] = $order_reference->fields["name"]; echo $order_reference->getReceptionReferenceLink($data); echo "</td>"; echo "</tr>"; echo "<tr class='tab_bg_1'>"; echo "<td>" . __("Unit price tax free", "order") . ": </td>"; if ($canedit) { echo "<td><input type='number' step='" . PLUGIN_ORDER_NUMBER_STEP . "' name='price_taxfree' value='" . $this->fields['price_taxfree'] . "' class='decimal'>"; } else { echo "<td>" . Html::formatNumber($this->fields['price_taxfree']) . "</td>"; } echo "<td>" . __("VAT", "order") . ": </td>"; echo "<td>"; if ($canedit) { PluginOrderOrderTax::Dropdown(array('value' => $this->fields['plugin_order_ordertaxes_id'])); } else { echo Dropdown::getDropdownName('glpi_plugin_order_ordertaxes', $this->fields['plugin_order_ordertaxes_id']); } echo "</td>"; echo "</tr>"; echo "<tr class='tab_bg_1'>"; echo "<td>" . __("Discount (%)", "order") . ": </td>"; if ($canedit) { echo "<td><input type='number' step='" . PLUGIN_ORDER_NUMBER_STEP . "' name='discount' \n value='" . $this->fields['discount'] . "' class='decimal'>"; } else { echo "<td>" . Html::formatNumber($this->fields['discount']) . "</td>"; } echo "<td>" . __("Discounted price tax free", "order") . ": </td>"; echo "<td>" . Html::formatNumber($this->fields['price_discounted']) . "</td>"; echo "</tr>"; echo "<tr class='tab_bg_1'>"; echo "<td>" . __("Price ATI", "order") . ": </td>"; echo "<td>" . Html::formatNumber($this->fields['price_ati']) . "</td>"; echo "<td>" . __("Status") . ": </td>"; echo "<td>"; echo Dropdown::getDropdownName('glpi_plugin_order_deliverystates', $this->fields['plugin_order_deliverystates_id']); echo "</td>"; echo "</tr>"; echo "<tr class='tab_bg_1'><td>"; //comments of order echo __("Description") . ": </td>"; echo "<td colspan='3'>"; if ($canedit_comment) { echo "<textarea cols='50' rows='4' name='comment'>" . $this->fields["comment"] . "</textarea>"; } else { echo $this->fields['comment']; } echo "</td></tr>"; $this->showFormButtons(array('canedit' => $canedit || $canedit_comment, 'candel' => $canedit)); return true; }
public function generateNewItem($params) { global $DB; // Retrieve plugin configuration $config = new PluginOrderConfig(); $reference = new PluginOrderReference(); foreach ($params["id"] as $tmp => $values) { //If itemtype cannot be generated, go to the new occurence if (in_array($values['itemtype'], self::getTypesThanCannotBeGenerared())) { continue; } $entity = $values["entities_id"]; //------------- Template management -----------------------// //Look for a template in the entity $templateID = $reference->checkIfTemplateExistsInEntity($values["id"], $values["itemtype"], $entity); $item = new $values["itemtype"](); if ($values['itemtype']) { $order = new PluginOrderOrder(); } $order->getFromDB($values["plugin_order_orders_id"]); $reference->getFromDB($params["plugin_order_references_id"]); if ($templateID) { $item->getFromDB($templateID); unset($item->fields["is_template"]); unset($item->fields["date_mod"]); $fields = array(); foreach ($item->fields as $key => $value) { if ($value != '' && (!isset($fields[$key]) || $fields[$key] == '' || $fields[$key] == 0)) { $input[$key] = $value; } } if ($config->getGeneratedAssetState()) { $input["states_id"] = $config->getGeneratedAssetState(); } $input["entities_id"] = $entity; $input["serial"] = $values["serial"]; if ($item->fields['name']) { $input["name"] = autoName($item->fields["name"], "name", $templateID, $values["itemtype"], $entity); } else { $input["name"] = $values["name"]; } if ($item->getField('otherserial') != NOT_AVAILABLE) { if ($item->fields['otherserial']) { $input["otherserial"] = autoName($item->fields["otherserial"], "otherserial", $templateID, $values["itemtype"], $entity); } else { $input["otherserial"] = $values["otherserial"]; } } if ($config->canAddLocation()) { $input['locations_id'] = $order->fields['locations_id']; } } elseif ($values["itemtype"] == 'Contract') { $input["name"] = $values["name"]; $input["entities_id"] = $entity; $input['contracttypes_id'] = $reference->fields['types_id']; } else { if ($config->getGeneratedAssetState()) { $input["states_id"] = $config->getGeneratedAssetState(); } else { $input["states_id"] = 0; } $input["entities_id"] = $entity; $input["serial"] = $values["serial"]; $input["otherserial"] = $values["otherserial"]; $input["name"] = $values["name"]; // Get bill data if ($config->canAddLocation()) { $input['locations_id'] = $order->fields['locations_id']; } $input["manufacturers_id"] = $reference->fields["manufacturers_id"]; $typefield = getForeignKeyFieldForTable(getTableForItemType($values["itemtype"] . "Type")); $input[$typefield] = $reference->fields["types_id"]; $modelfield = getForeignKeyFieldForTable(getTableForItemType($values["itemtype"] . "Model")); $input[$modelfield] = $reference->fields["models_id"]; } $input = Toolbox::addslashes_deep($input); $newID = $item->add($input); // Attach new ticket if option is on if (isset($params['generate_ticket'])) { $tkt = new TicketTemplate(); if ($tkt->getFromDB($params['generate_ticket']['tickettemplates_id'])) { $input = array(); $input = Ticket::getDefaultValues($entity); $ttp = new TicketTemplatePredefinedField(); $predefined = $ttp->getPredefinedFields($params['generate_ticket']['tickettemplates_id'], true); if (count($predefined)) { foreach ($predefined as $predeffield => $predefvalue) { $input[$predeffield] = $predefvalue; } } $input['entities_id'] = $entity; $input['_users_id_requester'] = empty($order->fields['users_id']) ? Session::getLoginUserID() : $order->fields['users_id']; $input['items_id'] = $newID; $input['itemtype'] = $values["itemtype"]; $ticket = new Ticket(); $ticketID = $ticket->add($input); } } //-------------- End template management ---------------------------------// $result = $this->createLinkWithItem($values["id"], $newID, $values["itemtype"], $values["plugin_order_orders_id"], $entity, $templateID, false, false); //Add item's history $new_value = __("Item generated by using order", "order") . ' : ' . $order->fields["name"]; $order->addHistory($values["itemtype"], '', $new_value, $newID); //Add order's history $new_value = __("Item generated by using order", "order") . ' : '; $new_value .= $item->getTypeName() . " -> " . $item->getField("name"); $order->addHistory('PluginOrderOrder', '', $new_value, $values["plugin_order_orders_id"]); //Copy order documents if needed self::copyDocuments($values['itemtype'], $newID, $values["plugin_order_orders_id"], $entity); Session::addMessageAfterRedirect(__("Item successfully selected", "order"), true); } }
function showForm($ID, $options = array()) { if (!self::canView()) { return false; } if ($ID > 0) { $this->check($ID, 'r'); } else { // Create item $this->check(-1, 'w', $options); } $this->showTabs($options); $this->showFormHeader($options); $order_order = new PluginOrderOrder(); $order_order->getFromDB($this->fields['plugin_order_orders_id']); $order_reference = new PluginOrderReference(); $order_reference->getFromDB($this->fields["plugin_order_references_id"]); $canedit = $order_order->can($this->fields['plugin_order_orders_id'], 'w') && $order_order->canUpdateOrder() && !$order_order->isCanceled(); $canedit_comment = $order_order->can($this->fields['plugin_order_orders_id'], 'w') && !$order_order->isCanceled(); echo "<input type='hidden' name='plugin_order_orders_id' value='" . $this->fields['plugin_order_orders_id'] . "'>"; echo "<tr class='tab_bg_1'>"; echo "<td>" . __("Order", "order") . ": </td>"; echo "<td>"; echo $order_order->getLink(true); echo "</td>"; echo "<td>" . __("Reference") . ": </td>"; echo "<td>"; $data = array(); $data["id"] = $this->fields["plugin_order_references_id"]; $data["name"] = $order_reference->fields["name"]; echo $order_reference->getReceptionReferenceLink($data); echo "</td>"; echo "</tr>"; echo "<tr class='tab_bg_1'>"; echo "<td>" . __("Unit price tax free", "order") . ": </td>"; if ($canedit) { echo "<td><input type='text' name='price_taxfree' value='" . $this->fields['price_taxfree'] . "'>"; } else { echo "<td>" . Html::formatNumber($this->fields['price_taxfree']) . "</td>"; } echo "<td>" . __("VAT", "order") . ": </td>"; echo "<td>"; if ($canedit) { PluginOrderOrderTaxe::Dropdown(array('value' => $this->fields['plugin_order_ordertaxes_id'])); } else { echo Dropdown::getDropdownName('glpi_plugin_order_ordertaxes', $this->fields['plugin_order_ordertaxes_id']); } echo "</td>"; echo "</tr>"; echo "<tr class='tab_bg_1'>"; echo "<td>" . __("Discount (%)", "order") . ": </td>"; if ($canedit) { echo "<td><input type='text' name='discount' value='" . $this->fields['discount'] . "'>"; } else { echo "<td>" . Html::formatNumber($this->fields['discount']) . "</td>"; } echo "<td>" . __("Discounted price tax free", "order") . ": </td>"; echo "<td>" . Html::formatNumber($this->fields['price_discounted']) . "</td>"; echo "</tr>"; echo "<tr class='tab_bg_1'>"; echo "<td>" . __("Price ATI", "order") . ": </td>"; echo "<td>" . Html::formatNumber($this->fields['price_ati']) . "</td>"; echo "<td>" . __("Status") . ": </td>"; echo "<td>"; echo Dropdown::getDropdownName('glpi_plugin_order_deliverystates', $this->fields['plugin_order_deliverystates_id']); echo "</td>"; echo "</tr>"; echo "<tr class='tab_bg_1'><td>"; //comments of order echo __("Description") . ": </td>"; echo "<td colspan='3'>"; if ($canedit_comment) { echo "<textarea cols='50' rows='4' name='comment'>" . $this->fields["comment"] . "</textarea>"; } else { echo $this->fields['comment']; } echo "</td></tr>"; $this->showFormButtons(array('canedit' => $canedit || $canedit_comment, 'candel' => $canedit)); $this->addDivForTabs(); return true; }
public static function showOrderSupplierSurvey($ID) { global $DB, $CFG_GLPI; $order = new PluginOrderOrder(); $order->getFromDB($ID); $survey = new self(); $table = getTableForItemType(__CLASS__); Session::initNavigateListItems(__CLASS__, __("Order", "order") . " = " . $order->fields["name"]); $candelete = $order->can($ID, DELETE); $query = "SELECT * FROM `{$table}` WHERE `plugin_order_orders_id` = '{$ID}' "; $result = $DB->query($query); $rand = mt_rand(); echo "<div class='center'>"; echo "<form method='post' name='show_suppliersurvey{$rand}' id='show_suppliersurvey{$rand}' " . " action=\"" . Toolbox::getItemTypeFormURL(__CLASS__) . "\">"; echo "<input type='hidden' name='plugin_order_orders_id' value='" . $ID . "'>"; echo "<table class='tab_cadre_fixe'>"; echo "<tr><th colspan='5'>" . __("Supplier quality", "order") . "</th></tr>"; echo "<tr><th> </th>"; echo "<th>" . __("Supplier") . "</th>"; echo "<th>" . __("Note", "order") . "</th>"; echo "<th>" . __("Comment on survey", "order") . "</th>"; echo "</tr>"; if ($DB->numrows($result) > 0) { while ($data = $DB->fetch_array($result)) { Session::addToNavigateListItems(__CLASS__, $data['id']); echo "<input type='hidden' name='item[" . $data["id"] . "]' value='" . $ID . "'>"; echo "<tr class='tab_bg_1 center'>"; echo "<td>"; if ($candelete) { echo "<input type='checkbox' name='check[" . $data["id"] . "]'"; if (isset($_POST['check']) && $_POST['check'] == 'all') { echo " checked "; } echo ">"; } echo "</td>"; $link = Toolbox::getItemTypeFormURL(__CLASS__); echo "<td><a href='" . $link . "?id=" . $data["id"] . "&plugin_order_orders_id=" . $ID . "'>" . Dropdown::getDropdownName("glpi_suppliers", $data["suppliers_id"]) . "</a></td>"; echo "<td>"; $total = $survey->getTotalNotation($ID); echo $total . " / 10"; echo "</td>"; echo "<td>"; echo $data["comment"]; echo "</td>"; echo "</tr>"; } echo "</table>"; if ($candelete) { echo "<div class='center'>"; Html::openArrowMassives("show_suppliersurvey{$rand}", true); Html::closeArrowMassives(array("delete" => __("Delete permanently"))); echo "</div>"; } } else { echo "</table>"; } Html::closeForm(); echo "</div>"; }