init commit
All checks were successful
build-api-image / build (push) Successful in 51s

This commit is contained in:
Antonio Lopes dos Santos
2026-08-04 16:52:02 -03:00
commit afec302c3e
11594 changed files with 1636728 additions and 0 deletions

View 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;
}
}