48 lines
1.5 KiB
PHP
48 lines
1.5 KiB
PHP
|
<?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();
|
||
|
}
|
||
|
|
||
|
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;
|
||
|
}
|
||
|
}
|