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); } } }
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); } } }
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; } } } } } }
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"]); } }