last update
This commit is contained in:
parent
8bc8ccff44
commit
8789ee8fdb
|
|
@ -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])
|
||||
|
|
|
|||
|
|
@ -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');
|
||||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
@ -17,30 +18,37 @@ 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'));
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -366,6 +366,7 @@ public function compose(View $view)
|
|||
|
||||
$workstationName = $workstationNameQuery[0]->nomenclature_workstation;
|
||||
|
||||
|
||||
//Counting of equipments
|
||||
$equipmentsTodoCount = count($equipmentsTodo);
|
||||
$equipmentsDoneCount = count($equipmentsDone);
|
||||
|
|
|
|||
30978
public/assets/dist/css/adminlte.css
vendored
30978
public/assets/dist/css/adminlte.css
vendored
File diff suppressed because it is too large
Load Diff
3
public/assets/dist/css/adminlte.min.css
vendored
Executable file → Normal file
3
public/assets/dist/css/adminlte.min.css
vendored
Executable file → Normal file
File diff suppressed because one or more lines are too long
|
|
@ -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
62
resources/views/testDataTables.blade.php
Normal file
62
resources/views/testDataTables.blade.php
Normal 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
|
||||
|
|
@ -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
|
||||
5890
resources/views/workstations/workstation.php.bak
Normal file
5890
resources/views/workstations/workstation.php.bak
Normal file
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
|
@ -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
|
||||
|
|
@ -43,6 +57,7 @@
|
|||
->name('verification.verify');
|
||||
|
||||
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Web Routes
|
||||
|
|
@ -106,6 +121,7 @@
|
|||
|--------------------------------------------------------------------------
|
||||
|
|
||||
*/
|
||||
|
||||
Route::controller(CreateProjectController::class)
|
||||
->group(function () {
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user