예제 #1
0
 public function updateReceptionStatus($params)
 {
     $detail = new PluginOrderOrder_Item();
     $plugin_order_orders_id = 0;
     if (isset($params["item"])) {
         foreach ($params["item"] as $key => $val) {
             if ($val == 1) {
                 if ($params["itemtype"][$key] == 'SoftwareLicense') {
                     $this->receptionAllItem($key, $params["plugin_order_references_id"][$key], $params["plugin_order_orders_id"], $params["delivery_date"], $params["delivery_number"], $params["plugin_order_deliverystates_id"]);
                     $plugin_order_orders_id = $params["plugin_order_orders_id"];
                 } else {
                     if ($detail->getFromDB($key)) {
                         if (!$plugin_order_orders_id) {
                             $plugin_order_orders_id = $detail->fields["plugin_order_orders_id"];
                         }
                         if ($detail->fields["states_id"] == PluginOrderOrder::ORDER_DEVICE_NOT_DELIVRED) {
                             $this->receptionOneItem($key, $plugin_order_orders_id, $params["delivery_date"], $params["delivery_number"], $params["plugin_order_deliverystates_id"]);
                         } else {
                             Session::addMessageAfterRedirect(__("Item already taken delivery", "order"), true, ERROR);
                         }
                         // Automatic generate asset
                         $options = array("itemtype" => $params["itemtype"][$key], "items_id" => $key, 'entities_id' => $detail->getEntityID(), "plugin_order_orders_id" => $detail->fields["plugin_order_orders_id"], "plugin_order_references_id" => $params["plugin_order_references_id"][$key]);
                         self::generateAsset($options);
                     }
                 }
             }
         }
         // $val == 1
         self::updateDelivryStatus($plugin_order_orders_id);
     } else {
         Session::addMessageAfterRedirect(__("No item selected", "order"), false, ERROR);
     }
 }
