Beispiel #1
0
 public static function showItems(PluginOrderBill $bill)
 {
     global $DB;
     echo "<div class='spaced'><table class='tab_cadre_fixehov'>";
     echo "<tr><th>";
     Html::printPagerForm();
     echo "</th><th colspan='5'>";
     echo _n("Item", "Items", 2);
     echo "</th></tr>";
     $bills_id = $bill->getID();
     $table = getTableForItemType("PluginOrderOrder_Item");
     $query = "SELECT * FROM `" . $table . "`";
     $query .= " WHERE `plugin_order_bills_id` = '{$bills_id}'";
     $query .= getEntitiesRestrictRequest(" AND", $table, "entities_id", $bill->getEntityID(), true);
     $query .= "GROUP BY `itemtype`";
     $result = $DB->query($query);
     $number = $DB->numrows($result);
     if (!$number) {
         echo "</th><td>";
         echo _n("Item", "Items", 2);
         echo "</td></tr>";
     } else {
         echo "<tr>";
         echo "<th>" . __("Type") . "</th>";
         echo "<th>" . __("Entity") . "</th>";
         echo "<th>" . __("Reference") . "</th>";
         echo "<th>" . __("Status") . "</th>";
         echo "</tr>";
         $old_itemtype = '';
         $num = 0;
         while ($data = $DB->fetch_array($result)) {
             if (!class_exists($data['itemtype'])) {
                 continue;
             }
             $item = new $data['itemtype']();
             if ($data['itemtype']::canView()) {
                 echo "<tr class='tab_bg_1'>";
                 $ID = "";
                 if ($_SESSION["glpiis_ids_visible"] || empty($data["name"])) {
                     $ID = " (" . $data["id"] . ")";
                 }
                 $name = NOT_AVAILABLE;
                 if ($item->getFromDB($data["id"])) {
                     $name = $item->getLink();
                 }
                 echo "<td class='center top'>" . $item->getTypeName() . "</td>";
                 echo "<td class='center top'>";
                 echo Dropdown::getDropdownName('glpi_entities', $item->getEntityID()) . "</td>";
                 $reference = new PluginOrderReference();
                 $reference->getFromDB($data["plugin_order_references_id"]);
                 echo "<td class='center'>";
                 if (PluginOrderReference::canView()) {
                     echo $reference->getLink();
                 } else {
                     echo $reference->getName(true);
                 }
                 echo "</td>";
                 echo "<td class='center'>";
                 Dropdown::getDropdownName("glpi_plugin_order_deliverystates", $data["plugin_order_deliverystates_id"]);
                 echo "</td>";
                 echo "</tr>";
             }
         }
     }
     echo "</table></div>";
 }
Beispiel #2
0
 public function showForm($ID, $options = array())
 {
     $this->initForm($ID, $options);
     $this->showFormHeader($options);
     $order_order = new PluginOrderOrder();
     $order_order->getFromDB($this->getOrdersID());
     $order_reference = new PluginOrderReference();
     $order_reference->getFromDB($this->fields["plugin_order_references_id"]);
     $canedit = $order_order->can($this->getOrdersID(), UPDATE) && !$order_order->canUpdateOrder() && !$order_order->isCanceled();
     echo "<input type='hidden' name='plugin_order_orders_id' value='" . $this->getOrdersID() . "'>";
     echo "<tr class='tab_bg_1'>";
     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 "<td>" . __("Taken delivery", "order") . "</td>";
     echo "<td>";
     Dropdown::showYesNo('states_id', $this->fields['states_id']);
     echo "</td>";
     echo "</tr>";
     echo "<tr class='tab_bg_1'>";
     echo "<td>" . __("Delivery form") . ": </td>";
     echo "<td>";
     if ($canedit) {
         Html::autocompletionTextField($this, "delivery_number");
     } else {
         echo $this->fields["delivery_number"];
     }
     echo "</td>";
     echo "<td>" . __("Delivery date") . ": </td>";
     echo "<td>";
     if ($canedit) {
         Html::showDateFormItem("delivery_date", $this->fields["delivery_date"], true, 1);
     } else {
         echo Html::convDate($this->fields["delivery_date"]);
     }
     echo "</td>";
     echo "</tr>";
     echo "<tr class='tab_bg_1'>";
     echo "<td>" . __("Delivery status", "order") . ": </td>";
     echo "<td>";
     if ($canedit) {
         PluginOrderDeliveryState::Dropdown(array('name' => "plugin_order_deliverystates_id", 'value' => $this->fields["plugin_order_deliverystates_id"]));
     } else {
         echo Dropdown::getDropdownName("glpi_plugin_order_deliverystates", $this->fields["plugin_order_deliverystates_id"]);
     }
     echo "</td>";
     echo "<td>" . __("Bill", "order") . "</td>";
     echo "<td>";
     if (Session::haveRight("plugin_order_bill", UPDATE)) {
         PluginOrderBill::Dropdown(array('name' => "plugin_order_bills_id", 'value' => $this->fields["plugin_order_bills_id"]));
     } elseif (Session::haveRight("plugin_order_bill", UPDATE)) {
         echo Dropdown::getDropdownName("glpi_plugin_order_bills", $this->fields["plugin_order_bills_id"]);
     }
     echo "</td>";
     echo "</tr>";
     echo "<tr class='tab_bg_1'><td>";
     //comments of order
     echo __("Comments") . ": </td>";
     echo "<td colspan='3'>";
     if ($canedit) {
         echo "<textarea cols='100' rows='4' name='delivery_comment'>" . $this->fields["delivery_comment"] . "</textarea>";
     } else {
         echo $this->fields["delivery_comment"];
     }
     echo "</td>";
     echo "</tr>";
     $options['candel'] = false;
     $this->showFormButtons($options);
     return true;
 }
