we have finalized the part of the prepared works as well as their general implementation and we have started the creation of the works in execution.

This commit is contained in:
ygbanzato 2023-07-11 10:18:38 +01:00
parent f622782eae
commit 599fd6bf7a
22 changed files with 2305 additions and 564 deletions

View File

@ -22,6 +22,7 @@
use App\Models\OrderEquipmentTasks; use App\Models\OrderEquipmentTasks;
use App\Models\FurtherTasks; use App\Models\FurtherTasks;
use App\Models\WorkstationsAssociationTasks; use App\Models\WorkstationsAssociationTasks;
use App\Models\TasksAssociationAmbits;
// use DataTables; // use DataTables;
@ -29,10 +30,11 @@
class CreateProjectController extends Controller class CreateProjectController extends Controller
{ {
public function finishCreatingProject($numberProject){ public function finishCreatingProject($numberProject)
{
$project = CompanyProject::find($numberProject); $project = CompanyProject::find($numberProject);
$project->order_project = 2 ; $project->order_project = 2;
$project->save(); $project->save();
return redirect()->route('home'); return redirect()->route('home');
@ -153,38 +155,36 @@ public function EditEquipmentsProjects(Request $request)
} }
} }
$executionOrder = 1; // Inicia a contagem da ordem de execução
// foreach ($request->input('ordemTasks') as $key => $value) { // Se nao selecionar nenhuma tarefas ele devolve um erro , pois e necessario pelo menos uma
// // Procura o registro relevante em OrderEquipmentTasks if (!in_array('on', $request->input('ordemTasks'))) {
// $orderEquipmentTask = OrderEquipmentTasks::where('equipment_id', $request->equipmentId) return redirect()->back()->with('danger', 'É necessário selecionar pelo menos uma tarefa, Para o Equipamento : '.$equipment->equipment_tag );
// ->where('elemental_tasks_id', $key) }
// ->first(); $executionOrder = 1;
// // Se o valor é 'on' foreach ($request->input('ordemTasks') as $key => $value) {
// if ($value === "on") { $orderEquipmentTask = OrderEquipmentTasks::where('equipment_id', $request->equipmentId)
// // Se o registro não existir, cria um novo ->where('elemental_tasks_id', $key)
// if (!$orderEquipmentTask) { ->first();
// $orderEquipmentTask = new OrderEquipmentTasks(); // dd($orderEquipmentTask);
// $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' if ($value == "on") {
// $executionOrder++; if (!$orderEquipmentTask) {
// } $orderEquipmentTask = new OrderEquipmentTasks();
// // Se o valor é 'off' e o registro existir, o deleta $orderEquipmentTask->equipment_id = $request->equipmentId;
// elseif ($value === "off" && $orderEquipmentTask) { $orderEquipmentTask->elemental_tasks_id = $key;
// $orderEquipmentTask->delete(); }
// } $orderEquipmentTask->execution_order = $executionOrder;
// } $orderEquipmentTask->save();
// Atualiza a ordem de execução dos restantes 'on' após as remoções $executionOrder++;
} elseif ($value == "off" && $orderEquipmentTask) {
$orderEquipmentTask->delete();
}
}
$executionOrder = 1; // Reinicia a contagem de ordem de execução
$remainingOrderEquipmentTasks = OrderEquipmentTasks::where('equipment_id', $request->equipmentId) $remainingOrderEquipmentTasks = OrderEquipmentTasks::where('equipment_id', $request->equipmentId)
->where('execution_order', '>=', $executionOrder)
->orderBy('execution_order', 'asc') ->orderBy('execution_order', 'asc')
->get(); ->get();
@ -194,24 +194,21 @@ public function EditEquipmentsProjects(Request $request)
$executionOrder++; $executionOrder++;
} }
// Obtém todas as tarefas na ordem correta
$orderTasks = OrderEquipmentTasks::where('equipment_id', $request->equipmentId) $orderTasks = OrderEquipmentTasks::where('equipment_id', $request->equipmentId)
->orderBy('execution_order', 'asc') ->orderBy('execution_order', 'asc')
->get(); ->get();
// Cria uma matriz associativa para armazenar o elemental_tasks_id e o execution_order
$taskExecutionOrders = []; $taskExecutionOrders = [];
foreach ($orderTasks as $task) { foreach ($orderTasks as $task) {
$taskExecutionOrders[$task->elemental_tasks_id] = $task->execution_order; $taskExecutionOrders[$task->elemental_tasks_id] = $task->execution_order;
} }
// Retorna uma resposta // Retorna uma resposta
return redirect()->route('test2', ['id' => $request->numberProject]) return redirect()->route('test2', ['id' => $request->numberProject])
->with('success', 'Equipamento ' . $equipment->equipment_tag . ' Editado com Sucesso!!!') ->with('success', 'Equipamento ' . $equipment->equipment_tag . ' Editado com Sucesso!!!')
->with('taskExecutionOrders', $taskExecutionOrders); ->with('taskExecutionOrders', $taskExecutionOrders);
} }
public function showJson($id) public function showJson($id)
{ {
$attributes = SpecificAttributesEquipmentType::where('equipment_id', $id)->get(); $attributes = SpecificAttributesEquipmentType::where('equipment_id', $id)->get();
@ -259,7 +256,6 @@ public function createWorkStations(Request $request)
} }
// Funcao apenas para retornar os dados necessarios para a view criar uma Obra. // Funcao apenas para retornar os dados necessarios para a view criar uma Obra.
public function createProjectForStep1() public function createProjectForStep1()
{ {
@ -272,7 +268,12 @@ public function createProjectForStep1()
//Devolve para a primeira para na descricao do projecto apenas user com ID 3, quer dizer que apenas as "empresas" //Devolve para a primeira para na descricao 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::find($company_projects_id);
$projects = CompanyProject::with('user')->find($company_projects_id);
// dd($projects->user);
$companies = User::where('type_users', 3)->get(); $companies = User::where('type_users', 3)->get();
return view('projectsClients/projectDetails_1', ['step' => 1], ['companies' => $companies]) return view('projectsClients/projectDetails_1', ['step' => 1], ['companies' => $companies])
@ -331,6 +332,7 @@ public function CreateNewEquipmentFromPendingEquipment(Request $request, $id)
public function processStep1(Request $request) public function processStep1(Request $request)
{ {
dd($request);
// Validação... // Validação...
$installationId = $request->input('installation_id'); $installationId = $request->input('installation_id');
@ -356,7 +358,12 @@ public function processStep1(Request $request)
$project->project_company_number = $request->input('project_company_number'); $project->project_company_number = $request->input('project_company_number');
$project->project_ispt_responsible = $request->input('responsible_project_ispt'); $project->project_ispt_responsible = $request->input('responsible_project_ispt');
$project->project_company_responsible = $request->input('responsible_project_company'); $project->project_company_responsible = $request->input('responsible_project_company');
$project->date_started = $request->input('date_started');
// Verifica se e igual a nulo , se for usa a data ja existente
if ($request->date_started === null) {
$project->date_started = $request->input('date_started_present');
} else
$project->date_started = $request->input('date_started');
$project->plant_id = $installationId; $project->plant_id = $installationId;
@ -527,6 +534,22 @@ public function createEquipmentManual(Request $request)
$AssociationEquipmentAmbit->save(); $AssociationEquipmentAmbit->save();
$execution_order = 1;
//Recebe a tabela com as associoacoes entre Ambitos e tarefas Elementares
$TasksAssociationAmbits = TasksAssociationAmbits::all()->where('ambits_equipment_id', $AssociationEquipmentAmbit->ambits_id);
foreach ($TasksAssociationAmbits as $TasksAssociationAmbit) {
$JoinsEquipmentsWithTasks = new OrderEquipmentTasks;
$JoinsEquipmentsWithTasks->equipment_id = $equipmentID;
$JoinsEquipmentsWithTasks->execution_order = $execution_order++;
$JoinsEquipmentsWithTasks->elemental_tasks_id = $TasksAssociationAmbit->elemental_tasks_id;
$JoinsEquipmentsWithTasks->further_tasks_id = null;
$JoinsEquipmentsWithTasks->inspection = 'Nao';
$JoinsEquipmentsWithTasks->save();
}
// O $request->numberProject e sempre necessario retornar para indicar a obra que se esta modificando... // O $request->numberProject e sempre necessario retornar para indicar a obra que se esta modificando...
return redirect()->route('test2', ['id' => $request->numberProject]) return redirect()->route('test2', ['id' => $request->numberProject])
->with('success', 'Equipamento criado com sucesso') ->with('success', 'Equipamento criado com sucesso')
@ -719,7 +742,7 @@ public function workstationsAssociationTasks(Request $request)
$workStation->nomenclature_workstation = $request->nameWorkstation; $workStation->nomenclature_workstation = $request->nameWorkstation;
$workStation->save(); $workStation->save();
} }
// então, iteramos sobre as três listas de tarefas e as associamos à estação de trabalho // então, iteramos sobre as três listas de tarefas e as associamos à estação de trabalho
$taskTypes = ['generalTasks', 'PsvTasks', 'CvTasks']; $taskTypes = ['generalTasks', 'PsvTasks', 'CvTasks'];
foreach ($taskTypes as $taskType) { foreach ($taskTypes as $taskType) {
@ -734,7 +757,7 @@ public function workstationsAssociationTasks(Request $request)
} }
} }
// Redirecionar de volta com uma mensagem de sucesso // Redirecionar de volta com uma mensagem de sucesso
return back()->with('success', 'Posto de trabalho : '.$workStation->name_workstations.' atualizado com sucesso!'); return back()->with('success', 'Posto de trabalho : ' . $workStation->name_workstations . ' atualizado com sucesso!');
} }
public function processStep3(Request $request) public function processStep3(Request $request)

