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; }
/** * Get a static reference to the storage object associated with this model object * * @return the storage object */ public static function get_so() { if (self::$so == null) { self::$so = CreateObject('logistic.sorequirement'); } return self::$so; }
public function save() { $requirement_id = phpgw::get_var('id', 'int'); $new_location_id = phpgw::get_var('location_id'); 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; } if (!$this->read) { $GLOBALS['phpgw']->redirect_link('/index.php', array('menuaction' => 'logistic.uirequirement.view', 'id' => $requirement_id, 'nonavbar' => $nonavbar)); return false; // in case redirect fail; } if ($requirement_id) { $requirement = $this->so->get_single($requirement_id); $old_location_id = $requirement->get_location_id(); } else { $requirement = new logistic_requirement(); } $requirement->populate(); if ($requirement->validate()) { // $db_requirement = $this->so->get_db(); // $db_requirement->transaction_begin(); $GLOBALS['phpgw']->db->transaction_begin(); $requirement_id = $this->so->store($requirement); $status_delete_values = true; if ($old_location_id > 0 && is_numeric($old_location_id) && $old_location_id != $new_location_id) { $status_delete_values = $this->so_requirement_value->delete_values($requirement_id); $status_delete_resources = $this->so_resource_allocation->delete_resources($requirement_id); } if ($requirement_id > 0 && $status_delete_values && $status_delete_resources) { // $db_requirement->transaction_commit(); $GLOBALS['phpgw']->db->transaction_commit(); } else { $GLOBALS['phpgw']->db->transaction_commit(); // $db_requirement->transaction_abort(); } $GLOBALS['phpgw']->redirect_link('/index.php', array('menuaction' => 'logistic.uirequirement.view', 'id' => $requirement_id, 'nonavbar' => $nonavbar)); } else { $this->edit($requirement); } }