last update

This commit is contained in:
ygbanzato 2023-11-18 19:17:40 +00:00
parent 8bc8ccff44
commit 8789ee8fdb
14 changed files with 23026 additions and 24544 deletions

View File

@ -524,6 +524,7 @@ public function createProjectForStep1()
// Apos terminar não vai ficar step 1
return view('projectsClients/createProject', ['step' => 1], ['companies' => $companies]);
}
// Progress Bar
//Devolve para a primeira para na Descrição do projecto apenas user com ID 3, quer dizer que apenas as "empresas"
public function showStep1($company_projects_id)
@ -533,7 +534,6 @@ public function showStep1($company_projects_id)
$projects = CompanyProject::with('user')->find($company_projects_id);
// dd($projects->user);
$companies = User::where('type_users', 3)->get();
return view('projectsClients/projectDetails_1', ['step' => 1], ['companies' => $companies])

View File

@ -10,11 +10,60 @@
use App\Models\EquipmentComments;
use App\Models\EquipmentType;
use App\Models\OrderEquipmentTasks;
use App\Models\SpecificAttributesEquipmentType;
use App\Models\ElementalTasks;
use Yajra\DataTables\Facades\DataTables;
class ExecutionProjectController extends Controller
{
public function test11($projectID,$equipmentID)
{
$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.articulated_2_ShowEquipment',compact('dataEquipment','OrdemTasks','OrdemTasksIds'));
}
public function getDataEquipment(Request $request)
{
$numberProject = $request->get('numberProject');
$equipment = Equipment::with('equipmentType') // Certifique-se de que o método 'equipmentType' existe no modelo 'Equipment'
->select(['equipment_id', 'equipment_tag', 'unit_id', 'equipment_type_id'])
->where('company_projects_id', $numberProject);
return DataTables::of($equipment)
->addColumn('unit_name', function ($equipment) {
// Retorna 'unit_name' do relacionamento 'unit'
return $equipment->unit ? $equipment->unit->unit_name : 'N/A';
})
->addColumn('equipment_type_name', function ($equipment) {
// Retorna 'equipment_type_name' do relacionamento 'equipmentType'
return $equipment->equipmentType ? $equipment->equipmentType->equipment_type_name : 'N/A';
})
->addColumn('action', function ($equipment) use ($numberProject) {
// Lógica para a coluna de ação com o link correto
$actionBtn = '<a title="Detalhes do equipamento" href="' . route('test11', ['projectID' => $numberProject, 'equipmentID' => $equipment->equipment_id]) . '"><i class="fa-solid fa-eye text-primary"></i></a>';
return $actionBtn;
})
->editColumn('unit_id', function ($equipment) {
// Isto irá substituir 'unit_id' pelo 'unit_name' associado
return $equipment->unit->unit_name ?? 'N/A';
})
->editColumn('equipment_type_id', function ($equipment) {
// Isto irá substituir 'equipment_type_id' pelo 'equipment_type_name' associado
return $equipment->equipmentType->equipment_type_name ?? 'N/A';
})
->rawColumns(['action'])
->make(true);
}
public function enterWorkstation()
{
return view('workstations/index');
@ -41,7 +90,7 @@ public function receiveWorkstationExecutionProject($receiveNumberProject)
return $task->elementalTask->elemental_tasks_code;
})->implode('-');
})
->toJson();
}
@ -55,12 +104,12 @@ public function receiveEquipmentIdForShowModal($EquipmentID)
return $task->elementalTask->elemental_tasks_code;
})->toArray();
$receveControlEquipment = ControlEquipmentWorkstation::where('equipment_id',$EquipmentID)->get();
$receveControlEquipment = ControlEquipmentWorkstation::where('equipment_id', $EquipmentID)->get();
$receiveCommentsEquipment = EquipmentComments::where('equipment_id', $EquipmentID)->get();
$receiveCommentsEquipment = EquipmentComments::where('equipment_id',$EquipmentID)->get();
// return view('projectsClients/executionProject',['receveControlEquipment'=>$receveControlEquipment]);
return response()->json(['task_codes' => $task_codes,'receveControlEquipment' => $receveControlEquipment, 'receiveCommentsEquipment' => $receiveCommentsEquipment]);
return response()->json(['task_codes' => $task_codes, 'receveControlEquipment' => $receveControlEquipment, 'receiveCommentsEquipment' => $receiveCommentsEquipment]);
}
// public function receiveEquipmentsExecutionProject($receiveNumberProject)

