From 3a7dd849929618054db828ac93658e5db0181356 Mon Sep 17 00:00:00 2001 From: Zoli Date: Tue, 16 Dec 2025 11:10:33 +0100 Subject: [PATCH] =?UTF-8?q?foglal=C3=A1s=20id=C5=91pont=20+1=20=C3=B3r?= =?UTF-8?q?=C3=A1s=20baszakod=C3=A1s?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- application/controllers/Admin.php | 2298 ++++++++--------- application/controllers/Pages.php | 2 +- application/models/Service_model.php | 191 +- .../views/pages/includes/booking-form-en.php | 26 +- .../views/pages/includes/booking-form-hu.php | 26 +- .../views/pages/includes/booking-form-no.php | 26 +- 6 files changed, 1277 insertions(+), 1292 deletions(-) diff --git a/application/controllers/Admin.php b/application/controllers/Admin.php index 8107ff0..11567fb 100755 --- a/application/controllers/Admin.php +++ b/application/controllers/Admin.php @@ -1,1149 +1,1149 @@ - - * @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' => $data['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'] - ); - $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); - } - } - - - - - - - - - - - - - - - - - - - - - - - -} + + * @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'] + ); + $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); + } + } + + + + + + + + + + + + + + + + + + + + + + + +} diff --git a/application/controllers/Pages.php b/application/controllers/Pages.php index 8eab6e8..126a900 100755 --- a/application/controllers/Pages.php +++ b/application/controllers/Pages.php @@ -120,7 +120,7 @@ class Pages extends CI_Controller { foreach($workers as $workerItem){ $workerListShow .= '