Користанням рнр-сценаріїв та створена база даних „osbb db з використанням системи управління реляційними базами даних Mysql, яка ідеально інтегрується з рнр
Вид материала | Документы |
СодержаниеСписок літератури |
- Тема. Поняття про бази даних. Системи управління базами даних (субд) Мета, 35.04kb.
- План уроку: Порівняльна характеристика типів баз даних. Особливості реляційних баз, 83.01kb.
- Інтерфейс системи керування базами даних access. Створення бази даних. Таблиці. Запити, 156.05kb.
- Методичні рекомендації до вивчення теми 4 Державний стандарт освіти «Бази даних. Системи, 1008.1kb.
- Вступ. База даних у Access, 257.75kb.
- Системи управління базами даних (субд), 222.23kb.
- Лекція 21 "Інформатика та комп'ютерна техніка" Тема Бази даних та системи керування, 106.88kb.
- Урок 1 тема. Поняття про бази даних. Системи управління базами даних (субд) Мета: показати, 36.11kb.
- "Вычислительные системы" с применением программы pc virtual, 36.24kb.
- Затверджено, 191.24kb.
5.6. Висновки
Проаналізувавши показники економічної ефективності проектного рішення, можна довести доцільність запропонованого рішення. При впровадженні розробленого мною програмного забезпечення для проведення економічних розрахунків в межах об’єднання співвласників будинку одержуємо економічний ефект в сфері проектування та експлуатації, відповідно 892,85 грн. та 491045,63 грн. Також одержуємо додатковий економічний ефект в сфері експлуатації в розмірі 530329,28 грн. та додатковий економічний ефект в сфері проектування 1041,42 грн. Також термін окупності витрат на проектування запропонованого мною рішення становить 0,7 року, що значно менше, ніж в аналога. Запропонований програмний продукт є конкурентоспроможним, так як коефіцієнт конкурентоспроможності – 1,32. Ціна розробленого мною проектного рішення є меншою ціни аналога, тому він може бути реалізований за ціною, нижчою від ціни аналога, а це вигідніше для замовника.
ВИСНОВКИ
Темою магістерської кваліфікаційної роботи є клієнт-серверна система управління базами даних для проведення економічних розрахунків в межах об`єднання співласників будинку.Результат роботи – розроблена програмна система «OSBB system», з використанням РНР-сценаріїв та створена база даних – “osbb_db” з використанням системи управління реляційними базами даних MySQL, яка ідеально інтегрується з РНР.
На першому етапі виконання магістерської кваліфікаційної роботи виникла необхідність вивчити ряд теоретичних питань, пов'язаних з вибором засобів програмної та апаратної реалізації поставленої задачі. До них відноситься вивчення принципів побудови локальних мереж і технології клієнт/сервер.
Перша задача, з якою довелося зіткнутися при виконанні роботи – це реалізація самої бази даних. Основна складність реалізації бази даних полягає в створенні структури таблиць та встановленні зв’язків між цими таблицями.
Також були розроблені алгоритми для специфічної роботи з нарахуваннями цін на послуги для мешканців.
Оскільки програма розрахована на тривалу роботу, то цьому питанню було приділено немало уваги. Ключовим аспектом став вибір колірної палітри всієї програми, оскільки як показала практика, дуже контрастна колірна палітра веде до втоми оператора і невдоволення програмою загалом.
При використанні програмної системи “OSBB system” економія часу очевидна, програма є зручною у використанні.
СПИСОК ЛІТЕРАТУРИ
- [Електронний ресурс]: Про "ЖКГ-СОЦІУМ". Режим доступу: ссылка скрыта - назва з головної сторінки сайту
- [Електронний ресурс]: Система Побудинкового Обліку для ОСББ. Режим доступу: ссылка скрыта - назва з головної сторінки сайту
- [Електронний ресурс]: Система управління підприємством "Дебет Плюс". Режим доступу: ссылка скрыта - назва з головної сторінки сайту
- [Електронний ресурс]: Apache Software Foundation. Режим доступу: ссылка скрыта - назва з головної сторінки сайту
- [Електронний ресурс]: Apache Week. Режим доступу: ссылка скрыта - назва з головної сторінки сайту
- [Електронний ресурс]: Apache Week. Режим доступу: ссылка скрыта - назва з головної сторінки сайту
- [Електронний ресурс]: MySQL. Режим доступу: sql.com - назва з головної сторінки сайту
- [Електронний ресурс]: PHP. Режим доступу: ссылка скрытаnet - назва з головної сторінки сайту
- Томсон Лаура, Люк Веллинг. Разработка Web-приложений на РНР и MySQL: ООО “ДиаСофтЮП”, 2003. – 672 с.
- Колисниченко Д. Н. Самоучитель РНР 5. – СПб.: Наука и Техника, 2004. – 576 с.: ил.
- Леон Аткинсон, Зеев Сураски . PHP 5. Библиотека профессионала: Издательский дом “Вильямс”, 2006. – 943 с.
- Брукшир Дж. Гленн. Введение в компьютерные науки. Общий обзор,
6-е издание.: Издательский дом “Вильямс”, 2001. – 688 с.: ил.
- Кодд Е.Ф. “Реляційна модель даних”. Пер з англ. - Київ, Діалектика. 1996.
- Соколова Н. А., Антофій Н. М. Наукові праці. Серія «Комп’ютерні технології». Випуск 22, том 35., 2004. с. 34-35.
- [Електронний ресурс]: Яндекс. Режим доступу: x.ru – назва з головної сторінки сайту
- [Електронний ресурс]: Гугл. Режим доступу: ссылка скрыта – назва з головної сторінки сайту
- Про благоустрій населених пунктів: Закон України від 6 вересня 2005 року № 2807-IV // http: //zakon.rada.dov.ua./cgi-bin/laws/main/cgi.
- Про органи самоорганізації населення: Закон України від 11 липня 2001 року № 2625-III // Відомості Верховної Ради України. – 2001. – № 48. – Ст. 254.
ДОДАТКИ
- Лістинг файлу flats.php
class ControllerPropertyFlats extends Controller {
private $error = array();
public function __construct( $registry ){
parent::__construct($registry);
$this->load->model( 'property/flats' );
$this->language->data = array_merge( $this->language->data , $this->load->language('property/flats') );
$this->data['language'] = $this->language->data;
}
public function ajaxGetFlatServices() {
$_FlatServices = array();
if( isset( $this->request->get['flat_id'] ) && is_int( (int)$this->request->get['flat_id'] ) ){
$_FlatServices = $this->model_property_flats->getFlatServices( $this->request->get['flat_id'] );
}
$this->response->setOutput ( json_encode ( $_FlatServices ) );
}
public function index() {
$this->document->setTitle ( $this->data['language']['heading_title'] );
$this->getList();
}
public function insert() {
$this->document->setTitle ( $this->data['language']['heading_title'] );
if ( ($this->request->server['REQUEST_METHOD'] == 'POST') && $this->validateForm() ) {
if( $this->model_property_flats->addFlat( $this->request->post ) ){
$this->session->data['success'] = $this->data['language']['text_success_add'];
}
else{
$this->session->data['error'] = $this->data['language']['text_error_add'];
}
$this->redirect ( $this->url->link ( 'property/flats', 'token=' . $this->session->data ['token'] , 'SSL' ) );
}
$this->getForm();
}
public function update(){
$this->document->setTitle ( $this->data['language']['heading_title'] );
if ( ($this->request->server ['REQUEST_METHOD'] == 'POST') && $this->validateForm () ){
$this->model_property_flats->editFlat( $this->request->get['flat_id'] , $this->request->post );
$this->session->data['success'] = $this->data['language']['text_success_edit'];
$this->redirect ( $this->url->link ( 'property/flats', 'token=' . $this->session->data ['token'] , 'SSL' ) );
}
$this->getForm();
}
public function delete() {
$this->document->setTitle ( $this->data['language']['heading_title'] );
if (isset ( $this->request->post ['selected'] ) && $this->validateDelete() ) {
foreach ( $this->request->post ['selected'] as $flat_id ) {
$this->model_property_flats->deleteFlat( $flat_id );
}
$this->session->data['success'] = $this->data['language']['text_success_delete'];
$this->redirect ( $this->url->link ( 'property/flats', 'token=' . $this->session->data ['token'] , 'SSL' ) );
}
$this->getList();
}
private function getList(){
$this->data ['filter_house_id'] = null;
$this->data ['filter_number'] = null;
$this->data ['filter_footage'] = null;
$sort = 'pd.id';
$order = 'ASC';
$page = 1;
$url = '';
if (isset ( $this->request->get ['filter_id'] )) {
$this->data ['filter_id'] = $this->request->get ['filter_id'];
$url .= '&filter_id=' . $this->request->get ['filter_id'];
}
if (isset ( $this->request->get ['filter_number'] )) {
$this->data ['filter_number'] = $this->request->get ['filter_number'];
$url .= '&filter_number=' . $this->request->get ['filter_number'];
}
if (isset ( $this->request->get ['filter_street'] )) {
$this->data ['filter_street'] = $this->request->get ['filter_street'];
$url .= '&filter_street=' . $this->request->get ['filter_street'];
}
if (isset ( $this->request->get ['sort'] )) {
$sort = $this->request->get ['sort'];
$url .= '&sort=' . $this->request->get ['sort'];
}
if (isset ( $this->request->get ['order'] )) {
$order = $this->request->get ['order'];
$url .= '&order=' . $this->request->get ['order'];
}
if (isset ( $this->request->get ['page'] )) {
$page = $this->request->get ['page'];
$url .= '&page=' . $this->request->get ['page'];
}
$token = $this->session->data ['token'];
$this->data ['token'] = $token;
// Set breadcrumbs :
$this->data ['breadcrumbs'] = array ();
$this->data ['breadcrumbs'] [] = array (
'text' => $this->data['language']['text_home'] ,
'href' => $this->url->link ( 'common/home', 'token='.$token , 'SSL' ),
'separator' => false
);
$this->data ['breadcrumbs'] [] = array (
'text' => $this->data['language']['heading_title'] ,
'href' => $this->url->link ( 'property/flats', 'token='.$token . $url, 'SSL' ) ,
'separator' => ' :: '
);
$this->data ['insert'] = $this->url->link ( 'property/flats/insert', 'token='.$token.$url , 'SSL' );
$this->data ['delete'] = $this->url->link ( 'property/flats/delete', 'token='.$token.$url , 'SSL' );
$this->data['houses'] = array();
$this->load->model( 'property/houses' );
$this->data['houses'] = $this->model_property_houses->getHouses();
$houses_names = array();
foreach( $this->data['houses'] as $house ){
// echo "
"; print_r($house); echo "
";
$houses_names[$house['id']] = $house['street']." ".$house['number'];
}
$this->data['houses_names'] = $houses_names;
$results = array ();
$results = $this->model_property_flats->getFlats();
foreach ( $results as $result ) {
$action = array ();
$action[] = array (
'text' => $this->data['language']['text_edit'] ,
'href' => $this->url->link ( 'property/flats/update' , 'token='.$token . '&flat_id='.$result['id'] . $url, 'SSL' ) ,
);
$special = false;
$this->data['flats'][] = array (
'flat_id' => $result['id'] ,
'house_id' => $result['house_id'] ,
'number' => $result['number'] ,
'footage' => $result['footage'] ,
'action' => $action
);
}
$this->data ['error_warning'] = '';
$this->data ['success'] = '';
if (isset ( $this->error ['warning'] ))
$this->data ['error_warning'] = $this->error ['warning'];
if (isset ( $this->session->data ['success'] )) {
$this->data ['success'] = $this->session->data ['success'];
unset ( $this->session->data ['success'] );
}
$this->data ['sort_id'] = $this->url->link ( 'property/flats', 'token=' . $token . '&sort=pd.name' . $url, 'SSL' );
$this->data ['sort_house_id'] = $this->url->link ( 'property/flats', 'token=' . $token . '&sort=p.model' . $url, 'SSL' );
$this->data ['sort_number'] = $this->url->link ( 'property/flats', 'token=' . $token . '&sort=p.price' . $url, 'SSL' );
$this->data ['sort_footage'] = $this->url->link ( 'property/flats', 'token=' . $token . '&sort=p.quantity' . $url, 'SSL' );
$this->data ['pagination'] = "";
$this->data ['sort'] = $sort;
$this->data ['order'] = $order;
$this->template = 'property/flats_list.tpl';
$this->children = array (
'common/header' ,
'common/footer' ,
'common/sidebar'
);
$this->response->setOutput ( $this->render () );
}
private function getForm(){
$this->data['error_warning'] = '';
$this->data['error_house_id'] = '';
$this->data['error_flat_number'] = '';
$this->data['error_flat_footage'] = '';
if (isset ( $this->error['warning'] )) {
$this->data['error_warning'] = $this->error['warning'];
}
if (isset ( $this->error ['name'] )) {
$this->data ['error_name'] = $this->error ['name'];
}
if (isset ( $this->error ['meta_description'] )) {
$this->data ['error_meta_description'] = $this->error ['meta_description'];
}
// url :
$url = '';
if (isset ( $this->request->get ['filter_number'] )) {
$url .= '&filter_name=' . $this->request->get ['filter_name'];
}
if (isset ( $this->request->get ['filter_street'] )) {
$url .= '&filter_model=' . $this->request->get ['filter_model'];
}
if (isset ( $this->request->get ['order'] )) {
$url .= '&order=' . $this->request->get ['order'];
}
if (isset ( $this->request->get ['page'] )) {
$url .= '&page=' . $this->request->get ['page'];
}
$this->data ['token'] = $token = $this->session->data ['token'];
// breadcrumbs :
$this->data['breadcrumbs'] = array ();
$this->data['breadcrumbs'][] = array (
'text' => $this->data['language']['text_home'] ,
'href' => $this->url->link ( 'common/home', 'token=' . $token , 'SSL' ) ,
'separator' => false
);
$this->data ['breadcrumbs'][] = array (
'text' => $this->data['language']['heading_title'] ,
'href' => $this->url->link ( 'property/flats', 'token=' . $token . $url, 'SSL' ) ,
'separator' => ' :: '
);
if ( isset ( $this->request->get['flat_id'] ) ) {
$this->data ['action'] = $this->url->link ( 'property/flats/update', 'token=' . $token . '&flat_id=' . $this->request->get ['flat_id'] . $url, 'SSL' );
$this->data ['breadcrumbs'][] = array (
'text' => $this->data['language']['text_update'] ,
'href' => $this->url->link ( 'property/flats', 'token='.$token . $url, 'SSL' ) ,
'separator' => ' :: '
);
}
else {
$this->data ['action'] = $this->url->link ( 'property/flats/insert', 'token=' . $token . $url, 'SSL' );
$this->data ['breadcrumbs'][] = array (
'text' => $this->data['language']['text_insert'] ,
'href' => $this->url->link ( 'property/flats', 'token=' . $token . $url, 'SSL' ) ,
'separator' => ' :: '
);
}
$this->data ['cancel'] = $this->url->link ( 'property/flats', 'token=' . $token . $url, 'SSL' );
// houses :
$this->load->model( 'property/houses' );
$this->data['houses'] = array();
$this->data['houses'] = $this->model_property_houses->getHouses();
if (isset ( $this->request->get ['flat_id'] ) && ($this->request->server ['REQUEST_METHOD'] != 'POST')) {
$flat_info = $this->model_property_flats->getFlat( $this->request->get ['flat_id'] );
}
// house_id :
$this->data['house_id'] = '';
if( isset($this->request->post['house_id']) ) $this->data['house_id'] = $this->request->post['house_id'];
elseif( isset($flat_info['house_id']) ) $this->data['house_id'] = $flat_info['house_id'];
// flat_number :
$this->data['flat_number'] = '';
if( isset($this->request->post['flat_number']) ) $this->data['flat_number'] = $this->request->post['flat_number'];
elseif( isset($flat_info['number']) ) $this->data['flat_number'] = $flat_info['number'];
// flat_number :
$this->data['flat_footage'] = '';
if( isset($this->request->post['flat_footage']) ) $this->data['flat_footage'] = $this->request->post['flat_footage'];
elseif( isset($flat_info['number']) ) $this->data['flat_footage'] = $flat_info['footage'];
// flat_services :
$this->data['flat_services'] = array();
if( isset($this->request->post['flat_services']) ){
$this->data['flat_services'] = $this->request->post['flat_services'];
}
elseif( isset($flat_info['services']) ){
$this->data['flat_services'] = $flat_info['services'];
}
$this->load->model( 'services/services' );
$results = $this->model_services_services->getServices();
// echo "
"; print_r($results); echo "
";
$_services = array();
// flat charges :
$_getFlatCharges = array();
foreach( $results as &$result ){
// echo "
"; print_r($result); echo "
";
// echo "
".$result['id'];
$_services[$result['id']] = $result['name'];
$_FlatCharges[$result['id']] = array();
$_FlatCharges[$result['id']] = $this->model_property_flats->getFlatCharges( $this->request->get ['flat_id'] , $result['id'] );
}
$this->data['flat_charges'] = $_FlatCharges;
$this->data['services'] = $_services;
// flat customers :
$this->data['flat_customers'] = $this->model_property_flats->getFlatCustomers( $this->request->get ['flat_id'] );
$this->template = 'property/flat_form.tpl';
$this->children = array (
'common/header' ,
'common/footer' ,
'common/sidebar'
);
$this->response->setOutput ( $this->render () );
}
private function validateForm() {
if (! $this->user->hasPermission ( 'modify', 'property/flats' )) {
$this->error ['warning'] = $this->data['language']['error_permission'];
}
if ( !isset($this->request->post ['house_id']) || !is_int( (int)$this->request->post ['house_id'] ) ) {
$this->error['house_id'] = $this->data['language']['error_house_id'];
}
if ((utf8_strlen ( $this->request->post ['flat_number'] ) < 1) || (utf8_strlen ( $this->request->post ['flat_number'] ) > 255)) {
$this->error['flat_number'] = $this->data['language']['error_flat_number'];
}
if ((utf8_strlen ( $this->request->post ['flat_footage'] ) < 1) || (utf8_strlen ( $this->request->post ['flat_footage'] ) > 255)) {
$this->error ['flat_footage'] = $this->data['language']['error_flat_footage'];
}
if ($this->error && ! isset ( $this->error ['warning'] )) {
$this->error ['warning'] = $this->data['language']['error_warning'];
}
if (! $this->error)
return true;
else
return false;
}
private function validateDelete() {
if (! $this->user->hasPermission ( 'modify', 'property/houses' )) {
$this->error ['warning'] = $this->data['language']['error_permission'];
}
if (! $this->error) {
return true;
}
else {
return false;
}
}
public function getHouseFlats() {
if( isset($this->request->get['house_id']) ){
$_HouseFlats = $this->model_property_flats->getHouseFlats( $this->request->get['house_id'] );
}
$this->response->setOutput ( json_encode ( $_HouseFlats ) );
}
}
- Клас моделі «customer»
class ModelUserCustomer extends Model {
public function addCustomer($data) {
$this->db->query ( "INSERT INTO " . DB_PREFIX . "customer SET
`firstname` = '" . $this->db->escape ( $data ['firstname'] ) . "' ,
`lastname` = '" . $this->db->escape ( $data ['lastname'] ) . "' ,
`middlename` = '" . $this->db->escape ( $data ['middlename'] ) . "' ,
`email` = '" . $this->db->escape ( $data ['email'] ) . "' ,
`house_id` = '" . $this->db->escape ( $data ['house_id'] ) . "' ,
`flat_id` = '" . $this->db->escape ( $data ['flat_id'] ) . "' ,
`telephone` = '" . $this->db->escape ( $data ['telephone'] ) . "' ,
`fax` = '" . $this->db->escape ( $data ['fax'] ) . "' ,
`newsletter` = '" . ( int ) $data ['newsletter'] . "' ,