public function showOrderReception($orders_id) { global $DB, $CFG_GLPI; $order_order = new PluginOrderOrder(); $order_item = new PluginOrderOrder_Item(); $reference = new PluginOrderReference(); $order_order->getFromDB($orders_id); Session::initNavigateListItems($this->getType(), __("Order", "order") . " = " . $order_order->fields["name"]); $canedit = self::canCreate() && !$order_order->canUpdateOrder() && !$order_order->isCanceled(); $result_ref = $order_item->queryDetail($orders_id); $numref = $DB->numrows($result_ref); while ($data_ref = $DB->fetch_array($result_ref)) { echo "<div class='center'><table class='tab_cadre_fixe'>"; if (!$numref) { echo "<tr><th>" . __("No item to take delivery of", "order") . "</th></tr></table></div>"; } else { $references_id = $data_ref["id"]; $typeRef = $data_ref["itemtype"]; $price_taxfree = $data_ref["price_taxfree"]; $discount = $data_ref["discount"]; $item = new $typeRef(); $rand = mt_rand(); echo "<tr><th><ul><li>"; echo "<a href=\"javascript:showHideDiv('reception{$rand}','reception_img{$rand}', '" . $CFG_GLPI['root_doc'] . "/pics/plus.png','" . $CFG_GLPI['root_doc'] . "/pics/moins.png');\">"; echo "<img alt='' name='reception_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 "<th>" . __("Delivered items", "order") . "</th>"; echo "</tr>"; echo "<tr class='tab_bg_1 center'>"; echo "<td></td>"; echo "<td align='center'>" . $item->getTypeName() . "</td>"; echo "<td align='center'>" . Dropdown::getDropdownName("glpi_manufacturers", $data_ref["manufacturers_id"]) . "</td>"; echo "<td>" . $reference->getReceptionReferenceLink($data_ref) . "</td>"; $total = $order_item->getTotalQuantityByRefAndDiscount($orders_id, $references_id, $data_ref["price_taxfree"], $data_ref["discount"]); echo "<td>" . $order_item->getDeliveredQuantity($orders_id, $references_id, $data_ref["price_taxfree"], $data_ref["discount"]) . " / " . $total . "</td>"; echo "</tr></table>"; echo "<div class='center' id='reception{$rand}' style='display:none'>"; echo "<form method='post' name='order_reception_form{$rand}' id='order_reception_form{$rand}'" . " action=\"" . Toolbox::getItemTypeFormURL("PluginOrderReception") . "\">"; echo "<table class='tab_cadre_fixe'>"; echo "<tr>"; echo "<th width='15'></th>"; if ($typeRef != 'SoftwareLicense') { echo "<th>" . __("ID") . "</th>"; } echo "<th>" . __("Reference") . "</th>"; echo "<th>" . __("Status") . "</th>"; echo "<th>" . __("Delivery date") . "</th>"; echo "<th>" . __("Delivery form") . "</th>"; echo "<th>" . __("Delivery status", "order") . "</th>"; echo "</tr>"; $query = "SELECT `glpi_plugin_order_orders_items`.`id` AS IDD,\n `glpi_plugin_order_references`.`id` AS id,\n `glpi_plugin_order_references`.`templates_id`,\n `glpi_plugin_order_orders_items`.`states_id`,\n `glpi_plugin_order_orders_items`.`comment`,\n `glpi_plugin_order_orders_items`.`plugin_order_deliverystates_id`,\n `glpi_plugin_order_orders_items`.`delivery_date`,\n `glpi_plugin_order_orders_items`.`delivery_number`,\n `glpi_plugin_order_references`.`name`,\n `glpi_plugin_order_references`.`itemtype`,\n `glpi_plugin_order_orders_items`.`items_id`\n FROM `glpi_plugin_order_orders_items`, `glpi_plugin_order_references`\n WHERE `plugin_order_orders_id` = '{$orders_id}'\n AND `glpi_plugin_order_orders_items`.`plugin_order_references_id` = '" . $references_id . "'\n AND `glpi_plugin_order_orders_items`.`plugin_order_references_id` = `glpi_plugin_order_references`.`id`\n AND `glpi_plugin_order_orders_items`.`discount` LIKE '" . $discount . "'\n AND `glpi_plugin_order_orders_items`.`price_taxfree` LIKE '" . $price_taxfree . "' "; if ($typeRef == 'SoftwareLicense') { $query .= " GROUP BY `glpi_plugin_order_references`.`name` "; } $query .= " ORDER BY `glpi_plugin_order_references`.`name` "; $result = $DB->query($query); $num = $DB->numrows($result); while ($data = $DB->fetch_array($result)) { $random = mt_rand(); $detailID = $data["IDD"]; Session::addToNavigateListItems($this->getType(), $detailID); echo "<tr class='tab_bg_2'>"; $status = 1; if ($typeRef != 'SoftwareLicense') { $status = $this->checkThisItemStatus($detailID, PluginOrderOrder::ORDER_DEVICE_NOT_DELIVRED); } if ($order_order->canDeliver() && $status) { echo "<td width='15' align='left'>"; $sel = ""; if (isset($_GET["select"]) && $_GET["select"] == "all") { $sel = "checked"; } echo "<input type='checkbox' name='item[" . $detailID . "]' value='1' {$sel}>"; echo "</td>"; } else { echo "<td width='15' align='left'></td>"; } if ($typeRef != 'SoftwareLicense') { echo "<td align='center'>" . $data["IDD"] . " "; Html::showTooltip($data['comment']); echo "</td>"; } echo "<td align='center'>" . $reference->getReceptionReferenceLink($data) . "</td>"; echo "<td align='center'>"; $link = Toolbox::getItemTypeFormURL($this->getType()); if ($canedit && $data["states_id"] == PluginOrderOrder::ORDER_DEVICE_DELIVRED) { echo "<a href=\"" . $link . "?id=" . $data["IDD"] . "\">"; } echo $this->getReceptionStatus($detailID); if ($canedit && $data["states_id"] == PluginOrderOrder::ORDER_DEVICE_DELIVRED) { echo "</a>"; } echo "</td>"; echo "<td align='center'>" . Html::convDate($data["delivery_date"]) . "</td>"; echo "<td align='center'>" . $data["delivery_number"] . "</td>"; echo "<td align='center'>" . Dropdown::getDropdownName("glpi_plugin_order_deliverystates", $data["plugin_order_deliverystates_id"]) . "</td>"; echo "<input type='hidden' name='id[{$detailID}]' value='{$detailID}'>"; echo "<input type='hidden' name='name[{$detailID}]' value='" . $data["name"] . "'>"; echo "<input type='hidden' name='plugin_order_references_id[{$detailID}]' value='" . $data["id"] . "'>"; echo "<input type='hidden' name='itemtype[{$detailID}]' value='" . $data["itemtype"] . "'>"; echo "<input type='hidden' name='templates_id[{$detailID}]' value='" . $data["templates_id"] . "'>"; echo "<input type='hidden' name='states_id[{$detailID}]' value='" . $data["states_id"] . "'>"; } echo "</table>"; if ($order_order->canDeliver() && $this->checkItemStatus($orders_id, $references_id, PluginOrderOrder::ORDER_DEVICE_NOT_DELIVRED)) { Html::openArrowMassives("order_reception_form{$rand}", true); echo "<input type='hidden' name='plugin_order_orders_id' value='{$orders_id}'>"; $this->dropdownReceptionActions($typeRef, $references_id, $orders_id); Html::closeArrowMassives(array()); $rand = mt_rand(); if ($typeRef != 'SoftwareLicense') { echo "<div id='massreception" . $orders_id . $rand . "'></div>\n"; echo "<script type='text/javascript' >\n"; echo "function viewmassreception" . $orders_id . "{$rand}(){\n"; $params = array('plugin_order_orders_id' => $orders_id, 'plugin_order_references_id' => $references_id); Ajax::updateItemJsCode("massreception" . $orders_id . $rand, $CFG_GLPI["root_doc"] . "/plugins/order/ajax/massreception.php", $params, false); echo "};"; echo "</script>\n"; echo "<p><a href='javascript:viewmassreception" . $orders_id . "{$rand}();'>"; echo __("Take item delivery (bulk)", "order") . "</a></p><br>\n"; } } Html::closeForm(); echo "</div>"; } echo "<br>"; } }
public function showOrderLink($plugin_order_orders_id) { global $DB, $CFG_GLPI; $PluginOrderOrder = new PluginOrderOrder(); $PluginOrderOrder_Item = new PluginOrderOrder_Item(); $PluginOrderReference = new PluginOrderReference(); $PluginOrderReception = new PluginOrderReception(); $PluginOrderOrder->getFromDB($plugin_order_orders_id); $canedit = $PluginOrderOrder->canDeliver() && !$PluginOrderOrder->canUpdateOrder() && !$PluginOrderOrder->isCanceled(); $query_ref = "SELECT `glpi_plugin_order_orders_items`.`id` AS IDD,\n `glpi_plugin_order_orders_items`.`plugin_order_references_id` AS id,\n `glpi_plugin_order_references`.`name`,\n `glpi_plugin_order_references`.`itemtype`,\n `glpi_plugin_order_references`.`manufacturers_id`,\n `glpi_plugin_order_orders_items`.`price_taxfree`,\n `glpi_plugin_order_orders_items`.`discount`\n FROM `glpi_plugin_order_orders_items`, `glpi_plugin_order_references`\n WHERE `plugin_order_orders_id` = '{$plugin_order_orders_id}'\n AND `glpi_plugin_order_orders_items`.`plugin_order_references_id` = `glpi_plugin_order_references`.`id`\n AND `glpi_plugin_order_orders_items`.`states_id` = '" . PluginOrderOrder::ORDER_DEVICE_DELIVRED . "'\n GROUP BY `glpi_plugin_order_orders_items`.`plugin_order_references_id`\n ORDER BY `glpi_plugin_order_references`.`name`"; $result_ref = $DB->query($query_ref); $numref = $DB->numrows($result_ref); while ($data_ref = $DB->fetch_array($result_ref)) { echo "<div class='center'><table class='tab_cadre_fixe'>"; if (!$numref) { echo "<tr><th>" . __("No item to take delivery of", "order") . "</th></tr></table></div>"; } else { $plugin_order_references_id = $data_ref["id"]; $itemtype = $data_ref["itemtype"]; $canuse = $itemtype != 'PluginOrderOther'; $item = new $itemtype(); $rand = mt_rand(); $query = "SELECT `glpi_plugin_order_orders_items`.`id` AS IDD,\n `glpi_plugin_order_references`.`id` AS id,\n `glpi_plugin_order_references`.`templates_id`,\n `glpi_plugin_order_orders_items`.`states_id`,\n `glpi_plugin_order_orders_items`.`delivery_date`,\n `glpi_plugin_order_orders_items`.`delivery_number`,\n `glpi_plugin_order_references`.`name`,\n `glpi_plugin_order_references`.`itemtype`,\n `glpi_plugin_order_orders_items`.`items_id`,\n `glpi_plugin_order_orders_items`.`price_taxfree`,\n `glpi_plugin_order_orders_items`.`discount`\n FROM `glpi_plugin_order_orders_items`, `glpi_plugin_order_references`\n WHERE `plugin_order_orders_id` = '{$plugin_order_orders_id}'\n AND `glpi_plugin_order_orders_items`.`plugin_order_references_id` = '{$plugin_order_references_id}'\n AND `glpi_plugin_order_orders_items`.`plugin_order_references_id` = `glpi_plugin_order_references`.`id`\n AND `glpi_plugin_order_orders_items`.`states_id` = '" . PluginOrderOrder::ORDER_DEVICE_DELIVRED . "'"; if ($itemtype == 'SoftwareLicense') { $query .= " GROUP BY `glpi_plugin_order_orders_items`.`price_taxfree`,\n `glpi_plugin_order_orders_items`.`discount`"; } $query .= " ORDER BY `glpi_plugin_order_references`.`name`"; $result = $DB->query($query); $num = $DB->numrows($result); 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>"; echo "<td align='center'>" . Dropdown::getDropdownName("glpi_manufacturers", $data_ref["manufacturers_id"]) . "</td>"; echo "<td>" . $PluginOrderReference->getReceptionReferenceLink($data_ref) . " ({$num})</td>"; echo "</tr>"; echo "</table>"; echo "<div class='center' id='generation{$rand}' style='display:none'>"; echo "<form method='post' name='order_generation_form{$rand}'\n id='order_generation_form{$rand}' action=\"" . Toolbox::getItemTypeFormUrl(__CLASS__) . "\">"; echo "<table class='tab_cadre_fixe'>"; echo "<tr>"; if ($canedit & $canuse) { echo "<th width='15'></th>"; } if ($itemtype != 'SoftwareLicense') { echo "<th>" . __("ID") . "</th>"; } else { echo "<th>" . __("Quantity", "order") . "</th>"; } echo "<th>" . __("Reference") . "</th>"; echo "<th>" . __("Status") . "</th>"; echo "<th>" . __("Delivery date") . "</th>"; echo "<th>" . _n("Associated item", "Associated items", 2) . "</th></tr>"; while ($data = $DB->fetch_array($result)) { $random = mt_rand(); $detailID = $data["IDD"]; echo "<tr class='tab_bg_2'>"; if ($canedit & $canuse) { echo "<td width='15' align='left'>"; $sel = ""; if (isset($_GET["select"]) && $_GET["select"] == "all") { $sel = "checked"; } echo "<input type='checkbox' name='item[" . $detailID . "]' value='1' {$sel}>"; echo "</td>"; } if ($itemtype != 'SoftwareLicense') { echo "<td align='center'>" . $data["IDD"] . "</td>"; } else { echo "<td align='center'>"; echo $PluginOrderOrder_Item->getTotalQuantityByRefAndDiscount($plugin_order_orders_id, $plugin_order_references_id, $data["price_taxfree"], $data["discount"]); echo "</td>"; } echo "<td align='center'>" . $PluginOrderReference->getReceptionReferenceLink($data) . "</td>"; echo "<td align='center'>" . $PluginOrderReception->getReceptionStatus($detailID) . "</td>"; echo "<td align='center'>" . Html::convDate($data["delivery_date"]) . "</td>"; echo "<td align='center'>" . $this->getReceptionItemName($data["items_id"], $data["itemtype"]); echo "<input type='hidden' name='id[{$detailID}]' value='{$detailID}'>"; echo "<input type='hidden' name='name[{$detailID}]' value='" . $data["name"] . "'>"; echo "<input type='hidden' name='itemtype[{$detailID}]' value='" . $data["itemtype"] . "'>"; echo "<input type='hidden' name='templates_id[{$detailID}]' value='" . $data["templates_id"] . "'>"; echo "<input type='hidden' name='states_id[{$detailID}]' value='" . $data["states_id"] . "'>"; } echo "</tr>"; echo "</table>"; if ($canedit & $canuse) { Html::openArrowMassives("order_generation_form{$rand}", true); echo "<input type='hidden' name='plugin_order_orders_id' value='{$plugin_order_orders_id}'>"; $entities_id = $PluginOrderOrder->fields['entities_id']; $this->dropdownLinkActions($itemtype, $plugin_order_references_id, $plugin_order_orders_id, $entities_id); Html::closeArrowMassives(array()); } 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; }
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; }