diff --git a/.env b/.env index 7b1c55aa..9f849a3c 100755 --- a/.env +++ b/.env @@ -18,7 +18,7 @@ DB_PORT=3306 # Alteracoes para funcionar com o servidor, porem não funciona na firma DB_HOST=ispt-innovation.com -DB_DATABASE=ispt40_version01 +DB_DATABASE=ispt40_version01_BK DB_USERNAME=ispt40 DB_PASSWORD=qu3ro3ntr@r diff --git a/app/Console/Kernel.php b/app/Console/Kernel.php index 04cbce7b..2e37f3ae 100755 --- a/app/Console/Kernel.php +++ b/app/Console/Kernel.php @@ -12,10 +12,10 @@ class Kernel extends ConsoleKernel */ protected function schedule(Schedule $schedule): void { - //Para atualizar a fObra para execussao quando chegar na hora estipulada. + //Para atualizar a Obra para execussao quando chegar na hora estipulada. $schedule->call(function () { \App\Models\CompanyProject::where('order_project', 2) - ->where('date_started', '<=', now()) + ->where('date_started', '>=', now()) ->update(['order_project' => 3]); })->everyMinute(); // Ou ajuste para a frequência desejada diff --git a/app/Http/Controllers/ClientController.php b/app/Http/Controllers/ClientController.php index 30eb1b15..902c6db6 100644 --- a/app/Http/Controllers/ClientController.php +++ b/app/Http/Controllers/ClientController.php @@ -327,7 +327,7 @@ public function getDataProjectsClient(Request $request) $query = CompanyProject::with('plant') // Assegure-se de que a relação está correta. ->whereIn('plant_id', $allPlantsClient) ->whereNotNull('end_date') - ->select(['company_projects_id', 'plant_id', 'project_company_number', 'company_project_description', 'project_company_responsible', 'date_started', 'end_date']); + ->select(['company_projects_id', 'plant_id', 'project_company_name', 'company_project_description', 'project_company_responsible', 'date_started', 'end_date']); $dataProjectsClient = $query->get(); diff --git a/app/Http/Controllers/CreateProjectController.php b/app/Http/Controllers/CreateProjectController.php index 3f206f0d..7dc7ab0e 100755 --- a/app/Http/Controllers/CreateProjectController.php +++ b/app/Http/Controllers/CreateProjectController.php @@ -108,7 +108,6 @@ public function changeAmbitEquipment(Request $request) $JoinsEquipmentsWithTasks->equipmentWorkHistorys_id = $receiveEquipmentWorkHistorys->equipmentWorkHistorys_id; $JoinsEquipmentsWithTasks->execution_order = $execution_order++; $JoinsEquipmentsWithTasks->elemental_tasks_id = $TasksAssociationAmbit->elemental_tasks_id; - $JoinsEquipmentsWithTasks->further_tasks_id = null; $JoinsEquipmentsWithTasks->inspection = 2; // ou outro valor conforme necessário $JoinsEquipmentsWithTasks->save(); } @@ -194,7 +193,7 @@ 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 - + //Nao deve ter mais further_tasks_id, pois agora as further tasks devem ficar nas tarefas elementares $detailsEquipmentWorkHistory = EquipmentWorkHistory::where('equipment_id', $request->equipmentID)->first(); $tasksToDelete = OrderEquipmentTasks::where('equipmentWorkHistorys_id', $detailsEquipmentWorkHistory->equipmentWorkHistorys_id) @@ -308,70 +307,6 @@ public function addFurtherTasks(Request $request) return redirect()->back()->with('success', 'Ordem de execução do equipamento: ' . $receiveDataEquipment->equipment_tag . ' Atulizada!'); } - - // public function receiveEquipmentToAssociateTasks(Request $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) { - // $equipmentModel = Equipment::where('equipment_id', $equipment['equipment_id'])->first(); - - // //Atualiza a tabela equipment para associar o equipamento a uma Obra. - // if ($equipmentModel) { - // $equipmentModel->company_projects_id = $request->receiveNumberProject; - // $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 !'); - // } public function receiveEquipmentToAssociateTasks(Request $request) { $receiveIsptNumber = 0; @@ -430,7 +365,7 @@ public function receiveEquipmentToAssociateTasks(Request $request) $JoinsEquipmentsWithTasks->equipmentWorkHistorys_id = $createEquipmentWorkHistory->id; // Note que mudamos para id $JoinsEquipmentsWithTasks->execution_order = $execution_order++; $JoinsEquipmentsWithTasks->elemental_tasks_id = $TasksAssociationAmbit->elemental_tasks_id; - $JoinsEquipmentsWithTasks->further_tasks_id = null; + // $JoinsEquipmentsWithTasks->further_tasks_id = null; $JoinsEquipmentsWithTasks->inspection = 2; $JoinsEquipmentsWithTasks->save(); } @@ -754,10 +689,10 @@ 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_name . '-' . $receiveNumberWorkstation . '@isptgroup.com'; + $loginWorkStation->password = bcrypt($receveProjectCompanyNumber->project_company_name . '-' . $receiveNumberWorkstation); $loginWorkStation->type_users = 5; - $loginWorkStation->user_nif = $receveProjectCompanyNumber->project_company_number . '-' . $receiveNumberWorkstation; + $loginWorkStation->user_nif = $receveProjectCompanyNumber->project_company_name . '-' . $receiveNumberWorkstation; $loginWorkStation->save(); } @@ -793,25 +728,56 @@ public function showStep1($company_projects_id) $projects->plantName = $receiveDetailsPlant->plant_name; $projects->userName = $receiveDetailsCompany->company_name; + $receiveCompanyManager = ''; + $receiveCompanyManagerID = null; // Inicialize com null ou um valor padrão apropriado + + // Se o project_company_responsible for igual a null, significa que ainda não foi definido após a criação da Obra. + // Se foi definido, deve buscar o nome do User atribuído. + if ($projects->project_company_responsible === null) { + $receiveCompanyManager = 'Gestor da empresa ainda não atribuído...'; + } else { + $NameCompanyManager = User::where('user_id', $projects->project_company_responsible)->first(); + // Verifica se um usuário foi encontrado antes de tentar acessar a propriedade user_name. + if ($NameCompanyManager) { + $receiveCompanyManager = $NameCompanyManager->user_name; + $receiveCompanyManagerID = $NameCompanyManager->user_id; + } else { + $receiveCompanyManager = 'Usuário não encontrado'; // Mensagem caso o ID não corresponda a nenhum usuário. + $receiveCompanyManagerID = null; // Assegure-se que há um valor definido mesmo em caso de falha + } + } + $projects->NameCompanyManager = $receiveCompanyManager; + $projects->NameCompanyManagerID = $receiveCompanyManagerID; + + + //deve receber os User disponiveis da Empresa atual da Obra. + $receiveAllCompanyManager = AssociationCompanyUser::where('company_id', $projects->plant->company_id)->get(); + return view('projectsClients/projectDetails_1', ['step' => 1], ['companies' => $companies]) - ->with('projects', $projects); + ->with('projects', $projects) + ->with('receiveAllCompanyManager', $receiveAllCompanyManager); } // Se forem alterados dados dos Detalhes da Obra, vai ser alterado public function EditprocessStep1(Request $request) { // Validação... - $project = CompanyProject::where('company_projects_id', $request->projectId)->first(); $project->company_project_description = $request->input('description_project'); - $project->project_company_number = $request->input('project_company_number'); - $project->project_company_responsible = $request->input('responsible_project_company'); + $project->project_company_name = $request->input('project_company_name'); $project->project_ispt_number = $request->input('n_project_ispt'); $project->project_ispt_responsible = $request->input('responsible_project_ispt'); - //Verifica se exsite uma nova data, se existe atualiza o projecto com a nova, se nao existir usa a antiga - if ($request->date_started <> null) { + // Correção aqui: A verificação de 'undefined' deve ser feita corretamente + if ($request->input('responsible_project_company') === 'undefined') { + $project->project_company_responsible = null; + } else { + $project->project_company_responsible = $request->input('responsible_project_company'); + } + + // Verifica se existe uma nova data, se existe atualiza o projeto com a nova, se não existir usa a antiga + if ($request->input('date_started') !== null) { $project->date_started = $request->input('date_started'); } else { $project->date_started = $request->input('date_started_present'); @@ -840,75 +806,6 @@ public function removePendingEquipment($id) return back()->with('success', 'Equipamento pendente removido com sucesso!'); } - // public function CreateNewEquipmentFromPendingEquipment(Request $request, $id) - // { - // $checkPendingEquipment = PendingEquipment::findOrFail($id); - - // // dd($checkPendingEquipment); - - // //Para que serve ?? - // $counter = 2; - // $baseTag = $checkPendingEquipment->pending_equipment_tag; - // $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()) { - // $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_serial_number = $checkPendingEquipment->pending_equipment_serial_number; - // $newEquipment->equipment_brand = $checkPendingEquipment->pending_equipment_brand; - // $newEquipment->equipment_model = $checkPendingEquipment->pending_equipment_model; - // $newEquipment->company_projects_id = $checkPendingEquipment->pending_company_projects_id; - // $newEquipment->save(); - - // $newEquipmentWorkHistory = new EquipmentWorkHistory; - // $newEquipmentWorkHistory->equipment_id = $newEquipment->equipment_id; - // $newEquipmentWorkHistory->company_projects_id = $newEquipment->company_projects_id; - - // // Busca o maior ispt_number para o company_projects_id específico - // $lastIsptNumber = EquipmentWorkHistory::where('company_projects_id', $newEquipment->company_projects_id) - // ->max('ispt_number'); - - // // Se não houver registros, definimos o primeiro número para 1, caso contrário, incrementamos o último número encontrado - // $newIsptNumber = $lastIsptNumber ? $lastIsptNumber + 1 : 1; - - // // Agora, atribuímos o novo número ISPT ao registro de histórico de equipamento - // $newEquipmentWorkHistory->ispt_number = $newIsptNumber; - - // $newEquipmentWorkHistory->save(); - - - // $newEquipmentAssociationAmbits = new EquipmentAssociationAmbit; - // $newEquipmentAssociationAmbits->equipmentWorkHistorys_id = $newEquipmentWorkHistory->equipmentWorkHistorys_id; - // $newEquipmentAssociationAmbits->ambits_id = $request->EquipmentAmbit; - // $newEquipmentAssociationAmbits->equipment_type_id = $checkPendingEquipment->pending_equipment_type_id; - // $newEquipmentAssociationAmbits->save(); - - // //Recebe a tabela com as associoacoes entre Âmbitos e tarefas Elementares - // $TasksAssociationAmbits = TasksAssociationAmbits::all()->where('ambits_equipment_id', $newEquipmentAssociationAmbits->ambits_id); - - // foreach ($TasksAssociationAmbits as $TasksAssociationAmbit) { - // $JoinsEquipmentsWithTasks = new OrderEquipmentTasks; - // $JoinsEquipmentsWithTasks->equipmentWorkHistorys_id = $newEquipmentWorkHistory->equipmentWorkHistorys_id; - // $JoinsEquipmentsWithTasks->execution_order = null; - // $JoinsEquipmentsWithTasks->elemental_tasks_id = $TasksAssociationAmbit->elemental_tasks_id; - // $JoinsEquipmentsWithTasks->further_tasks_id = null; - // $JoinsEquipmentsWithTasks->inspection = 2; - // $JoinsEquipmentsWithTasks->save(); - // } - - - // $checkPendingEquipment->delete(); - - // return back()->with('success', 'Equipamento ' . $newEquipment->equipment_tag . ' criado com sucesso'); - // } - public function CreateNewEquipmentFromPendingEquipment(Request $request, $id) { $checkPendingEquipment = PendingEquipment::findOrFail($id); @@ -981,7 +878,6 @@ public function processStep1(Request $request) $installationId = $request->input('installation_id'); - //Para criar uma nova instalacao if ($installationId <> null && $installationId == 'new_install') { @@ -1009,15 +905,22 @@ public function processStep1(Request $request) } } + $receiveDetailsPlant = Plant::where('plant_id', $installationId)->first(); //Code apenas para criacao de Obra sem criar instlacao ou empresa $project = new CompanyProject; $project->company_project_description = $request->input('description_project'); $project->project_ispt_number = $request->input('n_project_ispt'); - $project->project_company_number = $request->input('project_company_number'); + $project->project_company_name = $request->input('project_company_name'); $project->project_ispt_responsible = $request->input('responsible_project_ispt'); - $project->project_company_responsible = $request->input('responsible_project_company'); + + if ($request->input('user_id') == 'ispt') { + $project->project_company_responsible = null; + } else { + $project->project_company_responsible = $request->input('user_id'); + } + $project->plant_id = $receiveDetailsPlant->plant_id; $project->order_project = 1; $project->date_started = $request->input('date_started'); @@ -1189,7 +1092,7 @@ public function createEquipmentManual(Request $request) $isptNumber = 1; } - + $newEquipmentWorkHistorys->equipment_status_project = 0; $newEquipmentWorkHistorys->equipment_id = $equipmentID; $newEquipmentWorkHistorys->ispt_number = $isptNumber; $newEquipmentWorkHistorys->company_projects_id = $request->numberProject; @@ -1243,7 +1146,7 @@ public function createEquipmentManual(Request $request) $JoinsEquipmentsWithTasks->equipmentWorkHistorys_id = $equipmentWorkHistorysID; $JoinsEquipmentsWithTasks->execution_order = $execution_order++; $JoinsEquipmentsWithTasks->elemental_tasks_id = $TasksAssociationAmbit->elemental_tasks_id; - $JoinsEquipmentsWithTasks->further_tasks_id = null; + // $JoinsEquipmentsWithTasks->further_tasks_id = null; $JoinsEquipmentsWithTasks->inspection = 2; $JoinsEquipmentsWithTasks->save(); } @@ -1305,6 +1208,7 @@ public function processStep2(Request $request) $documentType = $parts[2]; // 98 $timestamp = $parts[3]; // 2024-01-14_14-33 + function normalize($value) { // Remove espaços em branco no início e no fim da string @@ -1410,11 +1314,20 @@ function normalize($value) $uniqueRowsHashmap[$key] = $i; } else { $duplicateLines[] = $i; // Linha duplicada no Excel + + //Guardar os informacoes para o logs geral da pagina de articulado $equipmentPendingLogs[] = [ + 'excel_Name' => $originalFileName, 'typePendingLog' => 1, 'duplicate_line' => $i + 1, 'original_line' => $uniqueRowsHashmap[$key] + 1, - 'reason' => 'Duplicata no Excel referente aos campos: ' . $columnRealNames[0] . ' e ' . $columnRealNames[1] . '.' + 'reason' => 'Duplicata no Excel - (Original Line '. $uniqueRowsHashmap[$key] + 1 .') referente aos campos: ' . $columnRealNames[0] . ' e ' . $columnRealNames[1] . '.' + ]; + + //este e criado apenas para o PendingEquipment a indicar a reason de sua criacao. + $pending_equipment_creation_log = [ + 'excel_Name' => $originalFileName, + 'reason' => 'Duplicata no Excel - (Original Line '. $uniqueRowsHashmap[$key] + 1 .') referente aos campos: ' . $columnRealNames[0] . ' e ' . $columnRealNames[1] . '.(Duplicate Line ' .$i + 1 .')' ]; $pendingEquipament = new PendingEquipment; @@ -1424,6 +1337,10 @@ function normalize($value) $pendingEquipament->pending_equipment_type_id = $equipmentType->equipment_type_id; $pendingEquipament->pending_equipment_tag = $datas['equipment_tag']; $pendingEquipament->pending_equipment_description = $datas['equipment_description']; + + //recebe os valores de $equipmentPendingLogs para guardar o logs de criacao deste pendente. + $pendingEquipament->pending_equipment_creation_log = json_encode($pending_equipment_creation_log); + $pendingEquipament->pending_equipment_serial_number = $datas['serial_number']; $pendingEquipament->pending_equipment_brand = $datas['model']; $pendingEquipament->pending_company_projects_id = $company_projects_id; @@ -1475,7 +1392,7 @@ function normalize($value) // Criar um equipment_work_historys $newEquipmentWorkHistory = new EquipmentWorkHistory; $newEquipmentWorkHistory->equipment_id = $findEquipment->equipment_id; - + $newEquipmentWorkHistory->equipment_status_project = 0; $newEquipmentWorkHistory->ispt_number = $isptNumber++; $newEquipmentWorkHistory->company_projects_id = $company_projects_id; $newEquipmentWorkHistory->save(); @@ -1505,7 +1422,6 @@ function normalize($value) $newEquipmentWorkHistory->ispt_number = $isptNumber++; $JoinsEquipmentsWithTasks->equipmentWorkHistorys_id = $newEquipmentWorkHistory->equipmentWorkHistorys_id; $JoinsEquipmentsWithTasks->elemental_tasks_id = $TasksAssociationAmbit->elemental_tasks_id; - $JoinsEquipmentsWithTasks->further_tasks_id = null; $JoinsEquipmentsWithTasks->save(); } @@ -1531,6 +1447,7 @@ function normalize($value) $countEquipment++; //Deve adicionar tambem os outros atributos espesificos para o equipameto. + //Criar o equipment Work History $newEquipmentWorkHistory = new EquipmentWorkHistory; @@ -1563,7 +1480,6 @@ function normalize($value) $JoinsEquipmentsWithTasks->execution_order = $execution_order++; $JoinsEquipmentsWithTasks->equipmentWorkHistorys_id = $newEquipmentWorkHistory->equipmentWorkHistorys_id; $JoinsEquipmentsWithTasks->elemental_tasks_id = $TasksAssociationAmbit->elemental_tasks_id; - $JoinsEquipmentsWithTasks->further_tasks_id = null; $JoinsEquipmentsWithTasks->save(); } @@ -1878,7 +1794,6 @@ public function storeProject(Request $request) public function getByUserNif(Request $request) { - // dd($request); $companyId = $request->input('company_id'); // Considerando que este ID é na verdade o ID da empresa diff --git a/app/Http/Controllers/ExecutionProjectController.php b/app/Http/Controllers/ExecutionProjectController.php index e5691f0d..a477d336 100755 --- a/app/Http/Controllers/ExecutionProjectController.php +++ b/app/Http/Controllers/ExecutionProjectController.php @@ -486,7 +486,7 @@ public function enterWorkstation() // // Busca na model User // $filteredUsers = User::where('type_users', 5) // ->whereRaw("SUBSTRING_INDEX(user_name, '-', -1) = ?", [$DatasProject->company_projects_id]) - // ->whereRaw("SUBSTRING_INDEX(SUBSTRING_INDEX(email, '@', 1), '-', 1) = ?", [$DatasProject->project_company_number]) + // ->whereRaw("SUBSTRING_INDEX(SUBSTRING_INDEX(email, '@', 1), '-', 1) = ?", [$DatasProject->project_company_name]) // ->get(); // // Adicionando a nova coluna realPassword @@ -518,7 +518,7 @@ public function receiveExecutionProject($ProjectId) // Busca na model User $filteredUsers = User::where('type_users', 5) ->whereRaw("SUBSTRING_INDEX(user_name, '-', -1) = ?", [$DatasProject->company_projects_id]) - ->whereRaw("SUBSTRING_INDEX(SUBSTRING_INDEX(email, '@', 1), '-', 1) = ?", [$DatasProject->project_company_number]) + ->whereRaw("SUBSTRING_INDEX(SUBSTRING_INDEX(email, '@', 1), '-', 1) = ?", [$DatasProject->project_company_name]) ->get(); // Adicionando a nova coluna realPassword diff --git a/app/Http/Controllers/ProjectoDatacontroller.php b/app/Http/Controllers/ProjectoDatacontroller.php index ef06d94e..862dd51f 100755 --- a/app/Http/Controllers/ProjectoDatacontroller.php +++ b/app/Http/Controllers/ProjectoDatacontroller.php @@ -108,7 +108,6 @@ public function editEquipmentTasks(Request $request, $equipmentID) foreach ($orderTasks as $task) { $taskExecutionOrders[$task->elemental_tasks_id] = $task->execution_order; } - // dd($orderTasks); return redirect()->back()->with('success', 'As tarefas do equipamento foram atualizado com sucesso'); @@ -120,7 +119,7 @@ public function checkProjectIsptNumber(Request $request, $projectId = null) $number = $request->get('number'); $type = $request->get('type'); // 'ispt' ou 'company' - $column = $type == 'ispt' ? 'project_ispt_number' : 'project_company_number'; + $column = $type == 'ispt' ? 'project_ispt_number' : 'project_company_name'; // Inicialmente verifica se o número já existe $query = CompanyProject::where($column, $number); @@ -393,12 +392,11 @@ public function projectDetails_11($projectID, $equipmentID) $dataEquipment = Equipment::find($equipmentID); - $detailsEquipmentWorkHistory = EquipmentWorkHistory::where('equipment_id', $dataEquipment->equipment_id)->first(); - $receiveEquipmentWorkHistorys = EquipmentWorkHistory::where('equipment_id', $equipmentID) ->where('company_projects_id', $projectID) ->first(); + $attributes = SpecificAttributesEquipmentType::where('equipment_id', $equipmentID)->get(); // recebe todos os atributos espesificos do equipamento // $DetailsTasks = OrderEquipmentTasks::where('equipmentWorkHistorys_id', $receiveEquipmentWorkHistorys->equipmentWorkHistorys_id)->get(); // Todas as tarefas que o equipamento vai realizar : @@ -414,6 +412,7 @@ public function projectDetails_11($projectID, $equipmentID) ->get(); // Filtra para manter apenas os registros que realmente têm uma tarefa elemental associada com company_projects_id não nulo + //O resultado sera as tarefas complementares, pois apenas estas tarefas tem company_projects_id associados. $filteredTasks = $DetailsTasks->filter(function ($task) { return !is_null($task->elementalTask) && !is_null($task->elementalTask->company_projects_id); }); @@ -424,6 +423,8 @@ public function projectDetails_11($projectID, $equipmentID) ->get() ->keyBy('elemental_tasks_id'); // Keying by elemental_tasks_id para fácil acesso + + $filteredTasks = $filteredTasks->map(function ($task) use ($elementalTasksDetails, $DetailsTasks) { // Primeiro bloco: Adiciona detalhes da tarefa elemental if (isset ($elementalTasksDetails[$task->elemental_tasks_id])) { @@ -450,6 +451,7 @@ public function projectDetails_11($projectID, $equipmentID) }); + // Para buscar a tarefa com execution_order = 3 $taskBeforeExecutionOrder = OrderEquipmentTasks::where('equipmentWorkHistorys_id', $receiveEquipmentWorkHistorys->equipmentWorkHistorys_id) ->where('execution_order', 3) @@ -462,6 +464,9 @@ public function projectDetails_11($projectID, $equipmentID) ->first(); } + // dd($taskBeforeExecutionOrder); + + // $OrdemTasks = $DetailsTasks->pluck('elemental_tasks_id')->all(); // Array de IDs $OrdemTasks = $DetailsTasks->pluck('execution_order', 'elemental_tasks_id')->all(); @@ -478,10 +483,9 @@ public function projectDetails_11($projectID, $equipmentID) foreach ($specificAttributes as $attribute) { $specificAttributesArray[$attribute->general_attributes_equipment_id] = $attribute->specific_attributes_value; } + // vou te achar cabrao. - - - return view('projectsClients.articulated_2_ShowEquipment', compact('receiveComments', 'detailsProject', 'dataEquipment', 'filteredTasks', 'OrdemTasks', 'DetailsTasks', 'detailsEquipmentWorkHistory', 'specificAttributesArray')); + return view('projectsClients.articulated_2_ShowEquipment', compact( 'detailsProject', 'dataEquipment', 'filteredTasks', 'OrdemTasks', 'DetailsTasks','specificAttributesArray','receiveEquipmentWorkHistorys')); } //Funcao que recebe a Acoes do dataTables do portifolio. diff --git a/app/Livewire/Articulado/SelectElementalTasksInWonkstation.php b/app/Livewire/Articulado/SelectElementalTasksInWonkstation.php index 5f7db551..e2195f72 100755 --- a/app/Livewire/Articulado/SelectElementalTasksInWonkstation.php +++ b/app/Livewire/Articulado/SelectElementalTasksInWonkstation.php @@ -3,6 +3,8 @@ namespace App\Livewire\Articulado; use App\Models\ElementalTasks; +use App\Models\EquipmentWorkHistory; +use App\Models\OrderEquipmentTasks; use Livewire\Component; use App\Models\Equipment; @@ -40,18 +42,20 @@ public function mount($workstation) { $this->workstation = $workstation; + //verificar se nao o motivo de receber os valores antigos do ws ao entrar em outro. $workstation = $this->workstation; // Atribuindo a uma variável local para uso na closure + //recebe todos os equipamentos do projecto atual $this->receiveAllEquipments = Equipment::join('equipment_work_historys', function ($join) use ($workstation) { $join->on('equipments.equipment_id', '=', 'equipment_work_historys.equipment_id') ->where('equipment_work_historys.company_projects_id', '=', $workstation->company_projects_id); }) ->join('equipment_association_ambits', 'equipment_work_historys.equipmentWorkHistorys_id', '=', 'equipment_association_ambits.equipmentWorkHistorys_id') - ->select('equipments.equipment_id', 'equipments.equipment_type_id', 'equipment_association_ambits.ambits_id') + ->select('equipments.equipment_id','equipment_work_historys.equipmentWorkHistorys_id','equipment_work_historys.company_projects_id', 'equipments.equipment_type_id', 'equipment_association_ambits.ambits_id',) ->get() ->toArray(); - - $this->receiveAllFurtherTasks = ElementalTasks::where('company_projects_id', $this->workstation->company_projects_id)->get(); + + // $this->receiveAllFurtherTasks = ElementalTasks::where('company_projects_id', $this->workstation->company_projects_id)->get(); // Inicializar a matriz $this->receiveElementalTasks = [ @@ -63,7 +67,14 @@ public function mount($workstation) // Coletar todos os elemental_tasks_id para cada equipment_type_id foreach ($this->receiveAllEquipments as $equipment) { - $elementalTasksIds = TasksAssociationAmbits::where('ambits_equipment_id', $equipment['ambits_id']) + + //Esta parte esta errada, nao esta indo pela tarefas do equipamento e sim pelos padrao ao selecionar um ambito. + // $elementalTasksIds = TasksAssociationAmbits::where('ambits_equipment_id', $equipment['ambits_id']) + // ->pluck('elemental_tasks_id') + // ->toArray(); + + $elementalTasksIds = OrderEquipmentTasks::where('equipmentWorkHistorys_id',$equipment['equipmentWorkHistorys_id']) + ->orderBy('elemental_tasks_id', 'asc') ->pluck('elemental_tasks_id') ->toArray(); @@ -115,7 +126,7 @@ public function mount($workstation) $receiveTasksRepository = app(ReceiveTasksRepository::class); // Chama a variavel do Repositorio para amazenar a variavel e depois conseguir chamar facilmente. $receiveTasksRepository->setElementalTasks($this->receiveElementalTasks); - $receiveTasksRepository->setFurtherTasks($this->receiveAllFurtherTasks); + // $receiveTasksRepository->setFurtherTasks($this->receiveAllFurtherTasks); } public function render() diff --git a/app/Models/AssociationCompanyUser.php b/app/Models/AssociationCompanyUser.php index 49411be8..2b38b242 100644 --- a/app/Models/AssociationCompanyUser.php +++ b/app/Models/AssociationCompanyUser.php @@ -15,6 +15,9 @@ class AssociationCompanyUser extends Model protected $fillable = ['association_company_user_id', 'company_id', 'user_id']; - + public function user(){ + return $this->belongsTo(User::class, 'user_id', 'user_id'); + } + } diff --git a/app/Models/CompanyProject.php b/app/Models/CompanyProject.php index 6158467d..c0b0d161 100755 --- a/app/Models/CompanyProject.php +++ b/app/Models/CompanyProject.php @@ -12,7 +12,7 @@ class CompanyProject extends Model protected $primaryKey = 'company_projects_id'; - protected $fillable = ['company_projects_id', 'plant_id', 'project_company_number','project_ispt_number','company_project_description','project_ispt_responsible','project_company_responsible','date_started','end_date','order_project']; + protected $fillable = ['company_projects_id', 'plant_id', 'project_company_name','project_ispt_number','company_project_description','project_ispt_responsible','project_company_responsible','date_started','end_date','order_project']; public $timestamps = false; diff --git a/app/Models/OrderEquipmentTasks.php b/app/Models/OrderEquipmentTasks.php index 4ec4997b..f20d4217 100755 --- a/app/Models/OrderEquipmentTasks.php +++ b/app/Models/OrderEquipmentTasks.php @@ -24,8 +24,8 @@ public function elementalTask() return $this->belongsTo(ElementalTasks::class,'elemental_tasks_id','elemental_tasks_id'); } - public function furtherTasks() - { - return $this->belongsTo(FurtherTasks::class,'further_tasks_id','further_tasks_id'); - } + // public function furtherTasks() + // { + // return $this->belongsTo(FurtherTasks::class,'further_tasks_id','further_tasks_id'); + // } } diff --git a/app/Models/Plant.php b/app/Models/Plant.php index f5450a52..3c5124f4 100755 --- a/app/Models/Plant.php +++ b/app/Models/Plant.php @@ -15,9 +15,9 @@ class Plant extends Model public $timestamps = false; - // public function user(){ - // return $this->belongsTo(User::class, 'user_id', 'user_id'); - // } + public function user(){ + return $this->belongsTo(User::class, 'user_id', 'user_id'); + } public function company(){ return $this->belongsTo(Company::class, 'company_id', 'company_id'); diff --git a/app/Models/SpecificAttributesEquipmentType.php b/app/Models/SpecificAttributesEquipmentType.php index 2313fd4f..decda310 100755 --- a/app/Models/SpecificAttributesEquipmentType.php +++ b/app/Models/SpecificAttributesEquipmentType.php @@ -23,8 +23,8 @@ public function equipment() } public function generalAttributesEquipment() -{ - return $this->belongsTo(GeneralAttributesEquipament::class, 'general_attributes_equipment_id', 'general_attributes_equipment_id'); +{ + return $this->belongsTo(GeneralAttributesEquipment::class, 'general_attributes_equipment_id', 'general_attributes_equipment_id'); } diff --git a/app/Models/User.php b/app/Models/User.php index d342e981..ba57b677 100755 --- a/app/Models/User.php +++ b/app/Models/User.php @@ -73,4 +73,10 @@ public function comments() return $this->hasMany(EquipmentComment::class, 'user_id'); } + public function associationCompanyUser() + { + return $this->hasMany(AssociationCompanyUser::class, 'user_id', 'user_id'); + } + + } diff --git a/app/Models/WorkstationsAssociationTasks.php b/app/Models/WorkstationsAssociationTasks.php index acebf92a..6013d96a 100755 --- a/app/Models/WorkstationsAssociationTasks.php +++ b/app/Models/WorkstationsAssociationTasks.php @@ -23,8 +23,8 @@ public function elementalTask() return $this->belongsTo(ElementalTasks::class,'elemental_tasks_id','elemental_tasks_id'); } - public function furtherTask() - { - return $this->belongsTo(FurtherTasks::class,'further_tasks_id','further_tasks_id'); - } + // public function furtherTask() + // { + // return $this->belongsTo(FurtherTasks::class,'further_tasks_id','further_tasks_id'); + // } } diff --git a/resources/views/livewire/articulado/select-elemental-tasks-in-wonkstation.blade.php b/resources/views/livewire/articulado/select-elemental-tasks-in-wonkstation.blade.php index eb2124fd..bea5c4eb 100755 --- a/resources/views/livewire/articulado/select-elemental-tasks-in-wonkstation.blade.php +++ b/resources/views/livewire/articulado/select-elemental-tasks-in-wonkstation.blade.php @@ -15,7 +15,7 @@ {{-- Necessario passar essas 2 variaveis, para poder verificar quais as tarefas que foram ou nao selecionadas --}} - + {{-- --}}
Nome Posto de Trabalho :
$('.open-modal').click(function(e) { e.preventDefault(); + // Limpa todos os checkboxes antes de abrir o modal + $('input[type="checkbox"]').prop('checked', false); + var WorkstationId = $(this).data('workstation-id'); $.ajax({ url: '/api/receveTasksWorkstationPlanning/' + WorkstationId, method: 'GET', success: function(data) { - console.log(data.workstationsAssociationTasks); data.workstationsAssociationTasks.forEach(function(item) { - // Seleciona o checkbox com nome "3[taskId]" e marca como selecionado - $('input[name="1[' + item.elemental_tasks_id + ']"]').prop( - 'checked', true); - $('input[name="2[' + item.elemental_tasks_id + ']"]').prop( - 'checked', true); - $('input[name="3[' + item.elemental_tasks_id + ']"]').prop( - 'checked', true); - $('input[name="generalTasks[' + item.elemental_tasks_id + - ']"]').prop('checked', true); - $('input[name="FurtherTasks[' + item.further_tasks_id + - ']"]').prop('checked', true); - + // Seleciona o checkbox e marca como selecionado + $('input[name="1[' + item.elemental_tasks_id + ']"]').prop('checked', true); + $('input[name="2[' + item.elemental_tasks_id + ']"]').prop('checked', true); + $('input[name="3[' + item.elemental_tasks_id + ']"]').prop('checked', true); + $('input[name="generalTasks[' + item.elemental_tasks_id + ']"]').prop('checked', true); + $('input[name="FurtherTasks[' + item.further_tasks_id + ']"]').prop('checked', true); }); } }); }); }); + + diff --git a/resources/views/projectsClients/articulated_2.blade.php b/resources/views/projectsClients/articulated_2.blade.php index 39de04d2..b5f7dc2e 100755 --- a/resources/views/projectsClients/articulated_2.blade.php +++ b/resources/views/projectsClients/articulated_2.blade.php @@ -101,14 +101,12 @@ class="fas fa-plus"> @break @case(2) - Referente a equipamentos ja existentes (Nenhum dado criado) + Referente a equipamentos ja existentes (Nenhum dado criado) @break @case(3) Equipamentos Novos (Criado novos equipamentos) @break - - @endswitch