View File

@ -33,7 +33,7 @@ public function store(Request $request){
$request->validate([ $request->validate([
'name' => 'required', 'name' => 'required',
'lastName' => 'required', 'lastName' => 'required',
'pending_email' => 'required|email|unique:pending_users,pending_email|unique:users,email', 'pending_email' => 'required|email|unique:pending_users,pending_user_email|unique:users,email',
'pending_phone' => 'required', 'pending_phone' => 'required',
'pending_nif' => 'required', 'pending_nif' => 'required',
'pending_password' => 'required|min:8|confirmed', 'pending_password' => 'required|min:8|confirmed',
@ -41,18 +41,25 @@ public function store(Request $request){
$joinName = $request->get('name') . ' ' . $request->get('lastName'); $joinName = $request->get('name') . ' ' . $request->get('lastName');
$pendingUser = new PendingUser([ // $pendingUser = new PendingUser([
'pending_name' => $joinName, // 'pending_user_name' => $joinName,
'pending_email' => $request->get('pending_email'), // 'pending_user_email' => $request->get('pending_email'),
'pending_phone' => $request->get('pending_phone'), // 'pending_user_phone' => $request->get('pending_phone'),
'pending_nif' => $request->get('pending_nif'), // 'pending_user_nif' => $request->get('pending_nif'),
'pending_password' => Hash::make($request->get('pending_password')), // 'pending_user_password' => Hash::make($request->get('pending_password')),
]); // ]);
$pendingUser = new PendingUser();
$pendingUser->pending_user_name = $joinName;
$pendingUser->pending_user_email = $request->get('pending_email');
$pendingUser->pending_user_phone = $request->get('pending_phone');
$pendingUser->pending_user_nif = $request->get('pending_nif');
$pendingUser->pending_user_password = Hash::make($request->get('pending_password'));
$pendingUser->save(); $pendingUser->save();
// Enviar email de notificação para todos os Super_Administrador // Enviar email de notificação para todos os Super_Administrador
$superAdmins = User::where('user_type', 'Super_Administrador')->get(); $superAdmins = User::where('type_users', 'Super_Administrador')->get();
$newUserNotification = new NewUserNotification(); $newUserNotification = new NewUserNotification();
foreach ($superAdmins as $superAdmin) { foreach ($superAdmins as $superAdmin) {

View File

@ -0,0 +1,118 @@
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
use Yajra\DataTables\DataTables;
use App\Models\CompanyProject;
use App\Models\Equipment;
use App\Models\EquipmentType;
use App\Models\Unit;
use App\Models\AmbitsEquipment;
class PreparedProjectController extends Controller
{
public function PreparedProject($ProjectId)
{
$numberProject = CompanyProject::find($ProjectId);
$equipmentsProjects = Equipment::all()->where('company_projects_id', $ProjectId);
$equipmentsTypes = EquipmentType::all();
//Retorna todas as Fabricas Unit, com base na instalacao
$checkUnits = DB::table('units')
->join('plants', 'units.plant_id', '=', 'plants.plant_id')
->join('company_projects', 'plants.plant_id', '=', 'company_projects.plant_id')
->select('units.*')
->where('company_projects.company_projects_id', '=', $numberProject->company_projects_id)
->get();
return view('projectsClients/preparedProject')
->with('equipmentsProjects', $equipmentsProjects)
->with('equipmentsTypes', $equipmentsTypes)
->with('units', $checkUnits)
->with('numberProject', $numberProject);
}
public function getAmbits($equipmentType)
{
$ambits = DB::table('ambits_equipments')
->select('ambits_equipments.*')
->where('ambits_equipments.equipment_type_id', $equipmentType)
->get();
return response()->json($ambits);
}
public function editProjectForArticulated(Request $request)
{
$numberProject = CompanyProject::find($request->ProjectId);
$numberProject->order_project = 1;
$numberProject->save();
return redirect()->route('home');
}
public function getData1()
{
$equipment_type_id = request('equipment_type_id');
$unit_id = request('unit_id');
$ambits_id = request('ambits_id');
// Equipment::all()->where('company_projects_id', $ProjectId);
// Caso 'equipment_type_id' seja '#', mostra todos os equipamentos
if ($equipment_type_id == '#') {
$model = Equipment::query()->with(['equipmentType', 'unit', 'equipmentAssociationAmbit.ambitsEquipment']);
}
// Caso 'equipment_type_id' não seja '#', filtra os equipamentos por tipo e ambito (caso 'ambits_id' não seja '#')
else {
$equipment_type_id = intval($equipment_type_id);
$model = Equipment::where('equipments.equipment_type_id', $equipment_type_id)
->join('equipment_association_ambits', 'equipments.equipment_id', '=', 'equipment_association_ambits.equipment_id')
->with(['equipmentType', 'unit', 'equipmentAssociationAmbit.ambitsEquipment']);
if ($ambits_id != '#') {
$ambits_id = intval($ambits_id);
$model->where('equipment_association_ambits.ambits_id', $ambits_id);
}
}
if(request()->has('inspec') && request('inspec') != '#') {
$inspectionFilter = request('inspec') === 'Sim';
$model->whereHas('orderEquipmentTasks', function ($query) use ($inspectionFilter) {
$query->where('inspection', $inspectionFilter ? 'Sim' : 'Nao');
});
}
// Aplica o filtro de 'unit_id', se aplicável
if ($unit_id != '#') {
$unit_id = intval($unit_id);
$model->where('equipments.unit_id', $unit_id);
}
// Gera a tabela de dados
return DataTables::of($model)
->addColumn('equipment_type', function ($row) {
return $row->equipmentType->equipment_type_name;
})
->addColumn('Unit', function ($row) {
return $row->unit->unit_name;
})
->addColumn('Ambits', function ($row) {
return $row->equipmentAssociationAmbit->ambitsEquipment->ambits_description;
})
->addColumn('Inspec', function ($row) {
return $row->hasInspectionYes() ? 'Sim' : 'Nao';
})
->toJson();
}
}

View File

@ -105,7 +105,7 @@ public function update(Request $request, User $user)
{ {
$request->validate([ $request->validate([
'name' => 'required', 'name' => 'required',
'email' => 'required|email|unique:users,email,' . $user->id, 'email' => 'required|email|unique:users,email,' . $user->user_id,
'password' => 'nullable|min:8|confirmed', 'password' => 'nullable|min:8|confirmed',
'user_type' => 'required', 'user_type' => 'required',
'user_phone' => 'required', 'user_phone' => 'required',

View File

@ -13,4 +13,13 @@ class CompanyProject extends Model
protected $primaryKey = 'company_projects_id'; protected $primaryKey = 'company_projects_id';
public $timestamps = false; public $timestamps = false;
public function plants(){
return $this->hasMany(Plant::class,'plant_id', 'plant_id');
}
public function user(){
return $this->hasOneThrough(User::class, Plant::class, 'plant_id', 'user_id');
}
} }

View File

@ -30,11 +30,6 @@ public function equipmentType()
return $this->belongsTo(EquipmentType::class, 'equipment_type_id', 'equipment_type_id'); return $this->belongsTo(EquipmentType::class, 'equipment_type_id', 'equipment_type_id');
} }
// public function specificAttributes()
// {
// return $this->hasMany(SpecificAttributesEquipmentType::class, 'equipment_id', 'equipment_id');
// }
public function specificAttributes() public function specificAttributes()
{ {
return $this->hasMany(SpecificAttributesEquipmentType::class, 'equipment_id', 'equipment_id') return $this->hasMany(SpecificAttributesEquipmentType::class, 'equipment_id', 'equipment_id')
@ -44,6 +39,17 @@ public function specificAttributes()
public function equipmentAssociationAmbit() public function equipmentAssociationAmbit()
{ {
return $this->hasMany(EquipmentAssociationAmbit::class, 'equipment_id', 'equipment_id'); //Antiga hasMany , apenas colocado hasOne para funcionar o datatables
return $this->hasOne(EquipmentAssociationAmbit::class, 'equipment_id', 'equipment_id');
}
public function orderEquipmentTasks()
{
return $this->hasMany(OrderEquipmentTasks::class, 'equipment_id', 'equipment_id');
}
public function hasInspectionYes()
{
return $this->orderEquipmentTasks()->where('inspection', 'Sim')->exists();
} }
} }

View File

@ -11,4 +11,9 @@ class OrderEquipmentTasks extends Model
public $timestamps = false; public $timestamps = false;
protected $table = 'ordered_equipment_tasks'; protected $table = 'ordered_equipment_tasks';
public function equipment()
{
return $this->belongsTo(Equipment::class, 'equipment_id', 'equipment_id');
}
} }

View File

@ -0,0 +1,13 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class TasksAssociationAmbits extends Model
{
use HasFactory;
protected $table = 'tasks_association_ambits';
}

View File

@ -39,13 +39,13 @@
<div class="card"> <div class="card">
<div class="card-header">Editar Usuário</div> <div class="card-header">Editar Usuário</div>
<div class="card-body"> <div class="card-body">
<form action="{{ route('users.update', $user->id) }}" method="POST"> <form action="{{ route('users.update', $user->user_id) }}" method="POST">
@csrf @csrf
@method('PUT') @method('PUT')
<div class="form-group"> <div class="form-group">
<label for="name">Nome:</label> <label for="name">Nome:</label>
<input type="text" class="form-control" id="name" name="name" value="{{ $user->name }}" required> <input type="text" class="form-control" id="name" name="name" value="{{ $user->user_name }}" required>
</div> </div>
<div class="form-group"> <div class="form-group">

View File

@ -48,10 +48,10 @@
<td>{{ optional(\App\Models\TypeUser::find($user->user_type))->type }}</td> <td>{{ optional(\App\Models\TypeUser::find($user->user_type))->type }}</td>
<td class="text-center d-flex justify-content-around"> <td class="text-center d-flex justify-content-around">
<a href="{{ route('users.Show', ['id' => $user->id]) }}"> <a href="{{ route('users.Show', ['id' => $user->user_id]) }}">
<i class="fa-solid fa-eye text-secondary"></i> <i class="fa-solid fa-eye text-secondary"></i>
</a> </a>
<a href="{{ route('users.edit', ['id' => $user->id]) }}"> <a href="{{ route('users.edit', ['id' => $user->user_id]) }}">
<i class="fa-solid fa-edit text-primary"></i> <i class="fa-solid fa-edit text-primary"></i>
</a> </a>
{{-- <a href="#"> {{-- <a href="#">

View File

@ -41,18 +41,18 @@
<tbody> <tbody>
@foreach ($users as $user) @foreach ($users as $user)
<tr> <tr>
<td>{{ $user->id }}</td> <td>{{ $user->user_id }}</td>
<td>{{ $user->name }}</td> <td>{{ $user->user_name }}</td>
<td>{{ $user->email }}</td> <td>{{ $user->email }}</td>
{{-- <td>{{ $user->user_type }}</td> --}} {{-- <td>{{ $user->user_type }}</td> --}}
<td>{{ optional(\App\Models\TypeUser::find($user->user_type))->type }}</td> <td>{{ optional(\App\Models\TypeUser::find($user->type_users))->type_user }}</td>
<td class="text-center d-flex justify-content-around"> <td class="text-center d-flex justify-content-around">
<a href="{{ route('users.Show', ['id' => $user->id]) }}"> <a href="{{ route('users.Show', ['id' => $user->user_id]) }}">
<i class="fa-solid fa-eye text-secondary"></i> <i class="fa-solid fa-eye text-secondary"></i>
</a> </a>
<a href="{{ route('users.edit', ['id' => $user->id]) }}"> <a href="{{ route('users.edit', ['id' => $user->user_id]) }}">
<i class="fa-solid fa-edit text-primary"></i> <i class="fa-solid fa-edit text-primary"></i>
</a> </a>
{{-- <a href="#"> {{-- <a href="#">

View File

@ -14,11 +14,11 @@
<table class="table table-bordered table-striped"> <table class="table table-bordered table-striped">
<tr> <tr>
<th>ID</th> <th>ID</th>
<td>{{ $user->id }}</td> <td>{{ $user->user_id }}</td>
</tr> </tr>
<tr> <tr>
<th>Nome</th> <th>Nome</th>
<td>{{ $user->name }}</td> <td>{{ $user->user_name }}</td>
</tr> </tr>
<tr> <tr>
<th>Email</th> <th>Email</th>
@ -51,7 +51,7 @@
<div class="col-sm"> <div class="col-sm">
</div> </div>
<div class="col-sm"> <div class="col-sm">
<a href="{{ route('users.edit', ['id' => $user->id]) }}" class="btn btn-primary">Editar usuário</a> <a href="{{ route('users.edit', ['id' => $user->user_id]) }}" class="btn btn-primary">Editar usuário</a>
</div> </div>
</div> </div>

View File

@ -91,12 +91,23 @@ class="btn btn-tool">
<div class="card-body"> <div class="card-body">
@foreach ($CompanyProject as $project) @foreach ($CompanyProject as $project)
@if ($project->order_project == 2) @if ($project->order_project == 2)
<div class="card card-primary card-outline"> {{-- <div class="card card-primary card-outline">
<div class="card-header"> <div class="card-header">
<h5 class="card-title">Paragem Cliente 2 OUT2022</h5> <h5 class="card-title">Paragem Cliente 2 OUT2022</h5>
<div class="card-tools"> <div class="card-tools">
<a href="#" class="btn btn-tool"> <a href="{{route('preparedProject', ['ProjectId'=>$project->company_projects_id])}}" class="btn btn-tool">
<i class="fas fa-eye"></i> <i class="fa-solid fa-eye" style="color:rgb(62, 62, 62)"></i>
</a>
</div>
</div>
</div> --}}
<div class="card card-secondary card-outline">
<div class="card-header">
<h5 class="card-title">{{ $project->company_project_description }}</h5>
<div class="card-tools">
<a href="{{ route('preparedProject', ['ProjectId' => $project->company_projects_id]) }}"
class="btn btn-tool">
<i class="fa-solid fa-eye" style="color:rgb(62, 62, 62)"></i>
</a> </a>
</div> </div>
</div> </div>
@ -132,7 +143,7 @@ class="btn btn-tool">
<div class="card-body"> <div class="card-body">
@foreach ($CompanyProject as $project) @foreach ($CompanyProject as $project)
@if ($project->order_project == 3) @if ($project->order_project == 3)
<div class="card card-warning card-outline"> {{-- <div class="card card-warning card-outline">
<div class="card-header"> <div class="card-header">
<h5 class="card-title">Paragem Cliente 1 JUN2022</h5> <h5 class="card-title">Paragem Cliente 1 JUN2022</h5>
<div class="card-tools"> <div class="card-tools">
@ -141,6 +152,17 @@ class="btn btn-tool">
</a> </a>
</div> </div>
</div> </div>
</div> --}}
<div class="card card-secondary card-outline">
<div class="card-header">
<h5 class="card-title">{{ $project->company_project_description }}</h5>
<div class="card-tools">
<a href="{{ route('test2', ['id' => $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> </div>
@endif @endif
@endforeach @endforeach

View File

@ -8,99 +8,330 @@
<div class="col-md-12"> <div class="col-md-12">
<!-- Card box User Profile --> <!-- Card box User Profile -->
<br><br> <br><br>
<div class="card card-primary"> <section class="section profile">
<div class="row">
<div class="col-xl-4">
<div class="card-body"> <div class="card">
<div class="row align-items-center"> <div class="card-body profile-card pt-4 d-flex flex-column align-items-center">
<div class="col-sm">
<div class="user-panel mt-3 pb-3 mb-3">
<div class="image d-flex justify-content-center align-items-center"> <img src="{{ asset('/img/avatar5.png') }}" class="img-circle elevation-2 imgProfile"
alt="User Image">
<h2>{{ $user->user_name }}</h2>
<h3>{{ $user->userType->type_user_id }}</h3>
<label for="input-file" class="imgProfile-hover">
<img src="{{ asset('/img/avatar5.png') }}"
class="img-circle elevation-2 imgProfile" alt="User Image">
{{-- Parte de baixo para colocar o 'Escolher arquivo' --}}
{{-- <div class="input-group input-file">
<input type="text" class="form-control"
placeholder="Escolha um arquivo" readonly>
<span class="input-group-btn">
<button class="btn btn-secondary btn-choose"
type="button">Escolher arquivo</button>
</span>
</div> --}}
</label>
{{-- <input type="file" id="input-file" class="d-none"> --}}
</div>
<div class="text-center">
<h5>{{$user->userType->type }} :: {{$user->name}} </h5>
</div>
</div>
<div class="info text-center">
{{-- <p class="d-block" style="font-size: 2rem;">{{ $tipo_usuario }}</p> --}}
</div> </div>
</div> </div>
<div class="col-sm">
<div class="row">
<div class="col-sm form-group align-self-center">
<p>Nome: <input class="form-control" type="text" name="" value="{{$user->name}}"></p>
</div>
<div class="col-sm form-group align-self-center"> </div>
<p>Email: <input class="form-control" type="text" name="" value="{{$user->email}}"></p>
</div>
</div>
<div class="row"> <div class="col-xl-8">
<div class="col-sm form-group align-self-center">
<p>Telemovel: <input class="form-control" type="text" name="" value="{{$user->user_phone}}"></p>
</div>
<div class="col-sm form-group align-self-center"> <div class="card">
<p>NIF: <input class="form-control" type="text" name="" value="{{$user->user_nif}}"></p> <div class="card-body pt-3">
</div> <!-- Bordered Tabs -->
</div> <ul class="nav nav-tabs nav-tabs-bordered">
<li class="nav-item">
<button class="nav-link active" data-bs-toggle="tab"
data-bs-target="#profile-overview">Perfil</button>
</li>
<li class="nav-item">
<button class="nav-link" data-bs-toggle="tab"
data-bs-target="#profile-edit">Editar Perfil</button>
</li>
</ul>
<div class="tab-content pt-2">
<div class="tab-pane fade show active profile-overview" id="profile-overview">
<h5 class="card-title">Profile Details</h5>
<div class="row">
<div class="col-lg-3 col-md-4 label ">Full Name</div>
<div class="col-lg-9 col-md-8">Kevin Anderson</div>
</div>
<div class="row">
<div class="col-lg-3 col-md-4 label">Company</div>
<div class="col-lg-9 col-md-8">Lueilwitz, Wisoky and Leuschke</div>
</div>
<div class="row">
<div class="col-lg-3 col-md-4 label">Job</div>
<div class="col-lg-9 col-md-8">Web Designer</div>
</div>
<div class="row">
<div class="col-lg-3 col-md-4 label">Country</div>
<div class="col-lg-9 col-md-8">USA</div>
</div>
<div class="row">
<div class="col-lg-3 col-md-4 label">Address</div>
<div class="col-lg-9 col-md-8">A108 Adam Street, New York, NY 535022
</div>
</div>
<div class="row">
<div class="col-lg-3 col-md-4 label">Phone</div>
<div class="col-lg-9 col-md-8">(436) 486-3538 x29071</div>
</div>
<div class="row">
<div class="col-lg-3 col-md-4 label">Email</div>
<div class="col-lg-9 col-md-8">k.anderson@example.com</div>
</div>
{{-- <div class="row">
<div class="col-sm form-group align-self-center">
<p>Senha : <input class="form-control" type="password" ></p>
</div> </div>
<div class="col-sm form-group align-self-center"> <div class="tab-pane fade profile-edit pt-3" id="profile-edit">
<p>Confirmar Senha : <input class="form-control" type="password" ></p>
<!-- Profile Edit Form -->
<form>
<div class="row mb-3">
<label for="profileImage"
class="col-md-4 col-lg-3 col-form-label">Profile Image</label>
<div class="col-md-8 col-lg-9">
<img src="assets/img/profile-img.jpg" alt="Profile">
<div class="pt-2">
<a href="#" class="btn btn-primary btn-sm"
title="Upload new profile image"><i
class="bi bi-upload"></i></a>
<a href="#" class="btn btn-danger btn-sm"
title="Remove my profile image"><i
class="bi bi-trash"></i></a>
</div>
</div>
</div>
<div class="row mb-3">
<label for="fullName" class="col-md-4 col-lg-3 col-form-label">Full
Name</label>
<div class="col-md-8 col-lg-9">
<input name="fullName" type="text" class="form-control"
id="fullName" value="Kevin Anderson">
</div>
</div>
<div class="row mb-3">
<label for="about"
class="col-md-4 col-lg-3 col-form-label">About</label>
<div class="col-md-8 col-lg-9">
<textarea name="about" class="form-control" id="about" style="height: 100px">Sunt est soluta temporibus accusantium neque nam maiores cumque temporibus. Tempora libero non est unde veniam est qui dolor. Ut sunt iure rerum quae quisquam autem eveniet perspiciatis odit. Fuga sequi sed ea saepe at unde.</textarea>
</div>
</div>
<div class="row mb-3">
<label for="company"
class="col-md-4 col-lg-3 col-form-label">Company</label>
<div class="col-md-8 col-lg-9">
<input name="company" type="text" class="form-control"
id="company" value="Lueilwitz, Wisoky and Leuschke">
</div>
</div>
<div class="row mb-3">
<label for="Job"
class="col-md-4 col-lg-3 col-form-label">Job</label>
<div class="col-md-8 col-lg-9">
<input name="job" type="text" class="form-control"
id="Job" value="Web Designer">
</div>
</div>
<div class="row mb-3">
<label for="Country"
class="col-md-4 col-lg-3 col-form-label">Country</label>
<div class="col-md-8 col-lg-9">
<input name="country" type="text" class="form-control"
id="Country" value="USA">
</div>
</div>
<div class="row mb-3">
<label for="Address"
class="col-md-4 col-lg-3 col-form-label">Address</label>
<div class="col-md-8 col-lg-9">
<input name="address" type="text" class="form-control"
id="Address"
value="A108 Adam Street, New York, NY 535022">
</div>
</div>
<div class="row mb-3">
<label for="Phone"
class="col-md-4 col-lg-3 col-form-label">Phone</label>
<div class="col-md-8 col-lg-9">
<input name="phone" type="text" class="form-control"
id="Phone" value="(436) 486-3538 x29071">
</div>
</div>
<div class="row mb-3">
<label for="Email"
class="col-md-4 col-lg-3 col-form-label">Email</label>
<div class="col-md-8 col-lg-9">
<input name="email" type="email" class="form-control"
id="Email" value="k.anderson@example.com">
</div>
</div>
<div class="row mb-3">
<label for="Twitter"
class="col-md-4 col-lg-3 col-form-label">Twitter
Profile</label>
<div class="col-md-8 col-lg-9">
<input name="twitter" type="text" class="form-control"
id="Twitter" value="https://twitter.com/#">
</div>
</div>
<div class="row mb-3">
<label for="Facebook"
class="col-md-4 col-lg-3 col-form-label">Facebook
Profile</label>
<div class="col-md-8 col-lg-9">
<input name="facebook" type="text" class="form-control"
id="Facebook" value="https://facebook.com/#">
</div>
</div>
<div class="row mb-3">
<label for="Instagram"
class="col-md-4 col-lg-3 col-form-label">Instagram
Profile</label>
<div class="col-md-8 col-lg-9">
<input name="instagram" type="text" class="form-control"
id="Instagram" value="https://instagram.com/#">
</div>
</div>
<div class="row mb-3">
<label for="Linkedin"
class="col-md-4 col-lg-3 col-form-label">Linkedin
Profile</label>
<div class="col-md-8 col-lg-9">
<input name="linkedin" type="text" class="form-control"
id="Linkedin" value="https://linkedin.com/#">
</div>
</div>
<div class="text-center">
<button type="submit" class="btn btn-primary">Save
Changes</button>
</div>
</form><!-- End Profile Edit Form -->
</div> </div>
</div> --}}
<div class="row"> <div class="tab-pane fade pt-3" id="profile-settings">
<div class="col-sm form-group align-self-center">
{{-- <p>Nova Senha: <input class="form-control" type="text" name=""></p> --}} <!-- Settings Form -->
</div> <form>
<div class="row mb-3">
<label for="fullName"
class="col-md-4 col-lg-3 col-form-label">Email
Notifications</label>
<div class="col-md-8 col-lg-9">
<div class="form-check">
<input class="form-check-input" type="checkbox"
id="changesMade" checked>
<label class="form-check-label" for="changesMade">
Changes made to your account
</label>
</div>
<div class="form-check">
<input class="form-check-input" type="checkbox"
id="newProducts" checked>
<label class="form-check-label" for="newProducts">
Information on new products and services
</label>
</div>
<div class="form-check">
<input class="form-check-input" type="checkbox"
id="proOffers">
<label class="form-check-label" for="proOffers">
Marketing and promo offers
</label>
</div>
<div class="form-check">
<input class="form-check-input" type="checkbox"
id="securityNotify" checked disabled>
<label class="form-check-label" for="securityNotify">
Security alerts
</label>
</div>
</div>
</div>
<div class="text-center">
<button type="submit" class="btn btn-primary">Save
Changes</button>
</div>
</form><!-- End settings Form -->
</div>
<div class="tab-pane fade pt-3" id="profile-change-password">
<!-- Change Password Form -->
<form>
<div class="row mb-3">
<label for="currentPassword"
class="col-md-4 col-lg-3 col-form-label">Current
Password</label>
<div class="col-md-8 col-lg-9">
<input name="password" type="password" class="form-control"
id="currentPassword">
</div>
</div>
<div class="row mb-3">
<label for="newPassword"
class="col-md-4 col-lg-3 col-form-label">New Password</label>
<div class="col-md-8 col-lg-9">
<input name="newpassword" type="password"
class="form-control" id="newPassword">
</div>
</div>
<div class="row mb-3">
<label for="renewPassword"
class="col-md-4 col-lg-3 col-form-label">Re-enter New
Password</label>
<div class="col-md-8 col-lg-9">
<input name="renewpassword" type="password"
class="form-control" id="renewPassword">
</div>
</div>
<div class="text-center">
<button type="submit" class="btn btn-primary">Change
Password</button>
</div>
</form><!-- End Change Password Form -->
</div>
</div><!-- End Bordered Tabs -->
</div> </div>
</div> </div>
</div> </div>
</div> </div>
<!-- /.card-body --> </section>
<div class="card-footer">
<div class="float-right">
<button type="submit" class="btn btn-primary">Guardar</button>
</div>
<form method="POST" action="{{ route('logout') }}">
@csrf
<button type="submit" class="btn btn-danger">Logout</button>
</form>
</div>
</div>
<!-- /.card -->
</div> </div>
{{-- ./col-md-12 --}}
</div> </div>
{{-- ./row justify-content-center --}}
@ -111,3 +342,98 @@ class="img-circle elevation-2 imgProfile" alt="User Image">
</div> </div>
{{-- ./content-wrapper --}} {{-- ./content-wrapper --}}
@endsection @endsection
<div class="card card-primary">
<div class="card-body">
<div class="row align-items-center">
<div class="col-sm">
<div class="user-panel mt-3 pb-3 mb-3">
<div class="image d-flex justify-content-center align-items-center">
<label for="input-file" class="imgProfile-hover">
<img src="{{ asset('/img/avatar5.png') }}" class="img-circle elevation-2 imgProfile"
alt="User Image">
{{-- Parte de baixo para colocar o 'Escolher arquivo' --}}
{{-- <div class="input-group input-file">
<input type="text" class="form-control"
placeholder="Escolha um arquivo" readonly>
<span class="input-group-btn">
<button class="btn btn-secondary btn-choose" type="button">Escolher
arquivo</button>
</span>
</div> --}}
</label>
{{-- <input type="file" id="input-file" class="d-none"> --}}
</div>
<div class="text-center">
<h5>{{ $user->userType->type }} :: {{ $user->name }} </h5>
</div>
</div>
<div class="info text-center">
{{-- <p class="d-block" style="font-size: 2rem;">{{ $tipo_usuario }}</p> --}}
</div>
</div>
<div class="col-sm">
<div class="row">
<div class="col-sm form-group align-self-center">
<p>Nome: <input class="form-control" type="text" name=""
value="{{ $user->name }}"></p>
</div>
<div class="col-sm form-group align-self-center">
<p>Email: <input class="form-control" type="text" name=""
value="{{ $user->email }}"></p>
</div>
</div>
<div class="row">
<div class="col-sm form-group align-self-center">
<p>Telemovel: <input class="form-control" type="text" name=""
value="{{ $user->user_phone }}"></p>
</div>
<div class="col-sm form-group align-self-center">
<p>NIF: <input class="form-control" type="text" name=""
value="{{ $user->user_nif }}"></p>
</div>
</div>
{{-- <div class="row">
<div class="col-sm form-group align-self-center">
<p>Senha : <input class="form-control" type="password" ></p>
</div>
<div class="col-sm form-group align-self-center">
<p>Confirmar Senha : <input class="form-control" type="password" ></p>
</div>
</div> --}}
<div class="row">
<div class="col-sm form-group align-self-center">
{{-- <p>Nova Senha: <input class="form-control" type="text" name=""></p> --}}
</div>
</div>
</div>
</div>
</div>
<!-- /.card-body -->
<div class="card-footer">
<div class="float-right">
<button type="submit" class="btn btn-primary">Guardar</button>
</div>
<form method="POST" action="{{ route('logout') }}">
@csrf
<button type="submit" class="btn btn-danger">Logout</button>
</form>
</div>
</div>

View File

@ -7,66 +7,67 @@
{{ session('status') }} {{ session('status') }}
</div> </div>
@endif @endif
<div class="content">
<div class="card"> <div class="card">
<div class="card-header bg-primary text-white"> <div class="card-header bg-primary text-white">
<h3 class="card-title mb-0">Enviar Formulário:</h3> <h3 class="card-title mb-0">Enviar Formulário:</h3>
</div>
<div class="card-body">
<form action="{{ route('enviar.formulario') }}" method="post">
@csrf
<div class="row">
<div class="col-sm-8">
<div class="form-group">
<p for='email'>Email
<input type="email" class="form-control" name="email" required>
</p>
</div>
</div>
<div class="col-sm-4 text-center">
<button style="width:30%;height:90%;" type="submit" class="btn btn-primary">Enviar</button>
</div>
</div>
</form>
</div>
{{-- /.card-body --}}
</div>
{{-- ./card --}}
<div class="card card-primary">
<div class="card-header">
<h2 class="card-title">Utilizadores Pendentes :</h2>
</div>
<div class="card-body p-0">
<div class="table-responsive">
<table class="table table-bordered table-striped justify-content-center">
<thead class="text-center">
<tr>
<th>Id</th>
<th>Nome</th>
<th>Email</th>
<th>Verificar</th>
</tr>
</thead>
<tbody class="text-center">
@foreach ($pend_users as $pend_user)
<tr>
<td>{{ $pend_user->id }}</td>
<td>{{ $pend_user->pending_name }}</td>
<td>{{ $pend_user->pending_email }}</td>
<td><a href="{{ route('ShowPendingUser', ['id' => $pend_user->id]) }}"><i
class="fa-solid fa-eye text-primary"></i></a></td>
</tr>
@endforeach
</tbody>
</table>
</div> </div>
{{-- ./container --}} <div class="card-body">
<form action="{{ route('enviar.formulario') }}" method="post">
@csrf
<div class="row">
<div class="col-sm-8">
<div class="form-group">
<p for='email'>Email
<input type="email" class="form-control" name="email" required>
</p>
</div>
</div>
<div class="col-sm-4 text-center">
<button style="width:30%;height:90%;" type="submit" class="btn btn-primary">Enviar</button>
</div>
</div>
</form>
</div>
{{-- /.card-body --}}
</div> </div>
{{-- ./Card-body --}} {{-- ./card --}}
<div class="card card-primary">
<div class="card-header">
<h2 class="card-title">Utilizadores Pendentes :</h2>
</div>
<div class="card-body p-0">
<div class="table-responsive">
<table class="table table-bordered table-striped justify-content-center">
<thead class="text-center">
<tr>
<th>Id</th>
<th>Nome</th>
<th>Email</th>
<th>Verificar</th>
</tr>
</thead>
<tbody class="text-center">
@foreach ($pend_users as $pend_user)
<tr>
<td>{{ $pend_user->pending_user_id }}</td>
<td>{{ $pend_user->pending_user_name }}</td>
<td>{{ $pend_user->pending_user_email }}</td>
<td><a href="{{ route('ShowPendingUser', ['id' => $pend_user->pending_user_id]) }}"><i
class="fa-solid fa-eye text-primary"></i></a></td>
</tr>
@endforeach
</tbody>
</table>
</div>
{{-- ./container --}}
</div>
{{-- ./Card-body --}}
</div>
{{-- ./card --}}
</div> </div>
{{-- ./card --}}
@endsection @endsection

View File

@ -1673,7 +1673,7 @@ class="form-control card_inputs"
<td class="text-center"> <td class="text-center">
<input type="hidden" <input type="hidden"
name="ordemTasks[2]" value="off"> name="ordemTasks[2]" value="off">
<input type="checkbox" <input type="checkbox"
name="ordemTasks[2]" value="on"> name="ordemTasks[2]" value="on">
</td> </td>
<td class="text-center"> <td class="text-center">
@ -1697,19 +1697,6 @@ class="form-control card_inputs"
<td>TE4</td> <td>TE4</td>
<td>Abertura da válvula, análise e controle dos <td>Abertura da válvula, análise e controle dos
componentes</td> componentes</td>
<td class="text-center">
<input type="hidden"
name="ordemTasks[4]" value="off">
<input type="checkbox"
name="ordemTasks[4]" value="on">
</td>
<td class="text-center">
<input type="checkbox" name="">
</td>
</tr>
<tr>
<td>TE5</td>
<td>Limpeza e lavagem dos componentes</td>
<td class="text-center"> <td class="text-center">
<input type="hidden" <input type="hidden"
name="ordemTasks[5]" value="off"> name="ordemTasks[5]" value="off">
@ -1721,35 +1708,8 @@ class="form-control card_inputs"
</td> </td>
</tr> </tr>
<tr> <tr>
<td>TE6</td> <td>TE5</td>
<td>Retificação e lapidação</td> <td>Limpeza e lavagem dos componentes</td>
<td class="text-center">
<input type="hidden"
name="ordemTasks[6]" value="off">
<input type="checkbox"
name="ordemTasks[6]" value="on">
</td>
<td class="text-center">
<input type="checkbox" name="">
</td>
</tr>
<tr>
<td>TE7</td>
<td>Fecho da válvula e substituição de
componentes </td>
<td class="text-center">
<input type="hidden"
name="ordemTasks[7]" value="off">
<input type="checkbox"
name="ordemTasks[7]" value="on">
</td>
<td class="text-center">
<input type="checkbox" name="">
</td>
</tr>
<tr>
<td>TE8</td>
<td>Calibrar e certificar</td>
<td class="text-center"> <td class="text-center">
<input type="hidden" <input type="hidden"
name="ordemTasks[8]" value="off"> name="ordemTasks[8]" value="off">
@ -1761,8 +1721,8 @@ class="form-control card_inputs"
</td> </td>
</tr> </tr>
<tr> <tr>
<td>TE9</td> <td>TE6</td>
<td>Pintura</td> <td>Retificação e lapidação</td>
<td class="text-center"> <td class="text-center">
<input type="hidden" <input type="hidden"
name="ordemTasks[9]" value="off"> name="ordemTasks[9]" value="off">
@ -1773,17 +1733,57 @@ class="form-control card_inputs"
<input type="checkbox" name=""> <input type="checkbox" name="">
</td> </td>
</tr> </tr>
<tr>
<td>TE7</td>
<td>Fecho da válvula e substituição de
componentes </td>
<td class="text-center">
<input type="hidden"
name="ordemTasks[10]" value="off">
<input type="checkbox"
name="ordemTasks[10]" value="on">
</td>
<td class="text-center">
<input type="checkbox" name="">
</td>
</tr>
<tr>
<td>TE8</td>
<td>Calibrar e certificar</td>
<td class="text-center">
<input type="hidden"
name="ordemTasks[13]" value="off">
<input type="checkbox"
name="ordemTasks[13]" value="on">
</td>
<td class="text-center">
<input type="checkbox" name="">
</td>
</tr>
<tr>
<td>TE9</td>
<td>Pintura</td>
<td class="text-center">
<input type="hidden"
name="ordemTasks[14]" value="off">
<input type="checkbox"
name="ordemTasks[14]" value="on">
</td>
<td class="text-center">
<input type="checkbox" name="">
</td>
</tr>
<tr> <tr>
<td>TE10</td> <td>TE10</td>
<td>Montagem na linha</td> <td>Montagem na linha</td>
{{-- Apenas para ver se recebe um on ou off, o hidden serve para devolver valor se o checkbox nao estiver a 'checked' --}} {{-- Apenas para ver se recebe um on ou off, o hidden serve para devolver valor se o checkbox nao estiver a 'checked' --}}
<td class="text-center"> <td class="text-center">
<input type="hidden" <input type="hidden"
name="ordemTasks[10]" name="ordemTasks[15]"
value="off"> value="off">
<input type="checkbox" <input type="checkbox"
name="ordemTasks[10]" name="ordemTasks[15]" value="on"
value="on"> {{ old('ordemTasks[15]') == 'on' ? 'checked' : '' }}>
</td> </td>
<td class="text-center"> <td class="text-center">
<input type="checkbox" name=""> <input type="checkbox" name="">
@ -1794,11 +1794,11 @@ class="form-control card_inputs"
<td>Inspeção Final</td> <td>Inspeção Final</td>
<td class="text-center"> <td class="text-center">
<input type="hidden" <input type="hidden"
name="ordemTasks[11]" name="ordemTasks[17]"
value="off"> value="off">
<input type="checkbox" <input type="checkbox"
name="ordemTasks[11]" name="ordemTasks[17]" value="on"
value="on"> {{ old('ordemTasks[17]') == 'on' ? 'checked' : '' }}>
</td> </td>
<td class="text-center"> <td class="text-center">
<input type="checkbox" name=""> <input type="checkbox" name="">
@ -1810,10 +1810,6 @@ class="form-control card_inputs"
<!-- /.card-body --> <!-- /.card-body -->
<div class="card-footer"> <div class="card-footer">
{{-- @foreach ($taskExecutionOrders as $taskExecutionOrder)
<p> {}
</p>
@endforeach --}}
<!--Tarefa Complementar --> <!--Tarefa Complementar -->
<div class="icheck-primary d-inline"> <div class="icheck-primary d-inline">
<input type="checkbox" id="checkboxAddicionalTask" <input type="checkbox" id="checkboxAddicionalTask"
@ -2197,7 +2193,7 @@ class="form-control card_inputs"
<div class="card card-primary collapsed-card"> <div class="card card-primary collapsed-card">
<div class="card-header"> <div class="card-header">
<h3 class="card-title">Ambito : <h3 class="card-title">Ambito :
{{ $listEquipmentsProject->equipmentAssociationAmbit->first()->ambitsEquipment->ambits_description }} {{-- {{ $listEquipmentsProject->equipmentAssociationAmbit->first()->ambitsEquipment->ambits_description }} --}}
</h3> </h3>
<div class="card-tools"> <div class="card-tools">
<button type="button" class="btn btn-tool" <button type="button" class="btn btn-tool"
@ -2210,7 +2206,7 @@ class="form-control card_inputs"
<div class="card ordemTasks-div"> <div class="card ordemTasks-div">
<div class="card-header"> <div class="card-header">
<h3 class="card-title">Lista de Tarefas Elementares : <h3 class="card-title">Lista de Tarefas Elementares :
{{ $listEquipmentsProject->equipmentAssociationAmbit->first()->ambitsEquipment->ambits_description }} {{-- {{ $listEquipmentsProject->equipmentAssociationAmbit->first()->ambitsEquipment->ambits_description }} --}}
</h3> </h3>
</div> </div>
<!-- /.card-header --> <!-- /.card-header -->
@ -2273,9 +2269,9 @@ class="form-control card_inputs"
componentes</td> componentes</td>
<td class="text-center"> <td class="text-center">
<input type="hidden" <input type="hidden"
name="ordemTasks[4]" value="off"> name="ordemTasks[5]" value="off">
<input type="checkbox" <input type="checkbox"
name="ordemTasks[4]" value="on"> name="ordemTasks[5]" value="on">
</td> </td>
<td class="text-center"> <td class="text-center">
<input type="checkbox" name=""> <input type="checkbox" name="">
@ -2286,9 +2282,9 @@ class="form-control card_inputs"
<td>Limpeza e lavagem dos componentes</td> <td>Limpeza e lavagem dos componentes</td>
<td class="text-center"> <td class="text-center">
<input type="hidden" <input type="hidden"
name="ordemTasks[5]" value="off"> name="ordemTasks[8]" value="off">
<input type="checkbox" <input type="checkbox"
name="ordemTasks[5]" value="on"> name="ordemTasks[8]" value="on">
</td> </td>
<td class="text-center"> <td class="text-center">
<input type="checkbox" name=""> <input type="checkbox" name="">
@ -3234,9 +3230,9 @@ class="btn btn-outline-success ">Adicionar</a>
<span aria-hidden="true">x</span> <span aria-hidden="true">x</span>
</button> </button>
</div> </div>
<form <form action="{{ route('CreateNewEquipmentFromPendingEquipment', $pendingEquipment->pending_equipment_id) }}"
action="{{ route('CreateNewEquipmentFromPendingEquipment', $pendingEquipment->pending_equipment_id) }}"
method="POST"> method="POST">
@csrf @csrf
<div class="modal-body"> <div class="modal-body">
<p>Criar equipamento ?</p> <p>Criar equipamento ?</p>
@ -3260,7 +3256,6 @@ class="btn btn-outline-success ">Adicionar</a>
<!-- /.modal-content --> <!-- /.modal-content -->
</div> </div>
</div> </div>
{{-- ./modal-PendingEquipmentCreate --}} {{-- ./modal-PendingEquipmentCreate --}}
{{-- modal-PendingEquipmentRemove --}} {{-- modal-PendingEquipmentRemove --}}
@ -3299,49 +3294,6 @@ class="btn btn-outline-success ">Adicionar</a>
@endforeach @endforeach
@endif @endif
{{-- <script>
$(document).ready(function() {
$('#modal-remover').on('show.bs.modal', function(event) {
var button = $(event.relatedTarget); // Botão que acionou o modal
var id = button.data('id'); // Extrai a informação do atributo data-id
// Atualiza o action do formulário com o ID
var form = $(this).find('form');
var action = form.attr('action');
form.attr('action', action.replace(':ID', id));
});
});
</script> --}}
{{--
<script>
$(document).ready(function() {
$('#modal-remover').on('show.bs.modal', function(event) {
var button = $(event.relatedTarget); // Botão que acionou o modal
var id = button.data('id'); // Extrai a informação do atributo data-id
// Preenche o input field com o ID
$('#equipment-id').val(id);
// Atualiza o action do formulário com o ID
var form = $(this).find('form');
var action = form.attr('action');
form.attr('action', action.replace(':ID', id));
});
});
</script> --}}
{{-- <script> {{-- <script>
$(document).ready(function() { $(document).ready(function() {
$('#equipmentType_id_list').on('change', function() { $('#equipmentType_id_list').on('change', function() {
@ -3695,9 +3647,6 @@ class="btn btn-outline-success ">Adicionar</a>
</script> </script>
{{-- <script> {{-- <script>
$(document).ready(function() { $(document).ready(function() {
$('.open-modal').click(function(e) { $('.open-modal').click(function(e) {

View File

@ -22,123 +22,127 @@
</div> </div>
</div> </div>
<fieldset> <fieldset class="content">
<div class="card card-primary" id="CardDetalhes"> <div class="container-fluid">
<div class="card-header bg-primary text-white"> <div class="card card-primary" id="CardDetalhes">
<h3 class="card-title mb-0">Detalhes da Obra</h3> <div class="card-header bg-primary text-white">
</div> <h3 class="card-title mb-0">Detalhes da Obra</h3>
</div>
<div class="card-body"> <div class="card-body">
{{-- <form method="POST" action="{{ route('createProject1') }}" id="idDoFormulario"> --}} {{-- <form method="POST" action="{{ route('createProject1') }}" id="idDoFormulario"> --}}
<form method="POST" action="{{ route('processStep1') }}" id="idDoFormulario"> <form method="POST" action="{{ route('processStep1') }}" id="idDoFormulario">
@csrf @csrf
<div class="row"> <div class="row">
<div class="form-group col-sm-6"> <div class="form-group col-sm-6">
<label>Descrição da obra</label> <label>Descrição da obra</label>
<input type="text" name="description_project" class="form-control" <input type="text" name="description_project" class="form-control"
placeholder="Descrição da obra;"> placeholder="Descrição da obra;">
</div>
<div class="form-group col-sm-6">
<label>. obra ISPT</label>
<input type="number" name="n_project_ispt" class="form-control"
placeholder="Nº. obra ISPT&hellip;">
</div>
</div>
<div class="row">
<div class="form-group col-sm-6">
<label>Responsável obra ISPT</label>
<input type="text" name="responsible_project_ispt" class="form-control"
placeholder="Responsável obra ISPT&hellip;">
</div>
<div class="form-group col-sm-6">
<label>Responsável obra Empresa</label>
<input type="text" name="responsible_project_company" class="form-control"
placeholder="Responsável obra cliente&hellip;">
</div>
</div>
<div class="row">
<div class="form-group col-sm-6" id="companyField">
<label>Empresa</label>
<select class="form-control" name="user_id" id="company_select">
<option value="#">Selecione uma Empresa...</option>
@foreach ($companies as $company)
<option value="{{ $company->user_id }}">{{ $company->user_name }}</option>
@endforeach
</select>
</div>
<div class="form-group col-sm-6" id="installationField" hidden>
<label>Instalação</label>
<select class="form-control" name="installation_id" id="installationSelect">
<!-- As opções de instalação serão preenchidas dinamicamente -->
</select>
</div>
</div>
<div class="row" id="new_company_div">
<div class="form-group col-sm-6">
<label>Nova Instalacao :</label>
<input type="text" id="new_company_name" class="form-control" name="new_company_name"
placeholder="Digite o nome da nova empresa">
</div>
<div class="form-group col-sm-6">
<label>Nova Localização</label>
<input type="text" class="form-control" name="new_company_address"
placeholder="Localização...">
</div>
</div>
<div class="form-group" id="localization_installation_client">
<label>Localização</label>
<input type="text" class="form-control" placeholder="Localização" readonly>
</div>
<div class="row">
<div class="form-group col-sm-6">
<label>. de obra Empresa</label>
<input type="number" name="project_company_number" class="form-control"
placeholder="Nº. de obra cliente&hellip;">
</div>
<!-- Date -->
<div class="form-group col-sm-6">
<label>Datas:</label>
<div class="input-group">
<div class="input-group-prepend">
<span class="input-group-text">
<i class="far fa-calendar-alt"></i>
</span>
</div>
<input name="date_started" type="datetime-local" class="form-control float-right">
</div> </div>
<!-- /.input group --> <div class="form-group col-sm-6">
<label>. obra ISPT</label>
<input type="number" name="n_project_ispt" class="form-control"
placeholder="Nº. obra ISPT&hellip;">
</div>
</div>
<div class="row">
<div class="form-group col-sm-6">
<label>Responsável obra ISPT</label>
<input type="text" name="responsible_project_ispt" class="form-control"
placeholder="Responsável obra ISPT&hellip;">
</div>
<div class="form-group col-sm-6">
<label>Responsável obra Empresa</label>
<input type="text" name="responsible_project_company" class="form-control"
placeholder="Responsável obra cliente&hellip;">
</div>
</div>
<div class="row">
<div class="form-group col-sm-6" id="companyField">
<label>Empresa</label>
<select class="form-control" name="user_id" id="company_select">
<option value="#">Selecione uma Empresa...</option>
@foreach ($companies as $company)
<option value="{{ $company->user_id }}">{{ $company->user_name }}</option>
@endforeach
</select>
</div>
<div class="form-group col-sm-6" id="installationField" hidden>
<label>Instalação</label>
<select class="form-control" name="installation_id" id="installationSelect">
<!-- As opções de instalação serão preenchidas dinamicamente -->
</select>
</div>
</div> </div>
</div> <div class="row" id="new_company_div">
<!-- /.card-body -->
<div class="card-footer"> <div class="form-group col-sm-6">
<div class="float-right"> <label>Nova Instalacao :</label>
<button type="submit" class="btn btn-primary">Guardar</button> <input type="text" id="new_company_name" class="form-control"
name="new_company_name" placeholder="Digite o nome da nova empresa">
</div>
<div class="form-group col-sm-6">
<label>Nova Localização</label>
<input type="text" class="form-control" name="new_company_address"
placeholder="Localização...">
</div>
</div> </div>
</div>
</form>
<div class="form-group" id="localization_installation_client">
<label>Localização</label>
<input type="text" class="form-control" placeholder="Localização" readonly>
</div>
<div class="row">
<div class="form-group col-sm-6">
<label>. de obra Empresa</label>
<input type="number" name="project_company_number" class="form-control"
placeholder="Nº. de obra cliente&hellip;">
</div>
<!-- Date -->
<div class="form-group col-sm-6">
<label>Datas:</label>
<div class="input-group">
<div class="input-group-prepend">
<span class="input-group-text">
<i class="far fa-calendar-alt"></i>
</span>
</div>
<input name="date_started" type="datetime-local"
class="form-control float-right">
</div>
<!-- /.input group -->
</div>
</div>
<!-- /.card-body -->
<div class="card-footer">
<div class="float-right">
<button type="submit" class="btn btn-primary">Guardar</button>
</div>
</div>
</form>
</div>
{{-- /.card-body --}}
</div> </div>
{{-- /.card-body --}}
</div> </div>
{{-- Verificar se realmente tem funcionalidade ir para a segunda parte a partir daqui, lembrando que se tirar do argumento vai dar erro, pois para a route :2 espera receber um ID --}} {{-- Verificar se realmente tem funcionalidade ir para a segunda parte a partir daqui, lembrando que se tirar do argumento vai dar erro, pois para a route :2 espera receber um ID --}}
{{-- <a href="{{ route('test2') }}" class="btn btn-primary next float-right">Next</a> --}} {{-- <a href="{{ route('test2') }}" class="btn btn-primary next float-right">Next</a> --}}
@ -213,7 +217,8 @@
if (selectedInstallation) { if (selectedInstallation) {
// Preencha o valor do campo de endereço com o endereço da instalação selecionada // Preencha o valor do campo de endereço com o endereço da instalação selecionada
$('#localization_installation_client input').val(selectedInstallation.plant_address); $('#localization_installation_client input').val(selectedInstallation
.plant_address);
} }
} }
}); });

View File

@ -0,0 +1,13 @@
@extends('Templates/templateAdmin')
@section('Main-content')
@endsection
@section('scriptsTemplateAdmin')
@endsection

File diff suppressed because it is too large Load Diff

View File

@ -17,149 +17,162 @@
</div> </div>
</div> </div>
<fieldset> <fieldset class="content">
<div class="card card-primary" id="CardDetalhes"> <div class="container-fluid">
<div class="card-header bg-primary text-white"> <div class="card card-primary" id="CardDetalhes">
<h3 class="card-title mb-0">Detalhes da Obra</h3> <div class="card-header bg-primary text-white">
</div> <h3 class="card-title mb-0">Detalhes da Obra</h3>
</div>
<div class="card-body"> <div class="card-body">
<form method="POST" action="{{ route('processStep1') }}" id="idDoFormulario"> <form method="POST" action="{{ route('processStep1') }}" id="idDoFormulario">
@csrf @csrf
<div class="row"> <div class="row">
<div class="form-group col-sm-6"> <div class="form-group col-sm-6">
<label>Descrição da obra</label> <label>Descrição da obra</label>
<input type="text" name="description_project" class="form-control" <input type="text" name="description_project" class="form-control"
placeholder="Descrição da obra" value="{{$projects->company_project_description}}"> placeholder="Descrição da obra"
value="{{ $projects->company_project_description }}">
</div>
<div class="form-group col-sm-6">
<label>. obra ISPT</label>
<input type="number" name="n_project_ispt" class="form-control"
placeholder="Nº. obra ISPT&hellip;"
value="{{ $projects->project_ispt_number }}">
</div>
</div> </div>
<div class="form-group col-sm-6"> <div class="row">
<label>. obra ISPT</label> <div class="form-group col-sm-6">
<input type="number" name="n_project_ispt" class="form-control" <label>Responsável obra ISPT</label>
placeholder="Nº. obra ISPT&hellip;" value="{{$projects->project_ispt_number}}"> <input type="text" name="responsible_project_ispt" class="form-control"
</div> placeholder="Responsável obra ISPT&hellip;"
</div> value="{{ $projects->project_ispt_number }}">
<div class="row"> </div>
<div class="form-group col-sm-6"> <div class="form-group col-sm-6">
<label>Responsável obra ISPT</label> <label>Responsável obra Empresa</label>
<input type="text" name="responsible_project_ispt" class="form-control" <input type="text" name="responsible_project_company" class="form-control"
placeholder="Responsável obra ISPT&hellip;" value="{{$projects->project_ispt_number}}" > placeholder="Responsável obra cliente&hellip;"
</div> value="{{ $projects->project_company_responsible }}">
<div class="form-group col-sm-6">
<label>Responsável obra Empresa</label>
<input type="text" name="responsible_project_company" class="form-control"
placeholder="Responsável obra cliente&hellip;" value="{{$projects->project_company_responsible}}">
</div>
</div>
<div class="row">
<div class="form-group col-sm-6" id="companyField">
<label>Empresa Obra</label>
<input type="text" name="user_id" class="form-control" value="{{$projects->plant_id}}" readonly>
</div>
<div class="form-group col-sm-6" id="" >
<label>Instalação Obra</label>
<input type="text" name="user_id" class="form-control" value="{{$projects->plant_id}}" readonly>
</div>
</div>
<div class="row">
<div class="form-group col-sm-6" id="companyField">
<label>Empresa Nova </label>
<select class="form-control" name="user_id" id="company_select">
<option value="#">Selecione uma Empresa...</option>
@foreach ($companies as $company)
<option value="{{ $company->user_id }}">{{ $company->user_name }}</option>
@endforeach
</select>
</div>
<div class="form-group col-sm-6" id="installationField" hidden>
<label>Instalação Nova</label>
<select class="form-control" name="installation_id" id="installationSelect">
<!-- As opções de instalação serão preenchidas dinamicamente -->
</select>
</div>
</div>
<div class="row" id="new_company_div">
<div class="form-group col-sm-6">
<label>Nova Instalacao :</label>
<input type="text" id="new_company_name" class="form-control" name="new_company_name"
placeholder="Digite o nome da nova empresa">
</div>
<div class="form-group col-sm-6">
<label>Nova Localização</label>
<input type="text" class="form-control" name="new_company_address"
placeholder="Localização...">
</div>
</div>
<div class="form-group" id="localization_installation_client">
<label>Localização</label>
<input type="text" class="form-control" placeholder="Localização" readonly>
</div>
<div class="row">
<div class="form-group col-sm-6">
<label>. de obra Empresa</label>
<input type="number" name="project_company_number" class="form-control"
placeholder="Nº. de obra cliente&hellip;" value="{{$projects->project_company_number}}">
</div>
<!-- Date -->
<div class="form-group col-sm-6">
<label>Data inicio obra:</label>
<div class="input-group">
<div class="input-group-prepend">
<span class="input-group-text">
<i class="far fa-calendar-alt"></i>
</span>
</div>
<input type="text" value="{{ \Carbon\Carbon::parse($projects->date_started)->format('d/m/Y') }}" readonly>
</div> </div>
</div> </div>
<div class="form-group col-sm-6"> <div class="row">
<label>Nova data inicio obra:</label>
<div class="input-group"> <div class="form-group col-sm-6" id="companyField">
<div class="input-group-prepend"> <label>Empresa Obra</label>
<span class="input-group-text"> {{-- <input type="text" name="user_id" class="form-control" value="{{$projects->user-}}" readonly> --}}
<i class="far fa-calendar-alt"></i>
</span>
</div>
<input name="date_started" type="datetime-local" class="form-control float-right">
</div> </div>
<!-- /.input group -->
<div class="form-group col-sm-6" id="">
<label>Instalação Obra</label>
<input type="text" name="plant_id_present" class="form-control"
value="{{ $projects->plant_id }}" readonly>
</div>
</div> </div>
</div>
<!-- /.card-body -->
<div class="card-footer"> <div class="row">
<div class="float-right">
<button type="submit" class="btn btn-primary">Guardar</button> <div class="form-group col-sm-6" id="companyField">
<label>Empresa Nova </label>
<select class="form-control" name="user_id" id="company_select">
<option value="#">Selecione uma Empresa...</option>
@foreach ($companies as $company)
<option value="{{ $company->user_id }}">{{ $company->user_name }}</option>
@endforeach
</select>
</div>
<div class="form-group col-sm-6" id="installationField" hidden>
<label>Instalação Nova</label>
<select class="form-control" name="installation_id" id="installationSelect">
<!-- As opções de instalação serão preenchidas dinamicamente -->
</select>
</div>
</div> </div>
</div>
</form> <div class="row" id="new_company_div">
<div class="form-group col-sm-6">
<label>Nova Instalacao :</label>
<input type="text" id="new_company_name" class="form-control"
name="new_company_name" placeholder="Digite o nome da nova empresa">
</div>
<div class="form-group col-sm-6">
<label>Nova Localização</label>
<input type="text" class="form-control" name="new_company_address"
placeholder="Localização...">
</div>
</div>
<div class="form-group" id="localization_installation_client">
<label>Localização</label>
<input type="text" class="form-control" placeholder="Localização" readonly>
</div>
<div class="row">
<div class="form-group col-sm-6">
<label>. de obra Empresa</label>
<input type="number" name="project_company_number" class="form-control"
placeholder="Nº. de obra cliente&hellip;"
value="{{ $projects->project_company_number }}">
</div>
<!-- Date -->
<div class="form-group col-sm-6">
<label>Data inicio obra:</label>
<div class="input-group">
<div class="input-group-prepend">
<span class="input-group-text">
<i class="far fa-calendar-alt"></i>
</span>
</div>
<input type="text"
value="{{ \Carbon\Carbon::parse($projects->date_started)->format('d/m/Y') }}"
readonly>
<input type="hidden" name="date_started_present"
value="{{ $projects->date_started }}">
</div>
</div>
<div class="form-group col-sm-6">
<label>Nova data inicio obra:</label>
<div class="input-group">
<div class="input-group-prepend">
<span class="input-group-text">
<i class="far fa-calendar-alt"></i>
</span>
</div>
<input name="date_started" type="datetime-local"
class="form-control float-right">
</div>
<!-- /.input group -->
</div>
</div>
<!-- /.card-body -->
<div class="card-footer">
<div class="float-right">
<button type="submit" class="btn btn-primary">Guardar</button>
</div>
</div>
</form>
</div>
{{-- /.card-body --}}
</div> </div>
{{-- /.card-body --}}
</div> </div>
{{-- /.card card-primary --}} {{-- /.card card-primary --}}
<a href="{{ route('test2', ['id' => $projects]) }}" class="btn btn-primary next float-right">Seguinte</a> <a href="{{ route('test2', ['id' => $projects]) }}" class="btn btn-primary next float-right">Seguinte</a>
</fieldset> </fieldset>
@ -168,7 +181,6 @@
</div> </div>
<script> <script>
$(document).ready(function() { $(document).ready(function() {
@ -232,7 +244,8 @@
if (selectedInstallation) { if (selectedInstallation) {
// Preencha o valor do campo de endereço com o endereço da instalação selecionada // Preencha o valor do campo de endereço com o endereço da instalação selecionada
$('#localization_installation_client input').val(selectedInstallation.plant_address); $('#localization_installation_client input').val(selectedInstallation
.plant_address);
} }
} }
}); });

View File

@ -359,7 +359,7 @@ class="checkboxChoseTasksOficesPSV"
<div class="card card-primary collapsed-card"> <div class="card card-primary collapsed-card">
<div class="card-header"> <div class="card-header">
<h3 class="card-title"> <h3 class="card-title">
Tarefas Adicionais</h3> Tarefas Complementares</h3>
<div class="card-tools"> <div class="card-tools">
<button type="button" class="btn btn-tool" <button type="button" class="btn btn-tool"
data-card-widget="collapse"> data-card-widget="collapse">

View File

@ -25,6 +25,17 @@
use App\Http\Controllers\Pending_UserController; use App\Http\Controllers\Pending_UserController;
use App\Http\Controllers\ProjectoDatacontroller; use App\Http\Controllers\ProjectoDatacontroller;
use App\Http\Controllers\PreparedProjectController;
Route::get('user-data', [PreparedProjectController::class, 'getData1'])->name('getData');
Route::get('/api/ambits/prepared{equipmentType}', [PreparedProjectController::class,'getAmbits']);
Route::get('preparedProject/{ProjectId}',[PreparedProjectController::class,'PreparedProject'])->name('preparedProject');
Route::get('EditProjectForArticulated',[PreparedProjectController::class,'editProjectForArticulated'])->name('EditProjectForArticulated');
// Route::get('test',[CreateProjectController::class,'index'] )->name('test'); // Route::get('test',[CreateProjectController::class,'index'] )->name('test');
route::get('finishCreatingProject/{numberProject}',[CreateProjectController::class,'finishCreatingProject'])->name('finishCreatingProject'); route::get('finishCreatingProject/{numberProject}',[CreateProjectController::class,'finishCreatingProject'])->name('finishCreatingProject');
@ -207,7 +218,6 @@
Route::get('/equipments/{id}/attributes', [CreateProjectController::class, 'getAttributes']); Route::get('/equipments/{id}/attributes', [CreateProjectController::class, 'getAttributes']);
Route::post('/register', [CustomRegistrationController::class, 'store'])->name('register'); Route::post('/register', [CustomRegistrationController::class, 'store'])->name('register');
Route::get('/your-verification-route/{id}/{hash}', [UserController::class, 'yourVerificationMethod']) Route::get('/your-verification-route/{id}/{hash}', [UserController::class, 'yourVerificationMethod'])