diff --git a/app/Livewire/Execução/TasksDashboard.php b/app/Livewire/Execução/TasksDashboard.php index 1faf1d78..8ff7122b 100755 --- a/app/Livewire/Execução/TasksDashboard.php +++ b/app/Livewire/Execução/TasksDashboard.php @@ -74,7 +74,7 @@ public function mount($datasProject) $receiveEquipmentsProject = EquipmentWorkHistory::where('company_projects_id', $datasProject->company_projects_id)->get(); $elementalTasks = collect(); - $furtherTasks = collect(); + // $furtherTasks = collect(); // Total de tarefas na Obra. $elementalTasksCountsAll = []; @@ -85,8 +85,8 @@ public function mount($datasProject) // Filtrar e armazenar os IDs únicos de elemental_tasks_id e further_tasks_id $elementalTasks = $elementalTasks->merge($relatedTasks->whereNotNull('elemental_tasks_id')->pluck('elemental_tasks_id'))->unique(); - $furtherTasks = $furtherTasks->merge($relatedTasks->whereNotNull('further_tasks_id')->pluck('further_tasks_id'))->unique(); + // $furtherTasks = $furtherTasks->merge($relatedTasks->whereNotNull('further_tasks_id')->pluck('further_tasks_id'))->unique(); // Agrupar as tasks relacionadas por elemental_tasks_id e contar o número de ocorrências $groupedTasks = $relatedTasks->whereNotNull('elemental_tasks_id')->groupBy('elemental_tasks_id'); @@ -98,18 +98,19 @@ public function mount($datasProject) } } } + //Neste ponto parece esta correto a quantidade de tarefas, pois nenhuma tarefa passa do maximo de equipamentos. $this->receiveElementalTasksAll = $elementalTasksCountsAll; - // Contar o número de ocorrências de cada ID na tabela ControlEquipmentWorkstation - $furtherTasksCount1 = ControlEquipmentWorkstation::whereIn('further_tasks_id', $furtherTasks)->get()->countBy('further_tasks_id'); - + // $furtherTasksCount1 = ControlEquipmentWorkstation::whereIn('further_tasks_id', $furtherTasks)->get()->countBy('further_tasks_id'); + + // Filtrar as associações de tarefas por equipmentWorkHistorys_id que são do projeto específico $tasksCount = ControlEquipmentWorkstation::whereIn('elemental_tasks_id', $elementalTasks) - ->distinct('equipmentWorkHistorys_id', 'elemental_tasks_id') // Obter combinações únicas - ->get(['equipmentWorkHistorys_id', 'elemental_tasks_id']) // Selecionar apenas os campos necessários - ->groupBy('elemental_tasks_id') // Agrupar pelo ID da tarefa elemental + ->whereIn('equipmentWorkHistorys_id', $receiveEquipmentsProject->pluck('equipmentWorkHistorys_id')) // Garante que estamos contando apenas para o projeto específico + ->get(['equipmentWorkHistorys_id', 'elemental_tasks_id']) + ->groupBy('elemental_tasks_id') ->map(function ($group) { - return $group->unique('equipmentWorkHistorys_id')->count(); // Contar ocorrências únicas por equipmentWorkHistorys_id + return $group->unique('equipmentWorkHistorys_id')->count(); });