public function showFormDetail($plugin_order_orders_id) { global $CFG_GLPI, $DB; $order = new PluginOrderOrder(); $reference = new PluginOrderReference(); $reception = new PluginOrderReception(); $result_ref = $this->queryDetail($plugin_order_orders_id); $numref = $DB->numrows($result_ref); $rand = mt_rand(); $canedit = $order->can($plugin_order_orders_id, UPDATE) && $order->canUpdateOrder(); Session::initNavigateListItems($this->getType(), __("Order", "order") . " = " . $order->getName()); while ($data_ref = $DB->fetch_array($result_ref)) { $global_rand = mt_rand(); echo "<div class='center'>"; echo "<form method='post' name='order_updatedetail_form{$rand}' " . "id='order_updatedetail_form{$rand}' " . "action='" . Toolbox::getItemTypeFormURL('PluginOrderOrder') . "'>"; echo "<input type='hidden' name='plugin_order_orders_id'\n value='" . $plugin_order_orders_id . "'>"; echo "<input type='hidden' name='plugin_order_order_items_id'\n value='" . $data_ref['IDD'] . "'>"; echo "<table class='tab_cadre_fixe'>"; if (!$numref) { echo "<tr><th>" . __("No item to take delivery of", "order") . "</th></tr></table></div>"; } else { $refID = $data_ref["id"]; $price_taxfree = $data_ref["price_taxfree"]; $discount = $data_ref["discount"]; $rand = mt_rand(); echo "<tr><th><ul><li>"; echo "<a href=\"javascript:showHideDiv('detail{$rand}','detail_img{$rand}', '" . $CFG_GLPI['root_doc'] . "/pics/plus.png','" . $CFG_GLPI['root_doc'] . "/pics/moins.png');\">"; echo "<img alt='' name='detail_img{$rand}' src=\"" . $CFG_GLPI['root_doc'] . "/pics/plus.png\">"; echo "</a>"; echo "</li></ul></th>"; echo "<th>" . __("Quantity", "order") . "</th>"; echo "<th>" . __("Equipment", "order") . "</th>"; echo "<th>" . __("Manufacturer") . "</th>"; echo "<th>" . __("Reference") . "</th>"; echo "<th>" . __("Type") . "</th>"; echo "<th>" . __("Model") . "</th>"; echo "<th>" . __("Unit price tax free", "order") . "</th>"; echo "<th>" . __("Discount (%)", "order") . "</th>"; echo "</tr>"; echo "<tr class='tab_bg_1 center'>"; echo "<td><div id='viewaccept{$rand}' style='display:none;'>"; echo "<p><input type='submit' onclick=\"return confirm('" . __("Do you really want to update this item ?", "order") . "');\" name='update_item' value=\"" . _sx("button", "Update") . "\" class='submit'></p>"; echo "<br /><p><input type='button' onclick=\"hideForm{$rand}();\" value=\"" . _sx("button", "Cancel") . "\" class='submit'></p>"; echo "</div></td>"; if ($canedit) { echo "<script type='text/javascript' >\n"; echo "function hideForm{$rand}() {\n"; echo "\$('#quantity{$rand}').show();"; echo "\$('#pricetaxfree{$rand}').show();"; echo "\$('#discount{$rand}').show();"; echo "\$('#viewquantity{$rand} input').remove();"; echo "\$('#viewpricetaxfree{$rand} input').remove();"; echo "\$('#viewdiscount{$rand} input').remove();"; echo "\$('#viewaccept{$rand}').hide();"; echo "}\n"; echo "</script>\n"; } /* quantity */ $quantity = $this->getTotalQuantityByRefAndDiscount($plugin_order_orders_id, $refID, $price_taxfree, $discount); if ($canedit) { echo "<td align='center'>"; echo "<script type='text/javascript' >\n"; echo "function showQuantity{$rand}() {\n"; echo "\$('#quantity{$rand}').hide();"; echo "\$('#viewaccept{$rand}').show();"; $params = array('maxlength' => 15, 'size' => 8, 'name' => 'quantity', 'class' => 'quantity', 'force_integer' => true, 'data' => rawurlencode($quantity)); Ajax::updateItemJsCode("viewquantity{$rand}", $CFG_GLPI["root_doc"] . "/plugins/order/ajax/inputnumber.php", $params, false); echo "}"; echo "</script>\n"; echo "<div id='quantity{$rand}' class='center' onClick='showQuantity{$rand}()'>\n"; echo $quantity; echo "</div>\n"; echo "<div id='viewquantity{$rand}'>\n"; echo "</div>\n"; echo "</td>"; } else { echo "<td align='center'>" . $quantity . "</td>"; } /* type */ $item = new $data_ref["itemtype"](); echo "<td align='center'>" . $item->getTypeName() . "</td>"; /* manufacturer */ echo "<td align='center'>" . Dropdown::getDropdownName("glpi_manufacturers", $data_ref["manufacturers_id"]) . "</td>"; /* reference */ echo "<td align='center'>"; echo "<input type='hidden' name='old_plugin_order_references_id'\n value='" . $refID . "'>"; echo $reference->getReceptionReferenceLink($data_ref); echo "</td>"; /* type */ echo "<td align='center'>"; if (file_exists(GLPI_ROOT . "/inc/" . strtolower($data_ref["itemtype"]) . "type.class.php")) { echo Dropdown::getDropdownName(getTableForItemType($data_ref["itemtype"] . "Type"), $data_ref["types_id"]); } echo "</td>"; /* modele */ echo "<td align='center'>"; if (file_exists(GLPI_ROOT . "/inc/" . strtolower($data_ref["itemtype"]) . "model.class.php")) { echo Dropdown::getDropdownName(getTableForItemType($data_ref["itemtype"] . "Model"), $data_ref["models_id"]); } echo "</td>"; if ($canedit) { echo "<td align='center'>"; echo "<input type='hidden' name='old_price_taxfree' value='" . $price_taxfree . "'>"; echo "<script type='text/javascript' >\n"; echo "function showPricetaxfree{$rand}() {\n"; echo "\$('#pricetaxfree{$rand}').hide();"; echo "\$('#viewaccept{$rand}').show();"; $params = array('maxlength' => 15, 'size' => 8, 'name' => 'price_taxfree', 'class' => 'decimal', 'data' => rawurlencode($price_taxfree)); Ajax::updateItemJsCode("viewpricetaxfree{$rand}", $CFG_GLPI["root_doc"] . "/plugins/order/ajax/inputnumber.php", $params, false); echo "}"; echo "</script>\n"; echo "<div id='pricetaxfree{$rand}' class='center' onClick='showPricetaxfree{$rand}()'>\n"; echo Html::formatNumber($price_taxfree); echo "</div>\n"; echo "<div id='viewpricetaxfree{$rand}'>\n"; echo "</div>\n"; echo "</td>"; } else { echo "<td align='center'>" . Html::formatNumber($price_taxfree) . "</td>"; } /* reduction */ if ($canedit) { echo "<td align='center'>"; echo "<input type='hidden' name='old_discount' value='" . $discount . "'>"; echo "<script type='text/javascript' >\n"; echo "function showDiscount{$rand}() {\n"; echo "\$('#discount{$rand}').hide();"; echo "\$('#viewaccept{$rand}').show();"; $params = array('maxlength' => 15, 'size' => 8, 'name' => 'discount', 'class' => 'smalldecimal', 'data' => rawurlencode($discount)); Ajax::updateItemJsCode("viewdiscount{$rand}", $CFG_GLPI["root_doc"] . "/plugins/order/ajax/inputnumber.php", $params, false); echo "}"; echo "</script>\n"; echo "<div id='discount{$rand}' class='center' onClick='showDiscount{$rand}()'>\n"; echo Html::formatNumber($discount); echo "</div>\n"; echo "<div id='viewdiscount{$rand}'>\n"; echo "</div>\n"; echo "</td>"; } else { echo "<td align='center'>" . Html::formatNumber($discount) . "</td>"; } echo "</tr></table>"; Html::closeForm(); echo "<div class='center' id='detail{$rand}' style='display:none'>"; echo "<form method='post' name='order_detail_form{$rand}' id='order_detail_form{$rand}' " . "action=\"" . Toolbox::getItemTypeFormURL('PluginOrderOrder') . "\">"; 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-top.png\" alt=''>"; echo "</td><td class='center'>"; echo "<a onclick= \"if ( markCheckboxes('order_detail_form{$rand}') ) return false;\" href='#'>" . __("Check all") . "</a></td>"; echo "<td>/</td><td class='center'>"; echo "<a onclick= \"if ( unMarkCheckboxes('order_detail_form{$rand}') ) " . " return false;\" href='#'>" . __("Uncheck all") . "</a>"; echo "</td><td align='left'>"; echo "<input type='submit' onclick=\"return confirm('" . __("Do you really want to delete these details ? Delivered items will not be linked to order !", "order") . "')\" name='delete_item' value=\"" . __("Delete permanently") . "\" class='submit'>"; echo "</td>"; // Edit buttons echo "<td align='left' width='80%'>"; echo "<div id='detail_viewaccept{$global_rand}' style='display:none;'>"; echo " <input type='submit' onclick=\"return confirm('" . __("Do you really want to update this item ?", "order") . "');\" name='update_detail_item'\n value=\"" . _sx("button", "Update") . "\" class='submit'> "; echo " <input type='button' onclick=\"detail_hideForm{$global_rand}();\"\n value=\"" . _sx("button", "Cancel") . "\" class='submit'>"; echo "</div>"; echo "</td>"; echo "</table>"; echo "</div>"; } echo "<table class='tab_cadre_fixe'>"; echo "<tr>"; if ($canedit) { echo "<th></th>"; } if ($data_ref["itemtype"] != 'SoftwareLicense') { echo "<th>" . __("ID") . "</th>"; } echo "<th>" . __("Reference") . "</th>"; echo "<th>" . __("Unit price tax free", "order") . "</th>"; echo "<th>" . __("VAT", "order") . "</th>"; echo "<th>" . __("Discount (%)", "order") . "</th>"; echo "<th>" . __("Discounted price tax free", "order") . "</th>"; echo "<th>" . __("Price ATI", "order") . "</th>"; echo "<th>" . __("Status") . "</th></tr>"; $query = "SELECT `" . $this->getTable() . "`.`id` AS IDD, `glpi_plugin_order_references`.`id`,\n `glpi_plugin_order_references`.`name`,\n `" . $this->getTable() . "`.`comment`,\n `" . $this->getTable() . "`.`price_taxfree`,\n `" . $this->getTable() . "`.`price_discounted`,\n `" . $this->getTable() . "`.`discount`,\n `" . $this->getTable() . "`.`plugin_order_ordertaxes_id`,\n `" . $this->getTable() . "`.`price_ati`\n FROM `" . $this->getTable() . "`, `glpi_plugin_order_references`\n WHERE `" . $this->getTable() . "`.`plugin_order_references_id` = `glpi_plugin_order_references`.`id`\n AND `" . $this->getTable() . "`.`plugin_order_references_id` = '" . $refID . "'\n AND `" . $this->getTable() . "`.`price_taxfree` LIKE '" . $price_taxfree . "'\n AND `" . $this->getTable() . "`.`discount` LIKE '" . $discount . "'\n AND `" . $this->getTable() . "`.`plugin_order_orders_id` = '{$plugin_order_orders_id}'"; if ($data_ref["itemtype"] == '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); // Initialize for detail_hideForm javascript function $hideForm = ""; while ($data = $DB->fetch_array($result)) { $rand_line = mt_rand(); Session::addToNavigateListItems($this->getType(), $data['IDD']); // Compute for detail_hideForm javascript function $hideForm .= "\$('#detail_pricetaxfree{$rand_line}').show();\n"; $hideForm .= "\$('#detail_viewpricetaxfree{$rand_line} input').remove();\n"; $hideForm .= "\$('#detail_discount{$rand_line}').show();\n"; $hideForm .= "\$('#detail_viewdiscount{$rand_line} input').remove();\n"; 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='" . $plugin_order_orders_id . "'>"; echo "</td>"; } if ($data_ref["itemtype"] != 'SoftwareLicense') { echo "<td align='center'><a href='" . Toolbox::getItemTypeFormURL('PluginOrderOrder_Item') . "?id=" . $data['IDD'] . "'>" . $data['IDD'] . "</a>"; echo " "; Html::showToolTip($data['comment']); } /* reference */ echo "<td align='center'>"; echo "<input type='hidden' name='detail_old_plugin_order_references_id[" . $data["IDD"] . "]'\n value='" . $data["id"] . "'>"; echo $reference->getReceptionReferenceLink($data); echo "</td>"; if ($canedit) { echo "<td align='center'>"; echo "<input type='hidden' name='detail_old_price_taxfree[" . $data["IDD"] . "]'\n value='" . $data["price_taxfree"] . "'>"; echo "<script type='text/javascript' >\n"; echo "function showDetailPricetaxfree{$rand_line}() {\n"; echo "\$('#detail_pricetaxfree{$rand_line}').hide();"; echo "\$('#detail_viewaccept{$global_rand}').show();"; $params = array('maxlength' => 15, 'size' => 8, 'name' => 'detail_price_taxfree[' . $data["IDD"] . ']', 'class' => 'decimal', 'data' => rawurlencode($data["price_taxfree"])); Ajax::updateItemJsCode("detail_viewpricetaxfree{$rand_line}", $CFG_GLPI["root_doc"] . "/plugins/order/ajax/inputnumber.php", $params, false); echo "}"; echo "</script>\n"; echo "<div id='detail_pricetaxfree{$rand_line}' class='center'\n onClick='showDetailPricetaxfree{$rand_line}()'>\n"; echo Html::formatNumber($data["price_taxfree"]); echo "</div>\n"; echo "<div id='detail_viewpricetaxfree{$rand_line}'>\n"; echo "</div>\n"; echo "</td>"; } else { echo "<td align='center'>" . Html::formatNumber($data["price_taxfree"]) . "</td>"; } /* taxe */ echo "<td align='center'>"; echo Dropdown::getDropdownName(getTableForItemType("PluginOrderOrderTax"), $data["plugin_order_ordertaxes_id"]); echo "</td>"; /* reduction */ if ($canedit) { echo "<td align='center'>"; echo "<input type='hidden' name='detail_old_discount[" . $data["IDD"] . "]'\n value='" . $data["discount"] . "'>"; echo "<script type='text/javascript' >\n"; echo "function showDetailDiscount{$rand_line}() {\n"; echo "\$('#detail_discount{$rand_line}').hide();"; echo "\$('#detail_viewaccept{$global_rand}').show();"; $params = array('maxlength' => 15, 'size' => 8, 'name' => 'detail_discount[' . $data["IDD"] . ']', 'class' => 'smalldecimal', 'data' => rawurlencode($data["discount"])); Ajax::updateItemJsCode("detail_viewdiscount{$rand_line}", $CFG_GLPI["root_doc"] . "/plugins/order/ajax/inputnumber.php", $params, false); echo "}"; echo "</script>\n"; echo "<div id='detail_discount{$rand_line}' class='center'\n onClick='showDetailDiscount{$rand_line}()'>\n"; echo Html::formatNumber($data["discount"]); echo "</div>\n"; echo "<div id='detail_viewdiscount{$rand_line}'>\n"; echo "</div>\n"; echo "</td>"; } else { echo "<td align='center'>" . Html::formatNumber($data["discount"]) . "</td>"; } /* price with reduction */ echo "<td align='center'>" . Html::formatNumber($data["price_discounted"]) . "</td>"; /* price ati */ echo "<td align='center'>" . Html::formatNumber($data["price_ati"]) . "</td>"; /* status */ echo "<td align='center'>" . $reception->getReceptionStatus($data["IDD"]) . "</td></tr>"; } echo "</table>"; if ($canedit) { echo "<script type='text/javascript' >\n"; echo "function detail_hideForm{$global_rand}() {\n"; echo $hideForm; echo "\$('#detail_viewaccept{$global_rand}').hide();"; echo "}\n"; echo "</script>\n"; } 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=''>"; echo "</td><td class='center'>"; echo "<a onclick= \"if ( markCheckboxes('order_detail_form{$rand}') ) return false;\" href='#'>" . __("Check all") . "</a></td>"; echo "<td>/</td><td class='center'>"; echo "<a onclick= \"if ( unMarkCheckboxes('order_detail_form{$rand}') ) " . " return false;\" href='#'>" . __("Uncheck all") . "</a>"; echo "</td><td align='left'>"; echo "<input type='submit' onclick=\"return confirm('" . __("Do you really want to delete these details ? Delivered items will not be linked to order !", "order") . "')\" name='delete_item' value=\"" . __("Delete permanently") . "\" class='submit'>"; echo "</td>"; // Edit buttons echo "<td align='left' width='80%'>"; echo "<div id='detail_viewaccept{$global_rand}' style='display:none;'>"; echo " <input type='submit' onclick=\"return confirm('" . __("Do you really want to update this item ?", "order") . "');\" name='update_detail_item'\n value=\"" . _sx("button", "Update") . "\" class='submit'> "; echo " <input type='button' onclick=\"detail_hideForm{$global_rand}();\"\n value=\"" . _sx("button", "Cancel") . "\" class='submit'>"; echo "</div>"; echo "</td>"; echo "</table>"; echo "</div>"; } Html::closeForm(); echo "</div>"; } echo "<br>"; } }