Skip to content

Commit

Permalink
Merge pull request #6 from gabriel-schenato/dev
Browse files Browse the repository at this point in the history
Dev
  • Loading branch information
GabrielSchenato authored Jul 31, 2019
2 parents ac314cc + 7b96fae commit 89bc08f
Show file tree
Hide file tree
Showing 88 changed files with 6,220 additions and 586 deletions.
12 changes: 10 additions & 2 deletions app/Entities/Cadastro/Aluno.php
Original file line number Diff line number Diff line change
Expand Up @@ -34,13 +34,21 @@ class Aluno extends Model
'observacoes',
'ativo',
];

/**
* Pega todas as Ficha de Triagens associados ao aluno.
*/
public function ficha_triagens_aluno()
{
return $this->hasMany(FichaTriagem::class, 'aluno_id');
return $this->hasMany(FichaTriagem::class, 'aluno_id')->orderBy('created_at', 'desc');
}

/**
* Pega todas as avaliações associadas ao aluno.
*/
public function avaliacoes()
{
return $this->hasMany(Avaliacao::class, 'aluno_id')->orderBy('created_at', 'desc');
}

}
69 changes: 69 additions & 0 deletions app/Entities/Cadastro/Avaliacao.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
<?php

namespace Emaj\Entities\Cadastro;

use Emaj\Entities\Movimento\FichaTriagem;
use Illuminate\Database\Eloquent\Model;

/**
* Classe da entidade Avaliação
*
* PHP version 7.2
*
* @category Entity
* @package Cadastro
* @author Gabriel Schenato <gabriel@uniplaclages.edu.br>
* @license http://www.opensource.org/licenses/mit-license.html MIT License
* @link https://www.uniplaclages.edu.br/
* @since 1.1.0
*/
class Avaliacao extends Model
{

/**
* The database table used by the model.
*
* @var string
*/
protected $table = 'avaliacoes';
protected $fillable = [
'aluno_id',
'ficha_triagem_id',
'avaliador_id',
'data',
'observacoes'
];

/**
* Pega o aluno associado a essa avaliação.
*/
public function aluno()
{
return $this->belongsTo(Aluno::class, 'aluno_id');
}

/**
* Pega a ficha de triagem associada a essa avaliação.
*/
public function ficha_triagem()
{
return $this->belongsTo(FichaTriagem::class, 'ficha_triagem_id');
}

/**
* Pega o avaliador associado a essa avaliação.
*/
public function avaliador()
{
return $this->belongsTo(Usuario::class, 'avaliador_id');
}

/**
* Pega todos os arquivos anexados a essa avaliação.
*/
public function avaliacao_arquivos()
{
return $this->hasMany(AvaliacaoArquivo::class, 'avaliacao_id');
}

}
75 changes: 75 additions & 0 deletions app/Entities/Cadastro/AvaliacaoArquivo.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
<?php

namespace Emaj\Entities\Cadastro;

use Illuminate\Database\Eloquent\Model;

/**
* Classe da entidade Avaliação Arquivo
*
* PHP version 7.2
*
* @category Entity
* @package Cadastro
* @author Gabriel Schenato <gabriel@uniplaclages.edu.br>
* @license http://www.opensource.org/licenses/mit-license.html MIT License
* @link https://www.uniplaclages.edu.br/
* @since 1.1.0
*/
class AvaliacaoArquivo extends Model
{

/**
* The database table used by the model.
*
* @var string
*/
protected $table = 'avaliacao_arquivos';
protected $appends = ['nome_arquivo_extensao', 'tamanho_arquivo'];
protected $fillable = [
'nome',
'arquivo',
'mimetype',
'extensao',
'tamanho',
'avaliacao_id'
];

/**
* Pega a avaliação associado a esse arquivo.
*/
public function avaliacao()
{
return $this->belongsTo(Avaliacao::class, 'avaliacao_id');
}

protected function getNomeArquivoExtensaoAttribute()
{
return $this->attributes['nome'] . '.' . $this->attributes['extensao'];
}

protected function getTamanhoArquivoAttribute()
{
return $this->formatBytes($this->attributes['tamanho']);
}

/**
* Format bytes to kb, mb, gb, tb
*
* @param integer $size
* @param integer $precision
* @return integer
*/
private function formatBytes($size, $precision = 2)
{
if ($size > 0) {
$size = (int) $size;
$base = log($size) / log(1024);
$suffixes = array(' bytes', ' KB', ' MB', ' GB', ' TB');

return round(pow(1024, $base - floor($base)), $precision) . $suffixes[floor($base)];
}
return $size;
}

}
25 changes: 23 additions & 2 deletions app/Entities/Cadastro/Cliente.php
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
class Cliente extends Model
{

protected $appends = ['dados_cliente'];
protected $fillable = [
'pre_atendimento',
'nome_completo',
Expand Down Expand Up @@ -61,15 +62,15 @@ public function telefones()
{
return $this->hasMany(Telefone::class);
}

/**
* Pega todas as Ficha de Triagens associados ao cliente.
*/
public function ficha_triagens_cliente()
{
return $this->hasMany(FichaTriagem::class, 'cliente_id');
}

/**
* Pega todas as Ficha de Triagens associados ao cliente parte contrária.
*/
Expand All @@ -86,4 +87,24 @@ public function nacionalidade()
return $this->belongsTo(Nacionalidade::class);
}

protected function getDadosClienteAttribute()
{
$string = '';
$string .= $this->attributes['nome_completo'];
$string .= ' (' . $this->attributes['id'] . ')';
if (isset($this->attributes['representado_assistido'])) {
$string .= ' - Representado/Assistido: ' . $this->attributes['representado_assistido'];
}
if (isset($this->attributes['cpf'])) {
$string .= ' - CPF: ' . $this->attributes['cpf'];
}
if (isset($this->attributes['rg'])) {
$string .= ' - RG: ' . $this->attributes['rg'];
}
if (isset($this->attributes['renda'])) {
$string .= ' - Renda: R$' . number_format($this->attributes['renda'], 2, ',', '.');
}
return $string;
}

}
14 changes: 11 additions & 3 deletions app/Entities/Cadastro/Usuario.php
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ class Usuario extends Authenticatable implements MustVerifyEmail, JWTSubject
* @var string
*/
protected $table = 'usuarios';
protected $appends = ['dados_usuario'];

