From 5dca96d473ff309af1cff958c3f56156962b49d4 Mon Sep 17 00:00:00 2001 From: ygbanzato Date: Fri, 8 Dec 2023 20:29:47 +0000 Subject: [PATCH] Updating filter methods in tables with yajra and structure, as well as adding responsiveness to tables --- .../Controllers/CreateProjectController.php | 349 +++-- .../ExecutionProjectController.php | 146 +- .../Controllers/ProjectoDatacontroller.php | 69 +- .../DataManagement/manageassets.blade.php | 302 ++-- .../projectsClients/articulated_2.blade.php | 188 ++- .../views/projectsClients/testRoute.blade.php | 1249 +++++++++++++++++ routes/web.php | 52 +- 7 files changed, 1910 insertions(+), 445 deletions(-) create mode 100644 resources/views/projectsClients/testRoute.blade.php diff --git a/app/Http/Controllers/CreateProjectController.php b/app/Http/Controllers/CreateProjectController.php index 558fe29c..b1c67662 100755 --- a/app/Http/Controllers/CreateProjectController.php +++ b/app/Http/Controllers/CreateProjectController.php @@ -34,10 +34,30 @@ // use DataTables; -class CreateProjectController extends Controller -{ - public function deleteFurtherTasks(Request $request) - { +class CreateProjectController extends Controller { + + public function receiveUnits($numberProject) { + $PlantData = CompanyProject::where('company_projects_id', $numberProject)->first(); + + if(!$PlantData) { + return response()->json([]); + } + + $receiveUnits = Unit::where('plant_id', $PlantData->plant_id)->get(); + + // Formatar a resposta para o formato esperado pelo JavaScript + $formattedUnits = $receiveUnits->map(function ($unit) { + return [ + 'id' => $unit->receiveUnits, // Ajuste para o nome da sua coluna correta + 'name' => $unit->unit_name // Ajuste para o nome da sua coluna correta + ]; + }); + + return response()->json($formattedUnits); + } + + + public function deleteFurtherTasks(Request $request) { $receiveDataEquipment = Equipment::where('equipment_id', $request->equipmentID)->first(); // Buscar os registros que correspondem ao equipmentID e que têm further_tasks_id nos selectedTasks $tasksToDelete = OrderEquipmentTasks::where('equipment_id', $request->equipmentID) @@ -45,12 +65,12 @@ public function deleteFurtherTasks(Request $request) ->get(); // Excluir esses registros - foreach ($tasksToDelete as $task) { + foreach($tasksToDelete as $task) { $task->delete(); } // Se o treatmentFurtherTask for "DeleteFurtherTask", exclua os registros da tabela principal FurtherTasks - if ($request->treatmentFurtherTask == "DeleteFurtherTask") { + if($request->treatmentFurtherTask == "DeleteFurtherTask") { FurtherTasks::whereIn('further_tasks_id', $request->selectedTasks)->delete(); } @@ -60,16 +80,15 @@ public function deleteFurtherTasks(Request $request) ->get(); $executionOrder = 1; - foreach ($remainingTasks as $task) { + foreach($remainingTasks as $task) { $task->execution_order = $executionOrder; $task->save(); $executionOrder++; } - return redirect()->back()->with('success', 'Ordem de execução do equipamento: ' . $receiveDataEquipment->equipment_tag . ' Atulizada!'); + return redirect()->back()->with('success', 'Ordem de execução do equipamento: '.$receiveDataEquipment->equipment_tag.' Atulizada!'); } - public function addFurtherTasks(Request $request) - { + public function addFurtherTasks(Request $request) { // Recebe e organiza os dados do equipameto recebido : ($request->equipmentID) e organiza em asc de acordo com a Ordem de execução $equipmentId = $request->equipmentID; $tasksToReorder = OrderEquipmentTasks::where('equipment_id', $equipmentId) @@ -88,15 +107,15 @@ public function addFurtherTasks(Request $request) $newFurtherTaskId = $elementalTasksCount + $furtherTasksCount + 1; // Calcule o valor de further_tasks_name - $newFurtherTaskName = 'TC' . ($furtherTasksCount + 1); + $newFurtherTaskName = 'TC'.($furtherTasksCount + 1); $insertPosition = $request->ArrayListElementsTasks + 1; // Incrementar a execution_order das tarefas após a posição de inserção - foreach ($tasksToReorder as $task) { - if ($task->execution_order >= $insertPosition) { + foreach($tasksToReorder as $task) { + if($task->execution_order >= $insertPosition) { $task->execution_order += 1; $task->save(); } @@ -109,7 +128,7 @@ public function addFurtherTasks(Request $request) $newOrderEquipmentTask->elemental_tasks_id = null; // Se o selectedFurtherTaskExisting for null quer dizer que e uma TC complementar criada e nova se nao for null quer dizer que vamos criar uma TC existente. - if ($request->selectedFurtherTaskExisting == 'null') { + if($request->selectedFurtherTaskExisting == 'null') { // Cria uma nova tarefa Complementar $newFurtherTask = new FurtherTasks; @@ -127,25 +146,17 @@ public function addFurtherTasks(Request $request) $newOrderEquipmentTask->inspection = 2; $newOrderEquipmentTask->save(); - - - - - - - - return redirect()->back()->with('success', 'Ordem de execução do equipamento: ' . $receiveDataEquipment->equipment_tag . ' Atulizada!'); + return redirect()->back()->with('success', 'Ordem de execução do equipamento: '.$receiveDataEquipment->equipment_tag.' Atulizada!'); } - public function receiveEquipmentToAssociateTasks(Request $request) - { + public function receiveEquipmentToAssociateTasks(Request $request) { // dd($request); - foreach ($request->equipment as $equipment) { + foreach($request->equipment as $equipment) { $equipmentModel = Equipment::where('equipment_id', $equipment['equipment_id'])->first(); - if ($equipmentModel) { + if($equipmentModel) { $equipmentModel->company_projects_id = $request->receiveNumberProject; $equipmentModel->save(); } @@ -153,8 +164,7 @@ public function receiveEquipmentToAssociateTasks(Request $request) return redirect()->back()->with('success', 'Equipametos associados a Obra com Sucesso !'); } - public function receiveUnitsForExcelTemplate($numberProject) - { + public function receiveUnitsForExcelTemplate($numberProject) { $receveCompanyProject = CompanyProject::where('company_projects_id', $numberProject)->first(); $recevePlant = Plant::where('plant_id', $receveCompanyProject->plant_id)->first(); $receveUnits = Unit::where('plant_id', $recevePlant->plant_id)->get(); @@ -164,17 +174,16 @@ public function receiveUnitsForExcelTemplate($numberProject) // Get the second sheet $sheet = $spreadsheet->getSheet(1); // Sheet index starts from 0 $row = 1; // Row number where you want to start inserting data - foreach ($receveUnits as $unit) { + foreach($receveUnits as $unit) { // Set value for column D - $sheet->setCellValue('D' . $row, $unit->unit_name); + $sheet->setCellValue('D'.$row, $unit->unit_name); $row++; } // Generate and return the download response return $this->createDownloadResponse($spreadsheet, 'Valves_Template.xlsx'); } - protected function createDownloadResponse($spreadsheet, $filename) - { + protected function createDownloadResponse($spreadsheet, $filename) { // Create a writer object $writer = new Xlsx($spreadsheet); // Create a StreamedResponse with a callback @@ -185,14 +194,13 @@ function () use ($writer) { ); // Set headers to indicate we're sending an Excel file $response->headers->set('Content-Type', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'); - $response->headers->set('Content-Disposition', 'attachment;filename="' . $filename . '"'); + $response->headers->set('Content-Disposition', 'attachment;filename="'.$filename.'"'); $response->headers->set('Cache-Control', 'max-age=0'); return $response; } - public function finishCreatingProject($numberProject) - { + public function finishCreatingProject($numberProject) { // recebe atraves de sessao toda a vez quem entra no componente 'SelectElementalTasksInWonkstation' para selecionar as tarefas de cada Workstation $receiveAllFurtherTasks = session('receiveAllFurtherTasks'); $receiveElementalTasks = session('receiveElementalTasks'); @@ -205,12 +213,12 @@ public function finishCreatingProject($numberProject) // Recebe todos os dados dos postos de Trabalho $receiveWorkstaions = ConstructionWorkstation::where('company_projects_id', $numberProject)->get(); - foreach ($receiveWorkstaions as $workstation) { + foreach($receiveWorkstaions as $workstation) { // Verifica se o ID da workstation está presente na tabela WorkstationsAssociationTasks $exists = WorkstationsAssociationTasks::where('id_workstations', $workstation->id_workstations)->exists(); // Se não existe na tabela, adiciona à lista das workstations onde nao tem tarefas atribuidas ainda. - if (!$exists) { + if(!$exists) { $missingWorkstations[$workstation->id_workstations] = [ 'name_workstations' => $workstation->name_workstations, 'nomenclature_workstation' => $workstation->nomenclature_workstation @@ -222,22 +230,22 @@ public function finishCreatingProject($numberProject) $workstationIds = $receiveWorkstaions->pluck('id_workstations')->toArray(); // Iterar sobre cada tarefa em $receiveElementalTasks - foreach ($receiveElementalTasks as $taskGroup) { - foreach ($taskGroup as $taskId => $taskDetails) { + foreach($receiveElementalTasks as $taskGroup) { + foreach($taskGroup as $taskId => $taskDetails) { // Verificar se a tarefa está associada a algum id_workstations $exists = WorkstationsAssociationTasks::whereIn('id_workstations', $workstationIds) ->where('elemental_tasks_id', $taskId) ->exists(); // Se não existe, adicionar à lista de tarefas faltantes - if (!$exists) { + if(!$exists) { $missingElementalTasks[$taskId] = $taskDetails; } } } // Iterar sobre cada tarefa em $receiveAllFurtherTasks - foreach ($receiveAllFurtherTasks as $furtherTask) { + foreach($receiveAllFurtherTasks as $furtherTask) { // Obter o ID da tarefa $taskId = $furtherTask->further_tasks_id; @@ -247,7 +255,7 @@ public function finishCreatingProject($numberProject) ->exists(); // Se não existe, adicionar à lista de tarefas faltantes - if (!$exists) { + if(!$exists) { $missingFurtherTasksDetails[$taskId] = [ 'name' => $furtherTask->further_tasks_name, 'description' => $furtherTask->further_tasks_description @@ -264,7 +272,7 @@ public function finishCreatingProject($numberProject) // Verificar se todos os arrays internos estão vazios $isEmpty = empty($allMissingTasks['elemental']) && empty($allMissingTasks['further']) && empty($allMissingTasks['workstation']); - if (!$isEmpty) { + if(!$isEmpty) { return redirect()->back()->with('errors', $allMissingTasks); } else { $project = CompanyProject::find($numberProject); @@ -275,12 +283,11 @@ public function finishCreatingProject($numberProject) } } - public function deleteWorkstation($name) - { + public function deleteWorkstation($name) { $workstation = ConstructionWorkstation::where('name_workstations', $name)->first(); $removeAcountUserWorkstation = User::where('user_name', $workstation->name_workstations)->first(); - if ($workstation && $removeAcountUserWorkstation) { + if($workstation && $removeAcountUserWorkstation) { $workstation->delete(); $removeAcountUserWorkstation->delete(); @@ -298,19 +305,19 @@ public function deleteWorkstation($name) ->orderByRaw("CAST(SUBSTRING(SUBSTRING_INDEX(name_workstations, '-', 1), 12) AS UNSIGNED) DESC") ->get(); - foreach ($workstationsToUpdate as $workstationToUpdate) { + foreach($workstationsToUpdate as $workstationToUpdate) { // pegar o número da estação de trabalho atual preg_match('/workstation(\d+)-/', $workstationToUpdate->name_workstations, $matches); $currentWorkstationNumber = $matches[1]; // atualizar nome da estação de trabalho - $workstationToUpdate->name_workstations = 'workstation' . ($currentWorkstationNumber - 1) . '-' . $projectNumber; + $workstationToUpdate->name_workstations = 'workstation'.($currentWorkstationNumber - 1).'-'.$projectNumber; $workstationToUpdate->save(); // atualizar Utilizador associado - $userToUpdate = User::where('user_name', 'workstation' . $currentWorkstationNumber . '-' . $projectNumber)->first(); - if ($userToUpdate) { - $userToUpdate->user_name = 'workstation' . ($currentWorkstationNumber - 1) . '-' . $projectNumber; + $userToUpdate = User::where('user_name', 'workstation'.$currentWorkstationNumber.'-'.$projectNumber)->first(); + if($userToUpdate) { + $userToUpdate->user_name = 'workstation'.($currentWorkstationNumber - 1).'-'.$projectNumber; $userToUpdate->save(); } } @@ -320,12 +327,11 @@ public function deleteWorkstation($name) return back()->with('danger', 'Posto de Trabalho não encontrado!'); } - public function removeProjectEquipment(Request $request) - { + public function removeProjectEquipment(Request $request) { $equipment = Equipment::find($request->EquipmentID); - if ($request->removalType == 'total') { + if($request->removalType == 'total') { $equipment->delete(); return back()->with('success', 'Equipamento Excluido com sucesso!'); @@ -335,8 +341,7 @@ public function removeProjectEquipment(Request $request) return back()->with('success', 'Equipamento retirado da obra !'); } - public function EditEquipmentsProjects(Request $request) - { + public function EditEquipmentsProjects(Request $request) { // dd($request); // Localiza o equipment pelo numberProject $equipment = Equipment::find($request->equipmentId); @@ -350,22 +355,22 @@ public function EditEquipmentsProjects(Request $request) $equipment->save(); - if ($request->input('attributes')) { - foreach ($request->input('attributes') as $key => $value) { + if($request->input('attributes')) { + foreach($request->input('attributes') as $key => $value) { // Verifica se o valor é null e a chave é um número (correspondendo aos general_attributes_equipment_id) - if ($value == null && is_numeric($key)) { + if($value == null && is_numeric($key)) { // Procura o registro relevante em SpecificAttributesEquipmentType $specificAttributes = SpecificAttributesEquipmentType::where('equipment_id', $request->equipmentId) ->where('general_attributes_equipment_id', $key) ->first(); // Se o registro existir, o deleta - if ($specificAttributes) { + if($specificAttributes) { $specificAttributes->delete(); } } // Se o valor não for null, atualiza ou cria um novo registro - elseif ($value !== null && is_numeric($key)) { + elseif($value !== null && is_numeric($key)) { // Procura o registro relevante em SpecificAttributesEquipmentType $specificAttributes = SpecificAttributesEquipmentType::where('equipment_id', $request->equipmentId) @@ -373,7 +378,7 @@ public function EditEquipmentsProjects(Request $request) ->first(); // Se o registro existir, atualiza o valor - if ($specificAttributes) { + if($specificAttributes) { $specificAttributes->specific_attributes_value = $value; $specificAttributes->save(); } @@ -393,18 +398,18 @@ public function EditEquipmentsProjects(Request $request) // Se não selecionar nenhuma tarefas ele devolve um erro , pois e necessario pelo menos uma - if (!in_array('on', $request->input('ordemTasks'))) { - return redirect()->back()->with('danger', 'É necessário selecionar pelo menos uma tarefa, Para o Equipamento : ' . $equipment->equipment_tag); + if(!in_array('on', $request->input('ordemTasks'))) { + return redirect()->back()->with('danger', 'É necessário selecionar pelo menos uma tarefa, Para o Equipamento : '.$equipment->equipment_tag); } $executionOrder = 1; - foreach ($request->input('ordemTasks') as $key => $value) { + foreach($request->input('ordemTasks') as $key => $value) { $orderEquipmentTask = OrderEquipmentTasks::where('equipment_id', $request->equipmentId) ->where('elemental_tasks_id', $key) ->first(); - if ($value == "on") { - if (!$orderEquipmentTask) { + if($value == "on") { + if(!$orderEquipmentTask) { $orderEquipmentTask = new OrderEquipmentTasks(); $orderEquipmentTask->equipment_id = $request->equipmentId; $orderEquipmentTask->elemental_tasks_id = $key; @@ -413,7 +418,7 @@ public function EditEquipmentsProjects(Request $request) $orderEquipmentTask->save(); $executionOrder++; - } elseif ($value == "off" && $orderEquipmentTask) { + } elseif($value == "off" && $orderEquipmentTask) { $orderEquipmentTask->delete(); } } @@ -424,7 +429,7 @@ public function EditEquipmentsProjects(Request $request) ->orderBy('execution_order', 'asc') ->get(); - foreach ($remainingOrderEquipmentTasks as $orderEquipmentTask) { + foreach($remainingOrderEquipmentTasks as $orderEquipmentTask) { $orderEquipmentTask->execution_order = $executionOrder; $orderEquipmentTask->save(); $executionOrder++; @@ -435,18 +440,17 @@ public function EditEquipmentsProjects(Request $request) ->get(); $taskExecutionOrders = []; - foreach ($orderTasks as $task) { + foreach($orderTasks as $task) { $taskExecutionOrders[$task->elemental_tasks_id] = $task->execution_order; } // Retorna uma resposta return redirect()->route('test2', ['id' => $request->numberProject]) - ->with('success', 'Equipamento ' . $equipment->equipment_tag . ' Editado com Sucesso!!!') + ->with('success', 'Equipamento '.$equipment->equipment_tag.' Editado com Sucesso!!!') ->with('taskExecutionOrders', $taskExecutionOrders); } - public function showJson($id) - { + public function showJson($id) { $attributes = SpecificAttributesEquipmentType::where('equipment_id', $id)->get(); $OrdemTasks = OrderEquipmentTasks::where('equipment_id', $id)->get(); $allElementalTasks = ElementalTasks::all(); @@ -458,8 +462,7 @@ public function showJson($id) ]); } - public function receveTasksWorkstationPlanning($WorkstationId) - { + public function receveTasksWorkstationPlanning($WorkstationId) { $workstationsAssociationTasks = WorkstationsAssociationTasks::where('id_workstations', $WorkstationId)->get(); return response()->json([ @@ -468,8 +471,7 @@ public function receveTasksWorkstationPlanning($WorkstationId) } - public function createWorkStations(Request $request) - { + public function createWorkStations(Request $request) { // Pega o número de estações de trabalho do request $numberWorkstations = $request->numberWorkstations; @@ -485,15 +487,15 @@ public function createWorkStations(Request $request) // Se houver uma estação de trabalho anterior, extrai o número dela $startNumber = 1; - if ($lastWorkstation) { + if($lastWorkstation) { $parts = explode('-', $lastWorkstation->name_workstations); $startNumber = intval(str_replace('workstation', '', $parts[0])) + 1; } // Loop para criar as estações de trabalho e seus logins - for ($i = $startNumber; $i < $startNumber + $numberWorkstations; $i++) { + for($i = $startNumber; $i < $startNumber + $numberWorkstations; $i++) { $workstation = new ConstructionWorkstation(); - $workstation->name_workstations = 'workstation' . $i . '-' . $numberProject; + $workstation->name_workstations = 'workstation'.$i.'-'.$numberProject; $workstation->company_projects_id = $numberProject; $workstation->save(); @@ -503,32 +505,30 @@ public function createWorkStations(Request $request) //Apos criar a Workstation vamos criar um login para pode aceder os postos de trabalho na obra $loginWorkStation = new User; $loginWorkStation->user_name = $workstation->name_workstations; - $loginWorkStation->email = $receveProjectCompanyNumber->project_company_number . '-' . $receiveNumberWorkstation . '@isptgroup.com'; - $loginWorkStation->password = bcrypt($receveProjectCompanyNumber->project_company_number . '-' . $receiveNumberWorkstation); + $loginWorkStation->email = $receveProjectCompanyNumber->project_company_number.'-'.$receiveNumberWorkstation.'@isptgroup.com'; + $loginWorkStation->password = bcrypt($receveProjectCompanyNumber->project_company_number.'-'.$receiveNumberWorkstation); $loginWorkStation->type_users = 5; - $loginWorkStation->user_nif = $receveProjectCompanyNumber->project_company_number . '-' . $receiveNumberWorkstation; + $loginWorkStation->user_nif = $receveProjectCompanyNumber->project_company_number.'-'.$receiveNumberWorkstation; $loginWorkStation->save(); } // Redireciona para onde você quiser após a criação das workstations return redirect()->route('test3', ['id' => $request->numberProject]) - ->with('success', $numberWorkstations . ' Postos de Trabalho criados !!!') + ->with('success', $numberWorkstations.' Postos de Trabalho criados !!!') ->with('listWorkstations', $listWorkstations); } // Funcao apenas para retornar os dados necessarios para a view criar uma Obra. - public function createProjectForStep1() - { + public function createProjectForStep1() { $companies = User::where('type_users', 3)->get(); // 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) - { + public function showStep1($company_projects_id) { // $projects = CompanyProject::find($company_projects_id); $projects = CompanyProject::with('user')->find($company_projects_id); @@ -541,19 +541,16 @@ public function showStep1($company_projects_id) } // Se forem alterados dados dos Detalhes da Obra, vai ser alterado - public function EditprocessStep1(Request $request) - { + public function EditprocessStep1(Request $request) { } - public function removePendingEquipment($id) - { + public function removePendingEquipment($id) { $equipment = PendingEquipment::findOrFail($id); $equipment->delete(); return back()->with('success', 'Equipamento pendente removido com sucesso!'); } - public function CreateNewEquipmentFromPendingEquipment(Request $request, $id) - { + public function CreateNewEquipmentFromPendingEquipment(Request $request, $id) { $checkPendingEquipment = PendingEquipment::findOrFail($id); $counter = 2; @@ -561,15 +558,15 @@ public function CreateNewEquipmentFromPendingEquipment(Request $request, $id) $baseDescription = $checkPendingEquipment->pending_equipment_description; // Ciclo para verificar se ja existe um equipamento com o mesmo nome se existir vai criando com o contador iniciado a partir de (2) - while (Equipment::where('equipment_tag', $baseTag . "({$counter})")->orWhere('equipment_description', $baseDescription . "({$counter})")->exists()) { + while(Equipment::where('equipment_tag', $baseTag."({$counter})")->orWhere('equipment_description', $baseDescription."({$counter})")->exists()) { $counter++; } $newEquipment = new Equipment; $newEquipment->unit_id = $checkPendingEquipment->pending_equipment_unit_id; $newEquipment->equipment_type_id = $checkPendingEquipment->pending_equipment_type_id; - $newEquipment->equipment_tag = $baseTag . "({$counter})"; - $newEquipment->equipment_description = $baseDescription . "({$counter})"; + $newEquipment->equipment_tag = $baseTag."({$counter})"; + $newEquipment->equipment_description = $baseDescription."({$counter})"; $newEquipment->equipment_serial_number = $checkPendingEquipment->pending_equipment_serial_number; $newEquipment->equipment_brand = $checkPendingEquipment->pending_equipment_brand; $newEquipment->equipment_model = $checkPendingEquipment->pending_equipment_model; @@ -588,16 +585,15 @@ public function CreateNewEquipmentFromPendingEquipment(Request $request, $id) $checkPendingEquipment->delete(); - return back()->with('success', 'Equipamento ' . $newEquipment->equipment_tag . ' criado com sucesso'); + return back()->with('success', 'Equipamento '.$newEquipment->equipment_tag.' criado com sucesso'); } - public function processStep1(Request $request) - { + public function processStep1(Request $request) { // Validação... $installationId = $request->input('installation_id'); - if ($installationId == 'new_install') { + if($installationId == 'new_install') { // Criar uma nova instalação... $newInstallation = new Plant; @@ -621,7 +617,7 @@ public function processStep1(Request $request) $project->project_company_responsible = $request->input('responsible_project_company'); // Verifica se e igual a nulo , se for usa a data ja existente - if ($request->date_started === null) { + if($request->date_started === null) { $project->date_started = $request->input('date_started_present'); } else $project->date_started = $request->input('date_started'); @@ -641,8 +637,7 @@ public function processStep1(Request $request) ->with('success', 'Detalhes, Projecto criado com sucesso'); } - public function showStep2($company_projects_id) - { + public function showStep2($company_projects_id) { // Verifique se a etapa 1 foi concluída // if (!session('form_data.step1')) { @@ -677,19 +672,24 @@ public function showStep2($company_projects_id) // $listEquipmentsProjects = Equipment::with(['unit', 'equipmentType', 'equipmentAssociationAmbit.ambitsEquipment']) // ->where('company_projects_id', $company_projects_id) // ->get(); - $listEquipmentsProjects = Equipment::with(['unit', 'equipmentType', 'equipmentAssociationAmbit.ambitsEquipment', 'specificAttributes' => function ($query) { - $query->orderBy('specific_attributes_value', 'asc'); - }]) + $listEquipmentsProjects = Equipment::with([ + 'unit', + 'equipmentType', + 'equipmentAssociationAmbit.ambitsEquipment', + 'specificAttributes' => function ($query) { + $query->orderBy('specific_attributes_value', 'asc'); + } + ]) ->where('company_projects_id', $company_projects_id) ->get(); - + // dd($checkUnits); $pendingEquipments = PendingEquipment::where('pending_company_projects_id', $numberProject)->get(); - if (!$pendingEquipments->isEmpty()) { + if(!$pendingEquipments->isEmpty()) { // Retornamos para a view 'step' => 2 indicando conclusao da primeira parte, $numberProject para associacao de equipamentos a esta obra, alem de todos os equipamentos e fabricao ja existente com base na Instalação que se iniciou a obra. return view('projectsClients/articulated_2', ['step' => 2, 'numberProject' => $numberProject]) - ->with('danger', 'Equipamentos Pendentes: ' . count($pendingEquipments)) + ->with('danger', 'Equipamentos Pendentes: '.count($pendingEquipments)) ->with('pendingEquipments', $pendingEquipments) ->with('listEquipmentsProjects', $listEquipmentsProjects) ->with('typeEquipments', $typeEquipments) @@ -705,8 +705,7 @@ public function showStep2($company_projects_id) ->with('receiveNumberProject', $project); } - public function createEquipmentManual(Request $request) - { + public function createEquipmentManual(Request $request) { // EquipmentAmbit // *** Recebe a Instalação(Plant), com base no número da Obra Criada $receivePlant = DB::table('plants') @@ -727,7 +726,7 @@ public function createEquipmentManual(Request $request) 'unit_id' => $request->unit_id ]); - if ($existingEquipment) { + if($existingEquipment) { return redirect()->route('test2', ['id' => $request->numberProject]) ->with('danger', 'Equipamento ja Existe !!') ->with('listEquipmentsProjects', $listEquipmentsProjects); @@ -737,7 +736,7 @@ public function createEquipmentManual(Request $request) $newEquipmentProject = new Equipment; // Se for uma fabrica(Unit) existente - if ($request->new_unit_name == null) { + if($request->new_unit_name == null) { $newEquipmentProject->unit_id = $request->unit_id; } else { @@ -773,8 +772,8 @@ public function createEquipmentManual(Request $request) // Recebe esta associacao, e cria um array para cada 'name'(inputs) igual ao 'general_attributes_equipment_description', contanto que seu valor(input) seja diferente de *NULL, assim o "$receivesAssociationAttributes" recebe o id de acordo com a tabela , o nome de acordo com a tabela e o valor do $request recebido associado ao campo $receivesAssociationAttributes = []; - foreach ($checkAtributs as $description => $id) { - if ($request[$description] !== null) { + foreach($checkAtributs as $description => $id) { + if($request[$description] !== null) { $receivesAssociationAttributes[] = [ 'general_attributes_equipment_id' => $id, 'general_attributes_equipment_description' => $description, @@ -783,7 +782,7 @@ public function createEquipmentManual(Request $request) } } // Para cada um dos Arrays criados acima, vai criar os novos dados na tabela 'SpecificAttributesEquipmentType' - foreach ($receivesAssociationAttributes as $receivesAssociationAttribute) { + foreach($receivesAssociationAttributes as $receivesAssociationAttribute) { $AddAtributsEquipments = new SpecificAttributesEquipmentType; $AddAtributsEquipments->equipment_id = $equipmentID; $AddAtributsEquipments->equipment_type_id = $request->equipmentTypeId; @@ -804,7 +803,7 @@ public function createEquipmentManual(Request $request) //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) { + foreach($TasksAssociationAmbits as $TasksAssociationAmbit) { $JoinsEquipmentsWithTasks = new OrderEquipmentTasks; $JoinsEquipmentsWithTasks->equipment_id = $equipmentID; $JoinsEquipmentsWithTasks->execution_order = $execution_order++; @@ -820,14 +819,12 @@ public function createEquipmentManual(Request $request) ->with('success', 'Equipamento criado com sucesso') ->with('listEquipmentsProjects', $listEquipmentsProjects); } - public function receiveIdEquipment(Equipment $equipment) - { + public function receiveIdEquipment(Equipment $equipment) { // return response()->json($equipment); return view('projectsClients/articulated_2', ['equipment' => $equipment]); } - public function processStep2(Request $request) - { + public function processStep2(Request $request) { // Valide e processe os dados do formulário $file = $request->file('documento'); @@ -835,7 +832,7 @@ public function processStep2(Request $request) $company_projects_id = $request->numberProject; // Certifique-se de que um arquivo foi enviado - if ($file) { + if($file) { // Carregue o arquivo Excel $spreadsheet = IOFactory::load($file->path()); @@ -852,19 +849,19 @@ public function processStep2(Request $request) $countNewEquipment = 0; // Comece a partir da sexta linha - for ($i = 6; $i < count($data); $i++) { + for($i = 6; $i < count($data); $i++) { $dadosLinha = $data[$i]; // Verifica se os 5 primeiros campos essenciais estao preenchidos, um deles não estiver preenchido ele ignora e não cria o equipamento $isEmpty = false; - for ($j = 0; $j < 5; $j++) { - if (empty($dadosLinha[$j])) { + for($j = 0; $j < 5; $j++) { + if(empty($dadosLinha[$j])) { $isEmpty = true; break; } } - if ($isEmpty) { + if($isEmpty) { continue; } @@ -887,7 +884,7 @@ public function processStep2(Request $request) ->where('equipment_tag', $datas['tag']) ->first(); - if ($existingEquipment) { + if($existingEquipment) { // Se o equipamento existir, crie o novo equipamento na tabela pending_equipaments. $pendingEquipament = new PendingEquipment; @@ -930,7 +927,7 @@ public function processStep2(Request $request) $ambit = AmbitsEquipment::where('ambits_description', $datas['ambito'])->first(); - if ($ambit) { + if($ambit) { $ambit_id = $ambit->ambits_id; } @@ -946,7 +943,7 @@ public function processStep2(Request $request) //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) { + foreach($TasksAssociationAmbits as $TasksAssociationAmbit) { $JoinsEquipmentsWithTasks = new OrderEquipmentTasks; $JoinsEquipmentsWithTasks->equipment_id = $receveEquipment_ID; $JoinsEquipmentsWithTasks->execution_order = $execution_order++; @@ -960,9 +957,9 @@ public function processStep2(Request $request) $generalAttributes = GeneralAttributesEquipment::all(); - foreach ($generalAttributes as $generalAttribute) { + foreach($generalAttributes as $generalAttribute) { // Verifica se a chave existe em $datas, comparando com os dados da tabela : GeneralAttributesEquipment assim adicionando todos diferentes de NULL relacionados com o equipamento acabado de cria - if (isset($datas[$generalAttribute->general_attributes_equipment_description])) { + if(isset($datas[$generalAttribute->general_attributes_equipment_description])) { $specificAttribute = new SpecificAttributesEquipmentType; $specificAttribute->equipment_id = $receveEquipment_ID; @@ -979,15 +976,15 @@ public function processStep2(Request $request) $pendingEquipments = PendingEquipment::where('pending_company_projects_id', $request->numberProject)->get(); // $pendingEquipments = session('pendingEquipments'); - if ($countPendingEquipments != 0) { + if($countPendingEquipments != 0) { // return redirect()->route('test2')->with('Danger', 'Equipamentos Pendentes')->with('listValves', $listValves)->with('pendingEquipments', $pendingEquipments); return redirect()->route('test2', ['id' => $request->numberProject]) - ->with('danger', 'Equipamentos Pendentes criados : ' . $countPendingEquipments) + ->with('danger', 'Equipamentos Pendentes criados : '.$countPendingEquipments) ->with('pendingEquipments', $pendingEquipments); // ->with('success', 'Equipamentos Criados :' . count($listValves)) } return redirect()->route('test2', ['id' => $request->numberProject]) - ->with('success', 'Equipamentos Criados :' . $countNewEquipment); + ->with('success', 'Equipamentos Criados :'.$countNewEquipment); } //Nao chega aqui ainda pois volta para a pagina com dados ja carregados. @@ -998,34 +995,33 @@ public function processStep2(Request $request) return redirect('/test3'); } - public function showStep3($company_projects_id) - { + public function showStep3($company_projects_id) { $equipments = Equipment::where('company_projects_id', $company_projects_id) ->get(); - foreach ($equipments as $equipment) { + foreach($equipments as $equipment) { $tags = []; - if ($equipment->equipment_type_id == 3) { + if($equipment->equipment_type_id == 3) { $tags = ['@Corpo', '@Flange', '@Obturador']; - } elseif ($equipment->equipment_type_id == 1) { + } elseif($equipment->equipment_type_id == 1) { $tags = ['@Corpo', '@Flange']; } - foreach ($tags as $tag) { + foreach($tags as $tag) { $associatedEquipment = QrcodesAssociatedEquipment::where('equipment_id', $equipment->equipment_id) - ->where('component_tag', 'LIKE', '%' . $tag) + ->where('component_tag', 'LIKE', '%'.$tag) ->first(); - if ($associatedEquipment) { + if($associatedEquipment) { // Atualizar a coluna component_tag para ser igual à equipment_tag, mantendo a parte após o "@" - $newComponentTag = $equipment->equipment_tag . $tag; + $newComponentTag = $equipment->equipment_tag.$tag; $associatedEquipment->component_tag = $newComponentTag; $associatedEquipment->save(); } else { // Criar uma nova entrada QrcodesAssociatedEquipment::create([ 'equipment_id' => $equipment->equipment_id, - 'component_tag' => $equipment->equipment_tag . $tag + 'component_tag' => $equipment->equipment_tag.$tag ]); } } @@ -1035,7 +1031,7 @@ public function showStep3($company_projects_id) $allEquipmentIds = Equipment::where('company_projects_id', $company_projects_id)->pluck('equipment_id')->toArray(); $orphanedEntries = QrcodesAssociatedEquipment::whereNotIn('equipment_id', $allEquipmentIds)->get(); - foreach ($orphanedEntries as $orphanedEntry) { + foreach($orphanedEntries as $orphanedEntry) { $orphanedEntry->delete(); } @@ -1053,14 +1049,13 @@ public function showStep3($company_projects_id) ->with('futherTasks', $futherTasks); } - public function workstationsAssociationTasks(Request $request) - { + public function workstationsAssociationTasks(Request $request) { // dd($request); $workStation = ConstructionWorkstation::where('id_workstations', $request->idWorkStation)->first(); // Trocar o nome se for diferente do recebido - if ($workStation) { + if($workStation) { $workStation->nomenclature_workstation = $request->nameWorkstation; $workStation->save(); } @@ -1068,11 +1063,11 @@ public function workstationsAssociationTasks(Request $request) // Atualizar a lista de tipos de tarefas para incluir os novos grupos $taskTypes = ['generalTasks', '1', '2', '3', 'FurtherTasks']; - foreach ($taskTypes as $groupTasks) { - if (isset($request[$groupTasks])) { // Checar se esse grupo de tarefas existe no request - foreach ($request[$groupTasks] as $taskID => $check) { + foreach($taskTypes as $groupTasks) { + if(isset($request[$groupTasks])) { // Checar se esse grupo de tarefas existe no request + foreach($request[$groupTasks] as $taskID => $check) { - if ($groupTasks == 'FurtherTasks') { + if($groupTasks == 'FurtherTasks') { // Encontra a tarefa existente, se houver, para FurtherTasks $taskAssociation = WorkstationsAssociationTasks::where('id_workstations', $workStation->id_workstations) ->where('further_tasks_id', $taskID) @@ -1086,11 +1081,11 @@ public function workstationsAssociationTasks(Request $request) ->first(); } - if ($check == 'on') { - if (!$taskAssociation) { + if($check == 'on') { + if(!$taskAssociation) { $taskAssociation = new WorkstationsAssociationTasks; $taskAssociation->id_workstations = $workStation->id_workstations; - if ($groupTasks == 'FurtherTasks') { + if($groupTasks == 'FurtherTasks') { $taskAssociation->further_tasks_id = $taskID; // Usando $taskID, que é a key } else { $taskAssociation->elemental_tasks_id = $taskID; // Usando $taskID, que é a key @@ -1098,7 +1093,7 @@ public function workstationsAssociationTasks(Request $request) $taskAssociation->company_projects_id = $workStation->company_projects_id; } $taskAssociation->save(); - } elseif ($check == 'off' && $taskAssociation) { + } elseif($check == 'off' && $taskAssociation) { $taskAssociation->delete(); } } @@ -1107,11 +1102,10 @@ public function workstationsAssociationTasks(Request $request) // Redirecionar de volta com uma mensagem de sucesso - return back()->with('success', 'Posto de trabalho : ' . $workStation->name_workstations . ' atualizado com sucesso!'); + return back()->with('success', 'Posto de trabalho : '.$workStation->name_workstations.' atualizado com sucesso!'); } - public function processStep3(Request $request) - { + public function processStep3(Request $request) { // Valide e processe os dados do formulário // ... session(['form_data.step3' => $request->all()]); @@ -1121,8 +1115,7 @@ public function processStep3(Request $request) // ... } - public function index() - { + public function index() { // $results = DB::table('equipaments') // ->join('specific_attributes_equipament_types', 'equipaments.equipment_ID', '=', 'specific_attributes_equipament_types.tb_equipament_id') // ->join('general_attributes_equipaments', 'specific_attributes_equipament_types.specific_Attributes_Equipment_Type_ID', '=', 'general_attributes_equipaments.general_Attributes_Equipment_ID') @@ -1140,8 +1133,8 @@ public function index() $groupedEquipments = []; - foreach ($results as $result) { - if (!isset($groupedEquipments[$result->tag])) { + foreach($results as $result) { + if(!isset($groupedEquipments[$result->tag])) { $groupedEquipments[$result->tag] = []; } @@ -1153,8 +1146,8 @@ public function index() $equipments = DB::table('equipments')->get(); - foreach ($equipments as $equipment) { - if (isset($groupedEquipments[$equipment->tag])) { + foreach($equipments as $equipment) { + if(isset($groupedEquipments[$equipment->tag])) { $equipment->specific_attributes = $groupedEquipments[$equipment->tag]; } } @@ -1166,20 +1159,18 @@ public function index() } - public function listCompanies() - { + public function listCompanies() { $companies = User::where('type_users', 3)->get(); return view('projectsClients/createProject', ['companies' => $companies]); } - public function createProject(Request $request) - { + public function createProject(Request $request) { // Validação... $installationId = $request->input('installation_id'); - if ($installationId == 'new_install') { + if($installationId == 'new_install') { // Criar uma nova instalação... $newInstallation = new Unit; $newInstallation->installation_name = $request->input('new_company_name'); @@ -1210,9 +1201,8 @@ public function createProject(Request $request) } - public function storeProject(Request $request) - { - if ($request->input('company_id') == 'new') { + public function storeProject(Request $request) { + if($request->input('company_id') == 'new') { $company = new CompanyProject; // Substitua "Company" pelo nome do seu modelo de empresas $company->name = $request->input('new_company_name'); $company->save(); @@ -1225,8 +1215,7 @@ public function storeProject(Request $request) // Agora, você pode usar $company_id ao criar o projeto } - public function getByUserNif(Request $request) - { + public function getByUserNif(Request $request) { // dd(Plant::where('user_id', $request->input('user_id'))->get()); @@ -1236,8 +1225,7 @@ public function getByUserNif(Request $request) return response()->json($installations); } - public function getAmbits($equipmentType) - { + public function getAmbits($equipmentType) { $ambits = DB::table('ambits_equipments') ->select('ambits_equipments.*') @@ -1246,8 +1234,7 @@ public function getAmbits($equipmentType) return response()->json($ambits); } - public function getAttributes($id) - { + public function getAttributes($id) { $equipment = Equipment::with('specificAttributes')->find($id); return response()->json($equipment->specificAttributes); } diff --git a/app/Http/Controllers/ExecutionProjectController.php b/app/Http/Controllers/ExecutionProjectController.php index bfa14949..44bf0296 100755 --- a/app/Http/Controllers/ExecutionProjectController.php +++ b/app/Http/Controllers/ExecutionProjectController.php @@ -9,74 +9,110 @@ use App\Models\Equipment; 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($equipmentID) - { - $dataEquipment =Equipment::find($equipmentID); - - // dd($dataEquipment); - - $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) { + // pode receber um request ou nao, depende de onde for chamado. + $numberProject = $request->get('numberProject'); - $numberProject = $request->get('numberProject'); + $checkUnits = $request->get('checkUnits'); + $tipo_valvulasList = $request->get('tipo_valvulasList'); - // Inicia a consulta - $query = Equipment::with('equipmentType') - ->select(['equipment_id', 'equipment_tag', 'unit_id', 'equipment_type_id']); + $receiveAllClients = $request->get('receiveAllClients'); - // Adiciona a cláusula where se numberProject for fornecido - if ($numberProject) { - $query->where('company_projects_id', $numberProject); - } + $receiveAllPlants = $request->get('receiveAllPlants'); - // Executa a consulta e obtém os resultados - $equipment = $query->get(); + $receiveAllUnits = $request->get('receiveAllUnits'); + + $receiveEquipmentsType = $request->get('receiveEquipmentsType'); + + // Query padrão que todas as dataTables recebem, a partir dele fazemos os filt + $query = Equipment::with('equipmentType', 'unit') + ->select(['equipment_id', 'equipment_tag', 'unit_id', 'equipment_type_id']); + + // Consultas para a Criacao da Obra, Ambas vao ser diferentes, pois na creacao, recebes os equipamentos por obra, porem no portifolio vamos buscar todos. + if ($numberProject) { + $query->where('company_projects_id', $numberProject); + + if ($checkUnits && $checkUnits !== '#') { + $query->where('unit_id', $checkUnits); + } + + if ($tipo_valvulasList && $tipo_valvulasList !== '#') { + $query->where('equipment_type_id', $tipo_valvulasList); + } + } + + //Filtar equipamentos por um cliente especifico. + if ($receiveAllClients && $receiveAllClients !== '#') { + // Filtra os equipamentos cujas unidades estão associadas às plantas do usuário especificado + $query->whereHas('unit.plant', function ($query) use ($receiveAllClients) { + $query->where('user_id', $receiveAllClients); + }); + } + + //Filtar equipamentos por uma instalacao especifica. + if ($receiveAllPlants && $receiveAllPlants !== '#') { + $query->whereHas('unit', function ($query) use ($receiveAllPlants) { + $query->where('plant_id', $receiveAllPlants); + }); + } + + if ($receiveAllUnits && $receiveAllUnits !== '#') { + $query->where('unit_id', $receiveAllUnits); + } + if ($receiveEquipmentsType && $receiveEquipmentsType !== '#') { + $query->where('equipment_type_id', $receiveEquipmentsType); + } + + // Executa a consulta e obtém os resultados + $equipment = $query->get(); + + 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) { + // Verifica se $numberProject não é nulo + if (!is_null($numberProject)) { + // Se não for nulo, usa a rota 'test11' + $actionBtn = ''; + } else { + // Se for nulo, usa a rota 'test22' + $actionBtn = ''; + } + return $actionBtn; + }) + + // ->addColumn('action', function ($equipment) use ($numberProject) { + // // Lógica para a coluna de ação com o link correto + // $actionBtn = ''; + // return $actionBtn; + // }) - // $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 = ''; - 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); + ->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() @@ -119,7 +155,7 @@ 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(); diff --git a/app/Http/Controllers/ProjectoDatacontroller.php b/app/Http/Controllers/ProjectoDatacontroller.php index f320ded9..22996c76 100755 --- a/app/Http/Controllers/ProjectoDatacontroller.php +++ b/app/Http/Controllers/ProjectoDatacontroller.php @@ -3,6 +3,7 @@ namespace App\Http\Controllers; use App\Models\AmbitsEquipment; +use App\Models\Unit; use Illuminate\Http\Request; use Illuminate\Support\Facades\DB; @@ -13,6 +14,9 @@ use App\Models\CompanyProject; use App\Models\User; +use App\Models\OrderEquipmentTasks; +use App\Models\SpecificAttributesEquipmentType; + use App\Models\ConstructionWorkstation; use App\Models\EquipmentType; @@ -20,16 +24,64 @@ class ProjectoDatacontroller extends Controller { - public function receivePlants($clientId) - { - if ($clientId == 'all') { - $allPlants = Plant::all(); - return response()->json($allPlants); - } - dd($clientId); + + public function receiveUnitsManageAssets($receivePlantClientRelated){ + + $UnitsData = Unit::where('plant_id',$receivePlantClientRelated)->get(); + + $formattedData = $UnitsData->map(function ($item) { + return [ + 'id' => $item->unit_id, + 'name'=> $item->unit_name + ]; + }); + + return response()->json($formattedData); + } + + public function receivePlants($receiveAllClients) { + + $PlantData = Plant::where('user_id', $receiveAllClients)->get(); + // Criando um array para armazenar os dados formatados + $formattedData = $PlantData->map(function ($item) { + return [ + 'id' => $item->plant_id, + 'name' => $item->plant_name + ]; + }); + // Retorna os dados em formato JSON + return response()->json($formattedData); } + //Funcao que recebe a Acoes do dataTables das obrar em Planeamento. + 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')); + } + + + //Funcao que recebe a Acoes do dataTables do portifolio. + public function test22($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.testRoute',compact('dataEquipment','OrdemTasks','OrdemTasksIds')); + + } + + public function getEquipmentDetails($receiveListEquipmentId) { $ids = explode(',', $receiveListEquipmentId); @@ -90,7 +142,9 @@ public function ManageAssets() ->join('users', 'plants.user_id', '=', 'users.user_id') ->select('plants.*', 'units.unit_name', 'users.user_name as user_name') ->get(); + $equipments = Equipment::all(); + // $equipaments = DB::table('equipaments') // ->join('factories','equipaments.factory_id', '=', 'factories.factories_id') // ->join('equipament_types', 'equipaments.equipament_type_id', '=' , 'equipament_types.equipament_type_id') @@ -98,6 +152,7 @@ public function ManageAssets() // ->get(); $allEquipmentType = EquipmentType::all(); + $allClients = User::where('type_users', 3)->get(); return view('Admin/DataManagement/manageassets', compact('units', 'equipments', 'allEquipmentType', 'allClients')); diff --git a/resources/views/Admin/DataManagement/manageassets.blade.php b/resources/views/Admin/DataManagement/manageassets.blade.php index b72a12c4..658517b2 100755 --- a/resources/views/Admin/DataManagement/manageassets.blade.php +++ b/resources/views/Admin/DataManagement/manageassets.blade.php @@ -17,7 +17,6 @@ - @@ -41,185 +40,204 @@ class="btn btn-block bg-gradient-primary btn-lg">{{ __('messages.portfolio.chang
+

