adjustments in parts of the code and implementation of the workstations

This commit is contained in:
ygbanzato 2023-07-03 11:46:11 +01:00
parent d83552e106
commit 4e737a48bd
18 changed files with 5460 additions and 2319 deletions

View File

@ -18,12 +18,224 @@
use App\Models\PendingEquipment;
use App\Models\AmbitsEquipment;
use App\Models\EquipmentAssociationAmbit;
use App\Models\ConstructionWorkstation;
use App\Models\OrderEquipmentTasks;
use App\Models\FurtherTasks;
use App\Models\WorkstationsAssociationTasks;
class CreateProjectController extends Controller
{
public function deleteWorkstation($name)
{
$workstation = ConstructionWorkstation::where('name_workstations', $name)->first();
if ($workstation) {
$workstation->delete();
return back()->with('success', 'Posto de Trabalho removido com sucesso!');
}
return back()->with('danger', 'Posto de Trabalho não encontrado!');
}
public function AddNomenclatureWorkstation(Request $request)
{
foreach ($request->nameWorkstations as $key => $value) {
// Procurar a Workstation pelo ID
$workstation = ConstructionWorkstation::where('name_workstations', $key)
->first();
if ($workstation) {
// Atualizar o valor do campo nomenclature_workstation
$workstation->nomenclature_workstation = $value;
$workstation->save();
}
}
// Redirecionar de volta com uma mensagem de sucesso
return back()->with('success', 'Nome da estação de trabalho atualizado com sucesso!');
}
public function removeProjectEquipment(Request $request)
{
$equipment = Equipment::find($request->EquipmentID);
if ($request->removalType == 'total') {
$equipment->delete();
return back()->with('success', 'Equipamento Excluido com sucesso!');
} else
$equipment->company_projects_id = null;
$equipment->save();
return back()->with('success', 'Equipamento retirado da obra !');
}
public function EditEquipmentsProjects(Request $request)
{
// dd($request);
// Localiza o equipment pelo numberProject
$equipment = Equipment::find($request->equipmentId);
// Atualiza os campos
$equipment->equipment_tag = $request->tag;
$equipment->equipment_description = $request->equipmentDescription;
$equipment->equipment_serial_number = $request->serialNumberEquipment;
$equipment->equipment_brand = $request->equipmentBrand;
$equipment->equipment_model = $request->equipmentModel;
$equipment->save();
if ($request->input('attributes')) {
foreach ($request->input('attributes') as $key => $value) {
// Verifica se o valor é null e a chave é um número (correspondendo aos general_attributes_equipment_id)
if ($value == null && is_numeric($key)) {
// Procura o registro relevante em SpecificAttributesEquipmentType
$specificAttributes = SpecificAttributesEquipmentType::where('equipment_id', $request->equipmentId)
->where('general_attributes_equipment_id', $key)
->first();
// Se o registro existir, o deleta
if ($specificAttributes) {
$specificAttributes->delete();
}
}
// Se o valor não for null, atualiza ou cria um novo registro
elseif ($value !== null && is_numeric($key)) {
// Procura o registro relevante em SpecificAttributesEquipmentType
$specificAttributes = SpecificAttributesEquipmentType::where('equipment_id', $request->equipmentId)
->where('general_attributes_equipment_id', $key)
->first();
// Se o registro existir, atualiza o valor
if ($specificAttributes) {
$specificAttributes->specific_attributes_value = $value;
$specificAttributes->save();
}
// Se não existir, cria um novo
else {
// Cria um novo registro em SpecificAttributesEquipmentType
$specificAttributes = new SpecificAttributesEquipmentType();
$specificAttributes->equipment_id = $request->equipmentId;
$specificAttributes->equipment_type_id = $equipment->equipment_type_id;
$specificAttributes->general_attributes_equipment_id = $key;
$specificAttributes->specific_attributes_value = $value;
$specificAttributes->save();
}
}
}
}
$executionOrder = 1; // Inicia a contagem da ordem de execução
foreach ($request->input('ordemTasks') as $key => $value) {
// Procura o registro relevante em OrderEquipmentTasks
$orderEquipmentTask = OrderEquipmentTasks::where('equipment_id', $request->equipmentId)
->where('elemental_tasks_id', $key)
->first();
// Se o valor é 'on'
if ($value === "on") {
// Se o registro não existir, cria um novo
if (!$orderEquipmentTask) {
$orderEquipmentTask = new OrderEquipmentTasks();
$orderEquipmentTask->equipment_id = $request->equipmentId;
$orderEquipmentTask->elemental_tasks_id = $key;
}
// Atualiza a ordem de execução independentemente do registro ser novo ou não
$orderEquipmentTask->execution_order = $executionOrder;
$orderEquipmentTask->save();
// Incrementa a ordem de execução para o próximo 'on'
$executionOrder++;
}
// Se o valor é 'off' e o registro existir, o deleta
elseif ($value === "off" && $orderEquipmentTask) {
$orderEquipmentTask->delete();
}
}
// Atualiza a ordem de execução dos restantes 'on' após as remoções
$remainingOrderEquipmentTasks = OrderEquipmentTasks::where('equipment_id', $request->equipmentId)
->where('execution_order', '>=', $executionOrder)
->orderBy('execution_order', 'asc')
->get();
foreach ($remainingOrderEquipmentTasks as $orderEquipmentTask) {
$orderEquipmentTask->execution_order = $executionOrder;
$orderEquipmentTask->save();
$executionOrder++;
}
// Obtém todas as tarefas na ordem correta
$orderTasks = OrderEquipmentTasks::where('equipment_id', $request->equipmentId)
->orderBy('execution_order', 'asc')
->get();
// Cria uma matriz associativa para armazenar o elemental_tasks_id e o execution_order
$taskExecutionOrders = [];
foreach ($orderTasks as $task) {
$taskExecutionOrders[$task->elemental_tasks_id] = $task->execution_order;
}
// Retorna uma resposta
return redirect()->route('test2', ['id' => $request->numberProject])
->with('success', 'Equipamento ' . $equipment->equipment_tag . ' Editado com Sucesso!!!')
->with('taskExecutionOrders', $taskExecutionOrders);
}
public function showJson($id)
{
$attributes = SpecificAttributesEquipmentType::where('equipment_id', $id)->get();
$OrdemTasks = OrderEquipmentTasks::where('equipment_id', $id)->get();
return response()->json([
'attributes' => $attributes,
'OrdemTasks' => $OrdemTasks
]);
}
public function createWorkStations(Request $request)
{
// Pega o número de estações de trabalho do request
$numberWorkstations = $request->numberWorkstations;
// Pega o número do projeto do request
$numberProject = $request->numberProject;
$listWorkstations = ConstructionWorkstation::where('company_projects_id', $numberProject)->get();
// Pega o último elemento da lista
$lastWorkstation = $listWorkstations->last();
// Se houver uma estação de trabalho anterior, extrai o número dela
$startNumber = 1;
if ($lastWorkstation) {
$parts = explode('-', $lastWorkstation->name_workstations);
$startNumber = intval(str_replace('workstation', '', $parts[0])) + 1;
}
// Loop para criar as estações de trabalho
for ($i = $startNumber; $i < $startNumber + $numberWorkstations; $i++) {
$workstation = new ConstructionWorkstation();
$workstation->name_workstations = 'workstation' . $i . '-' . $numberProject;
$workstation->company_projects_id = $numberProject;
$workstation->save();
}
// Redireciona para onde você quiser após a criação das workstations
return redirect()->route('test3', ['id' => $request->numberProject])
->with('success', $numberWorkstations . ' Postos de Trabalho criados !!!')
->with('listWorkstations', $listWorkstations);
}
// 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 nao vai ficar step 1
@ -37,21 +249,23 @@ public function showStep1($company_projects_id)
$companies = User::where('type_users', 3)->get();
return view('projectsClients/projectDetails_1', ['step' => 1], ['companies' => $companies])
->with('projects',$projects);
->with('projects', $projects);
}
// 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;
@ -84,7 +298,7 @@ public function CreateNewEquipmentFromPendingEquipment(Request $request, $id){
$checkPendingEquipment->delete();
return back()->with('success', 'Equipamento '.$newEquipment->equipment_tag.' criado com sucesso');
return back()->with('success', 'Equipamento ' . $newEquipment->equipment_tag . ' criado com sucesso');
}
@ -274,7 +488,7 @@ public function createEquipmentManual(Request $request)
$AddAtributsEquipments = new SpecificAttributesEquipmentType;
$AddAtributsEquipments->equipment_id = $equipmentID;
$AddAtributsEquipments->equipment_type_id = $request->equipmentTypeId;
$AddAtributsEquipments->specific_attributes_equipment_type_id = $receivesAssociationAttribute['general_attributes_equipment_id'];
$AddAtributsEquipments->general_attributes_equipment_id = $receivesAssociationAttribute['general_attributes_equipment_id'];
$AddAtributsEquipments->specific_attributes_value = $receivesAssociationAttribute['value'];
$AddAtributsEquipments->save();
}
@ -291,7 +505,8 @@ 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]);
}
@ -422,7 +637,7 @@ public function processStep2(Request $request)
$specificAttribute->equipment_id = $receveEquipment_ID;
$specificAttribute->equipment_type_id = $receveEquipament_type_ID;
$specificAttribute->specific_attributes_equipment_type_id = $generalAttribute->general_attributes_equipment_id;
$specificAttribute->general_attributes_equipment_id = $generalAttribute->general_attributes_equipment_id;
// Atribui o valor da chave correspondente em $datas
$specificAttribute->specific_attributes_value = $datas[$generalAttribute->general_attributes_equipment_description];
@ -453,14 +668,46 @@ public function processStep2(Request $request)
return redirect('/test3');
}
public function showStep3()
public function showStep3($company_projects_id)
{
// Verifique se a etapa 2 foi concluída
// if (!session('form_data.step2')) {
// return redirect('/test2');
// }
//Sempre que entrar na view ja verifica se existe 'Workstations' preparadas para esta obra.
$listWorkstations = ConstructionWorkstation::where('company_projects_id', $company_projects_id)->get();
$equipments = Equipment::where('company_projects_id', $company_projects_id)
->get();
return view('projectsClients/workStation_3', ['step' => 3]);
$futherTasks = FurtherTasks::where('company_projects_id', $company_projects_id)
->get();
return view('projectsClients/workStation_3', ['step' => 3, 'numberProject' => $company_projects_id])
->with('listWorkstations', $listWorkstations)
->with('equipments', $equipments)
->with('futherTasks', $futherTasks);
}
public function workstationsAssociationTasks(Request $request)
{
$workStation = ConstructionWorkstation::where('id_workstations', $request->idWorkStation)->first();
if ($workStation) {
$workStation->nomenclature_workstation = $request->nameWorkstation;
$workStation->save();
}
// então, iteramos sobre as três listas de tarefas e as associamos à estação de trabalho
$taskTypes = ['generalTasks', 'PsvTasks', 'CvTasks'];
foreach ($taskTypes as $taskType) {
if (isset($request->$taskType)) {
foreach ($request->$taskType as $taskId) {
$taskAssociation = new WorkstationsAssociationTasks;
$taskAssociation->id_workstations = $workStation->id_workstations;
$taskAssociation->elemental_tasks_id = $taskId; // assumindo que $taskId é o id da tarefa
$taskAssociation->company_projects_id = $workStation->company_projects_id;
$taskAssociation->save();
}
}
}
// Redirecionar de volta com uma mensagem de sucesso
return back()->with('success', 'Posto de trabalho : '.$workStation->name_workstations.' atualizado com sucesso!');
}
public function processStep3(Request $request)
@ -599,6 +846,12 @@ public function getAmbits($equipmentType)
return response()->json($ambits);
}
public function getAttributes($id)
{
$equipment = Equipment::with('specificAttributes')->find($id);
return response()->json($equipment->specificAttributes);
}
// public function createEquipamentProject(Request $request)
// {
// $file = $request->file('documento');

