/** * Update the database values for an existing contract price item. * * @param $price_item the contract price item to be updated * @return result receipt from the db operation */ function update_contract_price_item(rental_contract_price_item $price_item) { $id = intval($price_item->get_id()); $one_time = $price_item->get_is_one_time(); $values = array('price_item_id = ' . $price_item->get_price_item_id(), 'contract_id = ' . $price_item->get_contract_id(), 'area = ' . str_replace(',', '.', $price_item->get_area()), 'count = ' . str_replace(',', '.', $price_item->get_count()), 'title = \'' . $price_item->get_title() . '\'', 'agresso_id = \'' . $price_item->get_agresso_id() . '\'', 'is_area = ' . ($price_item->is_area() ? "true" : "false"), 'is_one_time = ' . (isset($one_time) && ($price_item->is_one_time() || $price_item->get_is_one_time() == 1) ? "true" : "false"), 'price = ' . str_replace(',', '.', $price_item->get_price())); if ($price_item->is_area()) { // var_dump('total_price = '.$price_item->get_area().'*'.$price_item->get_price()); $values[] = 'total_price = ' . str_replace(',', '.', $price_item->get_area() * $price_item->get_price()); } else { // var_dump('total_price = '.$price_item->get_count().'*'.$price_item->get_price()); $values[] = 'total_price = ' . str_replace(',', '.', $price_item->get_count() * $price_item->get_price()); } if ($price_item->get_date_start()) { $values[] = 'date_start = ' . $this->marshal($price_item->get_date_start(), 'int'); } if ($price_item->get_date_end()) { $values[] = 'date_end = ' . $this->marshal($price_item->get_date_end(), 'int'); } $this->db->query('UPDATE rental_contract_price_item SET ' . join(',', $values) . " WHERE id={$id}", __LINE__, __FILE__); $receipt['id'] = $id; $receipt['message'][] = array('msg' => lang('Entity %1 has been updated', $entry['id'])); return $receipt; }