Correction of errors and start of implementation of projects in execution

This commit is contained in:
ygbanzato 2023-07-20 10:02:53 +01:00
parent 9d510ab765
commit fdbb662fba
19 changed files with 497 additions and 173 deletions

View File

@ -249,6 +249,20 @@ public function createWorkStations(Request $request)
$workstation->save(); $workstation->save();
} }
preg_match('/workstation(\d+)-/', $workstation->name_workstations, $matches);
$receiveNumberWorkstation = $matches[1];
$receveProjectCompanyNumber = CompanyProject::where('company_projects_id',$numberProject)->first();
//Apos criar a Workstation vamos criar um login para pode aceder os postos de trabalho na obra
$loginWorkStation = new User;
$loginWorkStation->user_name = $workstation->name_workstations;
$loginWorkStation->email = $receveProjectCompanyNumber->project_company_number.'-'.$receiveNumberWorkstation.'@isptgroup.com';
$loginWorkStation->password = bcrypt($receveProjectCompanyNumber->project_company_number.'-'.$receiveNumberWorkstation) ;
$loginWorkStation->type_users = 5;
$loginWorkStation->user_nif = $receveProjectCompanyNumber->project_company_number.'-'.$receiveNumberWorkstation;
$loginWorkStation->save();
// Redireciona para onde você quiser após a criação das workstations // Redireciona para onde você quiser após a criação das workstations
return redirect()->route('test3', ['id' => $request->numberProject]) return redirect()->route('test3', ['id' => $request->numberProject])
->with('success', $numberWorkstations . ' Postos de Trabalho criados !!!') ->with('success', $numberWorkstations . ' Postos de Trabalho criados !!!')
@ -324,6 +338,8 @@ public function CreateNewEquipmentFromPendingEquipment(Request $request, $id)
$newEquipmentAssociationAmbits->equipment_id = $receiveEquipmentID; $newEquipmentAssociationAmbits->equipment_id = $receiveEquipmentID;
$newEquipmentAssociationAmbits->save(); $newEquipmentAssociationAmbits->save();
$checkPendingEquipment->delete(); $checkPendingEquipment->delete();
return back()->with('success', 'Equipamento ' . $newEquipment->equipment_tag . ' criado com sucesso'); return back()->with('success', 'Equipamento ' . $newEquipment->equipment_tag . ' criado com sucesso');
@ -332,7 +348,6 @@ 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');
@ -345,7 +360,7 @@ public function processStep1(Request $request)
$newInstallation->plant_address = $request->input('new_company_address'); $newInstallation->plant_address = $request->input('new_company_address');
$newInstallation->user_id = $request->input('user_id'); $newInstallation->user_id = $request->input('user_id');
// $newInstallation->save(); $newInstallation->save();
// Use o id da nova instalação. // Use o id da nova instalação.
$installationId = $newInstallation->plant_id; $installationId = $newInstallation->plant_id;
@ -422,6 +437,7 @@ public function showStep2($company_projects_id)
->where('company_projects_id', $company_projects_id) ->where('company_projects_id', $company_projects_id)
->get(); ->get();
$pendingEquipments = PendingEquipment::where('pending_company_projects_id', $numberProject)->get(); $pendingEquipments = PendingEquipment::where('pending_company_projects_id', $numberProject)->get();
if (!$pendingEquipments->isEmpty()) { if (!$pendingEquipments->isEmpty()) {
@ -617,15 +633,12 @@ public function processStep2(Request $request)
$checkFactory = Unit::where('unit_name', $datas['fabrica'])->first(); $checkFactory = Unit::where('unit_name', $datas['fabrica'])->first();
// Antes de criar o novo equipamento, verifique se já existe um equipamento // Antes de criar o novo equipamento, verifique se já existe um equipamento
// com o mesmo factory_id e tag. // com o mesmo factory_id e tag.
$existingEquipment = Equipment::where('unit_id', $checkFactory->unit_id) $existingEquipment = Equipment::where('unit_id', $checkFactory->unit_id)
->where('equipment_tag', $datas['tag']) ->where('equipment_tag', $datas['tag'])
->first(); ->first();
if ($existingEquipment) { if ($existingEquipment) {
// Se o equipamento existir, crie o novo equipamento na tabela pending_equipaments. // Se o equipamento existir, crie o novo equipamento na tabela pending_equipaments.
@ -660,6 +673,7 @@ public function processStep2(Request $request)
$newEquipament->save(); $newEquipament->save();
$countNewEquipment++; $countNewEquipment++;
// Guardo os valores de 'id' e do 'tipo de equipamento' que nosso novo equipamento acabado de criar // Guardo os valores de 'id' e do 'tipo de equipamento' que nosso novo equipamento acabado de criar

View File

@ -5,7 +5,9 @@
use Illuminate\Http\Request; use Illuminate\Http\Request;
use App\Models\CompanyProject; use App\Models\CompanyProject;
use App\Models\ConstructionWorkstation; use App\Models\ConstructionWorkstation;
use App\Models\ControlEquipmentWorkstation;
use App\Models\Equipment; use App\Models\Equipment;
use App\Models\EquipmentComments;
use App\Models\EquipmentType; use App\Models\EquipmentType;
use App\Models\OrderEquipmentTasks; use App\Models\OrderEquipmentTasks;
@ -13,9 +15,13 @@
class ExecutionProjectController extends Controller class ExecutionProjectController extends Controller
{ {
public function enterWorkstation()
{
return view('enterWorkstation');
}
public function receiveExecutionProject($ProjectId) public function receiveExecutionProject($ProjectId)
{ {
$DatasProject = CompanyProject::find($ProjectId); $DatasProject = CompanyProject::find($ProjectId);
$equipmentsTypes = EquipmentType::all(); $equipmentsTypes = EquipmentType::all();
@ -27,65 +33,79 @@ public function receiveExecutionProject($ProjectId)
public function receiveWorkstationExecutionProject($receiveNumberProject) public function receiveWorkstationExecutionProject($receiveNumberProject)
{ {
$model = ConstructionWorkstation::where('company_projects_id', $receiveNumberProject)->with('workstationsAssociationTasks'); $model = ConstructionWorkstation::where('company_projects_id', $receiveNumberProject)->with('workstationsAssociationTasks');
return DataTables::of($model) return DataTables::of($model)
// ->addColumn('workstations_Association_Tasks', function ($row) { ->addColumn('workstations_Association_Tasks', function ($row) {
// return $row->workstationsAssociationTasks->pluck('elemental_tasks_id')->implode('-'); return $row->workstationsAssociationTasks->map(function ($task) {
// }) return $task->elementalTask->elemental_tasks_code;
})->implode('-');
})
->toJson(); ->toJson();
} }
public function receiveEquipmentIdForShowModal($EquipmentID) public function receiveEquipmentIdForShowModal($EquipmentID)
{ {
// Recebe e encontra os dados do Equipamento indicada na Tabela.
$equipment = Equipment::find($EquipmentID); $equipment = Equipment::find($EquipmentID);
// Recebe todas as tarefas e devolve em um Array
$task_codes = $equipment->orderEquipmentTasks->map(function ($task) { $task_codes = $equipment->orderEquipmentTasks->map(function ($task) {
return $task->elementalTask->elemental_tasks_code; return $task->elementalTask->elemental_tasks_code;
})->toArray(); })->toArray();
return response()->json(['task_codes' => $task_codes]); $receveControlEquipment = ControlEquipmentWorkstation::where('equipment_id',$EquipmentID)->get();
$receiveCommentsEquipment = EquipmentComments::where('equipment_id',$EquipmentID)->get();
// return view('projectsClients/executionProject',['receveControlEquipment'=>$receveControlEquipment]);
return response()->json(['task_codes' => $task_codes,'receveControlEquipment' => $receveControlEquipment, 'receiveCommentsEquipment' => $receiveCommentsEquipment]);
} }
public function receiveEquipmentsExecutionProject($receiveNumberProject) // public function receiveEquipmentsExecutionProject($receiveNumberProject)
{ // {
// Recebe os dados vindos da funcao 'data' criada na view // // Recebe os dados vindos da funcao 'data' criada na view
$equipment_type_id = request('equipment_type_id'); // $equipment_type_id = request('equipment_type_id');
$ambits_id = request('ambits_id'); // $ambits_id = request('ambits_id');
//Recebe sempre apenas os equipamentos relacionados a obra // //Recebe sempre apenas os equipamentos relacionados a obra
$model = Equipment::where('company_projects_id', $receiveNumberProject); // $model = Equipment::where('company_projects_id', $receiveNumberProject);
// Caso 'equipment_type_id' seja '#', mostra todos os equipamentos // // Caso 'equipment_type_id' seja '#', mostra todos os equipamentos
if ($equipment_type_id == '#') { // if ($equipment_type_id == '#') {
$model = Equipment::query()->with(['equipmentType', 'unit', 'equipmentAssociationAmbit.ambitsEquipment']); // $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 '#') // // Caso 'equipment_type_id' não seja '#', filtra os equipamentos por tipo e ambito (caso 'ambits_id' não seja '#')
else { // else {
$equipment_type_id = intval($equipment_type_id); // $equipment_type_id = intval($equipment_type_id);
$model = Equipment::where('equipments.equipment_type_id', $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') // ->join('equipment_association_ambits', 'equipments.equipment_id', '=', 'equipment_association_ambits.equipment_id')
->with(['equipmentType', 'unit', 'equipmentAssociationAmbit.ambitsEquipment']); // ->with(['equipmentType', 'unit', 'equipmentAssociationAmbit.ambitsEquipment']);
if ($ambits_id != '#') { // if ($ambits_id != '#') {
$ambits_id = intval($ambits_id); // $ambits_id = intval($ambits_id);
$model->where('equipment_association_ambits.ambits_id', $ambits_id); // $model->where('equipment_association_ambits.ambits_id', $ambits_id);
} // }
} // }
return DataTables::of($model) // return DataTables::of($model)
->addColumn('equipment_type', function ($row) { // ->addColumn('equipment_type', function ($row) {
return $row->equipmentType->equipment_type_name; // return $row->equipmentType->equipment_type_name;
}) // })
->addColumn('Ambits', function ($row) { // ->addColumn('Ambits', function ($row) {
return $row->equipmentAssociationAmbit->ambitsEquipment->ambits_description; // return $row->equipmentAssociationAmbit->ambitsEquipment->ambits_description;
}) // })
->addColumn('order_tasks', function ($row) { // ->addColumn('order_tasks', function ($row) {
return $row->orderEquipmentTasks->map(function ($task) { // return $row->orderEquipmentTasks->map(function ($task) {
return $task->elementalTask->elemental_tasks_code; // return $task->elementalTask->elemental_tasks_code;
})->implode('-'); // })->implode('-');
}) // })
->toJson(); // ->addColumn('current_task', function ($row) {
} // return $row->controlEquipmentWorkstation->map(function ($task) {
// return $task->elementalTask->elemental_tasks_code;
// })->implode('-');
// })
// ->toJson();
// }
} }

View File

@ -2,22 +2,33 @@
namespace App\Http\Controllers; namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
use Yajra\DataTables\Facades\DataTables;
use App\Models\Equipment; use App\Models\Equipment;
use App\Models\Plant; use App\Models\Plant;
use App\Models\CompanyProject; use App\Models\CompanyProject;
use Illuminate\Support\Facades\DB;
use Illuminate\Http\Request;
use App\Models\ConstructionWorkstation;
class ProjectoDatacontroller extends Controller class ProjectoDatacontroller extends Controller
{ {
public function HomePage(){ public function HomePage()
{
$CompanyProject = CompanyProject::all(); $CompanyProject = CompanyProject::all();
return view('Admin/index') return view('Admin/index')
// return view('codePronto'); // return view('codePronto');
->with("CompanyProject", $CompanyProject); ->with("CompanyProject", $CompanyProject);
} }
public function ManageAssets() public function ManageAssets()
@ -36,7 +47,7 @@ public function ManageAssets()
// ->get(); // ->get();
// return view('Admin/DataManagement/manageassets', compact('units','equipaments')); // return view('Admin/DataManagement/manageassets', compact('units','equipaments'));
return view('Admin/DataManagement/manageassets', compact('units','equipments')); return view('Admin/DataManagement/manageassets', compact('units', 'equipments'));
} }
public function showUnit($id) public function showUnit($id)
@ -45,4 +56,77 @@ public function showUnit($id)
$equipaments = Equipment::where('equipment_id', $id)->firstOrFail(); $equipaments = Equipment::where('equipment_id', $id)->firstOrFail();
return view('Admin/DataManagement/showEquipament', compact('equipaments')); return view('Admin/DataManagement/showEquipament', compact('equipaments'));
} }
public function receiveEquipmentsProject($receiveNumberProject)
{
// Recebe os dados vindos da funcao 'data' criada na view
$equipment_type_id = request('equipment_type_id');
$ambits_id = request('ambits_id');
//Recebe sempre apenas os equipamentos relacionados a obra
// $model = Equipment::where('company_projects_id', $receiveNumberProject);
// Caso 'equipment_type_id' seja '#', mostra todos os equipamentos
if ($equipment_type_id == '#') {
$model = Equipment::query()
->where('company_projects_id', $receiveNumberProject)
->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)
->where('company_projects_id', $receiveNumberProject)
->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)
->where('company_projects_id', $receiveNumberProject);
}
}
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('order_tasks', function ($row) {
return $row->orderEquipmentTasks->map(function ($task) {
return $task->elementalTask->elemental_tasks_code;
})->implode('-');
})
->addColumn('current_task', function ($row) {
return $row->controlEquipmentWorkstation->map(function ($task) {
return $task->elementalTask->elemental_tasks_code;
})->implode('-');
})
->addColumn('Inspec', function ($row) {
return $row->hasInspectionYes() ? 'Sim' : 'Nao';
})
->toJson();
}
public function receiveWorkstationProject($receiveNumberProject)
{
$model = ConstructionWorkstation::where('company_projects_id', $receiveNumberProject)->with('workstationsAssociationTasks');
return DataTables::of($model)
->addColumn('workstations_Association_Tasks', function ($row) {
return $row->workstationsAssociationTasks->map(function ($task) {
return $task->elementalTask->elemental_tasks_code;
})->implode('-');
})
->toJson();
}
} }

