public function edit()
 {
     $GLOBALS['phpgw_info']['flags']['app_header'] .= '::' . lang('edit');
     if (!self::isExecutiveOfficer()) {
         $this->render('permission_denied.php');
         return;
     }
     if ($id = phpgw::get_var('id', 'int')) {
         $price_item = rental_price_item::get($id);
     } else {
         $title = phpgw::get_var('price_item_title');
         $responsibility_id = phpgw::get_var('responsibility_id');
         $price_item = new rental_price_item();
         $price_item->set_title($title);
         $price_item->set_responsibility_id($responsibility_id);
         $price_item->set_price_type_id(1);
         // defaults to year
     }
     // Save the price item if it was posted
     if (isset($_POST['save'])) {
         $price_item->set_title(phpgw::get_var('title'));
         $price_item->set_agresso_id(phpgw::get_var('agresso_id'));
         $price_item->set_is_area(phpgw::get_var('is_area') == 'true' ? true : false);
         $price_item->set_is_inactive(phpgw::get_var('is_inactive') == 'on' ? true : false);
         $price_item->set_is_adjustable(phpgw::get_var('is_adjustable') == 'on' ? true : false);
         $price_item->set_standard(phpgw::get_var('standard') == 'on' ? true : false);
         $price_item->set_price(phpgw::get_var('price'));
         $price_item->set_price_type_id(phpgw::get_var('price_type_id', 'int'));
         if ($price_item->get_agresso_id() == null) {
             return $this->viewedit(true, $price_item, '', lang('missing_agresso_id'));
         } else {
             if (rental_soprice_item::get_instance()->store($price_item)) {
                 return $this->viewedit(true, $price_item, lang('messages_saved_form'));
             } else {
                 return $this->viewedit(true, $price_item, '', lang('messages_form_error'));
             }
         }
     }
     return $this->viewedit(true, $price_item);
 }
 protected function populate(int $price_item_id, &$price_item)
 {
     if ($price_item == null) {
         $price_item = new rental_price_item($this->unmarshal($this->db->f('id'), 'int'));
         $price_item->set_title($this->unmarshal($this->db->f('title'), 'string'));
         $price_item->set_agresso_id($this->unmarshal($this->db->f('agresso_id'), 'string'));
         $price_item->set_is_area($this->unmarshal($this->db->f('is_area'), 'bool'));
         $price_item->set_is_inactive($this->unmarshal($this->db->f('is_inactive'), 'bool'));
         $price_item->set_is_adjustable($this->unmarshal($this->db->f('is_adjustable'), 'bool'));
         $price_item->set_standard($this->unmarshal($this->db->f('standard'), 'bool'));
         $price_item->set_price($this->unmarshal($this->db->f('price'), 'float'));
         $price_item->set_responsibility_id($this->unmarshal($this->db->f('responsibility_id', true), 'int'));
         $price_item->set_responsibility_title($this->unmarshal($this->db->f('resp_title', true), 'string'));
         $price_type_id = (int) $this->db->f('type');
         $price_item->set_price_type_id($price_type_id);
         $price_item->set_price_type_title($price_type_id);
     }
     return $price_item;
 }