* @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); } $data['serviceCategories'] = $this->Service_model->getAllServiceCategories(); $this->load->view('admin/add-service', $data); } else{ header("Location:".SITEURL."login"); } } public function worker_schedule() { $this->load->helper('url'); $this->load->model('Service_model'); $this->load->model('User_model'); $this->load->model('Module_model'); if (!isset($_SESSION['username'])) { header("Location:".SITEURL."login"); exit; } $data['currentUser'] = $this->User_model->getUserByUsername($_SESSION['username']); 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['workers'] = $this->Service_model->getAllWorkers(); $worker_id = $this->input->get('worker_id'); if ($worker_id) { $data['selectedWorkerId'] = $worker_id; $data['schedule'] = $this->Service_model->getWorkerSchedule($worker_id); } else { $data['selectedWorkerId'] = null; $data['schedule'] = []; } $this->load->view('admin/worker_schedule', $data); } public function worker_schedule_overrides() { $this->load->model('Service_model'); $data['currentUser'] = $this->User_model->getUserByUsername($_SESSION['username']); $data['workerSchedules'] = $this->Service_model->getWorkerScheduleOverrides(); $data['workers'] = $this->Service_model->getAllWorkers(); $data['pageTitle'] = 'Dolgozói egyedi munkaidők'; $this->load->view('admin/worker_schedule_overrides', $data); } public function admin_worker_schedule() { $this->load->helper('url'); $this->load->model('User_model'); $this->load->model('Service_model'); $data['pageTitle'] = 'Munkarend beállítása'; $data['workers'] = $this->Service_model->getAllWorkers(); if ($this->input->post('storeSchedule')) { $this->load->database(); $this->db->where('worker_id', $_POST['worker_id']); $this->db->delete('worker_schedule'); foreach ($_POST['weekday'] as $i => $day) { $insert = [ 'worker_id' => $_POST['worker_id'], 'weekday' => $day, 'start_time' => $_POST['start_time'][$i], 'end_time' => $_POST['end_time'][$i], 'is_alternate_week' => isset($_POST['is_alternate_week'][$i]) ? 1 : 0 ]; $this->db->insert('worker_schedule', $insert); } } if (!empty($_GET['worker_id'])) { $this->load->database(); $worker_id = $_GET['worker_id']; $data['selectedWorkerId'] = $worker_id; $data['schedule'] = $this->db->query("SELECT * FROM worker_schedule WHERE worker_id = '$worker_id'")->result(); } $this->load->view('admin/worker_schedule', $data); } public function store_worker_schedule() { $this->load->model('Service_model'); $this->load->helper('url'); $worker_id = $this->input->post('worker_id'); if (!$worker_id) { show_error('Dolgozó nincs kiválasztva.'); return; } // Clear existing schedule $this->Service_model->clearWorkerSchedule($worker_id); // Loop through submitted times for ($i = 0; $i <= 6; $i++) { $start = $this->input->post("start_time[$i]"); $end = $this->input->post("end_time[$i]"); $alt = $this->input->post("alternate_week[$i]") ? 1 : 0; if (!empty($start) && !empty($end)) { $this->Service_model->addWorkerSchedule([ 'worker_id' => $worker_id, 'weekday' => $i, 'start_time' => $start, 'end_time' => $end, 'is_alternate_week' => $alt ]); } } redirect('admin/worker_schedule'); } public function admin_worker_override() { $this->load->helper('url'); $this->load->model('User_model'); $this->load->model('Service_model'); $data['pageTitle'] = 'Egyedi napok kezelése'; $data['workers'] = $this->Service_model->getAllWorkers(); if ($this->input->post('storeOverride')) { $this->load->database(); $insert = [ 'worker_id' => $_POST['worker_id'], 'date' => $_POST['date'], 'is_day_off' => isset($_POST['is_day_off']) ? 1 : 0, 'start_time' => $_POST['start_time'], 'end_time' => $_POST['end_time'] ]; $existing = $this->db->query("SELECT * FROM worker_schedule_overrides WHERE worker_id = '{$insert['worker_id']}' AND date = '{$insert['date']}'")->row(); if ($existing) { $this->db->where('id', $existing->id)->update('worker_schedule_overrides', $insert); } else { $this->db->insert('worker_schedule_overrides', $insert); } } if (!empty($_GET['worker_id'])) { $this->load->database(); $worker_id = $_GET['worker_id']; $data['selectedWorkerId'] = $worker_id; $data['overrides'] = $this->db->query("SELECT * FROM worker_schedule_overrides WHERE worker_id = '$worker_id' ORDER BY date ASC")->result(); } $this->load->view('admin/worker_override', $data); } public function manage_worker_schedule($worker_id = null) { $this->load->model('Service_model'); $data['workers'] = $this->Service_model->getAllWorkers(); $data['selectedWorker'] = null; $data['schedule'] = []; if ($worker_id) { $data['selectedWorker'] = $this->Service_model->getWorkerById($worker_id); $data['schedule'] = $this->Service_model->getWorkerSchedule($worker_id); } $this->load->view('admin/manage_worker_schedule', $data); } public function save_worker_schedule() { $this->load->model('Service_model'); $worker_id = $this->input->post('worker_id'); $this->Service_model->clearWorkerSchedule($worker_id); foreach ($_POST['weekday'] as $index => $day) { if (!empty($_POST['start_time'][$index]) && !empty($_POST['end_time'][$index])) { $this->Service_model->addWorkerSchedule([ 'worker_id' => $worker_id, 'weekday' => $day, 'start_time' => $_POST['start_time'][$index], 'end_time' => $_POST['end_time'][$index], 'is_alternate_week' => isset($_POST['is_alternate_week'][$index]) ? 1 : 0 ]); } } redirect('admin/manage_worker_schedule/' . $worker_id); } 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); $data['serviceCategories'] = $this->Service_model->getAllServiceCategories(); $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( 'service_type' => $_POST['service_type'], 'service_category_no' => $_POST['service_category_no'], 'service_category_en' => $_POST['service_category_en'], 'service_category_hu' => $_POST['service_category_hu'], 'service_name_no' => $_POST['service_name_no'], 'service_name_en' => $_POST['service_name_en'], 'service_name_hu' => $_POST['service_name_hu'], 'service_description_no' => $_POST['service_description_no'], 'service_description_en' => $_POST['service_description_en'], 'service_description_hu' => $_POST['service_description_hu'], 'service_price' => $_POST['service_price'], 'service_time' => $_POST['service_time'], 'service_category_id' => $_POST['service_category_id'], 'is_enabled' => $_POST['is_enabled'] ); $this->Log_model->addLog('services', $data['currentUser']->username.' hozzáadta a(z) '.$_POST['service_name_hu'].' szolgáltatást ('.implode(',',$serviceArray).')', $data['currentUser']->username); $this->Service_model->createService($serviceArray); } if(isset($_POST['updateService'])){ $serviceArray = array( 'service_type' => $_POST['service_type'], 'service_category_no' => $_POST['service_category_no'], 'service_category_en' => $_POST['service_category_en'], 'service_category_hu' => $_POST['service_category_hu'], 'service_name_no' => $_POST['service_name_no'], 'service_name_en' => $_POST['service_name_en'], 'service_name_hu' => $_POST['service_name_hu'], 'service_description_no' => $_POST['service_description_no'], 'service_description_en' => $_POST['service_description_en'], 'service_description_hu' => $_POST['service_description_hu'], 'service_price' => $_POST['service_price'], 'service_time' => $_POST['service_time'], 'service_category_id' => $_POST['service_category_id'], 'is_enabled' => $_POST['is_enabled'] ); $this->Log_model->addLog('services', $data['currentUser']->username.' módosította a(z) '.$_POST['service_name_hu'].' 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 service_categories(){ $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 kategóriák'; $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->getAllServiceCategories(); $this->load->view('admin/service-categories', $data); } else{ header("Location:".SITEURL."login"); } } public function add_service_category(){ $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 kategória 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); } $this->load->view('admin/add-service-category', $data); } else{ header("Location:".SITEURL."login"); } } public function update_service_category($service_category_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_category_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->getServiceCategoryById($service_category_id); $this->load->view('admin/update-service-category', $data); } else{ header("Location:".SITEURL."login"); } } public function service_category_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-category'])){ $selected_service = $this->Service_model->getServiceCategoryById($_GET['delete-service-category']); $serviceArray = array( 'is_deleted' => '1' ); $this->Service_model->updateServiceCategory($_GET['delete-service-category'], $serviceArray); } if(isset($_POST['addNewServiceCategory'])){ $serviceCategoryArray = array( 'serv_cat_slug' => $_POST['serv_cat_slug'], 'serv_cat_name' => $_POST['serv_cat_name'] ); $this->Service_model->createServiceCategory($serviceCategoryArray); } if(isset($_POST['updateServiceCategory'])){ $serviceCategoryArray = array( 'serv_cat_slug' => $_POST['serv_cat_slug'], 'serv_cat_name' => $_POST['serv_cat_name'] ); $this->Service_model->updateServiceCategory($_POST['service_category_id'], $serviceCategoryArray); } header('Location:'.SITEURL.'service-categories'); $this->load->view('admin/service-category-process', $data); } } public function workers(){ $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'] = 'Dolgozók'; $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->getAllWorkers(); $this->load->view('admin/workers', $data); } else{ header("Location:".SITEURL."login"); } } public function add_worker(){ $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'] = 'Dolgozó 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['serviceCategories'] = $this->Service_model->getAllServiceCategories(); $this->load->view('admin/add-worker', $data); } else{ header("Location:".SITEURL."login"); } } public function update_worker($worker_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'] = 'Dolgozó módosítása (#'.$worker_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['serviceCategories'] = $this->Service_model->getAllServiceCategories(); $data['selectedItem'] = $this->Service_model->getWorkerById($worker_id); $this->load->view('admin/update-worker', $data); } else{ header("Location:".SITEURL."login"); } } public function worker_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-worker'])){ $selected_worker = $this->Service_model->getWorkerById($_GET['delete-worker']); $workerArray = array( 'is_deleted' => '1' ); $this->Service_model->updateWorker($_GET['delete-worker'], $workerArray); $this->Log_model->addLog('workers', $data['currentUser']->username.' törölte a(z) '.$_GET['delete-worker'].' számú dolgozót ('.$selected_worker->worker_name.')', $data['currentUser']->username); } if(isset($_POST['addNewWorker'])){ $data['worker_img'] = ''; if($_FILES["worker_img"]["tmp_name"] != ''){ $target_dir = getcwd()."/assets/img/"; $target_file = $target_dir . 'worker_'.str_replace(' ','_', $_POST['worker_name']); $imageFileType = strtolower(pathinfo(basename($_FILES["worker_img"]["name"]),PATHINFO_EXTENSION)); if (move_uploaded_file($_FILES["worker_img"]["tmp_name"], $target_file.'.'.$imageFileType)) { $data['message'] = 'A profilkép sikeresen feltöltve!'; $data['message_class'] = 'successMessage'; $data['worker_img'] = 'worker_'.str_replace(' ','_', $_POST['worker_name']).'.'.$imageFileType; } else { $data['message'] = 'Hiba a feltöltés közben!'; $data['message_class'] = 'errorMessage'; } } $workerArray = array( 'worker_name' => $_POST['worker_name'], 'worker_info' => $_POST['worker_info'], 'is_beauty' => $_POST['is_beauty'], 'is_barber' => $_POST['is_barber'], 'worker_profile_img' => $data['worker_img'], 'service_category_id' => $_POST['service_category_id'], 'is_active' => $_POST['is_active'] ); $this->Log_model->addLog('workers', $data['currentUser']->username.' létrehozta a(z) '.$_POST['worker_name'].' nevű dolgozót ('.implode(',',$workerArray).')', $data['currentUser']->username); $this->Service_model->createWorker($workerArray); } if(isset($_POST['updateWorker'])){ $workerArray = array( 'worker_name' => $_POST['worker_name'], 'worker_info' => $_POST['worker_info'], 'is_beauty' => $_POST['is_beauty'], 'is_barber' => $_POST['is_barber'], 'service_category_id' => $_POST['service_category_id'], 'is_active' => $_POST['is_active'], 'google_calendar_id' => isset($_POST['google_calendar_id']) ? $_POST['google_calendar_id'] : '', 'ntfy_topic' => isset($_POST['ntfy_topic']) ? $_POST['ntfy_topic'] : '' ); $this->Service_model->updateWorker($_POST['worker_id'], $workerArray); $this->Log_model->addLog('workers', $data['currentUser']->username.' módosította a(z) '.$_POST['worker_name'].' nevű dolgozót ('.implode(',',$workerArray).')', $data['currentUser']->username); if($_FILES["worker_img"]["tmp_name"] != ''){ $target_dir = getcwd()."/assets/img/"; $target_file = $target_dir . 'worker_'.str_replace(' ','_', $_POST['worker_name']); $imageFileType = strtolower(pathinfo(basename($_FILES["worker_img"]["name"]),PATHINFO_EXTENSION)); if (move_uploaded_file($_FILES["worker_img"]["tmp_name"], $target_file.'.'.$imageFileType)) { $data['message'] = 'A profilkép sikeresen feltöltve!'; $data['message_class'] = 'successMessage'; $data['worker_img'] = 'worker_'.str_replace(' ','_', $_POST['worker_name']).'.'.$imageFileType; $workerArray = array( 'worker_profile_img' => $data['worker_img'] ); $this->Log_model->addLog('workers', $data['currentUser']->username.' profilképet állított be a(z) '.$_POST['worker_name'].' nevű dolgozóhoz', $data['currentUser']->username); $this->Service_model->updateWorker($_POST['worker_id'], $workerArray); } else { $data['message'] = 'Hiba a feltöltés közben!'; $data['message_class'] = 'errorMessage'; } } } header("Location:".SITEURL."workers"); $this->load->view('admin/worker-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['workers'] = $this->Service_model->getActiveWorkers(); if(isset($_GET['worker'])){ $data['results'] = $this->Service_model->getActualBookingsByWorkerID($_GET['worker']); } else{ $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('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['workers'] = $this->Service_model->getAllWorkers(); $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'); 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['workers'] = $this->Service_model->getAllWorkers(); $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'], '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'], 'worker_id' => $_POST['worker_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 = ''; switch($_POST['lang']){ case 'no': $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); break; case 'en': $content = 'Dear Guest,
'; $content .= 'Thank you for your booking!
'; $content .= '
'; $content .= ''; $content .= ''; $content .= ''; $content .= ''; $content .= ''; $content .= ''; $content .= ''; $content .= ''; $content .= ''; $content .= '
Name: '.$bookingArray['guest_name'].'
Email: '.$bookingArray['guest_email'].'
Phone: '.$bookingArray['guest_phone'].'
Worker: '.$worker->worker_name.'
Date: '.$bookingArray['booking_date'].'
Time: '.$bookingArray['booking_start_time'].' - '.$bookingArray['booking_finish_time'].'
Services: '; $totalServicePrice = 0; foreach($serviceArray as $serviceArrayItem){ $totalServicePrice += $serviceArrayItem->service_price; $content .= ''; } $content .= '
'.$serviceArrayItem->service_name_en.''.$serviceArrayItem->service_price.' kr
Total price: '.$totalServicePrice.' kr
'; $content .= '
STUDIOBEVE'; $this->Log_model->addLog('bookings', $data['currentUser']->username.' új foglalásról angol nyelvű értesítést küldött a(z) '.$bookingArray['guest_email'].' email címre ('.implode(', ', $bookingArray).')', $data['currentUser']->username); break; case 'hu': $content = 'Kedves Vendégünk,
'; $content .= 'Köszönettel fogadtuk a foglalását!
'; $content .= '
'; $content .= ''; $content .= ''; $content .= ''; $content .= ''; $content .= ''; $content .= ''; $content .= ''; $content .= ''; $content .= ''; $content .= '
Név: '.$bookingArray['guest_name'].'
Email: '.$bookingArray['guest_email'].'
Telefon: '.$bookingArray['guest_phone'].'
Dolgozó: '.$worker->worker_name.'
Dátum: '.$bookingArray['booking_date'].'
Időpont: '.$bookingArray['booking_start_time'].' - '.$bookingArray['booking_finish_time'].'
Szolgáltatás(ok): '; $totalServicePrice = 0; foreach($serviceArray as $serviceArrayItem){ $totalServicePrice += $serviceArrayItem->service_price; $content .= ''; } $content .= '
'.$serviceArrayItem->service_name_hu.''.$serviceArrayItem->service_price.' kr
Összesen fizetendő: '.$totalServicePrice.' kr
'; $content .= '
STUDIOBEVE'; $this->Log_model->addLog('bookings', $data['currentUser']->username.' új foglalásról magyar nyelvű értesítést küldött a(z) '.$bookingArray['guest_email'].' email címre ('.implode(', ', $bookingArray).')', $data['currentUser']->username); break; } $data['selectedLang'] = $_POST['lang']; $emailItem = array( 'addressee_email' => $bookingArray['guest_email'], 'addressee_name' => $bookingArray['guest_name'], 'subject' => '[studiobeve] Your booking has arrived', 'content' => $content, 'attachments' => array() ); $emailArray[] = $emailItem; $this->User_model->sendEmail($emailArray, $_POST['lang'], ''); } 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'], 'worker_id' => $_POST['worker_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']){ $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 = ''; $email_subject =''; switch($_POST['lang']){ case 'no': $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); break; case 'en': $email_subject ='[studiobeve] Your booking has changed'; $content = 'Dear Guest,
'; $content .= 'We inform you that your booking has changed.
'; $content .= '
'; $content .= ''; $content .= ''; $content .= ''; $content .= ''; $content .= ''; $content .= ''; $content .= ''; $content .= ''; $content .= ''; $content .= '
Name: '.$bookingArray['guest_name'].'
Email: '.$bookingArray['guest_email'].'
Phone: '.$bookingArray['guest_phone'].'
Worker: '.$worker->worker_name.'
Date: '.$bookingArray['booking_date'].'
Time: '.$bookingArray['booking_start_time'].' - '.$bookingArray['booking_finish_time'].'
Services: '; $totalServicePrice = 0; foreach($serviceArray as $serviceArrayItem){ $totalServicePrice += $serviceArrayItem->service_price; $content .= ''; } $content .= '
'.$serviceArrayItem->service_name_en.''.$serviceArrayItem->service_price.' kr
Total price: '.$totalServicePrice.' kr
'; $content .= '
STUDIOBEVE'; $this->Log_model->addLog('bookings', $data['currentUser']->username.' foglalás módosításról angol nyelvű értesítést küldött a(z) '.$bookingArray['guest_email'].' email címre ('.implode(', ', $bookingArray).')', $data['currentUser']->username); break; case 'hu': $email_subject ='[studiobeve] A foglalása módosult'; $content = 'Kedves Vendégünk,
'; $content .= 'Tájékoztatjuk, hogy a foglalása módosult.
'; $content .= '
'; $content .= ''; $content .= ''; $content .= ''; $content .= ''; $content .= ''; $content .= ''; $content .= ''; $content .= ''; $content .= ''; $content .= '
Név: '.$bookingArray['guest_name'].'
Email: '.$bookingArray['guest_email'].'
Telefon: '.$bookingArray['guest_phone'].'
Dolgozó: '.$worker->worker_name.'
Dátum: '.$bookingArray['booking_date'].'
Időpont: '.$bookingArray['booking_start_time'].' - '.$bookingArray['booking_finish_time'].'
Szolgáltatás(ok): '; $totalServicePrice = 0; foreach($serviceArray as $serviceArrayItem){ $totalServicePrice += $serviceArrayItem->service_price; $content .= ''; } $content .= '
'.$serviceArrayItem->service_name_hu.''.$serviceArrayItem->service_price.' kr
Összesen fizetendő: '.$totalServicePrice.' kr
'; $content .= '
STUDIOBEVE'; $this->Log_model->addLog('bookings', $data['currentUser']->username.' foglalás módosításról magyar nyelvű értesítést küldött a(z) '.$bookingArray['guest_email'].' email címre ('.implode(', ', $bookingArray).')', $data['currentUser']->username); break; } $data['selectedLang'] = $_POST['lang']; $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, $_POST['lang'], ''); } header('Location:'.SITEURL.'bookings'); } $this->load->view('admin/booking-process', $data); } } }