edms2023/app/Http/Controllers/Admin/DocumentsController.php

165 lines
4.9 KiB
PHP
Raw Normal View History

2023-09-14 20:59:46 +00:00
<?php
namespace App\Http\Controllers\Admin;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use App\WorkflowDocument;
use App\WorkflowType;
use App\Priority;
use App\DeliveryType;
use App\DocumentType;
use App\Contact;
use App\Department;
use App\Setting;
use App\User;
use App\WorkflowDocumentUser;
use App\WorkflowDocumentFile;
use App\WorkflowDocumentSender;
use App\WorkflowDocumentProcess;
use App\UserNotification;
use App\Promotion;
use Session;
use DB;
use File;
class DocumentsController extends Controller
{
/**
* Create a new controller instance.
*
* @return void
*/
public function __construct()
{
}
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
$setting = Setting::first();
$limit_val = (isset($setting->data_limit_per_page) && $setting->data_limit_per_page > 0) ? $setting->data_limit_per_page : 100;
$limit_val = 10;
$workflow_documents = new WorkflowDocument;
$search = request()->search ?? '';
if(request()->has('search') && strlen($search) > 0)
{
$workflow_documents = $workflow_documents->where(function($q) use($search){
$q->where('registration_number', 'LIKE', '%'.$search.'%')
->orWhere('temporary_registration_number', 'LIKE', '%' . $search . '%');
});
$search = request()->search;
}
$workflow_documents = $workflow_documents->where('is_deleted', 0)
->orderBy('id', 'desc')
->paginate($limit_val);
$workflow_types = WorkflowType::orderBy('id', 'asc')->get();
return view('admin.documents.index', compact('workflow_documents', 'workflow_types', 'search'));
}
public function archives()
{
$workflow_documents = DB::table('workflow_documents')
->where('is_deleted',1)
->orderBy('id', 'desc')
->get();
$workflow_types = WorkflowType::orderBy('id', 'asc')->get();
return view('admin.documents.archives', compact('workflow_documents', 'workflow_types'));
}
/**
* Remove the specified resource from storage.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function archive($id)
{
$id=base64_decode($id);
$workflow_document = WorkflowDocument::findOrFail($id);
$workflow_document_update = WorkflowDocument::where('id',$id)->update(['is_deleted'=>1]);
if($workflow_document_update):
Session::flash('success_message', 'Workflow document has been deleted successfully');
return redirect()->route('present-documents');
else:
Session::flash('error_message', 'We are having some problem. Please try later.');
return redirect()->route('present-documents');
endif;
}
public function destroy($id)
{
$id=base64_decode($id);
$workflow_document = WorkflowDocument::findOrFail($id);
if($workflow_document){
$process = WorkflowDocumentProcess::where('workflow_document_id', $workflow_document->id)->get();
if($process){
foreach($process as $pro){
$proc = WorkflowDocumentProcess::findOrFail($pro->id);
$proc->delete();
}
}
$files = WorkflowDocumentFile::where('workflow_document_id', $workflow_document->id)->get();
if($files){
foreach($files as $f_data){
$file = WorkflowDocumentFile::findOrFail($f_data->id);
if($file->delete())
if(File::exists($file))
unlink(public_path($file->place_of_the_documents.'/'.$file->document_name));
}
}
$Sender = WorkflowDocumentSender::where('workflow_document_id', $workflow_document->id)->get();
if($Sender){
foreach($Sender as $s_data){
$sd_data = WorkflowDocumentSender::findOrFail($s_data->id);
$sd_data->delete();
}
}
$users = WorkflowDocumentUser::where('workflow_document_id', $workflow_document->id)->get();
if($users){
foreach($users as $u_data){
$user = WorkflowDocumentUser::findOrFail($u_data->id);
$user->delete();
}
}
$delete_documents = $workflow_document->delete();
if($delete_documents):
Session::flash('success_message', 'Workflow document has been deleted successfully');
return redirect()->back();
else:
Session::flash('error_message', 'We are having some problem. Please try later.');
return redirect()->back();
endif;
}else{
Session::flash('error_message', 'We are having some problem. Please try later.');
return redirect()->back();
}
}
public function statusupdate($id)
{
$id=base64_decode($id);
$find_department = Department::findOrFail($id);
if($find_department->status==1)
$status=0;
else
$status=1;
$input=[
'status'=>$status
];
$saved_data=$find_department->fill($input)->save();
if($saved_data):
Session::flash('success_message', 'Department has been updated successfully');
return redirect()->route('workflow_documents');
else:
Session::flash('error_message', 'We are having some problem. Please try later.');
return redirect()->route('workflow_documents');
endif;
}
}