update WS 31/01
This commit is contained in:
parent
5ef4d8c95b
commit
02281f4892
|
|
@ -5,6 +5,8 @@
|
|||
use App\Models\AmbitsEquipment;
|
||||
use App\Models\Equipment;
|
||||
use App\Models\EquipmentAssociationAmbit;
|
||||
use App\Models\EquipmentWorkHistory;
|
||||
use App\Models\SpecificAttributesEquipmentType;
|
||||
use App\Models\Unit;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
|
|
@ -12,6 +14,7 @@
|
|||
use App\Models\CompanyProject;
|
||||
use App\Models\EquipmentType;
|
||||
use App\Models\Plant;
|
||||
use Carbon\Carbon;
|
||||
|
||||
use Yajra\DataTables\Facades\DataTables;
|
||||
|
||||
|
|
@ -34,16 +37,30 @@ public function getEquipmentsOfAmbit(Request $request)
|
|||
$projectId = $request->get('projectId');
|
||||
$ambitId = $request->get('ambitId');
|
||||
|
||||
// $dataAmbit = AmbitsEquipment::where('ambits_id', $ambitId)->first();
|
||||
// $receiveDataEquipments = Equipment::where('company_projects_id', $projectId)->get();
|
||||
// $filteredAssociations = EquipmentAssociationAmbit::where('ambits_id', $dataAmbit->ambits_id)
|
||||
// ->whereIn('equipment_id', $receiveDataEquipments->pluck('equipment_id'))
|
||||
// ->get();
|
||||
// $query = Equipment::whereIn('equipment_id', $filteredAssociations->pluck('equipment_id'))->get();
|
||||
|
||||
$dataAmbit = AmbitsEquipment::where('ambits_id', $ambitId)->first();
|
||||
|
||||
$receiveDataEquipments = Equipment::where('company_projects_id', $projectId)->get();
|
||||
$receiveDataEquipments = Equipment::where('equipments.company_projects_id', $projectId)
|
||||
->join('equipment_work_historys', 'equipments.equipment_id', '=', 'equipment_work_historys.equipment_id')
|
||||
->select('equipment_work_historys.equipmentWorkHistorys_id', 'equipment_work_historys.ispt_number') // Adicionei 'equipment_work_historys.ispt_number' aqui
|
||||
->pluck('equipmentWorkHistorys_id');
|
||||
|
||||
$filteredAssociations = EquipmentAssociationAmbit::where('ambits_id', $dataAmbit->ambits_id)
|
||||
->whereIn('equipment_id', $receiveDataEquipments->pluck('equipment_id'))
|
||||
->whereIn('equipmentWorkHistorys_id', $receiveDataEquipments)
|
||||
->get();
|
||||
|
||||
$query = Equipment::whereIn('equipment_id', $filteredAssociations->pluck('equipment_id'))->get();
|
||||
// $query = Equipment::select(['ispt_number', 'unit_id', 'equipment_tag'])->get();
|
||||
$equipmentWorkHistoryIds = $filteredAssociations->pluck('equipmentWorkHistorys_id');
|
||||
|
||||
$query = EquipmentWorkHistory::whereIn('equipmentWorkHistorys_id', $equipmentWorkHistoryIds)
|
||||
->join('equipments', 'equipment_work_historys.equipment_id', '=', 'equipments.equipment_id')
|
||||
->select('equipments.*', 'equipment_work_historys.ispt_number as ispt_number') // Adicionei 'equipment_work_historys.ispt_number as ispt_number' aqui
|
||||
->get();
|
||||
|
||||
return DataTables::of($query)
|
||||
// Adicione aqui qualquer manipulação de dados ou colunas adicionais que você precise
|
||||
|
|
@ -56,21 +73,63 @@ public function showReportingForAmbitsProjectPdf($ambitId, $projectId)
|
|||
// Obter o caminho da imagem do usuário ou uma imagem padrão
|
||||
$userLogoPath = Auth::user()->user_logo ? public_path('user_logos/' . Auth::user()->user_logo) : public_path('user_logos/logoISPT4.0.jpg');
|
||||
|
||||
// Pega a data e hora atual
|
||||
$dataAtual = Carbon::now();
|
||||
|
||||
// Se quiser formatar a data, pode fazer assim:
|
||||
$dataFormatada = $dataAtual->format('Y-m-d H:i:s');
|
||||
|
||||
$dataAmbit = AmbitsEquipment::where('ambits_id', $ambitId)->first();
|
||||
|
||||
$receiveDataEquipments = Equipment::where('company_projects_id', $projectId)->get();
|
||||
|
||||
$filteredAssociations = EquipmentAssociationAmbit::where('ambits_id', $dataAmbit->ambits_id)
|
||||
->whereIn('equipment_id', $receiveDataEquipments->pluck('equipment_id'))
|
||||
$receiveDataEquipments = Equipment::where('equipments.company_projects_id', $projectId) // Adicionado 'equipments.' para remover a ambiguidade
|
||||
->join('equipment_work_historys', 'equipments.equipment_id', '=', 'equipment_work_historys.equipment_id')
|
||||
->select('equipment_work_historys.equipmentWorkHistorys_id', 'equipments.*') // Pegando o ID da tabela equipment_work_historys e todos os campos da tabela equipments
|
||||
->get();
|
||||
|
||||
$equipmentDetails = Equipment::whereIn('equipment_id', $filteredAssociations->pluck('equipment_id'))->get();
|
||||
$filteredAssociations = EquipmentAssociationAmbit::where('ambits_id', $dataAmbit->ambits_id)
|
||||
->whereIn('equipmentWorkHistorys_id', $receiveDataEquipments->pluck('equipmentWorkHistorys_id')) // Usando equipmentWorkHistorys_id em vez de equipment_id
|
||||
->get();
|
||||
|
||||
$equipmentWorkHistoryIds = $filteredAssociations->pluck('equipmentWorkHistorys_id');
|
||||
|
||||
// Agora, em vez de buscar diretamente em Equipment, vamos pegar os detalhes via EquipmentWorkHistory
|
||||
$equipmentDetails = EquipmentWorkHistory::whereIn('equipmentWorkHistorys_id', $equipmentWorkHistoryIds)
|
||||
->join('equipments', 'equipment_work_historys.equipment_id', '=', 'equipments.equipment_id')
|
||||
->select('equipments.*', 'equipment_work_historys.*') // Seleciona todos os campos das tabelas equipments e equipment_work_historys
|
||||
->get();
|
||||
|
||||
// $equipmentDetails = EquipmentWorkHistory::whereIn('equipmentWorkHistorys_id', $equipmentWorkHistoryIds)
|
||||
// ->join('equipments', 'equipment_work_historys.equipment_id', '=', 'equipments.equipment_id')
|
||||
// ->leftJoin('specific_attributes_equipment_types', 'equipments.equipment_id', '=', 'specific_attributes_equipment_types.equipment_id') // Fazendo a junção com a tabela 'specific_attributes_equipment_types'
|
||||
// ->select(
|
||||
// 'equipments.*',
|
||||
// 'equipment_work_historys.*',
|
||||
// 'specific_attributes_equipment_types.general_attributes_equipment_id',
|
||||
// 'specific_attributes_equipment_types.specific_attributes_value'
|
||||
// )
|
||||
// ->get()
|
||||
// // Junta os dados obtidos na tabela : specific_attributes_equipment_types, e como os dados na colecao de cada equipamento.
|
||||
// ->transform(function ($item) {
|
||||
// // Aqui você transforma cada item da coleção, adicionando o novo par de chave-valor
|
||||
// $item->specific_attributes = [
|
||||
// $item->general_attributes_equipment_id => $item->specific_attributes_value
|
||||
// ];
|
||||
// // Remove as colunas desnecessárias para evitar duplicação
|
||||
// unset($item->general_attributes_equipment_id, $item->specific_attributes_value);
|
||||
// return $item;
|
||||
// });
|
||||
|
||||
|
||||
$detalsProject = CompanyProject::where('company_projects_id', $projectId)->first();
|
||||
|
||||
|
||||
$pdf = PDF::loadView('userClient.pdfReportings.equipmentsForAmbitPdf', [
|
||||
'equipmentDetails' => $equipmentDetails,
|
||||
'userLogoPath' => $userLogoPath,
|
||||
'dataAmbit' => $dataAmbit,
|
||||
'projectId' => $projectId
|
||||
'projectId' => $projectId,
|
||||
'detalsProject' => $detalsProject,
|
||||
'dataFormatada' => $dataFormatada
|
||||
])->setPaper('a4', 'landscape');
|
||||
return $pdf->stream('relatorio_teste.pdf');
|
||||
|
||||
|
|
@ -130,15 +189,20 @@ public function getDataAmbitsOfProject(Request $request)
|
|||
->addColumn('amountEquipment', function ($ambitsEquipment) use ($projectId) {
|
||||
// Contar quantos equipamentos estão associados a este âmbito para o projeto específico
|
||||
return EquipmentAssociationAmbit::where('ambits_id', $ambitsEquipment->ambits_id)
|
||||
->whereHas('Equipment', function ($q) use ($projectId) {
|
||||
$q->where('company_projects_id', $projectId);
|
||||
})->count();
|
||||
// Primeiro, juntar-se com equipment_work_historys
|
||||
->join('equipment_work_historys', 'equipment_association_ambits.equipmentWorkHistorys_id', '=', 'equipment_work_historys.equipmentWorkHistorys_id')
|
||||
// Depois, juntar-se com equipments
|
||||
->join('equipments', 'equipment_work_historys.equipment_id', '=', 'equipments.equipment_id')
|
||||
// Agora, podemos filtrar pela company_projects_id
|
||||
->where('equipments.company_projects_id', $projectId)
|
||||
->count();
|
||||
})
|
||||
->addColumn('action', function ($dataAmbitProject) use ($projectId) { // Incluindo $projectId no escopo da função anônima
|
||||
->addColumn('action', function ($dataAmbitProject) use ($projectId) {
|
||||
$actionBtn = '<a title="Detalhes do equipamento" href="' . route('showReportingForAmbitsProject', ['ambitId' => $dataAmbitProject->ambits_id, 'projectId' => $projectId]) . '"><i class="fa-solid fa-eye text-primary"></i></a>';
|
||||
return $actionBtn;
|
||||
})
|
||||
->make(true);
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -153,9 +217,14 @@ public function getDataEquipmentsOfProject(Request $request)
|
|||
{
|
||||
$projectId = $request->get('projectId');
|
||||
|
||||
$query = Equipment::join('equipment_association_ambits', 'equipments.equipment_id', '=', 'equipment_association_ambits.equipment_id')
|
||||
$query = Equipment::join('equipment_work_historys', 'equipments.equipment_id', '=', 'equipment_work_historys.equipment_id')
|
||||
// Juntar-se com equipment_association_ambits usando equipment_work_historys
|
||||
->join('equipment_association_ambits', 'equipment_work_historys.equipmentWorkHistorys_id', '=', 'equipment_association_ambits.equipmentWorkHistorys_id')
|
||||
// Juntar-se com ambits_equipments
|
||||
->join('ambits_equipments', 'equipment_association_ambits.ambits_id', '=', 'ambits_equipments.ambits_id')
|
||||
// Filtrar por company_projects_id
|
||||
->where('equipments.company_projects_id', $projectId)
|
||||
// Selecionar os campos desejados
|
||||
->select([
|
||||
'equipments.equipment_id',
|
||||
'equipments.unit_id',
|
||||
|
|
@ -166,6 +235,7 @@ public function getDataEquipmentsOfProject(Request $request)
|
|||
|
||||
$dataEquipentProject = $query->get();
|
||||
|
||||
|
||||
// Retornar a resposta para o DataTables
|
||||
return Datatables::of($dataEquipentProject)
|
||||
|
||||
|
|
@ -187,18 +257,19 @@ public function showDataDetailsProjectClient($projectID)
|
|||
$receiveDataProject = CompanyProject::where('company_projects_id', $projectID)->first();
|
||||
// Recebe todas as Fabricas relacionadas a intalacao do Projecto recebido.
|
||||
$receiveUnitsOfProject = Unit::where('plant_id', $receiveDataProject->plant_id)->get();
|
||||
|
||||
//Recebe todos os tipos de equipamentos
|
||||
$receiveAllTypeEquipments = EquipmentType::all();
|
||||
|
||||
$receiveAllEquipmentsOfProject = Equipment::where('company_projects_id', $projectID)->get();
|
||||
$receiveAllEquipmentsOfProject = EquipmentWorkHistory::where('company_projects_id', $projectID)->get();
|
||||
|
||||
// Primeiro, obtenha todos os 'equipment_id' como um array
|
||||
$equipmentIds = $receiveAllEquipmentsOfProject->pluck('equipment_id')->toArray();
|
||||
// Agora, use 'whereIn' com esse array de 'equipment_id'
|
||||
$receiveAmbitsOfProject = EquipmentAssociationAmbit::whereIn('equipment_id', $equipmentIds)->get();
|
||||
// Obtendo todos os IDs de equipmentWorkHistorys
|
||||
$equipmentWorkHistoryIds = $receiveAllEquipmentsOfProject->pluck('equipmentWorkHistorys_id');
|
||||
|
||||
// para a variavel obter o valor esperado precisamos separar os id como na varaivel acima, ele nao funciona diretamente com a variavel receiveAllEquipmentsOfProject, pois e uma colecao !!
|
||||
$receiveEquipmentAssociatedAmbit = EquipmentAssociationAmbit::whereIn('equipmentWorkHistorys_id', $equipmentWorkHistoryIds)->get();
|
||||
|
||||
// Recebe os todos os ambitos do projecto
|
||||
$AmbitsId = $receiveAmbitsOfProject->pluck('ambits_id')->unique()->toArray();
|
||||
$AmbitsId = $receiveEquipmentAssociatedAmbit->pluck('ambits_id')->unique()->toArray();
|
||||
// Vamos passar os ids dos Ambitos para a view, para envialos para a Tabela Yajra. e carregar com base nos Ambitos
|
||||
$AmbitsIdString = implode(",", $AmbitsId);
|
||||
// Recebe os dados de cada Ambito
|
||||
|
|
@ -211,16 +282,17 @@ public function showDataDetailsProjectClient($projectID)
|
|||
public function getDataProjectsClient(Request $request)
|
||||
{
|
||||
|
||||
// Filtros ...
|
||||
$allPlantsClient = $request->get('allPlantsClient');
|
||||
$receiveAllPlants = $request->get('receiveAllPlants');
|
||||
$receiveAllUnits = $request->get('receiveAllUnits');
|
||||
$receiveEquipmentsType = $request->get('receiveEquipmentsType');
|
||||
|
||||
$clientID = $request->get('clientID');
|
||||
|
||||
//Criar Filtros para Atualizar os dados com base neles.
|
||||
|
||||
|
||||
$client = Auth::user()->user_id;
|
||||
$allPlantsClient = Plant::where('user_id', $client)->pluck('plant_id')->toArray();
|
||||
$allPlantsClient = Plant::where('user_id', $clientID)->pluck('plant_id')->toArray();
|
||||
|
||||
$query = CompanyProject::with('plant') // Assegure-se de que a relação está correta.
|
||||
->whereIn('plant_id', $allPlantsClient)
|
||||
|
|
@ -280,13 +352,16 @@ public function receiveManageAssetsClient()
|
|||
|
||||
}
|
||||
|
||||
public function reportingDataClient()
|
||||
public function reportingDataClient($clientID = null)
|
||||
{
|
||||
|
||||
$client = Auth::user()->user_id;
|
||||
// Se clientID não foi passado, usamos o ID do usuário autenticado
|
||||
if (is_null($clientID)) {
|
||||
$clientID = Auth::user()->user_id;
|
||||
}
|
||||
|
||||
// Busca todas as Instalacoes com base no id do CLIENTE
|
||||
$allPlantsClient = Plant::where('user_id', $client)->get();
|
||||
$allPlantsClient = Plant::where('user_id', $clientID)->get();
|
||||
|
||||
// Extrai os plant_id da coleção $recevePlantClient
|
||||
$plantsIds = $allPlantsClient->pluck('plant_id');
|
||||
|
|
@ -299,7 +374,7 @@ public function reportingDataClient()
|
|||
->orderBy('year', 'desc')
|
||||
->pluck('year');
|
||||
|
||||
return view('userClient.reportingDataClient', compact('allPlantsClient', 'yearsProjects'));
|
||||
return view('userClient.reportingDataClient', compact('clientID','allPlantsClient', 'yearsProjects'));
|
||||
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -460,7 +460,7 @@ public function EditEquipmentsProjects(Request $request)
|
|||
}
|
||||
|
||||
// Retorna uma resposta
|
||||
return redirect()->route('test2', ['id' => $request->numberProject])
|
||||
return redirect()->route('articulated_2', ['id' => $request->numberProject])
|
||||
->with('success', 'Equipamento ' . $equipment->equipment_tag . ' Editado com Sucesso!!!')
|
||||
->with('taskExecutionOrders', $taskExecutionOrders);
|
||||
}
|
||||
|
|
@ -531,7 +531,7 @@ public function createWorkStations(Request $request)
|
|||
}
|
||||
|
||||
// Redireciona para onde você quiser após a criação das workstations
|
||||
return redirect()->route('test3', ['id' => $request->numberProject])
|
||||
return redirect()->route('workStation_3', ['id' => $request->numberProject])
|
||||
->with('success', $numberWorkstations . ' Postos de Trabalho criados !!!')
|
||||
->with('listWorkstations', $listWorkstations);
|
||||
}
|
||||
|
|
@ -654,10 +654,10 @@ public function processStep1(Request $request)
|
|||
session(['form_data.step1' => $request->all()]);
|
||||
|
||||
// // Redirecione o Utilizador para a próxima etapa
|
||||
// return redirect('/test2')
|
||||
// return redirect('/articulated_2')
|
||||
// ->with('project', $project)
|
||||
// ->with('success', 'Dados guardados com sucesso');
|
||||
return redirect()->route('test2', ['id' => $project->company_projects_id])
|
||||
return redirect()->route('articulated_2', ['id' => $project->company_projects_id])
|
||||
->with('success', 'Detalhes, Projecto criado com sucesso');
|
||||
}
|
||||
|
||||
|
|
@ -751,7 +751,7 @@ public function createEquipmentManual(Request $request)
|
|||
]);
|
||||
|
||||
if ($existingEquipment) {
|
||||
return redirect()->route('test2', ['id' => $request->numberProject])
|
||||
return redirect()->route('articulated_2', ['id' => $request->numberProject])
|
||||
->with('danger', 'Equipamento ja Existe !!')
|
||||
->with('listEquipmentsProjects', $listEquipmentsProjects);
|
||||
}
|
||||
|
|
@ -850,7 +850,7 @@ public function createEquipmentManual(Request $request)
|
|||
}
|
||||
|
||||
// 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('articulated_2', ['id' => $request->numberProject])
|
||||
->with('success', 'Equipamento criado com sucesso')
|
||||
->with('listEquipmentsProjects', $listEquipmentsProjects);
|
||||
}
|
||||
|
|
@ -1050,13 +1050,13 @@ public function processStep2(Request $request)
|
|||
|
||||
// $pendingEquipments = session('pendingEquipments');
|
||||
if ($countPendingEquipments != 0) {
|
||||
// return redirect()->route('test2')->with('Danger', 'Equipamentos Pendentes')->with('listValves', $listValves)->with('pendingEquipments', $pendingEquipments);
|
||||
return redirect()->route('test2', ['id' => $request->numberProject])
|
||||
// return redirect()->route('articulated_2')->with('Danger', 'Equipamentos Pendentes')->with('listValves', $listValves)->with('pendingEquipments', $pendingEquipments);
|
||||
return redirect()->route('articulated_2', ['id' => $request->numberProject])
|
||||
->with('danger', 'Equipamentos Pendentes criados : ' . $countPendingEquipments)
|
||||
->with('pendingEquipments', $pendingEquipments);
|
||||
// ->with('success', 'Equipamentos Criados :' . count($listValves))
|
||||
}
|
||||
return redirect()->route('test2', ['id' => $request->numberProject])
|
||||
return redirect()->route('articulated_2', ['id' => $request->numberProject])
|
||||
->with('success', 'Equipamentos Criados :' . $countNewEquipment);
|
||||
}
|
||||
|
||||
|
|
@ -1065,7 +1065,7 @@ public function processStep2(Request $request)
|
|||
session(['form_data.step2' => $request->all()]);
|
||||
|
||||
// Redirecione o Utilizador para a próxima etapa
|
||||
return redirect('/test3');
|
||||
return redirect('/workStation_3');
|
||||
}
|
||||
|
||||
public function showStep3($company_projects_id)
|
||||
|
|
@ -1230,7 +1230,7 @@ public function index()
|
|||
}
|
||||
$allPossibleAttributes = GeneralAttributesEquipment::all()->pluck('description')->toArray();
|
||||
|
||||
return view('test2', ['equipments' => $equipments, 'allAttributes' => $allPossibleAttributes]);
|
||||
return view('articulated_2', ['equipments' => $equipments, 'allAttributes' => $allPossibleAttributes]);
|
||||
// Retorne a view com os dados
|
||||
// return view('test', ['equipments' => $equipments]);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -81,19 +81,22 @@ public function changeAmbitEquipment(Request $request)
|
|||
|
||||
public function deleteEquipmentInProject(Request $request)
|
||||
{
|
||||
$receiveEquipmentId = $request->equipmentId;
|
||||
$receiveEquipment = Equipment::where('equipment_id', $receiveEquipmentId)->first();
|
||||
$receiveEquipment = Equipment::where('equipment_id', $request->equipmentId)->first();
|
||||
$receiveStatus = $request->deleteEquipmentProject;
|
||||
|
||||
if ($receiveStatus == 'complete') {
|
||||
//Independente do tipo de select ele vai deletar o equipamento do Historico
|
||||
EquipmentWorkHistory::where('equipment_id', $receiveEquipment->equipment_id)
|
||||
->where('company_projects_id', $receiveEquipment->company_projects_id)
|
||||
->delete();
|
||||
|
||||
// Deleta o equipamento por completo e retorna
|
||||
if ($receiveStatus == 'complete') {
|
||||
$receiveEquipment->delete();
|
||||
|
||||
return redirect()->back()
|
||||
->with('success', 'Equipamento: ' . $receiveEquipment->equipment_id . ' excluído com sucesso!');
|
||||
} else {
|
||||
// Deleta apaga a associacao do equipamento a Obra
|
||||
$receiveEquipment->company_projects_id = null;
|
||||
$receiveEquipment->save();
|
||||
|
||||
|
|
@ -592,7 +595,7 @@ public function EditEquipmentsProjects(Request $request)
|
|||
}
|
||||
|
||||
// Retorna uma resposta
|
||||
return redirect()->route('test2', ['id' => $request->numberProject])
|
||||
return redirect()->route('articulated_2', ['id' => $request->numberProject])
|
||||
->with('success', 'Equipamento ' . $equipment->equipment_tag . ' Editado com Sucesso!!!')
|
||||
->with('taskExecutionOrders', $taskExecutionOrders);
|
||||
}
|
||||
|
|
@ -663,7 +666,7 @@ public function createWorkStations(Request $request)
|
|||
}
|
||||
|
||||
// Redireciona para onde você quiser após a criação das workstations
|
||||
return redirect()->route('test3', ['id' => $request->numberProject])
|
||||
return redirect()->route('workStation_3', ['id' => $request->numberProject])
|
||||
->with('success', $numberWorkstations . ' Postos de Trabalho criados !!!')
|
||||
->with('listWorkstations', $listWorkstations);
|
||||
}
|
||||
|
|
@ -688,6 +691,14 @@ public function showStep1($company_projects_id)
|
|||
|
||||
$companies = User::where('type_users', 3)->get();
|
||||
|
||||
$receiveDetailsPlant = Plant::where('plant_id', $projects->plant_id)->first();
|
||||
|
||||
$receiveDetailsUser = User::where('user_id', $receiveDetailsPlant->user_id)->first();
|
||||
// $receiveDetailsUser->plantName = $receiveDetailsPlant->plant_name;
|
||||
|
||||
$projects->plantName = $receiveDetailsPlant->plant_name;
|
||||
$projects->userName = $receiveDetailsUser->user_name;
|
||||
|
||||
return view('projectsClients/projectDetails_1', ['step' => 1], ['companies' => $companies])
|
||||
->with('projects', $projects);
|
||||
}
|
||||
|
|
@ -695,6 +706,56 @@ public function showStep1($company_projects_id)
|
|||
// Se forem alterados dados dos Detalhes da Obra, vai ser alterado
|
||||
public function EditprocessStep1(Request $request)
|
||||
{
|
||||
dd($request);
|
||||
// Validação...
|
||||
$installationId = $request->input('installation_id');
|
||||
|
||||
if ($installationId <> null && $installationId == 'new_install') {
|
||||
|
||||
// Criar uma nova instalação...
|
||||
$newInstallation = new Plant;
|
||||
|
||||
$newInstallation->plant_name = $request->input('new_company_name');
|
||||
$newInstallation->plant_address = $request->input('new_company_address');
|
||||
$newInstallation->user_id = $request->input('user_id');
|
||||
|
||||
$newInstallation->save();
|
||||
|
||||
// Use o id da nova instalação.
|
||||
$installationId = $newInstallation->plant_id;
|
||||
}
|
||||
|
||||
$receiveDetailsPlant = Plant::where('plant_name', $request->plant_id_present)->first();
|
||||
|
||||
// $project = new CompanyProject;
|
||||
$project = CompanyProject::where('company_projects_id', $request->projectId)->first();
|
||||
|
||||
$project->company_project_description = $request->input('description_project');
|
||||
$project->project_ispt_number = $request->input('n_project_ispt');
|
||||
$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 = $receiveDetailsPlant->plant_id;
|
||||
$project->order_project = 1;
|
||||
|
||||
$project->save();
|
||||
|
||||
session(['form_data.step1' => $request->all()]);
|
||||
|
||||
// // Redirecione o Utilizador para a próxima etapa
|
||||
// return redirect('/articulated_2')
|
||||
// ->with('project', $project)
|
||||
// ->with('success', 'Dados guardados com sucesso');
|
||||
return redirect()->route('articulated_2', ['id' => $project->company_projects_id])
|
||||
->with('success', 'Detalhes do Project atualizados!');
|
||||
}
|
||||
|
||||
public function removePendingEquipment($id)
|
||||
|
|
@ -746,10 +807,12 @@ public function CreateNewEquipmentFromPendingEquipment(Request $request, $id)
|
|||
|
||||
public function processStep1(Request $request)
|
||||
{
|
||||
|
||||
dd($request);
|
||||
// Validação...
|
||||
$installationId = $request->input('installation_id');
|
||||
|
||||
if ($installationId == 'new_install') {
|
||||
if ($installationId <> null && $installationId == 'new_install') {
|
||||
|
||||
// Criar uma nova instalação...
|
||||
$newInstallation = new Plant;
|
||||
|
|
@ -764,7 +827,10 @@ public function processStep1(Request $request)
|
|||
$installationId = $newInstallation->plant_id;
|
||||
}
|
||||
|
||||
$project = new CompanyProject;
|
||||
$receiveDetailsPlant = Plant::where('plant_name', $request->plant_id_present)->first();
|
||||
|
||||
// $project = new CompanyProject;
|
||||
$project = CompanyProject::where('company_projects_id', $request->projectId)->first();
|
||||
|
||||
$project->company_project_description = $request->input('description_project');
|
||||
$project->project_ispt_number = $request->input('n_project_ispt');
|
||||
|
|
@ -772,13 +838,14 @@ public function processStep1(Request $request)
|
|||
$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;
|
||||
$project->plant_id = $receiveDetailsPlant->plant_id;
|
||||
$project->order_project = 1;
|
||||
|
||||
$project->save();
|
||||
|
|
@ -786,11 +853,11 @@ public function processStep1(Request $request)
|
|||
session(['form_data.step1' => $request->all()]);
|
||||
|
||||
// // Redirecione o Utilizador para a próxima etapa
|
||||
// return redirect('/test2')
|
||||
// return redirect('/articulated_2')
|
||||
// ->with('project', $project)
|
||||
// ->with('success', 'Dados guardados com sucesso');
|
||||
return redirect()->route('test2', ['id' => $project->company_projects_id])
|
||||
->with('success', 'Detalhes, Projecto criado com sucesso');
|
||||
return redirect()->route('articulated_2', ['id' => $project->company_projects_id])
|
||||
->with('success', 'Detalhes do Project atualizados!');
|
||||
}
|
||||
|
||||
public function showStep2($company_projects_id)
|
||||
|
|
@ -888,7 +955,7 @@ public function createEquipmentManual(Request $request)
|
|||
]);
|
||||
|
||||
if ($existingEquipment) {
|
||||
return redirect()->route('test2', ['id' => $request->numberProject])
|
||||
return redirect()->route('articulated_2', ['id' => $request->numberProject])
|
||||
->with('danger', 'Equipamento ja Existe !!')
|
||||
->with('listEquipmentsProjects', $listEquipmentsProjects);
|
||||
}
|
||||
|
|
@ -928,8 +995,22 @@ public function createEquipmentManual(Request $request)
|
|||
|
||||
$newEquipmentWorkHistorys = new EquipmentWorkHistory;
|
||||
|
||||
// Verifica se já existem registros com o mesmo 'equipment_id' e 'company_projects_id'
|
||||
$existingRecords = EquipmentWorkHistory::where('company_projects_id', $request->numberProject)
|
||||
->orderBy('ispt_number', 'desc') // Ordena de forma decrescente
|
||||
->first(); // Pega o primeiro resultado, que seria o maior número
|
||||
|
||||
if ($existingRecords) {
|
||||
// Se existirem registros, o próximo número será o maior número existente + 1
|
||||
$isptNumber = $existingRecords->ispt_number + 1;
|
||||
} else {
|
||||
// Se não existirem registros, começa com 1
|
||||
$isptNumber = 1;
|
||||
}
|
||||
|
||||
|
||||
$newEquipmentWorkHistorys->equipment_id = $equipmentID;
|
||||
$newEquipmentWorkHistorys->ispt_number = 0;
|
||||
$newEquipmentWorkHistorys->ispt_number = $isptNumber;
|
||||
$newEquipmentWorkHistorys->company_projects_id = $request->numberProject;
|
||||
|
||||
$newEquipmentWorkHistorys->save();
|
||||
|
|
@ -987,7 +1068,7 @@ public function createEquipmentManual(Request $request)
|
|||
}
|
||||
|
||||
// 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('articulated_2', ['id' => $request->numberProject])
|
||||
->with('success', 'Equipamento criado com sucesso')
|
||||
->with('listEquipmentsProjects', $listEquipmentsProjects);
|
||||
}
|
||||
|
|
@ -1006,6 +1087,9 @@ public function processStep2(Request $request)
|
|||
// Inicializa o contador para ispt_number
|
||||
$isptNumber = 1;
|
||||
|
||||
// Recebe o valor do campo 'chooseIfSelectOrCreateEquipments' do formulário
|
||||
$chooseAction = $request->input('chooseIfSelectOrCreateEquipments');
|
||||
|
||||
// Certifique-se de que um arquivo foi enviado
|
||||
if ($file) {
|
||||
//Busca o nome do arquivo xslx.
|
||||
|
|
@ -1020,7 +1104,7 @@ public function processStep2(Request $request)
|
|||
// Retorna um array com todos os names preenchidos na primeira linha do template de Excel
|
||||
$columnNames = $data[0];
|
||||
$countPendingEquipments = 0;
|
||||
$countNewEquipment = 0;
|
||||
$countEquipment = 0;
|
||||
|
||||
// Recebo os nomes das colunas do execel dependendo da linguagem selecionada
|
||||
$columnRealNames = $data[5];
|
||||
|
|
@ -1038,7 +1122,6 @@ public function processStep2(Request $request)
|
|||
// Se a coluna 'fábrica' estiver vazia, pule para a próxima linha
|
||||
continue;
|
||||
}
|
||||
|
||||
$emptyFields = [];
|
||||
|
||||
// Verifica se os 5 primeiros campos essenciais estão preenchidos
|
||||
|
|
@ -1049,14 +1132,7 @@ public function processStep2(Request $request)
|
|||
}
|
||||
}
|
||||
|
||||
if (!empty($emptyFields)) {
|
||||
// Se houver campos vazios, adicione a linha e os campos vazios às linhas ignoradas
|
||||
$ignoredLines[] = [
|
||||
'line' => $i + 1,
|
||||
'emptyFields' => $emptyFields
|
||||
];
|
||||
continue; // Pula para a próxima linha
|
||||
}
|
||||
|
||||
|
||||
// Em cada um das linhas horizontais do excel, vai se guardar a 'key' vinculada ao valor do campo preenchido ou seja a 'key' vai ter o mesmo nome de um dos dados da tabela 'general_attributes_equipaments' na coluna : general_attributes_equipment_description, assim sendo mais facil implementar na tabela : specific_attributes_equipament_types
|
||||
$joinArrays = array_combine($columnNames, $dataLines);
|
||||
|
|
@ -1077,6 +1153,121 @@ public function processStep2(Request $request)
|
|||
->where('equipment_tag', $datas['equipment_tag'])
|
||||
->first();
|
||||
|
||||
//Nesta para vamos separar como tratar os equipamentos que existem, dependendo do tipo de select que o utilizador utilizou
|
||||
|
||||
if ($chooseAction == 'selectEquipments') {
|
||||
|
||||
|
||||
|
||||
if ($existingEquipment) {
|
||||
|
||||
$foundInExcel = false;
|
||||
$rowExcelDuplicated = null;
|
||||
|
||||
// Verificar duplicatas no Excel
|
||||
for ($j = 6; $j < $i; $j++) {
|
||||
if ($data[$j][0] === $datas['unit'] && $data[$j][1] === $datas['equipment_tag'] && $data[$j][4] === $datas['equipment_description']) {
|
||||
$foundInExcel = true;
|
||||
$rowExcelDuplicated = $j;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// Associar o equipamento encontrado ao projeto
|
||||
$existingEquipment->company_projects_id = $company_projects_id;
|
||||
$existingEquipment->save();
|
||||
|
||||
$countEquipment++;
|
||||
|
||||
// Guardo os valores de 'id' e do 'tipo de equipamento' que nosso novo equipamento acabado de criar
|
||||
$receveEquipment_ID = $existingEquipment->equipment_id;
|
||||
$receveEquipament_type_ID = $existingEquipment->equipment_type_id;
|
||||
|
||||
|
||||
|
||||
// Verifica se já existem registros com o mesmo 'equipment_id' e 'company_projects_id'
|
||||
$existingRecords = EquipmentWorkHistory::where('company_projects_id', $company_projects_id)
|
||||
->orderBy('ispt_number', 'desc') // Ordena de forma decrescente
|
||||
->first(); // Pega o primeiro resultado, que seria o maior número
|
||||
|
||||
|
||||
if ($existingRecords) {
|
||||
// Se existirem registros, o próximo número será o maior número existente + 1
|
||||
$isptNumber = $existingRecords->ispt_number + 1;
|
||||
} else {
|
||||
// Se não existirem registros, começa com 1
|
||||
$isptNumber = 1;
|
||||
}
|
||||
|
||||
$newEquipmentWorkHistory = new EquipmentWorkHistory;
|
||||
|
||||
$newEquipmentWorkHistory->equipment_id = $receveEquipment_ID;
|
||||
$newEquipmentWorkHistory->company_projects_id = $company_projects_id;
|
||||
// Continua com o processo de salvar o novo registro
|
||||
$newEquipmentWorkHistory->ispt_number = $isptNumber;
|
||||
|
||||
|
||||
|
||||
$newEquipmentWorkHistory->save();
|
||||
|
||||
// Recebe o Id do 'EquipmentWorkHistory' criado.
|
||||
$recebeNewEquipmentWorkHistoryID = $newEquipmentWorkHistory->equipmentWorkHistorys_id;
|
||||
|
||||
$isptNumber++;
|
||||
|
||||
|
||||
$ambit = AmbitsEquipment::where('ambits_description', $datas['ambit'])->first();
|
||||
|
||||
if ($ambit) {
|
||||
$ambit_id = $ambit->ambits_id;
|
||||
}
|
||||
|
||||
//Criar associacao do equipamento ao Âmbito
|
||||
$AssociationEquipmentAmbit = new EquipmentAssociationAmbit;
|
||||
$AssociationEquipmentAmbit->equipment_type_id = $existingEquipment->equipment_type_id;
|
||||
$AssociationEquipmentAmbit->ambits_id = $ambit_id;
|
||||
$AssociationEquipmentAmbit->equipmentWorkHistorys_id = $newEquipmentWorkHistory->equipmentWorkHistorys_id;
|
||||
|
||||
$AssociationEquipmentAmbit->save();
|
||||
|
||||
//Recebe a tabela com as associoacoes entre Âmbitos e tarefas Elementares
|
||||
$TasksAssociationAmbits = TasksAssociationAmbits::all()->where('ambits_equipment_id', $AssociationEquipmentAmbit->ambits_id);
|
||||
|
||||
foreach ($TasksAssociationAmbits as $TasksAssociationAmbit) {
|
||||
$JoinsEquipmentsWithTasks = new OrderEquipmentTasks;
|
||||
$JoinsEquipmentsWithTasks->equipmentWorkHistorys_id = $newEquipmentWorkHistory->equipmentWorkHistorys_id;
|
||||
$JoinsEquipmentsWithTasks->elemental_tasks_id = $TasksAssociationAmbit->elemental_tasks_id;
|
||||
$JoinsEquipmentsWithTasks->further_tasks_id = null;
|
||||
$JoinsEquipmentsWithTasks->save();
|
||||
}
|
||||
|
||||
// Separa o nome do arquivo para obter o tipo de documento e a data-hora
|
||||
$parts = explode('_', $originalFileName);
|
||||
$documentType = $parts[2]; // 98
|
||||
$timestamp = $parts[3]; // 2024-01-14_14-33
|
||||
|
||||
// Cria um array agrupado
|
||||
$groupedArrayForPendingEquipments = [$documentType, [$timestamp, $equipmentPendingLogs]];
|
||||
}
|
||||
//Se nao existir deve retornar 'equipamentos nao encontrados, deve ser a mesma coisa que as linha ignoradas
|
||||
$ignoredLines[] = [
|
||||
'line' => $i + 1,
|
||||
'emptyFields' => ['Nenhum equipamento foi localizado que cumpra os requisitos especificados nesta linha.']
|
||||
];
|
||||
continue; // Pula para a próxima linha
|
||||
|
||||
|
||||
} elseif ($chooseAction == 'createEquipments') {
|
||||
|
||||
if (!empty($emptyFields)) {
|
||||
// Se houver campos vazios, adicione a linha e os campos vazios às linhas ignoradas
|
||||
$ignoredLines[] = [
|
||||
'line' => $i + 1,
|
||||
'emptyFields' => $emptyFields
|
||||
];
|
||||
continue; // Pula para a próxima linha
|
||||
}
|
||||
|
||||
if ($existingEquipment) {
|
||||
|
||||
$foundInExcel = false;
|
||||
|
|
@ -1136,12 +1327,27 @@ public function processStep2(Request $request)
|
|||
|
||||
$newEquipament->save();
|
||||
|
||||
$countNewEquipment++;
|
||||
$countEquipment++;
|
||||
|
||||
// Guardo os valores de 'id' e do 'tipo de equipamento' que nosso novo equipamento acabado de criar
|
||||
$receveEquipment_ID = $newEquipament->equipment_id;
|
||||
$receveEquipament_type_ID = $newEquipament->equipment_type_id;
|
||||
|
||||
|
||||
// Verifica se já existem registros com o mesmo 'equipment_id' e 'company_projects_id'
|
||||
$existingRecords = EquipmentWorkHistory::where('company_projects_id', $company_projects_id)
|
||||
->orderBy('ispt_number', 'desc') // Ordena de forma decrescente
|
||||
->first(); // Pega o primeiro resultado, que seria o maior número
|
||||
|
||||
|
||||
if ($existingRecords) {
|
||||
// Se existirem registros, o próximo número será o maior número existente + 1
|
||||
$isptNumber = $existingRecords->ispt_number + 1;
|
||||
} else {
|
||||
// Se não existirem registros, começa com 1
|
||||
$isptNumber = 1;
|
||||
}
|
||||
|
||||
$newEquipmentWorkHistory = new EquipmentWorkHistory;
|
||||
|
||||
$newEquipmentWorkHistory->equipment_id = $receveEquipment_ID;
|
||||
|
|
@ -1163,48 +1369,23 @@ public function processStep2(Request $request)
|
|||
|
||||
//Criar associacao do equipamento ao Âmbito
|
||||
$AssociationEquipmentAmbit = new EquipmentAssociationAmbit;
|
||||
|
||||
$AssociationEquipmentAmbit->equipment_type_id = $receveEquipament_type_ID;
|
||||
$AssociationEquipmentAmbit->equipment_type_id = $newEquipament->equipment_type_id;
|
||||
$AssociationEquipmentAmbit->ambits_id = $ambit_id;
|
||||
$AssociationEquipmentAmbit->equipmentWorkHistorys_id = $recebeNewEquipmentWorkHistoryID;
|
||||
$AssociationEquipmentAmbit->save();
|
||||
$AssociationEquipmentAmbit->equipmentWorkHistorys_id = $newEquipmentWorkHistory->equipmentWorkHistorys_id;
|
||||
|
||||
$execution_order = 1;
|
||||
$AssociationEquipmentAmbit->save();
|
||||
|
||||
//Recebe a tabela com as associoacoes entre Âmbitos e tarefas Elementares
|
||||
$TasksAssociationAmbits = TasksAssociationAmbits::all()->where('ambits_equipment_id', $AssociationEquipmentAmbit->ambits_id);
|
||||
|
||||
foreach ($TasksAssociationAmbits as $TasksAssociationAmbit) {
|
||||
$JoinsEquipmentsWithTasks = new OrderEquipmentTasks;
|
||||
|
||||
$JoinsEquipmentsWithTasks->equipmentWorkHistorys_id = $recebeNewEquipmentWorkHistoryID;
|
||||
$JoinsEquipmentsWithTasks->execution_order = $execution_order++;
|
||||
$JoinsEquipmentsWithTasks->equipmentWorkHistorys_id = $newEquipmentWorkHistory->equipmentWorkHistorys_id;
|
||||
$JoinsEquipmentsWithTasks->elemental_tasks_id = $TasksAssociationAmbit->elemental_tasks_id;
|
||||
$JoinsEquipmentsWithTasks->further_tasks_id = null;
|
||||
// 2 vai significar 'nao' e 1 'sim'
|
||||
$JoinsEquipmentsWithTasks->inspection = 2;
|
||||
$JoinsEquipmentsWithTasks->save();
|
||||
}
|
||||
|
||||
|
||||
$generalAttributes = GeneralAttributesEquipment::all();
|
||||
|
||||
foreach ($generalAttributes as $generalAttribute) {
|
||||
// Verifica se a chave existe em $datas, comparando com os dados da tabela : GeneralAttributesEquipment assim adicionando todos diferentes de NULL relacionados com o equipamento acabado de cria
|
||||
if (isset($datas[$generalAttribute->general_attributes_equipment_description])) {
|
||||
|
||||
$specificAttribute = new SpecificAttributesEquipmentType;
|
||||
$specificAttribute->equipment_id = $receveEquipment_ID;
|
||||
$specificAttribute->equipment_type_id = $receveEquipament_type_ID;
|
||||
$specificAttribute->general_attributes_equipment_id = $generalAttribute->general_attributes_equipment_id;
|
||||
// Atribui o valor da chave correspondente em $datas
|
||||
$specificAttribute->specific_attributes_value = $datas[$generalAttribute->general_attributes_equipment_description];
|
||||
|
||||
$specificAttribute->save();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Separa o nome do arquivo para obter o tipo de documento e a data-hora
|
||||
$parts = explode('_', $originalFileName);
|
||||
$documentType = $parts[2]; // 98
|
||||
|
|
@ -1212,44 +1393,35 @@ public function processStep2(Request $request)
|
|||
|
||||
// Cria um array agrupado
|
||||
$groupedArrayForPendingEquipments = [$documentType, [$timestamp, $equipmentPendingLogs]];
|
||||
|
||||
// Armazenar $groupedArrayForPendingEquipments na sessão
|
||||
session(['groupedArrayForPendingEquipments' => $groupedArrayForPendingEquipments]);
|
||||
|
||||
$pendingEquipments = PendingEquipment::where('pending_company_projects_id', $request->numberProject)->get();
|
||||
|
||||
// Verifica se foram criados equipamentos pendentes,e se nesses pendentes vieram do execel ou da base de dados, alem de indicar as linha nao preenchidas.
|
||||
// if ($countPendingEquipments != 0 && !empty($pendenteLogs) && !empty($linhasIgnoradas)) {
|
||||
// return redirect()->route('test2', ['id' => $request->numberProject])
|
||||
// ->with('danger', 'Equipamentos Pendentes criados : ' . $countPendingEquipments)
|
||||
// ->with('dangerPendenteLogs', ['linhasIgnoradas' => $linhasIgnoradas, 'pendenteLogs' => $pendenteLogs])
|
||||
// ->with('pendingEquipments', $pendingEquipments);
|
||||
// }
|
||||
// return redirect()->route('test2', ['id' => $request->numberProject])
|
||||
// ->with('success', 'Equipamentos Criados :' . $countNewEquipment);
|
||||
}
|
||||
}
|
||||
|
||||
if ($countPendingEquipments != 0 && !empty($equipmentPendingLogs)) {
|
||||
// Se houver equipamentos pendentes, redirecione com essa informação e inclua os $linhasIgnoradas se não estiverem vazios
|
||||
return redirect()->route('test2', ['id' => $request->numberProject])
|
||||
return redirect()->route('articulated_2', ['id' => $request->numberProject])
|
||||
->with('danger', 'Equipamentos Pendentes criados: ' . $countPendingEquipments)
|
||||
->with('dangerLogs', $ignoredLines)
|
||||
->with('equipmentPendingLogs', $equipmentPendingLogs)
|
||||
->with('pendingEquipments', $pendingEquipments);
|
||||
} else {
|
||||
// Se não houver equipamentos pendentes, redirecione com uma mensagem de sucesso e inclua os $linhasIgnoradas se não estiverem vazios
|
||||
return redirect()->route('test2', ['id' => $request->numberProject])
|
||||
->with('success', 'Equipamentos Criados: ' . $countNewEquipment)
|
||||
return redirect()->route('articulated_2', ['id' => $request->numberProject])
|
||||
->with('success', 'Equipamentos Criados: ' . $countEquipment)
|
||||
->with('dangerLogs', $ignoredLines);
|
||||
}
|
||||
|
||||
// return redirect()->route('articulated_2', ['id' => $request->numberProject])
|
||||
// ->with('success', 'Equipamentos Adicionados a Obra com sucesso: ' . $countEquipment);
|
||||
}
|
||||
|
||||
//Nao chega aqui ainda pois volta para a pagina com dados ja carregados.
|
||||
|
||||
session(['form_data.step2' => $request->all()]);
|
||||
|
||||
// Redirecione o Utilizador para a próxima etapa
|
||||
return redirect('/test3');
|
||||
return redirect('/workStation_3');
|
||||
}
|
||||
|
||||
public function showStep3($company_projects_id)
|
||||
|
|
@ -1410,7 +1582,7 @@ public function index()
|
|||
}
|
||||
$allPossibleAttributes = GeneralAttributesEquipment::all()->pluck('description')->toArray();
|
||||
|
||||
return view('test2', ['equipments' => $equipments, 'allAttributes' => $allPossibleAttributes]);
|
||||
return view('articulated_2', ['equipments' => $equipments, 'allAttributes' => $allPossibleAttributes]);
|
||||
// Retorne a view com os dados
|
||||
// return view('test', ['equipments' => $equipments]);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@
|
|||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Models\EquipmentWorkHistory;
|
||||
use App\Models\Plant;
|
||||
use App\Models\Unit;
|
||||
use Illuminate\Http\Request;
|
||||
|
|
@ -103,15 +104,23 @@ public function getDataEquipment(Request $request)
|
|||
$receiveEquipmentsType = $request->get('receiveEquipmentsType');
|
||||
|
||||
|
||||
|
||||
$query = Equipment::with('equipmentType', 'unit')
|
||||
// $query = Equipment::with('equipmentType', 'unit')
|
||||
// ->whereIn('unit_id', $unitsIds)
|
||||
// ->select(['equipment_id', 'equipment_tag', 'unit_id', 'equipment_type_id', 'equipment_description']);
|
||||
$query = Equipment::with([
|
||||
'equipmentType',
|
||||
'unit',
|
||||
'equipmentWorkHistory' => function ($query) use ($numberProject) {
|
||||
$query->where('company_projects_id', $numberProject)->orderBy('created_at', 'desc');
|
||||
}
|
||||
])
|
||||
->whereIn('unit_id', $unitsIds)
|
||||
->select(['equipment_id', 'equipment_tag', 'unit_id', 'equipment_type_id']);
|
||||
->select(['equipment_id', 'equipment_tag', 'unit_id', 'equipment_type_id', 'equipment_description']);
|
||||
|
||||
} else {
|
||||
// Query padrão que todas as dataTables recebem, a partir dele fazemos os filt
|
||||
$query = Equipment::with('equipmentType', 'unit')
|
||||
->select(['equipment_id', 'equipment_tag', 'unit_id', 'equipment_type_id']);
|
||||
->select(['equipment_id', 'equipment_tag', 'unit_id', 'equipment_type_id', 'equipment_description']);
|
||||
}
|
||||
|
||||
// Consultas para a Criacao da Obra, Ambas vao ser diferentes, pois na creacao, recebes os equipamentos por obra, porem no portifolio vamos buscar todos.
|
||||
|
|
@ -158,6 +167,13 @@ public function getDataEquipment(Request $request)
|
|||
$equipment = $query->get();
|
||||
|
||||
return DataTables::of($equipment)
|
||||
|
||||
->addColumn('ispt_number', function ($equipment) {
|
||||
// Assumindo que você quer o 'ispt_number' do primeiro 'EquipmentWorkHistory' que corresponde ao 'company_projects_id'
|
||||
$equipmentWorkHistory = $equipment->equipmentWorkHistory->first();
|
||||
return $equipmentWorkHistory ? $equipmentWorkHistory->ispt_number : 'N/A';
|
||||
})
|
||||
|
||||
->addColumn('unit_name', function ($equipment) {
|
||||
// Retorna 'unit_name' do relacionamento 'unit'
|
||||
return $equipment->unit ? $equipment->unit->unit_name : 'N/A';
|
||||
|
|
@ -167,6 +183,12 @@ public function getDataEquipment(Request $request)
|
|||
return $equipment->equipmentType ? $equipment->equipmentType->equipment_type_name : 'N/A';
|
||||
})
|
||||
|
||||
->addColumn('ambit', function ($equipment) {
|
||||
$firstEquipmentWorkHistory = $equipment->equipmentWorkHistory->first();
|
||||
return $firstEquipmentWorkHistory->equipmentAssociationAmbit->ambitsEquipment->ambits_description;
|
||||
})
|
||||
|
||||
|
||||
->addColumn('action', function ($equipment) use ($numberProject) {
|
||||
$dropdownHtml = '<div class="d-flex justify-content-center dropdown">
|
||||
<button data-toggle="dropdown" aria-expanded="false" class="actions-btn btn btn-light circle">
|
||||
|
|
@ -175,7 +197,7 @@ public function getDataEquipment(Request $request)
|
|||
<div class="dropdown-menu dropdown-menu-light">';
|
||||
|
||||
// Adiciona a primeira ação (Detalhes do equipamento)
|
||||
$detailsUrl = !is_null($numberProject) ? route('test11', ['projectID' => $numberProject, 'equipmentID' => $equipment->equipment_id]) : route('test22', ['equipmentID' => $equipment->equipment_id]);
|
||||
$detailsUrl = !is_null($numberProject) ? route('projectDetails_11', ['projectID' => $numberProject, 'equipmentID' => $equipment->equipment_id]) : route('articulated_22', ['equipmentID' => $equipment->equipment_id]);
|
||||
$dropdownHtml .= '<a href="' . $detailsUrl . '" class="dropdown-item text-primary">
|
||||
<i class="fa-solid fa-eye text-primary"></i>
|
||||
Detalhes
|
||||
|
|
|
|||
|
|
@ -3,7 +3,10 @@
|
|||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Models\AmbitsEquipment;
|
||||
use App\Models\ElementalTasks;
|
||||
use App\Models\EquipmentAssociationAmbit;
|
||||
use App\Models\EquipmentWorkHistory;
|
||||
use App\Models\TasksAssociationAmbits;
|
||||
use App\Models\Unit;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
|
|
@ -29,6 +32,116 @@
|
|||
class ProjectoDatacontroller extends Controller
|
||||
{
|
||||
|
||||
public function showAmbitDetailsProjectHistory($projectID, $equipmentID)
|
||||
{
|
||||
|
||||
$detailsProject = CompanyProject::where('company_projects_id', $projectID)->first();
|
||||
$detalsEquipmentWorkProject = EquipmentWorkHistory::where('equipment_id', $equipmentID)
|
||||
->where('company_projects_id', $projectID)->first();
|
||||
|
||||
$receiveAmbit = EquipmentAssociationAmbit::where('equipmentWorkHistorys_id', $detalsEquipmentWorkProject->equipmentWorkHistorys_id)->first();
|
||||
|
||||
// $tasksAssociatedWithAmbit = TasksAssociationAmbits::where('ambits_equipment_id', $receiveAmbit->ambits_id)->get();
|
||||
|
||||
$tasksAssociatedWithAmbit = TasksAssociationAmbits::with('elementalTask')
|
||||
->where('ambits_equipment_id', $receiveAmbit->ambits_id)
|
||||
->get();
|
||||
|
||||
foreach ($tasksAssociatedWithAmbit as $taskAssociation) {
|
||||
if ($taskAssociation->elementalTask) {
|
||||
// Adiciona diretamente ao objeto TasksAssociationAmbits
|
||||
$taskAssociation->elemental_task_description = $taskAssociation->elementalTask->elemental_tasks_description;
|
||||
} else {
|
||||
// Defina como null ou algum valor padrão se não houver tarefa elementar associada
|
||||
$taskAssociation->elemental_task_description = null;
|
||||
}
|
||||
}
|
||||
|
||||
// Agora cada objeto dentro de $tasksAssociatedWithAmbit tem uma propriedade 'elemental_task_description'.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
//buscar Tarfas e tempo de execussao pelo control, assim como suas respostas.
|
||||
|
||||
return view('projectsClients.showAmbitDetailProjectHistory', compact('detailsProject','receiveAmbit'));
|
||||
|
||||
}
|
||||
|
||||
// public function showAllClientsForProjectReportsTable()
|
||||
// {
|
||||
|
||||
// // Primeiro, buscamos todos os clientes com type_users = 3
|
||||
// $allClients = User::where('type_users', 3)->get();
|
||||
|
||||
// // Inicializa um array para manter a contagem de projetos por cliente
|
||||
// $clientProjectCounts = [];
|
||||
|
||||
// foreach ($allClients as $client) {
|
||||
// // Para cada cliente, obtemos os plant_ids associados
|
||||
// $plantIds = Plant::where('user_id', $client->user_id)->pluck('plant_id');
|
||||
|
||||
// // Agora, para cada plant_id, contamos os CompanyProjects associados com datas de início e fim não nulas
|
||||
// $projectCount = CompanyProject::whereIn('plant_id', $plantIds)
|
||||
// ->whereNotNull('date_started')
|
||||
// ->whereNotNull('end_date')
|
||||
// ->count();
|
||||
|
||||
// // Armazenamos a contagem no array com o user_id como chave
|
||||
// $clientProjectCounts[$client->user_id] = $projectCount;
|
||||
// }
|
||||
|
||||
|
||||
// return DataTables()
|
||||
// ->addColumn('action', function ($detailsClient){
|
||||
// $actionBtn = '<a title="Detalhes do equipamento" href="' . route('reportingDataClient', ['clientID' => $detailsClient->user_id]) . '"><i class="fa-solid fa-eye text-primary"></i></a>';
|
||||
// return $actionBtn;
|
||||
// });
|
||||
|
||||
// }
|
||||
|
||||
|
||||
|
||||
public function showAllClientsForProjectReportsTable()
|
||||
{
|
||||
// Buscamos todos os clientes com type_users = 3
|
||||
$allClientsQuery = User::where('type_users', 3);
|
||||
|
||||
// Retornamos o objeto DataTables
|
||||
return DataTables::of($allClientsQuery)
|
||||
|
||||
->addColumn('client', function ($client) {
|
||||
// Aqui você pode retornar o ID do cliente ou algum outro identificador
|
||||
return $client->user_name;
|
||||
})
|
||||
->addColumn('amount_of_projects_completed', function ($client) {
|
||||
// Para cada cliente, obtemos os plant_ids associados
|
||||
$plantIds = Plant::where('user_id', $client->user_id)->pluck('plant_id');
|
||||
|
||||
// Contamos os CompanyProjects associados com datas de início e fim não nulas
|
||||
$projectCount = CompanyProject::whereIn('plant_id', $plantIds)
|
||||
->whereNotNull('date_started')
|
||||
->whereNotNull('end_date')
|
||||
->count();
|
||||
|
||||
// Retornamos a contagem
|
||||
return $projectCount;
|
||||
})
|
||||
->addColumn('action', function ($client) {
|
||||
// Geramos o botão de ação
|
||||
$actionBtn = '<a title="Detalhes do equipamento" href="' . route('reportingDataClient', ['clientID' => $client->user_id]) . '"><i class="fa-solid fa-eye text-primary"></i></a>';
|
||||
return $actionBtn;
|
||||
})
|
||||
->rawColumns(['action']) // Isso permite que o HTML seja renderizado
|
||||
->make(true);
|
||||
}
|
||||
|
||||
public function showAllClientsForProjectReports()
|
||||
{
|
||||
return view('userClient.showAllClientsForProjectReports');
|
||||
}
|
||||
|
||||
public function testRelatorio()
|
||||
{
|
||||
// Obter o caminho da imagem do usuário ou uma imagem padrão
|
||||
|
|
@ -72,7 +185,7 @@ public function receivePlants($receiveAllClients)
|
|||
}
|
||||
|
||||
//Funcao que recebe a Acoes do dataTables das obrar em Planeamento.
|
||||
public function test11($projectID, $equipmentID)
|
||||
public function projectDetails_11($projectID, $equipmentID)
|
||||
{
|
||||
|
||||
$dataEquipment = Equipment::find($equipmentID);
|
||||
|
|
@ -90,16 +203,37 @@ public function test11($projectID, $equipmentID)
|
|||
|
||||
|
||||
//Funcao que recebe a Acoes do dataTables do portifolio.
|
||||
public function test22($equipmentID)
|
||||
public function articulated_22($equipmentID)
|
||||
{
|
||||
|
||||
// $dataEquipment = Equipment::find($equipmentID);
|
||||
// $detailsEquipmentWorkHistory = EquipmentWorkHistory::where('equipment_id',$equipmentID)->first();
|
||||
// $attributes = SpecificAttributesEquipmentType::where('equipment_id',$equipmentID)->get(); // recebe todos os atributos espesificos do equipamento
|
||||
// $OrdemTasks = OrderEquipmentTasks::where('equipmentWorkHistorys_id', $detailsEquipmentWorkHistory->equipmentWorkHistorys_id)->get(); // Todas as tarefas que o equipamento vai realizar :
|
||||
// $OrdemTasksIds = $OrdemTasks->pluck('elemental_tasks_id')->all(); // Array de IDs
|
||||
|
||||
// $receiveAlldetailsEquipmentWorkHistory = EquipmentWorkHistory::where('equipment_id',$equipmentID)->get();
|
||||
|
||||
$dataEquipment = Equipment::find($equipmentID);
|
||||
|
||||
$attributes = SpecificAttributesEquipmentType::where('equipment_id', $equipmentID)->get(); // recebe todos os atributos espesificos do equipamento
|
||||
$OrdemTasks = OrderEquipmentTasks::where('equipment_id', $equipmentID)->get(); // Todas as tarefas que o equipamento vai realizar :
|
||||
$OrdemTasksIds = $OrdemTasks->pluck('elemental_tasks_id')->all(); // Array de IDs
|
||||
|
||||
return view('projectsClients.testRoute', compact('dataEquipment', 'OrdemTasks', 'OrdemTasksIds'));
|
||||
$receiveAlldetailsEquipmentWorkHistory = EquipmentWorkHistory::with('equipmentAssociationAmbit')
|
||||
->where('equipment_id', $equipmentID)
|
||||
->get();
|
||||
|
||||
foreach ($receiveAlldetailsEquipmentWorkHistory as $equipmentWorkHistory) {
|
||||
// Verifica se a relação equipmentAssociationAmbit existe
|
||||
if ($equipmentWorkHistory->equipmentAssociationAmbit) {
|
||||
// Adiciona o ambits_id diretamente ao objeto EquipmentWorkHistory
|
||||
$equipmentWorkHistory->ambitDetals = $equipmentWorkHistory->equipmentAssociationAmbit->ambitsEquipment->ambits_description;
|
||||
}
|
||||
if ($equipmentWorkHistory->companyProject) {
|
||||
$equipmentWorkHistory->nameCompanyProject = $equipmentWorkHistory->companyProject->company_project_description;
|
||||
$equipmentWorkHistory->date_started = $equipmentWorkHistory->companyProject->date_started;
|
||||
}
|
||||
}
|
||||
|
||||
return view('projectsClients.testRoute', compact('dataEquipment', 'receiveAlldetailsEquipmentWorkHistory'));
|
||||
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -67,7 +67,8 @@ public function hasInspectionYes()
|
|||
return $this->orderEquipmentTasks()->where('inspection', 'Sim')->exists();
|
||||
}
|
||||
|
||||
public function EquipmentWorkHistory(){
|
||||
public function equipmentWorkHistory()
|
||||
{
|
||||
return $this->hasMany(EquipmentWorkHistory::class, 'equipment_id', 'equipment_id');
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@ public function equipment()
|
|||
}
|
||||
public function companyProject()
|
||||
{
|
||||
return $this->belongsTo(Equipment::class, 'company_projects_id', 'company_projects_id');
|
||||
return $this->belongsTo(CompanyProject::class, 'company_projects_id', 'company_projects_id');
|
||||
}
|
||||
|
||||
public function controlEquipmentWorkstation()
|
||||
|
|
@ -29,4 +29,9 @@ public function controlEquipmentWorkstation()
|
|||
return $this->hasMany(ControlEquipmentWorkstation::class, 'equipmentWorkHistorys_id', 'equipmentWorkHistorys_id');
|
||||
}
|
||||
|
||||
public function equipmentAssociationAmbit()
|
||||
{
|
||||
return $this->hasOne(EquipmentAssociationAmbit::class, 'equipmentWorkHistorys_id', 'equipmentWorkHistorys_id');
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -10,4 +10,9 @@ class TasksAssociationAmbits extends Model
|
|||
use HasFactory;
|
||||
|
||||
protected $table = 'tasks_association_ambits';
|
||||
|
||||
public function elementalTask()
|
||||
{
|
||||
return $this->belongsTo(ElementalTasks::class, 'elemental_tasks_id', 'elemental_tasks_id');
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -183,7 +183,7 @@
|
|||
'systime', 't_cvf', 't_pdf', 't3d', 'tag_names',
|
||||
'tan', 'tanh', 'tek_color', 'temporary', 'terminal_size',
|
||||
'tetra_clip', 'tetra_surface', 'tetra_volume', 'text', 'thin',
|
||||
'thread', 'threed', 'tic', 'time_test2', 'timegen',
|
||||
'thread', 'threed', 'tic', 'time_articulated_2', 'timegen',
|
||||
'timer', 'timestamp', 'timestamptovalues', 'tm_test', 'toc',
|
||||
'total', 'trace', 'transpose', 'tri_surf', 'triangulate',
|
||||
'trigrid', 'triql', 'trired', 'trisol', 'truncate_lun',
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
<div class="container-fluid">
|
||||
<div class="row mb-2">
|
||||
<div class="col-sm-6">
|
||||
<h1 class="text-light">Utilizador Pendente</h1>
|
||||
<h1>Utilizador Pendente</h1>
|
||||
</div>
|
||||
<div class="col-sm-6">
|
||||
<ol class="breadcrumb float-sm-right">
|
||||
|
|
@ -20,7 +20,7 @@
|
|||
|
||||
<section class="content">
|
||||
<div class="container-fluid">
|
||||
<div class="card-light">
|
||||
<div class="card card-primary">
|
||||
<div class="card-header">
|
||||
<h3 class="card-title">Detalhes Utilizador Pendente</h3>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@
|
|||
<div class="container-fluid">
|
||||
<div class="row mb-2">
|
||||
<div class="col-sm-6">
|
||||
<h1 class="text-light">{{__('messages.users_listUsers.top_view_part.companies')}}</h1>
|
||||
<h1>{{__('messages.users_listUsers.top_view_part.companies')}}</h1>
|
||||
</div>
|
||||
<div class="col-sm-6">
|
||||
<ol class="breadcrumb float-sm-right">
|
||||
|
|
@ -25,7 +25,7 @@
|
|||
|
||||
<section class="content">
|
||||
<div class="container-fluid">
|
||||
<div class="card-light">
|
||||
<div class="card card-primary">
|
||||
<div class="card-header">
|
||||
<h3 class="card-title">{{__('messages.users_listUsers.top_view_part.companies_table')}}</h3>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@
|
|||
<div class="container-fluid">
|
||||
<div class="row mb-2">
|
||||
<div class="col-sm-6">
|
||||
<h1 class="text-light">{{__('messages.users_listUsers.top_view_part.companies')}}</h1>
|
||||
<h1>{{__('messages.users_listUsers.top_view_part.companies')}}</h1>
|
||||
</div>
|
||||
<div class="col-sm-6">
|
||||
<ol class="breadcrumb float-sm-right">
|
||||
|
|
@ -25,7 +25,7 @@
|
|||
|
||||
<section class="content">
|
||||
<div class="container-fluid">
|
||||
<div class="card-light">
|
||||
<div class="card card-primary">
|
||||
<div class="card-header">
|
||||
<h3 class="card-title">{{__('messages.users_listUsers.top_view_part.users_table')}}</h3>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@
|
|||
<div class="container-fluid">
|
||||
<div class="row mb-2">
|
||||
<div class="col-sm-6">
|
||||
<h1 class="text-light">{{ __('messages.portfolio.top_view_part.management_assets') }}</h1>
|
||||
<h1>{{ __('messages.portfolio.top_view_part.management_assets') }}</h1>
|
||||
</div>
|
||||
<div class="col-sm-6">
|
||||
<ol class="breadcrumb float-sm-right">
|
||||
|
|
@ -24,7 +24,7 @@
|
|||
<div class="container-fluid">
|
||||
<div class="row justify-content-center">
|
||||
<div class="col-md-12">
|
||||
<form>
|
||||
{{-- <form>
|
||||
<div class="row">
|
||||
<div class="col-sm-6" id="buttonCreateAssets">
|
||||
<a href="#" type="button"
|
||||
|
|
@ -35,11 +35,10 @@ class="btn btn-block bg-primary btn-lg">{{ __('messages.portfolio.change_buttons
|
|||
class="btn btn-block bg-primary btn-lg">{{ __('messages.portfolio.change_buttons.asset_table') }}</a>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</form> --}}
|
||||
|
||||
<br>
|
||||
|
||||
<div class="card-light" id="cardAssetsTable">
|
||||
<div class="card card-primary" id="cardAssetsTable">
|
||||
|
||||
<div class="card-header">
|
||||
<h3 class="card-title">{{ __('messages.portfolio.change_buttons.asset_table') }}</h3>
|
||||
|
|
|
|||
|
|
@ -51,7 +51,7 @@ class="info-box-number">{{ $CompanyProject->where('order_project', 1)->count() }
|
|||
<h5 class="progress-description">{{ $project->company_project_description }}
|
||||
</h5>
|
||||
<div class="card-tools">
|
||||
<a href="{{ route('test2', ['id' => $project->company_projects_id]) }}"
|
||||
<a href="{{ route('articulated_2', ['id' => $project->company_projects_id]) }}"
|
||||
class="btn btn-tool">
|
||||
<i class="fa-solid fa-eye" style="color:rgb(62, 62, 62)"></i>
|
||||
</a>
|
||||
|
|
|
|||
|
|
@ -309,10 +309,10 @@ class="d-block">{{ Auth::user()->userType?->type_user }}</a>
|
|||
|
||||
{{-- Relatorios para os Admin, SuperAdmin --}}
|
||||
<li class="nav-item">
|
||||
<a href="{{ route('testRelatorio') }}" class="nav-link">
|
||||
<a href="{{ route('showAllClientsForProjectReports') }}" class="nav-link">
|
||||
<i class="nav-icon fas fa-file"></i>
|
||||
<p>
|
||||
Relatórios Admir
|
||||
Relatórios
|
||||
</p>
|
||||
</a>
|
||||
</li>
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@
|
|||
<div class="container-fluid">
|
||||
<div class="row mb-2">
|
||||
<div class="col-sm-6">
|
||||
<h1 class="text-light">{{__('messages.pendingUsers.create_users')}}</h1>
|
||||
<h1>{{__('messages.pendingUsers.create_users')}}</h1>
|
||||
</div>
|
||||
<div class="col-sm-6">
|
||||
<ol class="breadcrumb float-sm-right">
|
||||
|
|
@ -27,7 +27,7 @@
|
|||
<div class="container-fluid">
|
||||
|
||||
|
||||
<div class="card-light">
|
||||
<div class="card card-primary">
|
||||
<div class="card-header">
|
||||
<h3 class="card-title mb-0">{{__('messages.pendingUsers.submit_form')}}</h3>
|
||||
</div>
|
||||
|
|
@ -59,7 +59,7 @@
|
|||
</div>
|
||||
{{-- ./card-light --}}
|
||||
|
||||
<div class="card-light">
|
||||
<div class="card card-primary">
|
||||
<div class="card-header">
|
||||
<h2 class="card-title">{{__('messages.pendingUsers.pending_users')}}:</h2>
|
||||
|
||||
|
|
|
|||
|
|
@ -17,7 +17,6 @@
|
|||
}, 5000); // A mensagem desaparecerá após 5 segundos
|
||||
</script>
|
||||
@endif
|
||||
|
||||
@if (session('danger'))
|
||||
<div class="content">
|
||||
<div class="alert alert-danger" role="alert" id="alert-message-danger" style="transition: opacity 1s;">
|
||||
|
|
@ -40,7 +39,7 @@
|
|||
<div class="card card-danger collapsed-card">
|
||||
|
||||
<div class="card-header clickable">
|
||||
<h3 class="card-title">Erros do Template</h3>
|
||||
<h3 class="card-title" style="color:black">Erros do Template</h3>
|
||||
<div class="card-tools">
|
||||
<button type="button" class="btn btn-tool collapse-button" data-card-widget="collapse"><i
|
||||
class="fas fa-plus"></i></button>
|
||||
|
|
@ -53,7 +52,7 @@ class="fas fa-plus"></i></button>
|
|||
<div class="card card-danger">
|
||||
|
||||
<div class="card-header clickable">
|
||||
<h3 class="card-title">Linhas Ignoradas</h3>
|
||||
<h3 class="card-title" style="color:black">Linhas Ignoradas</h3>
|
||||
<div class="card-tools">
|
||||
<button type="button" class="btn btn-tool collapse-button"
|
||||
data-card-widget="collapse"><i class="fas fa-plus"></i></button>
|
||||
|
|
@ -65,8 +64,8 @@ class="fas fa-plus"></i></button>
|
|||
<ul class="list-group scrollable-list">
|
||||
@foreach (session('dangerLogs') as $ignoredLine)
|
||||
<li class="list-group-item d-flex align-items-center" aria-current="true">
|
||||
<span class="line-text">Linha: {{ $ignoredLine['line'] }}</span>
|
||||
<span class="empty-fields"><b> - Campos Vazios:</b>
|
||||
<span class="line-text">Linha({{ $ignoredLine['line'] }})</span>
|
||||
<span class="empty-fields"><b> - Campos :</b>
|
||||
{{ implode(', ', $ignoredLine['emptyFields']) }}</span>
|
||||
</li>
|
||||
@endforeach
|
||||
|
|
@ -117,7 +116,7 @@ class="fas fa-plus"></i></button>
|
|||
<div class="card card-success collapsed-card">
|
||||
|
||||
<div class="card-header clickable">
|
||||
<h3 class="card-title">Criar Equipamentos Manualmente</h3>
|
||||
<h3 class="card-title" style="color:black">Criar Equipamentos Manualmente</h3>
|
||||
<div class="card-tools">
|
||||
<button type="button" class="btn btn-tool collapse-button" data-card-widget="collapse"><i
|
||||
class="fas fa-plus"></i></button>
|
||||
|
|
@ -126,7 +125,7 @@ class="fas fa-plus"></i></button>
|
|||
|
||||
<!-- /.card-header -->
|
||||
<div class="card-body">
|
||||
<form action="{{ route('test2CreateEquipment') }}" method="POST">
|
||||
<form action="{{ route('articulated_2CreateEquipment') }}" method="POST">
|
||||
@csrf
|
||||
{{-- Vai receber o valor do ID da obra e passar diretamente para o controller, esta em hidden pois não e necessario mostrar seu campo ao utilizador --}}
|
||||
<input type="hidden" name="numberProject" value="{{ $numberProject }}">
|
||||
|
|
@ -177,15 +176,13 @@ class="fas fa-plus"></i></button>
|
|||
<div class="form-group col-sm-6">
|
||||
<div class="input-group-prepend">
|
||||
<span class="input-group-text" id="form-tagEquipment">
|
||||
<i class="fa-sharp fa-solid fa-tag" style="color: #00B0EA;"></i>
|
||||
<i class="fa-sharp fa-solid fa-tag" style="color: #00B0EA;" data-toggle="tooltip" title="Tag"></i>
|
||||
<span style="color:red;"">*</span>
|
||||
</span>
|
||||
<div class="has-float-label">
|
||||
<input type="text" name="tag"
|
||||
class="form-control card_inputs" id="equipmentTag"
|
||||
placeholder="Tag..." aria-label="Tag Equipment"
|
||||
aria-describedby="form-tagEquipment" required>
|
||||
<label>Tag <span class="required">*</span></label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group col-sm-6">
|
||||
|
|
@ -193,64 +190,53 @@ class="form-control card_inputs" id="equipmentTag"
|
|||
<span class="input-group-text" id="form-equipmentDescription">
|
||||
{{-- <i class="fa fa-id-badge"></i> --}}
|
||||
<i class="fa-sharp fa-regular fa-newspaper"
|
||||
style="color: #00B0EA;"></i>
|
||||
style="color: #00B0EA;" data-toggle="tooltip" title="Descrição do equipamento"></i>
|
||||
<span style="color:red;"">*</span>
|
||||
</span>
|
||||
<div class="has-float-label">
|
||||
<input type="text" name="equipmentDescription"
|
||||
class="form-control card_inputs" id="equipmentDescription"
|
||||
placeholder="Descrição Equipamento..."
|
||||
aria-label="Tag Equipment"
|
||||
aria-describedby="form-equipmentDescription" required>
|
||||
<label>Descrição Equipamento <span
|
||||
class="required">*</span></label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- ./row -->
|
||||
|
||||
{{-- 3 inputs per line :equipmentSerialNumber, equipmentBrand, equipmentModel --}}
|
||||
<div class="row">
|
||||
<div class="form-group col-sm-4">
|
||||
<div class="input-group-prepend">
|
||||
<span class="input-group-text" id="form-serialNumberEquipment">
|
||||
<i class="fa-solid fa-barcode" style="color: #00B0EA;"></i>
|
||||
<i class="fa-solid fa-barcode" style="color: #00B0EA;" data-toggle="tooltip" title="Número de série"></i>
|
||||
</span>
|
||||
<div class="has-float-label">
|
||||
<input type="text" name="serialNumberEquipment"
|
||||
class="form-control card_inputs" id="equipmentSerialNumber"
|
||||
placeholder="Número de série"
|
||||
aria-label="Serial Number Equipment"
|
||||
aria-describedby="form-serialNumberEquipment">
|
||||
<label>Número de série </label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group col-sm-4">
|
||||
<div class="input-group-prepend">
|
||||
<span class="input-group-text" id="form-equipmentBrand">
|
||||
<i class="fa-solid fa-object-group" style="color: #00B0EA;"></i>
|
||||
<i class="fa-solid fa-object-group" style="color: #00B0EA;" data-toggle="tooltip" title="Marca"></i>
|
||||
</span>
|
||||
<div class="has-float-label">
|
||||
<input type="text" name="equipmentBrand"
|
||||
class="form-control card_inputs" id="equipmentBrand"
|
||||
placeholder="Marca" aria-label="Serial Number Equipment"
|
||||
aria-describedby="form-equipmentBrand">
|
||||
<label>Marca</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group col-sm-4">
|
||||
<div class="input-group-prepend">
|
||||
<span class="input-group-text" id="form-equipmentModel">
|
||||
<i class="fa-solid fa-cubes" style="color: #00B0EA;"></i>
|
||||
<i class="fa-solid fa-cubes" style="color: #00B0EA;" data-toggle="tooltip" title="Modelo"></i>
|
||||
</span>
|
||||
<div class="has-float-label">
|
||||
<input type="text" name="equipmentModel"
|
||||
class="form-control card_inputs" id="equipmentModel"
|
||||
placeholder="Modelo" aria-label="Serial Number Equipment"
|
||||
aria-describedby="form-equipmentModel">
|
||||
<label>Modelo</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -261,46 +247,37 @@ class="form-control card_inputs" id="equipmentModel"
|
|||
<div class="form-group col-sm-4">
|
||||
<div class="input-group-prepend">
|
||||
<span class="input-group-text" id="form-dimension">
|
||||
<i class="fa-solid fa-ruler " style="color: #00B0EA;"></i>
|
||||
<i class="fa-solid fa-ruler " style="color: #00B0EA;" data-toggle="tooltip" title="Dimensão"></i>
|
||||
</span>
|
||||
<div class="has-float-label">
|
||||
<input type="text" name="dimension"
|
||||
class="form-control card_inputs" id="dimension"
|
||||
placeholder="Dimensão" aria-label="Serial Number Equipment"
|
||||
aria-describedby="form-dimension">
|
||||
<label>Dimensão</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group col-sm-4">
|
||||
<div class="input-group-prepend">
|
||||
<span class="input-group-text" id="form-rating">
|
||||
<i class="fa-solid fa-ranking-star" style="color: #00B0EA;"></i>
|
||||
<i class="fa-solid fa-ranking-star" style="color: #00B0EA;" data-toggle="tooltip" title="Rating"></i>
|
||||
</span>
|
||||
<div class="has-float-label">
|
||||
<input type="text" name="rating"
|
||||
class="form-control card_inputs" id="rating"
|
||||
placeholder="Rating..." aria-label="Serial Number Equipment"
|
||||
aria-describedby="form-rating">
|
||||
<label>Rating</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group col-sm-4">
|
||||
<div class="input-group-prepend">
|
||||
<span class="input-group-text" id="form-dim_certa">
|
||||
<i class="fa-sharp fa-regular fa-square-poll-vertical"></i>
|
||||
<i class="fa-solid fa-ruler-vertical" style="color: #00B0EA;" data-toggle="tooltip" title="Dim Certa"></i>
|
||||
</span>
|
||||
<div class="has-float-label">
|
||||
<input type="text" name="dim_certa"
|
||||
class="form-control card_inputs" id="dim_certa"
|
||||
placeholder="Dim certa..."
|
||||
aria-label="Serial Number Equipment"
|
||||
aria-describedby="form-dim_certa">
|
||||
<label>Dim certa</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -311,43 +288,34 @@ class="form-control card_inputs" id="dim_certa"
|
|||
<div class="form-group col-sm-4">
|
||||
<div class="input-group-prepend">
|
||||
<span class="input-group-text" id="form-main_equipment">
|
||||
<i class="fa-solid fa-cubes" style="color: #00B0EA;"></i>
|
||||
<i class="fa-solid fa-sliders" style="color: #00B0EA;" data-toggle="tooltip" title="Main Equipment"></i>
|
||||
</span>
|
||||
<div class="has-float-label">
|
||||
<input type="text" name="main_equipment"
|
||||
class="form-control card_inputs" id="main_equipment"
|
||||
placeholder="Main Equipment" aria-label="Main Equipment"
|
||||
aria-describedby="form-main_equipment">
|
||||
<label>Main Equipment</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group col-sm-4">
|
||||
<div class="input-group-prepend">
|
||||
<span class="input-group-text" id="form-p&id">
|
||||
<i class="fa-solid fa-cubes" style="color: #00B0EA;"></i>
|
||||
<i class="fa-solid fa-map-location-dot" style="color: #00B0EA;" data-toggle="tooltip" title="P&ID"></i>
|
||||
</span>
|
||||
<div class="has-float-label">
|
||||
<input type="text" name="p&id"
|
||||
class="form-control card_inputs" id="p&id"
|
||||
placeholder="P&ID" aria-label="P&id"
|
||||
aria-describedby="form-p&id">
|
||||
<label>P&ID</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group col-sm-4">
|
||||
<div class="input-group-prepend">
|
||||
<span class="input-group-text" id="form-sap_number">
|
||||
<i class="fa-solid fa-cubes" style="color: #00B0EA;"></i>
|
||||
<i class="fa-solid fa-hashtag" style="color: #00B0EA;" data-toggle="tooltip" title="Número Sap"></i>
|
||||
</span>
|
||||
<div class="has-float-label">
|
||||
<input type="text" name="sap_number"
|
||||
class="form-control card_inputs" id="sap_number"
|
||||
placeholder="Nº SAP" aria-label="Numero Sap"
|
||||
aria-describedby="form-sap_number">
|
||||
<label>Nº SAP</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -358,44 +326,35 @@ class="form-control card_inputs" id="sap_number"
|
|||
<div class="form-group col-sm-4">
|
||||
<div class="input-group-prepend">
|
||||
<span class="input-group-text" id="form-SP_(Bar)_Cold">
|
||||
<i class="fa-solid fa-cubes" style="color: #00B0EA;"></i>
|
||||
<i class="fa-solid fa-signal" style="color: #00B0EA;" data-toggle="tooltip" title="SP (Bar) Cold"></i>
|
||||
</span>
|
||||
<div class="has-float-label">
|
||||
<input type="text" name="SP_(Bar)_Cold"
|
||||
<input type="text" name="sp_(Bar)_Cold"
|
||||
class="form-control card_inputs" id="SP_(Bar)_Cold"
|
||||
placeholder="SP (Bar) Cold" aria-label="SP (Bar) Cold"
|
||||
aria-describedby="form-SP_(Bar)_Cold">
|
||||
<label>SP (Bar) Cold</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group col-sm-4">
|
||||
<div class="input-group-prepend">
|
||||
<span class="input-group-text" id="form-Back_Presure_(Bar)">
|
||||
<i class="fa-solid fa-cubes" style="color: #00B0EA;"></i>
|
||||
<i class="fa-solid fa-stopwatch" style="color: #00B0EA;" data-toggle="tooltip" title="Back_Presure_(Bar)"></i>
|
||||
</span>
|
||||
<div class="has-float-label">
|
||||
<input type="text" name="Back_Presure_(Bar)"
|
||||
<input type="text" name="back_Presure_(Bar)"
|
||||
class="form-control card_inputs" id="Back_Presure_(Bar)"
|
||||
placeholder="Back Presure (Bar)"
|
||||
aria-label="Back Presure (Bar)"
|
||||
aria-describedby="form-Back_Presure_(Bar)">
|
||||
<label>Back Presure (Bar)</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group col-sm-4">
|
||||
<div class="input-group-prepend">
|
||||
<span class="input-group-text" id="form-material">
|
||||
<i class="fa-solid fa-cubes" style="color: #00B0EA;"></i>
|
||||
<i class="fa-brands fa-codepen" style="color: #00B0EA;" data-toggle="tooltip" title="Material"></i>
|
||||
</span>
|
||||
<div class="has-float-label">
|
||||
<input type="text" name="material"
|
||||
class="form-control card_inputs" id="material"
|
||||
placeholder="Material" aria-label="Material"
|
||||
aria-describedby="form-material">
|
||||
<label>Material</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -406,29 +365,23 @@ class="form-control card_inputs" id="material"
|
|||
<div class="form-group col-sm-6">
|
||||
<div class="input-group-prepend">
|
||||
<span class="input-group-text" id="form-manufacturer">
|
||||
<i class="fa-solid fa-cubes" style="color: #00B0EA;"></i>
|
||||
<i class="fa-solid fa-building" style="color: #00B0EA;" data-toggle="tooltip" title="Fabricante"></i>
|
||||
</span>
|
||||
<div class="has-float-label">
|
||||
<input type="text" name="manufacturer"
|
||||
class="form-control card_inputs" id="manufacturer"
|
||||
placeholder="Fabricante" aria-label="Fabricante"
|
||||
aria-describedby="form-manufacturer">
|
||||
<label>Fabricante</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group col-sm-6">
|
||||
<div class="input-group-prepend">
|
||||
<span class="input-group-text" id="form-isolation">
|
||||
<i class="fa-solid fa-cubes" style="color: #00B0EA;"></i>
|
||||
<i class="fa-solid fa-lock" style="color: #00B0EA;" data-toggle="tooltip" title="Isolamento"></i>
|
||||
</span>
|
||||
<div class="has-float-label">
|
||||
<input type="text" name="isolation"
|
||||
class="form-control card_inputs" id="isolation"
|
||||
placeholder="Isolamento" aria-label="Isolamento"
|
||||
aria-describedby="form-isolation">
|
||||
<label>Isolamento</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -439,29 +392,23 @@ class="form-control card_inputs" id="isolation"
|
|||
<div class="form-group col-sm-6">
|
||||
<div class="input-group-prepend">
|
||||
<span class="input-group-text">
|
||||
<i class="fa-solid fa-cubes" style="color: #00B0EA;"></i>
|
||||
<i class="fa-solid fa-stairs" style="color: #00B0EA;" data-toggle="tooltip" title="Andaime"></i>
|
||||
</span>
|
||||
<div class="has-float-label">
|
||||
<select class="form-control card_inputs" name="scaffold">
|
||||
<option value="Sim">Sim</option>
|
||||
<option value="Nao" selected>Nao</option>
|
||||
</select>
|
||||
<label>Andaime?</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group col-sm-6">
|
||||
<div class="input-group-prepend">
|
||||
<span class="input-group-text">
|
||||
<i class="fa-solid fa-cubes" style="color: #00B0EA;"></i>
|
||||
<i class="fa-solid fa-truck-arrow-right" style="color: #00B0EA;" data-toggle="tooltip" title="Grua"></i>
|
||||
</span>
|
||||
<div class="has-float-label">
|
||||
<select class="form-control card_inputs" name="crane">
|
||||
<option value="Sim">Sim</option>
|
||||
<option value="Nao" selected>Nao</option>
|
||||
</select>
|
||||
<label>Grua?</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -1117,7 +1064,7 @@ class="form-control card_inputs" id="PositionerSerialNumber"
|
|||
<div class="card card-primary collapsed-card">
|
||||
|
||||
<div class="card-header clickable">
|
||||
<h3 class="card-title">Selecionar Equipamentos</h3>
|
||||
<h3 class="card-title">Selecionar Equipamentos ja existentes</h3>
|
||||
<div class="card-tools">
|
||||
<button type="button" class="btn btn-tool collapse-button"
|
||||
data-card-widget="collapse"><i class="fas fa-plus"></i></button>
|
||||
|
|
@ -1189,47 +1136,79 @@ class="form-control card_inputs" id="PositionerSerialNumber"
|
|||
</div>
|
||||
</div>
|
||||
|
||||
{{-- Importar Formulário --}}
|
||||
<form action="{{ route('processStep2') }}" method="post" enctype="multipart/form-data">
|
||||
|
||||
<h5 style="color: #09255C;">Criar Pelo Template:</h5>
|
||||
<div class="card">
|
||||
<div class="card-header" style="background-color: #EAF3F6;">
|
||||
<form action="{{ route('processStep2') }}" method="post" enctype="multipart/form-data">
|
||||
@csrf
|
||||
<input type="hidden" name="numberProject" value="{{ $numberProject }}">
|
||||
<div class="row">
|
||||
<div class="col-sm-4 d-flex justify-content-center">
|
||||
|
||||
<div class="row align-items-center">
|
||||
<div class="col-2 col-md-2 col-lg-1">
|
||||
<a href="{{ route('download', ['numberProject' => $numberProject]) }}"
|
||||
class="btn btn-info">Baixar Template</a>
|
||||
{{-- <a id="btn-download-template" href="{{ route('download1',['numberProject'=>$numberProject]) }}" class="btn btn-info">Baixar Template</a> --}}
|
||||
class="input-group-text border rounded-left"
|
||||
style="background-color: #ffffff; display: flex; align-items: center; justify-content: center;"
|
||||
data-toggle="tooltip" title="Baixar Template">
|
||||
<i class="fa-solid fa-download" style="color: #09255C;"></i>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div class="form-group col-sm-4">
|
||||
<div class="col-10 col-md col-lg">
|
||||
<div class="input-group">
|
||||
<span class="input-group-text border rounded-left" id=""
|
||||
style="border-right: none;">
|
||||
<i class="fa-solid fa-file-arrow-up" style="color: #00B0EA;"></i>
|
||||
<span class="input-group-text border rounded-left"
|
||||
style="background-color: #ffffff;" data-toggle="tooltip"
|
||||
title="Seleciona a Funcao do Template">
|
||||
<i class="fa-solid fa-list-check" style="color: #09255C;"></i>
|
||||
</span>
|
||||
<div class="custom-file border rounded-right" style="border-left: none;">
|
||||
<select class="form-control" style="border: 1px solid #09255C;"
|
||||
name="chooseIfSelectOrCreateEquipments">
|
||||
<option value="selectEquipments">Selecionar</option>
|
||||
<option value="createEquipments" selected>Criar Novos</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-9 col-md col-lg">
|
||||
<div class="input-group">
|
||||
<span class="input-group-text border rounded-left"
|
||||
style="background-color: #ffffff;" data-toggle="tooltip"
|
||||
title="Seleciona o template que vai utilizar">
|
||||
<i class="fa-solid fa-file-arrow-up" style="color: #09255C;"></i>
|
||||
</span>
|
||||
<div class="custom-file border rounded-right"
|
||||
style="border-left: none; position: relative;">
|
||||
<input type="file" class="custom-file-input" id="exampleInputFile"
|
||||
name="documento" accept=".xlsx, .xls">
|
||||
<label class="custom-file-label" for="exampleInputFile">Importar
|
||||
Articulado</label>
|
||||
name="documento" accept=".xlsx, .xls"
|
||||
style="opacity: 0; position: absolute; z-index: -1;">
|
||||
<label class="custom-file-label" for="exampleInputFile"
|
||||
style="background-color: #ffffff; border: 1px solid #09255C; cursor: pointer; color: #09255C;">
|
||||
Importar Articulado
|
||||
</label>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-3 col-md-1 col-lg-1">
|
||||
<button type="submit" class="btn"
|
||||
style="background-color: #09255C; color: #ffffff;">Enviar</button>
|
||||
</div>
|
||||
<div class="col-sm-4 d-flex justify-content-end">
|
||||
<button type="submit" class="btn btn-primary">Enviar</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{{-- ./row --}}
|
||||
</form>
|
||||
<script>
|
||||
$(function() {
|
||||
$('[data-toggle="tooltip"]').tooltip();
|
||||
})
|
||||
</script>
|
||||
|
||||
{{-- Pendente --}}
|
||||
<div class="row">
|
||||
<div class="form-group col-sm-4">
|
||||
<a href='#' data-toggle='modal' data-target='#modal-pedingEquipments'>
|
||||
<br>
|
||||
<button class="btn btn-danger">
|
||||
Pendentes :
|
||||
<button class="btn btn-danger" style="color:black">
|
||||
Pendentes
|
||||
@if (isset($pendingEquipments))
|
||||
({{ count($pendingEquipments) }})
|
||||
@endif
|
||||
|
|
@ -1272,19 +1251,22 @@ class="btn btn-info">Baixar Template</a>
|
|||
</div>
|
||||
<!-- row text-center -->
|
||||
|
||||
|
||||
<table id="showProjectEquipment" class="table table-bordered table-striped">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>ID</th>
|
||||
<th>NªIspt</th>
|
||||
<th>Tag</th>
|
||||
<th>Descrição</th>
|
||||
<th>Ambito</th>
|
||||
<th>Fabrica</th>
|
||||
<th>Tipo</th>
|
||||
<th>Ações</th>
|
||||
</tr>
|
||||
</thead>
|
||||
</table>
|
||||
|
||||
|
||||
<!-- ./Card-danger -->
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
|
@ -1294,16 +1276,13 @@ class="btn btn-info">Baixar Template</a>
|
|||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<!-- /.card-body -->
|
||||
|
||||
</div>
|
||||
<!-- ./Card card-Primary -->
|
||||
|
||||
<a style="margin: 10px" href="{{ route('test1', ['id' => $numberProject]) }}"
|
||||
class="btn btn-primary float-left">Anterior</a>
|
||||
<a style="margin: 10px" href="{{ route('test3', ['id' => $numberProject]) }}"
|
||||
class="btn btn-primary float-right">Seguinte</a>
|
||||
<a style="margin: 10px" href="{{ route('projectDetails_1', ['id' => $numberProject]) }}"
|
||||
class="btn btn-primary float-left">Detalhes obra</a>
|
||||
<a style="margin: 10px" href="{{ route('workStation_3', ['id' => $numberProject]) }}"
|
||||
class="btn btn-primary float-right">Postos de Trabalho</a>
|
||||
|
||||
</div>
|
||||
{{-- ./container-fluid --}}
|
||||
|
|
@ -1604,17 +1583,21 @@ class="btn btn-primary float-right">Seguinte</a>
|
|||
}
|
||||
},
|
||||
columns: [{
|
||||
data: 'equipment_id',
|
||||
name: 'equipment_id'
|
||||
data: 'ispt_number',
|
||||
name: 'ispt_number'
|
||||
},
|
||||
// {
|
||||
// data: 'ispt_number',
|
||||
// name: 'ispt_number'
|
||||
// },
|
||||
{
|
||||
data: 'equipment_tag',
|
||||
name: 'equipment_tag'
|
||||
},
|
||||
{
|
||||
data: 'equipment_description',
|
||||
name: 'equipment_description'
|
||||
},
|
||||
{
|
||||
data: 'ambit',
|
||||
name: 'ambit'
|
||||
},
|
||||
{
|
||||
data: 'unit_id',
|
||||
name: 'unit_id'
|
||||
|
|
|
|||
|
|
@ -40,6 +40,7 @@
|
|||
@csrf
|
||||
|
||||
<div class="row">
|
||||
<!-- Identificação do projecto -->
|
||||
<div class="form-group col-sm-6">
|
||||
<label>{{ __('messages.createProject.project_identification') }}<b
|
||||
style="color:red">*</b></label>
|
||||
|
|
@ -47,6 +48,8 @@
|
|||
placeholder="{{ __('messages.createProject.project_identification') }}…"
|
||||
required>
|
||||
</div>
|
||||
|
||||
<!-- Número do Projeto ISPT -->
|
||||
<div class="form-group col-sm-6">
|
||||
<label>{{ __('messages.createProject.ispt_project_number') }}<b
|
||||
style="color:red">*</b></label>
|
||||
|
|
@ -57,6 +60,8 @@
|
|||
</div> <!-- /Row -->
|
||||
|
||||
<div class="row">
|
||||
|
||||
<!-- Gestor de Projeto ISPT -->
|
||||
<div class="form-group col-sm-6">
|
||||
<label>{{ __('messages.createProject.ispt_project_manager') }} <b
|
||||
style="color:red">*</b></label>
|
||||
|
|
@ -64,6 +69,8 @@
|
|||
placeholder="{{ __('messages.createProject.ispt_project_manager') }}…"
|
||||
required>
|
||||
</div>
|
||||
|
||||
<!-- Gestor de Projeto da Empresa -->
|
||||
<div class="form-group col-sm-6">
|
||||
<label>{{ __('messages.createProject.compan_project_manager') }} <b
|
||||
style="color:red">*</b></label>
|
||||
|
|
@ -75,21 +82,25 @@
|
|||
|
||||
<div class="row">
|
||||
|
||||
<div class="form-group col-sm-6" id="companyField">
|
||||
<!-- Empresa Contratante -->
|
||||
<div class="form-group col-sm" id="companyField">
|
||||
<label>{{ __('messages.createProject.select_company.contracting_company') }} <b
|
||||
style="color:red">*</b></label>
|
||||
<select class="form-control" name="user_id" id="company_select" required>
|
||||
<select class="form-control" name="user_id" id="company_select">
|
||||
<option>{{ __('messages.createProject.select_plant.plant') }} ...</option>
|
||||
<option value="new_company">Criar 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>
|
||||
<!-- Instalação -->
|
||||
<div class="form-group col-sm" id="installationField" hidden>
|
||||
<label>{{ __('messages.createProject.select_plant.plant') }} <b
|
||||
style="color:red">*</b></label>
|
||||
<select class="form-control" name="installation_id" id="installationSelect">
|
||||
<select class="form-control" name="installation_id" id="installationSelect"
|
||||
required>
|
||||
|
||||
<!-- As opções de instalação serão preenchidas dinamicamente -->
|
||||
</select>
|
||||
|
|
@ -97,16 +108,24 @@
|
|||
|
||||
</div> <!-- /Row -->
|
||||
|
||||
{{-- Criar uma nova instalacao / Empresa --}}
|
||||
<div class="row" id="new_company_div">
|
||||
{{-- Vai ser a criacao do Projecto --}}
|
||||
<div class="form-group col-sm" id="new_company_input">
|
||||
<label>Nova Empresa</label>
|
||||
<input type="text" class="form-control" name="new_company"
|
||||
placeholder="Nova Empresa…">
|
||||
</div>
|
||||
|
||||
<div class="form-group col-sm-6">
|
||||
<!-- Selecionar ou criar instalacoes -->
|
||||
<div class="form-group col-sm">
|
||||
<label>{{ __('messages.createProject.select_plant.new_plant') }} :</label>
|
||||
<input type="text" id="new_company_name" class="form-control"
|
||||
name="new_company_name"
|
||||
placeholder="{{ __('messages.createProject.select_plant.new_plant') }}…">
|
||||
</div>
|
||||
|
||||
<div class="form-group col-sm-6">
|
||||
<div class="form-group col-sm">
|
||||
<label>{{ __('messages.createProject.select_plant.plant_address') }}</label>
|
||||
<input type="text" class="form-control" name="new_company_address"
|
||||
placeholder="{{ __('messages.createProject.select_plant.plant_address') }}…">
|
||||
|
|
@ -114,14 +133,9 @@
|
|||
</div> <!-- /Row -->
|
||||
|
||||
|
||||
{{-- Verificar esta parte de Code diretamente no Projecto em HTML --}}
|
||||
{{-- <div class="form-group" id="localization_installation_client">
|
||||
<label>Morada Instalação</label>
|
||||
<input type="text" class="form-control" placeholder="Localização" readonly>
|
||||
</div> --}}
|
||||
|
||||
|
||||
<div class="row">
|
||||
|
||||
<!-- Número do Projeto da Empresa -->
|
||||
<div class="form-group col-sm-6">
|
||||
<label>{{ __('messages.createProject.company_project_number') }}<b
|
||||
style="color:red">*</b></label>
|
||||
|
|
@ -130,7 +144,7 @@
|
|||
required>
|
||||
</div>
|
||||
|
||||
<!-- Date -->
|
||||
<!-- Data de Início do Projeto -->
|
||||
<div class="form-group col-sm-6">
|
||||
<label>{{ __('messages.createProject.project_start_date') }} : <b
|
||||
style="color:red">*</b></label>
|
||||
|
|
@ -160,7 +174,7 @@ class="btn btn-primary">{{ __('messages.buttons.save') }}</button>
|
|||
|
||||
|
||||
{{-- 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('articulated_2') }}" class="btn btn-primary next float-right">Next</a> --}}
|
||||
|
||||
{{-- /.card card-primary --}}
|
||||
</fieldset>
|
||||
|
|
@ -168,10 +182,11 @@ class="btn btn-primary">{{ __('messages.buttons.save') }}</button>
|
|||
</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
{{-- <script>
|
||||
$(document).ready(function() {
|
||||
|
||||
var installationsData; // Esta variável irá armazenar as informações das instalações
|
||||
|
||||
$('#company_select').change(function() {
|
||||
var user_id = $(this).val();
|
||||
|
||||
|
|
@ -207,27 +222,63 @@ class="btn btn-primary">{{ __('messages.buttons.save') }}</button>
|
|||
});
|
||||
});
|
||||
// Adicione este código para lidar com a mudança na seleção da instalação
|
||||
$('#installationSelect').change(function() {
|
||||
if (this.value == 'new_install') {
|
||||
$('#new_company_div').show();
|
||||
$('#localization_installation_client').hide();
|
||||
return;
|
||||
}
|
||||
$('#new_company_div').hide();
|
||||
$('#localization_installation_client').show();
|
||||
// $('#installationSelect').change(function() {
|
||||
|
||||
if (this.value == '#') {
|
||||
// var selectedValue = $(this).val();
|
||||
|
||||
// if (this.value == 'new_install') {
|
||||
// $('#new_company_div').show();
|
||||
// $('#localization_installation_client').hide();
|
||||
// return;
|
||||
// }
|
||||
// $('#new_company_div').hide();
|
||||
// $('#localization_installation_client').show();
|
||||
|
||||
// if (this.value == '#') {
|
||||
// $('#new_company_div').hide();
|
||||
// $('#localization_installation_client').hide();
|
||||
// return;
|
||||
// }
|
||||
|
||||
// // Verifique se installationsData está definido
|
||||
// if (installationsData) {
|
||||
// // Encontre a instalação selecionada nos dados da instalação
|
||||
// var selectedInstallation = installationsData.find(function(installation) {
|
||||
// return installation.plant_id == this.value;
|
||||
// }.bind(this));
|
||||
|
||||
// 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);
|
||||
// }
|
||||
// }
|
||||
// });
|
||||
|
||||
$('#installationSelect').change(function() {
|
||||
var selectedValue = $(this).val();
|
||||
|
||||
// Esconde os campos por padrão
|
||||
$('#new_company_div').hide();
|
||||
$('#localization_installation_client').hide();
|
||||
return;
|
||||
$('#new_company_input')
|
||||
.show(); // Mostra por padrão, será escondido conforme condição abaixo
|
||||
|
||||
if (selectedValue == 'new_install') {
|
||||
$('#new_company_div').show(); // Mostra a div com os inputs
|
||||
$('#new_company_input').hide(); // Esconde o input para nova empresa
|
||||
$('#localization_installation_client').hide(); // Esconde outro conteúdo
|
||||
} else if (selectedValue != '#') {
|
||||
$('#localization_installation_client')
|
||||
.show(); // Mostra conteúdo relacionado a instalação existente
|
||||
}
|
||||
|
||||
// Verifique se installationsData está definido
|
||||
if (installationsData) {
|
||||
// Encontre a instalação selecionada nos dados da instalação
|
||||
var selectedInstallation = installationsData.find(function(installation) {
|
||||
return installation.plant_id == this.value;
|
||||
}.bind(this));
|
||||
return installation.plant_id == selectedValue;
|
||||
});
|
||||
|
||||
if (selectedInstallation) {
|
||||
// Preencha o valor do campo de endereço com o endereço da instalação selecionada
|
||||
|
|
@ -237,9 +288,97 @@ class="btn btn-primary">{{ __('messages.buttons.save') }}</button>
|
|||
}
|
||||
});
|
||||
|
||||
|
||||
$('#localization_installation_client').hide();
|
||||
$('#new_company_div').hide();
|
||||
});
|
||||
</script> --}}
|
||||
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
// Esconde os elementos no carregamento da página
|
||||
$('#localization_installation_client').hide();
|
||||
$('#new_company_div').hide();
|
||||
$('#installationField').attr('hidden', 'hidden');
|
||||
|
||||
$('#company_select').change(function() {
|
||||
var user_id = $(this).val();
|
||||
|
||||
// Se a seleção é 'Criar Empresa ...'
|
||||
if (user_id === 'new_company') {
|
||||
$('#new_company_div').show();
|
||||
$('#installationField').attr('hidden', 'hidden');
|
||||
$('#localization_installation_client').hide();
|
||||
return;
|
||||
} else {
|
||||
$('#new_company_div').hide();
|
||||
}
|
||||
|
||||
// Se a seleção é o placeholder ou '#'
|
||||
if (user_id == '#' || user_id === '') {
|
||||
$('#installationField').attr('hidden', 'hidden');
|
||||
$('#localization_installation_client').hide();
|
||||
$('#new_company_div').hide();
|
||||
return;
|
||||
}
|
||||
|
||||
$.get('/api/installations?user_id=' + user_id, function(data) {
|
||||
var select = $('#installationSelect');
|
||||
select.empty();
|
||||
|
||||
// Adicione as opções fixas aqui
|
||||
select.append('<option value="#">Selecione uma instalação...</option>');
|
||||
select.append(
|
||||
'<option value="new_install">Criar uma nova Instalação ?</option>');
|
||||
|
||||
// Agora você pode adicionar suas opções dinâmicas.
|
||||
$.each(data, function(index, installation) {
|
||||
select.append('<option value="' + installation.plant_id + '">' +
|
||||
installation.plant_name + '</option>');
|
||||
});
|
||||
|
||||
// Armazene os dados em installationsData
|
||||
installationsData = data;
|
||||
|
||||
$('#installationField').removeAttr('hidden');
|
||||
});
|
||||
});
|
||||
|
||||
$('#installationSelect').change(function() {
|
||||
var selectedValue = $(this).val();
|
||||
|
||||
if (selectedValue == 'new_install') {
|
||||
$('#new_company_div').show();
|
||||
$('#localization_installation_client').hide();
|
||||
$('#new_company_input').hide(); // Esconde o input para nova empresa
|
||||
return;
|
||||
} else {
|
||||
$('#new_company_div').hide();
|
||||
$('#localization_installation_client').show();
|
||||
$('#new_company_input').show(); // Mostra o input para nova empresa
|
||||
}
|
||||
|
||||
if (selectedValue == '#' || selectedValue === '') {
|
||||
$('#new_company_div').hide();
|
||||
$('#localization_installation_client').hide();
|
||||
return;
|
||||
}
|
||||
|
||||
// Verifique se installationsData está definido
|
||||
if (installationsData) {
|
||||
// Encontre a instalação selecionada nos dados da instalação
|
||||
var selectedInstallation = installationsData.find(function(installation) {
|
||||
return installation.plant_id == selectedValue;
|
||||
});
|
||||
|
||||
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);
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
<script type="text/javascript">
|
||||
|
|
|
|||
|
|
@ -28,6 +28,9 @@
|
|||
<form method="POST" action="{{ route('processStep1') }}" id="idDoFormulario">
|
||||
|
||||
@csrf
|
||||
|
||||
<input type="hidden" name="projectId" value="{{$projects->company_projects_id}}">
|
||||
<input type="hidden" name="statusProject" value="edit">
|
||||
<div class="row">
|
||||
<div class="form-group col-sm-6">
|
||||
<label>Descrição da obra</label>
|
||||
|
|
@ -61,20 +64,20 @@
|
|||
|
||||
<div class="form-group col-sm-6" id="companyField">
|
||||
<label>Empresa Obra</label>
|
||||
{{-- <input type="text" name="user_id" class="form-control" value="{{$projects->user-}}" readonly> --}}
|
||||
<input type="text" name="user_id" class="form-control" value="{{$projects->userName}}" readonly>
|
||||
|
||||
</div>
|
||||
|
||||
<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>
|
||||
value="{{ $projects->plantName }}" readonly>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<div class="row">
|
||||
{{-- <div class="row">
|
||||
|
||||
<div class="form-group col-sm-6" id="companyField">
|
||||
<label>Empresa Nova </label>
|
||||
|
|
@ -94,7 +97,7 @@
|
|||
</select>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div> --}}
|
||||
|
||||
<div class="row" id="new_company_div">
|
||||
|
||||
|
|
@ -135,7 +138,7 @@
|
|||
<i class="far fa-calendar-alt"></i>
|
||||
</span>
|
||||
</div>
|
||||
<input type="text"
|
||||
<input type="text" class="form-control "
|
||||
value="{{ \Carbon\Carbon::parse($projects->date_started)->format('d/m/Y') }}"
|
||||
readonly>
|
||||
<input type="hidden" name="date_started_present"
|
||||
|
|
@ -173,7 +176,7 @@ class="form-control float-right">
|
|||
</div>
|
||||
</div>
|
||||
{{-- /.card card-primary --}}
|
||||
<a href="{{ route('test2', ['id' => $projects]) }}" class="btn btn-primary next float-right">Seguinte</a>
|
||||
<a href="{{ route('articulated_2', ['id' => $projects]) }}" class="btn btn-primary next float-right">Seguinte</a>
|
||||
|
||||
</fieldset>
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,43 @@
|
|||
@extends('Templates/templateAdmin')
|
||||
|
||||
@section('Main-content')
|
||||
<fieldset class="content">
|
||||
<div class="container-fluid">
|
||||
|
||||
<div class="card card-primary">
|
||||
<div class="card-header ">
|
||||
<h3 class="float-left">{{ $detailsProject->company_project_description }}</h3>
|
||||
</div>
|
||||
|
||||
<div class="card-body">
|
||||
<div class="card card-danger">
|
||||
<div class="card-header d-flex justify-content-center align-items-center">
|
||||
<h3 class="mb-0">Ambito</h3>
|
||||
</div>
|
||||
|
||||
<div class="card-body">
|
||||
{{-- @foreach ($collection as $item) --}}
|
||||
<div class="card success">
|
||||
<div class="card-header">
|
||||
<div class="row">
|
||||
<div class="col-sm float-left">Tarefa Elementar</div>
|
||||
<div class="col-sm float-right">Tempo/Finalizar Tarefa</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{{-- @endforeach --}}
|
||||
|
||||
</div>
|
||||
<!-- ./card-body -->
|
||||
</div>
|
||||
<!-- ./card-danger -->
|
||||
|
||||
</div>
|
||||
<!-- ./card-body -->
|
||||
|
||||
</div>
|
||||
<!-- ./card card-primary -->
|
||||
|
||||
</div>
|
||||
</fieldset>
|
||||
@endsection
|
||||
|
|
@ -7,7 +7,7 @@
|
|||
|
||||
<div class="card card-primary">
|
||||
<div class="card-header "> <!-- Flex container with spaced between items -->
|
||||
<h3 class="float-left">Numero ispt</h3> <!-- This item will be on the left -->
|
||||
<h3 class="float-left">Tag : </h3> <!-- This item will be on the left -->
|
||||
<h3 class="float-right">{{ $dataEquipment->equipment_tag }}</h3> <!-- This item will be on the right -->
|
||||
</div>
|
||||
|
||||
|
|
@ -54,8 +54,8 @@
|
|||
<div class="form-group col">
|
||||
<div class="input-group-prepend">
|
||||
<span class="input-group-text" id="form-tagEquipment">
|
||||
<i class="fa-sharp fa-solid fa-tag"
|
||||
style="color: #00B0EA;"></i>
|
||||
<i class="fa-sharp fa-solid fa-tag" style="color: #00B0EA;"
|
||||
data-toggle="tooltip" title="TAG"></i>
|
||||
</span>
|
||||
<input type="text" name="tag"
|
||||
value="{{ $dataEquipment->equipment_tag }}"
|
||||
|
|
@ -69,7 +69,7 @@ class="form-control" id="equipmentTag" placeholder="Tag..."
|
|||
<div class="input-group-prepend">
|
||||
<span class="input-group-text" id="form-equipmentDescription">
|
||||
<i class="fa-sharp fa-regular fa-newspaper"
|
||||
style="color: #00B0EA;"></i>
|
||||
style="color: #00B0EA;" data-toggle="tooltip" title="Descrição"></i>
|
||||
</span>
|
||||
<input type="text" name="equipmentDescription"
|
||||
value="{{ $dataEquipment->equipment_description }}"
|
||||
|
|
@ -88,7 +88,8 @@ class="form-control" id="equipmentDescription"
|
|||
<div class="form-group col">
|
||||
<div class="input-group-prepend">
|
||||
<span class="input-group-text" id="form-serialNumberEquipment">
|
||||
<i class="fa-solid fa-barcode" style="color: #00B0EA;"></i>
|
||||
<i class="fa-solid fa-barcode"
|
||||
style="color: #00B0EA;" data-toggle="tooltip" title="Número de série"></i>
|
||||
</span>
|
||||
<input type="text" name="serialNumberEquipment"
|
||||
value="{{ $dataEquipment->equipment_serial_number }}"
|
||||
|
|
@ -103,7 +104,7 @@ class="form-control card_inputs" id="equipmentSerialNumber"
|
|||
<div class="input-group-prepend">
|
||||
<span class="input-group-text" id="form-equipmentBrand">
|
||||
<i class="fa-solid fa-object-group"
|
||||
style="color: #00B0EA;"></i>
|
||||
style="color: #00B0EA;" data-toggle="tooltip" title="Marca"></i>
|
||||
</span>
|
||||
<input type="text" name="equipmentBrand"
|
||||
value="{{ $dataEquipment->equipment_brand }}"
|
||||
|
|
@ -116,7 +117,8 @@ class="form-control card_inputs" id="equipmentBrand"
|
|||
<div class="form-group col">
|
||||
<div class="input-group-prepend">
|
||||
<span class="input-group-text" id="form-equipmentModel">
|
||||
<i class="fa-solid fa-cubes" style="color: #00B0EA;"></i>
|
||||
<i class="fa-solid fa-cubes"
|
||||
style="color: #00B0EA;" data-toggle="tooltip" title="Modelo"></i>
|
||||
</span>
|
||||
<input type="text" name="equipmentModel"
|
||||
value="{{ $dataEquipment->equipment_model }}"
|
||||
|
|
@ -134,7 +136,8 @@ class="form-control card_inputs" id="equipmentModel"
|
|||
<div class="form-group col-sm-4">
|
||||
<div class="input-group-prepend">
|
||||
<span class="input-group-text" id="form-dimension">
|
||||
<i class="fa-solid fa-ruler " style="color: #00B0EA;"></i>
|
||||
<i class="fa-solid fa-ruler "
|
||||
style="color: #00B0EA;" data-toggle="tooltip" title="Dimensão"></i>
|
||||
</span>
|
||||
<input type="text" name="attributes[8]"
|
||||
class="form-control card_inputs" id="dimension"
|
||||
|
|
@ -149,7 +152,7 @@ class="form-control card_inputs" id="dimension"
|
|||
<div class="input-group-prepend">
|
||||
<span class="input-group-text" id="form-rating">
|
||||
<i class="fa-solid fa-ranking-star"
|
||||
style="color: #00B0EA;"></i>
|
||||
style="color: #00B0EA;"data-toggle="tooltip" title="Rating"></i>
|
||||
</span>
|
||||
<input type="text" name="attributes[17]"
|
||||
class="form-control card_inputs" id="rating"
|
||||
|
|
@ -163,7 +166,8 @@ class="form-control card_inputs" id="rating"
|
|||
<div class="form-group col-sm-4">
|
||||
<div class="input-group-prepend">
|
||||
<span class="input-group-text" id="form-dim_certa">
|
||||
<i class="fa-sharp fa-regular fa-square-poll-vertical"></i>
|
||||
<i class="fa-solid fa-ruler-vertical"
|
||||
style="color: #00B0EA;" data-toggle="tooltip" title="Dim certa"></i>
|
||||
</span>
|
||||
<input type="text" name="attributes[10]"
|
||||
class="form-control card_inputs" id="dim_certa"
|
||||
|
|
@ -181,7 +185,7 @@ class="form-control card_inputs" id="dim_certa"
|
|||
<div class="form-group col-sm-4">
|
||||
<div class="input-group-prepend">
|
||||
<span class="input-group-text" id="form-main_equipment">
|
||||
<i class="fa-solid fa-cubes" style="color: #00B0EA;"></i>
|
||||
<i class="fa-solid fa-sliders" style="color: #00B0EA;" data-toggle="tooltip" title="Main Equipment"></i>
|
||||
</span>
|
||||
<input type="text" name="attributes[18]"
|
||||
class="form-control card_inputs" id="main_equipment"
|
||||
|
|
@ -193,7 +197,8 @@ class="form-control card_inputs" id="main_equipment"
|
|||
<div class="form-group col-sm-4">
|
||||
<div class="input-group-prepend">
|
||||
<span class="input-group-text" id="form-p&id">
|
||||
<i class="fa-solid fa-cubes" style="color: #00B0EA;"></i>
|
||||
<i class="fa-solid fa-map-location-dot"
|
||||
style="color: #00B0EA;" data-toggle="tooltip" title="P&ID"></i>
|
||||
</span>
|
||||
<input type="text" name="attributes[11]"
|
||||
class="form-control card_inputs" id="p&id"
|
||||
|
|
@ -205,7 +210,8 @@ class="form-control card_inputs" id="p&id"
|
|||
<div class="form-group col-sm-4">
|
||||
<div class="input-group-prepend">
|
||||
<span class="input-group-text" id="form-sap_number">
|
||||
<i class="fa-solid fa-cubes" style="color: #00B0EA;"></i>
|
||||
<i class="fa-solid fa-hashtag"
|
||||
style="color: #00B0EA;" data-toggle="tooltip" title="Número Sap"></i>
|
||||
</span>
|
||||
<input type="text" name="attributes[12]"
|
||||
class="form-control card_inputs" id="sap_number"
|
||||
|
|
@ -222,7 +228,8 @@ class="form-control card_inputs" id="sap_number"
|
|||
<div class="form-group col-sm-4">
|
||||
<div class="input-group-prepend">
|
||||
<span class="input-group-text" id="form-SP_(Bar)_Cold">
|
||||
<i class="fa-solid fa-cubes" style="color: #00B0EA;"></i>
|
||||
<i class="fa-solid fa-signal"
|
||||
style="color: #00B0EA;" data-toggle="tooltip" title="SP(Bar)"></i>
|
||||
</span>
|
||||
<input type="text" name="attributes[19]"
|
||||
class="form-control card_inputs" id="SP_(Bar)_Cold"
|
||||
|
|
@ -234,7 +241,8 @@ class="form-control card_inputs" id="SP_(Bar)_Cold"
|
|||
<div class="form-group col-sm-4">
|
||||
<div class="input-group-prepend">
|
||||
<span class="input-group-text" id="form-Back_Presure_(Bar)">
|
||||
<i class="fa-solid fa-cubes" style="color: #00B0EA;"></i>
|
||||
<i class="fa-solid fa-stopwatch"
|
||||
style="color: #00B0EA;" data-toggle="tooltip" title="Back_Presure_(Bar)"></i>
|
||||
</span>
|
||||
<input type="text" name="attributes[20]"
|
||||
class="form-control card_inputs" id="Back_Presure_(Bar)"
|
||||
|
|
@ -247,7 +255,8 @@ class="form-control card_inputs" id="Back_Presure_(Bar)"
|
|||
<div class="form-group col-sm-4">
|
||||
<div class="input-group-prepend">
|
||||
<span class="input-group-text" id="form-material">
|
||||
<i class="fa-solid fa-cubes" style="color: #00B0EA;"></i>
|
||||
<i class="fa-brands fa-codepen"
|
||||
style="color: #00B0EA;" data-toggle="tooltip" title="Material"></i>
|
||||
</span>
|
||||
|
||||
<input type="text" name="attributes[21]"
|
||||
|
|
@ -265,7 +274,8 @@ class="form-control card_inputs" id="material"
|
|||
<div class="form-group col-sm-6">
|
||||
<div class="input-group-prepend">
|
||||
<span class="input-group-text" id="form-manufacturer">
|
||||
<i class="fa-solid fa-cubes" style="color: #00B0EA;"></i>
|
||||
<i class="fa-solid fa-building"
|
||||
style="color: #00B0EA;" data-toggle="tooltip" title="Fabricante" ></i>
|
||||
</span>
|
||||
<input type="text" name="attributes[22]"
|
||||
class="form-control card_inputs" id="manufacturer"
|
||||
|
|
@ -277,7 +287,8 @@ class="form-control card_inputs" id="manufacturer"
|
|||
<div class="form-group col-sm-6">
|
||||
<div class="input-group-prepend">
|
||||
<span class="input-group-text" id="form-isolation">
|
||||
<i class="fa-solid fa-cubes" style="color: #00B0EA;"></i>
|
||||
<i class="fa-solid fa-lock"
|
||||
style="color: #00B0EA;" data-toggle="tooltip" title="Isolamento"></i>
|
||||
</span>
|
||||
<input type="text" name="attributes[13]"
|
||||
class="form-control card_inputs" id="isolation"
|
||||
|
|
@ -294,7 +305,8 @@ class="form-control card_inputs" id="isolation"
|
|||
<div class="form-group col-sm-6">
|
||||
<div class="input-group-prepend">
|
||||
<span class="input-group-text">
|
||||
<i class="fa-solid fa-cubes" style="color: #00B0EA;"></i>
|
||||
<i class="fa-solid fa-stairs"
|
||||
style="color: #00B0EA;" data-toggle="tooltip" title="Andaime"></i>
|
||||
</span>
|
||||
<input type="text" name="attributes[23]"
|
||||
class="form-control card_inputs" id="Scaffold"
|
||||
|
|
@ -306,7 +318,8 @@ class="form-control card_inputs" id="Scaffold"
|
|||
<div class="form-group col-sm-6">
|
||||
<div class="input-group-prepend">
|
||||
<span class="input-group-text">
|
||||
<i class="fa-solid fa-cubes" style="color: #00B0EA;"></i>
|
||||
<i class="fa-solid fa-truck-arrow-right"
|
||||
style="color: #00B0EA;" data-toggle="tooltip" title="Grua"></i>
|
||||
</span>
|
||||
|
||||
<input type="text" name="attributes[24]"
|
||||
|
|
@ -318,12 +331,8 @@ class="form-control card_inputs" id="Crane"
|
|||
</div>
|
||||
</div>
|
||||
{{-- ./row --}}
|
||||
|
||||
</div>
|
||||
<!-- /.card-body -->
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
{{-- ./PSV-card --}}
|
||||
@endif
|
||||
|
|
@ -1156,7 +1165,8 @@ class="form-control card_inputs" id="Back_Presure_(Bar)"
|
|||
<div class="input-group-prepend">
|
||||
<span class="input-group-attributes[21]text"
|
||||
id="form-material">
|
||||
<i class="fa-solid fa-cubes" style="color: #00B0EA;"></i>
|
||||
<i class="fa-solid fa-cubes"
|
||||
style="color: #00B0EA;"></i>
|
||||
</span>
|
||||
<input type="text" name=""
|
||||
class="form-control card_inputs" id="material"
|
||||
|
|
@ -1173,7 +1183,8 @@ class="form-control card_inputs" id="material"
|
|||
<div class="form-group col-sm-6">
|
||||
<div class="input-group-prepend">
|
||||
<span class="input-group-text" id="form-manufacturer">
|
||||
<i class="fa-solid fa-cubes" style="color: #00B0EA;"></i>
|
||||
<i class="fa-solid fa-cubes"
|
||||
style="color: #00B0EA;"></i>
|
||||
</span>
|
||||
<input type="text" name="attributes[22]"
|
||||
class="form-control card_inputs" id="manufacturer"
|
||||
|
|
@ -1185,7 +1196,8 @@ class="form-control card_inputs" id="manufacturer"
|
|||
<div class="form-group col-sm-6">
|
||||
<div class="input-group-prepend">
|
||||
<span class="input-group-text" id="form-isolation">
|
||||
<i class="fa-solid fa-cubes" style="color: #00B0EA;"></i>
|
||||
<i class="fa-solid fa-cubes"
|
||||
style="color: #00B0EA;"></i>
|
||||
</span>
|
||||
<input type="text" name="attributes[13]"
|
||||
class="form-control card_inputs" id="isolation"
|
||||
|
|
@ -1239,11 +1251,64 @@ class="btn btn-primary float-right">Guardar</a>
|
|||
|
||||
<div class="tab-pane fade pt-1" id="history-equipment">
|
||||
|
||||
<div id="isv_card" class="card card-primary specificAttributes-div">
|
||||
<h1>Teste de Histórico</h1>
|
||||
@foreach ($receiveAlldetailsEquipmentWorkHistory as $detailsEquipmentWorkHistory)
|
||||
|
||||
{{-- ./PSV-card --}}
|
||||
@if ($dataEquipment->equipment_type_id == 3)
|
||||
<div id="psv_card" class="card card-secondary specificAttributes-div">
|
||||
<div class="card-header">
|
||||
<h3 class="card-title">Histórico</h3>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
|
||||
<div class="card">
|
||||
<div class="card-header" style="background-color: #EAF3F6;">
|
||||
|
||||
<div class="row align-items-center">
|
||||
|
||||
<div class="col-sm ">
|
||||
<h5 class="float-left"><b>{{$detailsEquipmentWorkHistory->nameCompanyProject}}</b>
|
||||
</h5>
|
||||
</div>
|
||||
|
||||
<div class="col-sm">
|
||||
<h5 class="float-right"><b>{{$detailsEquipmentWorkHistory->date_started}}</b>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="row align-items-center">
|
||||
|
||||
<div class="col-sm ">
|
||||
<p>{{$detailsEquipmentWorkHistory->ambitDetals}}</p>
|
||||
</div>
|
||||
<div class="col-sm">
|
||||
<p>Tempo/ Reparação</p>
|
||||
</div>
|
||||
<div class="col-sm">
|
||||
<a class="btn btn-success float-right" href="{{ route('showAmbitDetailsProjectHistory', ['projectID' => $detailsEquipmentWorkHistory->company_projects_id, 'equipmentID' => $dataEquipment->equipment_id ]) }}">Mais Detalhes</a>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- ./card-->
|
||||
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
||||
@endforeach
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</fieldset>
|
||||
|
||||
<!-- Script para funcionar corretamente o tooltip, para qualquer tipo de aparelho de visualizacao -->
|
||||
<script>
|
||||
$(function() {
|
||||
$('[data-toggle="tooltip"]').tooltip();
|
||||
})
|
||||
</script>
|
||||
@endsection
|
||||
|
|
|
|||
|
|
@ -230,7 +230,7 @@ class="fas fa-plus"></i>
|
|||
{{-- ./card-body --}}
|
||||
</div>
|
||||
<!-- ./Card card-primary -->
|
||||
<a href="{{ route('test2', ['id' => $numberProject]) }}"
|
||||
<a href="{{ route('articulated_2', ['id' => $numberProject]) }}"
|
||||
class="btn btn-primary previous float-left">Anterior</a>
|
||||
|
||||
<form action="{{ route('finishCreatingProject', ['numberProject' => $numberProject]) }}">
|
||||
|
|
|
|||
|
|
@ -86,17 +86,39 @@
|
|||
} */
|
||||
|
||||
|
||||
.footer {
|
||||
/* .footer {
|
||||
width: 97%;
|
||||
height: 20px;
|
||||
font-size: 0.875rem;
|
||||
padding: 1rem;
|
||||
background-color: #09255C;
|
||||
color: #fff;
|
||||
} */
|
||||
|
||||
.footer {
|
||||
display: flex;
|
||||
/* Utiliza o flexbox para o layout */
|
||||
justify-content: space-between;
|
||||
/* Distribui o espaço igualmente entre os elementos */
|
||||
align-items: center;
|
||||
/* Centraliza os elementos verticalmente */
|
||||
width: auto;
|
||||
/* Utiliza toda a largura disponível */
|
||||
padding: 1rem;
|
||||
/* Adiciona um padding para espaço interno */
|
||||
background-color: #09255C;
|
||||
/* Cor de fundo */
|
||||
color: #fff;
|
||||
/* Cor do texto */
|
||||
}
|
||||
|
||||
.last-footer {
|
||||
color:#09255C;
|
||||
.footer-item:first-child {
|
||||
margin-right: 30%
|
||||
/* Alinha o primeiro item à esquerda */
|
||||
}
|
||||
.footer-item:last-child {
|
||||
margin-left: 30%;
|
||||
/* Alinha o último item à direita */
|
||||
}
|
||||
</style>
|
||||
|
||||
|
|
@ -104,61 +126,18 @@
|
|||
|
||||
<body>
|
||||
|
||||
{{-- <div class="margin-top">
|
||||
|
||||
<div class="navBar-box">
|
||||
|
||||
<div class="box">
|
||||
<img class="header-img"
|
||||
src="{{ public_path('/img/ispt/4.0/Ispt4.0_Símbolo_Fundo_Azul-Marinho@2x-100.jpg') }}"
|
||||
alt="Logo Esquerdo">
|
||||
</div>
|
||||
<div class="box box-text">{{ $dataAmbit->ambits_description }}</div>
|
||||
<div class="box last-box">
|
||||
<img class="header-img" src="{{ $userLogoPath }}" alt="User Logo">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<table class="navBar">
|
||||
@php $count = 0; @endphp
|
||||
@foreach ($equipmentDetails as $equipmentDetail)
|
||||
@if ($count % 23 == 0)
|
||||
@if ($count != 0)
|
||||
</table>
|
||||
<div style="page-break-after: always;"></div>
|
||||
@endif
|
||||
<table class="navBar">
|
||||
<tr class="titles">
|
||||
<th>Nº ISPT</th>
|
||||
<th>Unidade</th>
|
||||
<th>Tag Nº</th>
|
||||
</tr>
|
||||
@endif
|
||||
<tr class="items">
|
||||
<td>{{ $equipmentDetail->equipment_id }}</td>
|
||||
<td>{{ $equipmentDetail->unit_id }}</td>
|
||||
<td>{{ $equipmentDetail->equipment_tag }}</td>
|
||||
</tr>
|
||||
@php $count++; @endphp
|
||||
@endforeach
|
||||
</table>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div class="footer">
|
||||
<div>ISPT 4.0</div>
|
||||
<div>Paginacao</div>
|
||||
</div> --}}
|
||||
|
||||
<body>
|
||||
@php $page = 1; @endphp
|
||||
@php $count = 0; @endphp
|
||||
@foreach ($equipmentDetails as $equipmentDetail)
|
||||
@if ($count % 25 == 0)
|
||||
@if ($count != 0)
|
||||
</table>
|
||||
<div class="footer">ISPT 4.0 - - Página {{ $page++ }}</div>
|
||||
{{-- <div class="footer last-footer" style="color:#fff">ISPT 4.0 - - Página {{ $page++ }}</div> --}}
|
||||
<div class="footer">
|
||||
<span class="footer-item">{{ $dataFormatada }}</span>
|
||||
<span class="footer-item">{{ $detalsProject->company_project_description }}</span>
|
||||
<span class="footer-item">ISPT 4.0 - - Página {{ $page++ }}</span>
|
||||
</div>
|
||||
@endif
|
||||
<div class="navBar-box">
|
||||
|
||||
|
|
@ -177,23 +156,64 @@
|
|||
<th>Nº ISPT</th>
|
||||
<th>Unidade</th>
|
||||
<th>Tag Nº</th>
|
||||
<th>Dim</th>
|
||||
<th>#(Classe)</th>
|
||||
<th>DN</th>
|
||||
<th>P&ID</th>
|
||||
<th>Observacoes</th>
|
||||
<th>Andaime</th>
|
||||
<th>Isolamento</th>
|
||||
<th>Grua</th>
|
||||
<th>Concluido</th>
|
||||
</tr>
|
||||
@endif
|
||||
<tr class="items">
|
||||
<td>{{ $equipmentDetail->equipment_id }}</td>
|
||||
<td>{{ $equipmentDetail->unit_id }}</td>
|
||||
<td>{{ $equipmentDetail->equipment_tag }}</td>
|
||||
|
||||
<td>{{ $equipmentDetail->equipment_tag }}</td>
|
||||
<td>{{ $equipmentDetail->equipment_tag }}</td>
|
||||
<td>{{ $equipmentDetail->equipment_tag }}</td>
|
||||
<td>{{ $equipmentDetail->equipment_tag }}</td>
|
||||
<td>{{ $equipmentDetail->equipment_tag }}</td>
|
||||
<td>{{ $equipmentDetail->equipment_tag }}</td>
|
||||
<td>{{ $equipmentDetail->equipment_tag }}</td>
|
||||
<td>{{ $equipmentDetail->equipment_tag }}</td>
|
||||
<td>{{ $equipmentDetail->equipment_tag }}</td>
|
||||
</tr>
|
||||
@php $count++; @endphp
|
||||
@endforeach
|
||||
</table>
|
||||
{{-- <div class="footer last-footer">ISPT 4.0 - - Ultima Página</div> --}}
|
||||
<div class="footer last-footer">ISPT 4.0 - - Página {{ $page++ }}</div>
|
||||
|
||||
{{-- Adicionando linhas em branco para completar a tabela até 25 linhas --}}
|
||||
@while ($count % 23 != 0)
|
||||
<tr class="items">
|
||||
<td> </td> {{-- Espaço em branco --}}
|
||||
<td> </td> {{-- Espaço em branco --}}
|
||||
<td> </td> {{-- Espaço em branco --}}
|
||||
|
||||
<td> </td> {{-- Espaço em branco --}}
|
||||
<td> </td> {{-- Espaço em branco --}}
|
||||
<td> </td> {{-- Espaço em branco --}}
|
||||
<td> </td> {{-- Espaço em branco --}}
|
||||
<td> </td> {{-- Espaço em branco --}}
|
||||
<td> </td> {{-- Espaço em branco --}}
|
||||
<td> </td> {{-- Espaço em branco --}}
|
||||
<td> </td> {{-- Espaço em branco --}}
|
||||
<td> </td> {{-- Espaço em branco --}}
|
||||
</tr>
|
||||
@php $count++; @endphp
|
||||
@endwhile
|
||||
|
||||
</table>
|
||||
<div class="footer">
|
||||
<span class="footer-item">{{ $dataFormatada }}</span>
|
||||
<span class="footer-item">{{ $detalsProject->company_project_description }}</span>
|
||||
<span class="footer-item">ISPT 4.0 - - Página {{ $page++ }}</span>
|
||||
</div>
|
||||
|
||||
</body>
|
||||
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
||||
|
|
|
|||
|
|
@ -27,6 +27,8 @@
|
|||
<!--./card-header-->
|
||||
<div class="card-body">
|
||||
|
||||
<input type="hidden" id="clientID" name="clientID" value="{{$clientID}}">
|
||||
|
||||
<div class="row text-center">
|
||||
|
||||
<div class="col-sm" id="card-allPlantsClient">
|
||||
|
|
@ -119,6 +121,7 @@
|
|||
d.yearsProjects = $('#yearsProjects').val();
|
||||
d.monthsProjects = $('#monthsProjects').val();
|
||||
d.daysProjects = $('#daysProjects').val();
|
||||
d.clientID = $('#clientID').val();
|
||||
}
|
||||
},
|
||||
columns: [{
|
||||
|
|
|
|||
|
|
@ -0,0 +1,92 @@
|
|||
@extends('Templates/templateAdmin')
|
||||
|
||||
@section('Main-content')
|
||||
<section class="content-header">
|
||||
<div class="container-fluid">
|
||||
<div class="row mb-2">
|
||||
<div class="col-sm-6">
|
||||
<h1>Obras dos Clientes</h1>
|
||||
</div>
|
||||
<div class="col-sm-6">
|
||||
<ol class="breadcrumb float-sm-right">
|
||||
</li>
|
||||
<li class="breadcrumb-item active"> Obras dos Clientes</li>
|
||||
</ol>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- Main content -->
|
||||
<section class="content">
|
||||
<div class="container-fluid">
|
||||
<div class="row justify-content-center">
|
||||
<div class="col-md-12">
|
||||
{{-- <input type="hidden" id="projectId" value="{{ $receiveDataProject->company_projects_id }}"> --}}
|
||||
{{-- <input type="hidden" id="AmbitsIdString" value="{{ $AmbitsIdString }}"> --}}
|
||||
|
||||
<div class="card card-primary">
|
||||
<div class="card-header">
|
||||
<h3 class="card-title">Clientes</h3>
|
||||
</div>
|
||||
|
||||
<div class="card-body">
|
||||
|
||||
<table id="showAllClientsForProjectReportsTable" class="table table-bordered table-striped">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Cliente</th>
|
||||
<th>Qtd.Obras Concluidas</th>
|
||||
<th>Visualizar</th>
|
||||
</tr>
|
||||
</thead>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
<!--card-body-->
|
||||
</div>
|
||||
<!-- card card-primary -->
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
@endsection
|
||||
@section('scriptsTemplateAdmin')
|
||||
<script type="text/javascript">
|
||||
var dataTables;
|
||||
$(document).ready(function() {
|
||||
|
||||
dataTables = $('#showAllClientsForProjectReportsTable').DataTable({
|
||||
responsive: true,
|
||||
processing: true,
|
||||
serverSide: true,
|
||||
ajax: {
|
||||
// Rota para obter os valores para o Yajra
|
||||
url: '{{ route('showAllClientsForProjectReportsTable') }}',
|
||||
type: 'GET',
|
||||
data: function(d) {
|
||||
// Busca diretamente o valor de um input tipo Hidden para buscar e enviar o valor do id do project atual
|
||||
d.AmbitsIdString = $('#AmbitsIdString').val();
|
||||
d.projectId = $('#projectId').val();
|
||||
}
|
||||
},
|
||||
columns: [{
|
||||
data: 'client',
|
||||
name: 'client'
|
||||
},
|
||||
|
||||
{
|
||||
data: 'amount_of_projects_completed',
|
||||
name: 'amount_of_projects_completed'
|
||||
},
|
||||
{
|
||||
data: 'action',
|
||||
name: 'action',
|
||||
orderable: false,
|
||||
searchable: false
|
||||
},
|
||||
],
|
||||
});
|
||||
});
|
||||
</script>
|
||||
@endsection
|
||||
|
|
@ -25,7 +25,6 @@
|
|||
<input type="hidden" id="projectId" value="{{ $receiveDataProject->company_projects_id }}">
|
||||
<input type="hidden" id="AmbitsIdString" value="{{ $AmbitsIdString }}">
|
||||
|
||||
|
||||
<div class="card card-primary">
|
||||
<div class="card-header">
|
||||
<h3 class="card-title">{{ $receiveDataProject->company_project_description }}</h3>
|
||||
|
|
|
|||
|
|
@ -52,27 +52,30 @@
|
|||
<div class="card-body">
|
||||
|
||||
<div class="row">
|
||||
|
||||
<div class="form-group col-sm-6">
|
||||
<div class="input-group-prepend">
|
||||
|
||||
<span class="input-group-text" id="form-tagEquipment">
|
||||
<i class="fa-sharp fa-solid fa-tag"
|
||||
style="color: #00B0EA;"></i>
|
||||
style="color: #00B0EA;" data-toggle="tooltip"
|
||||
title="TAG"></i>
|
||||
</span>
|
||||
<input type="text" name="tag"
|
||||
value="{{ $receiveDataEquipment->equipment_tag }}"
|
||||
class="form-control card_inputs" id="equipmentTag"
|
||||
placeholder="Tag..." aria-label="Tag Equipment"
|
||||
aria-describedby="form-tagEquipment" readonly>
|
||||
{{-- <label>Tag </label> --}}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group col-sm-6">
|
||||
<div class="input-group-prepend">
|
||||
<span class="input-group-text"
|
||||
id="form-equipmentDescription">
|
||||
{{-- <i class="fa fa-id-badge"></i> --}}
|
||||
<i class="fa-sharp fa-regular fa-newspaper"
|
||||
style="color: #00B0EA;"></i>
|
||||
style="color: #00B0EA;" data-toggle="tooltip"
|
||||
title="Descrição"></i>
|
||||
</span>
|
||||
<input type="text" name="equipmentDescription"
|
||||
value="{{ $receiveDataEquipment->equipment_description }}"
|
||||
|
|
@ -84,6 +87,7 @@ class="form-control card_inputs"
|
|||
{{-- <label>Descrição Equipamento </label> --}}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
{{-- 3 inputs per line :equipmentSerialNumber, equipmentBrand, equipmentModel --}}
|
||||
|
|
@ -92,8 +96,8 @@ class="form-control card_inputs"
|
|||
<div class="input-group-prepend">
|
||||
<span class="input-group-text"
|
||||
id="form-serialNumberEquipment">
|
||||
<i class="fa-solid fa-barcode"
|
||||
style="color: #00B0EA;"></i>
|
||||
<i class="fa-solid fa-barcode" style="color: #00B0EA;"
|
||||
data-toggle="tooltip" title="Número de série"></i>
|
||||
</span>
|
||||
<input type="text" name="serialNumberEquipment"
|
||||
value="{{ $receiveDataEquipment->equipment_serial_number }}"
|
||||
|
|
@ -108,7 +112,8 @@ class="form-control card_inputs"
|
|||
<div class="input-group-prepend">
|
||||
<span class="input-group-text" id="form-equipmentBrand">
|
||||
<i class="fa-solid fa-object-group"
|
||||
style="color: #00B0EA;"></i>
|
||||
style="color: #00B0EA;" data-toggle="tooltip"
|
||||
title="Marca"></i>
|
||||
</span>
|
||||
<input type="text" name="equipmentBrand"
|
||||
value="{{ $receiveDataEquipment->equipment_brand }}"
|
||||
|
|
@ -121,8 +126,8 @@ class="form-control card_inputs" id="equipmentBrand"
|
|||
<div class="form-group col-sm-4">
|
||||
<div class="input-group-prepend">
|
||||
<span class="input-group-text" id="form-equipmentModel">
|
||||
<i class="fa-solid fa-cubes"
|
||||
style="color: #00B0EA;"></i>
|
||||
<i class="fa-solid fa-cubes" style="color: #00B0EA;"
|
||||
data-toggle="tooltip" title="Modelo"></i>
|
||||
</span>
|
||||
<input type="text" name="equipmentModel"
|
||||
value="{{ $receiveDataEquipment->equipment_model }}"
|
||||
|
|
@ -141,9 +146,11 @@ class="form-control card_inputs" id="equipmentModel"
|
|||
<div class="form-group col-sm-4">
|
||||
<div class="input-group-prepend">
|
||||
<span class="input-group-text" id="form-dimension">
|
||||
<i class="fa-solid fa-ruler "
|
||||
style="color: #00B0EA;"></i>
|
||||
<i class="fa-solid fa-ruler " style="color: #00B0EA;"
|
||||
data-toggle="tooltip" title="Dimensão"></i>
|
||||
</span>
|
||||
|
||||
|
||||
<input type="text" name="attributes[8]"
|
||||
class="form-control card_inputs" id="dimension"
|
||||
placeholder="Dimensão"
|
||||
|
|
@ -157,7 +164,8 @@ class="form-control card_inputs" id="dimension"
|
|||
<div class="input-group-prepend">
|
||||
<span class="input-group-text" id="form-rating">
|
||||
<i class="fa-solid fa-ranking-star"
|
||||
style="color: #00B0EA;"></i>
|
||||
style="color: #00B0EA;"data-toggle="tooltip"
|
||||
title="Rating"></i>
|
||||
</span>
|
||||
<input type="text" name="attributes[17]"
|
||||
class="form-control card_inputs" id="rating"
|
||||
|
|
@ -171,8 +179,9 @@ class="form-control card_inputs" id="rating"
|
|||
<div class="form-group col-sm-4">
|
||||
<div class="input-group-prepend">
|
||||
<span class="input-group-text" id="form-dim_certa">
|
||||
<i
|
||||
class="fa-sharp fa-regular fa-square-poll-vertical"></i>
|
||||
<i class="fa-solid fa-ruler-vertical"
|
||||
style="color: #00B0EA;" data-toggle="tooltip"
|
||||
title="Dim certa"></i>
|
||||
</span>
|
||||
<input type="text" name="attributes[10]"
|
||||
class="form-control card_inputs" id="dim_certa"
|
||||
|
|
@ -190,8 +199,10 @@ class="form-control card_inputs" id="dim_certa"
|
|||
<div class="form-group col-sm-4">
|
||||
<div class="input-group-prepend">
|
||||
<span class="input-group-text" id="form-main_equipment">
|
||||
<i class="fa-solid fa-cubes"
|
||||
style="color: #00B0EA;"></i>
|
||||
{{-- <i class="fa-solid fa-cubes"
|
||||
style="color: #00B0EA;"></i> --}}
|
||||
<i class="fa-solid fa-sliders" style="color: #00B0EA;"
|
||||
data-toggle="tooltip" title="Main Equipment"></i>
|
||||
</span>
|
||||
<input type="text" name="attributes[18]"
|
||||
class="form-control card_inputs" id="main_equipment"
|
||||
|
|
@ -204,8 +215,9 @@ class="form-control card_inputs" id="main_equipment"
|
|||
<div class="form-group col-sm-4">
|
||||
<div class="input-group-prepend">
|
||||
<span class="input-group-text" id="form-p&id">
|
||||
<i class="fa-solid fa-cubes"
|
||||
style="color: #00B0EA;"></i>
|
||||
<i class="fa-solid fa-map-location-dot"
|
||||
style="color: #00B0EA;" data-toggle="tooltip"
|
||||
title="P&ID"></i>
|
||||
</span>
|
||||
<input type="text" name="attributes[11]"
|
||||
class="form-control card_inputs" id="p&id"
|
||||
|
|
@ -217,8 +229,8 @@ class="form-control card_inputs" id="p&id"
|
|||
<div class="form-group col-sm-4">
|
||||
<div class="input-group-prepend">
|
||||
<span class="input-group-text" id="form-sap_number">
|
||||
<i class="fa-solid fa-cubes"
|
||||
style="color: #00B0EA;"></i>
|
||||
<i class="fa-solid fa-hashtag" style="color: #00B0EA;"
|
||||
data-toggle="tooltip" title="Número Sap"></i>
|
||||
</span>
|
||||
<input type="text" name="attributes[12]"
|
||||
class="form-control card_inputs" id="sap_number"
|
||||
|
|
@ -235,8 +247,8 @@ class="form-control card_inputs" id="sap_number"
|
|||
<div class="form-group col-sm-4">
|
||||
<div class="input-group-prepend">
|
||||
<span class="input-group-text" id="form-SP_(Bar)_Cold">
|
||||
<i class="fa-solid fa-cubes"
|
||||
style="color: #00B0EA;"></i>
|
||||
<i class="fa-solid fa-signal" style="color: #00B0EA;"
|
||||
data-toggle="tooltip" title="SP(Bar)"></i>
|
||||
</span>
|
||||
<input type="text" name="attributes[19]"
|
||||
class="form-control card_inputs" id="SP_(Bar)_Cold"
|
||||
|
|
@ -245,34 +257,36 @@ class="form-control card_inputs" id="SP_(Bar)_Cold"
|
|||
{{-- <label>SP (Bar) Cold</label> --}}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group col-sm-4">
|
||||
<div class="input-group-prepend">
|
||||
<span class="input-group-text"
|
||||
id="form-Back_Presure_(Bar)">
|
||||
<i class="fa-solid fa-cubes"
|
||||
style="color: #00B0EA;"></i>
|
||||
<i class="fa-solid fa-stopwatch"
|
||||
style="color: #00B0EA;" data-toggle="tooltip"
|
||||
title="Back_Presure_(Bar)"></i>
|
||||
</span>
|
||||
<input type="text" name="attributes[20]"
|
||||
<input type="text" name="attributes[19]"
|
||||
class="form-control card_inputs"
|
||||
id="Back_Presure_(Bar)"
|
||||
placeholder="Back Presure (Bar)"
|
||||
aria-label="Back Presure (Bar)"
|
||||
placeholder="Back_Presure_(Bar)"
|
||||
aria-label="Back_Presure_(Bar)"
|
||||
aria-describedby="form-Back_Presure_(Bar)" readonly>
|
||||
{{-- <label>Back Presure (Bar)</label> --}}
|
||||
{{-- <label>SP (Bar) Cold</label> --}}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group col-sm-4">
|
||||
<div class="input-group-prepend">
|
||||
<span class="input-group-attributes[21]text"
|
||||
id="form-material">
|
||||
<i class="fa-solid fa-cubes"
|
||||
style="color: #00B0EA;"></i>
|
||||
<span class="input-group-text" id="form-material">
|
||||
<i class="fa-brands fa-codepen"
|
||||
style="color: #00B0EA;" data-toggle="tooltip"
|
||||
title="Material"></i>
|
||||
</span>
|
||||
<input type="text" name=""
|
||||
class="form-control card_inputs" id="material"
|
||||
placeholder="Material" aria-label="Material"
|
||||
aria-describedby="form-material" readonly>
|
||||
{{-- <label>Material</label> --}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -283,8 +297,9 @@ class="form-control card_inputs" id="material"
|
|||
<div class="form-group col-sm-6">
|
||||
<div class="input-group-prepend">
|
||||
<span class="input-group-text" id="form-manufacturer">
|
||||
<i class="fa-solid fa-cubes"
|
||||
style="color: #00B0EA;"></i>
|
||||
<i class="fa-solid fa-building"
|
||||
style="color: #00B0EA;" data-toggle="tooltip"
|
||||
title="Fabricante"></i>
|
||||
</span>
|
||||
<input type="text" name="attributes[22]"
|
||||
class="form-control card_inputs" id="manufacturer"
|
||||
|
|
@ -296,8 +311,8 @@ class="form-control card_inputs" id="manufacturer"
|
|||
<div class="form-group col-sm-6">
|
||||
<div class="input-group-prepend">
|
||||
<span class="input-group-text" id="form-isolation">
|
||||
<i class="fa-solid fa-cubes"
|
||||
style="color: #00B0EA;"></i>
|
||||
<i class="fa-solid fa-lock" style="color: #00B0EA;"
|
||||
data-toggle="tooltip" title="Isolamento"></i>
|
||||
</span>
|
||||
<input type="text" name="attributes[13]"
|
||||
class="form-control card_inputs" id="isolation"
|
||||
|
|
@ -314,8 +329,8 @@ class="form-control card_inputs" id="isolation"
|
|||
<div class="form-group col-sm-6">
|
||||
<div class="input-group-prepend">
|
||||
<span class="input-group-text">
|
||||
<i class="fa-solid fa-cubes"
|
||||
style="color: #00B0EA;"></i>
|
||||
<i class="fa-solid fa-stairs" style="color: #00B0EA;"
|
||||
data-toggle="tooltip" title="Andaime"></i>
|
||||
</span>
|
||||
<input type="text" name="attributes[13]"
|
||||
class="form-control card_inputs" id="isolation"
|
||||
|
|
@ -328,8 +343,9 @@ class="form-control card_inputs" id="isolation"
|
|||
<div class="form-group col-sm-6">
|
||||
<div class="input-group-prepend">
|
||||
<span class="input-group-text">
|
||||
<i class="fa-solid fa-cubes"
|
||||
style="color: #00B0EA;"></i>
|
||||
<i class="fa-solid fa-truck-arrow-right"
|
||||
style="color: #00B0EA;" data-toggle="tooltip"
|
||||
title="Grua"></i>
|
||||
</span>
|
||||
<input type="text" name="attributes[13]"
|
||||
class="form-control card_inputs" id="isolation"
|
||||
|
|
@ -1559,6 +1575,464 @@ class="btn btn-primary float-right">Guardar</button>
|
|||
<!-- ./ Workstation card-->
|
||||
@endif
|
||||
|
||||
<!-- TE4 - Abertura da válvula, análise e controle dos componentes -->
|
||||
@if ($task_todo->elemental_tasks_id == 5)
|
||||
<!-- Workstation card -->
|
||||
<div class="card {{ $task_todo->cardType }} collapsed-card">
|
||||
<div class="card-header clickable"
|
||||
style="background-color: {{ $task_todo->cardTypeStyle }}">
|
||||
<div class="d-flex justify-content-between align-items-center"
|
||||
style="width: 100%;">
|
||||
<h3 class="card-title mb-0">
|
||||
{{ $task_todo->elementalTask->elemental_tasks_code }} -
|
||||
{{ $task_todo->elementalTask->elemental_tasks_description }} </h3>
|
||||
<div class="card-tools">
|
||||
<button type="button" class="btn btn-tool collapse-button"
|
||||
data-card-widget="collapse">
|
||||
<i class="fas fa-plus"></i></button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<form
|
||||
action="{{ route('receiveAnswersEquipment', $dataControlEquipment->control_equipment_workstation_id) }}"
|
||||
method="POST" id="form6">
|
||||
@csrf
|
||||
|
||||
<div class="form-group">
|
||||
<!-- Single form-group for all content -->
|
||||
|
||||
<div class="row">
|
||||
|
||||
<!-- First card column -->
|
||||
<div class="col-md-6">
|
||||
<div class="mb-3">
|
||||
<label>Perno de calibração</label>
|
||||
</div>
|
||||
|
||||
<!-- Qual a medida do perno? (mm) -->
|
||||
<div class="row">
|
||||
<div class="col-md-6">
|
||||
<label>Qual a medida do perno? (mm) <span
|
||||
style="color: red;">*</span></label>
|
||||
</div>
|
||||
<div class="col-md-6 d-flex align-items-center">
|
||||
<input id="bolt-value" name="ID5[bolt_value-number]"
|
||||
type="number" step="0.01" class="form-control"
|
||||
style="width: 100%;" placeholder="" value="{{ $task_todo->formatted_answers['bolt_value'] ?? '' }}"
|
||||
@if ($task_todo->cardTypeStyle == 'gray') readonly @endif
|
||||
required>>
|
||||
</div>
|
||||
</div>
|
||||
<!-- ./ Qual a medida do perno? (mm) -->
|
||||
|
||||
<!-- Corpo da válvula -->
|
||||
<div class="row mt-2">
|
||||
<div class="col-md-6">
|
||||
<label>Corpo da válvula
|
||||
<span style="color: red;">*</span>
|
||||
</label>
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<select id="valve-body" name="ID5[valve_body-select]"
|
||||
class="form-control select2" style="width: 100%;"
|
||||
required>
|
||||
<option value="ok" selected
|
||||
@if (isset($task_todo->formatted_answers['valve_body']) && $task_todo->formatted_answers['valve_body'] == 'ok') selected @endif
|
||||
>Está OK</option>
|
||||
<option value="replace"
|
||||
@if (isset($task_todo->formatted_answers['valve_body']) && $task_todo->formatted_answers['valve_body'] == 'replace') selected @endif
|
||||
>É para substituir</option>
|
||||
<option value="reparar"
|
||||
@if (isset($task_todo->formatted_answers['valve_body']) && $task_todo->formatted_answers['valve_body'] == 'reparar') selected @endif
|
||||
>Reparar</option>
|
||||
<option value="benefit"
|
||||
@if (isset($task_todo->formatted_answers['valve_body']) && $task_todo->formatted_answers['valve_body'] == 'benefit') selected @endif
|
||||
>Beneficiar
|
||||
</option>
|
||||
<option value="accept"
|
||||
@if (isset($task_todo->formatted_answers['valve_body']) && $task_todo->formatted_answers['valve_body'] == 'accept') selected @endif
|
||||
>Aceitar</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<!-- ./ Corpo da válvula -->
|
||||
|
||||
<!-- Castelo/Capacete -->
|
||||
<div class="row mt-2">
|
||||
<div class="col-md-6">
|
||||
<label>Corpo da válvula <span
|
||||
style="color: red;">*</span></label>
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<select id="valve-castle" name="ID5[valve_castle-select]"
|
||||
class="form-control select2" style="width: 100%;"
|
||||
required>
|
||||
<option value="ok" selected
|
||||
@if (isset($task_todo->formatted_answers['valve_castle']) && $task_todo->formatted_answers['valve_castle'] == 'ok') selected @endif
|
||||
>Está OK</option>
|
||||
<option value="replace"
|
||||
@if (isset($task_todo->formatted_answers['valve_castle']) && $task_todo->formatted_answers['valve_castle'] == 'replace') selected @endif
|
||||
>É para substituir</option>
|
||||
<option value="reparar"
|
||||
@if (isset($task_todo->formatted_answers['valve_castle']) && $task_todo->formatted_answers['valve_castle'] == 'reparar') selected @endif
|
||||
>Reparar</option>
|
||||
<option value="benefit"
|
||||
@if (isset($task_todo->formatted_answers['valve_castle']) && $task_todo->formatted_answers['valve_castle'] == 'benefit') selected @endif
|
||||
>Beneficiar
|
||||
</option>
|
||||
<option value="accept"
|
||||
@if (isset($task_todo->formatted_answers['valve_castle']) && $task_todo->formatted_answers['valve_castle'] == 'accept') selected @endif
|
||||
>Aceitar</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<!-- ./ Castelo/Capacete -->
|
||||
|
||||
<!-- Flanges -->
|
||||
<div class="row mt-2">
|
||||
<div class="col-md-6">
|
||||
<label>Flanges <span style="color: red;">*</span></label>
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<select id="valve-edges" name="ID5[valve_edges-select]"
|
||||
class="form-control select2" style="width: 100%;"
|
||||
required>
|
||||
<option value="ok" selected
|
||||
@if (isset($task_todo->formatted_answers['valve_edges']) && $task_todo->formatted_answers['valve_edges'] == 'ok') selected @endif
|
||||
>Está OK</option>
|
||||
<option value="replace"
|
||||
@if (isset($task_todo->formatted_answers['valve_edges']) && $task_todo->formatted_answers['valve_edges'] == 'replace') selected @endif
|
||||
>É para substituir</option>
|
||||
<option value="reparar"
|
||||
@if (isset($task_todo->formatted_answers['valve_edges']) && $task_todo->formatted_answers['valve_edges'] == 'reparar') selected @endif
|
||||
>Reparar</option>
|
||||
<option value="benefit"
|
||||
@if (isset($task_todo->formatted_answers['valve_edges']) && $task_todo->formatted_answers['valve_edges'] == 'benefit') selected @endif
|
||||
>Beneficiar
|
||||
</option>
|
||||
<option value="accept"
|
||||
@if (isset($task_todo->formatted_answers['valve_edges']) && $task_todo->formatted_answers['valve_edges'] == 'accept') selected @endif
|
||||
>Aceitar</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<!-- ./ Flanges -->
|
||||
|
||||
<!-- Mola -->
|
||||
<div class="row mt-2">
|
||||
<div class="col-md-6">
|
||||
<label>Mola <span style="color: red;">*</span></label>
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<select id="valve-spring" name="ID5[valve_spring-select]"
|
||||
class="form-control select2" style="width: 100%;"
|
||||
required>
|
||||
<option value="ok" selected
|
||||
@if (isset($task_todo->formatted_answers['valve_spring']) && $task_todo->formatted_answers['valve_spring'] == 'ok') selected @endif
|
||||
>Está OK</option>
|
||||
<option value="replace"
|
||||
@if (isset($task_todo->formatted_answers['valve_spring']) && $task_todo->formatted_answers['valve_spring'] == 'replace') selected @endif
|
||||
>É para substituir</option>
|
||||
<option value="reparar"
|
||||
@if (isset($task_todo->formatted_answers['valve_spring']) && $task_todo->formatted_answers['valve_spring'] == 'reparar') selected @endif
|
||||
>Reparar</option>
|
||||
<option value="benefit"
|
||||
@if (isset($task_todo->formatted_answers['valve_spring']) && $task_todo->formatted_answers['valve_spring'] == 'benefit') selected @endif
|
||||
>Beneficiar
|
||||
</option>
|
||||
<option value="accept"
|
||||
@if (isset($task_todo->formatted_answers['valve_spring']) && $task_todo->formatted_answers['valve_spring'] == 'accept') selected @endif
|
||||
>Aceitar</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<!-- ./ Mola -->
|
||||
|
||||
<!-- Haste -->
|
||||
<div class="row mt-2">
|
||||
<div class="col-md-6">
|
||||
<label>Haste <span style="color: red;">*</span></label>
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<select id="valve-rod" name="ID5[valve_rod-select]"
|
||||
class="form-control select2" style="width: 100%;"
|
||||
required>
|
||||
<option value="ok" selected
|
||||
@if (isset($task_todo->formatted_answers['valve_rod']) && $task_todo->formatted_answers['valve_rod'] == 'ok') selected @endif
|
||||
>Está OK</option>
|
||||
<option value="replace"
|
||||
@if (isset($task_todo->formatted_answers['valve_rod']) && $task_todo->formatted_answers['valve_rod'] == 'replace') selected @endif
|
||||
>É para substituir</option>
|
||||
<option value="reparar"
|
||||
@if (isset($task_todo->formatted_answers['valve_rod']) && $task_todo->formatted_answers['valve_rod'] == 'reparar') selected @endif
|
||||
>Reparar</option>
|
||||
<option value="benefit"
|
||||
@if (isset($task_todo->formatted_answers['valve_rod']) && $task_todo->formatted_answers['valve_rod'] == 'benefit') selected @endif
|
||||
>Beneficiar
|
||||
</option>
|
||||
<option value="accept"
|
||||
@if (isset($task_todo->formatted_answers['valve_rod']) && $task_todo->formatted_answers['valve_rod'] == 'accept') selected @endif
|
||||
>Aceitar</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<!-- ./ Haste -->
|
||||
|
||||
<!-- Obturador -->
|
||||
<div class="row mt-2">
|
||||
<div class="col-md-6">
|
||||
<label>Obturador <span style="color: red;">*</span></label>
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<select id="valve-shutter" name="ID5[valve_shutter-select]"
|
||||
class="form-control select2" style="width: 100%;"
|
||||
required>
|
||||
<option value="ok" selected
|
||||
@if (isset($task_todo->formatted_answers['valve_shutter']) && $task_todo->formatted_answers['valve_shutter'] == 'ok') selected @endif
|
||||
>Está OK</option>
|
||||
<option value="replace"
|
||||
@if (isset($task_todo->formatted_answers['valve_shutter']) && $task_todo->formatted_answers['valve_shutter'] == 'replace') selected @endif
|
||||
>É para substituir</option>
|
||||
<option value="reparar"
|
||||
@if (isset($task_todo->formatted_answers['valve_shutter']) && $task_todo->formatted_answers['valve_shutter'] == 'reparar') selected @endif
|
||||
>Reparar</option>
|
||||
<option value="benefit"
|
||||
@if (isset($task_todo->formatted_answers['valve_shutter']) && $task_todo->formatted_answers['valve_shutter'] == 'benefit') selected @endif
|
||||
>Beneficiar
|
||||
</option>
|
||||
<option value="accept"
|
||||
@if (isset($task_todo->formatted_answers['valve_shutter']) && $task_todo->formatted_answers['valve_shutter'] == 'accept') selected @endif
|
||||
>Aceitar</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<!-- ./ Obturador -->
|
||||
|
||||
<!-- Sede -->
|
||||
<div class="row mt-2">
|
||||
<div class="col-md-6">
|
||||
<label>Sede <span style="color: red;">*</span></label>
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<select id="valve-seat" name="ID5[valve_seat-select]"
|
||||
class="form-control select2" style="width: 100%;"
|
||||
required>
|
||||
<option value="ok" selected
|
||||
@if (isset($task_todo->formatted_answers['valve_seat']) && $task_todo->formatted_answers['valve_seat'] == 'ok') selected @endif
|
||||
>Está OK</option>
|
||||
<option value="replace"
|
||||
@if (isset($task_todo->formatted_answers['valve_seat']) && $task_todo->formatted_answers['valve_seat'] == 'replace') selected @endif
|
||||
>É para substituir</option>
|
||||
<option value="reparar"
|
||||
@if (isset($task_todo->formatted_answers['valve_seat']) && $task_todo->formatted_answers['valve_seat'] == 'reparar') selected @endif
|
||||
>Reparar</option>
|
||||
<option value="benefit"
|
||||
@if (isset($task_todo->formatted_answers['valve_seat']) && $task_todo->formatted_answers['valve_seat'] == 'benefit') selected @endif
|
||||
>Beneficiar
|
||||
</option>
|
||||
<option value="accept"
|
||||
@if (isset($task_todo->formatted_answers['valve_seat']) && $task_todo->formatted_answers['valve_seat'] == 'accept') selected @endif
|
||||
>Aceitar</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<!-- ./ Sede -->
|
||||
|
||||
<!-- Anéis de regulação -->
|
||||
<div class="row mt-2">
|
||||
<div class="col-md-6">
|
||||
<label>Anéis de regulação <span
|
||||
style="color: red;">*</span></label>
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<select id="valve-adjustment-rings"
|
||||
name="ID5[valve_adjustment_rings-select]"
|
||||
class="form-control select2" style="width: 100%;"
|
||||
required>
|
||||
<option value="ok" selected
|
||||
@if (isset($task_todo->formatted_answers['valve_adjustment_rings']) && $task_todo->formatted_answers['valve_adjustment_rings'] == 'ok') selected @endif
|
||||
>Está OK</option>
|
||||
<option value="replace"
|
||||
@if (isset($task_todo->formatted_answers['valve_adjustment_rings']) && $task_todo->formatted_answers['valve_adjustment_rings'] == 'replace') selected @endif
|
||||
>É para substituir</option>
|
||||
<option value="reparar"
|
||||
@if (isset($task_todo->formatted_answers['valve_adjustment_rings']) && $task_todo->formatted_answers['valve_adjustment_rings'] == 'reparar') selected @endif
|
||||
>Reparar</option>
|
||||
<option value="benefit"
|
||||
@if (isset($task_todo->formatted_answers['valve_adjustment_rings']) && $task_todo->formatted_answers['valve_adjustment_rings'] == 'benefit') selected @endif
|
||||
>Beneficiar
|
||||
</option>
|
||||
<option value="accept"
|
||||
@if (isset($task_todo->formatted_answers['valve_adjustment_rings']) && $task_todo->formatted_answers['valve_adjustment_rings'] == 'accept') selected @endif
|
||||
>Aceitar</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<!-- ./ Anéis de regulação -->
|
||||
|
||||
<!-- Pernos/Porcas -->
|
||||
<div class="row mt-2">
|
||||
<div class="col-md-6">
|
||||
<label>Anéis de regulação <span
|
||||
style="color: red;">*</span></label>
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<select id="valve-bolts-nuts"
|
||||
name="valve_bolts_nuts-select"
|
||||
class="form-control select2" style="width: 100%;"
|
||||
required>
|
||||
<option selected="selected" disabled hidden
|
||||
value="">
|
||||
</option>
|
||||
<option value="Está OK">Está OK</option>
|
||||
<option value="É para substituir">É para
|
||||
substituir</option>
|
||||
<option value="Reparar">Reparar</option>
|
||||
<option value="Beneficiar">Beneficiar
|
||||
</option>
|
||||
<option value="Aceitar">Aceitar</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<!-- ./ Pernos/Porcas -->
|
||||
|
||||
<!-- Fole -->
|
||||
<div class="row mt-2">
|
||||
<div class="col-md-6">
|
||||
<label>Fole <span style="color: red;">*</span></label>
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<select id="valve-bellow" name="valve_bellow-select"
|
||||
class="form-control select2" style="width: 100%;"
|
||||
required>
|
||||
<option selected="selected" disabled hidden
|
||||
value="">
|
||||
</option>
|
||||
<option value="Está OK">Está OK</option>
|
||||
<option value="É para substituir">É para
|
||||
substituir</option>
|
||||
<option value="Reparar">Reparar</option>
|
||||
<option value="Beneficiar">Beneficiar
|
||||
</option>
|
||||
<option value="Aceitar">Aceitar</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<!-- ./ Fole -->
|
||||
|
||||
</div>
|
||||
<!-- ./ First card column -->
|
||||
|
||||
|
||||
<!-- Second card column -->
|
||||
<div class="col-md-6">
|
||||
<div class="mb-3">
|
||||
<label>Mola</label>
|
||||
</div>
|
||||
|
||||
<!-- Comprimento (mm) -->
|
||||
<div class="row mb-3">
|
||||
<div class="col-md-6">
|
||||
<label>Comprimento (mm) <span
|
||||
style="color: red;">*</span></label>
|
||||
</div>
|
||||
<div class="col-md-6 d-flex align-items-center">
|
||||
<input id="spring-lenght" name="ID5[spring_lenght-number]"
|
||||
type="number" step="0.01" class="form-control"
|
||||
style="width: 100%;" placeholder="" value="{{ $task_todo->formatted_answers['spring_lenght'] ?? '' }}"
|
||||
@if ($task_todo->cardTypeStyle == 'gray') readonly @endif required>
|
||||
</div>
|
||||
</div>
|
||||
<!-- ./ Comprimento (mm) -->
|
||||
|
||||
<!-- Diâmetro (mm) -->
|
||||
<div class="row mb-3">
|
||||
<div class="col-md-6">
|
||||
<label>Diâmetro (mm) <span
|
||||
style="color: red;">*</span></label>
|
||||
</div>
|
||||
<div class="col-md-6 d-flex align-items-center">
|
||||
<input id="spring-diameter"
|
||||
name="ID5[spring_diameter-number]" type="number"
|
||||
step="0.01" class="form-control"
|
||||
style="width: 100%;" placeholder="" value="{{ $task_todo->formatted_answers['spring_diameter'] ?? '' }}"
|
||||
@if ($task_todo->cardTypeStyle == 'gray') readonly @endif required>
|
||||
</div>
|
||||
</div>
|
||||
<!-- ./ Diâmetro (mm) -->
|
||||
|
||||
<!-- Diâmetro externo (mm) -->
|
||||
<div class="row mb-3">
|
||||
<div class="col-md-6">
|
||||
<label>Diâmetro externo (mm) <span
|
||||
style="color: red;">*</span></label>
|
||||
</div>
|
||||
<div class="col-md-6 d-flex align-items-center">
|
||||
<input id="spring-diameter-ext"
|
||||
name="ID5[spring_diameter_ext-number]" type="number"
|
||||
step="0.01" class="form-control"
|
||||
style="width: 100%;" placeholder="" value="{{ $task_todo->formatted_answers['spring_diameter_ext'] ?? '' }}"
|
||||
@if ($task_todo->cardTypeStyle == 'gray') readonly @endif required>
|
||||
</div>
|
||||
</div>
|
||||
<!-- ./ Diâmetro externo (mm) -->
|
||||
|
||||
<!-- Passo entre espias (mm) -->
|
||||
<div class="row mb-3">
|
||||
<div class="col-md-6">
|
||||
<label>Passo entre espias (mm) <span
|
||||
style="color: red;">*</span></label>
|
||||
</div>
|
||||
<div class="col-md-6 d-flex align-items-center">
|
||||
<input id="spring-pitch-glands"
|
||||
name="ID5[spring_pitch_glands-number]" type="number"
|
||||
step="1" class="form-control"
|
||||
style="width: 100%;" placeholder="" value="{{ $task_todo->formatted_answers['spring_pitch_glands'] ?? '' }}"
|
||||
@if ($task_todo->cardTypeStyle == 'gray') readonly @endif required>
|
||||
</div>
|
||||
</div>
|
||||
<!-- ./ Passo entre espias (mm) -->
|
||||
|
||||
<!-- Número de espias (mm) -->
|
||||
<div class="row mb-3">
|
||||
<div class="col-md-6">
|
||||
<label>Número de espias (mm) <span
|
||||
style="color: red;">*</span></label>
|
||||
</div>
|
||||
<div class="col-md-6 d-flex align-items-center">
|
||||
<input id="spring-number-glands"
|
||||
name="ID5[spring_number_glands-number]" type="number"
|
||||
step="1" class="form-control"
|
||||
style="width: 100%;" placeholder="" value="{{ $task_todo->formatted_answers['spring_number_glands'] ?? '' }}"
|
||||
@if ($task_todo->cardTypeStyle == 'gray') readonly @endif required>
|
||||
</div>
|
||||
</div>
|
||||
<!-- ./ Número de espias (mm) -->
|
||||
|
||||
<!-- Observações -->
|
||||
<div class="row mb-3">
|
||||
<label>Observações</label>
|
||||
<textarea name="ID5[spring_observations-text]" class="form-control" rows="5" placeholder="" @if ($task_todo->cardTypeStyle == 'gray') readonly @endif>
|
||||
{{ $task_todo->formatted_answers['spring_observations'] ?? '' }}
|
||||
</textarea>
|
||||
</div>
|
||||
<!-- ./ Observações -->
|
||||
|
||||
</div>
|
||||
<!-- ./ Second card column -->
|
||||
|
||||
</div>
|
||||
|
||||
</div> <!-- End of single form-group -->
|
||||
|
||||
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
<!-- ./ Workstation card-->
|
||||
@endif
|
||||
|
||||
<!-- TE4(2)-CV - Abertura da válvula, análise e controle dos componentes -->
|
||||
@if ($task_todo->elemental_tasks_id == 6)
|
||||
<!-- TE4(2)-CV - Abertura da válvula, análise e controle dos componentes -->
|
||||
|
|
@ -1578,7 +2052,8 @@ class="btn btn-primary float-right">Guardar</button>
|
|||
</div>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<form action="{{ route('receiveAnswersEquipment', $dataControlEquipment->control_equipment_workstation_id) }}"
|
||||
<form
|
||||
action="{{ route('receiveAnswersEquipment', $dataControlEquipment->control_equipment_workstation_id) }}"
|
||||
method="POST" id="form6">
|
||||
@csrf
|
||||
<!-- Single form-group for all content -->
|
||||
|
|
@ -1632,8 +2107,7 @@ class="form-control"
|
|||
</label>
|
||||
</div>
|
||||
<div class="col-md">
|
||||
<select id="gland"
|
||||
name="ID6[gland-select]"
|
||||
<select id="gland" name="ID6[gland-select]"
|
||||
class="form-control"
|
||||
@if ($task_todo->cardTypeStyle == 'gray') disabled @endif>
|
||||
<option value="yes"
|
||||
|
|
@ -1659,8 +2133,7 @@ class="form-control"
|
|||
</label>
|
||||
</div>
|
||||
<div class="col-md">
|
||||
<select id="packing"
|
||||
name="ID6[packing-select]"
|
||||
<select id="packing" name="ID6[packing-select]"
|
||||
class="form-control"
|
||||
@if ($task_todo->cardTypeStyle == 'gray') disabled @endif>
|
||||
<option value="yes"
|
||||
|
|
@ -1686,8 +2159,7 @@ class="form-control"
|
|||
</label>
|
||||
</div>
|
||||
<div class="col-md">
|
||||
<select id="stopper"
|
||||
name="ID6[stopper-select]"
|
||||
<select id="stopper" name="ID6[stopper-select]"
|
||||
class="form-control"
|
||||
@if ($task_todo->cardTypeStyle == 'gray') disabled @endif>
|
||||
<option value="yes"
|
||||
|
|
@ -1713,8 +2185,7 @@ class="form-control"
|
|||
</label>
|
||||
</div>
|
||||
<div class="col-md">
|
||||
<select id="seat"
|
||||
name="ID6[seat-select]"
|
||||
<select id="seat" name="ID6[seat-select]"
|
||||
class="form-control"
|
||||
@if ($task_todo->cardTypeStyle == 'gray') disabled @endif>
|
||||
<option value="yes"
|
||||
|
|
@ -1740,8 +2211,7 @@ class="form-control"
|
|||
</label>
|
||||
</div>
|
||||
<div class="col-md">
|
||||
<select id="cage"
|
||||
name="ID6[cage-select]"
|
||||
<select id="cage" name="ID6[cage-select]"
|
||||
class="form-control"
|
||||
@if ($task_todo->cardTypeStyle == 'gray') disabled @endif>
|
||||
<option value="yes"
|
||||
|
|
@ -1772,8 +2242,7 @@ class="form-control"
|
|||
</div>
|
||||
<div class="col-md">
|
||||
<select id="body_actuator"
|
||||
name="ID6[cage-body_actuator]"
|
||||
class="form-control"
|
||||
name="ID6[cage-body_actuator]" class="form-control"
|
||||
@if ($task_todo->cardTypeStyle == 'gray') disabled @endif>
|
||||
<option value="yes"
|
||||
@if ($task_todo->formatted_answers['body_actuator'] ?? '' == 'yes') selected @endif>
|
||||
|
|
@ -2150,12 +2619,8 @@ class="btn btn-primary float-right">Guardar</button>
|
|||
</div>
|
||||
</div>
|
||||
<!-- ./ Workstation card-->
|
||||
|
||||
|
||||
@endif
|
||||
|
||||
|
||||
|
||||
<!-- TE10 - Montagem na linha -->
|
||||
@if ($task_todo->elemental_tasks_id == 15)
|
||||
<!-- TE10 - Montagem na linha -->
|
||||
|
|
@ -2215,7 +2680,8 @@ class="btn btn-primary float-right">Guardar</button>
|
|||
<option selected="selected" disabled hidden value="">
|
||||
</option>
|
||||
<option value="316L OR"
|
||||
@if (isset($task_todo->formatted_answers['gasket_type']) && $task_todo->formatted_answers['gasket_type'] == '316L OR') selected @endif>316L OR
|
||||
@if (isset($task_todo->formatted_answers['gasket_type']) && $task_todo->formatted_answers['gasket_type'] == '316L OR') selected @endif>316L
|
||||
OR
|
||||
</option>
|
||||
<option value="316L IR/OR"
|
||||
@if (isset($task_todo->formatted_answers['gasket_type']) && $task_todo->formatted_answers['gasket_type'] == '316L IR/OR') selected @endif>316L
|
||||
|
|
@ -2400,7 +2866,7 @@ class="btn btn-primary float-right">Guardar</button>
|
|||
method="get">
|
||||
<div class="card-footer">
|
||||
<button type="submit" data-action="cancel"
|
||||
class="btn btn-danger float-left">Cancelar</button>
|
||||
class="btn btn-danger float-left">Fechar</button>
|
||||
</div>
|
||||
</form>
|
||||
</div><!-- card-body do card principal -->
|
||||
|
|
@ -2441,4 +2907,16 @@ class="btn btn-danger float-left">Cancelar</button>
|
|||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<!-- Adicione o JavaScript no final do body -->
|
||||
<script>
|
||||
$(function() {
|
||||
$('[data-toggle="tooltip"]').tooltip();
|
||||
})
|
||||
</script>
|
||||
|
||||
@endsection
|
||||
|
|
|
|||
|
|
@ -43,12 +43,18 @@
|
|||
|
||||
Route::get('testRelatorio', [ProjectoDatacontroller::class, 'testRelatorio'])->name('testRelatorio');
|
||||
|
||||
Route::get('showAllClientsForProjectReports', [ProjectoDatacontroller::class, 'showAllClientsForProjectReports'])->name('showAllClientsForProjectReports');
|
||||
|
||||
Route::get('showAllClientsForProjectReportsTable', [ProjectoDatacontroller::class, 'showAllClientsForProjectReportsTable'])->name('showAllClientsForProjectReportsTable');
|
||||
|
||||
|
||||
|
||||
Route::get('cancelElementalTaskForEquipment/{equipmentID}', [WorkstationsJobsController::class, 'cancelElementalTaskForEquipment'])->name('cancelElementalTaskForEquipment');
|
||||
|
||||
// Nao gosto que esteja neste controller, verificar mais tarde
|
||||
Route::get('test2/{projectID}/{equipmentID}', [ProjectoDatacontroller::class, 'test11'])->name('test11');
|
||||
Route::get('manageAssets/{equipmentID}', [ProjectoDatacontroller::class, 'test22'])->name('test22');
|
||||
|
||||
Route::get('articulated_2/{projectID}/{equipmentID}', [ProjectoDatacontroller::class, 'projectDetails_11'])->name('projectDetails_11');
|
||||
Route::get('manageAssets/{equipmentID}', [ProjectoDatacontroller::class, 'articulated_22'])->name('articulated_22');
|
||||
Route::get('showAmbitDetailsProjectHistory/{projectID}/{equipmentID}',[ProjectoDatacontroller::class, 'showAmbitDetailsProjectHistory'])->name('showAmbitDetailsProjectHistory');
|
||||
|
||||
|
||||
Route::get('getDataEquipment', [ExecutionProjectController::class, 'getDataEquipment'])->name('getDataEquipment');
|
||||
|
|
@ -65,7 +71,7 @@
|
|||
Route::get('showReportingForAmbitsProjectPdf/{ambitId}/{projectId}', [ClientController::class, 'showReportingForAmbitsProjectPdf'])->name('showReportingForAmbitsProjectPdf'); //ok
|
||||
|
||||
Route::get('getDataAllEquipmentsForAmbitOfProject', [ClientController::class, 'getDataAllEquipmentsForAmbitOfProject'])->name('getDataAllEquipmentsForAmbitOfProject');
|
||||
// Route::get('test/{id}',[ExecutionProjectController::class, 'test11'])->name('test11');
|
||||
// Route::get('test/{id}',[ExecutionProjectController::class, 'projectDetails_11'])->name('projectDetails_11');
|
||||
|
||||
// Route::get('getEquipment', [ClientController::class, 'getEquipment'])->name('getEquipment');
|
||||
|
||||
|
|
@ -126,7 +132,7 @@
|
|||
// Dashboard
|
||||
Route::get('dashboardClient', [ClientController::class, 'receiveProjectsClient'])->name('dashboardClient');
|
||||
// Relatorios
|
||||
Route::get('reportingDataClient', [ClientController::class, 'reportingDataClient'])->name('reportingDataClient');
|
||||
Route::get('reportingDataClient/{clientID?}', [ClientController::class, 'reportingDataClient'])->name('reportingDataClient');
|
||||
//Api
|
||||
Route::get('/api/receiveMonths/{yearsProjects}', [ClientController::class, 'receiveMonths']);
|
||||
Route::get('/api/receiveDays/{yearProjects}/{monthProjects}', [ClientController::class, 'receiveDays']);
|
||||
|
|
@ -186,10 +192,11 @@
|
|||
Route::controller(CreateProjectController::class)
|
||||
->group(function () {
|
||||
|
||||
|
||||
// indication of progress bar to projects that are in 'Planning'
|
||||
Route::get('test1/{id}', 'showStep1')->name('test1');
|
||||
Route::get('test2/{id}', 'showStep2')->name('test2');
|
||||
Route::get('test3/{id}', 'showStep3')->name('test3');
|
||||
Route::get('projectDetails_1/{id}', 'showStep1')->name('projectDetails_1');
|
||||
Route::get('articulated_2/{id}', 'showStep2')->name('articulated_2');
|
||||
Route::get('workStation_3/{id}', 'showStep3')->name('workStation_3');
|
||||
|
||||
// Para adicionar uma tarefa Complementar
|
||||
Route::post('addFurtherTasks', 'addFurtherTasks')->name('addFurtherTasks');
|
||||
|
|
@ -208,10 +215,10 @@
|
|||
Route::post('newProject1', 'processStep1')->name('processStep1');
|
||||
Route::post('createWorkStations', 'createWorkStations')->name('createWorkStations');
|
||||
|
||||
Route::post('test1', 'EditprocessStep1')->name('EditprocessStep1');
|
||||
Route::post('test2', 'processStep2')->name('processStep2');
|
||||
Route::post('test2CreateEquipment', 'createEquipmentManual')->name('test2CreateEquipment');
|
||||
Route::post('test3', 'processStep3');
|
||||
Route::post('projectDetails_1', 'EditprocessStep1')->name('EditprocessStep1');
|
||||
Route::post('articulated_2', 'processStep2')->name('processStep2');
|
||||
Route::post('articulated_2CreateEquipment', 'createEquipmentManual')->name('articulated_2CreateEquipment');
|
||||
Route::post('workStation_3', 'processStep3');
|
||||
Route::delete('removeEquipment/{id}', 'removePendingEquipment')->name('removeEquipment');
|
||||
Route::post('CreateNewEquipmentFromPendingEquipment/{id}', 'CreateNewEquipmentFromPendingEquipment')->name('CreateNewEquipmentFromPendingEquipment');
|
||||
Route::post('create-equipament-project', 'createEquipamentProject')->name('createEquipamentProject');
|
||||
|
|
|
|||
|
|
@ -319,7 +319,7 @@ public function testBadRequestBody()
|
|||
$response->getStatusCode();
|
||||
}
|
||||
|
||||
public function test304()
|
||||
public function workStation_304()
|
||||
{
|
||||
$client = $this->getHttpClient(__FUNCTION__);
|
||||
$response = $client->request('GET', 'http://localhost:8057/304', [
|
||||
|
|
|
|||
|
|
@ -14,12 +14,12 @@
|
|||
/**
|
||||
* ArrayConverter generates tree like structure from a message catalogue.
|
||||
* e.g. this
|
||||
* 'foo.bar1' => 'test1',
|
||||
* 'foo.bar2' => 'test2'
|
||||
* 'foo.bar1' => 'projectDetails_1',
|
||||
* 'foo.bar2' => 'articulated_2'
|
||||
* converts to follows:
|
||||
* foo:
|
||||
* bar1: test1
|
||||
* bar2: test2.
|
||||
* bar1: projectDetails_1
|
||||
* bar2: articulated_2.
|
||||
*
|
||||
* @author Gennady Telegin <gtelegin@gmail.com>
|
||||
*/
|
||||
|
|
@ -54,11 +54,11 @@ private static function &getElementByPath(array &$tree, array $parts)
|
|||
foreach ($parts as $i => $part) {
|
||||
if (isset($elem[$part]) && \is_string($elem[$part])) {
|
||||
/* Process next case:
|
||||
* 'foo': 'test1',
|
||||
* 'foo.bar': 'test2'
|
||||
* 'foo': 'projectDetails_1',
|
||||
* 'foo.bar': 'articulated_2'
|
||||
*
|
||||
* $tree['foo'] was string before we found array {bar: test2}.
|
||||
* Treat new element as string too, e.g. add $tree['foo.bar'] = 'test2';
|
||||
* $tree['foo'] was string before we found array {bar: articulated_2}.
|
||||
* Treat new element as string too, e.g. add $tree['foo.bar'] = 'articulated_2';
|
||||
*/
|
||||
$elem = &$elem[implode('.', \array_slice($parts, $i))];
|
||||
break;
|
||||
|
|
@ -69,12 +69,12 @@ private static function &getElementByPath(array &$tree, array $parts)
|
|||
|
||||
if ($elem && \is_array($elem) && $parentOfElem) {
|
||||
/* Process next case:
|
||||
* 'foo.bar': 'test1'
|
||||
* 'foo': 'test2'
|
||||
* 'foo.bar': 'projectDetails_1'
|
||||
* 'foo': 'articulated_2'
|
||||
*
|
||||
* $tree['foo'] was array = {bar: 'test1'} before we found string constant `foo`.
|
||||
* $tree['foo'] was array = {bar: 'projectDetails_1'} before we found string constant `foo`.
|
||||
* Cancel treating $tree['foo'] as array and cancel back it expansion,
|
||||
* e.g. make it $tree['foo.bar'] = 'test1' again.
|
||||
* e.g. make it $tree['foo.bar'] = 'projectDetails_1' again.
|
||||
*/
|
||||
self::cancelExpand($parentOfElem, $part, $elem);
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user