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 .= '| Navn: | '.$bookingArray['guest_name'].' |
';
- $content .= '| E-post: | '.$bookingArray['guest_email'].' |
';
- $content .= '| Telefon: | '.$bookingArray['guest_phone'].' |
';
- $content .= '| Arbeider: | '.$worker->worker_name.' |
';
- $content .= '| Dato: | '.$bookingArray['booking_date'].' |
';
- $content .= '| Tid: | '.$bookingArray['booking_start_time'].' - '.$bookingArray['booking_finish_time'].' |
';
- $content .= '| Tjenester: | ';
- $totalServicePrice = 0;
- foreach($serviceArray as $serviceArrayItem){
- $totalServicePrice += $serviceArrayItem->service_price;
- $content .= '| '.$serviceArrayItem->service_name_no.' | '.$serviceArrayItem->service_price.' kr | ';
- }
- $content .= ' | ';
- $content .= '
| Totalpris: | '.$totalServicePrice.' kr |
';
- $content .= '
';
- $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 .= '| Name: | '.$bookingArray['guest_name'].' |
';
- $content .= '| Email: | '.$bookingArray['guest_email'].' |
';
- $content .= '| Phone: | '.$bookingArray['guest_phone'].' |
';
- $content .= '| Worker: | '.$worker->worker_name.' |
';
- $content .= '| Date: | '.$bookingArray['booking_date'].' |
';
- $content .= '| Time: | '.$bookingArray['booking_start_time'].' - '.$bookingArray['booking_finish_time'].' |
';
- $content .= '| Services: | ';
- $totalServicePrice = 0;
- foreach($serviceArray as $serviceArrayItem){
- $totalServicePrice += $serviceArrayItem->service_price;
- $content .= '| '.$serviceArrayItem->service_name_en.' | '.$serviceArrayItem->service_price.' kr | ';
- }
- $content .= ' | ';
- $content .= '
| Total price: | '.$totalServicePrice.' kr |
';
- $content .= '
';
- $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 .= '| Név: | '.$bookingArray['guest_name'].' |
';
- $content .= '| Email: | '.$bookingArray['guest_email'].' |
';
- $content .= '| Telefon: | '.$bookingArray['guest_phone'].' |
';
- $content .= '| Dolgozó: | '.$worker->worker_name.' |
';
- $content .= '| Dátum: | '.$bookingArray['booking_date'].' |
';
- $content .= '| Időpont: | '.$bookingArray['booking_start_time'].' - '.$bookingArray['booking_finish_time'].' |
';
- $content .= '| Szolgáltatás(ok): | ';
- $totalServicePrice = 0;
- foreach($serviceArray as $serviceArrayItem){
- $totalServicePrice += $serviceArrayItem->service_price;
- $content .= '| '.$serviceArrayItem->service_name_hu.' | '.$serviceArrayItem->service_price.' kr | ';
- }
- $content .= ' | ';
- $content .= '
| Összesen fizetendő: | '.$totalServicePrice.' kr |
';
- $content .= '
';
- $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 .= '| Navn: | '.$bookingArray['guest_name'].' |
';
- $content .= '| E-post: | '.$bookingArray['guest_email'].' |
';
- $content .= '| Telefon: | '.$bookingArray['guest_phone'].' |
';
- $content .= '| Arbeider: | '.$worker->worker_name.' |
';
- $content .= '| Dato: | '.$bookingArray['booking_date'].' |
';
- $content .= '| Tid: | '.$bookingArray['booking_start_time'].' - '.$bookingArray['booking_finish_time'].' |
';
- $content .= '| Tjenester: | ';
- $totalServicePrice = 0;
- foreach($serviceArray as $serviceArrayItem){
- $totalServicePrice += $serviceArrayItem->service_price;
- $content .= '| '.$serviceArrayItem->service_name_no.' | '.$serviceArrayItem->service_price.' kr | ';
- }
- $content .= ' | ';
- $content .= '
| Totalpris: | '.$totalServicePrice.' kr |
';
- $content .= '
';
- $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 .= '| Name: | '.$bookingArray['guest_name'].' |
';
- $content .= '| Email: | '.$bookingArray['guest_email'].' |
';
- $content .= '| Phone: | '.$bookingArray['guest_phone'].' |
';
- $content .= '| Worker: | '.$worker->worker_name.' |
';
- $content .= '| Date: | '.$bookingArray['booking_date'].' |
';
- $content .= '| Time: | '.$bookingArray['booking_start_time'].' - '.$bookingArray['booking_finish_time'].' |
';
- $content .= '| Services: | ';
- $totalServicePrice = 0;
- foreach($serviceArray as $serviceArrayItem){
- $totalServicePrice += $serviceArrayItem->service_price;
- $content .= '| '.$serviceArrayItem->service_name_en.' | '.$serviceArrayItem->service_price.' kr | ';
- }
- $content .= ' | ';
- $content .= '
| Total price: | '.$totalServicePrice.' kr |
';
- $content .= '
';
- $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 .= '| Név: | '.$bookingArray['guest_name'].' |
';
- $content .= '| Email: | '.$bookingArray['guest_email'].' |
';
- $content .= '| Telefon: | '.$bookingArray['guest_phone'].' |
';
- $content .= '| Dolgozó: | '.$worker->worker_name.' |
';
- $content .= '| Dátum: | '.$bookingArray['booking_date'].' |
';
- $content .= '| Időpont: | '.$bookingArray['booking_start_time'].' - '.$bookingArray['booking_finish_time'].' |
';
- $content .= '| Szolgáltatás(ok): | ';
- $totalServicePrice = 0;
- foreach($serviceArray as $serviceArrayItem){
- $totalServicePrice += $serviceArrayItem->service_price;
- $content .= '| '.$serviceArrayItem->service_name_hu.' | '.$serviceArrayItem->service_price.' kr | ';
- }
- $content .= ' | ';
- $content .= '
| Összesen fizetendő: | '.$totalServicePrice.' kr |
';
- $content .= '
';
- $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 .= '| Navn: | '.$bookingArray['guest_name'].' |
';
+ $content .= '| E-post: | '.$bookingArray['guest_email'].' |
';
+ $content .= '| Telefon: | '.$bookingArray['guest_phone'].' |
';
+ $content .= '| Arbeider: | '.$worker->worker_name.' |
';
+ $content .= '| Dato: | '.$bookingArray['booking_date'].' |
';
+ $content .= '| Tid: | '.$bookingArray['booking_start_time'].' - '.$bookingArray['booking_finish_time'].' |
';
+ $content .= '| Tjenester: | ';
+ $totalServicePrice = 0;
+ foreach($serviceArray as $serviceArrayItem){
+ $totalServicePrice += $serviceArrayItem->service_price;
+ $content .= '| '.$serviceArrayItem->service_name_no.' | '.$serviceArrayItem->service_price.' kr | ';
+ }
+ $content .= ' | ';
+ $content .= '
| Totalpris: | '.$totalServicePrice.' kr |
';
+ $content .= '
';
+ $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 .= '| Name: | '.$bookingArray['guest_name'].' |
';
+ $content .= '| Email: | '.$bookingArray['guest_email'].' |
';
+ $content .= '| Phone: | '.$bookingArray['guest_phone'].' |
';
+ $content .= '| Worker: | '.$worker->worker_name.' |
';
+ $content .= '| Date: | '.$bookingArray['booking_date'].' |
';
+ $content .= '| Time: | '.$bookingArray['booking_start_time'].' - '.$bookingArray['booking_finish_time'].' |
';
+ $content .= '| Services: | ';
+ $totalServicePrice = 0;
+ foreach($serviceArray as $serviceArrayItem){
+ $totalServicePrice += $serviceArrayItem->service_price;
+ $content .= '| '.$serviceArrayItem->service_name_en.' | '.$serviceArrayItem->service_price.' kr | ';
+ }
+ $content .= ' | ';
+ $content .= '
| Total price: | '.$totalServicePrice.' kr |
';
+ $content .= '
';
+ $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 .= '| Név: | '.$bookingArray['guest_name'].' |
';
+ $content .= '| Email: | '.$bookingArray['guest_email'].' |
';
+ $content .= '| Telefon: | '.$bookingArray['guest_phone'].' |
';
+ $content .= '| Dolgozó: | '.$worker->worker_name.' |
';
+ $content .= '| Dátum: | '.$bookingArray['booking_date'].' |
';
+ $content .= '| Időpont: | '.$bookingArray['booking_start_time'].' - '.$bookingArray['booking_finish_time'].' |
';
+ $content .= '| Szolgáltatás(ok): | ';
+ $totalServicePrice = 0;
+ foreach($serviceArray as $serviceArrayItem){
+ $totalServicePrice += $serviceArrayItem->service_price;
+ $content .= '| '.$serviceArrayItem->service_name_hu.' | '.$serviceArrayItem->service_price.' kr | ';
+ }
+ $content .= ' | ';
+ $content .= '
| Összesen fizetendő: | '.$totalServicePrice.' kr |
';
+ $content .= '
';
+ $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 .= '| Navn: | '.$bookingArray['guest_name'].' |
';
+ $content .= '| E-post: | '.$bookingArray['guest_email'].' |
';
+ $content .= '| Telefon: | '.$bookingArray['guest_phone'].' |
';
+ $content .= '| Arbeider: | '.$worker->worker_name.' |
';
+ $content .= '| Dato: | '.$bookingArray['booking_date'].' |
';
+ $content .= '| Tid: | '.$bookingArray['booking_start_time'].' - '.$bookingArray['booking_finish_time'].' |
';
+ $content .= '| Tjenester: | ';
+ $totalServicePrice = 0;
+ foreach($serviceArray as $serviceArrayItem){
+ $totalServicePrice += $serviceArrayItem->service_price;
+ $content .= '| '.$serviceArrayItem->service_name_no.' | '.$serviceArrayItem->service_price.' kr | ';
+ }
+ $content .= ' | ';
+ $content .= '
| Totalpris: | '.$totalServicePrice.' kr |
';
+ $content .= '
';
+ $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 .= '| Name: | '.$bookingArray['guest_name'].' |
';
+ $content .= '| Email: | '.$bookingArray['guest_email'].' |
';
+ $content .= '| Phone: | '.$bookingArray['guest_phone'].' |
';
+ $content .= '| Worker: | '.$worker->worker_name.' |
';
+ $content .= '| Date: | '.$bookingArray['booking_date'].' |
';
+ $content .= '| Time: | '.$bookingArray['booking_start_time'].' - '.$bookingArray['booking_finish_time'].' |
';
+ $content .= '| Services: | ';
+ $totalServicePrice = 0;
+ foreach($serviceArray as $serviceArrayItem){
+ $totalServicePrice += $serviceArrayItem->service_price;
+ $content .= '| '.$serviceArrayItem->service_name_en.' | '.$serviceArrayItem->service_price.' kr | ';
+ }
+ $content .= ' | ';
+ $content .= '
| Total price: | '.$totalServicePrice.' kr |
';
+ $content .= '
';
+ $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 .= '| Név: | '.$bookingArray['guest_name'].' |
';
+ $content .= '| Email: | '.$bookingArray['guest_email'].' |
';
+ $content .= '| Telefon: | '.$bookingArray['guest_phone'].' |
';
+ $content .= '| Dolgozó: | '.$worker->worker_name.' |
';
+ $content .= '| Dátum: | '.$bookingArray['booking_date'].' |
';
+ $content .= '| Időpont: | '.$bookingArray['booking_start_time'].' - '.$bookingArray['booking_finish_time'].' |
';
+ $content .= '| Szolgáltatás(ok): | ';
+ $totalServicePrice = 0;
+ foreach($serviceArray as $serviceArrayItem){
+ $totalServicePrice += $serviceArrayItem->service_price;
+ $content .= '| '.$serviceArrayItem->service_name_hu.' | '.$serviceArrayItem->service_price.' kr | ';
+ }
+ $content .= ' | ';
+ $content .= '
| Összesen fizetendő: | '.$totalServicePrice.' kr |
';
+ $content .= '
';
+ $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 .= '