View File

@ -54,6 +54,7 @@ class Kernel extends HttpKernel
*/ */
protected $middlewareAliases = [ protected $middlewareAliases = [
'checksuperadmin' => \App\Http\Middleware\CheckSuperAdmin::class, 'checksuperadmin' => \App\Http\Middleware\CheckSuperAdmin::class,
'checkUserType' => \App\Http\Middleware\CheckUserType::class,
'auth' => \App\Http\Middleware\Authenticate::class, 'auth' => \App\Http\Middleware\Authenticate::class,
'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class, 'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
'auth.session' => \Illuminate\Session\Middleware\AuthenticateSession::class, 'auth.session' => \Illuminate\Session\Middleware\AuthenticateSession::class,

View File

@ -20,6 +20,5 @@ public function handle(Request $request, Closure $next): Response
} }
return abort(403, 'Acesso não autorizado.'); return abort(403, 'Acesso não autorizado.');
// return $next($request);
} }
} }

View File

@ -0,0 +1,33 @@
<?php
namespace App\Http\Middleware;
use Closure;
use Illuminate\Http\Request;
use Symfony\Component\HttpFoundation\Response;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Route;
class CheckUserType
{
/**
* Handle an incoming request.
*
* @param \Closure(\Illuminate\Http\Request): (\Symfony\Component\HttpFoundation\Response) $next
*/
public function handle(Request $request, Closure $next)
{
if (auth()->user()) {
$currentRoute = Route::currentRouteName();
$userType = auth()->user()->userType->type_user;
if ($userType == 'Super_Administrador' && $currentRoute != 'home') {
return redirect()->route('home');
} elseif ($userType == 'Tecnicos' && $currentRoute != 'enterWorkstation') {
return redirect()->route('enterWorkstation');
}
}
return $next($request);
}
}