View File

@ -6,6 +6,7 @@
use App\Models\ControlEquipmentWorkstation;
use App\Models\ElementalTasks;
use App\Models\Equipment;
use App\Models\OrderEquipmentTasks;
use App\Models\workstationsTaskAnswers;
use Illuminate\Http\Request;
@ -16,31 +17,38 @@
class WorkstationsJobsController extends Controller
{
public function receiveAnswersEquipment(Request $request)
{
{
//Deve recber o id da control atual.
// Primeiro ele deve criar a associação entre id atual do control + perguntas e respostas
$receiveAnswersElementalTasks = new workstationsTaskAnswers;
$receiveAnswersElementalTasks->control_equipment_workstation_id = $request->control_equipment_workstationid;
$receiveAnswersElementalTasks->control_equipment_workstation_id = $request->controlEquipmentID;
// Inicializando o array que vai armazenar os objetos JSON
$answersArray = [];
$answersArray = []; // Array para armazenar as respostas
foreach ($request->all() as $key => $value) {
// Ignorando a chave control_equipment_workstation_id
if ($key !== 'control_equipment_workstation_id') {
// Verificando se $key contém '-'
if (strpos($key, '-') === false) {
// Se não contiver, pular esta iteração
continue;
// Iterar sobre o array externo
foreach ($request->all() as $idKey => $subArray) {
// Verificar se a chave atual é uma das chaves de ID (ID1, ID2, etc.)
if (strpos($idKey, 'ID') === 0 && is_array($subArray)) {
// Iterar sobre o array interno
foreach ($subArray as $key => $value) {
// Ignorando a chave control_equipment_workstation_id
if ($key !== 'controlEquipmentID') {
// Verificando se $key contém '-'
if (strpos($key, '-') !== false) {
// Dividindo a chave em duas partes: question e type
list($question, $type) = explode('-', $key);
// Adicionando um novo objeto JSON ao array
$answersArray[] = [
'type' => $type,
'value' => $value,
'question' => $question,
'idKey' => $idKey // Adicionando a chave do ID se necessário
];
}
}
}
// Dividindo a chave em duas partes: question e type
list($question, $type) = explode('-', $key);
// Adicionando um novo objeto JSON ao array
$answersArray[] = [
'type' => $type,
'value' => $value,
'question' => $question
];
}
}
@ -49,217 +57,78 @@ public function receiveAnswersEquipment(Request $request)
// Armazenando a string JSON no banco de dados
$receiveAnswersElementalTasks->answer_json = $jsonString;
// $receiveAnswersElementalTasks->save();
// update departure_date value
$receiveDataControlWs = ControlEquipmentWorkstation::find($request->control_equipment_workstationid);
//FINALIZOU A TAREFA ANTERIOR COM DEPARTURE
//Busca o Email
$userEmail = Auth::user()->email;
//Busca o id Anterior
$control_ew_id = $request->control_equipment_workstationid;
// Busca a Ws com base no id recebido da tabela Control.
$recebeDataControlId = ControlEquipmentWorkstation::find($request->control_equipment_workstationid);
$recebeDataControlWs = ControlEquipmentWorkstation::find($request->controlEquipmentID);
$recebeDataControlWs->departure_date = now();
//Chama o procedimento
$controlTasks = DB::select('CALL ManageNextTask(?, ?)', [$userEmail, $control_ew_id]);
$requestData = $request->all();
//Saving the values to a variable
if (count($controlTasks) > 0) {
$current_workstation = $controlTasks[0]->id_workstations;
$next_workstation = $controlTasks[0]->next_workstation;
$next_todo = $controlTasks[0]->next_todo;
} else {
//It should always exist, but you never know :)
$next_todo = null;
}
//RECEBE OS VALORES DA PROXIMA WS E PROXIMA TAREFA
// Recebe os dados de cada Tarefa Elementar.
$receiveDataElementalTask = ElementalTasks::find($recebeDataControlId->elemental_tasks_id);
$receiveDataEquipment = Equipment::find($recebeDataControlId->equipment_id);
if ($next_todo < 25) {
$elemental_tasks_id = $next_todo;
$further_tasks_id = null;
} else {
$elemental_tasks_id = null;
$further_tasks_id = $next_todo;
}
// dd($recebeDataControlId->id_workstations );
if ($request->stateEquipment == "cancel") {
$deleteDataControlWhereRefreashPage = ControlEquipmentWorkstation::where('id_workstations', $receiveDataControlWs->id_workstations)
->where('equipment_id', $receiveDataEquipment->equipment_id)
->whereNotNull('entry_date')
->whereNull('departure_date')
->first();
if ($deleteDataControlWhereRefreashPage) {
$deleteDataControlWhereRefreashPage->id_workstations = null;
$deleteDataControlWhereRefreashPage->entry_date = null;
$deleteDataControlWhereRefreashPage->departure_date = null;
$deleteDataControlWhereRefreashPage->save();
}
return redirect()->route('enterWorkstation');
} if ($request->stateEquipment == "finish") {
$receiveDataControlWs->departure_date = now();
$receiveDataControlWs->save();
$nextEquipmentTaskStateEquipmentFinish = DB::select("
INSERT INTO control_equipment_workstation
(equipment_id, id_workstations, elemental_tasks_id, further_tasks_id, equipment_comments_id, entry_date, departure_date)
VALUES
(:equipment_id,NULL,:elemental_tasks_id,:further_tasks_id,NULL,NULL,NULL)
", [
'equipment_id' => $receiveDataEquipment->equipment_id,
'elemental_tasks_id' => $elemental_tasks_id,
'further_tasks_id' => $further_tasks_id
]);
return redirect()->route('enterWorkstation');
}
if ($request->stateEquipment == 'next') {
$receiveDataControlWs->departure_date = now();
$receiveDataControlWs->save();
// Para criar a divisao do equipamento em entre compo e Obturador
if ($receiveDataControlWs->elemental_tasks_id == 5 && $receiveDataEquipment->equipment_type_id == 3) {
$nextEquipmentTask1 = DB::select("
INSERT INTO control_equipment_workstation
(equipment_id, id_workstations, elemental_tasks_id, further_tasks_id, equipment_comments_id, entry_date, departure_date)
VALUES
(:equipment_id,NULL,8,:further_tasks_id,NULL,NULL,NULL)
", [
'equipment_id' => $receiveDataEquipment->equipment_id,
'further_tasks_id' => $further_tasks_id
]);
$nextEquipmentTask2 = DB::select("
INSERT INTO control_equipment_workstation
(equipment_id, id_workstations, elemental_tasks_id, further_tasks_id, equipment_comments_id, entry_date, departure_date)
VALUES
(:equipment_id,NULL,9,:further_tasks_id,NULL,NULL,NULL)
", [
'equipment_id' => $receiveDataEquipment->equipment_id,
'further_tasks_id' => $further_tasks_id
]);
// Equipamento separado em 2 corpo/ Obturador
return redirect()->route('enterWorkstation');
}
// Quando concluir as tarefas 8 e 9
if ($receiveDataEquipment->equipment_type_id == 3 && ($receiveDataControlWs->elemental_tasks_id == 8 || $receiveDataControlWs->elemental_tasks_id == 9)) {
// dd('recebe if Quando concluir as tarefas 8 e 9 ');
// Verifique se já existem registros na tabela control_equipment_workstation
$existingRecords = DB::table('control_equipment_workstation')
->where('equipment_id', $receiveDataControlWs->equipment_id)
->whereIn('elemental_tasks_id', [8, 9])
->whereNotNull('departure_date')
->get();
// Verifique se há pelo menos dois registros que atendem às condições
if ($existingRecords->count() >= 2) {
// Crie um novo registro com elemental_tasks_id igual a 10
$nextEquipmentTask3 = DB::table('control_equipment_workstation')->insertGetId([
'equipment_id' => $receiveDataControlWs->equipment_id,
'id_workstations' => NULL,
'elemental_tasks_id' => 10,
'further_tasks_id' => $further_tasks_id,
'equipment_comments_id' => NULL,
'entry_date' => NULL,
'departure_date' => NULL,
]);
}
return redirect()->route('enterWorkstation');
}
//Se a proxima WS for igual a atual deve criar dados para a ws
if ($recebeDataControlId->id_workstations == $next_workstation) {
$nextEquipmentTask = DB::select("
INSERT INTO control_equipment_workstation
(equipment_id, id_workstations, elemental_tasks_id, further_tasks_id, equipment_comments_id, entry_date, departure_date)
VALUES
(:equipment_id,:next_workstation,:elemental_tasks_id,:further_tasks_id,NULL,CURRENT_TIMESTAMP,NULL)
", [
'equipment_id' => $receiveDataEquipment->equipment_id,
'next_workstation' => $next_workstation,
'elemental_tasks_id' => $elemental_tasks_id,
'further_tasks_id' => $further_tasks_id
]);
$lastInsertedId = DB::getPdo()->lastInsertId();
$receiveDataNewElementalTask = ElementalTasks::find($elemental_tasks_id);
return view('workstations.workstations', [
'receiveDataElementalTask' => $receiveDataNewElementalTask,
'receiveDataEquipment' => $receiveDataEquipment,
'control_ew_id' => $lastInsertedId,
'task_todo' => $next_todo
]);
// Se verificar que a proxima tarefa e Null ele deve apenas voltar ao start
} else if ($next_workstation == null) {
$nextEquipmentTask = DB::select("
INSERT INTO control_equipment_workstation
(equipment_id, id_workstations, elemental_tasks_id, further_tasks_id, equipment_comments_id, entry_date, departure_date)
VALUES
(:equipment_id,NULL,:elemental_tasks_id,:further_tasks_id,NULL,NULL,NULL)
", [
'equipment_id' => $receiveDataEquipment->equipment_id,
'elemental_tasks_id' => $elemental_tasks_id,
'further_tasks_id' => $further_tasks_id
]);
return redirect()->route('enterWorkstation');
// Iterar sobre o array de parâmetros do request
foreach ($requestData as $key => $value) {
if (preg_match('/^ID(\d+)$/', $key, $matches)) {
// $matches[1] contém o número após 'ID'
$idNumber = $matches[1];
// Atribuir o número extraído diretamente ao elemental_tasks_id
$recebeDataControlWs->elemental_tasks_id = $idNumber;
break; // Se você só espera um ID, pare o loop depois de encontrar
}
}
// Primeiro adicionamos a tarefa que acabou de completar, em seguida salvamos a respostas recebidas.
$recebeDataControlWs->save();
$receiveAnswersElementalTasks->save();
// Agora que guardamos os dados anteriores, vamos criar a nova linha na tabela Control Equipment ID para que o equipamento continue
$newControlEquipment = new ControlEquipmentWorkstation;
$newControlEquipment->equipment_id = $recebeDataControlWs->equipment_id;
$newControlEquipment->id_workstations = $recebeDataControlWs->id_workstations;
$newControlEquipment->entry_date = now();
$newControlEquipment->save();
// Vamos buscar os dados da tarefa elementar comcluida para mandar uma mensagem ao Front e indicar que esta completada
$receiveDataElementalTask = ElementalTasks::find($recebeDataControlWs->elemental_tasks_id,'elemental_tasks_id')->first();
return back()->with('success', 'Tarefa :: '.$receiveDataElementalTask->elemental_tasks_code.'-'.$receiveDataElementalTask->elemental_tasks_code.' Concluída com sucesso!');
// return route('getEquipmentData', $recebeDataControlWs->equipment_id);
}
// Ao selecionar o equipamento para se inicializar a tarefa deve mostrar os dados relacionados.
public function getEquipmentData($equipment_id)
{ //vai receber o email atual, no caso o da workstation que se encontra
{
//vai receber o email atual, no caso o da workstation que se encontra
$userEmail = Auth::user();
// Busca os dados da Ws com base no Login
$findDataWs = ConstructionWorkstation::where('name_workstations', $userEmail->user_name)->first();
$receiveDataWs = ConstructionWorkstation::where('name_workstations', $userEmail->user_name)->first();
// Recebe os dados do Equipamento
$receiveDataEquipment = Equipment::where('equipment_id', $equipment_id)->first();
// Recebe todas as tarefas elementares do equipamento.
$recebeTasksForEquipment = OrderEquipmentTasks::where('equipment_id', $equipment_id)->get();
// Primeira coisa, deve verificar se existe dados deste equipamento e se suas coluna elemental_tasks_id e departure_date estao diferentes de null
// Se estiver diferente de null quer dizer que todas as tarefas anteriores deste equipamento ja foram realizadas e se ele ainda aparece na tabela de equipamentos por fazer que dizer que ele ainda nao terminou todas as suas tarefas.
$existingControlEquipment = ControlEquipmentWorkstation::where('equipment_id', $receiveDataEquipment->equipment_id)
->whereNull('elemental_tasks_id')
->whereNull('departure_date')
->first();
$receiveDataControlEquipment = $existingControlEquipment;
// Ele realmente cria dados, porem toda a vez que da reload ele continua a criar.
// Ao entrar na tela do equipamento deve criar dados, para ele nao poder ser buscado por nenhuma outra WS.
if (!$existingControlEquipment) {
$createControlEquipment = new ControlEquipmentWorkstation;
$createControlEquipment->equipment_id = $receiveDataEquipment->equipment_id;
$createControlEquipment->id_workstations = $receiveDataWs->id_workstations;
$createControlEquipment->entry_date = now();
$createControlEquipment->save();
$receiveDataControlEquipment = $createControlEquipment;
}
// Busca as tarefas do Equipamento a serem feitas
$equipmentTasks = DB::table('users as u')
->join('construction_workstations as cw', 'u.user_name', '=', 'cw.name_workstations')
->join('workstations_association_tasks as wat', 'cw.id_workstations', '=', 'wat.id_workstations')
->join('equipments as e', 'wat.company_projects_id', '=', 'e.company_projects_id')
->join('ordered_equipment_tasks as oet', 'e.equipment_id', '=', 'oet.equipment_id')
->where('u.email', $userEmail->email)
->select('e.equipment_id', 'e.equipment_tag', DB::raw('GROUP_CONCAT(DISTINCT COALESCE(oet.elemental_tasks_id, oet.further_tasks_id) ORDER BY oet.execution_order) AS equipment_all_tasks'))
->groupBy('e.equipment_id', 'e.equipment_tag')
->orderBy('e.equipment_id', 'ASC')
->get();
//Busca as tarefas que podem ser feitas pela WS Atual a partir do Email
$userTasks = DB::table('users as u')
@ -270,81 +139,109 @@ public function getEquipmentData($equipment_id)
->groupBy('cw.id_workstations', 'cw.name_workstations')
->get();
// Convertendo as tarefas do usuário em um array
$tasksArray = explode(',', $userTasks->pluck('all_tasks')->first());
// Primeiro, obtenha todos os IDs de tarefas elementares e outras tarefas de $userTasks
$userTasksIds = $userTasks->pluck('all_tasks')->map(function ($tasks) {
// Transforma a string 'all_tasks' em um array e remove espaços em branco
return array_map('trim', explode(',', $tasks));
})->flatten()->unique();
$controlEquipmentWorkstation = ControlEquipmentWorkstation::where('equipment_id', $receiveDataEquipment->equipment_id)
->whereIn('elemental_tasks_id', $tasksArray)
->whereNull('id_workstations')
->whereNull('entry_date')
->whereNull('departure_date')
->first();
// Em seguida, obtenha todos os IDs de tarefas elementares de $recebeTasksForEquipment
$equipmentTasksIds = $recebeTasksForEquipment->pluck('elemental_tasks_id')->filter()->unique();
// Se encontrar um dado que satisfaca as verificacoes acima deve implementar a tarefa para esta WS.
if ($controlEquipmentWorkstation) {
// Agora, compare os dois conjuntos de IDs para encontrar os IDs comuns
$commonIds = $equipmentTasksIds->intersect($userTasksIds);
$controlEquipmentWorkstation->id_workstations = $findDataWs->id_workstations;
$controlEquipmentWorkstation->entry_date = now();
$controlEquipmentWorkstation->save();
//recebe as tarefas que a Ws atual pode fazer.
$divisionElementalTasks = [
1 => $commonIds->all(),
];
$receiveDataElementalTask = ElementalTasks::find($controlEquipmentWorkstation->elemental_tasks_id);
// IDs que estão em $recebeTasksForEquipment mas não em $userTasks
$uniqueEquipmentTasksIds = $equipmentTasksIds->diff($userTasksIds);
//Returning the values to a view "values"
return view('workstations.workstations', [
'receiveDataElementalTask' => $receiveDataElementalTask,
'receiveDataEquipment' => $receiveDataEquipment,
'control_ew_id' => $controlEquipmentWorkstation->control_equipment_workstation_id,
'task_todo' => $controlEquipmentWorkstation->elemental_tasks_id
]);
} else
// Adicione esses IDs únicos ao array $divisionElementalTasks na chave [2]
$divisionElementalTasks[2] = $uniqueEquipmentTasksIds->all();
//cria a nova linha
$equipmentData = DB::select('CALL ManageEquipmentTasks(?, ?)', [$userEmail->email, $equipment_id]);
// //Saving the values to a variable
if (count($equipmentData) > 0) {
$control_ew_id = $equipmentData[0]->control_ew_id;
$task_todo = $equipmentData[0]->task_todo;
} else {
//It should always exist, but you never know :)
$control_ew_id = null;
$task_todo = null;
// Primeiro, obtenha o registro de ControlEquipmentWorkstation que não deve ter 'elemental_tasks_id' e 'departure_date' como null
$completedTasks = ControlEquipmentWorkstation::where('equipment_id', $equipment_id)
->whereNotNull('elemental_tasks_id')
->whereNotNull('departure_date')
->pluck('elemental_tasks_id')->toArray(); // Supondo que você quer apenas os IDs das tarefas
// Agora, verifique se algum desses IDs está em $divisionElementalTasks[1] e mova para $divisionElementalTasks[3]
foreach ($completedTasks as $completedTaskId) {
if (in_array($completedTaskId, $divisionElementalTasks[1])) {
// Encontre a chave do valor correspondente em [1]
$key = array_search($completedTaskId, $divisionElementalTasks[1]);
// Mova a tarefa de [1] para [3]
$divisionElementalTasks[3][$key] = $completedTaskId;
// Remova a tarefa de [1]
unset($divisionElementalTasks[1][$key]);
}
}
// Recebe os dados de cada Tarefa Elementar.
$recebeDataControlId = ControlEquipmentWorkstation::find($control_ew_id);
// Quando se da Refreash a pagina me devolve um erro de laravel pois o $recebeDataControlId e Null , pois claramente ja foi feita seus scripts e apos o refreash nao e feito denovo, sendo assim e melhor perder os dados criados e fazer novamente do que ter erros de lAravel :D
if ($recebeDataControlId == NULL) {
$deleteDataControlWhereRefreashPage = ControlEquipmentWorkstation::where('id_workstations', $findDataWs->id_workstations)
->where('equipment_id', $receiveDataEquipment->equipment_id)
->whereNotNull('entry_date')
->whereNull('departure_date')
->first();
// dd($deleteDataControlWhereRefreashPage);
if ($deleteDataControlWhereRefreashPage) {
$deleteDataControlWhereRefreashPage->id_workstations = null;
$deleteDataControlWhereRefreashPage->entry_date = null;
$deleteDataControlWhereRefreashPage->departure_date = null;
$deleteDataControlWhereRefreashPage->save();
$recebeTasksForEquipment->map(function ($task) use ($divisionElementalTasks) {
// Verifica se o id da tarefa está no array de tarefas que podem ser feitas
if (in_array($task->elemental_tasks_id, $divisionElementalTasks[1])) {
$task->cardType = 'card-primary';
}
// Verifica se o id da tarefa está no array de tarefas que não podem ser feitas
elseif (in_array($task->elemental_tasks_id, $divisionElementalTasks[2])) {
$task->cardType = 'card-warning';
}
// Verifica se o id da tarefa está no array de tarefas já feitas
elseif (in_array($task->elemental_tasks_id, $divisionElementalTasks[3])) {
$task->cardType = 'card-info';
}
// Se não estiver em nenhum dos arrays, define um tipo padrão (opcional)
else {
$task->cardType = 'card-warning'; // ou qualquer outra classe que você queira usar como padrão
}
return redirect()->route('enterWorkstation');
} else
$receiveDataElementalTask = ElementalTasks::find($recebeDataControlId->elemental_tasks_id);
return $task;
});
// dd($divisionElementalTasks);
//Deve recupar os dados da tarefa Atual quando receber o control_id
//Returning the values to a view "values"
return view('workstations.workstations', [
'receiveDataElementalTask' => $receiveDataElementalTask,
'receiveDataEquipment' => $receiveDataEquipment,
'control_ew_id' => $control_ew_id,
'task_todo' => $task_todo
'receiveDataControlEquipment' => $receiveDataControlEquipment,
'recebeTasksForEquipment' => $recebeTasksForEquipment,
'divisionElementalTasks' => $divisionElementalTasks,
]);
// Busca os Equipamento com base nas tarefas que a Ws atual pode fazer.
// Nao sei de ainda va ser usado apos a atualizacao.
// $equipmentTasks = DB::table('users as u')
// ->join('construction_workstations as cw', 'u.user_name', '=', 'cw.name_workstations')
// ->join('workstations_association_tasks as wat', 'cw.id_workstations', '=', 'wat.id_workstations')
// ->join('equipments as e', 'wat.company_projects_id', '=', 'e.company_projects_id')
// ->join('ordered_equipment_tasks as oet', 'e.equipment_id', '=', 'oet.equipment_id')
// ->where('u.email', $userEmail->email)
// ->select('e.equipment_id', 'e.equipment_tag', DB::raw('GROUP_CONCAT(DISTINCT COALESCE(oet.elemental_tasks_id, oet.further_tasks_id) ORDER BY oet.execution_order) AS equipment_all_tasks'))
// ->groupBy('e.equipment_id', 'e.equipment_tag')
// ->orderBy('e.equipment_id', 'ASC')
// ->get();
// Convertendo as tarefas do usuário(WS) em um array
// $tasksArray = explode(',', $userTasks->pluck('all_tasks')->first());
}
public function cancelElementalTaskForEquipment($equipmentID)
{
//Nesta funcao se o utilizador da Ws apenas o botao de cancelar na view principal,o equipamento deve se desvincular na Ws atual e poder ser selecionado por outra.
$receiveDataEquipment = Equipment::where('equipment_id', $equipmentID)->first();
$existingControlEquipment = ControlEquipmentWorkstation::where('equipment_id', $receiveDataEquipment->equipment_id)
->whereNull('elemental_tasks_id')
->whereNull('departure_date')
->first();
$existingControlEquipment->delete();
return redirect(route('enterWorkstation'));
}
}

View File

@ -366,6 +366,7 @@ public function compose(View $view)
$workstationName = $workstationNameQuery[0]->nomenclature_workstation;
//Counting of equipments
$equipmentsTodoCount = count($equipmentsTodo);
$equipmentsDoneCount = count($equipmentsDone);

File diff suppressed because it is too large Load Diff

3
public/assets/dist/css/adminlte.min.css vendored Executable file → Normal file

File diff suppressed because one or more lines are too long

View File

@ -11,8 +11,11 @@
<!-- Google Font: Source Sans Pro -->
<link rel="stylesheet"
href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,400i,700&display=fallback">
<!-- Font Awesome -->
<link rel="stylesheet" href="{{ URL::asset('assets/plugins/fontawesome-free/css/all.min.css') }}">
{{-- <link rel="stylesheet" href="{{ URL::asset('assets/plugins/fontawesome-free/css/all.min.css') }}"> --}}
<link rel="stylesheet" href="{{ asset('assets/plugins/fontawesome-6.4.2/css/all.css') }}">
<!-- Ionicons -->
<link rel="stylesheet" href="https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css">
<!-- Tempusdominus Bootstrap 4 -->

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,62 @@
@extends('Templates/templateAdmin')
@section('Main-content')
<h2>test</h2>
<input type="hidden" value="98" id="receiveNumberProject">
<table id="showProjectEquipment" class="display">
<thead>
<tr>
<th>ID</th>
<th>Tag</th>
<th>Fabrica</th>
<th>Tipo</th>
<th>acao</th>
</tr>
</thead>
</table>
<script>
$(document).ready(function() {
var numberProject = $('#receiveNumberProject').val();
$('#showProjectEquipment').DataTable({
processing: true,
serverSide: true,
ajax: {
url: '{{ route('getDataEquipment') }}',
type: 'GET',
data: {
'numberProject': numberProject
}
},
columns: [{
data: 'equipment_id',
name: 'equipment_id'
},
{
data: 'equipment_tag',
name: 'equipment_tag'
},
{
data: 'unit_id',
name: 'unit_id'
},
{
data: 'equipment_type_id',
name: 'equipment_type_id'
},
{
data: 'action',
name: 'action',
orderable: false,
searchable: false
},
],
});
});
</script>
@endsection

View File

@ -1,4 +1,5 @@
@extends('Templates.templateWorkstations')
@section('content')
<div class="row justify-content-center align-items-center" style="height: 50vh">
@ -20,4 +21,5 @@
</div>
</div>
</div>
@endsection

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -30,6 +30,20 @@
use App\Http\Controllers\WorkstationsJobsController;
use App\Http\Controllers\LanguageController;
Route::get('test', function () {
return view('testDataTables');
});
Route::get('cancelElementalTaskForEquipment/{equipmentID}', [WorkstationsJobsController::class,'cancelElementalTaskForEquipment'])->name('cancelElementalTaskForEquipment');
Route::get('test2/{projectID}/{equipmentID}',[ExecutionProjectController::class,'test11'])->name('test11');
Route::get('getDataEquipment', [ExecutionProjectController::class, 'getDataEquipment'])->name('getDataEquipment');
// Route::get('test/{id}',[ExecutionProjectController::class, 'test11'])->name('test11');
Route::post('language/switch', [LanguageController::class, 'switchLanguage'])->name('language.switch');
// Esta rota so pode aceder quem tiver o link atravez do email
@ -42,6 +56,7 @@
->middleware(['auth', 'signed', 'throttle:6,1'])
->name('verification.verify');
/*
|--------------------------------------------------------------------------
@ -106,6 +121,7 @@
|--------------------------------------------------------------------------
|
*/
Route::controller(CreateProjectController::class)
->group(function () {