View File

@ -28,7 +28,7 @@ public function ManageAssets()
->join('users', 'plants.user_id', '=', 'users.user_id')
->select('plants.*', 'units.unit_name', 'users.user_name as user_name')
->get();
$equipments = Equipment::all();
// $equipaments = DB::table('equipaments')
// ->join('factories','equipaments.factory_id', '=', 'factories.factories_id')
// ->join('equipament_types', 'equipaments.equipament_type_id', '=' , 'equipament_types.equipament_type_id')
@ -36,7 +36,7 @@ public function ManageAssets()
// ->get();
// return view('Admin/DataManagement/manageassets', compact('units','equipaments'));
return view('Admin/DataManagement/manageassets', compact('units'));
return view('Admin/DataManagement/manageassets', compact('units','equipments'));
}
public function showUnit($id)

View File

@ -76,7 +76,7 @@ public static function authenticateAndRedirect(Request $request)
public function ListCompanies()
{
$users = User::with('userType')->where('user_type', '=', 3)->get();
$users = User::with('userType')->where('type_users', '=', 3)->get();
return view('Admin.CrudUsers.listCompany', compact('users'));
}
@ -84,7 +84,7 @@ public function ListCompanies()
//Busca Todos os utilizadores Exeto as 'Empresas'
public function ListUsers()
{
$users = User::with('userType')->where('user_type', '<>', 3)->get();
$users = User::with('userType')->where('type_users', '<>', 3)->get();
return view('Admin.CrudUsers.listUsers', compact('users'));
}

View File

@ -0,0 +1,19 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class ConstructionWorkstation extends Model
{
use HasFactory;
public $timestamps = false;
protected $table = 'construction_workstations';
protected $primaryKey = 'id_workstations';
}

View File

@ -0,0 +1,19 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class FurtherTasks extends Model
{
use HasFactory;
public $timestamps = false;
protected $table = 'further_tasks';
protected $primaryKey = 'further_tasks_id';
}

View File

@ -0,0 +1,14 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class OrderEquipmentTasks extends Model
{
use HasFactory;
public $timestamps = false;
protected $table = 'ordered_equipment_tasks';
}

View File

@ -0,0 +1,16 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class WorkstationsAssociationTasks extends Model
{
use HasFactory;
public $timestamps = false;
protected $table = 'workstations_association_tasks';
}

BIN
public/img/logo4.0.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 290 KiB

View File

@ -1,7 +1,6 @@
@extends('Templates/templateAdmin')
@section('Main-content')
<div class="content-wrapper">
<!-- Content Header (Page header) -->
<section class="content-header">
<div class="container-fluid">
@ -92,8 +91,7 @@ class="fas fa-plus"></i>
<td>{{ $unit->user_name }}</td>
<td class="text-center d-flex justify-content-around">
<a href="#" data-toggle="modal"
data-target="#modal-edit-instalacao">
<a href="#" data-toggle="modal" data-target="#modal-edit-instalacao">
<i class="fa-solid fa-edit text-primary"></i>
</a>
<a href="#" data-toggle="modal" data-target="#modal-remover"><i
@ -191,8 +189,7 @@ class="fas fa-plus"></i>
<div class="col-sm-6">
<div class="form-group">
<label>TAG</label>
<input type="text" class="form-control"
placeholder="TAG&hellip;">
<input type="text" class="form-control" placeholder="TAG&hellip;">
</div>
</div>
<div class="col-sm-6">
@ -224,15 +221,13 @@ class="fas fa-plus"></i>
<div class="col-sm-6">
<div class="form-group">
<label>DN</label>
<input type="text" class="form-control"
placeholder="DN&hellip;">
<input type="text" class="form-control" placeholder="DN&hellip;">
</div>
</div>
<div class="col-sm-6">
<div class="form-group">
<label>PN</label>
<input type="text" class="form-control"
placeholder="PN&hellip;">
<input type="text" class="form-control" placeholder="PN&hellip;">
</div>
</div>
</div>
@ -268,8 +263,7 @@ class="fas fa-plus"></i>
<div class="col-sm-6">
<div class="form-group">
<label>TAG</label>
<input type="text" class="form-control"
placeholder="TAG&hellip;">
<input type="text" class="form-control" placeholder="TAG&hellip;">
</div>
</div>
<div class="col-sm-6">
@ -301,15 +295,13 @@ class="fas fa-plus"></i>
<div class="col-sm-6">
<div class="form-group">
<label>DN</label>
<input type="text" class="form-control"
placeholder="DN&hellip;">
<input type="text" class="form-control" placeholder="DN&hellip;">
</div>
</div>
<div class="col-sm-6">
<div class="form-group">
<label>PN</label>
<input type="text" class="form-control"
placeholder="PN&hellip;">
<input type="text" class="form-control" placeholder="PN&hellip;">
</div>
</div>
</div>
@ -377,15 +369,13 @@ class="fas fa-plus"></i>
<div class="col-sm-6">
<div class="form-group">
<label>DN</label>
<input type="text" class="form-control"
placeholder="DN&hellip;">
<input type="text" class="form-control" placeholder="DN&hellip;">
</div>
</div>
<div class="col-sm-6">
<div class="form-group">
<label>PN</label>
<input type="text" class="form-control"
placeholder="PN&hellip;">
<input type="text" class="form-control" placeholder="PN&hellip;">
</div>
</div>
</div>
@ -454,36 +444,34 @@ class="fas fa-plus"></i>
<!-- Table Equipamentos-->
<div class="card-body table-responsive p-0">
<table class="table table-hover text-nowrap">
<table class="table table-hover text-nowrap" id="TableEquipments">
<thead>
<tr>
<th>ID equipamento</th>
<th>tag</th>
<th>Fabrica</th>
<th>Tipo equipamento</th>
<th>Tag</th>
<th>Descricao equipamento</th>
<th>Numero de Serie </th>
<th>Marca</th>
<th>Modelo</th>
<th>Activo</th>
<th>Edicao</th>
</tr>
</thead>
{{-- <tbody>
@foreach ($equipaments as $equipament)
<tbody>
@foreach ($equipments as $equipment)
<tr>
<td>{{ $equipament->equipment_id }}</td>
<td>{{ $equipament->tag }}</td>
<td>{{ $equipament->factories_name }}</td>
<td>{{ $equipament->equipment_type_name }}</td>
<td>{{ $equipament->equipment_description }}</td>
<td>{{ $equipament->serial_number }}</td>
<td>{{ $equipament->brand }}</td>
<td>{{ $equipament->model }}</td>
<td>{{ $equipament->Is_active }}</td>
<td>{{ $equipment->equipment_id }}</td>
<td>{{ $equipment->unit_id }}</td>
<td>{{ $equipment->equipment_type_id }}</td>
<td>{{ $equipment->equipment_tag }}</td>
<td>{{ $equipment->equipment_description }}</td>
<td>{{ $equipment->equipment_serial_number }}</td>
<td>{{ $equipment->equipment_brand }}</td>
<td>{{ $equipment->equipment_model }}</td>
<td class="text-center d-flex justify-content-around">
<a href="{{ route('showUnit', ['id' => $equipament->equipment_id]) }}">
{{-- <a href="{{ route('showUnit', ['id' => $equipament->equipment_id]) }}"> --}}
<i class="fa-solid fa-eye text-secondary"></i>
</a>
<a href="#" data-toggle="modal" data-target="#modal-edit-psv">
@ -495,7 +483,7 @@ class="fa-solid fa-trash-alt text-danger"></i>
</td>
</tr>
@endforeach
</tbody> --}}
</tbody>
</table>
</div>
<!-- /.tabela-->
@ -719,6 +707,38 @@ class="fa-solid fa-trash-alt text-danger"></i>
<!-- /.modal-dialog -->
</div>
<!-- /.modal remover-->
</div>
@endsection
@section('scriptsTemplateAdmin')
<script>
$(function () {
$('input[name="daterange"]').daterangepicker({
opens: 'right'
}, function (start, end, label) {
console.log("A new date selection was made: " + start.format('YYYY-MM-DD') + ' to ' + end.format('YYYY-MM-DD'));
});
});
</script>
<script>
$(function () {
$("#TableEquipments").DataTable({
"responsive": true, "lengthChange": false, "autoWidth": false,
"buttons": ["copy", "csv", "excel", "pdf", "print", "colvis"]
}).buttons().container().appendTo('#TableEquipments_wrapper .col-md-6:eq(0)');
$("#example1").DataTable({
"responsive": true, "lengthChange": false, "autoWidth": false,
"buttons": ["copy", "csv", "excel", "pdf", "print", "colvis"]
}).buttons().container().appendTo('#example1_wrapper .col-md-6:eq(0)');
$("#example2").DataTable({
"responsive": true, "lengthChange": false, "autoWidth": false,
"buttons": ["copy", "csv", "excel", "pdf", "print", "colvis"]
}).buttons().container().appendTo('#example2_wrapper .col-md-6:eq(0)');
$("#example3").DataTable({
"responsive": true, "lengthChange": false, "autoWidth": false,
"buttons": ["copy", "csv", "excel", "pdf", "print", "colvis"]
}).buttons().container().appendTo('#example3_wrapper .col-md-6:eq(0)');
});
</script>
@endsection

