Skip to content

Instantly share code, notes, and snippets.

@jonasporto
Created April 14, 2015 15:12
Show Gist options
  • Select an option

  • Save jonasporto/b9de29807b5aa3b53d2e to your computer and use it in GitHub Desktop.

Select an option

Save jonasporto/b9de29807b5aa3b53d2e to your computer and use it in GitHub Desktop.
alcada
public function temAlcada(Usuario $usuario, $cliente_id, $returnMessage = false)
{
$indicadoresAtivos = TsIndicador::model()->ativos()->orderAsc()->findAll();
foreach ($indicadoresAtivos as $indicador) {
$indicadorContrato = $indicador->calculate($this, ['cliente_id' => $cliente_id]);
$indicadorProjeto = $indicador->valor_indicador;
$alcadaUsuario = TsAlcadaLiberacaoAcordo::model()->find();
if(!$alcadaUsuario) {
return !$returnMessage ? false : [
'status' => 'error',
'message' => 'Usuário sem alçada localizada'
];
}
$valorAlcadaUsuario = $alcadaUsuario->valor;
$dentroAlcadaUsuario = $dentroAlcadaNacional = null;
if ($indicador->limite == TsIndicador::LIMITE_INFERIOR) {
$dentroAlcadaUsuario = $valorAlcadaUsuario <= $indicadorContrato;
$dentroAlcadaNacional = $indicadorContrato <= $indicadorProjeto;
} else {
$dentroAlcadaUsuario = $valorAlcadaUsuario >= $indicadorContrato;
$dentroAlcadaNacional = $indicadorContrato >= $indicadorProjeto;
}
if (!$dentroAlcadaUsuario) {
if(!$returnMessage) {
return false;
}
$returnMessage = [
'status' => 'error',
'message' => "Valor acima do permitido, \n por favor altere o valor"
];
if($dentroAlcadaNacional) {
$returnMessage = [
'status' => 'info',
'tipo_confirmacao' => 'fora-da-alcada', //fix isso não seria informação de view?
'message' => "Esse contrato ficará pendente de aprovação. Deseja confirmar operação?"
];
}
return $returnMessage;
}
}
return true;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment