updating the WS structure
This commit is contained in:
parent
3b86212755
commit
5ef4d8c95b
|
|
@ -41,27 +41,8 @@ public function changeAmbitEquipment(Request $request)
|
||||||
{
|
{
|
||||||
|
|
||||||
$receiveAmbitEquipmentId = $request->receveAmbit;
|
$receiveAmbitEquipmentId = $request->receveAmbit;
|
||||||
|
|
||||||
$equipmentId = $request->equipmentID;
|
$equipmentId = $request->equipmentID;
|
||||||
|
|
||||||
// $receiveEquipment = Equipment::where('equipment_id', $equipmentId)->first();
|
|
||||||
|
|
||||||
// $receiveEquipmentWorkHistorys = EquipmentWorkHistory::where('equipment_id',$receiveEquipment->equipment_id)
|
|
||||||
// ->where('company_projects_id', $receiveEquipment->company_projects_id )
|
|
||||||
// ->first();
|
|
||||||
|
|
||||||
// $receiveDataEquipmentAssociationAmbit = EquipmentAssociationAmbit::where('equipmentWorkHistorys_id',$receiveEquipmentWorkHistorys->equipmentWorkHistorys_id)->first();
|
|
||||||
|
|
||||||
// if($receiveDataEquipmentAssociationAmbit->ambits_id == $receiveAmbitEquipmentId){
|
|
||||||
|
|
||||||
// return back()->with('danger', 'Ambito selecionado, igual ao anterior!');
|
|
||||||
// } else {
|
|
||||||
// $receiveDataEquipmentAssociationAmbit->ambits_id = $receiveAmbitEquipmentId;
|
|
||||||
// $receiveDataEquipmentAssociationAmbit->save();
|
|
||||||
|
|
||||||
|
|
||||||
// }
|
|
||||||
|
|
||||||
$receiveEquipment = Equipment::where('equipment_id', $equipmentId)->first();
|
$receiveEquipment = Equipment::where('equipment_id', $equipmentId)->first();
|
||||||
|
|
||||||
$receiveEquipmentWorkHistorys = EquipmentWorkHistory::where('equipment_id', $receiveEquipment->equipment_id)
|
$receiveEquipmentWorkHistorys = EquipmentWorkHistory::where('equipment_id', $receiveEquipment->equipment_id)
|
||||||
|
|
@ -257,16 +238,65 @@ public function addFurtherTasks(Request $request)
|
||||||
|
|
||||||
public function receiveEquipmentToAssociateTasks(Request $request)
|
public function receiveEquipmentToAssociateTasks(Request $request)
|
||||||
{
|
{
|
||||||
// dd($request);
|
$receiveIsptNumber = 0;
|
||||||
|
|
||||||
|
// Obter o maior ispt_number da tabela EquipmentWorkHistory que corresponde aos valores em Equipment
|
||||||
|
$highestIsptNumber = EquipmentWorkHistory::select('equipment_work_historys.ispt_number')
|
||||||
|
->join('equipments', function ($join) {
|
||||||
|
$join->on('equipments.equipment_id', '=', 'equipment_work_historys.equipment_id')
|
||||||
|
->on('equipments.company_projects_id', '=', 'equipment_work_historys.company_projects_id');
|
||||||
|
})
|
||||||
|
->orderBy('equipment_work_historys.ispt_number', 'desc')
|
||||||
|
->first();
|
||||||
|
|
||||||
|
// Se existir, ele busca o maior número e acrescenta mais um para adicionar um novo equipamento.
|
||||||
|
if ($highestIsptNumber) {
|
||||||
|
|
||||||
|
$receiveIsptNumber = $highestIsptNumber->ispt_number + 1;
|
||||||
|
} else {
|
||||||
|
// Se não houver registros, comece com 1
|
||||||
|
$receiveIsptNumber = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
$execution_order = 1;
|
||||||
|
|
||||||
foreach ($request->equipment as $equipment) {
|
foreach ($request->equipment as $equipment) {
|
||||||
$equipmentModel = Equipment::where('equipment_id', $equipment['equipment_id'])->first();
|
$equipmentModel = Equipment::where('equipment_id', $equipment['equipment_id'])->first();
|
||||||
|
|
||||||
|
//Atualiza a tabela equipment para associar o equipamento a uma Obra.
|
||||||
if ($equipmentModel) {
|
if ($equipmentModel) {
|
||||||
$equipmentModel->company_projects_id = $request->receiveNumberProject;
|
$equipmentModel->company_projects_id = $request->receiveNumberProject;
|
||||||
$equipmentModel->save();
|
$equipmentModel->save();
|
||||||
|
|
||||||
|
// Ja associado, criar dados nos Historico para depois ser possivel de acessar.
|
||||||
|
$createEquipmentWorkHistory = new EquipmentWorkHistory;
|
||||||
|
$createEquipmentWorkHistory->equipment_id = $equipment['equipment_id'];
|
||||||
|
$createEquipmentWorkHistory->ispt_number = $receiveIsptNumber++;
|
||||||
|
$createEquipmentWorkHistory->company_projects_id = $request->receiveNumberProject;
|
||||||
|
$createEquipmentWorkHistory->save();
|
||||||
|
|
||||||
|
//Criar associacao do equipamento ao Âmbito
|
||||||
|
$AssociationEquipmentAmbit = new EquipmentAssociationAmbit;
|
||||||
|
$AssociationEquipmentAmbit->equipment_type_id = $equipment['equipment_type_id'];
|
||||||
|
$AssociationEquipmentAmbit->ambits_id = $equipment['ambit_id'];
|
||||||
|
$AssociationEquipmentAmbit->equipmentWorkHistorys_id = $createEquipmentWorkHistory->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 = $createEquipmentWorkHistory->equipmentWorkHistorys_id;
|
||||||
|
$JoinsEquipmentsWithTasks->execution_order = $execution_order++;
|
||||||
|
$JoinsEquipmentsWithTasks->elemental_tasks_id = $TasksAssociationAmbit->elemental_tasks_id;
|
||||||
|
$JoinsEquipmentsWithTasks->further_tasks_id = null;
|
||||||
|
$JoinsEquipmentsWithTasks->inspection = 2;
|
||||||
|
$JoinsEquipmentsWithTasks->save();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return redirect()->back()->with('success', 'Equipametos associados a Obra com Sucesso !');
|
return redirect()->back()->with('success', 'Equipametos associados a Obra com Sucesso !');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -93,7 +93,6 @@ public function test11($projectID, $equipmentID)
|
||||||
public function test22($equipmentID)
|
public function test22($equipmentID)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
||||||
$dataEquipment = Equipment::find($equipmentID);
|
$dataEquipment = Equipment::find($equipmentID);
|
||||||
|
|
||||||
$attributes = SpecificAttributesEquipmentType::where('equipment_id', $equipmentID)->get(); // recebe todos os atributos espesificos do equipamento
|
$attributes = SpecificAttributesEquipmentType::where('equipment_id', $equipmentID)->get(); // recebe todos os atributos espesificos do equipamento
|
||||||
|
|
|
||||||
|
|
@ -6,6 +6,7 @@
|
||||||
use App\Models\ControlEquipmentWorkstation;
|
use App\Models\ControlEquipmentWorkstation;
|
||||||
use App\Models\ElementalTasks;
|
use App\Models\ElementalTasks;
|
||||||
use App\Models\Equipment;
|
use App\Models\Equipment;
|
||||||
|
use App\Models\EquipmentWorkHistory;
|
||||||
use App\Models\OrderEquipmentTasks;
|
use App\Models\OrderEquipmentTasks;
|
||||||
use App\Models\workstationsTaskAnswers;
|
use App\Models\workstationsTaskAnswers;
|
||||||
|
|
||||||
|
|
@ -16,12 +17,27 @@
|
||||||
|
|
||||||
class WorkstationsJobsController extends Controller
|
class WorkstationsJobsController extends Controller
|
||||||
{
|
{
|
||||||
public function receiveAnswersEquipment(Request $request)
|
public function receiveAnswersEquipment(Request $request, $control_equipment_workstation_id)
|
||||||
{
|
{
|
||||||
//Deve recber o id da control atual.
|
// dd($request);
|
||||||
// Primeiro ele deve criar a associação entre id atual do control + perguntas e respostas
|
//No request recebemos ID(NUmero da tarela elementar) , esta variavel vai receber este ID apos selerar o id da string
|
||||||
|
$elementalTaskID = 0;
|
||||||
|
|
||||||
|
// Deve receber o id da control atual.
|
||||||
|
$requestData = $request->all();
|
||||||
|
|
||||||
|
foreach ($requestData as $key => $value) {
|
||||||
|
// Verifica se a chave começa com 'ID'
|
||||||
|
if (preg_match('/ID(\d+)/', $key, $matches)) {
|
||||||
|
// $matches[1] conterá o número após 'ID'
|
||||||
|
$elementalTaskID = intval($matches[1]);
|
||||||
|
break; // Sai do loop após encontrar o primeiro match
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//Ele deve criar a associação entre id atual do control + perguntas e respostas
|
||||||
$receiveAnswersElementalTasks = new workstationsTaskAnswers;
|
$receiveAnswersElementalTasks = new workstationsTaskAnswers;
|
||||||
$receiveAnswersElementalTasks->control_equipment_workstation_id = $request->controlEquipmentID;
|
$receiveAnswersElementalTasks->control_equipment_workstation_id = $control_equipment_workstation_id;
|
||||||
|
|
||||||
// Inicializando o array que vai armazenar os objetos JSON
|
// Inicializando o array que vai armazenar os objetos JSON
|
||||||
$answersArray = []; // Array para armazenar as respostas
|
$answersArray = []; // Array para armazenar as respostas
|
||||||
|
|
@ -59,7 +75,8 @@ public function receiveAnswersEquipment(Request $request)
|
||||||
$receiveAnswersElementalTasks->answer_json = $jsonString;
|
$receiveAnswersElementalTasks->answer_json = $jsonString;
|
||||||
|
|
||||||
// Busca a Ws com base no id recebido da tabela Control.
|
// Busca a Ws com base no id recebido da tabela Control.
|
||||||
$recebeDataControlWs = ControlEquipmentWorkstation::find($request->controlEquipmentID);
|
$recebeDataControlWs = ControlEquipmentWorkstation::find($control_equipment_workstation_id);
|
||||||
|
$recebeDataControlWs->elemental_tasks_id = $elementalTaskID;
|
||||||
$recebeDataControlWs->departure_date = now();
|
$recebeDataControlWs->departure_date = now();
|
||||||
|
|
||||||
$requestData = $request->all();
|
$requestData = $request->all();
|
||||||
|
|
@ -80,16 +97,16 @@ public function receiveAnswersEquipment(Request $request)
|
||||||
$receiveAnswersElementalTasks->save();
|
$receiveAnswersElementalTasks->save();
|
||||||
|
|
||||||
// Agora que guardamos os dados anteriores, vamos criar a nova linha na tabela Control Equipment ID para que o equipamento continue
|
// 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 = new ControlEquipmentWorkstation;
|
||||||
$newControlEquipment->equipment_id = $recebeDataControlWs->equipment_id;
|
// $newControlEquipment->equipmentWorkHistorys_id = $recebeDataControlWs->equipmentWorkHistorys_id;
|
||||||
$newControlEquipment->id_workstations = $recebeDataControlWs->id_workstations;
|
// $newControlEquipment->id_workstations = $recebeDataControlWs->id_workstations;
|
||||||
$newControlEquipment->entry_date = now();
|
// $newControlEquipment->entry_date = now();
|
||||||
$newControlEquipment->save();
|
// $newControlEquipment->save();
|
||||||
|
|
||||||
// Vamos buscar os dados da tarefa elementar comcluida para mandar uma mensagem ao Front e indicar que esta completada
|
// 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();
|
$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 back()->with('success', 'Tarefa :: ' . $receiveDataElementalTask->elemental_tasks_code . '-' . $receiveDataElementalTask->elemental_tasks_code . ' Concluída com sucesso!');
|
||||||
|
|
||||||
// return route('getEquipmentData', $recebeDataControlWs->equipment_id);
|
// return route('getEquipmentData', $recebeDataControlWs->equipment_id);
|
||||||
|
|
||||||
|
|
@ -100,36 +117,18 @@ 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();
|
$userEmail = Auth::user();
|
||||||
|
|
||||||
// Busca os dados da Ws com base no Login
|
// Busca os dados da Ws com base no Login
|
||||||
$receiveDataWs = ConstructionWorkstation::where('name_workstations', $userEmail->user_name)->first();
|
$receiveDataWs = ConstructionWorkstation::where('name_workstations', $userEmail->user_name)->first();
|
||||||
|
|
||||||
// Recebe os dados do Equipamento
|
// Recebe os dados do Equipamento
|
||||||
$receiveDataEquipment = Equipment::where('equipment_id', $equipment_id)->first();
|
$receiveDataEquipment = Equipment::where('equipment_id', $equipment_id)->first();
|
||||||
// Recebe todas as tarefas elementares do equipamento.
|
// Recebe o id do Historico do equipamento, em sua obra atual
|
||||||
$recebeTasksForEquipment = OrderEquipmentTasks::where('equipment_id', $equipment_id)->get();
|
$receiveEquipmentWorkHistory = EquipmentWorkHistory::where('equipment_id', $receiveDataEquipment->equipment_id)
|
||||||
|
->where('company_projects_id', $receiveDataEquipment->company_projects_id)
|
||||||
// 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();
|
->first();
|
||||||
|
// Recebe todas as tarefas elementares do equipamento.
|
||||||
$receiveDataControlEquipment = $existingControlEquipment;
|
$recebeTasksForEquipment = OrderEquipmentTasks::where('equipmentWorkHistorys_id', $receiveEquipmentWorkHistory->equipmentWorkHistorys_id)->get();
|
||||||
|
|
||||||
// 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 que podem ser feitas pela WS Atual a partir do Email
|
//Busca as tarefas que podem ser feitas pela WS Atual a partir do Email
|
||||||
$userTasks = DB::table('users as u')
|
$userTasks = DB::table('users as u')
|
||||||
->join('construction_workstations as cw', 'u.user_name', '=', 'cw.name_workstations')
|
->join('construction_workstations as cw', 'u.user_name', '=', 'cw.name_workstations')
|
||||||
|
|
@ -139,6 +138,7 @@ public function getEquipmentData($equipment_id)
|
||||||
->groupBy('cw.id_workstations', 'cw.name_workstations')
|
->groupBy('cw.id_workstations', 'cw.name_workstations')
|
||||||
->get();
|
->get();
|
||||||
|
|
||||||
|
|
||||||
// Primeiro, obtenha todos os IDs de tarefas elementares e outras tarefas de $userTasks
|
// Primeiro, obtenha todos os IDs de tarefas elementares e outras tarefas de $userTasks
|
||||||
$userTasksIds = $userTasks->pluck('all_tasks')->map(function ($tasks) {
|
$userTasksIds = $userTasks->pluck('all_tasks')->map(function ($tasks) {
|
||||||
// Transforma a string 'all_tasks' em um array e remove espaços em branco
|
// Transforma a string 'all_tasks' em um array e remove espaços em branco
|
||||||
|
|
@ -156,28 +156,33 @@ public function getEquipmentData($equipment_id)
|
||||||
1 => $commonIds->all(),
|
1 => $commonIds->all(),
|
||||||
];
|
];
|
||||||
|
|
||||||
// IDs que estão em $recebeTasksForEquipment mas não em $userTasks
|
// IDs que estão em $recebeTasksForEquipment mas não em $userTasks ou seja sao os ids que a Ws nao pode executar estas tarefas.
|
||||||
$uniqueEquipmentTasksIds = $equipmentTasksIds->diff($userTasksIds);
|
$uniqueEquipmentTasksIds = $equipmentTasksIds->diff($userTasksIds);
|
||||||
|
|
||||||
// Adicione esses IDs únicos ao array $divisionElementalTasks na chave [2]
|
// Adicione esses IDs únicos ao array $divisionElementalTasks na chave [2]
|
||||||
$divisionElementalTasks[2] = $uniqueEquipmentTasksIds->all();
|
$divisionElementalTasks[2] = $uniqueEquipmentTasksIds->all();
|
||||||
|
|
||||||
|
// Ao selecionar um equipamento cria na ControlEquipmentWorkstation dados sobre o mesmo indicando quando entrou.
|
||||||
|
$newDataControlEquipment = new ControlEquipmentWorkstation;
|
||||||
|
|
||||||
|
$newDataControlEquipment->equipmentWorkHistorys_id = $receiveEquipmentWorkHistory->equipmentWorkHistorys_id;
|
||||||
|
$newDataControlEquipment->id_workstations = $receiveDataWs->id_workstations;
|
||||||
|
$newDataControlEquipment->entry_date = now();
|
||||||
|
$newDataControlEquipment->save();
|
||||||
|
|
||||||
// Primeiro, obtenha o registro de ControlEquipmentWorkstation que não deve ter 'elemental_tasks_id' e 'departure_date' como 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)
|
$completedTasks = ControlEquipmentWorkstation::where('equipmentWorkHistorys_id', $receiveEquipmentWorkHistory->equipmentWorkHistorys_id)
|
||||||
->whereNotNull('elemental_tasks_id')
|
->whereNotNull('elemental_tasks_id')
|
||||||
->whereNotNull('departure_date')
|
->whereNotNull('departure_date')
|
||||||
->pluck('elemental_tasks_id')->toArray(); // Supondo que você quer apenas os IDs das tarefas
|
->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]
|
//Agora, verifique se algum desses IDs está em $divisionElementalTasks[1] e mova para $divisionElementalTasks[3]
|
||||||
|
//O id que for movido para o [3] sua inica condicao sera quando o 'entry_date' e 'departure_date' forem diferentes de null, assim indica ser uma tarefa Finalizada.
|
||||||
foreach ($completedTasks as $completedTaskId) {
|
foreach ($completedTasks as $completedTaskId) {
|
||||||
if (in_array($completedTaskId, $divisionElementalTasks[1])) {
|
if (in_array($completedTaskId, $divisionElementalTasks[1])) {
|
||||||
// Encontre a chave do valor correspondente em [1]
|
// Encontre a chave do valor correspondente em [1]
|
||||||
$key = array_search($completedTaskId, $divisionElementalTasks[1]);
|
$key = array_search($completedTaskId, $divisionElementalTasks[1]);
|
||||||
|
|
||||||
// Mova a tarefa de [1] para [3]
|
// Mova a tarefa de [1] para [3]
|
||||||
$divisionElementalTasks[3][$key] = $completedTaskId;
|
$divisionElementalTasks[3][$key] = $completedTaskId;
|
||||||
|
|
||||||
// Remova a tarefa de [1]
|
// Remova a tarefa de [1]
|
||||||
unset($divisionElementalTasks[1][$key]);
|
unset($divisionElementalTasks[1][$key]);
|
||||||
}
|
}
|
||||||
|
|
@ -187,61 +192,112 @@ public function getEquipmentData($equipment_id)
|
||||||
// Verifica se o id da tarefa está no array de tarefas que podem ser feitas
|
// Verifica se o id da tarefa está no array de tarefas que podem ser feitas
|
||||||
if (in_array($task->elemental_tasks_id, $divisionElementalTasks[1])) {
|
if (in_array($task->elemental_tasks_id, $divisionElementalTasks[1])) {
|
||||||
$task->cardType = 'card-primary';
|
$task->cardType = 'card-primary';
|
||||||
|
$task->cardTypeStyle = 'blue'; // Define o estilo de cor
|
||||||
|
|
||||||
}
|
}
|
||||||
// Verifica se o id da tarefa está no array de tarefas que não podem ser feitas
|
// 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])) {
|
elseif (in_array($task->elemental_tasks_id, $divisionElementalTasks[2])) {
|
||||||
$task->cardType = 'card-warning';
|
$task->cardType = 'card-primary';
|
||||||
|
$task->cardTypeStyle = 'gray'; // Define o estilo de cor
|
||||||
|
// $task->InputInCardOnlyReadOrNot = 'readonly';
|
||||||
|
// Consulta ControlEquipmentWorkstation para verificar as condições especificadas
|
||||||
|
$controlEquipment = ControlEquipmentWorkstation::where('elemental_tasks_id', $task->elemental_tasks_id)
|
||||||
|
->whereNotNull('entry_date')
|
||||||
|
->whereNotNull('departure_date')
|
||||||
|
->first();
|
||||||
|
|
||||||
|
if ($controlEquipment) {
|
||||||
|
// Se encontrar, atribuir control_equipment_workstation_id
|
||||||
|
$task->control_equipment_workstation_id = $controlEquipment->control_equipment_workstation_id;
|
||||||
|
|
||||||
|
//buscar dados na model workstationsTaskAnswers
|
||||||
|
$workstationTaskAnswer = WorkstationsTaskAnswers::where('control_equipment_workstation_id', $task->control_equipment_workstation_id)
|
||||||
|
->first();
|
||||||
|
|
||||||
|
if ($workstationTaskAnswer) {
|
||||||
|
// Decodifica o JSON para um array
|
||||||
|
$answersArray = json_decode($workstationTaskAnswer->answer_json, true);
|
||||||
|
|
||||||
|
// Cria um array associativo onde as chaves são as perguntas e os valores são as respostas
|
||||||
|
$formattedAnswers = [];
|
||||||
|
foreach ($answersArray as $item) {
|
||||||
|
$formattedAnswers[$item['question']] = $item['value'];
|
||||||
|
}
|
||||||
|
|
||||||
|
// Atribui o array formatado ao task
|
||||||
|
$task->formatted_answers = $formattedAnswers;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Verifica se o id da tarefa está no array de tarefas já feitas
|
// Verifica se o id da tarefa está no array de tarefas já feitas
|
||||||
elseif (in_array($task->elemental_tasks_id, $divisionElementalTasks[3])) {
|
elseif (in_array($task->elemental_tasks_id, $divisionElementalTasks[3])) {
|
||||||
$task->cardType = 'card-info';
|
$task->cardType = 'card-info';
|
||||||
}
|
$task->cardTypeStyle = 'green'; // Define o estilo de cor
|
||||||
// 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
|
|
||||||
}
|
|
||||||
|
|
||||||
|
// Consulta ControlEquipmentWorkstation para verificar as condições especificadas
|
||||||
|
$controlEquipment = ControlEquipmentWorkstation::where('equipmentWorkHistorys_id', $task->equipmentWorkHistorys_id)
|
||||||
|
->where('elemental_tasks_id', $task->elemental_tasks_id)
|
||||||
|
->whereNotNull('entry_date')
|
||||||
|
->whereNotNull('departure_date')
|
||||||
|
->first();
|
||||||
|
|
||||||
|
if ($controlEquipment) {
|
||||||
|
// Se encontrar, atribuir control_equipment_workstation_id
|
||||||
|
$task->control_equipment_workstation_id = $controlEquipment->control_equipment_workstation_id;
|
||||||
|
|
||||||
|
//buscar dados na model workstationsTaskAnswers
|
||||||
|
$workstationTaskAnswer = WorkstationsTaskAnswers::where('control_equipment_workstation_id', $task->control_equipment_workstation_id)
|
||||||
|
->first();
|
||||||
|
|
||||||
|
if ($workstationTaskAnswer) {
|
||||||
|
// Decodifica o JSON para um array
|
||||||
|
$answersArray = json_decode($workstationTaskAnswer->answer_json, true);
|
||||||
|
|
||||||
|
// Cria um array associativo onde as chaves são as perguntas e os valores são as respostas
|
||||||
|
$formattedAnswers = [];
|
||||||
|
foreach ($answersArray as $item) {
|
||||||
|
$formattedAnswers[$item['question']] = $item['value'];
|
||||||
|
}
|
||||||
|
|
||||||
|
// Atribui o array formatado ao task
|
||||||
|
$task->formatted_answers = $formattedAnswers;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
return $task;
|
return $task;
|
||||||
});
|
});
|
||||||
|
|
||||||
// dd($divisionElementalTasks);
|
// dd($recebeTasksForEquipment);
|
||||||
|
|
||||||
return view('workstations.workstations', [
|
return view('workstations.workstations', [
|
||||||
|
// Deve receber o atual COntrol ID ? tudo a vez que atualizar atualiza ??
|
||||||
|
'dataControlEquipment' => $newDataControlEquipment,
|
||||||
'receiveDataEquipment' => $receiveDataEquipment,
|
'receiveDataEquipment' => $receiveDataEquipment,
|
||||||
'receiveDataControlEquipment' => $receiveDataControlEquipment,
|
|
||||||
|
|
||||||
'recebeTasksForEquipment' => $recebeTasksForEquipment,
|
'recebeTasksForEquipment' => $recebeTasksForEquipment,
|
||||||
'divisionElementalTasks' => $divisionElementalTasks,
|
'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)
|
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.
|
//Nesta funcao se o utilizador da Ws utilizar o botao cancelar na view principal,o equipamento deve se desvincular na Ws atual e poder ser selecionado por outra.
|
||||||
|
// Assim sendo mais pratico excluindo o ultimo dado desta Ws da tabela control_equipment_workstation, quando seu 'elemental_tasks_id' e 'departure_date' forem 'Null'
|
||||||
$receiveDataEquipment = Equipment::where('equipment_id', $equipmentID)->first();
|
$receiveDataEquipment = Equipment::where('equipment_id', $equipmentID)->first();
|
||||||
|
|
||||||
$existingControlEquipment = ControlEquipmentWorkstation::where('equipment_id', $receiveDataEquipment->equipment_id)
|
// Recebe o id do Historico do equipamento, em sua obra atual
|
||||||
|
$receiveEquipmentWorkHistory = EquipmentWorkHistory::where('equipment_id', $receiveDataEquipment->equipment_id)
|
||||||
|
->where('company_projects_id', $receiveDataEquipment->company_projects_id)
|
||||||
|
->first();
|
||||||
|
|
||||||
|
$existingControlEquipment = ControlEquipmentWorkstation::where('equipmentWorkHistorys_id', $receiveEquipmentWorkHistory->equipmentWorkHistorys_id)
|
||||||
->whereNull('elemental_tasks_id')
|
->whereNull('elemental_tasks_id')
|
||||||
->whereNull('departure_date')
|
->whereNull('departure_date')
|
||||||
->first();
|
->delete();
|
||||||
$existingControlEquipment->delete();
|
|
||||||
return redirect(route('enterWorkstation'));
|
return redirect(route('enterWorkstation'));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,11 @@
|
||||||
|
|
||||||
namespace App\Http\ViewComposers;
|
namespace App\Http\ViewComposers;
|
||||||
|
|
||||||
|
use App\Models\ConstructionWorkstation;
|
||||||
|
use App\Models\ControlEquipmentWorkstation;
|
||||||
|
use App\Models\Equipment;
|
||||||
|
use App\Models\EquipmentWorkHistory;
|
||||||
|
use App\Models\User;
|
||||||
use Illuminate\Support\Facades\Auth;
|
use Illuminate\Support\Facades\Auth;
|
||||||
use Illuminate\Support\Facades\DB;
|
use Illuminate\Support\Facades\DB;
|
||||||
|
|
||||||
|
|
@ -12,376 +17,29 @@ class WorkstationComposer
|
||||||
public function compose(View $view)
|
public function compose(View $view)
|
||||||
{
|
{
|
||||||
$userEmail = Auth::user()->email;
|
$userEmail = Auth::user()->email;
|
||||||
|
$receiveDataEmail = User::where('email', $userEmail)->first();
|
||||||
|
|
||||||
$equipmentsTodo = DB::select("
|
$receiveDataWs = ConstructionWorkstation::where('name_workstations', $receiveDataEmail->user_name)->first();
|
||||||
WITH equipments_multiple_rows AS (
|
|
||||||
SELECT
|
|
||||||
e.equipment_id,
|
|
||||||
e.equipment_tag,
|
|
||||||
COALESCE(MAX(oet.elemental_tasks_id), MAX(oet.further_tasks_id)) AS equipment_all_tasks
|
|
||||||
FROM
|
|
||||||
users u
|
|
||||||
JOIN
|
|
||||||
construction_workstations cw ON u.user_name = cw.name_workstations
|
|
||||||
JOIN
|
|
||||||
workstations_association_tasks wat ON cw.id_workstations = wat.id_workstations
|
|
||||||
JOIN
|
|
||||||
equipments e ON wat.company_projects_id = e.company_projects_id
|
|
||||||
JOIN
|
|
||||||
ordered_equipment_tasks oet ON e.equipment_id = oet.equipment_id
|
|
||||||
WHERE
|
|
||||||
u.email = :email1
|
|
||||||
AND
|
|
||||||
oet.execution_order = 1
|
|
||||||
GROUP BY
|
|
||||||
e.equipment_id,
|
|
||||||
e.equipment_tag
|
|
||||||
),
|
|
||||||
|
|
||||||
workstations_multiple_rows AS (
|
$receiveAllEquipmentOfProject = Equipment::where('company_projects_id', $receiveDataWs->company_projects_id)
|
||||||
SELECT
|
->whereHas('equipmentWorkHistory', function ($query) use ($receiveDataWs) {
|
||||||
cw.id_workstations,
|
$query->where('company_projects_id', $receiveDataWs->company_projects_id);
|
||||||
cw.name_workstations,
|
})
|
||||||
COALESCE(wat.elemental_tasks_id, wat.further_tasks_id) AS all_tasks
|
->whereDoesntHave('equipmentWorkHistory.controlEquipmentWorkstation', function ($query) {
|
||||||
FROM
|
$query->whereNull('elemental_tasks_id')
|
||||||
users u
|
->whereNull('departure_date');
|
||||||
JOIN
|
})
|
||||||
construction_workstations cw ON u.user_name = cw.name_workstations
|
->get();
|
||||||
JOIN
|
|
||||||
workstations_association_tasks wat ON cw.id_workstations = wat.id_workstations
|
|
||||||
WHERE
|
|
||||||
u.email = :email2
|
|
||||||
),
|
|
||||||
|
|
||||||
workstations_control_all_tasks AS (
|
|
||||||
SELECT
|
|
||||||
cew.control_equipment_workstation_id,
|
|
||||||
cew.equipment_id,
|
|
||||||
CASE
|
|
||||||
WHEN cew.id_workstations IS NULL THEN NULL
|
|
||||||
WHEN cew.id_workstations IN (
|
|
||||||
SELECT wat.id_workstations
|
|
||||||
FROM workstations_association_tasks wat
|
|
||||||
JOIN construction_workstations cw ON wat.company_projects_id = cw.company_projects_id
|
|
||||||
JOIN users u ON u.user_name = cw.name_workstations
|
|
||||||
WHERE u.email = :email3
|
|
||||||
) THEN cew.id_workstations
|
|
||||||
ELSE NULL
|
|
||||||
END AS control_id_workstations,
|
|
||||||
COALESCE(cew.elemental_tasks_id, cew.further_tasks_id) AS control_workstation_all_tasks,
|
|
||||||
cew.equipment_comments_id,
|
|
||||||
cew.entry_date,
|
|
||||||
cew.departure_date
|
|
||||||
FROM
|
|
||||||
control_equipment_workstation cew
|
|
||||||
WHERE
|
|
||||||
cew.id_workstations IS NULL
|
|
||||||
OR cew.id_workstations IN (
|
|
||||||
SELECT wat.id_workstations
|
|
||||||
FROM workstations_association_tasks wat
|
|
||||||
JOIN construction_workstations cw ON wat.company_projects_id = cw.company_projects_id
|
|
||||||
JOIN users u ON u.user_name = cw.name_workstations
|
|
||||||
WHERE u.email = :email4
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
SELECT
|
|
||||||
emr.equipment_id,
|
|
||||||
emr.equipment_tag
|
|
||||||
FROM
|
|
||||||
equipments_multiple_rows emr
|
|
||||||
WHERE
|
|
||||||
(
|
|
||||||
emr.equipment_all_tasks IN (SELECT all_tasks FROM workstations_multiple_rows)
|
|
||||||
AND NOT EXISTS (
|
|
||||||
SELECT 1
|
|
||||||
FROM workstations_control_all_tasks wc
|
|
||||||
WHERE wc.equipment_id = emr.equipment_id
|
|
||||||
AND wc.control_id_workstations IN (SELECT id_workstations FROM workstations_multiple_rows)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
OR
|
|
||||||
(
|
|
||||||
emr.equipment_id IN (
|
|
||||||
SELECT equipment_id
|
|
||||||
FROM workstations_control_all_tasks
|
|
||||||
WHERE control_id_workstations IS NULL
|
|
||||||
AND entry_date IS NULL
|
|
||||||
AND departure_date IS NULL
|
|
||||||
AND control_workstation_all_tasks IN (SELECT all_tasks FROM workstations_multiple_rows)
|
|
||||||
)
|
|
||||||
AND NOT EXISTS (
|
|
||||||
SELECT 1
|
|
||||||
FROM workstations_control_all_tasks wc
|
|
||||||
WHERE wc.equipment_id = emr.equipment_id
|
|
||||||
AND wc.control_id_workstations IS NOT NULL
|
|
||||||
GROUP BY wc.equipment_id
|
|
||||||
HAVING COUNT(DISTINCT wc.control_id_workstations) > 20
|
|
||||||
)
|
|
||||||
)
|
|
||||||
GROUP BY
|
|
||||||
emr.equipment_id,
|
|
||||||
emr.equipment_tag
|
|
||||||
ORDER BY
|
|
||||||
emr.equipment_id ASC;
|
|
||||||
", [
|
|
||||||
'email1' => $userEmail,
|
|
||||||
'email2' => $userEmail,
|
|
||||||
'email3' => $userEmail,
|
|
||||||
'email4' => $userEmail
|
|
||||||
]);
|
|
||||||
|
|
||||||
|
|
||||||
$equipmentsReturned = DB::select("
|
|
||||||
WITH equipments_multiple_rows AS (
|
|
||||||
SELECT
|
|
||||||
e.equipment_id,
|
|
||||||
e.equipment_tag,
|
|
||||||
COALESCE(MAX(oet.elemental_tasks_id), MAX(oet.further_tasks_id)) AS equipment_all_tasks
|
|
||||||
FROM
|
|
||||||
users u
|
|
||||||
JOIN
|
|
||||||
construction_workstations cw ON u.user_name = cw.name_workstations
|
|
||||||
JOIN
|
|
||||||
workstations_association_tasks wat ON cw.id_workstations = wat.id_workstations
|
|
||||||
JOIN
|
|
||||||
equipments e ON wat.company_projects_id = e.company_projects_id
|
|
||||||
JOIN
|
|
||||||
ordered_equipment_tasks oet ON e.equipment_id = oet.equipment_id
|
|
||||||
WHERE
|
|
||||||
u.email = :email1
|
|
||||||
AND
|
|
||||||
oet.execution_order = 1
|
|
||||||
GROUP BY
|
|
||||||
e.equipment_id,
|
|
||||||
e.equipment_tag
|
|
||||||
),
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
workstations_multiple_rows AS (
|
|
||||||
SELECT
|
|
||||||
cw.id_workstations,
|
|
||||||
cw.name_workstations,
|
|
||||||
COALESCE(wat.elemental_tasks_id, wat.further_tasks_id) AS all_tasks
|
|
||||||
FROM
|
|
||||||
users u
|
|
||||||
JOIN
|
|
||||||
construction_workstations cw ON u.user_name = cw.name_workstations
|
|
||||||
JOIN
|
|
||||||
workstations_association_tasks wat ON cw.id_workstations = wat.id_workstations
|
|
||||||
WHERE
|
|
||||||
u.email = :email2
|
|
||||||
),
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
workstations_control_all_tasks AS (
|
|
||||||
SELECT
|
|
||||||
cew.control_equipment_workstation_id,
|
|
||||||
cew.equipment_id,
|
|
||||||
CASE
|
|
||||||
WHEN cew.id_workstations IS NULL THEN NULL
|
|
||||||
WHEN cew.id_workstations IN (
|
|
||||||
SELECT wat.id_workstations
|
|
||||||
FROM workstations_association_tasks wat
|
|
||||||
JOIN construction_workstations cw ON wat.company_projects_id = cw.company_projects_id
|
|
||||||
JOIN users u ON u.user_name = cw.name_workstations
|
|
||||||
WHERE u.email = :email3
|
|
||||||
) THEN cew.id_workstations
|
|
||||||
ELSE NULL
|
|
||||||
END AS control_id_workstations,
|
|
||||||
COALESCE(cew.elemental_tasks_id, cew.further_tasks_id) AS control_workstation_all_tasks,
|
|
||||||
cew.equipment_comments_id,
|
|
||||||
cew.entry_date,
|
|
||||||
cew.departure_date
|
|
||||||
FROM
|
|
||||||
control_equipment_workstation cew
|
|
||||||
WHERE
|
|
||||||
cew.id_workstations IS NULL
|
|
||||||
OR cew.id_workstations IN (
|
|
||||||
SELECT wat.id_workstations
|
|
||||||
FROM workstations_association_tasks wat
|
|
||||||
JOIN construction_workstations cw ON wat.company_projects_id = cw.company_projects_id
|
|
||||||
JOIN users u ON u.user_name = cw.name_workstations
|
|
||||||
WHERE u.email = :email4
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
SELECT
|
|
||||||
emr.equipment_id,
|
|
||||||
emr.equipment_tag
|
|
||||||
FROM
|
|
||||||
equipments_multiple_rows emr
|
|
||||||
WHERE
|
|
||||||
emr.equipment_id IN (
|
|
||||||
SELECT equipment_id
|
|
||||||
FROM workstations_control_all_tasks
|
|
||||||
WHERE control_id_workstations IS NULL
|
|
||||||
AND entry_date IS NULL
|
|
||||||
AND departure_date IS NULL
|
|
||||||
AND control_workstation_all_tasks IN (SELECT all_tasks FROM workstations_multiple_rows)
|
|
||||||
AND EXISTS (
|
|
||||||
SELECT 1
|
|
||||||
FROM workstations_control_all_tasks wc
|
|
||||||
WHERE wc.equipment_id = emr.equipment_id
|
|
||||||
AND wc.control_id_workstations IS NOT NULL
|
|
||||||
GROUP BY wc.equipment_id
|
|
||||||
HAVING COUNT(DISTINCT wc.control_id_workstations) >= 20
|
|
||||||
|
|
||||||
)
|
|
||||||
)
|
|
||||||
GROUP BY
|
|
||||||
emr.equipment_id,
|
|
||||||
emr.equipment_tag
|
|
||||||
ORDER BY
|
|
||||||
emr.equipment_id ASC;
|
|
||||||
|
|
||||||
", [
|
|
||||||
|
|
||||||
'email1' => $userEmail,
|
|
||||||
'email2' => $userEmail,
|
|
||||||
'email3' => $userEmail,
|
|
||||||
'email4' => $userEmail
|
|
||||||
|
|
||||||
]);
|
|
||||||
|
|
||||||
|
|
||||||
$equipmentsDone = DB::select("
|
|
||||||
WITH equipments_multiple_rows AS (
|
|
||||||
SELECT
|
|
||||||
e.equipment_id,
|
|
||||||
e.equipment_tag,
|
|
||||||
COALESCE(MAX(oet.elemental_tasks_id), MAX(oet.further_tasks_id)) AS equipment_all_tasks
|
|
||||||
FROM
|
|
||||||
users u
|
|
||||||
JOIN
|
|
||||||
construction_workstations cw ON u.user_name = cw.name_workstations
|
|
||||||
JOIN
|
|
||||||
workstations_association_tasks wat ON cw.id_workstations = wat.id_workstations
|
|
||||||
JOIN
|
|
||||||
equipments e ON wat.company_projects_id = e.company_projects_id
|
|
||||||
JOIN
|
|
||||||
ordered_equipment_tasks oet ON e.equipment_id = oet.equipment_id
|
|
||||||
WHERE
|
|
||||||
u.email = :email1
|
|
||||||
AND
|
|
||||||
oet.execution_order = 1
|
|
||||||
GROUP BY
|
|
||||||
e.equipment_id,
|
|
||||||
e.equipment_tag
|
|
||||||
),
|
|
||||||
|
|
||||||
workstations_multiple_rows AS (
|
|
||||||
SELECT
|
|
||||||
cw.id_workstations,
|
|
||||||
cw.name_workstations,
|
|
||||||
COALESCE(wat.elemental_tasks_id, wat.further_tasks_id) AS all_tasks
|
|
||||||
FROM
|
|
||||||
users u
|
|
||||||
JOIN
|
|
||||||
construction_workstations cw ON u.user_name = cw.name_workstations
|
|
||||||
JOIN
|
|
||||||
workstations_association_tasks wat ON cw.id_workstations = wat.id_workstations
|
|
||||||
WHERE
|
|
||||||
u.email = :email2
|
|
||||||
),
|
|
||||||
|
|
||||||
workstations_control_all_tasks AS (
|
|
||||||
SELECT
|
|
||||||
cew.control_equipment_workstation_id,
|
|
||||||
cew.equipment_id,
|
|
||||||
CASE
|
|
||||||
WHEN cew.id_workstations IS NULL THEN NULL
|
|
||||||
WHEN cew.id_workstations IN (
|
|
||||||
SELECT wat.id_workstations
|
|
||||||
FROM workstations_association_tasks wat
|
|
||||||
JOIN construction_workstations cw ON wat.company_projects_id = cw.company_projects_id
|
|
||||||
JOIN users u ON u.user_name = cw.name_workstations
|
|
||||||
WHERE u.email = :email3
|
|
||||||
) THEN cew.id_workstations
|
|
||||||
ELSE NULL
|
|
||||||
END AS control_id_workstations,
|
|
||||||
COALESCE(cew.elemental_tasks_id, cew.further_tasks_id) AS control_workstation_all_tasks,
|
|
||||||
cew.equipment_comments_id,
|
|
||||||
cew.entry_date,
|
|
||||||
cew.departure_date
|
|
||||||
FROM
|
|
||||||
control_equipment_workstation cew
|
|
||||||
WHERE
|
|
||||||
cew.id_workstations IS NULL
|
|
||||||
OR cew.id_workstations IN (
|
|
||||||
SELECT wat.id_workstations
|
|
||||||
FROM workstations_association_tasks wat
|
|
||||||
JOIN construction_workstations cw ON wat.company_projects_id = cw.company_projects_id
|
|
||||||
JOIN users u ON u.user_name = cw.name_workstations
|
|
||||||
WHERE u.email = :email4
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
SELECT
|
|
||||||
emr.equipment_id,
|
|
||||||
emr.equipment_tag
|
|
||||||
FROM
|
|
||||||
equipments_multiple_rows emr
|
|
||||||
WHERE
|
|
||||||
EXISTS (
|
|
||||||
SELECT 1
|
|
||||||
FROM workstations_control_all_tasks wc
|
|
||||||
JOIN workstations_multiple_rows wmr ON wc.control_id_workstations = wmr.id_workstations
|
|
||||||
WHERE wc.equipment_id = emr.equipment_id
|
|
||||||
AND wc.control_workstation_all_tasks = wmr.all_tasks
|
|
||||||
AND wc.entry_date IS NOT NULL
|
|
||||||
AND wc.departure_date IS NOT NULL
|
|
||||||
AND wc.control_id_workstations IS NOT NULL
|
|
||||||
)
|
|
||||||
AND NOT EXISTS (
|
|
||||||
SELECT 1
|
|
||||||
FROM workstations_control_all_tasks wc
|
|
||||||
WHERE wc.equipment_id = emr.equipment_id
|
|
||||||
AND wc.control_workstation_all_tasks IN (SELECT all_tasks FROM workstations_multiple_rows)
|
|
||||||
AND wc.control_id_workstations IS NULL
|
|
||||||
)
|
|
||||||
GROUP BY
|
|
||||||
emr.equipment_id,
|
|
||||||
emr.equipment_tag
|
|
||||||
ORDER BY
|
|
||||||
emr.equipment_id ASC;
|
|
||||||
", [
|
|
||||||
'email1' => $userEmail,
|
|
||||||
'email2' => $userEmail,
|
|
||||||
'email3' => $userEmail,
|
|
||||||
'email4' => $userEmail
|
|
||||||
]);
|
|
||||||
|
|
||||||
$workstationNameQuery = DB::select("
|
|
||||||
SELECT construction_workstations.nomenclature_workstation
|
|
||||||
FROM construction_workstations
|
|
||||||
JOIN users
|
|
||||||
WHERE construction_workstations.name_workstations = users.user_name
|
|
||||||
AND users.email = :email;
|
|
||||||
", ['email' => $userEmail]);
|
|
||||||
|
|
||||||
$workstationName = $workstationNameQuery[0]->nomenclature_workstation;
|
|
||||||
|
|
||||||
|
|
||||||
//Counting of equipments
|
|
||||||
$equipmentsTodoCount = count($equipmentsTodo);
|
|
||||||
$equipmentsDoneCount = count($equipmentsDone);
|
|
||||||
$equipmentsReturnedCount = count($equipmentsReturned);
|
|
||||||
|
|
||||||
|
$receiceCountAllEquipmentOfProject = count($receiveAllEquipmentOfProject);
|
||||||
|
|
||||||
//Returning values of the queries to workstations layout
|
//Returning values of the queries to workstations layout
|
||||||
$view->with([
|
$view->with([
|
||||||
'equipmentsTodo' => $equipmentsTodo,
|
'receiveAllEquipmentOfProject' => $receiveAllEquipmentOfProject,
|
||||||
'equipmentsTodoCount' => $equipmentsTodoCount,
|
'receiceCountAllEquipmentOfProject' => $receiceCountAllEquipmentOfProject,
|
||||||
'equipmentsDone' => $equipmentsDone,
|
'receiveDataWs' => $receiveDataWs,
|
||||||
'equipmentsDoneCount' => $equipmentsDoneCount,
|
|
||||||
'equipmentsReturned' => $equipmentsReturned,
|
|
||||||
'equipmentsReturnedCount' => $equipmentsReturnedCount,
|
|
||||||
'workstationName' => $workstationName
|
|
||||||
]);
|
]);
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -22,6 +22,10 @@ public function equipment()
|
||||||
return $this->belongsTo(Equipment::class, 'equipment_id', 'equipment_id');
|
return $this->belongsTo(Equipment::class, 'equipment_id', 'equipment_id');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function equipmentWorkHistory(){
|
||||||
|
return $this->belongsTo(EquipmentWorkHistory::class,'equipmentWorkHistorys_id','equipmentWorkHistorys_id');
|
||||||
|
}
|
||||||
|
|
||||||
public function elementalTask()
|
public function elementalTask()
|
||||||
{
|
{
|
||||||
return $this->belongsTo(ElementalTasks::class,'elemental_tasks_id','elemental_tasks_id');
|
return $this->belongsTo(ElementalTasks::class,'elemental_tasks_id','elemental_tasks_id');
|
||||||
|
|
@ -33,4 +37,5 @@ public function furtherTasks()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -67,9 +67,6 @@ public function hasInspectionYes()
|
||||||
return $this->orderEquipmentTasks()->where('inspection', 'Sim')->exists();
|
return $this->orderEquipmentTasks()->where('inspection', 'Sim')->exists();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public function EquipmentWorkHistory(){
|
public function EquipmentWorkHistory(){
|
||||||
return $this->hasMany(EquipmentWorkHistory::class, 'equipment_id','equipment_id');
|
return $this->hasMany(EquipmentWorkHistory::class, 'equipment_id','equipment_id');
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -23,4 +23,10 @@ public function companyProject()
|
||||||
{
|
{
|
||||||
return $this->belongsTo(Equipment::class, 'company_projects_id', 'company_projects_id');
|
return $this->belongsTo(Equipment::class, 'company_projects_id', 'company_projects_id');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function controlEquipmentWorkstation()
|
||||||
|
{
|
||||||
|
return $this->hasMany(ControlEquipmentWorkstation::class, 'equipmentWorkHistorys_id', 'equipmentWorkHistorys_id');
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -59,19 +59,13 @@
|
||||||
<li class="nav-item">
|
<li class="nav-item">
|
||||||
<a class="nav-link">
|
<a class="nav-link">
|
||||||
<i class="fas fa-play" style="color:#1f2d3d"></i>
|
<i class="fas fa-play" style="color:#1f2d3d"></i>
|
||||||
<span class="badge badge-info navbar-badge">{{ $equipmentsTodoCount }}</span>
|
<span class="badge badge-info navbar-badge">{{ $receiceCountAllEquipmentOfProject }}</span>
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
<li class="nav-item">
|
|
||||||
<a class="nav-link">
|
|
||||||
<i class="fas fa-undo" style="color:#1f2d3d"></i>
|
|
||||||
<span class="badge badge-warning navbar-badge">{{ $equipmentsReturnedCount }}</span>
|
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
<li class="nav-item">
|
<li class="nav-item">
|
||||||
<a class="nav-link">
|
<a class="nav-link">
|
||||||
<i class="fas fa-check" style="color:#1f2d3d"></i>
|
<i class="fas fa-check" style="color:#1f2d3d"></i>
|
||||||
<span class="badge badge-success navbar-badge">{{ $equipmentsDoneCount }}</span>
|
{{-- <span class="badge badge-success navbar-badge">{{ $equipmentsDoneCount }}</span> --}}
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
@ -79,7 +73,7 @@
|
||||||
<ul class="navbar-nav ml-auto">
|
<ul class="navbar-nav ml-auto">
|
||||||
<li class="nav-item d-none d-sm-inline-block">
|
<li class="nav-item d-none d-sm-inline-block">
|
||||||
<!--<div class="nav-link">{{ Auth::user()->user_name }}</div>-->
|
<!--<div class="nav-link">{{ Auth::user()->user_name }}</div>-->
|
||||||
<div class="nav-link" style="color:#1f2d3d">{{ $workstationName }}</div>
|
<div class="nav-link" style="color:#1f2d3d">{{ $receiveDataWs->nomenclature_workstation }}</div>
|
||||||
</li>
|
</li>
|
||||||
<!-- User Dropdown Menu -->
|
<!-- User Dropdown Menu -->
|
||||||
<li class="nav-item dropdown">
|
<li class="nav-item dropdown">
|
||||||
|
|
@ -145,39 +139,21 @@ class="brand-image img-circle elevation-3" style="opacity: .8">
|
||||||
<a href="#" class="nav-link text-white" style="background-color: #007BFF;">
|
<a href="#" class="nav-link text-white" style="background-color: #007BFF;">
|
||||||
<i class="nav-icon fas fa-play"></i>
|
<i class="nav-icon fas fa-play"></i>
|
||||||
<p>
|
<p>
|
||||||
{{ $equipmentsTodoCount }} a iniciar
|
{{ $receiceCountAllEquipmentOfProject }}
|
||||||
|
a iniciar
|
||||||
<i class="right fas fa-angle-left"></i>
|
<i class="right fas fa-angle-left"></i>
|
||||||
</p>
|
</p>
|
||||||
</a>
|
</a>
|
||||||
<ul class="nav nav-treeview">
|
<ul class="nav nav-treeview">
|
||||||
{{-- @foreach ($equipmentsTodo as $equipmentTodo)
|
@foreach ($receiveAllEquipmentOfProject as $equipmentOfProject )
|
||||||
<li class="nav-item">
|
<li class="nav-item">
|
||||||
<a href="{{ route('getEquipmentData', $equipmentTodo->equipment_id) }}"
|
<a href="{{ route('getEquipmentData', $equipmentOfProject->equipment_id) }}"
|
||||||
class="nav-link text-white">
|
class="nav-link text-white">
|
||||||
<i class="fas fa-tag nav-icon"></i>
|
<i class="fas fa-tag nav-icon"></i>
|
||||||
<p>{{ $equipmentTodo->equipment_tag }}</p>
|
<p>{{ $equipmentOfProject->equipment_tag }}</p>
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
@endforeach --}}
|
@endforeach
|
||||||
</ul>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
<li class="nav-item menu-closed">
|
|
||||||
<a href="#" class="nav-link text-white" style="background-color: #ba9420;">
|
|
||||||
<i class="nav-icon fas fa-undo"></i>
|
|
||||||
<p>{{ $equipmentsReturnedCount }} retornadas
|
|
||||||
<i class="right fas fa-angle-left"></i>
|
|
||||||
</p>
|
|
||||||
</a>
|
|
||||||
<ul class="nav nav-treeview">
|
|
||||||
{{-- @foreach ($equipmentsReturned as $equipmentReturned)
|
|
||||||
<li class="nav-item">
|
|
||||||
<a href="#" class="nav-link text-white">
|
|
||||||
<i class="fas fa-tag nav-icon"></i>
|
|
||||||
<p>{{ $equipmentReturned->equipment_tag }}</p>
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
@endforeach --}}
|
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
@ -261,19 +237,20 @@ class="nav-link text-white">
|
||||||
<a href="#" class="nav-link text-white" style="background-color: #28a745;">
|
<a href="#" class="nav-link text-white" style="background-color: #28a745;">
|
||||||
<i class="nav-icon fas fa-check"></i>
|
<i class="nav-icon fas fa-check"></i>
|
||||||
<p>
|
<p>
|
||||||
{{ $equipmentsDoneCount }} válvulas concluídas
|
{{-- {{ $equipmentsDoneCount }} --}}
|
||||||
|
válvulas concluídas
|
||||||
<i class="right fas fa-angle-left"></i>
|
<i class="right fas fa-angle-left"></i>
|
||||||
</p>
|
</p>
|
||||||
</a>
|
</a>
|
||||||
<ul class="nav nav-treeview">
|
<ul class="nav nav-treeview">
|
||||||
@foreach ($equipmentsDone as $equipmentDone)
|
{{-- @foreach ($equipmentsDone as $equipmentDone)
|
||||||
<li class="nav-item-right">
|
<li class="nav-item-right">
|
||||||
<a href="#" class="nav-link text-white">
|
<a href="#" class="nav-link text-white">
|
||||||
<i class="fas fa-tag nav-icon"></i>
|
<i class="fas fa-tag nav-icon"></i>
|
||||||
<p>{{ $equipmentDone->equipment_tag }}</p>
|
<p>{{ $equipmentDone->equipment_tag }}</p>
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
@endforeach
|
@endforeach --}}
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
|
||||||
|
|
@ -135,11 +135,6 @@
|
||||||
<label>{{ __('messages.createProject.project_start_date') }} : <b
|
<label>{{ __('messages.createProject.project_start_date') }} : <b
|
||||||
style="color:red">*</b></label>
|
style="color:red">*</b></label>
|
||||||
<div class="input-group">
|
<div class="input-group">
|
||||||
{{-- <div class="input-group-prepend">
|
|
||||||
<span class="input-group-text">
|
|
||||||
<i class="far fa-calendar-alt"></i>
|
|
||||||
</span>
|
|
||||||
</div> --}}
|
|
||||||
<input name="date_started" type="datetime-local"
|
<input name="date_started" type="datetime-local"
|
||||||
class="form-control float-right" required>
|
class="form-control float-right" required>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
|
|
@ -1144,8 +1144,8 @@
|
||||||
<div class="d-flex justify-content-between align-items-center"
|
<div class="d-flex justify-content-between align-items-center"
|
||||||
style="width: 100%;">
|
style="width: 100%;">
|
||||||
{{-- <h3 class="card-title mb-0">TE4 - PSV - Abertura de válvula, análise e controle dos
|
{{-- <h3 class="card-title mb-0">TE4 - PSV - Abertura de válvula, análise e controle dos
|
||||||
componentes
|
componentes
|
||||||
</h3> --}}
|
</h3> --}}
|
||||||
<h3 class="card-title mb-0">
|
<h3 class="card-title mb-0">
|
||||||
{{$task_todo->elemental_tasks_id}} </h3>
|
{{$task_todo->elemental_tasks_id}} </h3>
|
||||||
|
|
||||||
|
|
|
||||||
1749
resources/views/workstations/workstations.blade copy.php
Executable file
1749
resources/views/workstations/workstations.blade copy.php
Executable file
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
|
@ -119,7 +119,7 @@
|
||||||
})->name('enterWorkstation');
|
})->name('enterWorkstation');
|
||||||
|
|
||||||
Route::get('/getEquipmentData/{equipment_id}', [WorkstationsJobsController::class, 'getEquipmentData'])->name('getEquipmentData');
|
Route::get('/getEquipmentData/{equipment_id}', [WorkstationsJobsController::class, 'getEquipmentData'])->name('getEquipmentData');
|
||||||
Route::post('receiveAnswersEquipment', [WorkstationsJobsController::class, 'receiveAnswersEquipment'])->name('receiveAnswersEquipment');
|
Route::post('receiveAnswersEquipment/{control_equipment_workstation_id}', [WorkstationsJobsController::class, 'receiveAnswersEquipment'])->name('receiveAnswersEquipment');
|
||||||
});
|
});
|
||||||
|
|
||||||
Route::middleware(['checkUserType:testClient'])->group(function () {
|
Route::middleware(['checkUserType:testClient'])->group(function () {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user