165 lines
4.9 KiB
PHP
165 lines
4.9 KiB
PHP
<?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;
|
|
}
|
|
}
|