View File

@ -15,12 +15,8 @@ class ConstructionWorkstation extends Model
protected $primaryKey = 'id_workstations'; protected $primaryKey = 'id_workstations';
// public function workstationsAssociationTasks()
// {
// return $this->hasMany(WorkstationsAssociationTasks::class, 'id_workstations', 'id_workstations');
// }
public function workstationsAssociationTasks() public function workstationsAssociationTasks()
{ {
return $this->hasMany(WorkstationsAssociationTasks::class, 'id_workstations'); return $this->hasMany(WorkstationsAssociationTasks::class, 'id_workstations','id_workstations');
} }
} }

View File

@ -0,0 +1,27 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class ControlEquipmentWorkstation extends Model
{
use HasFactory;
public $timestamps = false;
protected $table = 'control_equipment_workstation';
// protected $primaryKey = 'id';
public function equipment()
{
return $this->belongsTo(Equipment::class, 'equipment_id', 'equipment_id');
}
public function elementalTask()
{
return $this->belongsTo(ElementalTasks::class,'elemental_tasks_id','elemental_tasks_id');
}
}

View File

@ -18,4 +18,14 @@ public function orderEquipmentTasks()
{ {
return $this->hasMany(OrderEquipmentTasks::class,'elemental_tasks_id','elemental_tasks_id'); return $this->hasMany(OrderEquipmentTasks::class,'elemental_tasks_id','elemental_tasks_id');
} }
public function controlEquipmentWorkstation()
{
return $this->hasMany(ControlEquipmentWorkstation::class, 'elemental_tasks_id', 'elemental_tasks_id');
}
public function workstationsAssociationTasks()
{
return $this->hasMany(WorkstationsAssociationTasks::class,'elemental_tasks_id','elemental_tasks_id');
}
} }