/**
* The attributes that are mass assignable.
Expand Down Expand Up @@ -62,14 +63,21 @@ public function getJWTIdentifier()
{
return $this->getKey();
}



/**
* Pega todas as Ficha de Triagens associados ao professor.
*/
public function ficha_triagens_professor()
{
return $this->hasMany(FichaTriagem::class, 'professor_id');
}


protected function getDadosUsuarioAttribute()
{
$string = '';
$string .= $this->attributes['nome_completo'];
$string .= ' (' . $this->attributes['id'] . ')';
return $string;
}

}
43 changes: 37 additions & 6 deletions app/Entities/Movimento/FichaTriagem.php
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
*/
class FichaTriagem extends Model
{

public const AJUIZADO = 'Ajuizado';
public const NAO_AJUIZADO = 'Não Ajuizado';

Expand All @@ -32,7 +32,7 @@ class FichaTriagem extends Model
* @var string
*/
protected $table = 'ficha_triagens';

protected $appends = ['dados_ficha_triagem'];
protected $fillable = [
'ja_foi_atendido',
'cliente_id',
Expand All @@ -54,31 +54,31 @@ public function cliente()
{
return $this->belongsTo(Cliente::class, 'cliente_id');
}

/**
* Pega o tipo de demanda associado a essa ficha de triagem.
*/
public function tipo_demanda()
{
return $this->belongsTo(TipoDemanda::class);
}

/**
* Pega a parte contrária associado a essa ficha de triagem.
*/
public function parte_contraria()
{
return $this->belongsTo(Cliente::class, 'parte_contraria_id');
}

/**
* Pega o aluno associado a essa ficha de triagem.
*/
public function aluno()
{
return $this->belongsTo(Aluno::class, 'aluno_id');
}

/**
* Pega o professor associado a essa ficha de triagem.
*/
Expand All @@ -87,4 +87,35 @@ public function professor()
return $this->belongsTo(Usuario::class, 'professor_id');
}

protected function getDadosFichaTriagemAttribute()
{
$string = '';

$cliente = $this->cliente;
$parteContraria = $this->parte_contraria;
$tipoDemanda = $this->tipo_demanda;


if ($cliente) {
$string .= 'Cliente: ' . $cliente->nome_completo;
$string .= ' (' . $cliente->id . ')';
}
if ($parteContraria) {
$string .= ' - Parte Contrária: ' . $parteContraria->nome_completo;
}
if (isset($this->attributes['protocolo'])) {
$string .= ' - Protocolo: ' . $this->attributes['protocolo'];
}
if (isset($this->attributes['numero_processo'])) {
$string .= ' - N.º Processo: ' . $this->attributes['numero_processo'];
}
if ($tipoDemanda) {
$string .= ' - Demanda: ' . $tipoDemanda->nome;
}
if (isset($this->attributes['created_at'])) {
$string .= ' - Data: ' . \Carbon\Carbon::parse($this->attributes['created_at'])->format('d/m/Y');
}
return $string;
}

}
38 changes: 37 additions & 1 deletion app/Http/Controllers/Api/V1/Cadastro/AlunosController.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@

use Emaj\Http\Controllers\CrudController;
use Emaj\Repositories\Cadastro\AlunoRepository;
use Emaj\Repositories\Movimento\FichaTriagemRepository;

/**
* Classe responsável por gerenciar a requisições das páginas
Expand All @@ -20,11 +21,46 @@
class AlunosController extends CrudController
{

protected $relationships = [
'avaliacoes.avaliador:id,nome_completo',
'ficha_triagens_aluno.cliente:id,nome_completo,representado_assistido',
'ficha_triagens_aluno.professor:id,nome_completo',
'ficha_triagens_aluno:id,aluno_id,cliente_id,professor_id,protocolo,numero_processo,ativo,outras_informacoes,created_at',
'avaliacoes.ficha_triagem:id,cliente_id,parte_contraria_id,tipo_demanda_id,protocolo,numero_processo,created_at',
'avaliacoes.ficha_triagem.cliente:id,nome_completo,representado_assistido,cpf,rg,renda'];

/**
* @var FichaTriagemRepository
*/
private $fichaTriagemRepository;
protected $repository;

public function __construct(AlunoRepository $repository)
public function __construct(AlunoRepository $repository, FichaTriagemRepository $fichaTriagemRepository)
{
$this->repository = $repository;
$this->fichaTriagemRepository = $fichaTriagemRepository;
}

public function show($id)
{
$this->registro = $this->repository->with($this->relationships())->find($id);
return $this->registro;
}

/**
* Retorna todos os dados para os autocomplete
*
* @return array
*/
public function autocomplete()
{
$this->registro = [];
if (strlen($ac = request()->get('ficha_triagem')) > 0) {
$idAluno = request()->get('aluno_id');
$this->registro = $this->fichaTriagemRepository
->getDataAutocomplete($ac, $idAluno);
}
return $this->registro;
}

}
Loading

0 comments on commit 89bc08f

Please sign in to comment.