protected function populate(int $requirement_id, &$requirement) { if ($requirement == null) { $requirement = new logistic_requirement((int) $requirement_id); $requirement->set_activity_id($this->unmarshal($this->db->f('activity_id'), 'int')); $requirement->set_start_date($this->unmarshal($this->db->f('start_date'), 'int')); $requirement->set_end_date($this->unmarshal($this->db->f('end_date'), 'int')); $requirement->set_no_of_items($this->unmarshal($this->db->f('no_of_elements'), 'int')); $requirement->set_location_id($this->unmarshal($this->db->f('location_id'), 'int')); } return $requirement; }
public function edit($requirement = null) { if ($nonavbar = phpgw::get_var('nonavbar', 'bool')) { $GLOBALS['phpgw_info']['flags']['nonavbar'] = $nonavbar; $GLOBALS['phpgw_info']['flags']['noheader_xsl'] = true; $GLOBALS['phpgw_info']['flags']['nofooter'] = true; } $requirement_id = phpgw::get_var('id'); $activity_id = phpgw::get_var('activity_id'); if ($requirement == null && $requirement_id && is_numeric($requirement_id)) { $requirement = $this->so->get_single($requirement_id); $activity = $this->so_activity->get_single($requirement->get_activity_id()); $project = $this->so_project->get_single($activity->get_project_id()); } else { if ($requirement == null) { $requirement = new logistic_requirement(); } if ($activity_id && is_numeric($activity_id)) { $activity = $this->so_activity->get_single($activity_id); $requirement->set_start_date($activity->get_start_date()); $requirement->set_end_date($activity->get_end_date()); $project = $this->so_project->get_single($activity->get_project_id()); } } $accounts = $GLOBALS['phpgw']->acl->get_user_list_right(PHPGW_ACL_READ, 'run', 'logistic'); $entity_list = execMethod('property.soadmin_entity.read', array('allrows' => true)); $filters = array('project_type_id' => $project->get_project_type_id()); $search_type = 'distinct_location_id'; $distict_location_ids = $this->so_resource_type_requirement->get($start_index, $num_of_objects, $sort_field, $sort_ascending, $search_for, $search_type, $filters); $distict_location_ids_array = array(); foreach ($distict_location_ids as $logistic_resource_type_requirement) { $location_id = $logistic_resource_type_requirement->get_id(); $loc_arr = $GLOBALS['phpgw']->locations->get_name($location_id); $loc_arr['location_id'] = $location_id; $distict_locations_array[] = $loc_arr; } $custom = createObject('phpgwapi.custom_fields'); $attribute_requirement_array = array(); foreach ($attribute_requirement_types as $attribute_requirement) { $location_id = $attribute_requirement->get_location_id(); $cust_attribute_id = $attribute_requirement->get_cust_attribute_id(); $loc_arr = $GLOBALS['phpgw']->locations->get_name($location_id); $entity_arr = explode('.', $loc_arr['location']); $entity_id = $entity_arr[2]; $cat_id = $entity_arr[3]; $attrib_data = $custom->get('property', ".entity.{$entity_id}.{$cat_id}", $cust_attribute_id); $attribute_requirement_array[] = $attrib_data; } $tabs = $this->make_tab_menu($requirement_id); $data = array('tabs' => $GLOBALS['phpgw']->common->create_tabs($tabs, 0), 'view' => "requirement_details", 'requirement' => $requirement, 'distict_locations' => $distict_locations_array, 'editable' => true, 'nonavbar' => $nonavbar); if ($activity_id > 0) { $data['activity'] = $activity; } else { $activity = $this->so_activity->get_single($requirement->get_activity_id()); $data['activity'] = $activity; } $GLOBALS['phpgw']->jqcal->add_listener('start_date', 'datetime'); $GLOBALS['phpgw']->jqcal->add_listener('end_date', 'datetime'); self::render_template_xsl(array('requirement/requirement_tabs', 'requirement/requirement_item'), $data); }