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\FurtherTasks;
use App\Models\WorkstationsAssociationTasks;
use App\Models\TasksAssociationAmbits;
// use DataTables;
@ -29,7 +30,8 @@
class CreateProjectController extends Controller
{
public function finishCreatingProject($numberProject){
public function finishCreatingProject($numberProject)
{
$project = CompanyProject::find($numberProject);
$project->order_project = 2;
@ -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) {
// // Procura o registro relevante em OrderEquipmentTasks
// $orderEquipmentTask = OrderEquipmentTasks::where('equipment_id', $request->equipmentId)
// ->where('elemental_tasks_id', $key)
// ->first();
// Se nao selecionar nenhuma tarefas ele devolve um erro , pois e necessario pelo menos uma
if (!in_array('on', $request->input('ordemTasks'))) {
return redirect()->back()->with('danger', 'É necessário selecionar pelo menos uma tarefa, Para o Equipamento : '.$equipment->equipment_tag );
}
$executionOrder = 1;
// // 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();
foreach ($request->input('ordemTasks') as $key => $value) {
$orderEquipmentTask = OrderEquipmentTasks::where('equipment_id', $request->equipmentId)
->where('elemental_tasks_id', $key)
->first();
// dd($orderEquipmentTask);
// // 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();
// }
// }
if ($value == "on") {
if (!$orderEquipmentTask) {
$orderEquipmentTask = new OrderEquipmentTasks();
$orderEquipmentTask->equipment_id = $request->equipmentId;
$orderEquipmentTask->elemental_tasks_id = $key;
}
$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)
->where('execution_order', '>=', $executionOrder)
->orderBy('execution_order', 'asc')
->get();
@ -194,24 +194,21 @@ public function EditEquipmentsProjects(Request $request)
$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();
@ -259,7 +256,6 @@ public function createWorkStations(Request $request)
}
// Funcao apenas para retornar os dados necessarios para a view criar uma Obra.
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"
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();
return view('projectsClients/projectDetails_1', ['step' => 1], ['companies' => $companies])
@ -331,6 +332,7 @@ public function CreateNewEquipmentFromPendingEquipment(Request $request, $id)
public function processStep1(Request $request)
{
dd($request);
// Validação...
$installationId = $request->input('installation_id');
@ -356,6 +358,11 @@ public function processStep1(Request $request)
$project->project_company_number = $request->input('project_company_number');
$project->project_ispt_responsible = $request->input('responsible_project_ispt');
$project->project_company_responsible = $request->input('responsible_project_company');
// 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;
@ -527,6 +534,22 @@ public function createEquipmentManual(Request $request)
$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...
return redirect()->route('test2', ['id' => $request->numberProject])
->with('success', 'Equipamento criado com sucesso')

View File

@ -33,7 +33,7 @@ public function store(Request $request){
$request->validate([
'name' => '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_nif' => 'required',
'pending_password' => 'required|min:8|confirmed',
@ -41,18 +41,25 @@ public function store(Request $request){
$joinName = $request->get('name') . ' ' . $request->get('lastName');
$pendingUser = new PendingUser([
'pending_name' => $joinName,
'pending_email' => $request->get('pending_email'),
'pending_phone' => $request->get('pending_phone'),
'pending_nif' => $request->get('pending_nif'),
'pending_password' => Hash::make($request->get('pending_password')),
]);
// $pendingUser = new PendingUser([
// 'pending_user_name' => $joinName,
// 'pending_user_email' => $request->get('pending_email'),
// 'pending_user_phone' => $request->get('pending_phone'),
// 'pending_user_nif' => $request->get('pending_nif'),
// '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();
// 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();
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([
'name' => 'required',
'email' => 'required|email|unique:users,email,' . $user->id,
'email' => 'required|email|unique:users,email,' . $user->user_id,
'password' => 'nullable|min:8|confirmed',
'user_type' => 'required',
'user_phone' => 'required',

View File

@ -13,4 +13,13 @@ class CompanyProject extends Model
protected $primaryKey = 'company_projects_id';
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');
}
// public function specificAttributes()
// {
// return $this->hasMany(SpecificAttributesEquipmentType::class, 'equipment_id', 'equipment_id');
// }
public function specificAttributes()
{
return $this->hasMany(SpecificAttributesEquipmentType::class, 'equipment_id', 'equipment_id')
@ -44,6 +39,17 @@ public function specificAttributes()
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;
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-header">Editar Usuário</div>
<div class="card-body">
<form action="{{ route('users.update', $user->id) }}" method="POST">
<form action="{{ route('users.update', $user->user_id) }}" method="POST">
@csrf
@method('PUT')
<div class="form-group">
<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 class="form-group">

View File

@ -48,10 +48,10 @@
<td>{{ optional(\App\Models\TypeUser::find($user->user_type))->type }}</td>
<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>
</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>
</a>
{{-- <a href="#">

View File

@ -41,18 +41,18 @@
<tbody>
@foreach ($users as $user)
<tr>
<td>{{ $user->id }}</td>
<td>{{ $user->name }}</td>
<td>{{ $user->user_id }}</td>
<td>{{ $user->user_name }}</td>
<td>{{ $user->email }}</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">
<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>
</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>
</a>
{{-- <a href="#">

View File

@ -14,11 +14,11 @@
<table class="table table-bordered table-striped">
<tr>
<th>ID</th>
<td>{{ $user->id }}</td>
<td>{{ $user->user_id }}</td>
</tr>
<tr>
<th>Nome</th>
<td>{{ $user->name }}</td>
<td>{{ $user->user_name }}</td>
</tr>
<tr>
<th>Email</th>
@ -51,7 +51,7 @@
<div class="col-sm">
</div>
<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>

View File

@ -91,12 +91,23 @@ class="btn btn-tool">
<div class="card-body">
@foreach ($CompanyProject as $project)
@if ($project->order_project == 2)
<div class="card card-primary card-outline">
{{-- <div class="card card-primary card-outline">
<div class="card-header">
<h5 class="card-title">Paragem Cliente 2 OUT2022</h5>
<div class="card-tools">
<a href="#" class="btn btn-tool">
<i class="fas fa-eye"></i>
<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>
</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>
</div>
</div>
@ -132,7 +143,7 @@ class="btn btn-tool">
<div class="card-body">
@foreach ($CompanyProject as $project)
@if ($project->order_project == 3)
<div class="card card-warning card-outline">
{{-- <div class="card card-warning card-outline">
<div class="card-header">
<h5 class="card-title">Paragem Cliente 1 JUN2022</h5>
<div class="card-tools">
@ -141,6 +152,17 @@ class="btn btn-tool">
</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('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>
@endif
@endforeach

View File

@ -8,6 +8,342 @@
<div class="col-md-12">
<!-- Card box User Profile -->
<br><br>
<section class="section profile">
<div class="row">
<div class="col-xl-4">
<div class="card">
<div class="card-body profile-card pt-4 d-flex flex-column 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>
</div>
</div>
</div>
<div class="col-xl-8">
<div class="card">
<div class="card-body pt-3">
<!-- Bordered Tabs -->
<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>
<div class="tab-pane fade profile-edit pt-3" id="profile-edit">
<!-- 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 class="tab-pane fade pt-3" id="profile-settings">
<!-- Settings Form -->
<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>
</section>
</div>
{{-- ./col-md-12 --}}
</div>
{{-- ./row justify-content-center --}}
</div>
{{-- ./container-fluid" --}}
</section>
{{-- ./content --}}
</div>
{{-- ./content-wrapper --}}
@endsection
<div class="card card-primary">
<div class="card-body">
@ -18,18 +354,19 @@
<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">
<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>
<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>
@ -45,21 +382,25 @@ class="img-circle elevation-2 imgProfile" alt="User Image">
<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>
<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>
<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>
<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>
<p>NIF: <input class="form-control" type="text" name=""
value="{{ $user->user_nif }}"></p>
</div>
</div>
@ -96,18 +437,3 @@ class="img-circle elevation-2 imgProfile" alt="User Image">
</div>
</div>
<!-- /.card -->
</div>
</div>
</div>
{{-- ./container-fluid" --}}
</section>
{{-- ./content --}}
</div>
{{-- ./content-wrapper --}}
@endsection

View File

@ -7,7 +7,7 @@
{{ session('status') }}
</div>
@endif
<div class="content">
<div class="card">
<div class="card-header bg-primary text-white">
<h3 class="card-title mb-0">Enviar Formulário:</h3>
@ -53,10 +53,10 @@
<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
<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
@ -69,4 +69,5 @@ class="fa-solid fa-eye text-primary"></i></a></td>
{{-- ./Card-body --}}
</div>
{{-- ./card --}}
</div>
@endsection

View File

@ -1697,19 +1697,6 @@ class="form-control card_inputs"
<td>TE4</td>
<td>Abertura da válvula, análise e controle dos
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">
<input type="hidden"
name="ordemTasks[5]" value="off">
@ -1721,35 +1708,8 @@ class="form-control card_inputs"
</td>
</tr>
<tr>
<td>TE6</td>
<td>Retificação e lapidação</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>TE5</td>
<td>Limpeza e lavagem dos componentes</td>
<td class="text-center">
<input type="hidden"
name="ordemTasks[8]" value="off">
@ -1761,8 +1721,8 @@ class="form-control card_inputs"
</td>
</tr>
<tr>
<td>TE9</td>
<td>Pintura</td>
<td>TE6</td>
<td>Retificação e lapidação</td>
<td class="text-center">
<input type="hidden"
name="ordemTasks[9]" value="off">
@ -1773,17 +1733,57 @@ class="form-control card_inputs"
<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[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>
<td>TE10</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' --}}
<td class="text-center">
<input type="hidden"
name="ordemTasks[10]"
name="ordemTasks[15]"
value="off">
<input type="checkbox"
name="ordemTasks[10]"
value="on">
name="ordemTasks[15]" value="on"
{{ old('ordemTasks[15]') == 'on' ? 'checked' : '' }}>
</td>
<td class="text-center">
<input type="checkbox" name="">
@ -1794,11 +1794,11 @@ class="form-control card_inputs"
<td>Inspeção Final</td>
<td class="text-center">
<input type="hidden"
name="ordemTasks[11]"
name="ordemTasks[17]"
value="off">
<input type="checkbox"
name="ordemTasks[11]"
value="on">
name="ordemTasks[17]" value="on"
{{ old('ordemTasks[17]') == 'on' ? 'checked' : '' }}>
</td>
<td class="text-center">
<input type="checkbox" name="">
@ -1810,10 +1810,6 @@ class="form-control card_inputs"
<!-- /.card-body -->
<div class="card-footer">
{{-- @foreach ($taskExecutionOrders as $taskExecutionOrder)
<p> {}
</p>
@endforeach --}}
<!--Tarefa Complementar -->
<div class="icheck-primary d-inline">
<input type="checkbox" id="checkboxAddicionalTask"
@ -2197,7 +2193,7 @@ class="form-control card_inputs"
<div class="card card-primary collapsed-card">
<div class="card-header">
<h3 class="card-title">Ambito :
{{ $listEquipmentsProject->equipmentAssociationAmbit->first()->ambitsEquipment->ambits_description }}
{{-- {{ $listEquipmentsProject->equipmentAssociationAmbit->first()->ambitsEquipment->ambits_description }} --}}
</h3>
<div class="card-tools">
<button type="button" class="btn btn-tool"
@ -2210,7 +2206,7 @@ class="form-control card_inputs"
<div class="card ordemTasks-div">
<div class="card-header">
<h3 class="card-title">Lista de Tarefas Elementares :
{{ $listEquipmentsProject->equipmentAssociationAmbit->first()->ambitsEquipment->ambits_description }}
{{-- {{ $listEquipmentsProject->equipmentAssociationAmbit->first()->ambitsEquipment->ambits_description }} --}}
</h3>
</div>
<!-- /.card-header -->
@ -2273,9 +2269,9 @@ class="form-control card_inputs"
componentes</td>
<td class="text-center">
<input type="hidden"
name="ordemTasks[4]" value="off">
name="ordemTasks[5]" value="off">
<input type="checkbox"
name="ordemTasks[4]" value="on">
name="ordemTasks[5]" value="on">
</td>
<td class="text-center">
<input type="checkbox" name="">
@ -2286,9 +2282,9 @@ class="form-control card_inputs"
<td>Limpeza e lavagem dos componentes</td>
<td class="text-center">
<input type="hidden"
name="ordemTasks[5]" value="off">
name="ordemTasks[8]" value="off">
<input type="checkbox"
name="ordemTasks[5]" value="on">
name="ordemTasks[8]" value="on">
</td>
<td class="text-center">
<input type="checkbox" name="">
@ -3234,9 +3230,9 @@ class="btn btn-outline-success ">Adicionar</a>
<span aria-hidden="true">x</span>
</button>
</div>
<form
action="{{ route('CreateNewEquipmentFromPendingEquipment', $pendingEquipment->pending_equipment_id) }}"
<form action="{{ route('CreateNewEquipmentFromPendingEquipment', $pendingEquipment->pending_equipment_id) }}"
method="POST">
@csrf
<div class="modal-body">
<p>Criar equipamento ?</p>
@ -3260,7 +3256,6 @@ class="btn btn-outline-success ">Adicionar</a>
<!-- /.modal-content -->
</div>
</div>
{{-- ./modal-PendingEquipmentCreate --}}
{{-- modal-PendingEquipmentRemove --}}
@ -3299,49 +3294,6 @@ class="btn btn-outline-success ">Adicionar</a>
@endforeach
@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>
$(document).ready(function() {
$('#equipmentType_id_list').on('change', function() {
@ -3695,9 +3647,6 @@ class="btn btn-outline-success ">Adicionar</a>
</script>
{{-- <script>
$(document).ready(function() {
$('.open-modal').click(function(e) {

View File

@ -22,7 +22,8 @@
</div>
</div>
<fieldset>
<fieldset class="content">
<div class="container-fluid">
<div class="card card-primary" id="CardDetalhes">
<div class="card-header bg-primary text-white">
<h3 class="card-title mb-0">Detalhes da Obra</h3>
@ -85,8 +86,8 @@
<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">
<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">
@ -119,7 +120,8 @@
<i class="far fa-calendar-alt"></i>
</span>
</div>
<input name="date_started" type="datetime-local" class="form-control float-right">
<input name="date_started" type="datetime-local"
class="form-control float-right">
</div>
<!-- /.input group -->
</div>
@ -138,6 +140,8 @@
{{-- /.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 --}}
{{-- <a href="{{ route('test2') }}" class="btn btn-primary next float-right">Next</a> --}}
@ -213,7 +217,8 @@
if (selectedInstallation) {
// 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,7 +17,8 @@
</div>
</div>
<fieldset>
<fieldset class="content">
<div class="container-fluid">
<div class="card card-primary" id="CardDetalhes">
<div class="card-header bg-primary text-white">
<h3 class="card-title mb-0">Detalhes da Obra</h3>
@ -31,24 +32,28 @@
<div class="form-group col-sm-6">
<label>Descrição da obra</label>
<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}}">
placeholder="Nº. obra ISPT&hellip;"
value="{{ $projects->project_ispt_number }}">
</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;" value="{{$projects->project_ispt_number}}" >
placeholder="Responsável obra ISPT&hellip;"
value="{{ $projects->project_ispt_number }}">
</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;" value="{{$projects->project_company_responsible}}">
placeholder="Responsável obra cliente&hellip;"
value="{{ $projects->project_company_responsible }}">
</div>
</div>
@ -56,13 +61,14 @@
<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>
{{-- <input type="text" name="user_id" class="form-control" value="{{$projects->user-}}" 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>
<input type="text" name="plant_id_present" class="form-control"
value="{{ $projects->plant_id }}" readonly>
</div>
</div>
@ -94,8 +100,8 @@
<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">
<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">
@ -116,7 +122,8 @@
<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}}">
placeholder="Nº. de obra cliente&hellip;"
value="{{ $projects->project_company_number }}">
</div>
<!-- Date -->
@ -128,7 +135,11 @@
<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="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>
@ -140,7 +151,8 @@
<i class="far fa-calendar-alt"></i>
</span>
</div>
<input name="date_started" type="datetime-local" class="form-control float-right">
<input name="date_started" type="datetime-local"
class="form-control float-right">
</div>
<!-- /.input group -->
</div>
@ -159,6 +171,7 @@
{{-- /.card-body --}}
</div>
</div>
{{-- /.card card-primary --}}
<a href="{{ route('test2', ['id' => $projects]) }}" class="btn btn-primary next float-right">Seguinte</a>
@ -168,7 +181,6 @@
</div>
<script>
$(document).ready(function() {
@ -232,7 +244,8 @@
if (selectedInstallation) {
// 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-header">
<h3 class="card-title">
Tarefas Adicionais</h3>
Tarefas Complementares</h3>
<div class="card-tools">
<button type="button" class="btn btn-tool"
data-card-widget="collapse">

View File

@ -25,6 +25,17 @@
use App\Http\Controllers\Pending_UserController;
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('finishCreatingProject/{numberProject}',[CreateProjectController::class,'finishCreatingProject'])->name('finishCreatingProject');
@ -207,7 +218,6 @@
Route::get('/equipments/{id}/attributes', [CreateProjectController::class, 'getAttributes']);
Route::post('/register', [CustomRegistrationController::class, 'store'])->name('register');
Route::get('/your-verification-route/{id}/{hash}', [UserController::class, 'yourVerificationMethod'])