From cf204da2b9bdb13003918bbd3799592ad53e990d Mon Sep 17 00:00:00 2001 From: venkateswaran ubuntu Date: Fri, 21 Jul 2023 17:12:54 +0530 Subject: [PATCH] business module group changes : Venkateshwaran --- application/helpers/custom_helper.php | 85 ++++ .../modules/Auth/models/Auth_model.php | 42 ++ .../modules/Business/controllers/Business.php | 133 ++++-- .../Business/models/Business_model.php | 69 +++ .../modules/Business/views/add_business.php | 125 ++++- .../modules/Business/views/business_list.php | 3 +- .../Business/views/confirmation_popup.php | 26 + .../modules/Business/views/edit_business.php | 216 +++++++-- .../modules/Business/views/module_list.php | 37 +- .../modules/Employee/controllers/Employee.php | 257 ++++------ .../Employee/models/Employee_model.php | 51 ++ .../modules/Employee/views/add_emp.php | 200 ++++++-- .../modules/Employee/views/edit_emp.php | 173 ++++++- .../modules/Expence/controllers/Expence.php | 2 +- .../Expence/views/confirmation_popup.php | 2 +- .../Expence/views/emp_expence_list.php | 30 +- .../modules/Group/controllers/Group.php | 192 ++++++++ application/modules/Group/models/.gitkeep | 0 .../modules/Group/models/Group_model.php | 114 +++++ .../modules/Group/views/Create_Group.php | 177 +++++++ .../modules/Group/views/Edit_Group.php | 196 ++++++++ .../modules/Group/views/Group_list.php | 72 +++ .../Group/views/confirmation_popup.php | 26 + .../Layout/views/includes/default_header.php | 2 +- .../Layout/views/includes/default_menu.php | 67 ++- .../Layout/views/includes/employee_menu.php | 8 + assets/demo-styles.css | 114 +++++ assets/example-styles.css | 107 +++++ assets/jquery-2.2.4.min.js | 4 + assets/jquery.multi-select.js | 452 ++++++++++++++++++ 30 files changed, 2657 insertions(+), 325 deletions(-) create mode 100644 application/modules/Business/views/confirmation_popup.php create mode 100644 application/modules/Group/controllers/Group.php create mode 100644 application/modules/Group/models/.gitkeep create mode 100644 application/modules/Group/models/Group_model.php create mode 100644 application/modules/Group/views/Create_Group.php create mode 100644 application/modules/Group/views/Edit_Group.php create mode 100644 application/modules/Group/views/Group_list.php create mode 100644 application/modules/Group/views/confirmation_popup.php create mode 100644 assets/demo-styles.css create mode 100644 assets/example-styles.css create mode 100644 assets/jquery-2.2.4.min.js create mode 100644 assets/jquery.multi-select.js diff --git a/application/helpers/custom_helper.php b/application/helpers/custom_helper.php index e254012..76bda5f 100644 --- a/application/helpers/custom_helper.php +++ b/application/helpers/custom_helper.php @@ -95,6 +95,91 @@ function employee() } } + if(!function_exists('modules')) + { + function modules() + { + $ci =& get_instance(); + $module_id = $ci->auth_model->modules(); + + $ModuleData = []; + foreach($module_id as $key => $val){ + array_push($ModuleData,$val->module_id); + } + return $ModuleData; + + } + + } + + if(!function_exists('Asset_module')) + { + function Asset_module() + { + $myArray = modules(); + $elementToCheck = '1'; + return in_array($elementToCheck, $myArray); + } + } + + if(!function_exists('Employee_module')) + { + function Employee_module() + { + $myArray = modules(); + $elementToCheck = '2'; + + return in_array($elementToCheck, $myArray); + } + } + + +if(!function_exists('group_membership')) + { + function group_membership() + { + $ci =& get_instance(); + $group_id = $ci->auth_model->group_membership(); + + $GroupData = []; + foreach($group_id as $key => $val){ + array_push($GroupData,$val->group_id,$val->module_id); + } + return $GroupData; + } + +} + +if(!function_exists('Employee_group')) + { + function Employee_group() + { + $myArray = group_membership(); + // $ci =& get_instance(); + // return $Employee_group = $ci->auth_model->Employee_group($myArray); + + $elementToCheck = '4'; + $elementToCheck = '1'; + return in_array($elementToCheck, $myArray); + } + } + + if(!function_exists('HR_group')) + { + function HR_group() + { + $myArray = group_membership(); + // $ci =& get_instance(); + // return $Employee_group = $ci->auth_model->Employee_group($myArray); + + $elementToCheck = '6'; + $elementToCheck = '2'; + return in_array($elementToCheck, $myArray); + } + } + +if(!function_exists('')) + if (!function_exists('hash_password')) { function hash_password($password) { diff --git a/application/modules/Auth/models/Auth_model.php b/application/modules/Auth/models/Auth_model.php index a14d13b..d75b091 100644 --- a/application/modules/Auth/models/Auth_model.php +++ b/application/modules/Auth/models/Auth_model.php @@ -46,6 +46,46 @@ public function get_logged_employee() } } + public function modules() + { + $this->db->select('module_id'); + $this->db->from('permit_modules'); + $this->db->where('uid', $this->session->userdata('business_id')); + $this->db->where('is_active', 1); + $query = $this->db->get(); + return $query->result(); + } + + public function group_membership() + { + + $this->db->select('group_permisssion.group_id, group_permisssion.module_id'); + $this->db->from('group_permisssion'); + $this->db->join('group_membership', 'group_membership.group_id = group_permisssion.group_id'); + $this->db->where('group_membership.emp_id', $this->session->userdata('id')); + $this->db->where('group_membership.business_id', $this->session->userdata('business_id')); + $this->db->where('group_permisssion.is_active', '1'); + $query = $this->db->get(); + return $query->result(); + + + } + + + public function Employee_group($myArray) + { + //$this->db->select('group_permisssion.group_id, group_permisssion.module_id'); + $this->db->from('group_permisssion'); + $this->db->join('group_membership', 'group_membership.group_id = group_permisssion.group_id'); + $this->db->where('group_membership.group_id', $myArray[0]); + $this->db->where('group_membership.emp_id', $this->session->userdata('id')); + $this->db->where('group_permisssion.module_id', $myArray[1]); + $this->db->where('group_permisssion.is_active', '1'); + $query = $this->db->get(); + return true; + } + + //get user by id public function get_user($id) { @@ -106,6 +146,8 @@ public function is_user() } + + //is pro user public function is_pro_user() { diff --git a/application/modules/Business/controllers/Business.php b/application/modules/Business/controllers/Business.php index 43ecd53..af8f29b 100644 --- a/application/modules/Business/controllers/Business.php +++ b/application/modules/Business/controllers/Business.php @@ -87,18 +87,17 @@ public function create_business() $add_admin = $this->input->post('add_admin'); unset($data['add_admin']); } - - $mtable = "permit_modules"; - $mdata['module_id'] = $this->input->post('module_id'); - $mdata['uid'] = $this->input->post('uid'); - $mdata['is_active'] = 1; - - $add_module = $this->MY_Model->insert($mdata,$mtable); - unset($data['module_id']); - + $count = count($this->input->post('module_id')); + for($i=0;$i<$count;$i++) + { + $mdata['module_id'] = $this->input->post('module_id')[$i]; + $mdata['uid'] = $this->input->post('uid'); + $mdata['is_active'] = 1; + $add_module = $this->MY_Model->insert($mdata, "permit_modules"); + } + unset($data['module_id']); $create_business = $this->MY_Model->insert($data,$table); - // audit history if($create_business) { @@ -122,17 +121,21 @@ public function create_business() } - public function get_business($id) + public function get_business($id, $uid) { - //select dropdown values - $this->layout->set('stateData', $this->MY_Model->select('state')); - // select business value by id - $table="business"; - $businessData = $this->Business_model->get_business_by_md5_id($id); - - $this->layout->set('businessData', $businessData); - $this->layout->buffer('main_content', 'Business/edit_business'); - $this->layout->render('default_layout'); + + //select dropdown values + $this->layout->set('stateData', $this->MY_Model->select('state')); + + // select business value by id + $table="business"; + $businessData = $this->Business_model->get_business_by_md5_id($id); + $businessModuleData = $this->Business_model->get_business_modules($uid); + $this->layout->set('ModuleData', $this->MY_Model->select('modules')); + $this->layout->set('businessModuleData', $businessModuleData); + $this->layout->set('businessData', $businessData); + $this->layout->buffer('main_content', 'Business/edit_business'); + $this->layout->render('default_layout'); } @@ -164,16 +167,82 @@ public function edit_business() //fetch old_data before new_data update $this->audit->fetch('old_data'); - //insert new data - $mtable = "permit_modules"; - $mdata['module_id'] = $this->input->post('module_id'); - $mdata['uid'] = $this->input->post('uid'); - $mdata['is_active'] = 1; + //insert new data + $get_business_module_is_active = $this->Business_model->get_business_module_is_active($this->input->post('uid')); + + if(count($get_business_module_is_active) != 0) + { + $DbData = []; + foreach($get_business_module_is_active as $key => $val){ + array_push($DbData,$val->module_id); + } - $businessData = $this->MY_Model->edit_option($action, $id, $table); - unset($data['module_id']); + if($this->input->post('module_id') == null) + { + $module_id_array = []; + }else{ + $module_id_array = $this->input->post('module_id'); + } + + $differentValues1 = array_diff($module_id_array , $DbData); + $differentValues2 = array_diff($DbData , $module_id_array); + $final_array = array_merge($differentValues1, $differentValues2); + // echo "
";
+		// print_r($DbData); print_r($this->input->post('module_id')); print_r($final_array); 
+        // echo "
";
+       
+		//  die;
+
+        if(count($final_array) != 0)
+        {
+        	foreach($final_array as $key => $value){
+        		$check_if_exist = $this->Business_model->get_group_module_data_by_id($this->input->post('uid'), $value); 
+        		if($check_if_exist)
+        		{
+                   $this->Business_model->delete_group_module_data_by_id($this->input->post('uid') , $value);
+                   $data['is_active'] = 0; 
+                   $this->Business_model->diable_module_in_group_permisssion($value,  $data);
+                    //$group_id=$this->Business_model->get_group_id_by_module_id($value);
+					//$GroupIdData = [];
+					// foreach($group_id as $key => $val){
+			        //    array_push($GroupIdData,$val->group_id);
+					// }
+					// $this->Business_model->diable_group_in_group_membership($value,  $data);
+
+        		}else{
+        			$mdata['module_id'] = $value;
+					$mdata['uid'] = $this->input->post('uid');
+					$mdata['is_active'] = 1;	
+					$add_module = $this->MY_Model->insert($mdata, "permit_modules");
+                    $data['is_active'] = 1;
+					$this->Business_model->Enable_module_in_group_permisssion($value, $data);
+                    // $group_id=$this->Business_model->get_group_id_by_module_id($value);
+					// $GroupIdData = [];
+					// foreach($group_id as $key => $val){
+			        //    array_push($GroupIdData,$val->group_id);
+					// }
+					
+					
+        		}
+		            
+	            }
+        }
+       }
+        else
+        {       for($i=0;$iinput->post('module_id'));$i++)
+                 {
+        	        $mdata['module_id'] = $this->input->post('module_id')[$i];
+					$mdata['uid'] = $this->input->post('uid');
+					$mdata['is_active'] = 1;	
+					$add_module = $this->MY_Model->insert($mdata, "permit_modules");
+				 }	
+        }
+	
+ 
 
 
+
+        unset($action['module_id']);
 		$businessData = $this->MY_Model->edit_option($action, $id, $table);
 		if($businessData)
 		 {
@@ -236,7 +305,15 @@ public function edit_module_data()
   	$action['is_active'] = 1;
   	$add_module = $this->MY_Model->edit_option($action, $id, $table);
   	redirect('Business/module_list');
-  } 
+  }
+
+  public function getDeleteConfirmationPopup()
+  {
+  	 $data = array();
+     $htmlPage = $this->load->view('confirmation_popup.php',$data,true);
+     echo json_encode($htmlPage);
+  }
+
 
 }
 
