* @see https://codeigniter.com/userguide3/general/urls.html */ public function dashboard(){ $this->load->helper('url'); $this->load->model('User_model'); $this->load->model('Service_model'); $this->load->model('Module_model'); if(isset($_SESSION['username'])){ $data['currentUser'] = $this->User_model->getUserByUsername($_SESSION['username']); $data['pageTitle'] = 'Vezérlőpult'; $data['message'] = ''; $data['message_class'] = ''; if($this->User_model->is_user_admin($_SESSION['username'])){ $data['activeModules'] = $this->Module_model->getAllModule(); } else{ $data['activeModules'] = $this->Module_model->getUserModules($data['currentUser']->user_id); } $this->load->view('admin/dashboard', $data); } else{ header("Location:".SITEURL."login"); } } public function services(){ $this->load->helper('url'); $this->load->model('User_model'); $this->load->model('Service_model'); $this->load->model('Module_model'); if(isset($_SESSION['username'])){ $data['currentUser'] = $this->User_model->getUserByUsername($_SESSION['username']); $data['pageTitle'] = 'Szolgáltatások'; $data['message'] = ''; $data['message_class'] = ''; if($this->User_model->is_user_admin($_SESSION['username'])){ $data['activeModules'] = $this->Module_model->getAllModule(); } else{ $data['activeModules'] = $this->Module_model->getUserModules($data['currentUser']->user_id); } $data['results'] = $this->Service_model->getAllServices(); $this->load->view('admin/services', $data); } else{ header("Location:".SITEURL."login"); } } public function add_service(){ $this->load->helper('url'); $this->load->model('User_model'); $this->load->model('Service_model'); $this->load->model('Module_model'); if(isset($_SESSION['username'])){ $data['currentUser'] = $this->User_model->getUserByUsername($_SESSION['username']); $data['pageTitle'] = 'Szolgáltatás hozzáadás'; $data['message'] = ''; $data['message_class'] = ''; if($this->User_model->is_user_admin($_SESSION['username'])){ $data['activeModules'] = $this->Module_model->getAllModule(); } else{ $data['activeModules'] = $this->Module_model->getUserModules($data['currentUser']->user_id); } $this->load->view('admin/add-service', $data); } else{ header("Location:".SITEURL."login"); } } public function update_service($service_id){ $this->load->helper('url'); $this->load->model('User_model'); $this->load->model('Service_model'); $this->load->model('Module_model'); if(isset($_SESSION['username'])){ $data['currentUser'] = $this->User_model->getUserByUsername($_SESSION['username']); $data['pageTitle'] = 'Szolgáltatás módosítása (#'.$service_id.')'; $data['message'] = ''; $data['message_class'] = ''; if($this->User_model->is_user_admin($_SESSION['username'])){ $data['activeModules'] = $this->Module_model->getAllModule(); } else{ $data['activeModules'] = $this->Module_model->getUserModules($data['currentUser']->user_id); } $data['selectedItem'] = $this->Service_model->getServiceById($service_id); $this->load->view('admin/update-service', $data); } else{ header("Location:".SITEURL."login"); } } public function service_process(){ $this->load->helper('url'); $this->load->model('User_model'); $this->load->model('Service_model'); $this->load->model('Log_model'); if(isset($_SESSION['username'])){ $data['currentUser'] = $this->User_model->getUserByUsername($_SESSION['username']); $data['pageTitle'] = ''; $data['message'] = ''; $data['message_class'] = ''; if(isset($_GET['delete-service'])){ $selected_service = $this->Service_model->getServiceById($_GET['delete-service']); $serviceArray = array( 'is_deleted' => '1' ); $this->Service_model->updateService($_GET['delete-service'], $serviceArray); $this->Log_model->addLog('services', $data['currentUser']->username.' törölte a(z) '.$_GET['delete-service'].' számú szolgáltatást ('.$selected_service->service_name_hu.')', $data['currentUser']->username); } if(isset($_POST['addNewService'])){ $serviceArray = array( 'main_category' => $_POST['main_category'], 'main_category_description' => $_POST['main_category_description'], 'service_category' => $_POST['service_category'], 'service_name' => $_POST['service_name'], 'service_description' => $_POST['service_description'], 'service_price' => $_POST['service_price'], 'service_time' => $_POST['service_time'], 'is_enabled' => $_POST['is_enabled'] ); $this->Log_model->addLog('services', $data['currentUser']->username.' hozzáadta a(z) '.$_POST['service_name'].' szolgáltatást ('.implode(',',$serviceArray).')', $data['currentUser']->username); $this->Service_model->createService($serviceArray); } if(isset($_POST['updateService'])){ $serviceArray = array( 'main_category' => $_POST['main_category'], 'main_category_description' => $_POST['main_category_description'], 'service_category' => $_POST['service_category'], 'service_name' => $_POST['service_name'], 'service_description' => $_POST['service_description'], 'service_price' => $_POST['service_price'], 'service_time' => $_POST['service_time'], 'is_enabled' => $_POST['is_enabled'] ); $this->Log_model->addLog('services', $data['currentUser']->username.' módosította a(z) '.$_POST['service_name'].' szolgáltatást ('.implode(',',$serviceArray).')', $data['currentUser']->username); $this->Service_model->updateService($_POST['service_id'], $serviceArray); } header('Location:'.SITEURL.'services'); $this->load->view('admin/service-process', $data); } } public function groups(){ $this->load->helper('url'); $this->load->model('User_model'); $this->load->model('Group_model'); $this->load->model('Service_model'); $this->load->model('Module_model'); if(isset($_SESSION['username'])){ $data['currentUser'] = $this->User_model->getUserByUsername($_SESSION['username']); $data['pageTitle'] = 'Csoportok'; $data['message'] = ''; $data['message_class'] = ''; if($this->User_model->is_user_admin($_SESSION['username'])){ $data['activeModules'] = $this->Module_model->getAllModule(); } else{ $data['activeModules'] = $this->Module_model->getUserModules($data['currentUser']->user_id); } $data['results'] = $this->Group_model->getAllGroups(); $this->load->view('admin/groups', $data); } else{ header("Location:".SITEURL."login"); } } public function add_group(){ $this->load->helper('url'); $this->load->model('User_model'); $this->load->model('Group_model'); $this->load->model('Service_model'); $this->load->model('Module_model'); if(isset($_SESSION['username'])){ $data['currentUser'] = $this->User_model->getUserByUsername($_SESSION['username']); $data['pageTitle'] = 'Csoport hozzáadása'; $data['message'] = ''; $data['message_class'] = ''; if($this->User_model->is_user_admin($_SESSION['username'])){ $data['activeModules'] = $this->Module_model->getAllModule(); } else{ $data['activeModules'] = $this->Module_model->getUserModules($data['currentUser']->user_id); } $data['services'] = $this->Service_model->getAllServiceByServiceType(); $this->load->view('admin/add-group', $data); } else{ header("Location:".SITEURL."login"); } } public function update_group($group_id){ $this->load->helper('url'); $this->load->model('User_model'); $this->load->model('Group_model'); $this->load->model('Service_model'); $this->load->model('Module_model'); if(isset($_SESSION['username'])){ $data['currentUser'] = $this->User_model->getUserByUsername($_SESSION['username']); $data['pageTitle'] = 'Csoport módosítása (#'.$group_id.')'; $data['message'] = ''; $data['message_class'] = ''; if($this->User_model->is_user_admin($_SESSION['username'])){ $data['activeModules'] = $this->Module_model->getAllModule(); } else{ $data['activeModules'] = $this->Module_model->getUserModules($data['currentUser']->user_id); } $data['selectedItem'] = $this->Group_model->getGroupById($group_id); $data['services'] = $this->Service_model->getAllServiceByServiceType(); $this->load->view('admin/update-group', $data); } else{ header("Location:".SITEURL."login"); } } public function group_process(){ $this->load->helper('url'); $this->load->model('User_model'); $this->load->model('Group_model'); $this->load->model('Service_model'); $this->load->model('Log_model'); if(isset($_SESSION['username'])){ $data['currentUser'] = $this->User_model->getUserByUsername($_SESSION['username']); $data['pageTitle'] = ''; $data['message'] = ''; $data['message_class'] = ''; if(isset($_GET['delete-group'])){ $selected_group = $this->Group_model->getGroupById($_GET['delete-group']); $groupArray = array( 'is_deleted' => '1' ); $this->Service_model->updateGroup($_GET['group-group'], $groupArray); $this->Log_model->addLog('groups', $data['currentUser']->username.' törölte a(z) '.$_GET['delete-group'].' számú csoportot ('.$selected_group->group_group.')', $data['currentUser']->username); } if(isset($_POST['addNewGroup'])){ $data['group_profile_img'] = ''; if($_FILES["group_profile_img"]["tmp_name"] != ''){ $target_dir = getcwd()."/assets/img/"; $target_file = $target_dir . 'group_'.str_replace(' ','_', $_POST['group_name']); $imageFileType = strtolower(pathinfo(basename($_FILES["group_profile_img"]["name"]),PATHINFO_EXTENSION)); if (move_uploaded_file($_FILES["group_profile_img"]["tmp_name"], $target_file.'.'.$imageFileType)) { $data['message'] = 'A profilkép sikeresen feltöltve!'; $data['message_class'] = 'successMessage'; $data['group_profile_img'] = 'group_'.str_replace(' ','_', $_POST['group_name']).'.'.$imageFileType; } else { $data['message'] = 'Hiba a feltöltés közben!'; $data['message_class'] = 'errorMessage'; } } $skillsArray = array(); $services = $this->Service_model->getAllServiceByServiceType(); if(is_array($services)){ foreach($services as $serviceItem){ if(isset($_POST['skill_'.$serviceItem->service_id]) && $_POST['skill_'.$serviceItem->service_id] == '1'){ $skillsArray[] = $serviceItem->service_id; } } } $groupArray = array( 'group_name' => $_POST['group_name'], 'group_info' => $_POST['group_info'], 'group_profile_img' => $data['group_profile_img'], 'skills' => implode(',', $skillsArray), 'is_active' => $_POST['is_active'], 'group_notes' => $_POST['group_notes'] ); $this->Log_model->addLog('groups', $data['currentUser']->username.' létrehozta a(z) '.$_POST['group_name'].' nevű csoportot ('.implode(',',$groupArray).')', $data['currentUser']->username); $groupArray['skills'] = serialize($skillsArray); $this->Group_model->createGroup($groupArray); } if(isset($_POST['updateGroup'])){ $data['group_profile_img'] = ''; $skillsArray = array(); $services = $this->Service_model->getAllServiceByServiceType(); if(is_array($services)){ foreach($services as $serviceItem){ if(isset($_POST['skill_'.$serviceItem->service_id]) && $_POST['skill_'.$serviceItem->service_id] == '1'){ $skillsArray[] = $serviceItem->service_id; } } } $groupArray = array( 'group_name' => $_POST['group_name'], 'group_info' => $_POST['group_info'], 'group_profile_img' => $data['group_profile_img'], 'skills' => implode(',', $skillsArray), 'is_active' => $_POST['is_active'], 'group_notes' => $_POST['group_notes'] ); $this->Log_model->addLog('groups', $data['currentUser']->username.' módosította a(z) '.$_POST['group_name'].' nevű csoportot ('.implode(',',$groupArray).')', $data['currentUser']->username); $groupArray['skills'] = serialize($skillsArray); $this->Group_model->updateGroup($_POST['group_id'], $groupArray); if($_FILES["group_profile_img"]["tmp_name"] != ''){ $target_dir = getcwd()."/assets/img/"; $target_file = $target_dir . 'group_'.str_replace(' ','_', $_POST['group_name']); $imageFileType = strtolower(pathinfo(basename($_FILES["group_profile_img"]["name"]),PATHINFO_EXTENSION)); if (move_uploaded_file($_FILES["group_profile_img"]["tmp_name"], $target_file.'.'.$imageFileType)) { $data['message'] = 'A profilkép sikeresen feltöltve!'; $data['message_class'] = 'successMessage'; $data['group_profile_img'] = 'group_'.str_replace(' ','_', $_POST['group_name']).'.'.$imageFileType; $groupArray = array( 'group_profile_img' => $data['group_profile_img'] ); $this->Log_model->addLog('groups', $data['currentUser']->username.' profilképet állított be a(z) '.$_POST['group_name'].' nevű csoporthoz', $data['currentUser']->username); $this->Group_model->updateGroup($_POST['group_id'], $groupArray); } else { $data['message'] = 'Hiba a feltöltés közben!'; $data['message_class'] = 'errorMessage'; } } } header("Location:".SITEURL."groups"); $this->load->view('admin/group-process', $data); } } public function bookings(){ $this->load->helper('url'); $this->load->model('User_model'); $this->load->model('Service_model'); $this->load->model('Module_model'); if(isset($_SESSION['username'])){ $data['currentUser'] = $this->User_model->getUserByUsername($_SESSION['username']); $data['pageTitle'] = 'Foglalások'; $data['message'] = ''; $data['message_class'] = ''; if($this->User_model->is_user_admin($_SESSION['username'])){ $data['activeModules'] = $this->Module_model->getAllModule(); } else{ $data['activeModules'] = $this->Module_model->getUserModules($data['currentUser']->user_id); } $data['results'] = $this->Service_model->getActualBookings(); $this->load->view('admin/bookings', $data); } else{ header("Location:".SITEURL."login"); } } public function add_booking(){ $this->load->helper('url'); $this->load->model('User_model'); $this->load->model('Service_model'); $this->load->model('Group_model'); $this->load->model('Module_model'); if(isset($_SESSION['username'])){ $data['currentUser'] = $this->User_model->getUserByUsername($_SESSION['username']); $data['pageTitle'] = 'Foglalás hozzáadása'; $data['message'] = ''; $data['message_class'] = ''; if($this->User_model->is_user_admin($_SESSION['username'])){ $data['activeModules'] = $this->Module_model->getAllModule(); } else{ $data['activeModules'] = $this->Module_model->getUserModules($data['currentUser']->user_id); } $available_services = $this->Service_model->getAvailableServices(); $serviceFile = fopen("load_services.json", "w") or die("Unable to open file!"); fwrite($serviceFile, json_encode($available_services)); fclose($serviceFile); $data['workgroups'] = $this->Group_model->getAllGroups(); $this->load->view('admin/add-booking', $data); } else{ header("Location:".SITEURL."login"); } } public function update_booking($booking_id){ $this->load->helper('url'); $this->load->model('User_model'); $this->load->model('Service_model'); $this->load->model('Module_model'); $this->load->model('Group_model'); if(isset($_SESSION['username'])){ $data['currentUser'] = $this->User_model->getUserByUsername($_SESSION['username']); $data['pageTitle'] = 'Foglalás módosítása (#'.$booking_id.')'; $data['message'] = ''; $data['message_class'] = ''; if($this->User_model->is_user_admin($_SESSION['username'])){ $data['activeModules'] = $this->Module_model->getAllModule(); } else{ $data['activeModules'] = $this->Module_model->getUserModules($data['currentUser']->user_id); } $available_services = $this->Service_model->getAvailableServices(); $serviceFile = fopen("load_services.json", "w") or die("Unable to open file!"); fwrite($serviceFile, json_encode($available_services)); fclose($serviceFile); $data['workgroups'] = $this->Group_model->getAllGroups(); $data['selectedItem'] = $this->Service_model->getBookingById($booking_id); $this->load->view('admin/update-booking', $data); } else{ header("Location:".SITEURL."login"); } } public function booking_process(){ $this->load->helper('url'); $this->load->model('User_model'); $this->load->model('Service_model'); $this->load->model('Log_model'); if(isset($_SESSION['username'])){ $data['currentUser'] = $this->User_model->getUserByUsername($_SESSION['username']); $data['pageTitle'] = ''; $data['message'] = ''; $data['message_class'] = ''; if(isset($_GET['delete-booking'])){ $selectedBooking = $this->Service_model->getBookingById($_GET['delete-booking']); $this->Service_model->deleteBooking($_GET['delete-booking']); $this->Log_model->addLog('bookings', $data['currentUser']->username.' törölte a(z) '.$_GET['delete-booking'].' számú foglalást ('.$selectedBooking->guest_name.', '.$selectedBooking->guest_email.', '.$selectedBooking->guest_phone.', '.$selectedBooking->booking_date.', '.$selectedBooking->booking_start_time.', '.$selectedBooking->booking_finish_time.', '.$selectedBooking->service_ids.')', $data['currentUser']->username); header('Location:'.SITEURL.'bookings'); } if(isset($_POST['addNewBookingManual'])){ $booking_date = new DateTime(date('Y-m-d', strtotime($_POST['booking_date']))); $end_booking_date = new DateTime(date('Y-m-d', strtotime($_POST['end_booking_date']))); $diff = $booking_date->diff($end_booking_date); $selectedServiceArray = array(); if($_POST['service_ids'] != ''){ $selectedServiceArray = explode(',', $_POST['service_ids']); } if($_POST['booking_date'] != $_POST['end_booking_date'] && $booking_date <= $end_booking_date){ for($index = 0; $index <= $diff->days; $index++){ $selectedDate = date('Y-m-d', strtotime($_POST['booking_date']. ' + '.$index.' days')); $bookingArray = array( 'guest_name' => $_POST['guest_name'], 'guest_email' => $_POST['guest_email'], 'guest_phone' => $_POST['guest_phone'], 'group_id' => $_POST['group_id'], 'booking_date' => $selectedDate, 'booking_start_time' => $_POST['booking_start_time'], 'booking_finish_time' => $_POST['booking_finish_time'], 'service_ids' => serialize($selectedServiceArray), 'guest_confirmed' => '0', 'guest_confirm_code' => '1234', ); $this->Service_model->createBooking($bookingArray); } } else{ $bookingArray = array( 'guest_name' => $_POST['guest_name'], 'guest_email' => $_POST['guest_email'], 'guest_phone' => $_POST['guest_phone'], 'group_id' => $_POST['group_id'], 'booking_date' => $_POST['booking_date'], 'booking_start_time' => $_POST['booking_start_time'], 'booking_finish_time' => $_POST['booking_finish_time'], 'service_ids' => serialize($selectedServiceArray), 'guest_confirmed' => '0', 'guest_confirm_code' => '1234', ); $this->Log_model->addLog('bookings', $data['currentUser']->username.' létrehoza a(z) '.$_POST['guest_name'].' nevű vendég foglalást ('.implode(', ', $bookingArray).')', $data['currentUser']->username); $this->Service_model->createBooking($bookingArray); } if($_POST['send_notification']){ $worker = $this->Service_model->getWorkerById($bookingArray['worker_id']); $services = unserialize($bookingArray['service_ids']); $serviceArray = array(); $emailArray = array(); if(is_array($services)){ foreach($services as $serviceItem){ $selectedService = $this->Service_model->getServiceById($serviceItem); if(is_object($selectedService)){ $serviceArray[] = $selectedService; } } } $content = ''; $content = 'Kjære gjest,
'; $content .= 'Takk for din bestilling!
'; $content .= '
'; $content .= ''; $content .= ''; $content .= ''; $content .= ''; $content .= ''; $content .= ''; $content .= ''; $content .= ''; $content .= ''; $content .= '
Navn: '.$bookingArray['guest_name'].'
E-post: '.$bookingArray['guest_email'].'
Telefon: '.$bookingArray['guest_phone'].'
Arbeider: '.$worker->worker_name.'
Dato: '.$bookingArray['booking_date'].'
Tid: '.$bookingArray['booking_start_time'].' - '.$bookingArray['booking_finish_time'].'
Tjenester: '; $totalServicePrice = 0; foreach($serviceArray as $serviceArrayItem){ $totalServicePrice += $serviceArrayItem->service_price; $content .= ''; } $content .= '
'.$serviceArrayItem->service_name_no.''.$serviceArrayItem->service_price.' kr
Totalpris: '.$totalServicePrice.' kr
'; $content .= '
STUDIOBEVE'; $this->Log_model->addLog('bookings', $data['currentUser']->username.' új foglalásról norvég nyelvű értesítést küldött a(z) '.$bookingArray['guest_email'].' email címre ('.implode(', ', $bookingArray).')', $data['currentUser']->username); $emailItem = array( 'addressee_email' => $bookingArray['guest_email'], 'addressee_name' => $bookingArray['guest_name'], 'subject' => '[dinbestehjelper] Your booking has arrived', 'content' => $content, 'attachments' => array() ); $emailArray[] = $emailItem; $this->User_model->sendEmail($emailArray); } header('Location:'.SITEURL.'bookings'); } if(isset($_POST['updateBookingManual'])){ $booking_date = new DateTime(date('Y-m-d', strtotime($_POST['booking_date']))); $end_booking_date = new DateTime(date('Y-m-d', strtotime($_POST['end_booking_date']))); $diff = $booking_date->diff($end_booking_date); $selectedServiceArray = array(); if($_POST['service_ids'] != ''){ $selectedServiceArray = explode(',', $_POST['service_ids']); } if($_POST['booking_date'] != $_POST['end_booking_date'] && $booking_date <= $end_booking_date){ for($index = 0; $index <= $diff->days; $index++){ $selectedDate = date('Y-m-d', strtotime($_POST['booking_date']. ' + '.$index.' days')); $bookingArray = array( 'guest_name' => $_POST['guest_name'], 'guest_email' => $_POST['guest_email'], 'guest_phone' => $_POST['guest_phone'], 'worker_id' => $_POST['worker_id'], 'booking_date' => $selectedDate, 'booking_start_time' => $_POST['booking_start_time'], 'booking_finish_time' => $_POST['booking_finish_time'], 'service_ids' => serialize($selectedServiceArray), 'guest_confirmed' => '0', 'guest_confirm_code' => '1234' ); $this->Service_model->createBooking($bookingArray); } } else{ $bookingArray = array( 'guest_name' => $_POST['guest_name'], 'guest_email' => $_POST['guest_email'], 'guest_phone' => $_POST['guest_phone'], 'group_id' => $_POST['group_id'], 'booking_date' => $_POST['booking_date'], 'booking_start_time' => $_POST['booking_start_time'], 'booking_finish_time' => $_POST['booking_finish_time'], 'service_ids' => serialize($selectedServiceArray), 'guest_confirmed' => '0', 'guest_confirm_code' => '1234' ); $this->Service_model->updateBooking($_POST['booking_id'], $bookingArray); $this->Log_model->addLog('bookings', $data['currentUser']->username.' módosította a foglalását a(z) '.$bookingArray['guest_name'].' nevű vendégnek ('.implode(', ', $bookingArray).')', $data['currentUser']->username); } if($_POST['send_notification']){ $workgroup = $this->Service_model->getWorkerById($bookingArray['group_id']); $services = unserialize($bookingArray['service_ids']); $serviceArray = array(); $emailArray = array(); if(is_array($services)){ foreach($services as $serviceItem){ $selectedService = $this->Service_model->getServiceById($serviceItem); if(is_object($selectedService)){ $serviceArray[] = $selectedService; } } } $content = ''; $email_subject ='[studiobeve] Din reservasjon er endret'; $content = 'Kjære gjest,
'; $content .= 'Vi vil gjerne informere deg om at din reservasjon er endret.
'; $content .= '
'; $content .= ''; $content .= ''; $content .= ''; $content .= ''; $content .= ''; $content .= ''; $content .= ''; $content .= ''; $content .= ''; $content .= '
Navn: '.$bookingArray['guest_name'].'
E-post: '.$bookingArray['guest_email'].'
Telefon: '.$bookingArray['guest_phone'].'
Arbeider: '.$worker->worker_name.'
Dato: '.$bookingArray['booking_date'].'
Tid: '.$bookingArray['booking_start_time'].' - '.$bookingArray['booking_finish_time'].'
Tjenester: '; $totalServicePrice = 0; foreach($serviceArray as $serviceArrayItem){ $totalServicePrice += $serviceArrayItem->service_price; $content .= ''; } $content .= '
'.$serviceArrayItem->service_name_no.''.$serviceArrayItem->service_price.' kr
Totalpris: '.$totalServicePrice.' kr
'; $content .= '
STUDIOBEVE'; $this->Log_model->addLog('bookings', $data['currentUser']->username.' foglalás módosításról norvég nyelvű értesítést küldött a(z) '.$bookingArray['guest_email'].' email címre ('.implode(', ', $bookingArray).')', $data['currentUser']->username); $emailItem = array( 'addressee_email' => $bookingArray['guest_email'], 'addressee_name' => $bookingArray['guest_name'], 'subject' => $email_subject, 'content' => $content, 'attachments' => array() ); $emailArray[] = $emailItem; $this->User_model->sendEmail($emailArray); } header('Location:'.SITEURL.'bookings'); } $this->load->view('admin/booking-process', $data); } } }