/** * take creates the form to take an inventoryitem from somebody else * * @param int $did entry-id for the inventoryitem * @return string html-string with the form */ private function take($did) { // check rights if (Rights::check_rights($did, 'inventory')) { // pagecaption $this->tpl->assign('pagecaption', parent::lang('class.InventoryView#page#caption#take')); // get db-object $db = Db::newDb(); // get inventory-object $inventory = new Inventory($did); // check owned if ($inventory->get_owned() == 'given') { // smarty-template $sT = new JudoIntranetSmarty(); // prepare return $return = ''; // get preset $preset = $inventory->get_preset(); // get fields $fields = $preset->get_fields(); // add headline $sT->assign('caption', parent::lang('class.InventoryView#take#page#headline') . ': ' . $inventory->get_name() . ' (' . $inventory->get_inventory_no() . ')'); // add take from $movements = Inventory::movement_last_row($db, $inventory->get_id(), 'user_id', 2); $user = new User(); $user->change_user($movements[1], false, 'id'); $sT->assign('takefrom', parent::lang('class.InventoryView#take#page#TakeFrom') . ': ' . $user->get_userinfo('name')); // add accessory info $sT->assign('accessoryinfo', parent::lang('class.InventoryView#take#page#accessory.required')); // formular $form = new HTML_QuickForm2('inventory_take', 'post', array('name' => 'inventory_take', 'action' => 'inventory.php?id=take&did=' . $this->get('did'))); // renderer $renderer = HTML_QuickForm2_Renderer::factory('default'); $renderer->setOption('required_note', parent::lang('class.InventoryView#entry#form#requiredNote')); // generate field-quickform and add to form foreach ($fields as $field) { // check if given if ($inventory->movement_last_accessories($field) === true || $field->get_type() == 'text') { // generate quickform $field->read_quickform(); } else { // generate quickform $field->read_quickform(array('disabled' => 'disabled')); } // add to form $form->appendChild($field->get_quickform()); } // submit-button $form->addSubmit('submit', array('value' => parent::lang('class.InventoryView#take#form#submitButton'))); // validate if ($form->validate()) { // values $values = $form->getValue(); // write to db $insert_id = $this->movement_to_db('taken', $inventory->get_id(), $_SESSION['user']->userid()); // accessory to db $this->values_to_db($insert_id, $fields, $values); // headline $sT->assign('action', $inventory->get_name() . ' (' . $inventory->get_inventory_no() . ') ' . parent::lang('class.InventoryView#take#page#headline.taken')); // accessory $sT->assign('accessoryaction', parent::lang('class.InventoryView#take#page#accessory.taken')); // walk through fields $data = array(); foreach ($fields as $field) { // check value if (isset($values['inventory-' . $field->get_id()])) { $field_value = $values['inventory-' . $field->get_id()]; } else { $field_value = 0; } // return field and value as HTML $field->value($field_value); $data[] = $field->value_to_html(); } $sT->assign('form', ''); $sT->assign('data', $data); } else { $sT->assign('form', $form->render($renderer)); } // return return $sT->fetch('smarty.inventory.takegive.tpl'); } else { // error $errno = $GLOBALS['Error']->error_raised('NotGivenTo', $this->get('id'), $did); $GLOBALS['Error']->handle_error($errno); return $GLOBALS['Error']->to_html($errno); } } else { // error $errno = $GLOBALS['Error']->error_raised('NotAuthorized', $this->get('id'), $did); $GLOBALS['Error']->handle_error($errno); return $GLOBALS['Error']->to_html($errno); } }