2024-07-22 14:17:00 +02:00
|
|
|
<?php
|
|
|
|
|
|
|
|
namespace App\Http\Controllers\CsvController;
|
|
|
|
|
|
|
|
use App\Http\Controllers\CsvController\CsvCostCalc\CsvCostCalc;
|
|
|
|
|
|
|
|
class CsvDataHandling
|
|
|
|
{
|
|
|
|
private $calculate_agent_cost;
|
|
|
|
private $csv_cost_calc;
|
|
|
|
|
|
|
|
public function __construct()
|
|
|
|
{
|
|
|
|
$this->calculate_agent_cost = env('GITEA_CALCULATE_AGENT_COST');
|
|
|
|
$this->csv_cost_calc = new CsvCostCalc();
|
|
|
|
}
|
|
|
|
|
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 = [])
|
|
|
|
{
|
|
|
|
[$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;
|
|
|
|
}
|
|
|
|
}
|