View File

@ -0,0 +1,276 @@
<!-- Google Font: Source Sans Pro -->
<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('plugins/fontawesome-free/css/all.min.css') }}">
<!-- Font Awesome 6.1.1 -->
<link rel="stylesheet" href="{{ asset('plugins/fontawesome-611/css/all.min.css') }}">
<!-- Ionicons -->
<link rel="stylesheet" href="https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css">
{{-- <!-- Tempusdominus Bootstrap 4 --> Serve para trabelhar com data e hora no bootstrap , ver se necessario! --}}
<link rel="stylesheet"
href="{{ asset('plugins/tempusdominus-bootstrap-4/css/tempusdominus-bootstrap-4.min.css') }}">
{{-- <!-- iCheck -->Para estilzar (checkbox) ver se necessario --}}
<link rel="stylesheet" href="{{ asset('plugins/icheck-bootstrap/icheck-bootstrap.min.css') }}">
{{-- <!-- JQVMap -->EStudar este Plugins --}}
<link rel="stylesheet" href="{{ asset('plugins/jqvmap/jqvmap.min.css') }}">
<!-- overlayScrollbars -->
<link rel="stylesheet" href="{{ asset('plugins/overlayScrollbars/css/OverlayScrollbars.min.css') }}">
{{-- <!-- Daterange picker --> Se você precisa de uma interface onde os usuários possam selecionar uma série de datas, como para uma reserva de hotel, por exemplo,--}}
<link rel="stylesheet" href="{{ asset('plugins/daterangepicker/daterangepicker.css') }}">
{{-- <!-- summernote -->Estudar --}}
<link rel="stylesheet" href="{{ asset('plugins/summernote/summernote-bs4.min.css') }}">
{{-- <!-- jQuery UI -->Criacao de interface, Estudar --}}
<link rel="stylesheet" href="{{ asset('plugins/jquery-ui/jquery-ui.css') }}">
{{-- <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script> --}}
{{-- DataTables --}}
<link rel="stylesheet" href="{{ asset('plugins/datatables-bs4/css/dataTables.bootstrap4.min.css')}}">
<link rel="stylesheet" href="{{ asset('plugins/datatables-responsive/css/responsive.bootstrap4.min.css')}}">
<link rel="stylesheet" href="{{ asset('plugins/datatables-buttons/css/buttons.bootstrap4.min.css')}}">
<link rel="stylesheet" href="{{ asset('plugins/datatables/jquery.dataTables.min.js')}}">
<link rel="stylesheet" href="{{ asset('plugins/datatables-bs4/js/dataTables.bootstrap4.min.js')}}">
<script src="{{ asset('plugins/datatables-responsive/js/dataTables.responsive.min.js')}}"></script>
<!-- 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>
{{-- Parte de Cima - Header --}}
{{-- PARTE DE baixo no BODY --}}
<!-- jQuery -->
<script src="{{ asset('plugins/jquery/jquery.min.js') }}"></script>
{{-- DataTables --}}
<script src="{{ asset('plugins/datatables/jquery.dataTables.min.js') }}"></script>
<script src="{{ asset('plugins/datatables-buttons/js/dataTables.buttons.min.js') }}"></script>
<script src="{{ asset('plugins/datatables-responsive/js/dataTables.responsive.min.js')}}"></script>
<!-- Bootstrap 4 -->
<script src="{{ asset('plugins/bootstrap/js/bootstrap.bundle.min.js') }}"></script>
<!-- ChartJS -->
<script src="{{ asset('plugins/chart.js/Chart.min.js') }}"></script>
<!-- Sparkline -->
<script src="{{ asset('plugins/sparklines/sparkline.js') }}"></script>
<script src="{{ asset('plugins/chart.js/Chart.min.js') }}"></script>
<!-- JQVMap -->
<script src="{{ asset('plugins/jqvmap/jquery.vmap.min.js') }}"></script>
<script src="{{ asset('plugins/chart.js/Chart.min.js') }}"></script>
<script src="{{ asset('plugins/jqvmap/maps/jquery.vmap.usa.js') }}"></script>
<!-- jQuery Knob Chart -->
<script src="{{ asset('plugins/jquery-knob/jquery.knob.min.js') }}"></script>
<script src="https://unpkg.com/xlsx/dist/xlsx.full.min.js"></script>
<!-- daterangepicker -->
<script src="{{asset('plugins/moment/moment.min.js')}}"></script>
<script src="{{ asset('plugins/daterangepicker/daterangepicker.js') }}"></script>
<!-- Tempusdominus Bootstrap 4 -->
<script src="{{ asset('plugins/tempusdominus-bootstrap-4/js/tempusdominus-bootstrap-4.min.js') }}"></script>
<!-- Summernote -->
<script src="{{ asset('plugins/summernote/summernote-bs4.min.js') }}"></script>
<!-- overlayScrollbars -->
<script src="{{ asset('plugins/overlayScrollbars/js/jquery.overlayScrollbars.min.js') }}"></script>
<!-- AdminLTE App -->
<script src="{{ asset('js/adminlte.js') }}"></script>
<!-- jQuery UI 1.11.4 -->
<script src="{{ asset('plugins/jquery-ui/jquery-ui.min.js') }}"></script>
<!-- Resolve conflict in jQuery UI tooltip with Bootstrap tooltip -->
<script>
$.widget.bridge('uibutton', $.ui.button)
</script>
{{-- Segunda Versao : --}}
<!-- Theme style -->
<link rel="stylesheet" href="{{ asset('StyleAdmin/css/adminlte.css') }}">
<!-- Google Font: Source Sans Pro -->
<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('plugins/fontawesome-free/css/all.min.css') }}">
<!-- Font Awesome 6.1.1 -->
<link rel="stylesheet" href="{{ asset('plugins/fontawesome-611/css/all.min.css') }}">
<!-- overlayScrollbars -->
<link rel="stylesheet" href="{{ asset('plugins/overlayScrollbars/css/OverlayScrollbars.min.css') }}">
{{-- DataTables --}}
<link rel="stylesheet" href="{{ asset('plugins/datatables-bs4/css/dataTables.bootstrap4.min.css')}}">
<link rel="stylesheet" href="{{ asset('plugins/datatables-responsive/css/responsive.bootstrap4.min.css')}}">
<link rel="stylesheet" href="{{ asset('plugins/datatables-buttons/css/buttons.bootstrap4.min.css')}}">
<link rel="stylesheet" href="{{ asset('plugins/datatables/jquery.dataTables.min.js')}}">
<link rel="stylesheet" href="{{ asset('plugins/datatables-bs4/js/dataTables.bootstrap4.min.js')}}">
{{-- Parde de Baixo antes de fechar body --}}
<!-- AdminLTE App -->
<script src="{{ asset('js/adminlte.js') }}"></script>
<script src="{{ asset('plugins/bootstrap/js/bootstrap.bundle.min.js') }}"></script>
<script src="{{ asset('plugins/chart.js/Chart.min.js') }}"></script>
<script src="{{ asset('plugins/sparklines/sparkline.js') }}"></script>
<script src="{{ asset('plugins/jqvmap/jquery.vmap.min.js') }}"></script>
<script src="{{ asset('plugins/jqvmap/maps/jquery.vmap.usa.js') }}"></script>
<!-- daterangepicker -->
<script src="{{ asset('plugins/moment/moment.min.js') }}"></script>
<script src="{{ asset('plugins/daterangepicker/daterangepicker.js') }}"></script>
{{-- DataTables --}}
<script src="{{ asset('plugins/datatables/jquery.dataTables.min.js') }}"></script>
<script src="{{ asset('plugins/datatables-bs4/js/dataTables.bootstrap4.min.js') }}"></script>
<script src="{{ asset('plugins/datatables-responsive/js/dataTables.responsive.min.js') }}"></script>
<script src="{{ asset('plugins/datatables-responsive/js/responsive.bootstrap4.min.js') }}"></script>
<script src="{{ asset('plugins/datatables-buttons/js/dataTables.buttons.min.js') }}"></script>
<script src="{{ asset('plugins/datatables-buttons/js/buttons.bootstrap4.min.js') }}"></script>
<script src="{{ asset('plugins/jszip/jszip.min.js') }}"></script>
<script src="{{ asset('plugins/pdfmake/pdfmake.min.js') }}"></script>
<script src="{{ asset('plugins/pdfmake/vfs_fonts.js') }}"></script>
<script src="{{ asset('plugins/datatables-buttons/js/buttons.html5.min.js') }}"></script>
<script src="{{ asset('plugins/datatables-buttons/js/buttons.print.min.js') }}"></script>
<script src="{{ asset('plugins/datatables-buttons/js/buttons.colVis.min.js') }}"></script>
{{-- Plugins-Scripts --}}
<!-- jQuery -->
<script src="{{ asset('plugins/jquery/jquery.min.js') }}"></script>
<script src="{{ asset('plugins/jquery-ui/jquery-ui.min.js') }}"></script>
<!-- Resolve conflict in jQuery UI tooltip with Bootstrap tooltip -->
<script>
$.widget.bridge('uibutton', $.ui.button)
</script>
{{-- FUNCIONA REAL --}}
{{-- PARTE DE CIMA --}}
<!-- Google Font: Source Sans Pro -->
<link rel="stylesheet"
href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,400i,700&display=fallback">
<!-- Font Awesome 6.1.1 -->
<link rel="stylesheet" href="{{ asset('plugins/fontawesome-611/css/all.min.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('plugins/tempusdominus-bootstrap-4/css/tempusdominus-bootstrap-4.min.css')}}">
<!-- iCheck -->
<link rel="stylesheet" href="{{ asset('plugins/icheck-bootstrap/icheck-bootstrap.min.css')}}">
<!-- JQVMap -->
<link rel="stylesheet" href="{{ asset('plugins/jqvmap/jqvmap.min.css')}}">
<!-- Theme style -->
<link rel="stylesheet" href="{{ asset('StyleAdmin/css/adminlte.css') }}">
<!-- overlayScrollbars -->
<link rel="stylesheet" href="{{ asset('plugins/overlayScrollbars/css/OverlayScrollbars.min.css')}}">
<!-- Daterange picker -->
<link rel="stylesheet" href="{{ asset('plugins/daterangepicker/daterangepicker.css')}}">
<!-- summernote -->
<link rel="stylesheet" href="{{ asset('plugins/summernote/summernote-bs4.min.css')}}">
<!-- daterange picker -->
<link rel="stylesheet" href="{{ asset('plugins/daterangepicker/daterangepicker.css')}}">
<!-- DataTables -->
<link rel="stylesheet" href="{{ asset('plugins/datatables-bs4/css/dataTables.bootstrap4.min.css')}}">
<link rel="stylesheet" href="{{ asset('plugins/datatables-responsive/css/responsive.bootstrap4.min.css')}}">
<link rel="stylesheet" href="{{ asset('plugins/datatables-buttons/css/buttons.bootstrap4.min.css')}}">
{{-- Parte de Baixo --}}
<script src="{{ asset('plugins/jquery/jquery.min.js') }}"></script>
<!-- jQuery UI 1.11.4 -->
<script src="{{ asset('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('plugins/bootstrap/js/bootstrap.bundle.min.js') }}"></script>
<!-- ChartJS -->
<script src="{{ asset('plugins/chart.js/Chart.min.js') }}"></script>
<!-- Sparkline -->
<script src="{{ asset('plugins/sparklines/sparkline.js') }}"></script>
<!-- JQVMap -->
<script src="{{ asset('plugins/jqvmap/jquery.vmap.min.js') }}"></script>
<script src="{{ asset('plugins/jqvmap/maps/jquery.vmap.usa.js') }}"></script>
<!-- jQuery Knob Chart -->
<script src="{{ asset('plugins/jquery-knob/jquery.knob.min.js') }}"></script>
<!-- daterangepicker -->
<script src="{{ asset('plugins/moment/moment.min.js') }}"></script>
<script src="{{ asset('plugins/daterangepicker/daterangepicker.js') }}"></script>
<!-- Tempusdominus Bootstrap 4 -->
<script src="{{ asset('plugins/tempusdominus-bootstrap-4/js/tempusdominus-bootstrap-4.min.js') }}"></script>
<!-- Summernote -->
<script src="{{ asset('plugins/summernote/summernote-bs4.min.js') }}"></script>
<!-- overlayScrollbars -->
<script src="{{ asset('plugins/overlayScrollbars/js/jquery.overlayScrollbars.min.js') }}"></script>
<!-- AdminLTE App -->
<script src="{{ asset('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('plugins/datatables/jquery.dataTables.min.js') }}"></script>
<script src="{{ asset('plugins/datatables-bs4/js/dataTables.bootstrap4.min.js') }}"></script>
<script src="{{ asset('plugins/datatables-responsive/js/dataTables.responsive.min.js') }}"></script>
<script src="{{ asset('plugins/datatables-responsive/js/responsive.bootstrap4.min.js') }}"></script>
<script src="{{ asset('plugins/datatables-buttons/js/dataTables.buttons.min.js') }}"></script>
<script src="{{ asset('plugins/datatables-buttons/js/buttons.bootstrap4.min.js') }}"></script>
<script src="{{ asset('plugins/jszip/jszip.min.js') }}"></script>
<script src="{{ asset('plugins/pdfmake/pdfmake.min.js') }}"></script>
<script src="{{ asset('plugins/pdfmake/vfs_fonts.js') }}"></script>
<script src="{{ asset('plugins/datatables-buttons/js/buttons.html5.min.js') }}"></script>
<script src="{{ asset('plugins/datatables-buttons/js/buttons.print.min.js') }}"></script>
<script src="{{ asset('plugins/datatables-buttons/js/buttons.colVis.min.js') }}"></script>