Beispiel #3
0
 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;
 }
Beispiel #4
0
 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;
 }
Beispiel #6
0
 @copyright Copyright (c) 2010-2011 Order plugin team
 @license   GPLv2+
            http://www.gnu.org/licenses/gpl.txt
 @link      https://forge.indepnet.net/projects/order
 @link      http://www.glpi-project.org/
 @since     2009
 ---------------------------------------------------------------------- */
include "../../../inc/includes.php";
header("Content-Type: text/html; charset=UTF-8");
Html::header_nocache();
if (!defined('GLPI_ROOT')) {
    die("Can not acces directly to this file");
}
$reference = new PluginOrderReference();
if (isset($_POST["action"])) {
    switch ($_POST["action"]) {
        case "generation":
            echo "&nbsp;<input type='hidden' name='plugin_order_references_id' " . "  value='" . $_POST["plugin_order_references_id"] . "'>";
            echo "<input type='submit' name='generation' class='submit' " . "   value='" . __("Post") . "'>";
            break;
        case "createLink":
            echo "&nbsp;<input type='hidden' name='itemtype' value='" . $_POST["itemtype"] . "'>";
            $reference->getFromDB($_POST["plugin_order_references_id"]);
            $reference->dropdownAllItemsByType("items_id", $_POST["itemtype"], $_POST["entities_id"], $reference->fields["types_id"], $reference->fields["models_id"]);
            echo "&nbsp;<input type='submit' name='createLinkWithItem' " . "  class='submit' value='" . __("Post") . "'>";
            break;
        case "deleteLink":
            echo "&nbsp;<input type='submit' name='deleteLinkWithItem' " . "  class='submit' value='" . __("Post") . "'>";
            break;
    }
}
 public function showReferenceManufacturers($ID)
 {
     global $DB, $CFG_GLPI;
     $ref = new PluginOrderReference();
     $ref->getFromDB($ID);
     $target = Toolbox::getItemTypeFormURL(__CLASS__);
     Session::initNavigateListItems($this->getType(), __("Product reference", "order") . " = " . $ref->fields["name"]);
     $candelete = $ref->can($ID, DELETE);
     $query = "SELECT * FROM `" . $this->getTable() . "` WHERE `plugin_order_references_id` = '{$ID}' ";
     $query .= getEntitiesRestrictRequest(" AND", $this->getTable(), "entities_id", $ref->fields['entities_id'], $ref->fields['is_recursive']);
     $result = $DB->query($query);
     $rand = mt_rand();
     echo "<div class='center'>";
     echo "<form method='post' name='show_supplierref{$rand}' id='show_supplierref{$rand}' action=\"{$target}\">";
     echo "<input type='hidden' name='plugin_order_references_id' value='" . $ID . "'>";
     echo "<table class='tab_cadre_fixe'>";
     echo "<tr><th colspan='5'>" . __("Supplier Detail", "order") . "</th></tr>";
     echo "<tr><th>&nbsp;</th>";
     echo "<th>" . __("Supplier") . "</th>";
     echo "<th>" . __("Product reference", "order") . "</th>";
     echo "<th>" . __("Unit price tax free", "order") . "</th>";
     echo "</tr>";
     if ($DB->numrows($result) > 0) {
         echo "<form method='post' name='show_ref_manu' action=\"{$target}\">";
         echo "<input type='hidden' name='plugin_order_references_id' value='" . $ID . "'>";
         while ($data = $DB->fetch_array($result)) {
             Session::addToNavigateListItems($this->getType(), $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($this->getType());
             echo "<td><a href='" . $link . "?id=" . $data["id"] . "&plugin_order_references_id=" . $ID . "'>" . Dropdown::getDropdownName("glpi_suppliers", $data["suppliers_id"]) . "</a></td>";
             echo "<td>";
             echo $data["reference_code"];
             echo "</td>";
             echo "<td>";
             echo Html::formatNumber($data["price_taxfree"]);
             echo "</td>";
             echo "</tr>";
         }
         echo "</table>";
         if ($candelete) {
             echo "<div class='center'>";
             echo "<table width='900px' class='tab_glpi'>";
             echo "<tr><td><img src=\"" . $CFG_GLPI["root_doc"] . "/pics/arrow-left.png\" alt=''></td>";
             echo "<td class='center'><a onclick= \"if ( markCheckboxes('show_supplierref{$rand}') ) " . "return false;\" href='#'>" . __("Check all") . "</a></td>";
             echo "<td>/</td><td class='center'><a onclick= \"if ( unMarkCheckboxes('show_supplierref{$rand}') ) " . "return false;\" href='#'>" . __("Uncheck all") . "</a>";
             echo "</td><td align='left' width='80%'>";
             echo "<input type='submit' name='delete' value=\"" . __("Delete permanently") . "\" class='submit' >";
             echo "</td>";
             echo "</table>";
             echo "</div>";
         }
     } else {
         echo "</table>";
     }
     Html::closeForm();
     echo "</div>";
 }