You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
37 lines
1.5 KiB
37 lines
1.5 KiB
<?php |
|
|
|
namespace app\Actions; |
|
|
|
use app\Models\SupervisorModel; |
|
use app\Repositories\AtendimentoRepository; |
|
use app\Repositories\EventosUsuarioRepository; |
|
use app\Repositories\ConfigAtendimentoRepository; |
|
use app\Repositories\SupervisorRepository; |
|
use Exception; |
|
|
|
class SairPausaAction |
|
{ |
|
protected SupervisorRepository $supervisorRepository; |
|
protected EventosUsuarioRepository $eventosUsuarioRepository; |
|
protected AtendimentoRepository $atendimentoRepository; |
|
protected ConfigAtendimentoRepository $configAtendimentoRepository; |
|
function __construct() |
|
{ |
|
$this->supervisorRepository = new SupervisorRepository; |
|
$this->eventosUsuarioRepository = new EventosUsuarioRepository; |
|
$this->atendimentoRepository = new AtendimentoRepository; |
|
$this->configAtendimentoRepository = new ConfigAtendimentoRepository; |
|
} |
|
function __invoke(SupervisorModel $agent) |
|
{ |
|
$atendimentos = $this->atendimentoRepository->getAtendimentoAbertoByAgente($agent->matricula); |
|
$param = $this->configAtendimentoRepository->get(['id_empresa' => $agent->id_empresa]); |
|
|
|
if (count($atendimentos) < $param->quantidade_simutaneo) { |
|
$this->supervisorRepository->update(['matricula' => $agent->matricula, 'status' => CONF_AGENT_STATUS_LIVRE]); |
|
} else { |
|
$this->supervisorRepository->update(['matricula' => $agent->matricula, 'status' => CONF_AGENT_STATUS_OCUPADO]); |
|
} |
|
$this->eventosUsuarioRepository->update(['saida_pausa' => 'now()', 'id_usuario' => $agent->id_usuario]); |
|
} |
|
} |