99 lines
2.4 KiB
PHP
99 lines
2.4 KiB
PHP
<?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;
|
|
}
|
|
}
|