diff --git a/application/modules/Business/models/Business_model.php b/application/modules/Business/models/Business_model.php
index 266d135..3a61c2f 100644
--- a/application/modules/Business/models/Business_model.php
+++ b/application/modules/Business/models/Business_model.php
@@ -34,4 +34,73 @@ public function delete_by_md5_id($id,$business_id,$table)
         return;
     } 
 
+    public function get_business_modules($business_id)
+    {
+        $this->db->select('permit_modules.*,modules.modules');
+        $this->db->from('permit_modules');
+        $this->db->join('modules', 'permit_modules.module_id = modules.id and modules.is_active = 1', 'left');
+        $this->db->where('uid', $business_id);
+        $this->db->where('permit_modules.is_active', 1);
+        $query = $this->db->get();
+        return $query->result();
+    }
+
+    public function get_business_module_is_active($business_id)
+    {
+        $this->db->select('module_id');
+        $this->db->from('permit_modules');
+        $this->db->where('uid', $business_id);
+        $this->db->where('is_active', 1);
+        $query = $this->db->get();
+        return $query->result();
+
+    }
+
+    public function get_group_module_data_by_id($id , $module_id = null)
+    {
+        $this->db->select('module_id');
+        $this->db->from('permit_modules');
+        $this->db->where('uid', $id);
+        if($module_id != null){   $this->db->where('module_id', $module_id); }
+        $this->db->where('is_active', 1);
+        $query = $this->db->get();
+        return $query->result();
+    }
+    public function delete_group_module_data_by_id($id , $module_id )
+    {
+        $this->db->where('uid', $id);
+        $this->db->where('module_id', $module_id);
+        $this->db->delete('permit_modules');
+        return;
+
+    }
+
+     public function diable_module_in_group_permisssion($module_id,  $data)
+    {
+        $this->db->where('module_id', $module_id);
+        $this->db->update('group_permisssion',  $data);
+        return;
+
+    }
+
+    public function Enable_module_in_group_permisssion($module_id,  $mdata)
+    {
+        $this->db->where('module_id', $module_id);
+        $this->db->update('group_permisssion',  $mdata);
+        return;
+
+    }
+
+    public function get_group_id_by_module_id($module_id)
+    {
+        $this->db->select('group_membership.group_id');
+        $this->db->from('group_membership');
+        $this->db->join('group_permisssion', 'group_permisssion.group_id = group_membership.group_id');
+        $this->db->where('module_id', $module_id);
+        $query = $this->db->get();
+        return $query->result();
+
+
+    }
+
 }
