gitea_issues_exporter/app/Http/Controllers/CsvController/CsvDataHandling.php

46 lines
1.5 KiB
PHP
Raw Normal View History

2024-07-22 14:17:00 +02:00
<?php
namespace App\Http\Controllers\CsvController;
use App\Http\Controllers\CsvController\CsvCostCalc\CsvCostCalc;
class CsvDataHandling
{
public function __construct($calculate_agent_cost = false)
2024-07-22 14:17:00 +02:00
{
$this->calculate_agent_cost = $calculate_agent_cost || config('app.gitea_calculate_agent_cost');
2024-07-22 14:17:00 +02:00
$this->csv_cost_calc = new CsvCostCalc();
2024-08-14 13:52:30 +02:00
2024-07-22 14:17:00 +02:00
}
2024-08-14 12:46:25 +02:00
function handle_agent_issue($agents_issue_time, $time)
2024-07-22 14:17:00 +02:00
{
$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;
}
2024-08-14 12:46:25 +02:00
function get_issue_total_time(array $issue_time)
2024-07-22 14:17:00 +02:00
{
$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 = [], $calculate_agent_cost = false)
2024-07-22 14:17:00 +02:00
{
[$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;
}
}