View File

@ -4,18 +4,19 @@
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="csrf-token" content="{{ csrf_token() }}">
<title>ISPT 4.0</title>
<!-- Google Font: Source Sans Pro -->
<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('plugins/fontawesome-free/css/all.min.css') }}">
<!-- Font Awesome 6.1.1 -->
<link rel="stylesheet" href="{{ asset('plugins/fontawesome-611/css/all.min.css') }}">
<!-- Ionicons -->
<link rel="stylesheet" href="https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css">
<!-- Tempusdominus Bootstrap 4 -->
@ -36,32 +37,41 @@
<!-- jQuery UI -->
<link rel="stylesheet" href="{{ asset('plugins/jquery-ui/jquery-ui.css') }}">
{{-- <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script> --}}
<!-- daterange picker -->
<link rel="stylesheet" href="{{ asset('plugins/daterangepicker/daterangepicker.css') }}">
{{-- DataTables --}}
<link rel="stylesheet" href="{{ asset('plugins/datatables-bs4/css/dataTables.bootstrap4.min.css')}}">
<link rel="stylesheet" href="{{ asset('plugins/datatables-responsive/css/responsive.bootstrap4.min.css')}}">
<link rel="stylesheet" href="{{ asset('plugins/datatables-buttons/css/buttons.bootstrap4.min.css')}}">
<!-- DataTables -->
<link rel="stylesheet" href="{{ asset('plugins/datatables-bs4/css/dataTables.bootstrap4.min.css') }}">
<link rel="stylesheet" href="{{ asset('plugins/datatables-responsive/css/responsive.bootstrap4.min.css') }}">
<link rel="stylesheet" href="{{ asset('plugins/datatables/jquery.dataTables.min.js')}}">
<link rel="stylesheet" href="{{ asset('plugins/datatables-bs4/js/dataTables.bootstrap4.min.js')}}">
<link rel="stylesheet" href="{{ asset('plugins/datatables-responsive/js/dataTables.responsive.min.js')}}">
<link rel="stylesheet" href="{{ asset('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>
<!-- 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>
<style>
.spin {
animation: spin 1s infinite linear;
}
@keyframes spin {
from {
transform: rotate(0deg);
}
to {
transform: rotate(360deg);
}
}
</style>
</head>
@ -70,9 +80,10 @@
<div class="wrapper">
<!-- Preloader -->
{{-- <div class="preloader flex-column justify-content-center align-items-center">
<img class="animation__shake" src="dist/img/ispt.png" alt="AdminLTELogo" height="60" width="60">
</div> --}}
<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">
@ -105,7 +116,6 @@ class="fas fa-bars"></i></a>
<span class="brand-text font-weight-light">ISPT 4.0</span>
</a>
<!-- Sidebar -->
<div class="sidebar">
<!-- Sidebar user panel (optional) -->
@ -116,27 +126,12 @@ class="fas fa-bars"></i></a>
</div>
<div class="info">
@if (Auth::check())
<a href="{{ route('usersProfiles', ['id' => Auth::user()->user_id]) }}" class="d-block">{{ Auth::user()->userType?->type_user }}</a>
<a href="{{ route('usersProfiles', ['id' => Auth::user()->user_id]) }}"
class="d-block">{{ Auth::user()->userType?->type_user }}</a>
@endif
</div>
</div>
<!-- SidebarSearch Form -->
{{-- <div class="form-inline">
<div class="input-group" data-widget="sidebar-search">
<input class="form-control form-control-sidebar" type="search" placeholder="Procurar"
aria-label="search">
<div class="input-group-append">
<button class="btn btn-sidebar">
<i class="fas fa-search fa-fw"></i>
</button>
</div>
</div>
</div> --}}
<!-- Sidebar Menu -->
<nav class="mt-2">
<ul class="nav nav-pills nav-sidebar flex-column" data-widget="treeview" role="menu"
@ -149,14 +144,6 @@ class="fas fa-bars"></i></a>
<p> Dashboard </p>
</a>
</li>
{{-- <li class="nav-item">
<a href="{{ route('createProject') }}" class="nav-link">
<i class="nav-icon fas fa-helmet-safety"></i>
<p> Criar obra </p>
</a>
</li> --}}
<li class="nav-item">
<a href="{{ route('createProject') }}" class="nav-link">
<i class="nav-icon fas fa-helmet-safety"></i>
@ -164,18 +151,7 @@ class="fas fa-bars"></i></a>
</a>
</li>
{{-- <li class="nav-item">
<a href="{{ route('test') }}" class="nav-link active">
<i class="nav-icon fas fa-tachometer-alt"></i>
<p>
TestController
</p>
</a>
</li> --}}
<!-- /.Multiple menu item -->
<li class="nav-item">
<a href="{{ route('testExcel') }}" class="nav-link">
<i class="nav-icon fas fa-file"></i>
@ -223,12 +199,6 @@ class="fas fa-bars"></i></a>
<p>Clientes</p>
</a>
</li>
{{-- <li class="nav-item">
<a href="{{ route('users.list') }}" class="nav-link">
<i class="fa-solid fa-file-edit"></i>
<p> Gerir Utilizadores</p>
</a>
</li> --}}
<li class="nav-item">
<a href="{{ route('CreateUsers') }}" class="nav-link">
<i class="nav-icon fas fa-gear"></i>
@ -247,24 +217,34 @@ class="fas fa-bars"></i></a>
</aside>
<div class="content-wrapper">
<section class="content">
@yield('Main-content')
{{-- <section class="content">
<div class="container-fluid">
<div class="row justify-content-center">
<div class="col-md-12">
@yield('Main-content')
</div>
{{-- ./col-md-12 --}}
./col-md-12
</div>
{{-- ./row justify-content-center --}}
./row justify-content-center
</div>
{{-- ./container-fluid --}}
</section>
./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 &copy; 2017-2022 <a href="#">ISPT - Industrial Services, SA</a>.</strong>
Todos os direitos reservados.
@ -272,73 +252,62 @@ class="fas fa-bars"></i></a>
<b>Versão</b> 1.0
</div>
</footer>
<!-- Control Sidebar -->
<aside class="control-sidebar control-sidebar-dark">
<!-- Control sidebar content goes here -->
</aside>
<!-- /.control-sidebar -->
</div>
<!-- ./wrapper -->
<!-- jQuery -->
<script src="{{ asset('plugins/jquery/jquery.min.js') }}"></script>
<!-- Bootstrap 4 -->
<script src="{{ asset('plugins/bootstrap/js/bootstrap.bundle.min.js') }}"></script>
<!-- ChartJS -->
<script src="{{ asset('plugins/chart.js/Chart.min.js') }}"></script>
<!-- Sparkline -->
<script src="{{ asset('plugins/sparklines/sparkline.js') }}"></script>
<script src="{{ asset('plugins/chart.js/Chart.min.js') }}"></script>
<!-- JQVMap -->
<script src="{{ asset('plugins/jqvmap/jquery.vmap.min.js') }}"></script>
<script src="{{ asset('plugins/chart.js/Chart.min.js') }}"></script>
<script src="{{ asset('plugins/jqvmap/maps/jquery.vmap.usa.js') }}"></script>
<!-- jQuery Knob Chart -->
<script src="{{ asset('plugins/jquery-knob/jquery.knob.min.js') }}"></script>
<script src="https://unpkg.com/xlsx/dist/xlsx.full.min.js"></script>
<!-- daterangepicker -->
<script src="{{asset('plugins/moment/moment.min.js')}}"></script>
<script src="{{ asset('plugins/daterangepicker/daterangepicker.js') }}"></script>
<!-- Tempusdominus Bootstrap 4 -->
<script src="{{ asset('plugins/tempusdominus-bootstrap-4/js/tempusdominus-bootstrap-4.min.js') }}"></script>
<!-- Summernote -->
<script src="{{ asset('plugins/summernote/summernote-bs4.min.js') }}"></script>
<!-- overlayScrollbars -->
<script src="{{ asset('plugins/overlayScrollbars/js/jquery.overlayScrollbars.min.js') }}"></script>
<!-- AdminLTE App -->
<script src="{{ asset('js/adminlte.js') }}"></script>
<!-- jQuery UI 1.11.4 -->
<script src="{{ asset('plugins/jquery-ui/jquery-ui.min.js') }}"></script>
<!-- Resolve conflict in jQuery UI tooltip with Bootstrap tooltip -->
<script>
$.widget.bridge('uibutton', $.ui.button)
</script>
</body>
</html>
@yield('scripts')
{{-- Script que dao erro no projecto --}}
{{-- Scripts-Plugins --}}
<script src="{{ asset('plugins/jquery/jquery.min.js') }}"></script>
<!-- jQuery UI 1.11.4 -->
<script src="{{ asset('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('plugins/bootstrap/js/bootstrap.bundle.min.js') }}"></script>
<!-- ChartJS -->
<script src="{{ asset('plugins/chart.js/Chart.min.js') }}"></script>
<!-- Sparkline -->
<script src="{{ asset('plugins/sparklines/sparkline.js') }}"></script>
<!-- JQVMap -->
<script src="{{ asset('plugins/jqvmap/jquery.vmap.min.js') }}"></script>
<script src="{{ asset('plugins/jqvmap/maps/jquery.vmap.usa.js') }}"></script>
<!-- jQuery Knob Chart -->
<script src="{{ asset('plugins/jquery-knob/jquery.knob.min.js') }}"></script>
<!-- daterangepicker -->
<script src="{{ asset('plugins/moment/moment.min.js') }}"></script>
<script src="{{ asset('plugins/daterangepicker/daterangepicker.js') }}"></script>
<!-- Tempusdominus Bootstrap 4 -->
<script src="{{ asset('plugins/tempusdominus-bootstrap-4/js/tempusdominus-bootstrap-4.min.js') }}"></script>
<!-- Summernote -->
<script src="{{ asset('plugins/summernote/summernote-bs4.min.js') }}"></script>
<!-- overlayScrollbars -->
<script src="{{ asset('plugins/overlayScrollbars/js/jquery.overlayScrollbars.min.js') }}"></script>
<!-- AdminLTE App -->
<script src="{{ asset('js/adminlte.js') }}"></script>
<!-- AdminLTE for demo purposes -->
<!--<script src="dist/js/demo.js"></script> -->
{{-- <script src="{{ asset('js/demo.js') }}"></script>
<!-- AdminLTE dashboard demo (This is only for demo purposes) -->
{{-- <script src="{{ asset('js/pages/dashboard.js') }}"></script> --}}
<script src="{{ asset('js/pages/dashboard.js') }}"></script> --}}
<!-- jQuery Script fadeIn fadeOut for the dropdown -->
<script src="{{ asset('plugins/datatables/jquery.dataTables.min.js') }}"></script>
<script src="{{ asset('plugins/datatables-bs4/js/dataTables.bootstrap4.min.js') }}"></script>
<script src="{{ asset('plugins/datatables-responsive/js/dataTables.responsive.min.js') }}"></script>
<script src="{{ asset('plugins/datatables-responsive/js/responsive.bootstrap4.min.js') }}"></script>
<script src="{{ asset('plugins/datatables-buttons/js/dataTables.buttons.min.js') }}"></script>
<script src="{{ asset('plugins/datatables-buttons/js/buttons.bootstrap4.min.js') }}"></script>
<script src="{{ asset('plugins/jszip/jszip.min.js') }}"></script>
<script src="{{ asset('plugins/pdfmake/pdfmake.min.js') }}"></script>
<script src="{{ asset('plugins/pdfmake/vfs_fonts.js') }}"></script>
<script src="{{ asset('plugins/datatables-buttons/js/buttons.html5.min.js') }}"></script>
<script src="{{ asset('plugins/datatables-buttons/js/buttons.print.min.js') }}"></script>
<script src="{{ asset('plugins/datatables-buttons/js/buttons.colVis.min.js') }}"></script>
@yield('scriptsTemplateAdmin')
</html>

File diff suppressed because it is too large Load Diff

View File

@ -162,7 +162,6 @@
{{-- /.card card-primary --}}
<a href="{{ route('test2', ['id' => $projects]) }}" class="btn btn-primary next float-right">Seguinte</a>
</fieldset>
</div>

View File

@ -1,23 +1,436 @@
@extends('Templates/templateAdmin')
@section('Main-content')
<div class="row justify-content-center">
<div class="col-12">
<div class="row justify-content-center">
<div class="card-body">
@if (session('success'))
<div class="alert alert-success" role="alert" id="alert-message-success" style="transition: opacity 1s;">
{{ session('success') }}
</div>
<script>
setTimeout(function() {
$('#alert-message-success').fadeOut('slow', function() {
$(this).remove();
});
}, 5000); // A mensagem desaparecerá após 5 segundos
</script>
@endif
<section class="content-header">
<div class="container-fluid">
<!-- Progressbar -->
<ul id="progressbar" class="nav nav-pills flex-sm-row">
<li class="@if ($step == 1) active @endif flex-sm-fill">Project details</li>
<li class="@if ($step == 2) active @endif flex-sm-fill">Articulated</li>
<li class="@if ($step == 3) active @endif flex-sm-fill">Workstation</li>
<ul id="progressbar" class="nav nav-pills d-flex flex-sm-row justify-content-center">
<li class="@if ($step == 3) active @endif "></li>
{{-- Project details --}}
<li class="@if ($step == 3) active @endif "></li>
{{-- Articulated --}}
<li class="@if ($step == 3) active @endif "></li>
{{-- Workstation --}}
</ul>
</div>
</div>
</section>
{{-- ./content-header --}}
<fieldset class="content">
<div class="container-fluid">
<div class="card card-primary">
<h1>Workstation</h1>
<!-- Aqui vai o conteúdo do seu form da página 3 -->
<a href="{{ route('test2') }}" class="btn btn-primary">Previous</a>
<div class="card-header">
<h3 class="card-title">Postos de Trabalho</h3>
</div>
<!-- ./Card-header -->
<div class="card-body">
<!-- Criar tarefa -->
<div class="card card-success collapsed-card">
<div class="card-header">
<h3 class="card-title">Criar Postos de Trabalho</h3>
<div class="card-tools">
<button type="button" class="btn btn-tool" data-card-widget="collapse"><i
class="fas fa-plus"></i>
</button>
</div>
<!-- /.card-tools -->
</div>
<!-- /.card-header -->
<div class="card-body">
<div class="card ">
<div class="form-group col-md-12">
<div class="card">
<form action="{{ route('createWorkStations') }}" method="post">
@csrf
<input type="hidden" name="numberProject" value="{{ $numberProject }}">
<div class="row">
<div class="form-group">
<label>Selecione o Numero de Postos Pretendidos :
</label>
<input class="form-control" name="numberWorkstations" type="number"
id="numberPosts">
</div>
<input class="btn btn-success" type="submit" value="Guardar">
</div>
</form>
</div>
</div>
</div>
</div>
<!-- /.card-body -->
</div>
<!--/Criar tarefa-->
<!-- Card Posto de Trabalho -->
<div class="card">
<div class="card-header">
<h3 class="card-title">Postos da Obra </h3>
</div>
<div class="card-body">
<div class="table-responsive">
<form action="{{ route('AddNomenclatureWorkstation') }}" method="GET">
<table id="workstationTable" class="table table-bordered table-striped">
<thead>
<tr>
<th>Posto de Trabalho</th>
<th>Nome Posto de Trabalho</th>
<th>Detalhes</th>
</tr>
</thead>
<tbody>
@foreach ($listWorkstations as $listWorkstation)
<tr>
<td>{{ $listWorkstation->name_workstations }}</td>
<td class="text-center">
@if ($listWorkstation->nomenclature_workstation == null)
<input type="text" class="form-control"
name="nameWorkstations[{{ $listWorkstation->name_workstations }}]"
value="">
@else
<input type="text" class="form-control"
name="nameWorkstations[{{ $listWorkstation->name_workstations }}]"
value="{{ $listWorkstation->nomenclature_workstation }}"
readonly>
@endif
</td>
<td class="text-center d-flex justify-content-around">
<a href='#' data-toggle='modal'
data-target='#modal-ViewOfices-{{ $listWorkstation->id_workstations }}'>
<i class='fa-solid fa-edit text-primary'></i>
</a>
<a href="#" data-toggle="modal"
data-target="#modal-remover-{{ $listWorkstation->id_workstations }}">
<i class="fa-solid fa-trash-alt text-danger"></i>
</a>
</td>
</tr>
@endforeach
</tbody>
</table>
<input class="btn btn-primary" type="submit" value="Guardar">
</form>
</div>
<!--/articulado de obra-->
</div>
<!-- /.card-body -->
</div>
<!-- ./Card Posto de Trabalho -->
</div>
{{-- ./card-body --}}
</div>
<!-- ./Card card-primary -->
<a href="{{ route('test2', ['id' => $numberProject]) }}"
class="btn btn-primary previous float-left">Anterior</a>
</div>
{{-- ./container-fluid --}}
</fieldset>
{{-- ./content --}}
@foreach ($listWorkstations as $listWorkstation)
<div class="modal fade" id="modal-ViewOfices-{{ $listWorkstation->id_workstations }}">
<div class="modal-dialog modal-xl">
<div class="modal-content">
<div class="modal-header bg-primary">
<h4 class="modal-title">{{ $listWorkstation->name_workstations }}</h4>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">x</span>
</button>
</div>
<div class="modal-body">
<form action="{{ route('workstationsAssociationTasks') }}" method="get">
<div class="row">
<p>Nome Posto de Trabalho : </p>
<input class="form-control col-sm-6" type="text" name="nameWorkstation"
value="{{ $listWorkstation->nomenclature_workstation }}">
<input type="hidden" name="idWorkStation" value="{{ $listWorkstation->id_workstations }}">
</div>
<br>
<section class="content">
<div class="container-fluid">
<div class="row ">
<div class="col-sm-6">
<div class="card card-success">
<div class="card-header">
<h3 class="card-title">Tarefas Gerais</h3>
<div class="card-tools">
<button type="button" class="btn btn-tool"
data-card-widget="collapse"><i class="fas fa-minus"></i>
</button>
</div>
</div>
<div class="card-body">
<!-- Tabela de Checkbox -->
<div>
<p>TE1 - Desmontar da linha
<input type="checkbox" class="checkboxChoseTasksOficesPSV"
value="1" name="generalTasks[TE1]">
</p>
<p>TE2 - Descontaminar
<input type="checkbox" class="checkboxChoseTasksOficesPSV"
value="2" name="generalTasks[TE2]">
</p>
<p>TE5 - Limpeza e lavagem dos componentes
<input type="checkbox" class="checkboxChoseTasksOficesPSV"
value="5" name="generalTasks[TE5]">
</p>
<p>TE9 - Pintura
<input type="checkbox" class="checkboxChoseTasksOficesPSV"
value="9" name="generalTasks[TE9]">
</p>
<p>TE11 - Inspeção Final
<input type="checkbox" class="checkboxChoseTasksOficesPSV"
value="11" name="generalTasks[TE11]">
</p>
</div>
</div>
</div>
</div>
<div class="col-sm-6">
<div class="row">
@if ($equipments->firstWhere('equipment_type_id', 3))
<div class="col-sm-12">
<div class="card card-primary collapsed-card">
<div class="card-header">
<h3 class="card-title">
Tarefas PSV</h3>
<div class="card-tools">
<button type="button" class="btn btn-tool"
data-card-widget="collapse">
<i class="fas fa-plus"></i>
</button>
</div>
</div>
<div class="card-body">
<p>TE3 - Pré-teste
<input type="checkbox"
class="checkboxChoseTasksOficesPSV"
value="3" name="PsvTasks[TE3]">
</p>
<p>TE6 - Retificação e lapidação
<input type="checkbox"
class="checkboxChoseTasksOficesPSV"
value="6" name="PsvTasks[TE6]">
</p>
<p>TE7 - Fecho da válvula e substituição de componentes
<input type="checkbox"
class="checkboxChoseTasksOficesPSV"
value="7" name="PsvTasks[TE7]">
</p>
<p>TE8 - Calibrar e certificar
<input type="checkbox"
class="checkboxChoseTasksOficesPSV"
value="8" name="PsvTasks[TE8]">
</p>
<p>TE10 - Montagem na linha
<input type="checkbox"
class="checkboxChoseTasksOficesPSV"
value="10" name="PsvTasks[TE10]">
</p>
</div>
</div>
</div>
@endif
@if ($equipments->firstWhere('equipment_type_id', 1))
<div class="col-sm-12">
<div class="card card-primary collapsed-card">
<div class="card-header">
<h3 class="card-title">
Tarefas CV</h3>
<div class="card-tools">
<button type="button" class="btn btn-tool"
data-card-widget="collapse">
<i class="fas fa-plus"></i>
</button>
</div>
</div>
<div class="card-body">
<p>TE12 - Inspeção visual
<input type="checkbox"
class="checkboxChoseTasksOficesPSV"
value="21" name="CvTasks[TE12]">
</p>
<p>TE3(2) - Pré-teste
<input type="checkbox"
class="checkboxChoseTasksOficesPSV"
value="12" name="CvTasks[TE3(2)]">
</p>
<p>TE4(2) - Abertura da válvula, análise e controle dos
componentes
<input type="checkbox"
class="checkboxChoseTasksOficesPSV"
value="13" name="CvTasks[TE4(2)]">
</p>
<p>TE7(2) - Fecho da válvula e substituição de componentes
<input type="checkbox"
class="checkboxChoseTasksOficesPSV"
value="14" name="CvTasks[TE7(2)]">
</p>
<p>TE13 - Teste final
<input type="checkbox"
class="checkboxChoseTasksOficesPSV"
value="15" name="CvTasks[TE13]">
</p>
<p>TE10(2) - Montagem na linha
<input type="checkbox"
class="checkboxChoseTasksOficesPSV"
value="16" name="CvTasks[TE10(2)]">
</p>
</div>
</div>
</div>
@endif
@if ($equipments->firstWhere('equipment_type_id', 2))
<div class="col-sm-12">
<div class="card card-primary collapsed-card">
<div class="card-header">
<h3 class="card-title">
Tarefas ISV</h3>
<div class="card-tools">
<button type="button" class="btn btn-tool"
data-card-widget="collapse">
<i class="fas fa-plus"></i>
</button>
</div>
</div>
<div class="card-body">
<p>TE4(3) - Abertura da válvula, análise e controle dos
componentes
<input type="checkbox"
class="checkboxChoseTasksOficesPSV"
value="TE4(3)">
</p>
<p>TE7(3) - Fecho da válvula e substituição de componentes
<input type="checkbox"
class="checkboxChoseTasksOficesPSV"
value="TE7(3)">
</p>
<p>TE14 - Ensaio
<input type="checkbox"
class="checkboxChoseTasksOficesPSV"
value="TE14">
</p>
<p>TE10 - Montagem na linha
<input type="checkbox"
class="checkboxChoseTasksOficesPSV"
value="TE10">
</p>
<p>TE15 - Empancar
<input type="checkbox"
class="checkboxChoseTasksOficesPSV"
value="TE15">
</p>
</div>
</div>
</div>
@endif
@if ($futherTasks->count() > 0)
<div class="col-sm-12">
<div class="card card-primary collapsed-card">
<div class="card-header">
<h3 class="card-title">
Tarefas Adicionais</h3>
<div class="card-tools">
<button type="button" class="btn btn-tool"
data-card-widget="collapse">
<i class="fas fa-plus"></i>
</button>
</div>
</div>
<div class="card-body">
<p>TC1 - Pintar de Verde
<input type="checkbox"
class="checkboxChoseTasksOficesPSV"
value="16" name="CvTasks[TE10(2)]">
</p>
</div>
</div>
</div>
@endif
</div>
</div>
</div>
{{-- ./row --}}
</section>
<div class="modal-footer justify-content-between">
<!-- Vai ficar o Footer -->
<input type="submit" value="Guardar">
</form>
</div>
</div>
<!-- /.modal-content -->
</div>
<!-- modal-dialog -->
</div>
<!-- /.modal remover-->
</div>
<!-- /.Modal, Postos de Trabalho -->
{{-- modal-remover --}}
<div class="modal fade" id="modal-remover-{{ $listWorkstation->id_workstations }}">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header bg-primary">
<h4 class="modal-title">Remover Posto {{ $listWorkstation->name_workstations }} </h4>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">x</span>
</button>
</div>
<div class="modal-body">
<form action="{{ route('deleteWorkstation', $listWorkstation->name_workstations) }}"
method="POST">
@csrf
@method('DELETE')
<p>Deseja realmente remover o Posto de Trabalho : {{ $listWorkstation->name_workstations }}?
</p>
<input class="btn btn-danger" type="submit" value="Remover">
</form>
</div>
</div>
</div>
</div>
{{-- ./modal-remover --}}
@endforeach
@endsection
@section('scriptsTemplateAdmin')
<script>
$(function() {
$("#workstationTable").DataTable({
"responsive": true,
"lengthChange": false,
"autoWidth": false,
"buttons": ["copy", "csv", "excel", "pdf", "print", "colvis"]
}).buttons().container().appendTo('#workstationTable_wrapper .col-md-6:eq(0)');
});
</script>
@endsection

View File

@ -0,0 +1,50 @@
@extends('testIdiota')
@section('idiota')
<h2>Teste idiota</h2>
<table id="example" class="table table-striped table-bordered" style="width:100%">
<thead>
<tr>
<th>Name</th>
<th>Position</th>
<th>Office</th>
<th>Age</th>
<th>Start date</th>
<th>Salary</th>
</tr>
</thead>
<tbody>
<tr>
<td>Tiger Nixon</td>
<td>System Architect</td>
<td>Edinburgh</td>
<td>61</td>
<td>2011-04-25</td>
<td>$320,800</td>
</tr>
<tr>
<td>Garrett Winters</td>
<td>Accountant</td>
<td>Tokyo</td>
<td>63</td>
<td>2011-07-25</td>
<td>$170,750</td>
</tr>
</tbody>
</table>
@endsection
@section('idiotaScripts')
<script>
$(function() {
$("#example").DataTable({
"responsive": true,
"lengthChange": false,
"autoWidth": false,
"buttons": ["copy", "csv", "excel", "pdf", "print", "colvis"]
}).buttons().container().appendTo('#example_wrapper .col-md-6:eq(0)');
});
</script>
@endsection

View File

@ -0,0 +1,344 @@
<!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() }}">
<title>ISPT 4.0</title>
<!-- Google Font: Source Sans Pro -->
<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('plugins/fontawesome-free/css/all.min.css') }}">
<!-- Font Awesome 6.1.1 -->
<link rel="stylesheet" href="{{ asset('plugins/fontawesome-611/css/all.min.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('plugins/tempusdominus-bootstrap-4/css/tempusdominus-bootstrap-4.min.css') }}">
<!-- iCheck -->
<link rel="stylesheet" href="{{ asset('plugins/icheck-bootstrap/icheck-bootstrap.min.css') }}">
<!-- JQVMap -->
<link rel="stylesheet" href="{{ asset('plugins/jqvmap/jqvmap.min.css') }}">
<!-- Theme style -->
<link rel="stylesheet" href="{{ asset('StyleAdmin/css/adminlte.css') }}">
<!-- overlayScrollbars -->
<link rel="stylesheet" href="{{ asset('plugins/overlayScrollbars/css/OverlayScrollbars.min.css') }}">
<!-- Daterange picker -->
<link rel="stylesheet" href="{{ asset('plugins/daterangepicker/daterangepicker.css') }}">
<!-- summernote -->
<link rel="stylesheet" href="{{ asset('plugins/summernote/summernote-bs4.min.css') }}">
<!-- jQuery UI -->
<link rel="stylesheet" href="{{ asset('plugins/jquery-ui/jquery-ui.css') }}">
{{-- <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script> --}}
{{-- DataTables --}}
<link rel="stylesheet" href="{{ asset('plugins/datatables-bs4/css/dataTables.bootstrap4.min.css')}}">
<link rel="stylesheet" href="{{ asset('plugins/datatables-responsive/css/responsive.bootstrap4.min.css')}}">
<link rel="stylesheet" href="{{ asset('plugins/datatables-buttons/css/buttons.bootstrap4.min.css')}}">
<link rel="stylesheet" href="{{ asset('plugins/datatables/jquery.dataTables.min.js')}}">
<link rel="stylesheet" href="{{ asset('plugins/datatables-bs4/js/dataTables.bootstrap4.min.js')}}">
<link rel="stylesheet" href="{{ asset('plugins/datatables-responsive/js/dataTables.responsive.min.js')}}">
<!-- jQuery -->
<!-- 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>
</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" src="dist/img/ispt.png" 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">
<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">
<div class="image">
<img src="{{ asset('/img/avatar5.png') }}" class="img-circle elevation-2" alt="User Image">
</div>
<div class="info">
@if (Auth::check())
<a href="{{ route('usersProfiles', ['id' => Auth::user()->user_id]) }}" class="d-block">{{ Auth::user()->userType?->type_user }}</a>
@endif
</div>
</div>
<!-- SidebarSearch Form -->
{{-- <div class="form-inline">
<div class="input-group" data-widget="sidebar-search">
<input class="form-control form-control-sidebar" type="search" placeholder="Procurar"
aria-label="search">
<div class="input-group-append">
<button class="btn btn-sidebar">
<i class="fas fa-search fa-fw"></i>
</button>
</div>
</div>
</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('home') }}" class="nav-link active">
<i class="nav-icon fas fa-tachometer-alt"></i>
<p> Dashboard </p>
</a>
</li>
{{-- <li class="nav-item">
<a href="{{ route('createProject') }}" class="nav-link">
<i class="nav-icon fas fa-helmet-safety"></i>
<p> Criar obra </p>
</a>
</li> --}}
<li class="nav-item">
<a href="{{ route('createProject') }}" class="nav-link">
<i class="nav-icon fas fa-helmet-safety"></i>
<p> Criar obra </p>
</a>
</li>
{{-- <li class="nav-item">
<a href="{{ route('test') }}" class="nav-link active">
<i class="nav-icon fas fa-tachometer-alt"></i>
<p>
TestController
</p>
</a>
</li> --}}
<!-- /.Multiple menu item -->
<li class="nav-item">
<a href="{{ route('testExcel') }}" class="nav-link">
<i class="nav-icon fas fa-file"></i>
<p>
Relatórios
</p>
</a>
</li>
<li class="nav-item">
<a href="#" class="nav-link">
<i class="nav-icon fas fa-briefcase"></i>
<p> Portefólio
<i class="fas fa-angle-left right"></i>
</p>
</a>
<ul class="nav nav-treeview">
<li class="nav-item">
<a href="{{ route('manageAssets') }}" class="nav-link">
<i class="fa-solid fa-file-edit"></i>
<p> Gerir Ativos</p>
</a>
</li>
</ul>
</li>
<!-- Single menu item -->
<li class="nav-item">
<a href="#" class="nav-link">
<i class="nav-icon fas fa-gear"></i>
<p> Administração
<i class="fas fa-angle-left right"></i>
</p>
</a>
<ul class="nav nav-treeview">
<li class="nav-item">
<a href="{{ route('users.list') }}" class="nav-link">
<i class="fa-solid fa-users"></i>
<p>Utilizadores</p>
</a>
</li>
<li class="nav-item">
<a href="{{ route('users.company') }}" class="nav-link">
<i class="fa-solid fa-house-user"></i>
<p>Clientes</p>
</a>
</li>
{{-- <li class="nav-item">
<a href="{{ route('users.list') }}" class="nav-link">
<i class="fa-solid fa-file-edit"></i>
<p> Gerir Utilizadores</p>
</a>
</li> --}}
<li class="nav-item">
<a href="{{ route('CreateUsers') }}" class="nav-link">
<i class="nav-icon fas fa-gear"></i>
<p> Criar Utilizadores </p>
</a>
</li>
</ul>
</li>
<!-- /.Single menu item -->
</ul>
</nav>
<!-- /.sidebar-menu -->
</div>
<!-- /.sidebar -->
</aside>
<div class="content-wrapper">
<section class="content">
<div class="container-fluid">
<div class="row justify-content-center">
<div class="col-md-12">
@yield('Main-content')
</div>
{{-- ./col-md-12 --}}
</div>
{{-- ./row justify-content-center --}}
</div>
{{-- ./container-fluid --}}
</section>
{{-- ./content --}}
</div>
{{-- ./content-wrapper --}}
<footer class="main-footer">
<strong>Copyright &copy; 2017-2022 <a href="#">ISPT - Industrial Services, SA</a>.</strong>
Todos os direitos reservados.
<div class="float-right d-none d-sm-inline-block">
<b>Versão</b> 1.0
</div>
</footer>
<!-- Control Sidebar -->
<aside class="control-sidebar control-sidebar-dark">
<!-- Control sidebar content goes here -->
</aside>
<!-- /.control-sidebar -->
</div>
<!-- ./wrapper -->
<!-- jQuery -->
<script src="{{ asset('plugins/jquery/jquery.min.js') }}"></script>
<!-- Bootstrap 4 -->
<script src="{{ asset('plugins/bootstrap/js/bootstrap.bundle.min.js') }}"></script>
<!-- ChartJS -->
<script src="{{ asset('plugins/chart.js/Chart.min.js') }}"></script>
<!-- Sparkline -->
<script src="{{ asset('plugins/sparklines/sparkline.js') }}"></script>
<script src="{{ asset('plugins/chart.js/Chart.min.js') }}"></script>
<!-- JQVMap -->
<script src="{{ asset('plugins/jqvmap/jquery.vmap.min.js') }}"></script>
<script src="{{ asset('plugins/chart.js/Chart.min.js') }}"></script>
<script src="{{ asset('plugins/jqvmap/maps/jquery.vmap.usa.js') }}"></script>
<!-- jQuery Knob Chart -->
<script src="{{ asset('plugins/jquery-knob/jquery.knob.min.js') }}"></script>
<script src="https://unpkg.com/xlsx/dist/xlsx.full.min.js"></script>
<!-- daterangepicker -->
<script src="{{asset('plugins/moment/moment.min.js')}}"></script>
<script src="{{ asset('plugins/daterangepicker/daterangepicker.js') }}"></script>
<!-- Tempusdominus Bootstrap 4 -->
<script src="{{ asset('plugins/tempusdominus-bootstrap-4/js/tempusdominus-bootstrap-4.min.js') }}"></script>
<!-- Summernote -->
<script src="{{ asset('plugins/summernote/summernote-bs4.min.js') }}"></script>
<!-- overlayScrollbars -->
<script src="{{ asset('plugins/overlayScrollbars/js/jquery.overlayScrollbars.min.js') }}"></script>
<!-- AdminLTE App -->
<script src="{{ asset('js/adminlte.js') }}"></script>
<!-- jQuery UI 1.11.4 -->
<script src="{{ asset('plugins/jquery-ui/jquery-ui.min.js') }}"></script>
<!-- Resolve conflict in jQuery UI tooltip with Bootstrap tooltip -->
<script>
$.widget.bridge('uibutton', $.ui.button)
</script>
</body>
</html>
@yield('scripts')
{{-- Script que dao erro no projecto --}}
<!-- AdminLTE for demo purposes -->
<!--<script src="dist/js/demo.js"></script> -->
<!-- AdminLTE dashboard demo (This is only for demo purposes) -->
{{-- <script src="{{ asset('js/pages/dashboard.js') }}"></script> --}}