View File

@ -48,8 +48,20 @@ public function orderEquipmentTasks()
return $this->hasMany(OrderEquipmentTasks::class, 'equipment_id', 'equipment_id'); return $this->hasMany(OrderEquipmentTasks::class, 'equipment_id', 'equipment_id');
} }
public function equipmentComments()
{
return $this->hasMany(EquipmentComments::class, 'equipment_id', 'equipment_id');
}
public function controlEquipmentWorkstation()
{
return $this->hasMany(ControlEquipmentWorkstation::class, 'equipment_id', 'equipment_id');
}
public function hasInspectionYes() public function hasInspectionYes()
{ {
return $this->orderEquipmentTasks()->where('inspection', 'Sim')->exists(); return $this->orderEquipmentTasks()->where('inspection', 'Sim')->exists();
} }
} }

View File

@ -0,0 +1,23 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class EquipmentComments extends Model
{
use HasFactory;
public $timestamps = false;
protected $table = 'equipment_comments';
protected $primaryKey = 'equipment_comment_id';
public function equipment()
{
return $this->belongsTo(Equipment::class, 'equipment_id', 'equipment_id');
}
}

View File

@ -14,12 +14,12 @@ class WorkstationsAssociationTasks extends Model
protected $table = 'workstations_association_tasks'; protected $table = 'workstations_association_tasks';
// public function constructionWorkstation()
// {
// return $this->belongsTo(ConstructionWorkstation::class, 'equipment_id', 'equipment_id');
// }
public function constructionWorkstation() public function constructionWorkstation()
{ {
return $this->belongsTo(ConstructionWorkstation::class, 'id_workstations'); return $this->belongsTo(ConstructionWorkstation::class, 'id_workstations','id_workstations');
}
public function elementalTask()
{
return $this->belongsTo(ElementalTasks::class,'elemental_tasks_id','elemental_tasks_id');
} }
} }

View File

@ -20,9 +20,6 @@
use App\Http\Controllers\Auth\ResetPasswordController; use App\Http\Controllers\Auth\ResetPasswordController;
use App\Http\Controllers\Auth\PasswordResetLinkController; use App\Http\Controllers\Auth\PasswordResetLinkController;
use Laravel\Fortify\Fortify; use Laravel\Fortify\Fortify;
class FortifyServiceProvider extends ServiceProvider class FortifyServiceProvider extends ServiceProvider

View File

@ -0,0 +1,7 @@
@extends('Templates/templateAdmin')
@section('Main-content')
<h1>Bem Vindo ...</h1>
@endsection

View File

