calculate_agent_cost = env('GITEA_CALCULATE_AGENT_COST'); $this->csv_cost_calc = new CsvCostCalc(); } private function handle_agent_issue($agents_issue_time, $time) { $time_agent = $time['user_name']; !array_key_exists($time_agent, $agents_issue_time) && $agents_issue_time[$time_agent] = 0; $agents_issue_time[$time_agent] += $time['time']; return $agents_issue_time; } private function get_issue_total_time(array $issue_time) { $total_issue_time = 0; $agents_issue_time = []; foreach ($issue_time as $time) { $total_issue_time += (int)$time['time']; $this->calculate_agent_cost && $agents_issue_time = $this->handle_agent_issue($agents_issue_time, $time); } return [$total_issue_time, $agents_issue_time]; } function handle_csv_time(array $array, array $issue, array $issue_time, array $company_agents = []) { [$total_time, $agents_time] = $this->get_issue_total_time($issue_time); $array = $this->csv_cost_calc->total_time_cost($array, $total_time); if ($this->calculate_agent_cost) { $array = $this->csv_cost_calc->agent_cost_calc($array, $company_agents, $agents_time); } return $array; } }