session = session(); $this->StaffModel = new StaffModel(); $this->ClientModel = new ClientModel(); $this->ClientBranchModel = new ClientBranchModel(); $this->ServiceModel = new ServiceModel(); $this->BusinessModel = new BusinessModel(); $this->BranchModel = new BranchModel(); $this->TemplateModel = new TemplateModel(); } public function set_business_in_session($business_id){ $this->session->set('logged_in_staff_business_id', $business_id); return json_encode(true); } public function login() { if($this->session->has('is_staff_logged_in')){ return redirect()->to(base_url().'staff_list'); } if($this->request->getmethod() == 'POST') { $email = $this->request->getVar('email'); $password = $this->request->getVar('password'); $staffdata = $this->StaffModel->verifyEmail($email); if($staffdata) { if($staffdata['is_active'] == 0) { $this->session->setTempdata('error','Staff Deactivated',3); return redirect()->to(base_url()."staff"); } if (password_verify($password, $staffdata['password'])) { $this->session->set('is_staff_logged_in',$staffdata['staff_id']); $this->session->set('logged_in_staff_role',$staffdata['role']); $this->session->set('logged_in_staff_name',$staffdata['name']); // $this->session->set('logged_in_staff_branch_id',$staffdata['branch_id']); if($staffdata['role'] == 'Admin'){ $this->session->set('logged_in_staff_business_id', 0); }else{ $this->session->set('logged_in_staff_business_id',json_decode($staffdata['business_id'])[0]); } return redirect()->to(base_url().'shared_docs_list'); } else{ $this->session->setTempdata('error','Email or Password is invalid',3); return redirect()->to(base_url()."staff"); } }else{ $this->session->setTempdata('error','Email or Password is invalid',3); return redirect()->to(base_url()."staff"); } } //get method return view('staff_login'); } public function staff_logout() { session()->remove('is_staff_logged_in'); session()->remove('logged_in_staff_branch_id'); session()->destroy(); return redirect()->to(base_url()."staff"); } // staff crud public function staff_list() { if(!$this->session->has('is_staff_logged_in')){ return redirect()->to(base_url().'staff'); } $data['staffList'] = $this->StaffModel->getStaffWithBusinessAndBranch(session()->get('is_staff_logged_in'), $this->session->get('logged_in_staff_branch_id')); $staffdata = $this->StaffModel->where('staff_id',$this->session->get('is_staff_logged_in'))->get()->getRow(); $data['business_list'] = $this->BusinessModel->findAll(); echo view('layout/header', ['Data'=>$staffdata]); echo view('staff_list',$data); echo view('layout/footer'); } public function staff_create() { if(!$this->session->has('is_staff_logged_in')){ return redirect()->to(base_url().'staff'); } if($this->request->getmethod() == 'POST') { $email = $this->request->getVar('email'); $staff = $this->StaffModel->where('email', $email)->first(); if($staff){ return json_encode('mail_exists'); }else{ $staffData = $this->request->getVar(); $staffData['created_by'] = $this->session->get('is_staff_logged_in'); $staffData['business_id'] = json_encode($this->request->getVar('business_id')); $insert = $this->StaffModel->save($staffData); if($insert) { return json_encode('staff_created'); } } }else{ $staffdata = $this->StaffModel->where('staff_id',$this->session->get('is_staff_logged_in'))->get()->getRow(); $data['business'] = $this->BusinessModel->where('isactive', 1)->findAll(); $data['page_heading'] = "Create Staff"; $data['business_list'] = $this->BusinessModel->findAll(); echo view('layout/header', ['Data'=>$staffdata]); echo view('staff_form', $data); echo view('layout/footer'); } } public function staff_edit($staff_id = null) { if(!$this->session->has('is_staff_logged_in')){ return redirect()->to(base_url().'staff'); } if($this->request->getmethod() == 'POST') { $staffData = $this->request->getVar(); $staffData['updated_by'] = $this->session->get('is_staff_logged_in'); $staff_id = $this->request->getVar('id'); $staffData['business_id'] = json_encode($this->request->getVar('business_id')); $this->StaffModel->where('staff_id', $staff_id )->set($staffData)->update(); return json_encode('edit_success'); }else{ $data['staffData'] = $this->StaffModel->where('md5(staff.staff_id)', $this->request->getVar('staff_id') )->get()->getRow(); $staffdata = $this->StaffModel->where('staff_id',$this->session->get('is_staff_logged_in'))->get()->getRow(); $data['business'] = $this->BusinessModel->where('isactive', 1)->findAll(); $data['page_heading'] = "Edit Staff"; $data['business_list'] = $this->BusinessModel->findAll(); echo view('layout/header', ['Data'=>$staffdata]); echo view('staff_form',$data); echo view('layout/footer'); } } public function business_view($staff_id) { $staffdata = $this->StaffModel->where('staff_id',$staff_id)->first(); $businessData =[]; $businessIds = json_decode($staffdata['business_id']); if (isset($businessIds) && is_array($businessIds)) { foreach ($businessIds as $key => $value) { $businessData[] = $this->BusinessModel->where('business_id', $value)->first(); } }else{ $businessData[] = $this->BusinessModel->where('business_id', $businessIds)->first(); } return json_encode($businessData); } // client crud public function client_list() { if(!$this->session->has('is_staff_logged_in')){ return redirect()->to(base_url().'staff'); } $business_id = $this->session->get('logged_in_staff_business_id'); $data['clientListForList'] = $this->ClientModel->findAll(); $data['clientList'] = $this->ClientModel->select('client.*, service_group.business_id') ->join('client_branch', 'client_branch.client_id = client.client_id') ->join('client_docs', 'client_docs.client_branch_id = client_branch.id') ->join('template', 'template.template_id = client_docs.template_id') ->join('service_group', 'service_group.service_group_id = template.service_group_id') ->findAll(); $staffdata = $this->StaffModel->where('staff_id',$this->session->get('is_staff_logged_in')) ->get() ->getRow(); $data['business_list'] = $this->BusinessModel->findAll(); echo view('layout/header', ['Data'=>$staffdata]); echo view('client_list',$data); echo view('layout/footer'); } public function client_edit($client_idd) { if(!$this->session->has('is_staff_logged_in')){ return redirect()->to(base_url().'staff'); } if($this->request->getmethod() == 'POST') { //update staff details $clientData = $this->request->getVar(); $clientData['updated_by'] = $this->session->get('is_staff_logged_in'); $client_id = $this->request->getVar('client_id'); $client_update =$this->ClientModel->where('client_id', $client_id )->set($clientData)->update(); if($client_update){ return json_encode(true); }else{ return ; } }else{ // $data['clientData'] = $this->ClientModel->where('md5(client.client_id)', $this->request->getVar('client_id') )->get()->getRow(); $data['clientData'] = $this->ClientModel->where('client_id', $client_idd )->get()->getRow(); // print_r($data);die; $staffdata = $this->StaffModel->where('staff_id',$this->session->get('is_staff_logged_in'))->get()->getRow(); return json_encode($data['clientData']); // echo view('layout/header', ['Data'=>$staffdata]); // echo view('client_form',$data); // echo view('layout/footer'); } } public function client_create() { if(!$this->session->has('is_staff_logged_in')){ return redirect()->to(base_url().'staff'); } if($this->request->getmethod() == 'POST') { $clientData = $this->request->getVar(); $clientData['created_by'] = $this->session->get('is_staff_logged_in'); $clientData['business_id'] = $this->session->get('logged_in_staff_business_id'); // $business= $this->BranchModel->select('*') // ->join('business' , 'branches.business_id = business.business_id', 'left') // ->where('branches.branch_id ',$clientData['branch_id']) // ->first(); // $business= $this->BusinessModel->select('*') // ->where('business_id ',$clientData['business_id']) // ->first(); // $clientData['business_id'] = $business['business_id']; // $insert = $this->ClientModel->save($clientData); $insert = $this->ClientModel->insert($clientData); if($insert) { $data['client_id'] = $insert; $data['email'] = $clientData['branch_email']; $data['country'] = $clientData['country']; $data['name'] = $clientData['branch_name']; $data['address'] = $clientData['address']; $data['city'] = $clientData['city']; $data['state'] = $clientData['state']; $data['pin_code'] = $clientData['pin_code']; $data['mobile_no'] = $clientData['branch_mobile_no']; $data['gst_no'] = $clientData['gst_no']; $data['sms'] = $clientData['sms']; $data['whatsapp'] = $clientData['whatsapp']; $branch_insert = $this->ClientBranchModel->insert($data); if($branch_insert){ return json_encode(true); }else{ return ; } } }else{ $staffdata = $this->StaffModel->where('staff_id',$this->session->get('is_staff_logged_in'))->get()->getRow(); echo view('layout/header', ['Data'=>$staffdata]); echo view('client_form'); echo view('layout/footer'); } } public function staff_profile() { if(!$this->session->has('is_staff_logged_in')){ return redirect()->to(base_url().'staff'); } if($this->request->getmethod() == 'POST') { //update staff profile $staffData = $this->request->getVar(); // print_r($staffData); $staffData['updated_by'] = $this->session->get('is_staff_logged_in'); $staff_id = $this->request->getVar('staff_id'); $this->StaffModel->where('staff_id', $staff_id )->set($staffData)->update(); echo true; }else{ $staffdata = $this->StaffModel->where('staff_id',$this->session->get('is_staff_logged_in'))->get()->getRow(); $business_list = []; foreach (json_decode($staffdata->business_id) as $key => $value) { $business = $this->BusinessModel->where('business_id', $value)->first(); if ($business) { $business_list[] = $business; } } echo view('layout/header', ['Data'=>$staffdata]); echo view('staff_profile',['staff'=>$staffdata, 'business_list'=> $business_list]); echo view('layout/footer'); } } public function change_staff_password($staff_id) { $old_password =$this->request->getVar('old_password'); $new_password =$this->request->getVar('new_password'); $confirm_password =$this->request->getVar('confirm_password'); $staff = $this->StaffModel->where('staff_id',$staff_id)->first(); $data_old_password = $staff['password']; if (!password_verify($old_password, $data_old_password)) { $response = array( 'status' => 'error', 'message' => 'Old Password Not Match...' ); return json_encode($response); } if($new_password != $confirm_password){ $response = array( 'status' => 'error', 'message' => 'New Password And Confirm Password Not Match...' ); return json_encode($response); } //$hashedPassword = password_hash($new_password, PASSWORD_DEFAULT); $data['password'] = $new_password; if ($this->StaffModel->update($staff_id, $data)) { $response = array( 'status' => 'success', 'message' => 'Password Change Succuessfully' ); return json_encode($response); } } public function forgot_password() { if($this->request->getmethod() == 'POST') { $email = $this->request->getVar('email'); $staff_data = $this->StaffModel->where('email', $email)->find(); if ($staff_data) { $otp = rand(1000 , 9999); $MailHelper = new MailHelper(); $MailHelper->send_otp_email($this->request->getVar('email') , $otp ); $data['status'] = 'success'; $data['otp'] = $otp; echo json_encode($data); } else { $data['status'] = 'failed'; echo json_encode($data); } }else{ return view('forgot_password.php'); } } public function verify_otp() { if($this->request->getmethod() == 'POST') { $otp = $this->request->getVar('otp'); $verify_otp = $this->request->getVar('verify_otp'); if ($otp == $verify_otp) { $email = $this->request->getVar('email'); $data = $this->StaffModel->where('email', $email)->find(); if ($data) { $this->session->setTempdata('staff_id',$data[0]['staff_id'],3); $this->session->setTempdata('email',$data[0]['email'],3); $this->session->setTempdata('mail_success', "OTP verified sucessfully",3); return view('reset_password.php'); } } else { $this->session->setTempdata('error', "You entered wrong OTP.Please retry",3); return view('forgot_password.php'); } } } public function change_password() { if($this->request->getmethod() == 'POST') { $staffData = $this->request->getVar(); // print_r($staffData);die; $staff_id = $this->request->getVar('staff_id'); $this->StaffModel->where('staff_id', $staff_id )->set($staffData)->update(); $this->session->setTempdata('mail_success', "Password set sucessfully",3); return redirect()->to(base_url()."staff"); } } public function staff_password_update() { if($this->request->getmethod() == 'POST') { $staffData = $this->request->getVar(); $staff_id = $this->request->getVar('id'); $this->StaffModel->where('staff_id', $staff_id )->set($staffData)->update(); $this->session->setTempdata('mail_success', "Password set sucessfully",3); return redirect()->to(base_url()."staff_list"); } } public function status_staff() { try { $staff_id = $this->request->getPost('staff_id'); $is_active = $this->request->getPost('is_active'); $data = [ 'is_active' => $is_active ]; $updated = $this->StaffModel->update($staff_id, $data); if ($updated) { return $this->respond(['status' => 'success','code' => 200,'data' => true],200); } else { $result = "No Match's"; return $this->respond(['status' => 'failed','code' => 404,'data' => $result],404); } } catch (\Exception $exception) { return $this->respond(['status' => 'failed','code' => 500,'data' => $exception],500); } } }