@ -1216,6 +1216,7 @@ class="fas fa-plus"></i>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
@foreach ($listEquipmentsProjects as $listEquipmentsProject) @foreach ($listEquipmentsProjects as $listEquipmentsProject)
<tr> <tr>
<td>{{ $listEquipmentsProject->unit->unit_name ?? 'Sem Fabrica Associada!!!' }} <td>{{ $listEquipmentsProject->unit->unit_name ?? 'Sem Fabrica Associada!!!' }}
@ -1224,7 +1225,7 @@ class="fas fa-plus"></i>
</td> </td>
<td>{{ $listEquipmentsProject->equipment_tag }}</td> <td>{{ $listEquipmentsProject->equipment_tag }}</td>
<td>{{ $listEquipmentsProject->equipment_description }}</td> <td>{{ $listEquipmentsProject->equipment_description }}</td>
<td>{{ $listEquipmentsProject->equipmentAssociationAmbit->first()->ambitsEquipment->ambits_description ?? 'Sem Descrição Ambit Associada!!!' }} <td>{{ $listEquipmentsProject->equipmentAssociationAmbit->ambitsEquipment->ambits_description ?? 'Sem Descrição Ambit Associada!!!' }}
</td> </td>
<td class="text-center d-flex justify-content-around"> <td class="text-center d-flex justify-content-around">
<a href="#" class="open-modal" <a href="#" class="open-modal"
@ -1625,7 +1626,7 @@ class="form-control card_inputs"
<div class="card card-secondary collapsed-card"> <div class="card card-secondary 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->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"

View File

@ -64,7 +64,7 @@
<div class="form-group col-sm-6" id="companyField"> <div class="form-group col-sm-6" id="companyField">
<label>Empresa</label> <label>Empresa</label>
<select class="form-control" name="user_id" id="company_select"> <select class="form-control" name="user_id" id="company_select" required>
<option value="#">Selecione uma Empresa...</option> <option value="#">Selecione uma Empresa...</option>
@foreach ($companies as $company) @foreach ($companies as $company)
<option value="{{ $company->user_id }}">{{ $company->user_name }}</option> <option value="{{ $company->user_id }}">{{ $company->user_name }}</option>

View File

