additional implementation of the authentication method and route selection, based on the type of user and start of creation of the client's display structure
This commit is contained in:
parent
5dca96d473
commit
ff6e6a91ad
33
app/Http/Controllers/ClientController.php
Normal file
33
app/Http/Controllers/ClientController.php
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
|
||||
use App\Models\Plant;
|
||||
use App\Models\CompanyProject;
|
||||
|
||||
|
||||
class ClientController extends Controller
|
||||
{
|
||||
public function receiveProjectsClient()
|
||||
{
|
||||
$client = Auth::user()->user_id;
|
||||
|
||||
$recevePlantClient = Plant::where('user_id', $client)->get();
|
||||
|
||||
// Extrai os plant_id da coleção $recevePlantClient
|
||||
$plantIds = $recevePlantClient->pluck('plant_id');
|
||||
|
||||
// Busca todos os CompanyProject que têm um plant_id dentro da lista $plantIds
|
||||
$allProjectsClient = CompanyProject::whereIn('plant_id', $plantIds)->get();
|
||||
|
||||
return view('userClient.dashboardClient',compact('allProjectsClient'));
|
||||
}
|
||||
|
||||
public function receiveManageAssetsClient(){
|
||||
// return view()
|
||||
|
||||
}
|
||||
}
|
||||
29
app/Http/Controllers/ClienteController.php
Normal file
29
app/Http/Controllers/ClienteController.php
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Models\Plant;
|
||||
use Illuminate\Http\Request;
|
||||
use App\Models\CompanyProject;
|
||||
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
|
||||
class ClienteController extends Controller
|
||||
{
|
||||
//
|
||||
public function receiveProjectsClient()
|
||||
{
|
||||
$client = Auth::user()->user_id;
|
||||
|
||||
$recevePlantClient = Plant::where('user_id', $client)->get();
|
||||
|
||||
// Extrai os plant_id da coleção $recevePlantClient
|
||||
$plantIds = $recevePlantClient->pluck('plant_id');
|
||||
|
||||
// Busca todos os CompanyProject que têm um plant_id dentro da lista $plantIds
|
||||
$allProjectsClient = CompanyProject::whereIn('plant_id', $plantIds)->get();
|
||||
|
||||
|
||||
return view('dashboardClient',compact('allProjectsClient'));
|
||||
}
|
||||
}
|
||||
|
|
@ -34,9 +34,11 @@
|
|||
// use DataTables;
|
||||
|
||||
|
||||
class CreateProjectController extends Controller {
|
||||
class CreateProjectController extends Controller
|
||||
{
|
||||
|
||||
public function receiveUnits($numberProject) {
|
||||
public function receiveUnits($numberProject)
|
||||
{
|
||||
$PlantData = CompanyProject::where('company_projects_id', $numberProject)->first();
|
||||
|
||||
if (!$PlantData) {
|
||||
|
|
@ -57,7 +59,8 @@ public function receiveUnits($numberProject) {
|
|||
}
|
||||
|
||||
|
||||
public function deleteFurtherTasks(Request $request) {
|
||||
public function deleteFurtherTasks(Request $request)
|
||||
{
|
||||
$receiveDataEquipment = Equipment::where('equipment_id', $request->equipmentID)->first();
|
||||
// Buscar os registros que correspondem ao equipmentID e que têm further_tasks_id nos selectedTasks
|
||||
$tasksToDelete = OrderEquipmentTasks::where('equipment_id', $request->equipmentID)
|
||||
|
|
@ -88,7 +91,8 @@ public function deleteFurtherTasks(Request $request) {
|
|||
return redirect()->back()->with('success', 'Ordem de execução do equipamento: ' . $receiveDataEquipment->equipment_tag . ' Atulizada!');
|
||||
}
|
||||
|
||||
public function addFurtherTasks(Request $request) {
|
||||
public function addFurtherTasks(Request $request)
|
||||
{
|
||||
// Recebe e organiza os dados do equipameto recebido : ($request->equipmentID) e organiza em asc de acordo com a Ordem de execução
|
||||
$equipmentId = $request->equipmentID;
|
||||
$tasksToReorder = OrderEquipmentTasks::where('equipment_id', $equipmentId)
|
||||
|
|
@ -150,7 +154,8 @@ public function addFurtherTasks(Request $request) {
|
|||
}
|
||||
|
||||
|
||||
public function receiveEquipmentToAssociateTasks(Request $request) {
|
||||
public function receiveEquipmentToAssociateTasks(Request $request)
|
||||
{
|
||||
// dd($request);
|
||||
|
||||
foreach ($request->equipment as $equipment) {
|
||||
|
|
@ -164,7 +169,8 @@ public function receiveEquipmentToAssociateTasks(Request $request) {
|
|||
return redirect()->back()->with('success', 'Equipametos associados a Obra com Sucesso !');
|
||||
}
|
||||
|
||||
public function receiveUnitsForExcelTemplate($numberProject) {
|
||||
public function receiveUnitsForExcelTemplate($numberProject)
|
||||
{
|
||||
$receveCompanyProject = CompanyProject::where('company_projects_id', $numberProject)->first();
|
||||
$recevePlant = Plant::where('plant_id', $receveCompanyProject->plant_id)->first();
|
||||
$receveUnits = Unit::where('plant_id', $recevePlant->plant_id)->get();
|
||||
|
|
@ -183,7 +189,8 @@ public function receiveUnitsForExcelTemplate($numberProject) {
|
|||
return $this->createDownloadResponse($spreadsheet, 'Valves_Template.xlsx');
|
||||
}
|
||||
|
||||
protected function createDownloadResponse($spreadsheet, $filename) {
|
||||
protected function createDownloadResponse($spreadsheet, $filename)
|
||||
{
|
||||
// Create a writer object
|
||||
$writer = new Xlsx($spreadsheet);
|
||||
// Create a StreamedResponse with a callback
|
||||
|
|
@ -200,7 +207,8 @@ function () use ($writer) {
|
|||
return $response;
|
||||
}
|
||||
|
||||
public function finishCreatingProject($numberProject) {
|
||||
public function finishCreatingProject($numberProject)
|
||||
{
|
||||
// recebe atraves de sessao toda a vez quem entra no componente 'SelectElementalTasksInWonkstation' para selecionar as tarefas de cada Workstation
|
||||
$receiveAllFurtherTasks = session('receiveAllFurtherTasks');
|
||||
$receiveElementalTasks = session('receiveElementalTasks');
|
||||
|
|
@ -283,7 +291,8 @@ public function finishCreatingProject($numberProject) {
|
|||
}
|
||||
}
|
||||
|
||||
public function deleteWorkstation($name) {
|
||||
public function deleteWorkstation($name)
|
||||
{
|
||||
$workstation = ConstructionWorkstation::where('name_workstations', $name)->first();
|
||||
$removeAcountUserWorkstation = User::where('user_name', $workstation->name_workstations)->first();
|
||||
|
||||
|
|
@ -327,7 +336,8 @@ public function deleteWorkstation($name) {
|
|||
return back()->with('danger', 'Posto de Trabalho não encontrado!');
|
||||
}
|
||||
|
||||
public function removeProjectEquipment(Request $request) {
|
||||
public function removeProjectEquipment(Request $request)
|
||||
{
|
||||
|
||||
$equipment = Equipment::find($request->EquipmentID);
|
||||
|
||||
|
|
@ -341,7 +351,8 @@ public function removeProjectEquipment(Request $request) {
|
|||
|
||||
return back()->with('success', 'Equipamento retirado da obra !');
|
||||
}
|
||||
public function EditEquipmentsProjects(Request $request) {
|
||||
public function EditEquipmentsProjects(Request $request)
|
||||
{
|
||||
// dd($request);
|
||||
// Localiza o equipment pelo numberProject
|
||||
$equipment = Equipment::find($request->equipmentId);
|
||||
|
|
@ -450,7 +461,8 @@ public function EditEquipmentsProjects(Request $request) {
|
|||
->with('taskExecutionOrders', $taskExecutionOrders);
|
||||
}
|
||||
|
||||
public function showJson($id) {
|
||||
public function showJson($id)
|
||||
{
|
||||
$attributes = SpecificAttributesEquipmentType::where('equipment_id', $id)->get();
|
||||
$OrdemTasks = OrderEquipmentTasks::where('equipment_id', $id)->get();
|
||||
$allElementalTasks = ElementalTasks::all();
|
||||
|
|
@ -462,7 +474,8 @@ public function showJson($id) {
|
|||
]);
|
||||
}
|
||||
|
||||
public function receveTasksWorkstationPlanning($WorkstationId) {
|
||||
public function receveTasksWorkstationPlanning($WorkstationId)
|
||||
{
|
||||
$workstationsAssociationTasks = WorkstationsAssociationTasks::where('id_workstations', $WorkstationId)->get();
|
||||
|
||||
return response()->json([
|
||||
|
|
@ -471,7 +484,8 @@ public function receveTasksWorkstationPlanning($WorkstationId) {
|
|||
}
|
||||
|
||||
|
||||
public function createWorkStations(Request $request) {
|
||||
public function createWorkStations(Request $request)
|
||||
{
|
||||
// Pega o número de estações de trabalho do request
|
||||
$numberWorkstations = $request->numberWorkstations;
|
||||
|
||||
|
|
@ -520,7 +534,8 @@ public function createWorkStations(Request $request) {
|
|||
|
||||
|
||||
// Funcao apenas para retornar os dados necessarios para a view criar uma Obra.
|
||||
public function createProjectForStep1() {
|
||||
public function createProjectForStep1()
|
||||
{
|
||||
$companies = User::where('type_users', 3)->get();
|
||||
// Apos terminar não vai ficar step 1
|
||||
return view('projectsClients/createProject', ['step' => 1], ['companies' => $companies]);
|
||||
|
|
@ -528,7 +543,8 @@ public function createProjectForStep1() {
|
|||
|
||||
// Progress Bar
|
||||
//Devolve para a primeira para na Descrição do projecto apenas user com ID 3, quer dizer que apenas as "empresas"
|
||||
public function showStep1($company_projects_id) {
|
||||
public function showStep1($company_projects_id)
|
||||
{
|
||||
// $projects = CompanyProject::find($company_projects_id);
|
||||
|
||||
$projects = CompanyProject::with('user')->find($company_projects_id);
|
||||
|
|
@ -541,16 +557,19 @@ public function showStep1($company_projects_id) {
|
|||
}
|
||||
|
||||
// Se forem alterados dados dos Detalhes da Obra, vai ser alterado
|
||||
public function EditprocessStep1(Request $request) {
|
||||
public function EditprocessStep1(Request $request)
|
||||
{
|
||||
}
|
||||
|
||||
public function removePendingEquipment($id) {
|
||||
public function removePendingEquipment($id)
|
||||
{
|
||||
$equipment = PendingEquipment::findOrFail($id);
|
||||
$equipment->delete();
|
||||
return back()->with('success', 'Equipamento pendente removido com sucesso!');
|
||||
}
|
||||
|
||||
public function CreateNewEquipmentFromPendingEquipment(Request $request, $id) {
|
||||
public function CreateNewEquipmentFromPendingEquipment(Request $request, $id)
|
||||
{
|
||||
$checkPendingEquipment = PendingEquipment::findOrFail($id);
|
||||
|
||||
$counter = 2;
|
||||
|
|
@ -589,7 +608,8 @@ public function CreateNewEquipmentFromPendingEquipment(Request $request, $id) {
|
|||
}
|
||||
|
||||
|
||||
public function processStep1(Request $request) {
|
||||
public function processStep1(Request $request)
|
||||
{
|
||||
// Validação...
|
||||
$installationId = $request->input('installation_id');
|
||||
|
||||
|
|
@ -637,7 +657,8 @@ public function processStep1(Request $request) {
|
|||
->with('success', 'Detalhes, Projecto criado com sucesso');
|
||||
}
|
||||
|
||||
public function showStep2($company_projects_id) {
|
||||
public function showStep2($company_projects_id)
|
||||
{
|
||||
// Verifique se a etapa 1 foi concluída
|
||||
|
||||
// if (!session('form_data.step1')) {
|
||||
|
|
@ -705,7 +726,8 @@ public function showStep2($company_projects_id) {
|
|||
->with('receiveNumberProject', $project);
|
||||
}
|
||||
|
||||
public function createEquipmentManual(Request $request) {
|
||||
public function createEquipmentManual(Request $request)
|
||||
{
|
||||
// EquipmentAmbit
|
||||
// *** Recebe a Instalação(Plant), com base no número da Obra Criada
|
||||
$receivePlant = DB::table('plants')
|
||||
|
|
@ -819,18 +841,24 @@ public function createEquipmentManual(Request $request) {
|
|||
->with('success', 'Equipamento criado com sucesso')
|
||||
->with('listEquipmentsProjects', $listEquipmentsProjects);
|
||||
}
|
||||
public function receiveIdEquipment(Equipment $equipment) {
|
||||
public function receiveIdEquipment(Equipment $equipment)
|
||||
{
|
||||
// return response()->json($equipment);
|
||||
return view('projectsClients/articulated_2', ['equipment' => $equipment]);
|
||||
}
|
||||
|
||||
public function processStep2(Request $request) {
|
||||
public function processStep2(Request $request)
|
||||
{
|
||||
|
||||
// Valide e processe os dados do formulário
|
||||
$file = $request->file('documento');
|
||||
|
||||
// Recebe a id do Projecto criado
|
||||
$company_projects_id = $request->numberProject;
|
||||
|
||||
// Inicializa o contador para ispt_number
|
||||
$isptNumber = 1;
|
||||
|
||||
// Certifique-se de que um arquivo foi enviado
|
||||
if ($file) {
|
||||
// Carregue o arquivo Excel
|
||||
|
|
@ -914,13 +942,15 @@ public function processStep2(Request $request) {
|
|||
$newEquipament->equipment_tag = $datas['tag'];
|
||||
$newEquipament->equipment_serial_number = $datas['n_serie'];
|
||||
$newEquipament->equipment_model = $datas['modelo'];
|
||||
$newEquipament->ispt_number = $isptNumber;
|
||||
$newEquipament->company_projects_id = $company_projects_id;
|
||||
|
||||
$newEquipament->save();
|
||||
|
||||
|
||||
$countNewEquipment++;
|
||||
|
||||
$isptNumber++;
|
||||
|
||||
// Guardo os valores de 'id' e do 'tipo de equipamento' que nosso novo equipamento acabado de criar
|
||||
$receveEquipment_ID = $newEquipament->equipment_id;
|
||||
$receveEquipament_type_ID = $newEquipament->equipment_type_id;
|
||||
|
|
@ -995,7 +1025,8 @@ public function processStep2(Request $request) {
|
|||
return redirect('/test3');
|
||||
}
|
||||
|
||||
public function showStep3($company_projects_id) {
|
||||
public function showStep3($company_projects_id)
|
||||
{
|
||||
$equipments = Equipment::where('company_projects_id', $company_projects_id)
|
||||
->get();
|
||||
|
||||
|
|
@ -1049,7 +1080,8 @@ public function showStep3($company_projects_id) {
|
|||
->with('futherTasks', $futherTasks);
|
||||
}
|
||||
|
||||
public function workstationsAssociationTasks(Request $request) {
|
||||
public function workstationsAssociationTasks(Request $request)
|
||||
{
|
||||
// dd($request);
|
||||
|
||||
$workStation = ConstructionWorkstation::where('id_workstations', $request->idWorkStation)->first();
|
||||
|
|
@ -1105,7 +1137,8 @@ public function workstationsAssociationTasks(Request $request) {
|
|||
return back()->with('success', 'Posto de trabalho : ' . $workStation->name_workstations . ' atualizado com sucesso!');
|
||||
}
|
||||
|
||||
public function processStep3(Request $request) {
|
||||
public function processStep3(Request $request)
|
||||
{
|
||||
// Valide e processe os dados do formulário
|
||||
// ...
|
||||
session(['form_data.step3' => $request->all()]);
|
||||
|
|
@ -1115,7 +1148,8 @@ public function processStep3(Request $request) {
|
|||
// ...
|
||||
}
|
||||
|
||||
public function index() {
|
||||
public function index()
|
||||
{
|
||||
// $results = DB::table('equipaments')
|
||||
// ->join('specific_attributes_equipament_types', 'equipaments.equipment_ID', '=', 'specific_attributes_equipament_types.tb_equipament_id')
|
||||
// ->join('general_attributes_equipaments', 'specific_attributes_equipament_types.specific_Attributes_Equipment_Type_ID', '=', 'general_attributes_equipaments.general_Attributes_Equipment_ID')
|
||||
|
|
@ -1159,13 +1193,15 @@ public function index() {
|
|||
}
|
||||
|
||||
|
||||
public function listCompanies() {
|
||||
public function listCompanies()
|
||||
{
|
||||
$companies = User::where('type_users', 3)->get();
|
||||
return view('projectsClients/createProject', ['companies' => $companies]);
|
||||
}
|
||||
|
||||
|
||||
public function createProject(Request $request) {
|
||||
public function createProject(Request $request)
|
||||
{
|
||||
|
||||
// Validação...
|
||||
$installationId = $request->input('installation_id');
|
||||
|
|
@ -1201,7 +1237,8 @@ public function createProject(Request $request) {
|
|||
|
||||
}
|
||||
|
||||
public function storeProject(Request $request) {
|
||||
public function storeProject(Request $request)
|
||||
{
|
||||
if ($request->input('company_id') == 'new') {
|
||||
$company = new CompanyProject; // Substitua "Company" pelo nome do seu modelo de empresas
|
||||
$company->name = $request->input('new_company_name');
|
||||
|
|
@ -1215,7 +1252,8 @@ public function storeProject(Request $request) {
|
|||
// Agora, você pode usar $company_id ao criar o projeto
|
||||
}
|
||||
|
||||
public function getByUserNif(Request $request) {
|
||||
public function getByUserNif(Request $request)
|
||||
{
|
||||
|
||||
// dd(Plant::where('user_id', $request->input('user_id'))->get());
|
||||
|
||||
|
|
@ -1225,7 +1263,8 @@ public function getByUserNif(Request $request) {
|
|||
return response()->json($installations);
|
||||
}
|
||||
|
||||
public function getAmbits($equipmentType) {
|
||||
public function getAmbits($equipmentType)
|
||||
{
|
||||
|
||||
$ambits = DB::table('ambits_equipments')
|
||||
->select('ambits_equipments.*')
|
||||
|
|
@ -1234,7 +1273,8 @@ public function getAmbits($equipmentType) {
|
|||
return response()->json($ambits);
|
||||
}
|
||||
|
||||
public function getAttributes($id) {
|
||||
public function getAttributes($id)
|
||||
{
|
||||
$equipment = Equipment::with('specificAttributes')->find($id);
|
||||
return response()->json($equipment->specificAttributes);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -34,7 +34,7 @@ public function getDataEquipment(Request $request)
|
|||
|
||||
// Query padrão que todas as dataTables recebem, a partir dele fazemos os filt
|
||||
$query = Equipment::with('equipmentType', 'unit')
|
||||
->select(['equipment_id', 'equipment_tag', 'unit_id', 'equipment_type_id']);
|
||||
->select(['equipment_id','ispt_number' ,'equipment_tag', 'unit_id', 'equipment_type_id']);
|
||||
|
||||
// Consultas para a Criacao da Obra, Ambas vao ser diferentes, pois na creacao, recebes os equipamentos por obra, porem no portifolio vamos buscar todos.
|
||||
if ($numberProject) {
|
||||
|
|
@ -96,13 +96,6 @@ public function getDataEquipment(Request $request)
|
|||
return $actionBtn;
|
||||
})
|
||||
|
||||
// ->addColumn('action', function ($equipment) use ($numberProject) {
|
||||
// // Lógica para a coluna de ação com o link correto
|
||||
// $actionBtn = '<a title="Detalhes do equipamento" href="' . route('test11', ['equipmentID' => $equipment->equipment_id]) . '"><i class="fa-solid fa-eye text-primary"></i></a>';
|
||||
// return $actionBtn;
|
||||
// })
|
||||
|
||||
|
||||
->editColumn('unit_id', function ($equipment) {
|
||||
// Isto irá substituir 'unit_id' pelo 'unit_name' associado
|
||||
return $equipment->unit->unit_name ?? 'N/A';
|
||||
|
|
|
|||
|
|
@ -16,18 +16,64 @@ class CheckUserType
|
|||
* @param \Closure(\Illuminate\Http\Request): (\Symfony\Component\HttpFoundation\Response) $next
|
||||
*/
|
||||
|
||||
public function handle(Request $request, Closure $next, $routeType)
|
||||
public function handle(Request $request, Closure $next)
|
||||
{
|
||||
$userType = auth()->user()->userType->type_user;
|
||||
|
||||
if ($routeType == 'enterWorkstation' && $userType != 'Técnico') {
|
||||
return redirect()->route('home'); // ou qualquer rota padrão para redirecionar
|
||||
if (!auth()->check()) {
|
||||
return redirect()->route('login');
|
||||
}
|
||||
|
||||
if ($routeType == 'home' && $userType != 'Super_Administrador') {
|
||||
return redirect()->route('enterWorkstation'); // ou qualquer rota padrão para redirecionar
|
||||
$userType = auth()->user()->userType->type_user;
|
||||
$currentRouteName = $request->route()->getName();
|
||||
|
||||
// Permitir que o Super_Administrador acesse qualquer rota
|
||||
if ($userType === 'Super_Administrador') {
|
||||
return $next($request);
|
||||
}
|
||||
|
||||
// Obter as rotas permitidas para o tipo de usuário atual
|
||||
$allowedRoutes = $this->getAllowedRoutesForUserType($userType);
|
||||
|
||||
// Verificar se a rota atual está permitida para o tipo de usuário
|
||||
if (!in_array($currentRouteName, $allowedRoutes)) {
|
||||
// Redirecionar para a rota padrão do tipo de usuário
|
||||
return redirect()->route($this->getDefaultRouteForUserType($userType));
|
||||
}
|
||||
|
||||
return $next($request);
|
||||
}
|
||||
|
||||
/**
|
||||
* Retorna as rotas permitidas para um dado tipo de usuário.
|
||||
*/
|
||||
protected function getAllowedRoutesForUserType($userType)
|
||||
{
|
||||
switch ($userType) {
|
||||
case 'Técnico':
|
||||
return ['enterWorkstation', 'getEquipmentData', 'receiveAnswersEquipment'];
|
||||
case 'Empresa':
|
||||
return ['dashboardClient', 'manageAssetsClient'];
|
||||
// Adicione mais casos conforme necessário
|
||||
default:
|
||||
return [];
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Retorna a rota padrão para um dado tipo de usuário.
|
||||
*/
|
||||
protected function getDefaultRouteForUserType($userType)
|
||||
{
|
||||
switch ($userType) {
|
||||
case 'Super_Administrador':
|
||||
return 'home';
|
||||
case 'Técnico':
|
||||
return 'enterWorkstation';
|
||||
case 'Empresa':
|
||||
return 'dashboardClient';
|
||||
// Adicione mais casos conforme necessário
|
||||
default:
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
|
|||
398
resources/views/Templates/templateClient.blade.php
Normal file
398
resources/views/Templates/templateClient.blade.php
Normal file
|
|
@ -0,0 +1,398 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<meta name="csrf-token" content="{{ csrf_token() }}">
|
||||
|
||||
<link rel="stylesheet" href="{{ asset('assets/dist/css/adminlte.css') }}">
|
||||
|
||||
<link rel="stylesheet"
|
||||
href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,400i,700&display=fallback">
|
||||
|
||||
<!-- Font Awesome -->
|
||||
{{-- <link rel="stylesheet" href="{{ asset('assets/plugins/fontawesome-free/css/all.min.css') }}"> --}}
|
||||
<!-- Font Awesome 6.1.1 -->
|
||||
{{-- <link rel="stylesheet" href="{{ asset('plugins/fontawesome-611/css/all.min.css') }}"> --}}
|
||||
<link rel="stylesheet" href="{{ asset('assets/plugins/fontawesome-6.4.2/css/all.css') }}">
|
||||
|
||||
|
||||
<!-- Ionicons -->
|
||||
<link rel="stylesheet" href="https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css">
|
||||
<!-- Tempusdominus Bootstrap 4 -->
|
||||
<link rel="stylesheet"
|
||||
href="{{ asset('assets/plugins/tempusdominus-bootstrap-4/css/tempusdominus-bootstrap-4.min.css') }}">
|
||||
<!-- iCheck -->
|
||||
<link rel="stylesheet" href="{{ asset('assets/plugins/icheck-bootstrap/icheck-bootstrap.min.css') }}">
|
||||
<!-- JQVMap -->
|
||||
<link rel="stylesheet" href="{{ asset('assets/plugins/jqvmap/jqvmap.min.css') }}">
|
||||
<!-- Theme style -->
|
||||
|
||||
<!-- overlayScrollbars -->
|
||||
<link rel="stylesheet" href="{{ asset('assets/plugins/overlayScrollbars/css/OverlayScrollbars.min.css') }}">
|
||||
<!-- Daterange picker -->
|
||||
<link rel="stylesheet" href="{{ asset('assets/plugins/daterangepicker/daterangepicker.css') }}">
|
||||
<!-- summernote -->
|
||||
<link rel="stylesheet" href="{{ asset('assets/plugins/summernote/summernote-bs4.min.css') }}">
|
||||
<!-- jQuery UI -->
|
||||
<link rel="stylesheet" href="{{ asset('assets/plugins/jquery-ui/jquery-ui.css') }}">
|
||||
|
||||
<!-- daterange picker -->
|
||||
<link rel="stylesheet" href="{{ asset('assets/plugins/daterangepicker/daterangepicker.css') }}">
|
||||
|
||||
<!-- DataTables -->
|
||||
<link rel="stylesheet" href="{{ asset('assets/plugins/datatables-bs4/css/dataTables.bootstrap4.min.css') }}">
|
||||
|
||||
<link rel="stylesheet"
|
||||
href="{{ asset('assets/plugins/datatables-responsive/css/responsive.bootstrap4.min.css') }}">
|
||||
|
||||
<link rel="stylesheet" href="{{ asset('assets/plugins/datatables-buttons/css/buttons.bootstrap4.min.css') }}">
|
||||
|
||||
<!-- jQuery -->
|
||||
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
|
||||
<!-- DataTables CSS -->
|
||||
<link rel="stylesheet" type="text/css" href="https://cdn.datatables.net/1.11.3/css/dataTables.bootstrap4.min.css">
|
||||
<!-- DataTables JavaScript -->
|
||||
<script src="https://cdn.datatables.net/1.11.3/js/jquery.dataTables.min.js"></script>
|
||||
<!-- DataTables Bootstrap 4 JavaScript -->
|
||||
<script src="https://cdn.datatables.net/1.11.3/js/dataTables.bootstrap4.min.js"></script>
|
||||
<!-- DataTables Buttons JavaScript -->
|
||||
<script src="https://cdn.datatables.net/buttons/1.7.1/js/dataTables.buttons.min.js"></script>
|
||||
|
||||
|
||||
{{-- Graficos para gestao com chart.js --}}
|
||||
<script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
|
||||
|
||||
<script src="https://cdn.jsdelivr.net/npm/chartjs-plugin-datalabels"></script>
|
||||
|
||||
|
||||
|
||||
<style>
|
||||
#isptGroupLink:hover {
|
||||
color: #EAF3F6;
|
||||
}
|
||||
|
||||
.spin {
|
||||
animation: spin 1s infinite linear;
|
||||
}
|
||||
|
||||
@keyframes spin {
|
||||
from {
|
||||
transform: rotate(0deg);
|
||||
}
|
||||
|
||||
to {
|
||||
transform: rotate(360deg);
|
||||
}
|
||||
}
|
||||
|
||||
/* ***************************** */
|
||||
.accordion {
|
||||
overflow-anchor: none;
|
||||
}
|
||||
|
||||
.accordion>.card {
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.accordion>.card:not(:last-of-type) {
|
||||
border-bottom: 0;
|
||||
border-bottom-right-radius: 0;
|
||||
border-bottom-left-radius: 0;
|
||||
}
|
||||
|
||||
.accordion>.card:not(:first-of-type) {
|
||||
border-top-left-radius: 0;
|
||||
border-top-right-radius: 0;
|
||||
}
|
||||
|
||||
.accordion>.card>.card-header {
|
||||
border-radius: 0;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
/* Nome de baixo do circulo */
|
||||
.steps {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
margin-bottom: 2rem;
|
||||
position: relative;
|
||||
|
||||
}
|
||||
|
||||
/* Nome dentro do circulo de ainda não de chegar o progress bar */
|
||||
.step-button {
|
||||
width: 50px;
|
||||
height: 50px;
|
||||
border-radius: 50%;
|
||||
border: none;
|
||||
background-color: var(--prm-gray);
|
||||
transition: .4s;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
text-align: center;
|
||||
justify-content: center;
|
||||
|
||||
}
|
||||
|
||||
.step-button[aria-expanded="true"] {
|
||||
width: 60px;
|
||||
height: 60px;
|
||||
background-color: var(--prm-color);
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.done {
|
||||
background-color: var(--prm-color);
|
||||
color: #fff;
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
.step-item {
|
||||
z-index: 10;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
#progress {
|
||||
-webkit-appearance: none;
|
||||
position: absolute;
|
||||
width: 95%;
|
||||
z-index: 5;
|
||||
height: 10px;
|
||||
margin-left: 18px;
|
||||
margin-bottom: 18px;
|
||||
}
|
||||
|
||||
/* to customize progress bar */
|
||||
#progress::-webkit-progress-value {
|
||||
background-color: var(--prm-color);
|
||||
transition: .5s ease;
|
||||
}
|
||||
|
||||
#progress::-webkit-progress-bar {
|
||||
background-color: var(--prm-gray);
|
||||
|
||||
}
|
||||
|
||||
#editImg {
|
||||
width: 215px;
|
||||
height: 215px;
|
||||
object-fit: cover;
|
||||
/* Isso fará com que a imagem cubra completamente a área sem distorcer */
|
||||
}
|
||||
</style>
|
||||
|
||||
</head>
|
||||
|
||||
<body class="hold-transition sidebar-mini layout-fixed">
|
||||
|
||||
<!-- Wrapper -->
|
||||
<div class="wrapper">
|
||||
|
||||
<!-- Preloader -->
|
||||
|
||||
<div class="preloader flex-column justify-content-center align-items-center">
|
||||
<img class="animation__shake spin" src="{{ asset('img/logo4.0.jpg') }}" alt="AdminLTELogo" height="60"
|
||||
width="60">
|
||||
</div>
|
||||
|
||||
<!-- Navbar -->
|
||||
<nav class="main-header navbar navbar-expand navbar-white navbar-light">
|
||||
<!-- Left navbar links -->
|
||||
<ul class="navbar-nav">
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" data-widget="pushmenu" href="#" role="button"><i
|
||||
class="fas fa-bars"></i></a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
|
||||
|
||||
|
||||
<!-- Right navbar links -->
|
||||
<ul class="navbar-nav ml-auto align-items-center">
|
||||
<li class="nav-item my-2">
|
||||
<form id="language-form" action="{{ route('language.switch') }}" method="post"
|
||||
class="form-inline">
|
||||
@csrf
|
||||
<select class="custom-select" name="locale" onchange="this.form.submit()">
|
||||
<option value="en" {{ app()->getLocale() == 'en' ? 'selected' : '' }}>English</option>
|
||||
<option value="pt" {{ app()->getLocale() == 'pt' ? 'selected' : '' }}>Português
|
||||
</option>
|
||||
</select>
|
||||
</form>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" data-widget="fullscreen" href="#" role="button">
|
||||
<i class="fas fa-expand-arrows-alt"></i>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
</nav>
|
||||
<!-- /.navbar -->
|
||||
|
||||
<!-- Main Sidebar Container -->
|
||||
<aside class="main-sidebar sidebar-dark-primary elevation-4">
|
||||
<!-- Brand Logo -->
|
||||
<a href="#" class="brand-link" style="pointer-events: none;">
|
||||
<img src="{{ asset('/img/ispt.jpg') }}" alt="AdminLTE Logo" class="brand-image img-circle elevation-3"
|
||||
style="opacity: .8">
|
||||
<span class="brand-text font-weight-light">ISPT 4.0</span>
|
||||
</a>
|
||||
|
||||
<!-- Sidebar -->
|
||||
<div class="sidebar">
|
||||
<!-- Sidebar user panel (optional) -->
|
||||
<div class="user-panel mt-3 pb-3 mb-3 d-flex">
|
||||
{{-- Verifica se esta logado , se estiver , busca os dados do utilizador atual. --}}
|
||||
@if (Auth::check())
|
||||
<div class="image">
|
||||
<img class="img-circle elevation-2 imgProfile editImg"
|
||||
src="{{ asset('user_logos/' . (Auth::user()->user_logo ?? 'logoISPT4.0.jpg')) }}"
|
||||
alt="User Logo">
|
||||
</div>
|
||||
<div class="info">
|
||||
<a href="{{ route('usersProfiles', ['id' => Auth::user()->user_id]) }}"
|
||||
class="d-block">{{ Auth::user()->userType?->type_user }}</a>
|
||||
</div>
|
||||
@endif
|
||||
</div>
|
||||
|
||||
<!-- Sidebar Menu -->
|
||||
<nav class="mt-2">
|
||||
<ul class="nav nav-pills nav-sidebar flex-column" data-widget="treeview" role="menu"
|
||||
data-accordion="false">
|
||||
<!-- Add icons to the links using the .nav-icon class
|
||||
with font-awesome or any other icon font library -->
|
||||
<li class="nav-item">
|
||||
<a href="{{ route('dashboardClient') }}" class="nav-link active">
|
||||
<i class="nav-icon fas fa-tachometer-alt"></i>
|
||||
<p> {{ __('messages.dashboard.dashboard') }} </p>
|
||||
</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a href="{{ route('manageAssetsClient') }}" class="nav-link">
|
||||
<i class="fa-solid fa-file-edit"></i>
|
||||
<p> {{ __('messages.portfolio.top_view_part.management_assets') }}</p>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<br>
|
||||
<form method="POST" action="{{ route('logout') }}">
|
||||
@csrf
|
||||
<button type="submit" class="btn btn-danger">Terminar sessão</button>
|
||||
</form>
|
||||
|
||||
<!-- /.Single menu item -->
|
||||
</ul>
|
||||
</nav>
|
||||
<!-- /.sidebar-menu -->
|
||||
</div>
|
||||
<!-- /.sidebar -->
|
||||
</aside>
|
||||
|
||||
<div class="content-wrapper">
|
||||
@yield('Main-content')
|
||||
{{-- <section class="content">
|
||||
<div class="container-fluid">
|
||||
<div class="row justify-content-center">
|
||||
<div class="col-md-12">
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
./col-md-12
|
||||
</div>
|
||||
./row justify-content-center
|
||||
</div>
|
||||
./container-fluid
|
||||
</section> --}}
|
||||
{{-- ./content --}}
|
||||
</div>
|
||||
{{-- ./content-wrapper --}}
|
||||
|
||||
<!-- Control Sidebar -->
|
||||
<aside class="control-sidebar control-sidebar-dark">
|
||||
<!-- Control sidebar content goes here -->
|
||||
</aside>
|
||||
<!-- /.control-sidebar -->
|
||||
|
||||
</div>
|
||||
<!-- ./ Wrapper -->
|
||||
|
||||
<footer class="main-footer">
|
||||
<strong>Copyright © 2017-{{ date('Y') }} <a href="https://www.isptgroup.com" id="isptGroupLink">ISPT
|
||||
-
|
||||
Industrial Services, SA</a>.</strong>
|
||||
Todos os direitos reservados.
|
||||
<div class="float-right d-none d-sm-inline-block">
|
||||
<b>Versão</b> {{ config('app.version') }}
|
||||
</div>
|
||||
</footer>
|
||||
</body>
|
||||
|
||||
@yield('scriptsTemplateAdmin')
|
||||
{{-- Scripts-Plugins --}}
|
||||
|
||||
<script src="{{ asset('assets/dist/js/bootstrap.bundle.min.js') }}"></script>
|
||||
|
||||
<script src="{{ asset('assets/plugins/jquery/jquery.min.js') }}"></script>
|
||||
<!-- jQuery UI 1.11.4 -->
|
||||
<script src="{{ asset('assets/plugins/jquery-ui/jquery-ui.min.js') }}"></script>
|
||||
<!-- Resolve conflict in jQuery UI tooltip with Bootstrap tooltip -->
|
||||
<script>
|
||||
$.widget.bridge('uibutton', $.ui.button)
|
||||
</script>
|
||||
<!-- Bootstrap 4 -->
|
||||
<script src="{{ asset('assets/plugins/bootstrap/js/bootstrap.bundle.min.js') }}"></script>
|
||||
<script src="{{ asset('assets/plugins/bootstrap/js/bootstrap.bundle.min.js') }}"></script>
|
||||
|
||||
|
||||
<!-- ChartJS -->
|
||||
<script src="{{ asset('assets/plugins/chart.js/Chart.min.js') }}"></script>
|
||||
<!-- Sparkline -->
|
||||
<script src="{{ asset('assets/plugins/sparklines/sparkline.js') }}"></script>
|
||||
<!-- JQVMap -->
|
||||
<script src="{{ asset('assets/plugins/jqvmap/jquery.vmap.min.js') }}"></script>
|
||||
<script src="{{ asset('assets/plugins/jqvmap/maps/jquery.vmap.usa.js') }}"></script>
|
||||
<!-- jQuery Knob Chart -->
|
||||
<script src="{{ asset('assets/plugins/jquery-knob/jquery.knob.min.js') }}"></script>
|
||||
<!-- daterangepicker -->
|
||||
<script src="{{ asset('assets/plugins/moment/moment.min.js') }}"></script>
|
||||
<script src="{{ asset('assets/plugins/daterangepicker/daterangepicker.js') }}"></script>
|
||||
<!-- Tempusdominus Bootstrap 4 -->
|
||||
<script src="{{ asset('assets/plugins/tempusdominus-bootstrap-4/js/tempusdominus-bootstrap-4.min.js') }}"></script>
|
||||
<!-- Summernote -->
|
||||
<script src="{{ asset('assets/plugins/summernote/summernote-bs4.min.js') }}"></script>
|
||||
<!-- overlayScrollbars -->
|
||||
<script src="{{ asset('assets/plugins/overlayScrollbars/js/jquery.overlayScrollbars.min.js') }}"></script>
|
||||
<!-- AdminLTE App -->
|
||||
<script src="{{ asset('assets/dist/js/adminlte.js') }}"></script>
|
||||
<!-- AdminLTE for demo purposes -->
|
||||
{{-- <script src="{{ asset('js/demo.js') }}"></script>
|
||||
<!-- AdminLTE dashboard demo (This is only for demo purposes) -->
|
||||
<script src="{{ asset('js/pages/dashboard.js') }}"></script> --}}
|
||||
<!-- jQuery Script fadeIn fadeOut for the dropdown -->
|
||||
<script src="{{ asset('assets/plugins/datatables/jquery.dataTables.min.js') }}"></script>
|
||||
|
||||
<script src="{{ asset('assets/plugins/datatables-bs4/js/dataTables.bootstrap4.min.js') }}"></script>
|
||||
<script src="{{ asset('assets/plugins/datatables-responsive/js/dataTables.responsive.min.js') }}"></script>
|
||||
<script src="{{ asset('assets/plugins/datatables-responsive/js/responsive.bootstrap4.min.js') }}"></script>
|
||||
|
||||
<script src="{{ asset('assets/plugins/datatables-buttons/js/dataTables.buttons.min.js') }}"></script>
|
||||
<script src="{{ asset('assets/plugins/datatables-buttons/js/buttons.bootstrap4.min.js') }}"></script>
|
||||
<script src="{{ asset('assets/plugins/jszip/jszip.min.js') }}"></script>
|
||||
<script src="{{ asset('assets/plugins/pdfmake/pdfmake.min.js') }}"></script>
|
||||
<script src="{{ asset('assets/plugins/pdfmake/vfs_fonts.js') }}"></script>
|
||||
|
||||
|
||||
<script src="{{ asset('assets/plugins/datatables-buttons/js/buttons.html5.min.js') }}"></script>
|
||||
<script src="{{ asset('assets/plugins/datatables-buttons/js/buttons.print.min.js') }}"></script>
|
||||
<script src="{{ asset('assets/plugins/datatables-buttons/js/buttons.colVis.min.js') }}"></script>
|
||||
|
||||
</html>
|
||||
|
|
@ -1220,6 +1220,7 @@ class="btn btn-info">Baixar Template</a>
|
|||
<thead>
|
||||
<tr>
|
||||
<th>ID</th>
|
||||
<th>Numero Ispt</th>
|
||||
<th>Tag</th>
|
||||
<th>Fabrica</th>
|
||||
<th>Tipo</th>
|
||||
|
|
@ -1441,6 +1442,10 @@ class="btn btn-primary float-right">Seguinte</a>
|
|||
data: 'equipment_id',
|
||||
name: 'equipment_id'
|
||||
},
|
||||
{
|
||||
data: 'ispt_number',
|
||||
name: 'ispt_number'
|
||||
},
|
||||
{
|
||||
data: 'equipment_tag',
|
||||
name: 'equipment_tag'
|
||||
|
|
|
|||
|
|
@ -7,8 +7,8 @@
|
|||
|
||||
<div class="card card-primary">
|
||||
<div class="card-header "> <!-- Flex container with spaced between items -->
|
||||
<h3 class="float-left">Numero ispt</h3> <!-- This item will be on the left -->
|
||||
<h3 class="float-right">{{ $dataEquipment->equipment_tag }}</h3> <!-- This item will be on the right -->
|
||||
<h3 class="float-left"><b>Número ISPT:</b> {{ $dataEquipment->ispt_number }}</h3> <!-- This item will be on the left -->
|
||||
<h3 class="float-right"> <b>Tag:</b> {{ $dataEquipment->equipment_tag }}</h3> <!-- This item will be on the right -->
|
||||
</div>
|
||||
|
||||
<div class="card-body">
|
||||
|
|
|
|||
113
resources/views/userClient/dashboardClient.blade.php
Normal file
113
resources/views/userClient/dashboardClient.blade.php
Normal file
|
|
@ -0,0 +1,113 @@
|
|||
@extends('Templates/templateClient')
|
||||
|
||||
@section('Main-content')
|
||||
<!-- Content Wrapper. Contains page content -->
|
||||
|
||||
<!-- Content Header (Page header) -->
|
||||
<div class="content-header">
|
||||
<div class="container-fluid">
|
||||
<div class="row mb-2">
|
||||
<div class="col-sm-6">
|
||||
<h1 class="m-0" style="color:#09255C">Dashboard</h1>
|
||||
</div><!-- /.col -->
|
||||
<div class="col-sm-6">
|
||||
<ol class="breadcrumb float-sm-right">
|
||||
<li class="breadcrumb-item"><a href="#"></a>Dashboard</li>
|
||||
</ol>
|
||||
</div><!-- /.col -->
|
||||
</div><!-- /.row -->
|
||||
</div><!-- /.container-fluid -->
|
||||
</div>
|
||||
<!-- /.content-header -->
|
||||
|
||||
<!-- Main content -->
|
||||
<section class="content">
|
||||
<div class="container-fluid">
|
||||
|
||||
<div class="row">
|
||||
|
||||
{{-- Execucao --}}
|
||||
<div class="col-md">
|
||||
<div class="card card-row card-default">
|
||||
<!-- Card header -->
|
||||
<div class="card-header info-box bg-warning">
|
||||
<span class="info-box-icon"><i class="fas fa-file-alt"></i></span>
|
||||
|
||||
<div class="info-box-content">
|
||||
<span class="info-box-text">{{ __('messages.dashboard.on_going.description') }}</span>
|
||||
<span {{-- class="info-box-number">{{ $CompanyProject->where('order_project', 3)->count() }}</span> --}} <span class="progress-description">
|
||||
{{ __('messages.dashboard.on_going.text') }}
|
||||
</span>
|
||||
</div>
|
||||
<!-- /.info-box-content -->
|
||||
</div>
|
||||
<!-- /.info-box -->
|
||||
<!-- /.Card header-->
|
||||
<div class="card-body">
|
||||
@foreach ($allProjectsClient as $project)
|
||||
@if ($project->order_project == 3)
|
||||
<div class="card card-secondary card-outline">
|
||||
<div class="card-header">
|
||||
<h5 class="progress-description">{{ $project->company_project_description }}
|
||||
</h5>
|
||||
<div class="card-tools">
|
||||
<a href="{{ route('ExecutionProject', ['ProjectId' => $project->company_projects_id]) }}"
|
||||
class="btn btn-tool">
|
||||
<i class="fa-solid fa-eye" style="color:rgb(62, 62, 62)"></i>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
||||
@endforeach
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{{-- ./Execucao --}}
|
||||
|
||||
{{-- Concluidas --}}
|
||||
<div class="col-md">
|
||||
<div class="card card-row card-success">
|
||||
<!-- Card header -->
|
||||
<div class="card-header info-box bg-success">
|
||||
<span class="info-box-icon"><i class="fas fa-check-circle"></i></span>
|
||||
|
||||
<div class="info-box-content">
|
||||
<span class="info-box-text">{{ __('messages.dashboard.finished.description') }}</span>
|
||||
<span {{-- class="info-box-number">{{ $CompanyProject->where('order_project', 4)->count() }}</span> --}} <span class="progress-description">
|
||||
{{ __('messages.dashboard.finished.text') }}
|
||||
</span>
|
||||
</div>
|
||||
<!-- /.info-box-content -->
|
||||
</div>
|
||||
<!-- /.info-box -->
|
||||
<!-- /.Card header-->
|
||||
<div class="card-body">
|
||||
@foreach ($allProjectsClient as $project)
|
||||
@if ($project->order_project == 4)
|
||||
<div class="card card-secondary card-outline">
|
||||
<div class="card-header">
|
||||
<h5 class="progress-description">{{ $project->company_project_description }}
|
||||
</h5>
|
||||
<div class="card-tools">
|
||||
<a href="{{ route('ExecutionProject', ['ProjectId' => $project->company_projects_id]) }}"
|
||||
class="btn btn-tool">
|
||||
<i class="fa-solid fa-eye" style="color:rgb(62, 62, 62)"></i>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
||||
@endforeach
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
{{-- ./Concluidas --}}
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</section>
|
||||
@endsection
|
||||
6
resources/views/userClient/manageAssetsClient.blade.php
Normal file
6
resources/views/userClient/manageAssetsClient.blade.php
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
@extends('Templates/templateClient')
|
||||
|
||||
@section('Main-content')
|
||||
<!-- Content Wrapper. Contains page content -->
|
||||
<h1> Teste Gestao do cliente</h1>
|
||||
@endsection
|
||||
|
|
@ -1,5 +1,6 @@
|
|||
<?php
|
||||
|
||||
use App\Http\Controllers\ClientController;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
use Illuminate\Support\Facades\Route;
|
||||
|
|
@ -91,12 +92,19 @@
|
|||
Route::post('receiveAnswersEquipment', [WorkstationsJobsController::class, 'receiveAnswersEquipment'])->name('receiveAnswersEquipment');
|
||||
});
|
||||
|
||||
Route::middleware(['checkUserType:testClient'])->group(function () {
|
||||
Route::get('dashboardClient', [ClientController::class, 'receiveProjectsClient'])->name('dashboardClient');
|
||||
Route::get('manageAssetsClient', [ClientController::class, 'receiveManageAssetsClient'])->name('manageAssetsClient');
|
||||
});
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| User_Type (Super_Administrador)
|
||||
|--------------------------------------------------------------------------
|
||||
|*** Routes unique access to the Super_Administrator, Administrator
|
||||
|
||||
*/
|
||||
|
||||
Route::middleware(['checkUserType:home'])->group(function () {
|
||||
Route::get('/', [ProjectoDatacontroller::class, ('HomePage')])->name('home');
|
||||
|
||||
|
|
@ -125,7 +133,6 @@
|
|||
|--------------------------------------------------------------------------
|
||||
|
|
||||
*/
|
||||
|
||||
Route::controller(CreateProjectController::class)
|
||||
->group(function () {
|
||||
|
||||
|
|
@ -191,7 +198,6 @@
|
|||
|
||||
// Mostrar Instalação click
|
||||
|
||||
// Route::middleware(['checkUserType:enterWorkstation'])
|
||||
});
|
||||
});
|
||||
|
||||
|
|
@ -216,3 +222,20 @@
|
|||
Route::get('api/receivePlants/{receiveAllClients}', [ProjectoDatacontroller::class, 'receivePlants']);
|
||||
|
||||
Route::get('api/receiveUnitsManageAssets/{receivePlantClientRelated}', [ProjectoDatacontroller::class, 'receiveUnitsManageAssets']);
|
||||
|
||||
|
||||
|
||||
|
||||
// Rotas para o tipo de usuário 'Técnico'
|
||||
Route::middleware(['auth', 'checkUserType:enterWorkstation'])->group(function () {
|
||||
Route::get('enterWorkstation', function () {
|
||||
return view('workstations.start');
|
||||
})->name('enterWorkstation');
|
||||
// Adicione outras rotas específicas para 'Técnico' aqui
|
||||
});
|
||||
|
||||
// Rotas para o tipo de usuário 'Empresa'
|
||||
Route::middleware(['auth', 'checkUserType:dashboardClient'])->group(function () {
|
||||
Route::get('dashboardClient', [ClientController::class, 'receiveProjectsClient'])->name('dashboardClient');
|
||||
// Adicione outras rotas específicas para 'Empresa' aqui
|
||||
});
|
||||
Loading…
Reference in New Issue
Block a user