{{ __('messages.portfolio.change_buttons.asset_table') }}

- - - - - - - - - - -
IDTagFabricaTipoAções
+
+
+ + +
- +
+
+ + +
+
+ +
+ + +
+
+ + + + + + + + + + + +
IDTagFabricaTipoAções
+
{{-- ./cardAssetsTable --}} - - {{--
- -
--}} - + {{-- ./col-md-12 --}} + {{-- ./justify-content-center --}} + {{-- ./content --}} @endsection @section('scriptsTemplateAdmin') - - {{-- --}} - - {{-- Script para DataTables Yajra --}} - {{-- --}} + $('#receivePlantClientRelated').on('change', function() { + var receivePlantClientRelated = $(this).val(); + if (receivePlantClientRelated && receivePlantClientRelated !== '#') { + $('#card-receiveUnitsClientRelated').show(); // Mostra o card de Unidades - {{-- --}} - - {{-- --}} + @endsection diff --git a/resources/views/projectsClients/articulated_2.blade.php b/resources/views/projectsClients/articulated_2.blade.php index dcf1099b..5260da4a 100755 --- a/resources/views/projectsClients/articulated_2.blade.php +++ b/resources/views/projectsClients/articulated_2.blade.php @@ -1182,6 +1182,40 @@ class="btn btn-info">Baixar Template + +
+ +
+
+ + + + +
+
+ +
+ + +
+ +
+ + @@ -1194,46 +1228,6 @@ class="btn btn-info">Baixar Template
- @@ -1425,6 +1419,120 @@ class="btn btn-primary float-right">Seguinte @endforeach @endif + + + + {{-- --}} + + + {{-- Nao vai precisar de scritp, pois este filtro nao vai precisar ser altera. --}} + {{-- --}} + +