This commit is contained in:
26
api/app/Models/Almoxarifado/BalanceteFechamento.php
Normal file
26
api/app/Models/Almoxarifado/BalanceteFechamento.php
Normal file
@@ -0,0 +1,26 @@
|
||||
<?php
|
||||
|
||||
namespace App\Models\Almoxarifado;
|
||||
|
||||
use App\Models\Model;
|
||||
|
||||
class BalanceteFechamento extends Model
|
||||
{
|
||||
protected $table = 'almoxarifado_balancete_fechamento';
|
||||
|
||||
protected $fillable = [
|
||||
'mes',
|
||||
'ano',
|
||||
'saldo_fisico',
|
||||
'saldo_financeiro',
|
||||
];
|
||||
|
||||
protected $hidden = [
|
||||
'created_at',
|
||||
'created_lotacao_id',
|
||||
'created_centro_custo_id',
|
||||
'updated_at',
|
||||
'updated_lotacao_id',
|
||||
'updated_centro_custo_id',
|
||||
];
|
||||
}
|
||||
47
api/app/Models/Almoxarifado/Dispensacao.php
Normal file
47
api/app/Models/Almoxarifado/Dispensacao.php
Normal file
@@ -0,0 +1,47 @@
|
||||
<?php
|
||||
|
||||
namespace App\Models\Almoxarifado;
|
||||
|
||||
use App\Models\Cadastro\SujeitoAtencao\Paciente;
|
||||
use App\Models\Cadastro\SujeitoAtencao\Usuario;
|
||||
use App\Models\Model;
|
||||
|
||||
class Dispensacao extends Model
|
||||
{
|
||||
protected $table = 'almoxarifado_dispensacao';
|
||||
|
||||
protected $casts = [
|
||||
'data_dispensacao' => 'datetime:Y-m-d',
|
||||
];
|
||||
|
||||
protected $fillable = [
|
||||
'paciente_id',
|
||||
'usuario_id',
|
||||
'data_dispensacao',
|
||||
'observacao',
|
||||
];
|
||||
|
||||
protected $hidden = [
|
||||
'created_at',
|
||||
'created_lotacao_id',
|
||||
'created_centro_custo_id',
|
||||
'updated_at',
|
||||
'updated_lotacao_id',
|
||||
'updated_centro_custo_id',
|
||||
];
|
||||
|
||||
public function usuario()
|
||||
{
|
||||
return $this->belongsTo(Usuario::class);
|
||||
}
|
||||
|
||||
public function paciente()
|
||||
{
|
||||
return $this->belongsTo(Paciente::class);
|
||||
}
|
||||
|
||||
public function itens()
|
||||
{
|
||||
return $this->hasMany(DispensacaoItem::class);
|
||||
}
|
||||
}
|
||||
50
api/app/Models/Almoxarifado/DispensacaoItem.php
Normal file
50
api/app/Models/Almoxarifado/DispensacaoItem.php
Normal file
@@ -0,0 +1,50 @@
|
||||
<?php
|
||||
|
||||
namespace App\Models\Almoxarifado;
|
||||
|
||||
use App\Models\Cadastro\Material\Material;
|
||||
use App\Models\Model;
|
||||
|
||||
class DispensacaoItem extends Model
|
||||
{
|
||||
protected $table = 'almoxarifado_dispensacao_item';
|
||||
|
||||
protected $casts = [
|
||||
'dispensado_em' => 'datetime:Y-m-d',
|
||||
];
|
||||
|
||||
protected $fillable = [
|
||||
'dispensacao_id',
|
||||
'material_id',
|
||||
'saida_item_id',
|
||||
'quantidade',
|
||||
'dispensado_em',
|
||||
'observacao',
|
||||
'estornado',
|
||||
'supervisor_id',
|
||||
];
|
||||
|
||||
protected $hidden = [
|
||||
'created_at',
|
||||
'created_lotacao_id',
|
||||
'created_centro_custo_id',
|
||||
'updated_at',
|
||||
'updated_lotacao_id',
|
||||
'updated_centro_custo_id',
|
||||
];
|
||||
|
||||
public function dispensacao()
|
||||
{
|
||||
return $this->belongsTo(Dispensacao::class);
|
||||
}
|
||||
|
||||
public function material()
|
||||
{
|
||||
return $this->belongsTo(Material::class);
|
||||
}
|
||||
|
||||
public function saidaItem()
|
||||
{
|
||||
return $this->belongsTo(SaidaItem::class);
|
||||
}
|
||||
}
|
||||
20
api/app/Models/Almoxarifado/DocumentoTipo.php
Normal file
20
api/app/Models/Almoxarifado/DocumentoTipo.php
Normal file
@@ -0,0 +1,20 @@
|
||||
<?php
|
||||
|
||||
namespace App\Models\Almoxarifado;
|
||||
|
||||
use App\Models\Model;
|
||||
|
||||
class DocumentoTipo extends Model
|
||||
{
|
||||
protected $table = 'almoxarifado_documento_tipo';
|
||||
|
||||
protected $fillable = [
|
||||
'id',
|
||||
'nome',
|
||||
];
|
||||
|
||||
protected $hidden = [
|
||||
'created_at',
|
||||
'updated_at',
|
||||
];
|
||||
}
|
||||
78
api/app/Models/Almoxarifado/Entrada.php
Normal file
78
api/app/Models/Almoxarifado/Entrada.php
Normal file
@@ -0,0 +1,78 @@
|
||||
<?php
|
||||
|
||||
namespace App\Models\Almoxarifado;
|
||||
|
||||
use App\Models\Cadastro\Estabelecimento\CentroCusto;
|
||||
use App\Models\Model;
|
||||
|
||||
class Entrada extends Model
|
||||
{
|
||||
protected $table = 'almoxarifado_entrada';
|
||||
|
||||
protected $casts = [
|
||||
'finalizada' => 'boolean',
|
||||
'finalizada_em' => 'datetime:d/m/Y',
|
||||
];
|
||||
|
||||
protected $fillable = [
|
||||
'centro_custo_id',
|
||||
'tipo_id',
|
||||
'finalizada',
|
||||
'finalizada_em',
|
||||
];
|
||||
|
||||
protected $hidden = [
|
||||
'created_at',
|
||||
'created_lotacao_id',
|
||||
'created_centro_custo_id',
|
||||
'updated_at',
|
||||
'updated_lotacao_id',
|
||||
'updated_centro_custo_id',
|
||||
];
|
||||
|
||||
protected $with = [
|
||||
'documento',
|
||||
];
|
||||
|
||||
public static function boot()
|
||||
{
|
||||
parent::boot();
|
||||
|
||||
self::saved(function($model) {
|
||||
$model = (object) $model->fresh()->getRawOriginal();
|
||||
|
||||
EntradaLog::create([
|
||||
'entrada_id' => $model->id,
|
||||
'centro_custo_id' => $model->centro_custo_id,
|
||||
'tipo_id' => $model->tipo_id,
|
||||
'finalizada' => $model->finalizada,
|
||||
'finalizada_em' => $model->finalizada_em,
|
||||
]);
|
||||
});
|
||||
}
|
||||
|
||||
public function centroCusto()
|
||||
{
|
||||
return $this->belongsTo(CentroCusto::class);
|
||||
}
|
||||
|
||||
public function tipo()
|
||||
{
|
||||
return $this->belongsTo(EntradaTipo::class);
|
||||
}
|
||||
|
||||
public function documento()
|
||||
{
|
||||
return $this->hasOne(EntradaDocumento::class);
|
||||
}
|
||||
|
||||
public function itens()
|
||||
{
|
||||
return $this->hasMany(EntradaItem::class);
|
||||
}
|
||||
|
||||
public function requisicaoResposta()
|
||||
{
|
||||
return $this->hasOne(RequisicaoResposta::class);
|
||||
}
|
||||
}
|
||||
74
api/app/Models/Almoxarifado/EntradaDocumento.php
Normal file
74
api/app/Models/Almoxarifado/EntradaDocumento.php
Normal file
@@ -0,0 +1,74 @@
|
||||
<?php
|
||||
|
||||
namespace App\Models\Almoxarifado;
|
||||
|
||||
use App\Models\Cadastro\Fornecedor\Fornecedor;
|
||||
use App\Models\Cadastro\OrigemProgramatica;
|
||||
use App\Models\Model;
|
||||
|
||||
class EntradaDocumento extends Model
|
||||
{
|
||||
protected $table = 'almoxarifado_entrada_documento';
|
||||
|
||||
protected $casts = [
|
||||
'data' => 'datetime:d/m/Y',
|
||||
];
|
||||
|
||||
protected $fillable = [
|
||||
'entrada_id',
|
||||
'fornecedor_id',
|
||||
'origem_programatica_id',
|
||||
'tipo_id',
|
||||
'numero_pedido',
|
||||
'numero',
|
||||
'data',
|
||||
];
|
||||
|
||||
protected $hidden = [
|
||||
'created_at',
|
||||
'created_lotacao_id',
|
||||
'created_centro_custo_id',
|
||||
'updated_at',
|
||||
'updated_lotacao_id',
|
||||
'updated_centro_custo_id',
|
||||
];
|
||||
|
||||
public static function boot()
|
||||
{
|
||||
parent::boot();
|
||||
|
||||
self::saved(function($model) {
|
||||
$model = (object) $model->fresh()->getRawOriginal();
|
||||
|
||||
EntradaDocumentoLog::create([
|
||||
'entrada_documento_id' => $model->id,
|
||||
'entrada_id' => $model->entrada_id,
|
||||
'tipo_id' => $model->tipo_id,
|
||||
'fornecedor_id' => $model->fornecedor_id,
|
||||
'numero_pedido' => $model->numero_pedido,
|
||||
'numero' => $model->numero,
|
||||
'data' => $model->data,
|
||||
]);
|
||||
});
|
||||
}
|
||||
|
||||
public function entrada()
|
||||
{
|
||||
return $this->belongsTo(Entrada::class);
|
||||
}
|
||||
|
||||
public function fornecedor()
|
||||
{
|
||||
return $this->belongsTo(Fornecedor::class);
|
||||
}
|
||||
|
||||
public function origemProgramatica()
|
||||
{
|
||||
return $this->belongsTo(OrigemProgramatica::class);
|
||||
}
|
||||
|
||||
public function documentoTipo()
|
||||
{
|
||||
return $this->belongsTo(DocumentoTipo::class);
|
||||
}
|
||||
}
|
||||
33
api/app/Models/Almoxarifado/EntradaDocumentoLog.php
Normal file
33
api/app/Models/Almoxarifado/EntradaDocumentoLog.php
Normal file
@@ -0,0 +1,33 @@
|
||||
<?php
|
||||
|
||||
namespace App\Models\Almoxarifado;
|
||||
|
||||
use App\Models\Model;
|
||||
|
||||
class EntradaDocumentoLog extends Model
|
||||
{
|
||||
protected $table = 'almoxarifado_entrada_documento_log';
|
||||
|
||||
protected $casts = [
|
||||
'data' => 'datetime:d/m/Y',
|
||||
];
|
||||
|
||||
protected $fillable = [
|
||||
'entrada_documento_id',
|
||||
'entrada_id',
|
||||
'fornecedor_id',
|
||||
'tipo_id',
|
||||
'numero_pedido',
|
||||
'numero',
|
||||
'data',
|
||||
];
|
||||
|
||||
protected $hidden = [
|
||||
'created_at',
|
||||
'created_lotacao_id',
|
||||
'created_centro_custo_id',
|
||||
'updated_at',
|
||||
'updated_lotacao_id',
|
||||
'updated_centro_custo_id',
|
||||
];
|
||||
}
|
||||
178
api/app/Models/Almoxarifado/EntradaItem.php
Normal file
178
api/app/Models/Almoxarifado/EntradaItem.php
Normal file
@@ -0,0 +1,178 @@
|
||||
<?php
|
||||
|
||||
namespace App\Models\Almoxarifado;
|
||||
|
||||
use App\Models\Cadastro\Fabricante\Fabricante;
|
||||
use App\Models\Cadastro\Material\Material;
|
||||
use App\Models\Integracao\Bnafar\Medicamento;
|
||||
use App\Models\Model;
|
||||
|
||||
class EntradaItem extends Model
|
||||
{
|
||||
protected $table = 'almoxarifado_entrada_item';
|
||||
|
||||
protected $casts = [
|
||||
'validade_lote' => 'datetime:d/m/Y',
|
||||
'estornado_em' => 'datetime:d/m/Y',
|
||||
];
|
||||
|
||||
protected $fillable = [
|
||||
'entrada_id',
|
||||
'material_id',
|
||||
'integracao_bnafar_medicamento_id',
|
||||
'quantidade',
|
||||
'lote',
|
||||
'validade_lote',
|
||||
'valor_total',
|
||||
'valor_unitario',
|
||||
'numero_empenho',
|
||||
'despesas',
|
||||
'numero_autorizacao_fornecimento',
|
||||
'fabricante_id',
|
||||
'codigo_barras',
|
||||
'estornado_em',
|
||||
'saida_item_estornado_id',
|
||||
];
|
||||
|
||||
protected $hidden = [
|
||||
'entrada_id',
|
||||
'created_at',
|
||||
'created_lotacao_id',
|
||||
'created_centro_custo_id',
|
||||
'updated_at',
|
||||
'updated_lotacao_id',
|
||||
'updated_centro_custo_id',
|
||||
];
|
||||
|
||||
protected $appends = [
|
||||
'possui_lote',
|
||||
'valor_unitario_formatted',
|
||||
'valor_total_formatted',
|
||||
'despesas_formatted',
|
||||
'estornado',
|
||||
];
|
||||
|
||||
public static function boot()
|
||||
{
|
||||
parent::boot();
|
||||
|
||||
self::saved(function($model) {
|
||||
$model = (object) $model->fresh()->getRawOriginal();
|
||||
|
||||
EntradaItemLog::create([
|
||||
'entrada_item_id' => $model->id,
|
||||
'entrada_id' => $model->entrada_id,
|
||||
'material_id' => $model->material_id,
|
||||
'integracao_bnafar_medicamento_id' => $model->integracao_bnafar_medicamento_id,
|
||||
'quantidade' => $model->quantidade,
|
||||
'lote' => $model->lote,
|
||||
'validade_lote' => $model->validade_lote,
|
||||
'valor_total' => $model->valor_total,
|
||||
'valor_unitario' => $model->valor_unitario,
|
||||
'numero_empenho' => $model->numero_empenho,
|
||||
'despesas' => $model->despesas,
|
||||
'numero_autorizacao_fornecimento' => $model->numero_autorizacao_fornecimento,
|
||||
'fabricante_id' => $model->fabricante_id,
|
||||
'codigo_barras' => $model->codigo_barras,
|
||||
'estornado_em' => $model->estornado_em,
|
||||
'saida_item_estornado_id' => $model->saida_item_estornado_id,
|
||||
]);
|
||||
});
|
||||
}
|
||||
|
||||
public function entrada()
|
||||
{
|
||||
return $this->belongsTo(Entrada::class);
|
||||
}
|
||||
|
||||
public function material()
|
||||
{
|
||||
return $this->belongsTo(Material::class);
|
||||
}
|
||||
|
||||
public function integracaoBnafarMedicamento()
|
||||
{
|
||||
return $this->belongsTo(Medicamento::class);
|
||||
}
|
||||
|
||||
public function fabricante()
|
||||
{
|
||||
return $this->belongsTo(Fabricante::class);
|
||||
}
|
||||
|
||||
public function saidaItemEstornado()
|
||||
{
|
||||
return $this->belongsTo(SaidaItem::class);
|
||||
}
|
||||
|
||||
public function saidaItens()
|
||||
{
|
||||
return $this->belongsToMany(SaidaItem::class, 'almoxarifado_saida_item_entrada_item')
|
||||
->using(SaidaItemEntradaItem::class)
|
||||
->as('pivotSaidaItemEntradaItem')
|
||||
->withPivot(['quantidade_saida', 'entrada_item_estornado_id'])
|
||||
->withTimestamps();
|
||||
}
|
||||
|
||||
public function saidaItensTransferencia()
|
||||
{
|
||||
return $this->belongsToMany(
|
||||
SaidaItem::class,
|
||||
'almoxarifado_saida_item_entrada_item_transferencia',
|
||||
'entrada_item_destino_id',
|
||||
'saida_item_origem_id',
|
||||
)
|
||||
->using(SaidaItemEntradaItemTransferencia::class)
|
||||
->as('pivotSaidaItemEntradaItemTransferencia')
|
||||
->withTimestamps();
|
||||
}
|
||||
|
||||
public function reservaItens()
|
||||
{
|
||||
return $this->belongsToMany(ReservaItem::class, 'almoxarifado_reserva_item_entrada_item')
|
||||
->using(ReservaItemEntradaItem::class)
|
||||
->as('pivotReservaItemEntradaItem')
|
||||
->withPivot(['quantidade_saida'])
|
||||
->withTimestamps();
|
||||
}
|
||||
|
||||
public function requisicaoRespotaItens()
|
||||
{
|
||||
return $this->belongsToMany(RequisicaoRespostaItem::class, 'almoxarifado_requisicao_resposta_item_entrada_item')
|
||||
->using(RequisicaoRespostaItemEntradaItem::class)
|
||||
->as('pivotRequisicaoRespostaItemEntradaItem')
|
||||
->withTimestamps();
|
||||
}
|
||||
|
||||
public function getPossuiLoteAttribute()
|
||||
{
|
||||
return !is_null($this->lote);
|
||||
}
|
||||
|
||||
public function getValorUnitarioFormattedAttribute()
|
||||
{
|
||||
return number_format($this->valor_unitario, 6, ',', '.');
|
||||
}
|
||||
|
||||
public function getValorTotalFormattedAttribute()
|
||||
{
|
||||
return number_format($this->valor_total, 6, ',', '.');
|
||||
}
|
||||
|
||||
public function getDespesasFormattedAttribute()
|
||||
{
|
||||
return number_format($this->despesas, 6, ',', '.');
|
||||
}
|
||||
|
||||
public function getEstornadoAttribute()
|
||||
{
|
||||
return !is_null($this->estornado_em);
|
||||
}
|
||||
|
||||
public function getHasSaidasFinalizadasAttribute()
|
||||
{
|
||||
return $this->saidaItens()
|
||||
->whereHas('saida', fn ($q) => $q->where('finalizada', true))
|
||||
->count() > 0;
|
||||
}
|
||||
}
|
||||
44
api/app/Models/Almoxarifado/EntradaItemLog.php
Normal file
44
api/app/Models/Almoxarifado/EntradaItemLog.php
Normal file
@@ -0,0 +1,44 @@
|
||||
<?php
|
||||
|
||||
namespace App\Models\Almoxarifado;
|
||||
|
||||
use App\Models\Model;
|
||||
|
||||
class EntradaItemLog extends Model
|
||||
{
|
||||
protected $table = 'almoxarifado_entrada_item_log';
|
||||
|
||||
protected $casts = [
|
||||
'validade_lote' => 'datetime:d/m/Y',
|
||||
'estornado_em' => 'datetime:d/m/Y',
|
||||
];
|
||||
|
||||
protected $fillable = [
|
||||
'entrada_item_id',
|
||||
'entrada_id',
|
||||
'material_id',
|
||||
'integracao_bnafar_medicamento_id',
|
||||
'quantidade',
|
||||
'lote',
|
||||
'validade_lote',
|
||||
'valor_total',
|
||||
'valor_unitario',
|
||||
'numero_empenho',
|
||||
'despesas',
|
||||
'numero_autorizacao_fornecimento',
|
||||
'fabricante_id',
|
||||
'codigo_barras',
|
||||
'estornado_em',
|
||||
'saida_item_estornado_id',
|
||||
];
|
||||
|
||||
protected $hidden = [
|
||||
'entrada_id',
|
||||
'created_at',
|
||||
'created_lotacao_id',
|
||||
'created_centro_custo_id',
|
||||
'updated_at',
|
||||
'updated_lotacao_id',
|
||||
'updated_centro_custo_id',
|
||||
];
|
||||
}
|
||||
32
api/app/Models/Almoxarifado/EntradaLog.php
Normal file
32
api/app/Models/Almoxarifado/EntradaLog.php
Normal file
@@ -0,0 +1,32 @@
|
||||
<?php
|
||||
|
||||
namespace App\Models\Almoxarifado;
|
||||
|
||||
use App\Models\Model;
|
||||
|
||||
class EntradaLog extends Model
|
||||
{
|
||||
protected $table = 'almoxarifado_entrada_log';
|
||||
|
||||
protected $casts = [
|
||||
'finalizada' => 'boolean',
|
||||
'finalizada_em' => 'datetime:d/m/Y',
|
||||
];
|
||||
|
||||
protected $fillable = [
|
||||
'entrada_id',
|
||||
'centro_custo_id',
|
||||
'tipo_id',
|
||||
'finalizada',
|
||||
'finalizada_em',
|
||||
];
|
||||
|
||||
protected $hidden = [
|
||||
'created_at',
|
||||
'created_lotacao_id',
|
||||
'created_centro_custo_id',
|
||||
'updated_at',
|
||||
'updated_lotacao_id',
|
||||
'updated_centro_custo_id',
|
||||
];
|
||||
}
|
||||
20
api/app/Models/Almoxarifado/EntradaTipo.php
Normal file
20
api/app/Models/Almoxarifado/EntradaTipo.php
Normal file
@@ -0,0 +1,20 @@
|
||||
<?php
|
||||
|
||||
namespace App\Models\Almoxarifado;
|
||||
|
||||
use App\Models\Model;
|
||||
|
||||
class EntradaTipo extends Model
|
||||
{
|
||||
protected $table = 'almoxarifado_entrada_tipo';
|
||||
|
||||
protected $fillable = [
|
||||
'id',
|
||||
'nome',
|
||||
];
|
||||
|
||||
protected $hidden = [
|
||||
'created_at',
|
||||
'updated_at',
|
||||
];
|
||||
}
|
||||
50
api/app/Models/Almoxarifado/Inventario.php
Normal file
50
api/app/Models/Almoxarifado/Inventario.php
Normal file
@@ -0,0 +1,50 @@
|
||||
<?php
|
||||
|
||||
namespace App\Models\Almoxarifado;
|
||||
|
||||
use App\Models\Cadastro\Material\Material;
|
||||
use App\Models\Integracao\Bnafar\Medicamento;
|
||||
use App\Models\Model;
|
||||
|
||||
class Inventario extends Model
|
||||
{
|
||||
protected $table = 'almoxarifado_inventario';
|
||||
|
||||
protected $casts = [
|
||||
'finalizado' => 'boolean',
|
||||
'finalizado_em' => 'datetime:d/m/Y',
|
||||
'validade_lote' => 'datetime:d/m/Y',
|
||||
'is_novo_lote' => 'boolean',
|
||||
];
|
||||
|
||||
protected $fillable = [
|
||||
'finalizado',
|
||||
'finalizado_em',
|
||||
'inventario_id',
|
||||
'material_id',
|
||||
'integracao_bnafar_medicamento_id',
|
||||
'lote',
|
||||
'validade_lote',
|
||||
'contagem',
|
||||
'is_novo_lote',
|
||||
];
|
||||
|
||||
protected $hidden = [
|
||||
'created_at',
|
||||
'created_lotacao_id',
|
||||
'created_centro_custo_id',
|
||||
'updated_at',
|
||||
'updated_lotacao_id',
|
||||
'updated_centro_custo_id',
|
||||
];
|
||||
|
||||
public function material()
|
||||
{
|
||||
return $this->belongsTo(Material::class);
|
||||
}
|
||||
|
||||
public function integracaoBnafarMedicamento()
|
||||
{
|
||||
return $this->belongsTo(Medicamento::class);
|
||||
}
|
||||
}
|
||||
52
api/app/Models/Almoxarifado/MotivoBaixa.php
Normal file
52
api/app/Models/Almoxarifado/MotivoBaixa.php
Normal file
@@ -0,0 +1,52 @@
|
||||
<?php
|
||||
|
||||
namespace App\Models\Almoxarifado;
|
||||
|
||||
use App\Models\Model;
|
||||
use Illuminate\Database\Eloquent\SoftDeletes;
|
||||
|
||||
class MotivoBaixa extends Model
|
||||
{
|
||||
use SoftDeletes;
|
||||
|
||||
protected $table = 'almoxarifado_motivo_baixa';
|
||||
|
||||
protected $casts = [
|
||||
'justificar' => 'boolean',
|
||||
];
|
||||
|
||||
protected $fillable = [
|
||||
'tipo_id',
|
||||
'descricao',
|
||||
'justificar',
|
||||
];
|
||||
|
||||
protected $hidden = [
|
||||
'created_at',
|
||||
'created_lotacao_id',
|
||||
'created_centro_custo_id',
|
||||
'updated_at',
|
||||
'updated_lotacao_id',
|
||||
'updated_centro_custo_id',
|
||||
'deleted_at',
|
||||
'deleted_lotacao_id',
|
||||
'deleted_centro_custo_id',
|
||||
];
|
||||
|
||||
public function tipo()
|
||||
{
|
||||
return $this->belongsTo(MotivoBaixaTipo::class);
|
||||
}
|
||||
|
||||
public function baixas()
|
||||
{
|
||||
return $this->hasMany(SaidaBaixa::class, 'motivo_id');
|
||||
}
|
||||
|
||||
public function getIsAllowedToDeleteAttribute()
|
||||
{
|
||||
return $this->hasNoOne([
|
||||
'baixas',
|
||||
]);
|
||||
}
|
||||
}
|
||||
20
api/app/Models/Almoxarifado/MotivoBaixaTipo.php
Normal file
20
api/app/Models/Almoxarifado/MotivoBaixaTipo.php
Normal file
@@ -0,0 +1,20 @@
|
||||
<?php
|
||||
|
||||
namespace App\Models\Almoxarifado;
|
||||
|
||||
use App\Models\Model;
|
||||
|
||||
class MotivoBaixaTipo extends Model
|
||||
{
|
||||
protected $table = 'almoxarifado_motivo_baixa_tipo';
|
||||
|
||||
protected $fillable = [
|
||||
'id',
|
||||
'nome',
|
||||
];
|
||||
|
||||
protected $hidden = [
|
||||
'created_at',
|
||||
'updated_at',
|
||||
];
|
||||
}
|
||||
@@ -0,0 +1,41 @@
|
||||
<?php
|
||||
|
||||
namespace App\Models\Almoxarifado;
|
||||
|
||||
use App\Models\Cadastro\Estabelecimento\CentroCusto;
|
||||
use App\Models\Cadastro\Grupo\Grupo;
|
||||
use App\Models\Model;
|
||||
|
||||
class ParametrizacaoControleEstoqueGrupo extends Model
|
||||
{
|
||||
protected $table = 'almoxarifado_parametrizacao_controle_estoque_grupo';
|
||||
|
||||
protected $fillable = [
|
||||
'centro_custo_id',
|
||||
'grupo_id',
|
||||
];
|
||||
|
||||
protected $hidden = [
|
||||
'created_at',
|
||||
'created_lotacao_id',
|
||||
'created_centro_custo_id',
|
||||
'updated_at',
|
||||
'updated_lotacao_id',
|
||||
'updated_centro_custo_id',
|
||||
];
|
||||
|
||||
public function centroCusto()
|
||||
{
|
||||
return $this->belongsTo(CentroCusto::class);
|
||||
}
|
||||
|
||||
public function grupo()
|
||||
{
|
||||
return $this->belongsTo(Grupo::class);
|
||||
}
|
||||
|
||||
public function subgrupos()
|
||||
{
|
||||
return $this->hasMany(ParametrizacaoControleEstoqueSubgrupo::class);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,34 @@
|
||||
<?php
|
||||
|
||||
namespace App\Models\Almoxarifado;
|
||||
|
||||
use App\Models\Cadastro\Subgrupo\Subgrupo;
|
||||
use App\Models\Model;
|
||||
|
||||
class ParametrizacaoControleEstoqueSubgrupo extends Model
|
||||
{
|
||||
protected $table = 'almoxarifado_parametrizacao_controle_estoque_subgrupo';
|
||||
|
||||
protected $fillable = [
|
||||
'subgrupo_id',
|
||||
];
|
||||
|
||||
protected $hidden = [
|
||||
'created_at',
|
||||
'created_lotacao_id',
|
||||
'created_centro_custo_id',
|
||||
'updated_at',
|
||||
'updated_lotacao_id',
|
||||
'updated_centro_custo_id',
|
||||
];
|
||||
|
||||
public function parametrizacaoControleEstoqueGrupo()
|
||||
{
|
||||
return $this->belongsTo(ParametrizacaoControleEstoqueGrupo::class);
|
||||
}
|
||||
|
||||
public function subgrupo()
|
||||
{
|
||||
return $this->belongsTo(Subgrupo::class);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
<?php
|
||||
|
||||
namespace App\Models\Almoxarifado;
|
||||
|
||||
use App\Models\Cadastro\Grupo\Grupo;
|
||||
use App\Models\Cadastro\Material\Material;
|
||||
use App\Models\Model;
|
||||
|
||||
class ParametrizacaoDispensacaoMateriais extends Model
|
||||
{
|
||||
protected $table = 'almoxarifado_parametrizacao_dispensacao';
|
||||
|
||||
protected $fillable = [
|
||||
'grupo_id',
|
||||
'material_id',
|
||||
];
|
||||
|
||||
protected $hidden = [
|
||||
'created_at',
|
||||
'created_lotacao_id',
|
||||
'created_centro_custo_id',
|
||||
'updated_at',
|
||||
'updated_lotacao_id',
|
||||
'updated_centro_custo_id',
|
||||
];
|
||||
|
||||
public function grupo()
|
||||
{
|
||||
return $this->belongsTo(Grupo::class);
|
||||
}
|
||||
|
||||
public function material()
|
||||
{
|
||||
return $this->belongsTo(Material::class);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
<?php
|
||||
|
||||
namespace App\Models\Almoxarifado;
|
||||
|
||||
use App\Models\Cadastro\Estabelecimento\CentroCusto;
|
||||
use App\Models\Model;
|
||||
|
||||
class ParametrizacaoDispensacaoUnidade extends Model
|
||||
{
|
||||
protected $table = 'almoxarifado_parametrizacao_dispensacao_unidade';
|
||||
|
||||
protected $fillable = [
|
||||
'centro_custo_id',
|
||||
];
|
||||
|
||||
protected $hidden = [
|
||||
'created_at',
|
||||
'created_lotacao_id',
|
||||
'created_centro_custo_id',
|
||||
'updated_at',
|
||||
'updated_lotacao_id',
|
||||
'updated_centro_custo_id',
|
||||
];
|
||||
|
||||
public function centroCusto()
|
||||
{
|
||||
return $this->belongsTo(CentroCusto::class);
|
||||
}
|
||||
}
|
||||
53
api/app/Models/Almoxarifado/ParametrizacaoEstoque.php
Normal file
53
api/app/Models/Almoxarifado/ParametrizacaoEstoque.php
Normal file
@@ -0,0 +1,53 @@
|
||||
<?php
|
||||
|
||||
namespace App\Models\Almoxarifado;
|
||||
|
||||
use App\Models\Cadastro\Estabelecimento\CentroCusto;
|
||||
use App\Models\Cadastro\Material\Material;
|
||||
use App\Models\Model;
|
||||
|
||||
class ParametrizacaoEstoque extends Model
|
||||
{
|
||||
protected $table = 'almoxarifado_parametrizacao_estoque';
|
||||
|
||||
protected $fillable = [
|
||||
'centro_custo_id',
|
||||
'material_id',
|
||||
'estoque_minimo',
|
||||
'estoque_maximo',
|
||||
];
|
||||
|
||||
protected $hidden = [
|
||||
'created_at',
|
||||
'created_lotacao_id',
|
||||
'created_centro_custo_id',
|
||||
'updated_at',
|
||||
'updated_lotacao_id',
|
||||
'updated_centro_custo_id',
|
||||
];
|
||||
|
||||
protected $appends = [
|
||||
'has_estoque_minimo',
|
||||
'has_estoque_maximo',
|
||||
];
|
||||
|
||||
public function centroCusto()
|
||||
{
|
||||
return $this->belongsTo(CentroCusto::class);
|
||||
}
|
||||
|
||||
public function material()
|
||||
{
|
||||
return $this->belongsTo(Material::class);
|
||||
}
|
||||
|
||||
public function getHasEstoqueMinimo()
|
||||
{
|
||||
return !is_null($this->estoque_minimo);
|
||||
}
|
||||
|
||||
public function getHasEstoqueMaximo()
|
||||
{
|
||||
return !is_null($this->estoque_maximo);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,46 @@
|
||||
<?php
|
||||
|
||||
namespace App\Models\Almoxarifado;
|
||||
|
||||
use App\Models\Cadastro\Estabelecimento\CentroCusto;
|
||||
use App\Models\Cadastro\Grupo\Grupo;
|
||||
use App\Models\Model;
|
||||
|
||||
class ParametrizacaoPortalDivulgacaoGrupo extends Model
|
||||
{
|
||||
protected $table = 'almoxarifado_parametrizacao_portal_divulgacao_grupo';
|
||||
|
||||
protected $fillable = [
|
||||
'centro_custo_id',
|
||||
'grupo_id',
|
||||
];
|
||||
|
||||
protected $hidden = [
|
||||
'created_at',
|
||||
'created_lotacao_id',
|
||||
'created_centro_custo_id',
|
||||
'updated_at',
|
||||
'updated_lotacao_id',
|
||||
'updated_centro_custo_id',
|
||||
];
|
||||
|
||||
public function centroCusto()
|
||||
{
|
||||
return $this->belongsTo(CentroCusto::class);
|
||||
}
|
||||
|
||||
public function grupo()
|
||||
{
|
||||
return $this->belongsTo(Grupo::class);
|
||||
}
|
||||
|
||||
public function subgrupos()
|
||||
{
|
||||
return $this->hasMany(ParametrizacaoPortalDivulgacaoSubgrupo::class);
|
||||
}
|
||||
|
||||
public function material()
|
||||
{
|
||||
return $this->hasMany(ParametrizacaoPortalDivulgacaoMaterialgrupo::class);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
<?php
|
||||
|
||||
namespace App\Models\Almoxarifado;
|
||||
|
||||
use App\Models\Model;
|
||||
|
||||
class ParametrizacaoPortalDivulgacaoMaterialgrupo extends Model
|
||||
{
|
||||
protected $table = 'almoxarifado_parametrizacao_portal_divulgacao_item';
|
||||
|
||||
protected $fillable = [
|
||||
'grupo_id',
|
||||
'material_id',
|
||||
];
|
||||
|
||||
protected $hidden = [
|
||||
'created_at',
|
||||
'created_lotacao_id',
|
||||
'created_centro_custo_id',
|
||||
'updated_at',
|
||||
'updated_lotacao_id',
|
||||
'updated_centro_custo_id',
|
||||
];
|
||||
|
||||
public function parametrizacaoPortalDivulgacaoGrupo()
|
||||
{
|
||||
return $this->belongsTo(ParametrizacaoPortalDivulgacaoGrupo::class);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,34 @@
|
||||
<?php
|
||||
|
||||
namespace App\Models\Almoxarifado;
|
||||
|
||||
use App\Models\Cadastro\Subgrupo\Subgrupo;
|
||||
use App\Models\Model;
|
||||
|
||||
class ParametrizacaoPortalDivulgacaoSubgrupo extends Model
|
||||
{
|
||||
protected $table = 'almoxarifado_parametrizacao_portal_divulgacao_subgrupo';
|
||||
|
||||
protected $fillable = [
|
||||
'subgrupo_id',
|
||||
];
|
||||
|
||||
protected $hidden = [
|
||||
'created_at',
|
||||
'created_lotacao_id',
|
||||
'created_centro_custo_id',
|
||||
'updated_at',
|
||||
'updated_lotacao_id',
|
||||
'updated_centro_custo_id',
|
||||
];
|
||||
|
||||
public function parametrizacaoPortalDivulgacaoGrupo()
|
||||
{
|
||||
return $this->belongsTo(ParametrizacaoPortalDivulgacaoGrupo::class);
|
||||
}
|
||||
|
||||
public function subgrupo()
|
||||
{
|
||||
return $this->belongsTo(Subgrupo::class);
|
||||
}
|
||||
}
|
||||
32
api/app/Models/Almoxarifado/ParametrizacaoRequisicao.php
Normal file
32
api/app/Models/Almoxarifado/ParametrizacaoRequisicao.php
Normal file
@@ -0,0 +1,32 @@
|
||||
<?php
|
||||
|
||||
namespace App\Models\Almoxarifado;
|
||||
|
||||
use App\Models\Model;
|
||||
|
||||
class ParametrizacaoRequisicao extends Model
|
||||
{
|
||||
protected $table = 'almoxarifado_parametrizacao_requisicao';
|
||||
|
||||
protected $casts = [
|
||||
'numero_requisicao_automatico' => 'boolean',
|
||||
'permite_requisitar_materiais_sem_estoque' => 'boolean',
|
||||
'motivo_obrigatorio' => 'boolean'
|
||||
];
|
||||
|
||||
protected $fillable = [
|
||||
'numero_requisicao_automatico',
|
||||
'permite_requisitar_materiais_sem_estoque',
|
||||
'prazo_validade',
|
||||
'motivo_obrigatorio'
|
||||
];
|
||||
|
||||
protected $hidden = [
|
||||
'created_at',
|
||||
'created_lotacao_id',
|
||||
'created_centro_custo_id',
|
||||
'updated_at',
|
||||
'updated_lotacao_id',
|
||||
'updated_centro_custo_id',
|
||||
];
|
||||
}
|
||||
46
api/app/Models/Almoxarifado/Requisicao.php
Normal file
46
api/app/Models/Almoxarifado/Requisicao.php
Normal file
@@ -0,0 +1,46 @@
|
||||
<?php
|
||||
|
||||
namespace App\Models\Almoxarifado;
|
||||
|
||||
use App\Models\Cadastro\Estabelecimento\CentroCusto;
|
||||
use App\Models\Model;
|
||||
|
||||
class Requisicao extends Model
|
||||
{
|
||||
protected $table = 'almoxarifado_requisicao';
|
||||
|
||||
protected $fillable = [
|
||||
'status_id',
|
||||
'centro_custo_id',
|
||||
'numero',
|
||||
];
|
||||
|
||||
protected $hidden = [
|
||||
'created_at',
|
||||
'created_lotacao_id',
|
||||
'created_centro_custo_id',
|
||||
'updated_at',
|
||||
'updated_lotacao_id',
|
||||
'updated_centro_custo_id',
|
||||
];
|
||||
|
||||
public function status()
|
||||
{
|
||||
return $this->belongsTo(RequisicaoStatus::class);
|
||||
}
|
||||
|
||||
public function centroCusto()
|
||||
{
|
||||
return $this->belongsTo(CentroCusto::class);
|
||||
}
|
||||
|
||||
public function itens()
|
||||
{
|
||||
return $this->hasMany(RequisicaoItem::class);
|
||||
}
|
||||
|
||||
public function respostas()
|
||||
{
|
||||
return $this->hasMany(RequisicaoResposta::class);
|
||||
}
|
||||
}
|
||||
41
api/app/Models/Almoxarifado/RequisicaoItem.php
Normal file
41
api/app/Models/Almoxarifado/RequisicaoItem.php
Normal file
@@ -0,0 +1,41 @@
|
||||
<?php
|
||||
|
||||
namespace App\Models\Almoxarifado;
|
||||
|
||||
use App\Models\Cadastro\Material\Material;
|
||||
use App\Models\Model;
|
||||
|
||||
class RequisicaoItem extends Model
|
||||
{
|
||||
protected $table = 'almoxarifado_requisicao_item';
|
||||
|
||||
protected $fillable = [
|
||||
'material_id',
|
||||
'quantidade',
|
||||
];
|
||||
|
||||
protected $hidden = [
|
||||
'requisicao_id',
|
||||
'created_at',
|
||||
'created_lotacao_id',
|
||||
'created_centro_custo_id',
|
||||
'updated_at',
|
||||
'updated_lotacao_id',
|
||||
'updated_centro_custo_id',
|
||||
];
|
||||
|
||||
public function requisicao()
|
||||
{
|
||||
return $this->belongsTo(Requisicao::class);
|
||||
}
|
||||
|
||||
public function material()
|
||||
{
|
||||
return $this->belongsTo(Material::class);
|
||||
}
|
||||
|
||||
public function respostaItens()
|
||||
{
|
||||
return $this->hasMany(RequisicaoRespostaItem::class);
|
||||
}
|
||||
}
|
||||
37
api/app/Models/Almoxarifado/RequisicaoPermissao.php
Normal file
37
api/app/Models/Almoxarifado/RequisicaoPermissao.php
Normal file
@@ -0,0 +1,37 @@
|
||||
<?php
|
||||
|
||||
namespace App\Models\Almoxarifado;
|
||||
|
||||
use App\Models\Cadastro\Estabelecimento\CentroCusto;
|
||||
use App\Models\Cadastro\Material\Material;
|
||||
use App\Models\Model;
|
||||
|
||||
class RequisicaoPermissao extends Model
|
||||
{
|
||||
protected $table = 'almoxarifado_requisicao_permissao';
|
||||
|
||||
protected $fillable = [
|
||||
'centro_custo_requisitante_id',
|
||||
'material_id',
|
||||
'estoque_maximo',
|
||||
];
|
||||
|
||||
protected $hidden = [
|
||||
'created_at',
|
||||
'created_lotacao_id',
|
||||
'created_centro_custo_id',
|
||||
'updated_at',
|
||||
'updated_lotacao_id',
|
||||
'updated_centro_custo_id',
|
||||
];
|
||||
|
||||
public function centroCustoRequisitante()
|
||||
{
|
||||
return $this->belongsTo(CentroCusto::class);
|
||||
}
|
||||
|
||||
public function material()
|
||||
{
|
||||
return $this->belongsTo(Material::class);
|
||||
}
|
||||
}
|
||||
72
api/app/Models/Almoxarifado/RequisicaoResposta.php
Normal file
72
api/app/Models/Almoxarifado/RequisicaoResposta.php
Normal file
@@ -0,0 +1,72 @@
|
||||
<?php
|
||||
|
||||
namespace App\Models\Almoxarifado;
|
||||
|
||||
use App\Models\Cadastro\SujeitoAtencao\Lotacao;
|
||||
use App\Models\Model;
|
||||
|
||||
class RequisicaoResposta extends Model
|
||||
{
|
||||
protected $table = 'almoxarifado_requisicao_resposta';
|
||||
|
||||
protected $casts = [
|
||||
'enviada_em' => 'datetime:d/m/Y H:i:s',
|
||||
'recebida_em' => 'datetime:d/m/Y H:i:s',
|
||||
];
|
||||
|
||||
protected $fillable = [
|
||||
'status_id',
|
||||
'requisicao_id',
|
||||
'reserva_id',
|
||||
'saida_id',
|
||||
'entrada_id',
|
||||
'observacoes',
|
||||
'enviada_em',
|
||||
'enviada_lotacao_id',
|
||||
'recebida_em',
|
||||
];
|
||||
|
||||
protected $hidden = [
|
||||
'created_at',
|
||||
'created_lotacao_id',
|
||||
'created_centro_custo_id',
|
||||
'updated_at',
|
||||
'updated_lotacao_id',
|
||||
'updated_centro_custo_id',
|
||||
];
|
||||
|
||||
public function status()
|
||||
{
|
||||
return $this->belongsTo(RequisicaoRespostaStatus::class);
|
||||
}
|
||||
|
||||
public function requisicao()
|
||||
{
|
||||
return $this->belongsTo(Requisicao::class);
|
||||
}
|
||||
|
||||
public function reserva()
|
||||
{
|
||||
return $this->belongsTo(Reserva::class);
|
||||
}
|
||||
|
||||
public function saida()
|
||||
{
|
||||
return $this->belongsTo(Saida::class);
|
||||
}
|
||||
|
||||
public function entrada()
|
||||
{
|
||||
return $this->belongsTo(Entrada::class);
|
||||
}
|
||||
|
||||
public function enviadaLotacao()
|
||||
{
|
||||
return $this->belongsTo(Lotacao::class);
|
||||
}
|
||||
|
||||
public function itens()
|
||||
{
|
||||
return $this->hasMany(RequisicaoRespostaItem::class);
|
||||
}
|
||||
}
|
||||
88
api/app/Models/Almoxarifado/RequisicaoRespostaItem.php
Normal file
88
api/app/Models/Almoxarifado/RequisicaoRespostaItem.php
Normal file
@@ -0,0 +1,88 @@
|
||||
<?php
|
||||
|
||||
namespace App\Models\Almoxarifado;
|
||||
|
||||
use App\Models\Model;
|
||||
|
||||
class RequisicaoRespostaItem extends Model
|
||||
{
|
||||
protected $table = 'almoxarifado_requisicao_resposta_item';
|
||||
|
||||
protected $fillable = [
|
||||
'requisicao_item_id',
|
||||
'reserva_item_id',
|
||||
'saida_item_id',
|
||||
'motivo_id',
|
||||
'motivo_outro',
|
||||
];
|
||||
|
||||
protected $hidden = [
|
||||
'requisicao_resposta_id',
|
||||
'created_at',
|
||||
'created_lotacao_id',
|
||||
'created_centro_custo_id',
|
||||
'updated_at',
|
||||
'updated_lotacao_id',
|
||||
'updated_centro_custo_id',
|
||||
];
|
||||
|
||||
protected $appends = [
|
||||
'quantidade_entrada',
|
||||
'quantidade_recebimento',
|
||||
];
|
||||
|
||||
public function requisicaoResposta()
|
||||
{
|
||||
return $this->belongsTo(RequisicaoResposta::class);
|
||||
}
|
||||
|
||||
public function requisicaoItem()
|
||||
{
|
||||
return $this->belongsTo(RequisicaoItem::class);
|
||||
}
|
||||
|
||||
public function reservaItem()
|
||||
{
|
||||
return $this->belongsTo(ReservaItem::class);
|
||||
}
|
||||
|
||||
public function saidaItem()
|
||||
{
|
||||
return $this->belongsTo(SaidaItem::class);
|
||||
}
|
||||
|
||||
public function motivo()
|
||||
{
|
||||
return $this->belongsTo(RequisicaoRespostaItemMotivo::class);
|
||||
}
|
||||
|
||||
public function entradaItens()
|
||||
{
|
||||
return $this->belongsToMany(EntradaItem::class, 'almoxarifado_requisicao_resposta_item_entrada_item')
|
||||
->using(RequisicaoRespostaItemEntradaItem::class)
|
||||
->as('pivotRequisicaoRespostaItemEntradaItem')
|
||||
->withTimestamps();
|
||||
}
|
||||
|
||||
public function recebimentos()
|
||||
{
|
||||
return $this->hasMany(RequisicaoRespostaItemRecebimento::class);
|
||||
}
|
||||
|
||||
public function getQuantidadeEntradaAttribute()
|
||||
{
|
||||
$quantidade = 0;
|
||||
|
||||
$this->entradaItens->map(function ($entradaItem) use (&$quantidade) {
|
||||
|
||||
$quantidade += (int) $entradaItem->quantidade;
|
||||
});
|
||||
|
||||
return $quantidade;
|
||||
}
|
||||
|
||||
public function getQuantidadeRecebimentoAttribute()
|
||||
{
|
||||
return $this->recebimentos->sum('quantidade');
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
<?php
|
||||
|
||||
namespace App\Models\Almoxarifado;
|
||||
|
||||
use App\Models\Pivot;
|
||||
|
||||
class RequisicaoRespostaItemEntradaItem extends Pivot
|
||||
{
|
||||
protected $hidden = [
|
||||
'created_at',
|
||||
'created_lotacao_id',
|
||||
'created_centro_custo_id',
|
||||
'updated_at',
|
||||
'updated_lotacao_id',
|
||||
'updated_centro_custo_id',
|
||||
];
|
||||
}
|
||||
25
api/app/Models/Almoxarifado/RequisicaoRespostaItemMotivo.php
Normal file
25
api/app/Models/Almoxarifado/RequisicaoRespostaItemMotivo.php
Normal file
@@ -0,0 +1,25 @@
|
||||
<?php
|
||||
|
||||
namespace App\Models\Almoxarifado;
|
||||
|
||||
use App\Models\Model;
|
||||
|
||||
class RequisicaoRespostaItemMotivo extends Model
|
||||
{
|
||||
protected $table = 'almoxarifado_requisicao_resposta_item_motivo';
|
||||
|
||||
protected $fillable = [
|
||||
'id',
|
||||
'nome',
|
||||
];
|
||||
|
||||
protected $hidden = [
|
||||
'created_at',
|
||||
'updated_at',
|
||||
];
|
||||
|
||||
public function requisicaoRespostaItens()
|
||||
{
|
||||
return $this->hasMany(RequisicaoRespostaItem::class, 'motivo_id');
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,37 @@
|
||||
<?php
|
||||
|
||||
namespace App\Models\Almoxarifado;
|
||||
|
||||
use App\Models\Model;
|
||||
|
||||
class RequisicaoRespostaItemRecebimento extends Model
|
||||
{
|
||||
protected $table = 'almoxarifado_requisicao_resposta_item_recebimento';
|
||||
|
||||
protected $casts = [
|
||||
'validade_lote' => 'datetime:d/m/Y',
|
||||
];
|
||||
|
||||
protected $fillable = [
|
||||
'entrada_item_origem_id',
|
||||
'quantidade',
|
||||
'lote',
|
||||
'validade_lote',
|
||||
'controlava_estoque'
|
||||
];
|
||||
|
||||
protected $hidden = [
|
||||
'requisicao_resposta_item_id',
|
||||
'created_at',
|
||||
'created_lotacao_id',
|
||||
'created_centro_custo_id',
|
||||
'updated_at',
|
||||
'updated_lotacao_id',
|
||||
'updated_centro_custo_id',
|
||||
];
|
||||
|
||||
public function requisicaoRespostaItem()
|
||||
{
|
||||
return $this->belongsTo(RequisicaoRespostaItem::class);
|
||||
}
|
||||
}
|
||||
25
api/app/Models/Almoxarifado/RequisicaoRespostaStatus.php
Normal file
25
api/app/Models/Almoxarifado/RequisicaoRespostaStatus.php
Normal file
@@ -0,0 +1,25 @@
|
||||
<?php
|
||||
|
||||
namespace App\Models\Almoxarifado;
|
||||
|
||||
use App\Models\Model;
|
||||
|
||||
class RequisicaoRespostaStatus extends Model
|
||||
{
|
||||
protected $table = 'almoxarifado_requisicao_resposta_status';
|
||||
|
||||
protected $fillable = [
|
||||
'id',
|
||||
'nome',
|
||||
];
|
||||
|
||||
protected $hidden = [
|
||||
'created_at',
|
||||
'updated_at',
|
||||
];
|
||||
|
||||
public function requisicaoRespostas()
|
||||
{
|
||||
return $this->hasMany(RequisicaoResposta::class, 'status_id');
|
||||
}
|
||||
}
|
||||
25
api/app/Models/Almoxarifado/RequisicaoStatus.php
Normal file
25
api/app/Models/Almoxarifado/RequisicaoStatus.php
Normal file
@@ -0,0 +1,25 @@
|
||||
<?php
|
||||
|
||||
namespace App\Models\Almoxarifado;
|
||||
|
||||
use App\Models\Model;
|
||||
|
||||
class RequisicaoStatus extends Model
|
||||
{
|
||||
protected $table = 'almoxarifado_requisicao_status';
|
||||
|
||||
protected $fillable = [
|
||||
'id',
|
||||
'nome',
|
||||
];
|
||||
|
||||
protected $hidden = [
|
||||
'created_at',
|
||||
'updated_at',
|
||||
];
|
||||
|
||||
public function requisicoes()
|
||||
{
|
||||
return $this->hasMany(Requisicao::class, 'status_id');
|
||||
}
|
||||
}
|
||||
38
api/app/Models/Almoxarifado/Reserva.php
Normal file
38
api/app/Models/Almoxarifado/Reserva.php
Normal file
@@ -0,0 +1,38 @@
|
||||
<?php
|
||||
|
||||
namespace App\Models\Almoxarifado;
|
||||
|
||||
use App\Models\Model;
|
||||
|
||||
class Reserva extends Model
|
||||
{
|
||||
protected $table = 'almoxarifado_reserva';
|
||||
|
||||
protected $fillable = [
|
||||
'motivo_id',
|
||||
];
|
||||
|
||||
protected $hidden = [
|
||||
'created_at',
|
||||
'created_lotacao_id',
|
||||
'created_centro_custo_id',
|
||||
'updated_at',
|
||||
'updated_lotacao_id',
|
||||
'updated_centro_custo_id',
|
||||
];
|
||||
|
||||
public function motivo()
|
||||
{
|
||||
return $this->belongsTo(ReservaMotivo::class);
|
||||
}
|
||||
|
||||
public function itens()
|
||||
{
|
||||
return $this->hasMany(ReservaItem::class);
|
||||
}
|
||||
|
||||
public function requisicaoResposta()
|
||||
{
|
||||
return $this->hasOne(RequisicaoResposta::class);
|
||||
}
|
||||
}
|
||||
70
api/app/Models/Almoxarifado/ReservaItem.php
Normal file
70
api/app/Models/Almoxarifado/ReservaItem.php
Normal file
@@ -0,0 +1,70 @@
|
||||
<?php
|
||||
|
||||
namespace App\Models\Almoxarifado;
|
||||
|
||||
use App\Models\Cadastro\Material\Material;
|
||||
use App\Models\Model;
|
||||
|
||||
class ReservaItem extends Model
|
||||
{
|
||||
protected $table = 'almoxarifado_reserva_item';
|
||||
|
||||
protected $casts = [
|
||||
'escolheu_entrada_item_manualmente' => 'boolean',
|
||||
];
|
||||
|
||||
protected $fillable = [
|
||||
'material_id',
|
||||
'escolheu_entrada_item_manualmente',
|
||||
];
|
||||
|
||||
protected $hidden = [
|
||||
'reserva_id',
|
||||
'created_at',
|
||||
'created_lotacao_id',
|
||||
'created_centro_custo_id',
|
||||
'updated_at',
|
||||
'updated_lotacao_id',
|
||||
'updated_centro_custo_id',
|
||||
];
|
||||
|
||||
protected $appends = [
|
||||
'quantidade',
|
||||
];
|
||||
|
||||
public function reserva()
|
||||
{
|
||||
return $this->belongsTo(Reserva::class);
|
||||
}
|
||||
|
||||
public function material()
|
||||
{
|
||||
return $this->belongsTo(Material::class);
|
||||
}
|
||||
|
||||
public function entradaItens()
|
||||
{
|
||||
return $this->belongsToMany(EntradaItem::class, 'almoxarifado_reserva_item_entrada_item')
|
||||
->using(ReservaItemEntradaItem::class)
|
||||
->as('pivotReservaItemEntradaItem')
|
||||
->withPivot(['quantidade_saida'])
|
||||
->withTimestamps();
|
||||
}
|
||||
|
||||
public function requisicaoRespostaItem()
|
||||
{
|
||||
return $this->hasOne(RequisicaoRespostaItem::class);
|
||||
}
|
||||
|
||||
public function getQuantidadeAttribute()
|
||||
{
|
||||
$quantidade = 0;
|
||||
|
||||
$this->entradaItens->map(function ($entradaItem) use (&$quantidade) {
|
||||
|
||||
$quantidade += (int) $entradaItem->pivotReservaItemEntradaItem->quantidade_saida;
|
||||
});
|
||||
|
||||
return $quantidade;
|
||||
}
|
||||
}
|
||||
17
api/app/Models/Almoxarifado/ReservaItemEntradaItem.php
Normal file
17
api/app/Models/Almoxarifado/ReservaItemEntradaItem.php
Normal file
@@ -0,0 +1,17 @@
|
||||
<?php
|
||||
|
||||
namespace App\Models\Almoxarifado;
|
||||
|
||||
use App\Models\Pivot;
|
||||
|
||||
class ReservaItemEntradaItem extends Pivot
|
||||
{
|
||||
protected $hidden = [
|
||||
'created_at',
|
||||
'created_lotacao_id',
|
||||
'created_centro_custo_id',
|
||||
'updated_at',
|
||||
'updated_lotacao_id',
|
||||
'updated_centro_custo_id',
|
||||
];
|
||||
}
|
||||
25
api/app/Models/Almoxarifado/ReservaMotivo.php
Normal file
25
api/app/Models/Almoxarifado/ReservaMotivo.php
Normal file
@@ -0,0 +1,25 @@
|
||||
<?php
|
||||
|
||||
namespace App\Models\Almoxarifado;
|
||||
|
||||
use App\Models\Model;
|
||||
|
||||
class ReservaMotivo extends Model
|
||||
{
|
||||
protected $table = 'almoxarifado_reserva_motivo';
|
||||
|
||||
protected $fillable = [
|
||||
'id',
|
||||
'nome',
|
||||
];
|
||||
|
||||
protected $hidden = [
|
||||
'created_at',
|
||||
'updated_at',
|
||||
];
|
||||
|
||||
public function reservas()
|
||||
{
|
||||
return $this->hasMany(Reserva::class, 'motivo_id');
|
||||
}
|
||||
}
|
||||
77
api/app/Models/Almoxarifado/Saida.php
Normal file
77
api/app/Models/Almoxarifado/Saida.php
Normal file
@@ -0,0 +1,77 @@
|
||||
<?php
|
||||
|
||||
namespace App\Models\Almoxarifado;
|
||||
|
||||
use App\Models\Cadastro\Estabelecimento\CentroCusto;
|
||||
use App\Models\Model;
|
||||
|
||||
class Saida extends Model
|
||||
{
|
||||
protected $table = 'almoxarifado_saida';
|
||||
|
||||
protected $casts = [
|
||||
'finalizada' => 'boolean',
|
||||
'finalizada_em' => 'datetime:d/m/Y',
|
||||
];
|
||||
|
||||
protected $fillable = [
|
||||
'centro_custo_id',
|
||||
'tipo_id',
|
||||
'finalizada',
|
||||
'finalizada_em',
|
||||
];
|
||||
|
||||
protected $hidden = [
|
||||
'created_at',
|
||||
'created_lotacao_id',
|
||||
'created_centro_custo_id',
|
||||
'updated_at',
|
||||
'updated_lotacao_id',
|
||||
'updated_centro_custo_id',
|
||||
];
|
||||
|
||||
protected $with = [
|
||||
'requisicao',
|
||||
'baixa',
|
||||
];
|
||||
|
||||
public function centroCusto()
|
||||
{
|
||||
return $this->belongsTo(CentroCusto::class);
|
||||
}
|
||||
|
||||
public function tipo()
|
||||
{
|
||||
return $this->belongsTo(SaidaTipo::class);
|
||||
}
|
||||
|
||||
public function requisicao()
|
||||
{
|
||||
return $this->hasOne(SaidaRequisicao::class);
|
||||
}
|
||||
|
||||
public function transferencia()
|
||||
{
|
||||
return $this->hasOne(SaidaTransferencia::class);
|
||||
}
|
||||
|
||||
public function baixa()
|
||||
{
|
||||
return $this->hasOne(SaidaBaixa::class);
|
||||
}
|
||||
|
||||
public function itens()
|
||||
{
|
||||
return $this->hasMany(SaidaItem::class);
|
||||
}
|
||||
|
||||
public function requisicaoResposta()
|
||||
{
|
||||
return $this->hasOne(RequisicaoResposta::class);
|
||||
}
|
||||
|
||||
public function itensRecusadosTransferencia()
|
||||
{
|
||||
return $this->hasMany(SaidaItemRecusadoTransferencia::class);
|
||||
}
|
||||
}
|
||||
42
api/app/Models/Almoxarifado/SaidaBaixa.php
Normal file
42
api/app/Models/Almoxarifado/SaidaBaixa.php
Normal file
@@ -0,0 +1,42 @@
|
||||
<?php
|
||||
|
||||
namespace App\Models\Almoxarifado;
|
||||
|
||||
use App\Models\Cadastro\SujeitoAtencao\Usuario;
|
||||
use App\Models\Model;
|
||||
|
||||
class SaidaBaixa extends Model
|
||||
{
|
||||
protected $table = 'almoxarifado_saida_baixa';
|
||||
|
||||
protected $fillable = [
|
||||
'saida_id',
|
||||
'motivo_id',
|
||||
'justificativa',
|
||||
'usuario_solicitante_id',
|
||||
];
|
||||
|
||||
protected $hidden = [
|
||||
'created_at',
|
||||
'created_lotacao_id',
|
||||
'created_centro_custo_id',
|
||||
'updated_at',
|
||||
'updated_lotacao_id',
|
||||
'updated_centro_custo_id',
|
||||
];
|
||||
|
||||
public function saida()
|
||||
{
|
||||
return $this->belongsTo(Saida::class);
|
||||
}
|
||||
|
||||
public function motivo()
|
||||
{
|
||||
return $this->belongsTo(MotivoBaixa::class);
|
||||
}
|
||||
|
||||
public function usuarioSolicitante()
|
||||
{
|
||||
return $this->belongsTo(Usuario::class);
|
||||
}
|
||||
}
|
||||
98
api/app/Models/Almoxarifado/SaidaItem.php
Normal file
98
api/app/Models/Almoxarifado/SaidaItem.php
Normal file
@@ -0,0 +1,98 @@
|
||||
<?php
|
||||
|
||||
namespace App\Models\Almoxarifado;
|
||||
|
||||
use App\Models\Cadastro\Material\Material;
|
||||
use App\Models\Farmacia\ReceitaItemEntrega;
|
||||
use App\Models\Model;
|
||||
|
||||
class SaidaItem extends Model
|
||||
{
|
||||
protected $table = 'almoxarifado_saida_item';
|
||||
|
||||
protected $casts = [
|
||||
'escolheu_entrada_item_manualmente' => 'boolean',
|
||||
'estornado_em' => 'datetime:d/m/Y',
|
||||
];
|
||||
|
||||
protected $fillable = [
|
||||
'saida_id',
|
||||
'material_id',
|
||||
'escolheu_entrada_item_manualmente',
|
||||
'estornado_em',
|
||||
];
|
||||
|
||||
protected $hidden = [
|
||||
'saida_id',
|
||||
'created_at',
|
||||
'created_lotacao_id',
|
||||
'created_centro_custo_id',
|
||||
'updated_at',
|
||||
'updated_lotacao_id',
|
||||
'updated_centro_custo_id',
|
||||
];
|
||||
|
||||
protected $appends = [
|
||||
'estornado',
|
||||
'quantidade'
|
||||
];
|
||||
|
||||
public function saida()
|
||||
{
|
||||
return $this->belongsTo(Saida::class);
|
||||
}
|
||||
|
||||
public function material()
|
||||
{
|
||||
return $this->belongsTo(Material::class);
|
||||
}
|
||||
|
||||
public function entradaItens()
|
||||
{
|
||||
return $this->belongsToMany(EntradaItem::class, 'almoxarifado_saida_item_entrada_item')
|
||||
->using(SaidaItemEntradaItem::class)
|
||||
->as('pivotSaidaItemEntradaItem')
|
||||
->withPivot(['quantidade_saida', 'entrada_item_estornado_id'])
|
||||
->withTimestamps();
|
||||
}
|
||||
|
||||
public function entradaItensTransferencia()
|
||||
{
|
||||
return $this->belongsToMany(
|
||||
EntradaItem::class,
|
||||
'almoxarifado_saida_item_entrada_item_transferencia',
|
||||
'saida_item_origem_id',
|
||||
'entrada_item_destino_id',
|
||||
)
|
||||
->using(SaidaItemEntradaItemTransferencia::class)
|
||||
->as('pivotSaidaItemEntradaItemTransferencia')
|
||||
->withTimestamps();
|
||||
}
|
||||
|
||||
public function requisicaoRespostaItem()
|
||||
{
|
||||
return $this->hasOne(RequisicaoRespostaItem::class);
|
||||
}
|
||||
|
||||
public function farmaciaReceitaItemEntrega()
|
||||
{
|
||||
return $this->hasOne(ReceitaItemEntrega::class);
|
||||
}
|
||||
|
||||
public function getEstornadoAttribute()
|
||||
{
|
||||
return !is_null($this->estornado_em);
|
||||
}
|
||||
|
||||
public function getQuantidadeAttribute()
|
||||
{
|
||||
$quantidade = 0;
|
||||
|
||||
$this->entradaItens->map(function ($entradaItem) use (&$quantidade) {
|
||||
|
||||
$quantidade += (int) $entradaItem->pivotSaidaItemEntradaItem->quantidade_saida;
|
||||
});
|
||||
|
||||
return $quantidade;
|
||||
}
|
||||
}
|
||||
17
api/app/Models/Almoxarifado/SaidaItemEntradaItem.php
Normal file
17
api/app/Models/Almoxarifado/SaidaItemEntradaItem.php
Normal file
@@ -0,0 +1,17 @@
|
||||
<?php
|
||||
|
||||
namespace App\Models\Almoxarifado;
|
||||
|
||||
use App\Models\Pivot;
|
||||
|
||||
class SaidaItemEntradaItem extends Pivot
|
||||
{
|
||||
protected $hidden = [
|
||||
'created_at',
|
||||
'created_lotacao_id',
|
||||
'created_centro_custo_id',
|
||||
'updated_at',
|
||||
'updated_lotacao_id',
|
||||
'updated_centro_custo_id',
|
||||
];
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
<?php
|
||||
|
||||
namespace App\Models\Almoxarifado;
|
||||
|
||||
use App\Models\Pivot;
|
||||
|
||||
class SaidaItemEntradaItemTransferencia extends Pivot
|
||||
{
|
||||
protected $hidden = [
|
||||
'created_at',
|
||||
'created_lotacao_id',
|
||||
'created_centro_custo_id',
|
||||
'updated_at',
|
||||
'updated_lotacao_id',
|
||||
'updated_centro_custo_id',
|
||||
];
|
||||
}
|
||||
@@ -0,0 +1,34 @@
|
||||
<?php
|
||||
|
||||
namespace App\Models\Almoxarifado;
|
||||
|
||||
use App\Models\Model;
|
||||
|
||||
class SaidaItemRecusadoTransferencia extends Model
|
||||
{
|
||||
protected $table = 'almoxarifado_saida_item_recusado_transferencia';
|
||||
|
||||
protected $fillable = [
|
||||
'saida_id',
|
||||
'saida_item_id',
|
||||
];
|
||||
|
||||
protected $hidden = [
|
||||
'created_at',
|
||||
'created_lotacao_id',
|
||||
'created_centro_custo_id',
|
||||
'updated_at',
|
||||
'updated_lotacao_id',
|
||||
'updated_centro_custo_id',
|
||||
];
|
||||
|
||||
public function saida()
|
||||
{
|
||||
return $this->belongsTo(Saida::class);
|
||||
}
|
||||
|
||||
public function saidaItem()
|
||||
{
|
||||
return $this->belongsTo(SaidaItem::class);
|
||||
}
|
||||
}
|
||||
48
api/app/Models/Almoxarifado/SaidaRequisicao.php
Normal file
48
api/app/Models/Almoxarifado/SaidaRequisicao.php
Normal file
@@ -0,0 +1,48 @@
|
||||
<?php
|
||||
|
||||
namespace App\Models\Almoxarifado;
|
||||
|
||||
use App\Models\Cadastro\Estabelecimento\CentroCusto;
|
||||
use App\Models\Cadastro\SujeitoAtencao\Usuario;
|
||||
use App\Models\Model;
|
||||
|
||||
class SaidaRequisicao extends Model
|
||||
{
|
||||
protected $table = 'almoxarifado_saida_requisicao';
|
||||
|
||||
protected $casts = [
|
||||
'data' => 'datetime:d/m/Y',
|
||||
];
|
||||
|
||||
protected $fillable = [
|
||||
'saida_id',
|
||||
'centro_custo_id',
|
||||
'usuario_id',
|
||||
'numero',
|
||||
'data',
|
||||
];
|
||||
|
||||
protected $hidden = [
|
||||
'created_at',
|
||||
'created_lotacao_id',
|
||||
'created_centro_custo_id',
|
||||
'updated_at',
|
||||
'updated_lotacao_id',
|
||||
'updated_centro_custo_id',
|
||||
];
|
||||
|
||||
public function saida()
|
||||
{
|
||||
return $this->belongsTo(Saida::class);
|
||||
}
|
||||
|
||||
public function centroCusto()
|
||||
{
|
||||
return $this->belongsTo(CentroCusto::class);
|
||||
}
|
||||
|
||||
public function usuario()
|
||||
{
|
||||
return $this->belongsTo(Usuario::class);
|
||||
}
|
||||
}
|
||||
25
api/app/Models/Almoxarifado/SaidaTipo.php
Normal file
25
api/app/Models/Almoxarifado/SaidaTipo.php
Normal file
@@ -0,0 +1,25 @@
|
||||
<?php
|
||||
|
||||
namespace App\Models\Almoxarifado;
|
||||
|
||||
use App\Models\Model;
|
||||
|
||||
class SaidaTipo extends Model
|
||||
{
|
||||
protected $table = 'almoxarifado_saida_tipo';
|
||||
|
||||
protected $fillable = [
|
||||
'id',
|
||||
'nome',
|
||||
];
|
||||
|
||||
protected $hidden = [
|
||||
'created_at',
|
||||
'updated_at',
|
||||
];
|
||||
|
||||
public function saidas()
|
||||
{
|
||||
return $this->hasMany(Saida::class, 'tipo_id');
|
||||
}
|
||||
}
|
||||
49
api/app/Models/Almoxarifado/SaidaTransferencia.php
Normal file
49
api/app/Models/Almoxarifado/SaidaTransferencia.php
Normal file
@@ -0,0 +1,49 @@
|
||||
<?php
|
||||
|
||||
namespace App\Models\Almoxarifado;
|
||||
|
||||
use App\Models\Cadastro\Estabelecimento\CentroCusto;
|
||||
use App\Models\Cadastro\SujeitoAtencao\Usuario;
|
||||
use App\Models\Model;
|
||||
|
||||
class SaidaTransferencia extends Model
|
||||
{
|
||||
protected $table = 'almoxarifado_saida_transferencia';
|
||||
|
||||
protected $casts = [
|
||||
'confirmado' => 'boolean',
|
||||
'recusado' => 'boolean',
|
||||
];
|
||||
|
||||
protected $fillable = [
|
||||
'saida_id',
|
||||
'centro_custo_id',
|
||||
'usuario_id',
|
||||
'confirmado',
|
||||
'recusado',
|
||||
];
|
||||
|
||||
protected $hidden = [
|
||||
'created_at',
|
||||
'created_lotacao_id',
|
||||
'created_centro_custo_id',
|
||||
'updated_at',
|
||||
'updated_lotacao_id',
|
||||
'updated_centro_custo_id',
|
||||
];
|
||||
|
||||
public function saida()
|
||||
{
|
||||
return $this->belongsTo(Saida::class);
|
||||
}
|
||||
|
||||
public function centroCusto()
|
||||
{
|
||||
return $this->belongsTo(CentroCusto::class);
|
||||
}
|
||||
|
||||
public function usuario()
|
||||
{
|
||||
return $this->belongsTo(Usuario::class);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user