View File

@ -0,0 +1,124 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<!-- Theme style -->
<link rel="stylesheet" href="{{ asset('StyleAdmin/css/adminlte.css') }}">
<!-- Google Font: Source Sans Pro -->
<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('plugins/fontawesome-free/css/all.min.css')}}">
<!-- Font Awesome 6.1.1 -->
<link rel="stylesheet" href="{{ asset('plugins/fontawesome-611/css/all.min.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('plugins/tempusdominus-bootstrap-4/css/tempusdominus-bootstrap-4.min.css')}}">
<!-- iCheck -->
<link rel="stylesheet" href="{{ asset('plugins/icheck-bootstrap/icheck-bootstrap.min.css')}}">
<!-- JQVMap -->
<link rel="stylesheet" href="{{ asset('plugins/jqvmap/jqvmap.min.css')}}">
<!-- Theme style -->
<link rel="stylesheet" href="{{ asset('StyleAdmin/css/adminlte.css') }}">
<!-- overlayScrollbars -->
<link rel="stylesheet" href="{{ asset('plugins/overlayScrollbars/css/OverlayScrollbars.min.css')}}">
<!-- Daterange picker -->
<link rel="stylesheet" href="{{ asset('plugins/daterangepicker/daterangepicker.css')}}">
<!-- summernote -->
<link rel="stylesheet" href="{{ asset('plugins/summernote/summernote-bs4.min.css')}}">
<!-- daterange picker -->
<link rel="stylesheet" href="{{ asset('plugins/daterangepicker/daterangepicker.css')}}">
<!-- DataTables -->
<link rel="stylesheet" href="{{ asset('plugins/datatables-bs4/css/dataTables.bootstrap4.min.css')}}">
<link rel="stylesheet" href="{{ asset('plugins/datatables-responsive/css/responsive.bootstrap4.min.css')}}">
<link rel="stylesheet" href="{{ asset('plugins/datatables-buttons/css/buttons.bootstrap4.min.css')}}">
</head>
<body>
@yield('idiota')
{{-- <script src="{{ asset('plugins/jquery/jquery.min.js') }}"></script>
<script src="{{ asset('plugins/datatables/jquery.dataTables.min.js') }}"></script>
<script src="{{ asset('plugins/datatables-buttons/js/dataTables.buttons.min.js') }}"></script>
<script href="{{ asset('plugins/datatables-responsive/js/dataTables.responsive.min.js')}}"></script> --}}
<script src="{{ asset('plugins/jquery/jquery.min.js') }}"></script>
<!-- jQuery UI 1.11.4 -->
<script src="{{ asset('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('plugins/bootstrap/js/bootstrap.bundle.min.js') }}"></script>
<!-- ChartJS -->
<script src="{{ asset('plugins/chart.js/Chart.min.js') }}"></script>
<!-- Sparkline -->
<script src="{{ asset('plugins/sparklines/sparkline.js') }}"></script>
<!-- JQVMap -->
<script src="{{ asset('plugins/jqvmap/jquery.vmap.min.js') }}"></script>
<script src="{{ asset('plugins/jqvmap/maps/jquery.vmap.usa.js') }}"></script>
<!-- jQuery Knob Chart -->
<script src="{{ asset('plugins/jquery-knob/jquery.knob.min.js') }}"></script>
<!-- daterangepicker -->
<script src="{{ asset('plugins/moment/moment.min.js') }}"></script>
<script src="{{ asset('plugins/daterangepicker/daterangepicker.js') }}"></script>
<!-- Tempusdominus Bootstrap 4 -->
<script src="{{ asset('plugins/tempusdominus-bootstrap-4/js/tempusdominus-bootstrap-4.min.js') }}"></script>
<!-- Summernote -->
<script src="{{ asset('plugins/summernote/summernote-bs4.min.js') }}"></script>
<!-- overlayScrollbars -->
<script src="{{ asset('plugins/overlayScrollbars/js/jquery.overlayScrollbars.min.js') }}"></script>
<!-- AdminLTE App -->
<script src="{{ asset('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('plugins/datatables/jquery.dataTables.min.js') }}"></script>
<script src="{{ asset('plugins/datatables-bs4/js/dataTables.bootstrap4.min.js') }}"></script>
<script src="{{ asset('plugins/datatables-responsive/js/dataTables.responsive.min.js') }}"></script>
<script src="{{ asset('plugins/datatables-responsive/js/responsive.bootstrap4.min.js') }}"></script>
<script src="{{ asset('plugins/datatables-buttons/js/dataTables.buttons.min.js') }}"></script>
<script src="{{ asset('plugins/datatables-buttons/js/buttons.bootstrap4.min.js') }}"></script>
<script src="{{ asset('plugins/jszip/jszip.min.js') }}"></script>
<script src="{{ asset('plugins/pdfmake/pdfmake.min.js') }}"></script>
<script src="{{ asset('plugins/pdfmake/vfs_fonts.js') }}"></script>
<script src="{{ asset('plugins/datatables-buttons/js/buttons.html5.min.js') }}"></script>
<script src="{{ asset('plugins/datatables-buttons/js/buttons.print.min.js') }}"></script>
<script src="{{ asset('plugins/datatables-buttons/js/buttons.colVis.min.js') }}"></script>
@yield('idiotaScripts')
</body>
</html>

