Ejemplo n.º 1
0
 public function transfer($ID, $entity)
 {
     global $DB;
     $supplier = new PluginOrderOrder_Supplier();
     $reference = new PluginOrderReference();
     $this->getFromDB($ID);
     $input["id"] = $ID;
     $input["entities_id"] = $entity;
     $this->update($input);
     if ($supplier->getFromDBByOrder($ID)) {
         $input["id"] = $supplier->fields["id"];
         $input["entities_id"] = $entity;
         $supplier->update($input);
     }
     $query = "SELECT `plugin_order_references_id`\n                FROM `glpi_plugin_order_orders_items`\n                WHERE `plugin_order_orders_id` = '{$ID}'\n                GROUP BY plugin_order_references_id";
     $result = $DB->query($query);
     $num = $DB->numrows($result);
     if ($num) {
         while ($detail = $DB->fetch_array($result)) {
             $ref = $reference->transfer($detail["plugin_order_references_id"], $entity);
         }
     }
 }
Ejemplo n.º 2
0
 public function generateInfoComRelatedToOrder($entity, $detailID, $itemtype, $items_id, $templateID = 0)
 {
     global $CFG_GLPI;
     //Do not try to generate infocoms if itemtype doesn't support it (ie contracts...)
     if (in_array($itemtype, $CFG_GLPI["infocom_types"])) {
         // Retrieve configuration for generate assets feature
         $config = PluginOrderConfig::getConfig();
         $fields = array();
         //Create empty infocom, in order to forward entities_id and is_recursive
         $ic = new Infocom();
         $infocomID = !$ic->getFromDBforDevice($itemtype, $items_id) ? false : $ic->fields["id"];
         $detail = new PluginOrderOrder_Item();
         $detail->getFromDB($detailID);
         $order = new PluginOrderOrder();
         $order->getFromDB($detail->fields["plugin_order_orders_id"]);
         $order_supplier = new PluginOrderOrder_Supplier();
         $order_supplier->getFromDBByOrder($detail->fields["plugin_order_orders_id"]);
         if ($templateID) {
             if ($ic->getFromDBforDevice($itemtype, $templateID)) {
                 $fields = $ic->fields;
                 unset($fields["id"]);
                 if (isset($fields["immo_number"])) {
                     $fields["immo_number"] = autoName($fields["immo_number"], "immo_number", 1, 'Infocom', $entity);
                 }
                 if (empty($fields['buy_date'])) {
                     unset($fields['buy_date']);
                 }
             }
         }
         $fields["entities_id"] = $entity;
         $fields["itemtype"] = $itemtype;
         $fields["items_id"] = $items_id;
         $fields["order_number"] = $order->fields["num_order"];
         $fields["delivery_number"] = $detail->fields["delivery_number"];
         $fields["budgets_id"] = $order->fields["budgets_id"];
         $fields["suppliers_id"] = $order->fields["suppliers_id"];
         $fields["value"] = $detail->fields["price_discounted"];
         $fields["order_date"] = $order->fields["order_date"];
         if (!is_null($detail->fields["delivery_date"])) {
             $fields["delivery_date"] = $detail->fields["delivery_date"];
         }
         // Get bill data
         if ($config->canAddBillDetails()) {
             $bill = new PluginOrderBill();
             if ($bill->getFromDB($detail->fields["plugin_order_bills_id"])) {
                 $fields['bill'] = $bill->fields['number'];
                 $fields['warranty_date'] = $bill->fields['billdate'];
             }
         }
         foreach (array('warranty_date', 'buy_date', 'inventory_date') as $date) {
             if (!isset($fields[$date])) {
                 $fields[$date] = 'NULL';
             }
         }
         $fields['_no_warning'] = true;
         if ($infocomID) {
             $fields['id'] = $infocomID;
             $ic->update($fields);
         } else {
             $ic->add($fields);
         }
     }
 }
Ejemplo n.º 3
0
 public static function updateItem($item)
 {
     //TO DO : Must do check same values or update infocom
     $plugin = new Plugin();
     if ($plugin->isActivated("order")) {
         if (isset($item->fields["id"])) {
             $item->getFromDB($item->input["id"]);
             if (isset($item->fields["itemtype"]) & isset($item->fields["items_id"])) {
                 $orderlink = new PluginOrderLink();
                 $order = new PluginOrderOrder();
                 $orderitem = new self();
                 $order_supplier = new PluginOrderOrder_Supplier();
                 $detail_id = $orderlink->isItemLinkedToOrder($item->fields["itemtype"], $item->fields["items_id"]);
                 if ($detail_id > 0) {
                     switch ($item->fields["itemtype"]) {
                         default:
                             $field_set = false;
                             $unset_fields = array("order_number", "delivery_number", "budgets_id", "suppliers_id", "value", "buy_date");
                             $orderitem->getFromDB($detail_id);
                             $order->getFromDB($orderitem->fields["plugin_order_orders_id"]);
                             $order_supplier->getFromDBByOrder($orderitem->fields["plugin_order_orders_id"]);
                             $value["order_number"] = $order->fields["num_order"];
                             $value["delivery_number"] = $orderitem->fields["delivery_number"];
                             $value["budgets_id"] = $order->fields["budgets_id"];
                             $value["suppliers_id"] = $order->fields["suppliers_id"];
                             $value["value"] = $orderitem->fields["price_discounted"];
                             $value["buy_date"] = $order->fields["order_date"];
                             if (isset($order_supplier->fields["num_bill"]) && !empty($order_supplier->fields["num_bill"])) {
                                 $unset_fields[] = "bill";
                                 $value["bill"] = $order_supplier->fields["num_bill"];
                             }
                             foreach ($unset_fields as $field) {
                                 if (isset($item->input[$field]) && $item->input[$field] != $value[$field]) {
                                     $field_set = true;
                                     $item->input[$field] = $value[$field];
                                 }
                             }
                             if ($field_set && !isset($item->input['_no_warning'])) {
                                 Session::addMessageAfterRedirect(__("Some fields cannont be modified because they belong to an order", "order"), true, ERROR);
                             }
                             break;
                         case 'Contract':
                             $orderitem->getFromDB($detail_id);
                             $order->getFromDB($orderitem->fields["plugin_order_orders_id"]);
                             $item->input['cost'] = $orderitem->fields["price_discounted"];
                             break;
                     }
                 }
             }
         }
     }
 }
Ejemplo n.º 4
0
            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";
if (!isset($_GET["id"])) {
    $_GET["id"] = "";
}
if (!isset($_GET["withtemplate"])) {
    $_GET["withtemplate"] = "";
}
if (!isset($_GET["plugin_order_orders_id"])) {
    $_GET["plugin_order_orders_id"] = "";
}
$supplier = new PluginOrderOrder_Supplier();
$order = new PluginOrderOrder();
if (isset($_POST["add"])) {
    if (PluginOrderOrder_Supplier::canCreate()) {
        if (isset($_POST["plugin_order_orders_id"]) && $_POST["plugin_order_orders_id"] > 0) {
            if ($supplier->add($_POST)) {
                $new_value = __("Add") . " ";
                if ($_POST["num_quote"]) {
                    $new_value .= __("Quote number", "order") . " " . $_POST["num_quote"];
                }
                if ($_POST["num_order"]) {
                    $new_value .= " - " . __("Order number") . " : " . $_POST["num_order"];
                }
                $order->addHistory('PluginOrderOrder', "", $new_value, $_POST["plugin_order_orders_id"]);
            }
        }