@ -95,10 +95,10 @@ class="btn btn-block bg-gradient-primary btn-lg">Articulado</a>
<div class="float-right"> <div class="float-right">
{{-- <a href="#" type="button" class="btn btn-primary">Editar</a> --}} {{-- <a href="#" type="button" class="btn btn-primary">Editar</a> --}}
<h1>test</h1> {{-- <h1>test</h1>
<ul id="myList"> <ul id="myList"> --}}
<!-- Itens da lista serão gerados dinamicamente aqui --> <!-- Itens da lista serão gerados dinamicamente aqui -->
</ul> {{-- </ul> --}}
</div> </div>
</div> </div>
</div> </div>
@ -114,8 +114,8 @@ class="btn btn-block bg-gradient-primary btn-lg">Articulado</a>
<h3 class="card-title">Articulado</h3> <h3 class="card-title">Articulado</h3>
<div class="card-tools"> <div class="card-tools">
<!-- <button type="button" class="btn btn-tool" data-card-widget="collapse"><i <!-- <button type="button" class="btn btn-tool" data-card-widget="collapse"><i
class="fas fa-plus"></i> class="fas fa-plus"></i>
</button> --> </button> -->
</div> </div>
<!-- /.card-tools --> <!-- /.card-tools -->
</div> </div>
@ -168,7 +168,8 @@ class="form-control">
</div> </div>
<br> <br>
<table id="TableExecutionProject" class="table table-bordered table-striped"> <table id="TableExecutionProjectEquipments"
class="table table-bordered table-striped">
<thead> <thead>
<tr> <tr>
<th>Tag</th> <th>Tag</th>
@ -208,8 +209,8 @@ class="form-control">
<div class="card-tools"> <div class="card-tools">
<!-- <button type="button" class="btn btn-tool" data-card-widget="collapse"> <!-- <button type="button" class="btn btn-tool" data-card-widget="collapse">
<i class="fas fa-plus"></i> <i class="fas fa-plus"></i>
</button> --> </button> -->
</div> </div>
<!-- /.card-tools --> <!-- /.card-tools -->
</div> </div>
@ -289,7 +290,7 @@ class="table table-bordered table-striped">
<div class="modal-dialog" role="document"> <div class="modal-dialog" role="document">
<div class="modal-content"> <div class="modal-content">
<div class="modal-header"> <div class="modal-header">
<h5 class="modal-title" id="ModalTransferForArticulatedLabel">Mudar Projeto para Articulado</h5> <h5 class="modal-title" id="ModalTransferForArticulatedLabel">Progresso Equipamento</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close"> <button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span> <span aria-hidden="true">&times;</span>
</button> </button>
@ -332,12 +333,52 @@ class="table table-bordered table-striped">
</div> </div>
</div> </div>
</section> </section>
<br>
<!-- Registro de Trabalho da Válvula -->
<div class="card card-primary collapsed-card">
<div class="card-header">
<h3 class="card-title">Registros</h3>
<div class="card-tools">
<button type="button" class="btn btn-tool" data-card-widget="collapse"><i
class="fas fa-plus"></i>
</button>
</div>
<!-- /.card-tools -->
</div>
<!-- /.card-header -->
<div class="card-body">
<h4 class="text-center">Historico de registro :</h4>
<div class="row">
<div class="col-sm-6">Work Entry:</div>
<div class="col-sm-6"></div>
</div>
<br>
<div id="containerEquipmentComment"></div>
<br>
<div class="card card-success" id="CardShowCommetsEquipment">
<div class="card-header">
<h4>Comments</h3>
</div>
<br>
<div id="containerShowCommetsEquipment"></div>
</div>
</div>
<!-- /.card-body -->
</div>
<!-- /Registro de Trabalho da Válvula -->
</div> </div>
<div class="modal-footer"> <div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Fechar</button> <button type="button" class="btn btn-secondary" data-dismiss="modal">Fechar</button>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
{{-- ./Modal-showProgressEquipment --}} {{-- ./Modal-showProgressEquipment --}}
@endsection @endsection
@ -346,12 +387,19 @@ class="table table-bordered table-striped">
<script type="text/javascript"> <script type="text/javascript">
$(document).ready(function() { $(document).ready(function() {
$("#CardShowCommetsEquipment").hide();
$("#ShowCommetsEquipment").click(function() {
$("#CardShowCommetsEquipment").toggle();
});
//Cards das div : Destricao - Articulado - Postos de Trabalho //Cards das div : Destricao - Articulado - Postos de Trabalho
$("#CardArticuladoObra").hide(); $("#CardArticuladoObra").hide();
$("#CardPostosDeTrabalhoObra").hide(); $("#CardPostosDeTrabalhoObra").hide();
//Botoes : Destricao - Articulado - Postos de Trabalho //Botoes : Destricao - Articulado - Postos de Trabalho
$('#BotaoDetalhesObra').hide(); $('#BotaoDetalhesObra').hide();
// $('#BotaoArticulado').hide(); // $('#BotaoArticulado').hide();
@ -394,41 +442,41 @@ class="table table-bordered table-striped">
<script type="Text/javascript"> <script type="Text/javascript">
$(document).ready(function() { $(document).ready(function() {
$('#TableExecutionProjectWorkstation').DataTable({ $('#TableExecutionProjectWorkstation').DataTable({
autoWidth: false, autoWidth: false,
processing: true, processing: true,
serverSide: true, serverSide: true,
ajax: { ajax: {
url: '/api/receiveWorkstationExecutionProject/' + $('#receiveNumberProject').val() url: '/api/receiveWorkstationProject/' + $('#receiveNumberProject').val()
}, },
columns: [{ columns: [{
data: 'name_workstations', data: 'name_workstations',
name: 'name_workstations' name: 'name_workstations'
}, },
{ {
data: 'nomenclature_workstation', data: 'nomenclature_workstation',
name: 'nomenclature_workstation' name: 'nomenclature_workstation'
} },
// { {
// data: 'workstations_Association_Tasks', data: 'workstations_Association_Tasks',
// name: 'workstations_Association_Tasks' name: 'workstations_Association_Tasks'
// } }
] ]
}) })
}) })
</script> </script>
<script> <script>
$(document).ready(function() { $(document).ready(function() {
$('#TableExecutionProject').DataTable({ $('#TableExecutionProjectEquipments').DataTable({
autoWidth: false, autoWidth: false,
processing: true, processing: true,
serverSide: true, serverSide: true,
ajax: { ajax: {
url: '/api/receiveEquipmentsExecutionProject/' + $('#receiveNumberProject').val(), url: '/api/receiveEquipmentsProject/' + $('#receiveNumberProject').val(),
data: function(d) { data: function(d) {
d.equipment_type_id = $('#tipo_valvulasList').val(); d.equipment_type_id = $('#tipo_valvulasList').val();
d.ambits_id = $('#AmbitsEquipments_list').val(); d.ambits_id = $('#AmbitsEquipments_list').val();
@ -451,6 +499,18 @@ class="table table-bordered table-striped">
data: 'order_tasks', data: 'order_tasks',
name: 'order_tasks' name: 'order_tasks'
}, },
{
data: 'current_task',
name: 'current_task'
},
{
data: 'Inspec',
name: 'Inspec'
},
// {
// data: 'entry_date',
// name: 'entry_date'
// },
{ {
data: 'equipment_id', data: 'equipment_id',
name: 'equipment_id', name: 'equipment_id',
@ -465,11 +525,11 @@ class="table table-bordered table-striped">
// Scripts para que com base no recebido , ele atualiza a pagina automaticamente // Scripts para que com base no recebido , ele atualiza a pagina automaticamente
$('#tipo_valvulasList').on('change', function() { $('#tipo_valvulasList').on('change', function() {
// Atualiza a tabela quando o valor selecionado no select de tipo de válvulas for alterado // Atualiza a tabela quando o valor selecionado no select de tipo de válvulas for alterado
$('#TableExecutionProject').DataTable().ajax.reload(); $('#TableExecutionProjectEquipments').DataTable().ajax.reload();
}); });
$('#AmbitsEquipments_list').on('change', function() { $('#AmbitsEquipments_list').on('change', function() {
// Atualiza a tabela quando o valor selecionado no select de tipo de válvulas for alterado // Atualiza a tabela quando o valor selecionado no select de tipo de válvulas for alterado
$('#TableExecutionProject').DataTable().ajax.reload(); $('#TableExecutionProjectEquipments').DataTable().ajax.reload();
}); });
$(document).on('click', '[data-toggle="modal"]', function() { $(document).on('click', '[data-toggle="modal"]', function() {
@ -527,12 +587,58 @@ class="table table-bordered table-striped">
$('#equipmentId').text(data.id); $('#equipmentId').text(data.id);
var task_codes = data.task_codes; var task_codes = data.task_codes;
console.log(task_codes);
createListItems(task_codes); createListItems(task_codes);
// console.log(data.receiveCommentsEquipment);
// Limpa o container que irá receber os novos elementos
$('#containerEquipmentComment').empty();
// Percorre os equipamentos recebidos
data.receveControlEquipment.forEach(function(equipment) {
// Cria o HTML para cada equipamento
var html = `
<div class="row">
<div class="col-sm-6">Workstation ${equipment.id_workstations}:</div>
<div class="col-sm-6">${equipment.entry_date}</div>
</div>
<div class="row">
<div class="col-sm-6">Elementary task(s):</div>
<div class="col-sm-6">${equipment.elemental_tasks_id}</div>
</div>
<div class="row">
<div class="col-sm-6">Exit Workstation ${equipment.id_workstations}:</div>
<div class="col-sm-6">${equipment.departure_date}</div>
<div class="col-sm-6"></div>
<div class="col-sm-6">
<button class="btn btn-outline-primary" id="ShowCommetsEquipment" data-workstation-id='${equipment.id_workstations}' data-equipment-id='${equipment.equipment_id}'>Comments (0)</button>
</div>
</div>`;
// Adiciona o HTML ao container
$('#containerEquipmentComment').append(html);
});
data.receiveCommentsEquipment.forEach(function(equipmentComment) {
var html = ` <div class="row">
<div class="col-sm-6">Cometarios :</div>
<div class="col-sm-6">${equipmentComment.comments}</div>
</div>
<div class="row">
<div class="col-sm-6">Data :</div>
<div class="col-sm-6">${equipmentComment.data}</div>
</div>`;
// Adiciona o HTML ao container
$('#containerShowCommetsEquipment').append(html);
});
} }
}); });
}); });
$('#modal-showProgressEquipment').on('hide.bs.modal', function(event) {
$('#containerEquipmentComment').empty();
$('#containerShowCommetsEquipment').empty();
});
</script> </script>
<script> <script>
function createListItems(task_codes) { function createListItems(task_codes) {
// Limpar quaisquer itens de lista anteriores // Limpar quaisquer itens de lista anteriores

View File

@ -7,7 +7,7 @@
<div class="row mb-2"> <div class="row mb-2">
<div class="col-sm-6"> <div class="col-sm-6">
<h1>{{ $numberProject->company_project_description }}</h1> <h1>{{ $numberProject->company_project_description }}</h1>
{{-- <input type="hidden" value="{{$numberProject->company_projects_id}}" id="receiveNumberProject"> --}} <input type="hidden" value="{{$numberProject->company_projects_id}}" id="receiveNumberProject">
</div> </div>
<div class="col-sm-6"> <div class="col-sm-6">
<ol class="breadcrumb float-sm-right"> <ol class="breadcrumb float-sm-right">
@ -274,7 +274,7 @@ class="form-control">
<div class="card-body"> <div class="card-body">
<div class="table-responsive"> <div class="table-responsive">
<table id="TableReceiveWorkstationsPrepared" class="table table-bordered table-striped"> <table id="TablePreparedProjectWorkstation" class="table table-bordered table-striped">
<thead> <thead>
<tr> <tr>
<th>Postos de Trabalho</th> <th>Postos de Trabalho</th>
@ -556,22 +556,46 @@ class="checkboxChoseTasksOficesCV"
}); });
</script> </script>
<script type="Text/javascript">
$(document).ready(function() {
$('#TablePreparedProjectWorkstation').DataTable({
autoWidth: false,
processing: true,
serverSide: true,
ajax: {
url: '/api/receiveWorkstationProject/' + $('#receiveNumberProject').val()
},
columns: [{
data: 'name_workstations',
name: 'name_workstations'
},
{
data: 'nomenclature_workstation',
name: 'nomenclature_workstation'
},
{
data: 'workstations_Association_Tasks',
name: 'workstations_Association_Tasks'
}
]
})
})
</script>
<script> <script>
$(document).ready(function() { $(document).ready(function() {
$('#myTable').DataTable({ $('#myTable').DataTable({
autoWidth: false,
processing: true, processing: true,
serverSide: true, serverSide: true,
ajax: { ajax: {
url: "{{ route('getData') }}", url: '/api/receiveEquipmentsProject/' + $('#receiveNumberProject').val(),
data: function(d) { data: function(d) {
// Adiciona o 'equipment_type_id' selecionado aos parâmetros da solicitação
d.equipment_type_id = $('#tipo_valvulasList').val(); d.equipment_type_id = $('#tipo_valvulasList').val();
d.unit_id = $('#UnitsList').val();
d.ambits_id = $('#AmbitsEquipments_list').val(); d.ambits_id = $('#AmbitsEquipments_list').val();
d.inspec = $('#inspecValvula').val();
}, },
}, },
columns: [{ columns: [{
data: 'equipment_tag', data: 'equipment_tag',
name: 'equipment_tag' name: 'equipment_tag'
@ -684,3 +708,14 @@ class="checkboxChoseTasksOficesCV"
</script> </script>
@endsection @endsection
{{-- // ajax: {
// url: "{{ route('getData') }}",
// data: function(d) {
// // Adiciona o 'equipment_type_id' selecionado aos parâmetros da solicitação
// d.equipment_type_id = $('#tipo_valvulasList').val();
// d.unit_id = $('#UnitsList').val();
// d.ambits_id = $('#AmbitsEquipments_list').val();
// d.inspec = $('#inspecValvula').val();
// },
// }, --}}

View File

@ -29,13 +29,16 @@
use App\Http\Controllers\ExecutionProjectController; use App\Http\Controllers\ExecutionProjectController;
Route::get('ExecutionProject/{ProjectId}',[ExecutionProjectController::class,'receiveExecutionProject'])->name('ExecutionProject'); Route::get('ExecutionProject/{ProjectId}',[ExecutionProjectController::class,'receiveExecutionProject'])->name('ExecutionProject');
Route::get('/ReceiveEquipmentIdForShowModal/{EquipmentID}',[ExecutionProjectController::class,'receiveEquipmentIdForShowModal'])->name('ReceiveEquipmentIdForShowModal '); Route::get('/ReceiveEquipmentIdForShowModal/{EquipmentID}',[ExecutionProjectController::class,'receiveEquipmentIdForShowModal'])->name('ReceiveEquipmentIdForShowModal ');
Route::get('/api/receiveEquipmentsExecutionProject/{receiveNumberProject}',[ExecutionProjectController::class,'receiveEquipmentsExecutionProject'])->name('receiveEquipmentsExecutionProject'); // Route::get('/api/receiveEquipmentsExecutionProject/{receiveNumberProject}',[ExecutionProjectController::class,'receiveEquipmentsExecutionProject'])->name('receiveEquipmentsExecutionProject');
Route::get('/api/receiveEquipmentsProject/{receiveNumberProject}',[ProjectoDatacontroller::class,'receiveEquipmentsProject']);
Route::get('/api/receiveWorkstationProject/{receiveNumberProject}',[ProjectoDatacontroller::class,'receiveWorkstationProject' ]);
Route::get('/api/receiveWorkstationExecutionProject/{receiveNumberProject}',[ExecutionProjectController::class,'receiveWorkstationExecutionProject' ]);
Route::get('user-data', [PreparedProjectController::class, 'getData1'])->name('getData'); Route::get('user-data', [PreparedProjectController::class, 'getData1'])->name('getData');
Route::get('/api/ambits/prepared{equipmentType}', [PreparedProjectController::class,'getAmbits']); Route::get('/api/ambits/prepared{equipmentType}', [PreparedProjectController::class,'getAmbits']);
@ -159,7 +162,6 @@
}); });
/* /*
|-------------------------------------------------------------------------- |--------------------------------------------------------------------------
| Create Users with Super Admin | Create Users with Super Admin
@ -170,10 +172,17 @@
| be assigned to the "web" middleware group. Make something great! | be assigned to the "web" middleware group. Make something great!
| |
*/ */
Route::middleware(['auth', 'verified'])->group(function () { // Route::middleware(['auth', 'verified','checkUserType'])->group(function () {
// Rotas protegidas que exigem verificação de e-mail // // Rotas protegidas que exigem verificação de e-mail
Route::get('/', [ProjectoDatacontroller::class,('HomePage')])->name('home'); // Route::get('/', [ProjectoDatacontroller::class,('HomePage')])->name('home');
}); // Route::get('enterWorkstation',[ExecutionProjectController::class,'enterWorkstation'])->name('enterWorkstation');
// });
Route::middleware(['auth','checkUserType'])->group(function () {
// Rotas protegidas que exigem verificação de e-mail
Route::get('/', [ProjectoDatacontroller::class,('HomePage')])->name('home');
Route::get('enterWorkstation',[ExecutionProjectController::class,'enterWorkstation'])->name('enterWorkstation');
});
@ -316,53 +325,3 @@
// Route::get('/email/notice', function (EmailVerificationRequest $request) { // Route::get('/email/notice', function (EmailVerificationRequest $request) {
// return view('auth.verify-email'); // return view('auth.verify-email');
// })->middleware(['auth'])->name('verification.notice'); // })->middleware(['auth'])->name('verification.notice');
// <table class="table table-bordered">
// <thead>
// <tr>
// <th>Equipment ID</th>
// <th>Factory ID</th>
// <th>Equipament Type ID</th>
// <th>Tag</th>
// <th>equipment_description</th>
// <th>Serial Number</th>
// <th>Brand</th>
// <th>Model</th>
// <th>Is Active</th>
// <th>Attribute Description</th>
// <th>Attribute Value</th>
// </tr>
// </thead>
// <tbody>
// @foreach ($equipments as $equipment)
// <tr>
// <td>{{ $equipment->equipment_id }}</td>
// <td>{{ $equipment->factory_id }}</td>
// <td>{{ $equipment->equipament_type_id }}</td>
// <td>{{ $equipment->tag }}</td>
// <td>{{ $equipment->equipment_description }}</td>
// <td>{{ $equipment->serial_number }}</td>
// <td>{{ $equipment->brand }}</td>
// <td>{{ $equipment->model }}</td>
// <td>{{ $equipment->Is_active }}</td>
// @if (isset($equipment->specific_attributes))
// @foreach ($equipment->specific_attributes as $attribute)
// @if ($loop->first)
// <td>{{ $attribute['description'] }}</td>
// <td>{{ $attribute['value'] }}</td>
// @else
// </tr><tr>
// <td colspan="9"></td>
// <td>{{ $attribute['description'] }}</td>
// <td>{{ $attribute['value'] }}</td>
// @endif
// @endforeach
// @else
// <td colspan="2"></td>
// @endif
// </tr>
// @endforeach
// </tbody>
// </table>