51 lines
1.7 KiB
PHP
51 lines
1.7 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers\CsvController\CsvCostCalc;
|
|
|
|
class CsvAgentCost
|
|
{
|
|
private $internal_percentage_to_deduct;
|
|
private $CsvMinuteCostCalc;
|
|
|
|
public function __construct()
|
|
{
|
|
$this->internal_percentage_to_deduct = getenv('PRICE_INTERNAL_PERCENTAGE_TO_DEDUCT');
|
|
$this->partner_organitation = strtolower(getenv('GITEA_PARTNER_ORGANIZATION'));
|
|
$this->CsvMinuteCostCalc = new CsvMinuteCostCalc();
|
|
}
|
|
|
|
private function preapare_agents_columns(array $array, array $company_agents)
|
|
{
|
|
//Add all agents columns
|
|
foreach ($company_agents as $company_agent) {
|
|
$array[$company_agent] = '';
|
|
$array[$company_agent . ' costo'] = 0;
|
|
}
|
|
return $array;
|
|
}
|
|
|
|
private function calculate_agents_cost(array $array, array $agents_time, float $minute_cost)
|
|
{
|
|
foreach ($agents_time as $name => $agent_time) {
|
|
//Identify agents involved in the issue
|
|
$array[$name] = gmdate('H:i:s', $agent_time);
|
|
$array[$name . ' costo'] = $agent_time / 60 * $minute_cost;
|
|
}
|
|
|
|
return $array;
|
|
}
|
|
|
|
function agent_cost_calc(array $array, array $company_agents, array $agents_time)
|
|
{
|
|
$array = $this->preapare_agents_columns($array, $company_agents);
|
|
|
|
//Calculate cost, subtract a % from the minute_cost
|
|
$minute_cost = $this->CsvMinuteCostCalc->select_correct_cost($array['Request By'], $array['Priority']);
|
|
$minute_cost = $minute_cost - ($minute_cost / 100 * $this->internal_percentage_to_deduct);
|
|
|
|
$array = $this->calculate_agents_cost($array, $agents_time, $minute_cost);
|
|
|
|
return $array;
|
|
}
|
|
}
|