492 lines
20 KiB
PHP
492 lines
20 KiB
PHP
<?php
|
|
|
|
namespace App\Controllers;
|
|
|
|
use App\Helpers\MailHelper;
|
|
use App\Models\ServiceModel;
|
|
use App\Models\TemplateModel;
|
|
use App\Models\StaffModel;
|
|
use App\Models\ClientDocsModel;
|
|
use App\Models\ClientModel;
|
|
use App\Models\BusinessModel;
|
|
use App\Models\BranchModel;
|
|
use App\Models\ServiceGroupModel;
|
|
use App\Models\ClientBranchModel;
|
|
use App\Models\DocsStatusModel;
|
|
|
|
class MasterController extends BaseController
|
|
{
|
|
public $session;
|
|
protected $ServiceModel;
|
|
protected $TemplateModel;
|
|
protected $StaffModel;
|
|
protected $ClientDocsModel;
|
|
protected $ClientModel;
|
|
protected $BusinessModel;
|
|
protected $BranchModel;
|
|
protected $ServiceGroupModel;
|
|
protected $ClientBranchModel;
|
|
protected $DocsStatusModel;
|
|
|
|
|
|
public function __construct()
|
|
{
|
|
$this->session = session();
|
|
$this->ServiceModel = new ServiceModel();
|
|
$this->TemplateModel = new TemplateModel();
|
|
$this->StaffModel = new StaffModel();
|
|
$this->ClientDocsModel = new ClientDocsModel();
|
|
$this->ClientModel = new ClientModel();
|
|
$this->BusinessModel = new BusinessModel();
|
|
$this->BranchModel = new BranchModel();
|
|
$this->ServiceGroupModel = new ServiceGroupModel();
|
|
$this->ClientBranchModel = new ClientBranchModel();
|
|
$this->DocsStatusModel = new DocsStatusModel();
|
|
|
|
}
|
|
|
|
|
|
|
|
public function service_group_list()
|
|
{
|
|
if(!$this->session->has('is_staff_logged_in')){ return redirect()->to(base_url().'staff'); }
|
|
|
|
$data['serviceGroupList'] = $this->ServiceGroupModel->select('service_group.* , COUNT(services.service_id) as service_count')
|
|
->join('services', 'service_group.service_group_id = services.service_group_id', 'left')
|
|
->where('service_group.business_id',$this->session->get('logged_in_staff_business_id'))
|
|
->groupBy('service_group.service_group_id')
|
|
->findAll();
|
|
|
|
$staffdata = $this->StaffModel->where('staff_id',$this->session->get('is_staff_logged_in'))->get()->getRow();
|
|
echo view('layout/header', ['Data'=>$staffdata]);
|
|
echo view('service_group_list',$data);
|
|
echo view('layout/footer');
|
|
|
|
}
|
|
|
|
public function service_group_create()
|
|
{
|
|
if(!$this->session->has('is_staff_logged_in')){ return redirect()->to(base_url().'staff'); }
|
|
|
|
if($this->request->getmethod() == 'POST')
|
|
{
|
|
$serviceGroupData = $this->request->getVar();
|
|
if( isset($serviceGroupData['service_group_id']) ){
|
|
|
|
$this->ServiceGroupModel->where('service_group_id', $this->request->getVar('service_group_id') )->set($serviceGroupData)->update();
|
|
|
|
}else{
|
|
$serviceGroupData = $this->request->getVar();
|
|
$serviceGroupData['business_id'] = $this->session->get('logged_in_staff_business_id');
|
|
$serviceGroupData['branch_id'] = $this->session->get('logged_in_staff_branch_id');
|
|
|
|
$this->ServiceGroupModel->insert($serviceGroupData);
|
|
|
|
}
|
|
|
|
return redirect()->to(base_url()."service_group_list");
|
|
|
|
}
|
|
}
|
|
|
|
public function service_group_edit()
|
|
{
|
|
if(!$this->session->has('is_staff_logged_in')){ return redirect()->to(base_url().'staff'); }
|
|
|
|
$service_group_id = $this->request->getVar('service_group_id');
|
|
$data = $this->ServiceGroupModel->where('service_group_id',$service_group_id)->get()->getRow();
|
|
return $this->response->setJSON(['success' => true , 'data' =>$data]);
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public function service_list()
|
|
{
|
|
if(!$this->session->has('is_staff_logged_in')){ return redirect()->to(base_url().'staff'); }
|
|
|
|
$data['serviceList'] = $this->ServiceModel->select('services.* , service_group.group_name ,COUNT(template.template_id) as template_count')
|
|
->join('template', 'services.service_id = template.service_id', 'left')
|
|
->join('service_group', 'services.service_group_id = service_group.service_group_id', 'left')
|
|
->where('services.branch_id',$this->session->get('logged_in_staff_branch_id'))
|
|
->groupBy('services.service_id')
|
|
->orderBy('services.service_group_id')
|
|
->findAll();
|
|
$data['serviceGroupData'] = $this->ServiceGroupModel->where('is_active',1)->findall();
|
|
$staffdata = $this->StaffModel->where('staff_id',$this->session->get('is_staff_logged_in'))->get()->getRow();
|
|
echo view('layout/header', ['Data'=>$staffdata]);
|
|
echo view('service_list',$data);
|
|
echo view('layout/footer');
|
|
|
|
}
|
|
|
|
public function service_create()
|
|
{
|
|
if(!$this->session->has('is_staff_logged_in')){ return redirect()->to(base_url().'staff'); }
|
|
|
|
if($this->request->getmethod() == 'POST')
|
|
{
|
|
|
|
$serviceData = $this->request->getVar();
|
|
if( isset($serviceData['service_id']) ){
|
|
|
|
$this->ServiceModel->where('service_id', $this->request->getVar('service_id') )->set($serviceData)->update();
|
|
|
|
}else{
|
|
$serviceData = $this->request->getVar();
|
|
$serviceData['branch_id'] = $this->session->get('logged_in_staff_branch_id');
|
|
|
|
$this->ServiceModel->insert($serviceData);
|
|
}
|
|
|
|
return redirect()->to(base_url()."service_list");
|
|
|
|
}else{
|
|
|
|
|
|
$staffdata = $this->StaffModel->where('staff_id',$this->session->get('is_staff_logged_in'))->get()->getRow();
|
|
echo view('layout/header', ['Data'=>$staffdata]);
|
|
echo view('service_form');
|
|
echo view('layout/footer');
|
|
}
|
|
}
|
|
|
|
public function service_edit()
|
|
{
|
|
if(!$this->session->has('is_staff_logged_in')){ return redirect()->to(base_url().'staff'); }
|
|
|
|
$service_id = $this->request->getVar('service_id');
|
|
$data = $this->ServiceModel->where('service_id',$service_id)->get()->getRow();
|
|
|
|
return $this->response->setJSON(['success' => true , 'data' =>$data]);
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public function template_list()
|
|
{
|
|
if(!$this->session->has('is_staff_logged_in')){ return redirect()->to(base_url().'staff'); }
|
|
|
|
|
|
|
|
$data['templateData'] = $this->TemplateModel->select('template.* , services.service_name , service_group.group_name')
|
|
->join('services', 'services.service_id = template.service_id', 'left')
|
|
->join('service_group', 'template.service_group_id = service_group.service_group_id', 'left')
|
|
->findAll();
|
|
|
|
|
|
|
|
$staffdata = $this->StaffModel->where('staff_id',$this->session->get('is_staff_logged_in'))->get()->getRow();
|
|
echo view('layout/header', ['Data'=>$staffdata]);
|
|
echo view('template_list',$data);
|
|
echo view('layout/footer');
|
|
|
|
}
|
|
|
|
public function template_create()
|
|
{
|
|
if(!$this->session->has('is_staff_logged_in')){ return redirect()->to(base_url().'staff'); }
|
|
|
|
if($this->request->getmethod() == 'POST')
|
|
{
|
|
$templateData = $this->request->getVar();
|
|
|
|
if($this->request->getVar('template_id') != 'null'){
|
|
$id = $this->request->getVar('template_id');
|
|
unset($templateData['template_id']);
|
|
$this->TemplateModel->where('template_id', $id )->set($templateData)->update();
|
|
return $this->response->setJSON(['success' => true , 'service_id' =>$this->request->getVar('service_id')]);
|
|
}else{
|
|
unset($templateData['template_id']);
|
|
$this->TemplateModel->insert($templateData);
|
|
return $this->response->setJSON(['success' => true , 'service_id' =>$this->request->getVar('service_id')]);
|
|
}
|
|
|
|
|
|
|
|
}else{
|
|
|
|
$id = $this->request->getVar('service_id');
|
|
$data['AllServiceGroupData'] = $this->ServiceGroupModel->findAll();
|
|
//$data['AllServiceData'] = $this->ServiceModel->where('branch_id',$this->session->get('logged_in_staff_branch_id'))->findAll();
|
|
|
|
$staffdata = $this->StaffModel->where('staff_id',$this->session->get('is_staff_logged_in'))->get()->getRow();
|
|
echo view('layout/header', ['Data'=>$staffdata]);
|
|
echo view('template_form',$data);
|
|
echo view('layout/footer');
|
|
}
|
|
}
|
|
|
|
|
|
|
|
public function template_edit()
|
|
{
|
|
if(!$this->session->has('is_staff_logged_in')){ return redirect()->to(base_url().'staff'); }
|
|
|
|
$id = $this->request->getVar('template_id');
|
|
$data['templateData'] = $this->TemplateModel->where('md5(template_id)',$id)->get()->getRow();
|
|
|
|
$data['serviceData'] = $this->ServiceModel->where('service_id',$data['templateData']->service_id)->get()->getRow();
|
|
$data['AllServiceData'] = $this->ServiceModel->where('branch_id',$this->session->get('logged_in_staff_branch_id'))->findAll();
|
|
|
|
$data['serviceGroupData'] = $this->ServiceGroupModel->where('service_group_id',$data['templateData']->service_group_id)->get()->getRow();
|
|
$data['AllServiceGroupData'] = $this->ServiceGroupModel->where('branch_id',$this->session->get('logged_in_staff_branch_id'))->findAll();
|
|
|
|
$staffdata = $this->StaffModel->where('staff_id',$this->session->get('is_staff_logged_in'))->get()->getRow();
|
|
echo view('layout/header', ['Data'=>$staffdata]);
|
|
echo view('template_form',$data);
|
|
echo view('layout/footer');
|
|
|
|
}
|
|
|
|
public function template_preview()
|
|
{
|
|
if(!$this->session->has('is_staff_logged_in')){ return redirect()->to(base_url().'staff'); }
|
|
|
|
$id = $this->request->getVar('template_id');
|
|
$data['templateData'] = $this->TemplateModel->where('md5(template_id)',$id)->get()->getRow();
|
|
$data['serviceData'] = $this->ServiceModel->where('service_id',$data['templateData']->service_id)->get()->getRow();
|
|
|
|
$staffdata = $this->StaffModel->where('staff_id',$this->session->get('is_staff_logged_in'))->get()->getRow();
|
|
$data['body_html'] = $data['templateData']->body_html;
|
|
// echo view('layout/header', ['Data'=>$staffdata]);
|
|
echo view('template_preview',$data);
|
|
// echo view('layout/footer');
|
|
|
|
}
|
|
|
|
public function shared_docs_list()
|
|
{
|
|
if(!$this->session->has('is_staff_logged_in')){ return redirect()->to(base_url().'staff'); }
|
|
|
|
|
|
|
|
$data['doc_list'] = $this->ClientDocsModel->select('client_docs.* , services.service_name , service_group.group_name')
|
|
->join('template', 'template.template_id = client_docs.template_id', 'left')
|
|
->join('services', 'services.service_id = template.service_id', 'left')
|
|
->join('service_group', 'service_group.service_group_id = template.service_group_id', 'left')
|
|
->findAll();
|
|
|
|
$data['clientdata'] = $this->ClientBranchModel->select('client.name as client_name , client_branch.name as client_branch_name , client_branch.id as client_branch_id')
|
|
->join('client', 'client_branch.client_id = client.client_id', 'left')
|
|
->where('client.business_id',$this->session->get('logged_in_staff_business_id'))
|
|
->findAll();
|
|
$data['serviceGroupData'] = $this->ServiceGroupModel->findAll();
|
|
|
|
$staffdata = $this->StaffModel->where('staff_id',$this->session->get('is_staff_logged_in'))->get()->getRow();
|
|
echo view('layout/header', ['Data'=>$staffdata]);
|
|
echo view('share_docs',$data);
|
|
echo view('layout/footer');
|
|
|
|
}
|
|
|
|
public function get_service_data()
|
|
{
|
|
|
|
$service_group_id = $this->request->getVar('service_group_id');
|
|
$result = $this->ServiceModel->where('service_group_id',$service_group_id)->findAll();
|
|
|
|
return $this->response->setJSON(['count'=>count($result) , 'data'=>$result ]);
|
|
|
|
}
|
|
public function get_templates()
|
|
{
|
|
|
|
$result = $this->TemplateModel->where('service_id',$this->request->getVar('service_id'))->findAll();
|
|
|
|
return $this->response->setJSON(['count'=>count($result) , 'data'=>$result ]);
|
|
|
|
}
|
|
|
|
|
|
public function create_docs()
|
|
{
|
|
|
|
$docData = $this->request->getVar();
|
|
$docData['created_by'] = $this->session->has('is_staff_logged_in');
|
|
$docData['body_html'] = $this->TemplateModel->where('template_id',$this->request->getVar('template_id'))->get()->getRow()->body_html;
|
|
$docData['template_name'] = $this->TemplateModel->where('template_id',$this->request->getVar('template_id'))->get()->getRow()->template_name;
|
|
$insert = $this->ClientDocsModel->insert($docData);
|
|
|
|
if($insert){
|
|
|
|
$data['client_docs_id'] = $insert;
|
|
$data['is_staff'] = 1;
|
|
$data['created_by'] = $this->session->get('is_staff_logged_in');
|
|
$data['status'] = 'Created';
|
|
$this->DocsStatusModel->insert($data);
|
|
echo true;
|
|
} else {
|
|
echo false;
|
|
}
|
|
|
|
|
|
}
|
|
|
|
public function client_docs_preview()
|
|
{
|
|
if($this->session->has('is_staff_logged_in')){
|
|
$userData = $this->StaffModel->where('staff_id',$this->session->get('is_staff_logged_in'))->get()->getRow();
|
|
}else if($this->session->has('is_client_logged_in')){
|
|
$userData = $this->ClientBranchModel->where('id',$this->session->get('is_client_logged_in'))->get()->getRow();
|
|
}
|
|
|
|
$doc_id = $this->request->getVar('doc_id');
|
|
$data['docData'] = $this->ClientDocsModel->docPreview($doc_id);
|
|
|
|
$data['clientData'] = $this->ClientBranchModel->select('client.* , client_branch.*')
|
|
->join('client', 'client_branch.client_id = client.client_id', 'left')
|
|
->where('client_branch.id',$data['docData']->client_branch_id)->get()->getRow();
|
|
|
|
|
|
$data['body_html'] = $data['docData']->body_html;
|
|
foreach ($data['clientData'] as $key => $value) {
|
|
$placeHolder = '%'.$key.'%';
|
|
$data['body_html'] = str_replace($placeHolder,$value,$data['body_html']);
|
|
|
|
}
|
|
|
|
echo view('layout/header', ['Data'=>$userData]);
|
|
echo view('client_docs_preview',$data);
|
|
echo view('layout/footer');
|
|
|
|
}
|
|
|
|
public function change_doc_status()
|
|
{
|
|
try {
|
|
$doc_id = $this->request->getPost('doc_id');
|
|
$is_active = $this->request->getPost('is_active');
|
|
$data = [
|
|
'is_active' => $is_active
|
|
];
|
|
if($is_active == 1){
|
|
$MailHelper = new MailHelper();
|
|
|
|
$clientData = $this->ClientDocsModel->select('client.name , client_branch.email')
|
|
->join('client_branch', 'client_docs.client_branch_id = client_branch.id', 'left')
|
|
->join('client', 'client_branch.client_id = client.client_id', 'left')
|
|
->where('client_docs.id', $doc_id)->get()->getRow();
|
|
|
|
$url = '<a href="'.base_url().'">Click here</a>';
|
|
|
|
$businessData = $this->BranchModel->select('branches.* , business.business_name ')
|
|
->join('business', 'branches.business_id = business.business_id', 'left')
|
|
->where('branches.branch_id',$this->session->get('logged_in_staff_branch_id'))
|
|
->get()->getRow();
|
|
|
|
$MailHelper->send_url_email($clientData->email , $url , $clientData->name , $businessData->business_name, $businessData->email);
|
|
|
|
$statusData['client_docs_id'] = $doc_id;
|
|
$statusData['is_staff'] = 1;
|
|
$statusData['created_by'] = $this->session->get('is_staff_logged_in');
|
|
$statusData['status'] = 'Shared';
|
|
$this->DocsStatusModel->insert($statusData);
|
|
}else{
|
|
$statusData['client_docs_id'] = $doc_id;
|
|
$statusData['is_staff'] = 1;
|
|
$statusData['created_by'] = $this->session->get('is_staff_logged_in');
|
|
$statusData['status'] = 'Revert';
|
|
$this->DocsStatusModel->insert($statusData);
|
|
}
|
|
|
|
$updated = $this->ClientDocsModel->update($doc_id, $data);
|
|
|
|
if ($updated) {
|
|
return $this->response->setJSON(['status' => 'success','code' => 200,'data' => true],200);
|
|
} else {
|
|
$result = "No Match's";
|
|
return $this->response->setJSON(['status' => 'failed','code' => 404,'data' => $result],404);
|
|
}
|
|
} catch (\Exception $exception) {
|
|
return $this->response->setJSON(['status' => 'failed','code' => 500,'data' => $exception],500);
|
|
}
|
|
}
|
|
|
|
|
|
public function doc_generate_otp()
|
|
{
|
|
try {
|
|
$mobile_no = $this->request->getPost('mobile_no');
|
|
|
|
$client_data = $this->ClientModel->where('mobile_no', $mobile_no )->first();
|
|
|
|
|
|
if($client_data){
|
|
|
|
$id = $this->request->getPost('doc_id');
|
|
$data = [
|
|
'otp' => '123456',
|
|
];
|
|
$update = $this->ClientDocsModel->update($id, $data);
|
|
|
|
if($update){
|
|
return json_encode(true);
|
|
}
|
|
} else {
|
|
return false;
|
|
}
|
|
} catch (\Exception $e) {
|
|
// Handle any exceptions that occur during execution
|
|
return $this->response->setJSON(['status' => 'error', 'code' => 500, 'message' => $e->getMessage()], 500);
|
|
}
|
|
}
|
|
|
|
|
|
public function doc_verify_otp()
|
|
{
|
|
try {
|
|
$id = $this->request->getPost('doc_id');
|
|
$otp = $this->request->getPost('otp');
|
|
|
|
$client_doc_data = $this->ClientDocsModel->where('id', $id )->where('otp', $otp)->first();
|
|
$data = ['otp' =>'' ,'rejection_reason' =>''];
|
|
|
|
if($client_doc_data){
|
|
|
|
$data['is_approved'] = $this->request->getPost('is_approved');
|
|
$data['ip_address'] = $this->request->getPost('clientIp');
|
|
|
|
$update = $this->ClientDocsModel->update($id , $data);
|
|
|
|
if($this->session->has('is_client_logged_in')){
|
|
$logged_user = $this->session->get('is_client_logged_in');
|
|
$statusData['is_staff'] = 0;
|
|
}else{
|
|
$logged_user = $this->session->get('is_staff_logged_in');
|
|
$statusData['is_staff'] = 1;
|
|
}
|
|
$statusData['client_docs_id'] = $id;
|
|
$statusData['created_by'] = $logged_user;
|
|
$statusData['status'] = 'Approved';
|
|
$statusData['note'] = $this->request->getPost('clientIp');
|
|
$this->DocsStatusModel->insert($statusData);
|
|
|
|
if($update){
|
|
return json_encode(true);
|
|
}
|
|
} else {
|
|
|
|
|
|
return json_encode('');
|
|
}
|
|
} catch (\Exception $e) {
|
|
// Handle any exceptions that occur during execution
|
|
return $this->response->setJSON(['status' => 'error', 'code' => 500, 'message' => $e->getMessage()], 500);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|