\ No newline at end of file
diff --git a/application/modules/Business/views/add_business.php b/application/modules/Business/views/add_business.php
index dbaa85b..46c9c78 100644
--- a/application/modules/Business/views/add_business.php
+++ b/application/modules/Business/views/add_business.php
@@ -1,6 +1,128 @@
 
 
 
+
+
+
+
+
 
 
 
@@ -56,8 +178,7 @@
- $value) { ?> diff --git a/application/modules/Business/views/business_list.php b/application/modules/Business/views/business_list.php index 893f173..a32b209 100644 --- a/application/modules/Business/views/business_list.php +++ b/application/modules/Business/views/business_list.php @@ -42,7 +42,6 @@ $value) { ?> - business_name; ?> email; ?> phone; ?> @@ -54,7 +53,7 @@ logo; ?> - +   diff --git a/application/modules/Business/views/confirmation_popup.php b/application/modules/Business/views/confirmation_popup.php new file mode 100644 index 0000000..d6f94c0 --- /dev/null +++ b/application/modules/Business/views/confirmation_popup.php @@ -0,0 +1,26 @@ + + + + + + diff --git a/application/modules/Business/views/edit_business.php b/application/modules/Business/views/edit_business.php index 7a67cec..bac02b0 100644 --- a/application/modules/Business/views/edit_business.php +++ b/application/modules/Business/views/edit_business.php @@ -1,7 +1,124 @@ + + + +
@@ -31,26 +148,58 @@ +
-
- +
+
-
+
+ + +
+ +
- + +
- -
+ + + +
+
@@ -58,16 +207,13 @@
- - -

-
- +
+
@@ -83,7 +229,7 @@
@@ -92,11 +238,8 @@
-
- -
@@ -104,17 +247,6 @@
- - - - - - - - - - -
@@ -122,19 +254,39 @@
-
+
diff --git a/application/modules/Business/views/module_list.php b/application/modules/Business/views/module_list.php index 8c0ba1d..d4db081 100644 --- a/application/modules/Business/views/module_list.php +++ b/application/modules/Business/views/module_list.php @@ -29,7 +29,7 @@   -   +   @@ -41,28 +41,29 @@ -
- - + + + + +