View File

@ -26,24 +26,42 @@
use App\Http\Controllers\ProjectoDatacontroller;
// Route::get('test',[CreateProjectController::class,'index'] )->name('test');
Route::get('workstationsAssociationTasks', [CreateProjectController::class,'workstationsAssociationTasks'])->name('workstationsAssociationTasks');
route::get('AddNomenclatureWorkstation', [CreateProjectController::class,'AddNomenclatureWorkstation'])->name('AddNomenclatureWorkstation');
route::get('removeProjectEquipment', [CreateProjectController::class,'removeProjectEquipment'])->name('removeProjectEquipment');
Route::delete('deleteWorkstation/{name}', [CreateProjectController::class, 'deleteWorkstation'])->name('deleteWorkstation');
route::get('idiota',function(){
return view('recebeIdiota');
});
Route::get('/api/equipment/{id}', [CreateProjectController::class,'showJson']);
Route::post('/EditEquipmentsProjects',[CreateProjectController::class,'EditEquipmentsProjects'])->name('EditEquipmentsProjects');
// Vai ser unicamente a pagina de criacao de uma obra
Route::get('/createProject', [CreateProjectController::class,'createProjectForStep1'])->name('createProject');
Route::post('/newProject1', [CreateProjectController::class,'processStep1'])->name('processStep1');
route::post('/createWorkStations',[CreateProjectController::class,'createWorkStations'])->name('createWorkStations');
Route::get('/test1/{id}', [CreateProjectController::class,'showStep1'])->name('test1');
Route::get('/test2/{id}', [CreateProjectController::class,'showStep2'])->name('test2');
Route::get('/test3/{id}', [CreateProjectController::class,'showStep3'])->name('test3');
Route::post('test1', [CreateProjectController::class,'EditprocessStep1'])->name('EditprocessStep1');
Route::post('/test2', [CreateProjectController::class,'processStep2'])->name('processStep2');
Route::post('/test2CreateEquipment',[CreateProjectController::class,'createEquipmentManual'])->name('test2CreateEquipment');
Route::get('/test3', [CreateProjectController::class,'showStep3'])->name('test3');
Route::post('/test3', [CreateProjectController::class,'processStep3']);
Route::get('testando',function(){
@ -182,6 +200,9 @@
Route::get('/api/installations/', [CreateProjectController::class, 'getByUserNif']);
Route::get('/api/ambits/{equipmentType}',[CreateProjectController::class, 'getAmbits']);
Route::get('/equipments/{id}/attributes', [CreateProjectController::class, 'getAttributes']);
Route::post('/register', [CustomRegistrationController::class, 'store'])->name('register');
@ -210,7 +231,7 @@
| be assigned to the "web" middleware group. Make something great!
|
*/
Route::get('manageAssets',[ProjectoDatacontroller::class,'ManageAssets'])->name('manageAssets');
// Route::get('manageAssets',[ProjectoDatacontroller::class,'ManageAssets'])->name('manageAssets');
/*