function prepareInputForAdd($input) { $item = new CartridgeItem(); if ($item->getFromDB($input["tID"])) { return array("cartridgeitems_id" => $item->fields["id"], "entities_id" => $item->getEntityID(), "date_in" => date("Y-m-d")); } return array(); }
/** * Transfer cartridges of a printer * * @param $ID original ID of the printer * @param $newID new ID of the printer **/ function transferPrinterCartridges($ID, $newID) { global $DB; // Get cartrdiges linked $query = "SELECT *\n FROM `glpi_cartridges`\n WHERE `glpi_cartridges`.`printers_id` = '{$ID}'"; if ($result = $DB->query($query)) { if ($DB->numrows($result) > 0) { $cart = new Cartridge(); $carttype = new CartridgeItem(); while ($data = $DB->fetch_array($result)) { $need_clean_process = false; // Foreach cartridges // if keep if ($this->options['keep_cartridgeitem']) { $newcartID = -1; $newcarttypeID = -1; // 1 - Search carttype destination ? // Already transfer carttype : if (isset($this->already_transfer['CartridgeItem'][$data['cartridgeitems_id']])) { $newcarttypeID = $this->already_transfer['CartridgeItem'][$data['cartridgeitems_id']]; } else { // Not already transfer cartype $query = "SELECT count(*) AS CPT\n FROM `glpi_cartridges`\n WHERE `glpi_cartridges`.`cartridgeitems_id`\n = '" . $data['cartridgeitems_id'] . "'\n AND `glpi_cartridges`.`printers_id` > '0'\n AND `glpi_cartridges`.`printers_id`\n NOT IN " . $this->item_search['Printer']; $result_search = $DB->query($query); // Is the carttype will be completly transfer ? if ($DB->result($result_search, 0, 'CPT') == 0) { // Yes : transfer $need_clean_process = false; $this->transferItem('CartridgeItem', $data['cartridgeitems_id'], $data['cartridgeitems_id']); $newcarttypeID = $data['cartridgeitems_id']; } else { // No : copy carttype $need_clean_process = true; $carttype->getFromDB($data['cartridgeitems_id']); // Is existing carttype in the destination entity ? $query = "SELECT *\n FROM `glpi_cartridgeitems`\n WHERE `entities_id` = '" . $this->to . "'\n AND `name` = '" . addslashes($carttype->fields['name']) . "'"; if ($result_search = $DB->query($query)) { if ($DB->numrows($result_search) > 0) { $newcarttypeID = $DB->result($result_search, 0, 'id'); } } // Not found -> transfer copy if ($newcarttypeID < 0) { // 1 - create new item unset($carttype->fields['id']); $input = $carttype->fields; $input['entities_id'] = $this->to; unset($carttype->fields); $newcarttypeID = $carttype->add($input); // 2 - transfer as copy $this->transferItem('CartridgeItem', $data['cartridgeitems_id'], $newcarttypeID); } // Founded -> use to link : nothing to do } } // Update cartridge if needed if ($newcarttypeID > 0 && $newcarttypeID != $data['cartridgeitems_id']) { $cart->update(array('id' => $data['id'], 'cartridgeitems_id' => $newcarttypeID)); } } else { // Do not keep // If same printer : delete cartridges if ($ID == $newID) { $del_query = "DELETE\n FROM `glpi_cartridges`\n WHERE `printers_id` = '{$ID}'"; $DB->query($del_query); } $need_clean_process = true; } // CLean process if ($need_clean_process && $this->options['clean_cartridgeitem']) { // Clean carttype $query2 = "SELECT COUNT(*) AS CPT\n FROM `glpi_cartridges`\n WHERE `cartridgeitems_id` = '" . $data['cartridgeitems_id'] . "'"; $result2 = $DB->query($query2); if ($DB->result($result2, 0, 'CPT') == 0) { if ($this->options['clean_cartridgeitem'] == 1) { // delete $carttype->delete(array('id' => $data['cartridgeitems_id'])); } if ($this->options['clean_cartridgeitem'] == 2) { // purge $carttype->delete(array('id' => $data['cartridgeitems_id']), 1); } } } } } } }
/** form for Cartridge * * @since version 0.84 * * @param $ID integer Id of the cartridge * @param $options array of possible options: * - parent Object : the printers where the cartridge is used **/ function showForm($ID, $options = array()) { global $DB, $CFG_GLPI; if (isset($options['parent']) && !empty($options['parent'])) { $printer = $options['parent']; } if (!$this->getFromDB($ID)) { return false; } $printer = new Printer(); $printer->check($this->getField('printers_id'), UPDATE); $cartitem = new CartridgeItem(); $cartitem->getFromDB($this->getField('cartridgeitems_id')); $is_old = !empty($this->fields['date_out']); $is_used = !empty($this->fields['date_use']); $options['colspan'] = 2; $options['candel'] = false; // Do not permit delete here $options['canedit'] = $is_used; // Do not permit edit if cart is not used $this->showFormHeader($options); echo "<tr class='tab_bg_1'>"; echo "<td>" . _n('Printer', 'Printers', 1) . "</td><td>"; echo $printer->getLink(); echo "<input type='hidden' name='printers_id' value='" . $this->getField('printers_id') . "'>\n"; echo "<input type='hidden' name='cartridgeitems_id' value='" . $this->getField('cartridgeitems_id') . "'>\n"; echo "</td>\n"; echo "<td>" . _n('Cartridge model', 'Cartridge models', 1) . "</td>"; echo "<td>" . $cartitem->getLink() . "</td></tr>\n"; echo "<tr class='tab_bg_1'>"; echo "<td>" . __('Add date') . "</td>"; echo "<td>" . Html::convDate($this->fields["date_in"]) . "</td>"; echo "<td>" . __('Use date') . "</td><td>"; if ($is_used && !$is_old) { Html::showDateField("date_use", array('value' => $this->fields["date_use"], 'maybeempty' => false, 'canedit' => true, 'min' => $this->fields["date_in"])); } else { echo Html::convDate($this->fields["date_use"]); } echo "</td></tr>\n"; if ($is_old) { echo "<tr class='tab_bg_1'>"; echo "<td>" . __('End date') . "</td><td>"; Html::showDateField("date_out", array('value' => $this->fields["date_out"], 'maybeempty' => false, 'canedit' => true, 'min' => $this->fields["date_use"])); echo "</td>"; echo "<td>" . __('Printer counter') . "</td><td>"; echo "<input type='text' name='pages' value=\"" . $this->fields['pages'] . "\">"; echo "</td></tr>\n"; } $this->showFormButtons($options); return true; }
public function getLinkedItemDetails($itemtype, $items_id) { $comments = ""; switch ($itemtype) { case 'ConsumableItem': $ci = new Consumable(); if ($ci->getFromDB($items_id)) { $ct = new ConsumableItem(); $ct->getFromDB($ci->fields['consumableitems_id']); $comments .= "<strong>" . __("Entity") . ":</strong> "; $comments .= Dropdown::getDropdownName("glpi_entities", $ct->fields["entities_id"]); $comments .= '<br><strong>' . __("Consumable") . ' : </strong> #' . $items_id; $comments .= '<br><strong>' . __("Consumable type") . ' : </strong>'; $comments .= $ct->fields['name']; $comments .= '<br><strong>' . __("Manufacturer") . ' : </strong>'; $comments .= Dropdown::getDropdownName('glpi_manufacturers', $ct->fields['manufacturers_id']); $comments .= '<br><strong>' . __("State") . ' : </strong>'; $comments .= !$ci->fields['users_id'] ? __("In stock") : __("Used"); if ($ci->fields['users_id']) { $comments .= '<br><strong>' . __("User") . ' : </strong>'; $comments .= Dropdown::getDropdownName('glpi_users', $ci->fields['users_id']); } } break; case 'CartridgeItem': $ci = new Cartridge(); if ($ci->getFromDB($items_id)) { $ct = new CartridgeItem(); $ct->getFromDB($ci->fields['cartridgeitems_id']); $comments .= "<strong>" . __("Entity") . ":</strong> "; $comments .= Dropdown::getDropdownName("glpi_entities", $ct->fields["entities_id"]); $comments .= '<br><strong>' . __("Cartridge") . ' : </strong> #' . $items_id; $comments .= '<br><strong>' . _n("New", "New", 2) . ' : </strong>'; $comments .= $ct->fields['name']; $comments .= '<br><strong>' . __("Manufacturer") . ' : </strong>'; $comments .= Dropdown::getDropdownName('glpi_manufacturers', $ct->fields['manufacturers_id']); } break; // case 'Computer' : // case 'Monitor' : // case 'NetworkEquipment' : // case 'Peripheral' : // case 'Phone' : // case 'Printer' : // case 'Computer' : // case 'Monitor' : // case 'NetworkEquipment' : // case 'Peripheral' : // case 'Phone' : // case 'Printer' : default: $item = new $itemtype(); $item->getFromDB($items_id); if ($item->getField("name")) { $comments .= "<strong>" . __("Name") . ":</strong> "; $comments .= $item->getField("name"); } if ($item->getField("entities_id")) { $comments .= "<strong>" . __("Entity") . ":</strong> "; $comments .= Dropdown::getDropdownName("glpi_entities", $item->getField("entities_id")); } if ($item->getField("serial") != '') { $comments .= "<br><strong>" . __("Serial number") . ":</strong> "; $comments .= $item->getField("serial"); } if ($item->getField("otherserial") != '') { $comments .= "<br><strong>" . __("Inventory number") . ":</strong> "; $comments .= $item->getField("otherserial"); } if ($item->getField("locations_id")) { $comments .= "<br><strong>" . __("Location") . ":</strong> "; $comments .= Dropdown::getDropdownName('glpi_locations', $item->getField("locations_id")); } if ($item->getField("users_id")) { $comments .= "<br><strong>" . __("User") . ":</strong> "; $comments .= Dropdown::getDropdownName('glpi_users', $item->getField("users_id")); } break; } return $comments; }