예제 #2
0
     } 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') {
                         $result = $pluginOrderOrder_Item->queryRef($_POST["plugin_order_orders_id"], $pluginOrderOrder_Item->fields["plugin_order_references_id"], $pluginOrderOrder_Item->fields["price_taxfree"], $pluginOrderOrder_Item->fields["discount"]);
                         $nb = $DB->numrows($result);
                         if ($nb) {
                             for ($i = 0; $i < $nb; $i++) {
                                 $ID = $DB->result($result, $i, 'id');
                                 $items_id = $DB->result($result, $i, 'items_id');
                                 if ($items_id) {
                                     $lic = new SoftwareLicense();
                                     $lic->getFromDB($items_id);
                                     $values["id"] = $lic->fields["id"];
                                     $values["number"] = $lic->fields["number"] - 1;
                                     $lic->update($values);
                                 }
                                 $input["id"] = $ID;
예제 #3
0
 public function deleteLinkWithItem($detailID, $itemtype, $plugin_order_orders_id)
 {
     global $DB;
     if ($itemtype == 'SoftWareLicense') {
         $detail = new PluginOrderOrder_Item();
         $detail->getFromDB($detailID);
         $license = $detail->fields["items_id"];
         $this->removeInfoComRelatedToOrder($itemtype, $license);
         $result = $PluginOrderOrder_Item->queryRef($detail->fields["plugin_order_orders_id"], $detail->fields["plugin_order_references_id"], $detail->fields["price_taxfree"], $detail->fields["discount"], PluginOrderOrder::ORDER_DEVICE_DELIVRED);
         $nb = $DB->numrows($result);
         if ($nb) {
             for ($i = 0; $i < $nb; $i++) {
                 $ID = $DB->result($result, $i, 'id');
                 $input["id"] = $ID;
                 $input["items_id"] = 0;
                 $detail->update($input);
                 $lic = new SoftwareLicense();
                 $lic->getFromDB($license);
                 $values["id"] = $lic->fields["id"];
                 $values["number"] = $lic->fields["number"] - 1;
                 $lic->update($values);
             }
             $order = new PluginOrderOrder();
             $order->getFromDB($detail->fields["plugin_order_orders_id"]);
             $new_value = __("Item unlink form order", "order") . ' : ' . $order->fields["name"];
             $order->addHistory($itemtype, '', $new_value, $license);
             $item = new $itemtype();
             $item->getFromDB($license);
             $new_value = __("Item unlink form order", "order") . ' : ' . $item->getField("name");
             $order->addHistory('PluginOrderOrder', '', $new_value, $order->fields["id"]);
         }
     } else {
         $order = new PluginOrderOrder();
         $order->getFromDB($plugin_order_orders_id);
         $detail = new PluginOrderOrder_Item();
         $detail->getFromDB($detailID);
         $items_id = $detail->fields["items_id"];
         $this->removeInfoComRelatedToOrder($itemtype, $items_id);
         if ($items_id != 0) {
             $input = $detail->fields;
             $input["items_id"] = 0;
             $detail->update($input);
         } else {
             Session::addMessageAfterRedirect(__("One or several selected rows haven't linked items", "order"), TRUE, ERROR);
         }
         $new_value = __("Item unlink form order", "order") . ' : ' . $order->fields["name"];
         $order->addHistory($itemtype, '', $new_value, $items_id);
         $item = new $itemtype();
         $item->getFromDB($items_id);
         $new_value = __("Item unlink form order", "order") . ' : ' . $item->getField("name");
         $order->addHistory('PluginOrderOrder', '', $new_value, $order->fields["id"]);
     }
 }
예제 #4
0
 @since     2009
 ---------------------------------------------------------------------- */
include "../../../inc/includes.php";
if (!isset($_GET["id"])) {
    $_GET["id"] = "";
}
if (!isset($_GET["withtemplate"])) {
    $_GET["withtemplate"] = "";
}
$link = new PluginOrderLink();
$order_item = new PluginOrderOrder_Item();
if (isset($_POST["generation"])) {
    if (isset($_POST["item"])) {
        foreach ($_POST["item"] as $key => $val) {
            if ($val == 1) {
                $order_item->getFromDB($_POST["id"][$key]);
                if ($order_item->fields["states_id"] == PluginOrderOrder::ORDER_DEVICE_NOT_DELIVRED) {
                    Session::addMessageAfterRedirect(__("Cannot generate items not delivered", "order"), true, ERROR);
                    Html::redirect($_SERVER["HTTP_REFERER"]);
                }
            }
        }
    }
    if (isset($_POST["item"])) {
        Html::header(__("Orders management", "order"), '', "plugins", "order", "order");
        $link->showItemGenerationForm($_POST);
        Html::footer();
    } else {
        Session::addMessageAfterRedirect(__("No item selected", "order"), false, ERROR);
        Html::redirect($_SERVER["HTTP_REFERER"]);
    }
예제 #5
0
 @link      https://forge.indepnet.net/projects/order
 @link      http://www.glpi-project.org/
 @since     2009
 ---------------------------------------------------------------------- */
include "../../../inc/includes.php";
if (!isset($_GET["id"])) {
    $_GET["id"] = "";
}
if (!isset($_GET["withtemplate"])) {
    $_GET["withtemplate"] = "";
}
$reception = new PluginOrderReception();
$order_item = new PluginOrderOrder_Item();
if (isset($_POST["update"])) {
    if (PluginOrderReception::canCreate()) {
        $order_item->getFromDB($_POST["id"]);
        if ($order_item->fields["itemtype"] == 'SoftwareLicense') {
            $result = $order_item->queryRef($order_item->fields["plugin_order_orders_id"], $order_item->fields["plugin_order_references_id"], $order_item->fields["price_taxfree"], $order_item->fields["discount"], PluginOrderOrder::ORDER_DEVICE_DELIVRED);
            $nb = $DB->numrows($result);
            if ($nb) {
                for ($i = 0; $i < $nb; $i++) {
                    $ID = $DB->result($result, $i, 'id');
                    $input["id"] = $ID;
                    $input["delivery_date"] = $_POST["delivery_date"];
                    $input["delivery_number"] = $_POST["delivery_number"];
                    $input["plugin_order_deliverystates_id"] = $_POST["plugin_order_deliverystates_id"];
                    $input["delivery_comment"] = $_POST["delivery_comment"];
                    $reception->update($input);
                }
            }
        } else {