@if($errors->any())
@foreach($errors->all() as $err)
{{ $err }}
@endforeach
@endif
@if($podePatrimonio)
Patrimônios Vinculados
Excluir Selecionados (0 )
Bipagem
Em Massa
Novo Patrimônio
Total
{{ $produto->patrimonios->count() }}
Disponíveis
{{ $produto->patrimonios->where('status_locacao', 'Disponivel')->count() }}
Locados
{{ $produto->patrimonios->where('status_locacao', 'Locado')->count() }}
Manutenção
{{ $produto->patrimonios->where('status_locacao', 'Em Manutencao')->count() }}
Nº Série
Status
Status Locação
Valor Aquisição
Ações
@forelse($produto->patrimonios as $patrimonio)
{{ $patrimonio->numero_serie }}
@php
$statusColors = [
'Ativo' => 'success',
'Inativo' => 'secondary',
'Descarte' => 'danger'
];
@endphp
{{ $patrimonio->status }}
@php
$statusLocacaoColors = [
'Disponivel' => 'success',
'Locado' => 'info',
'Em Manutencao' => 'warning'
];
$statusLocacaoLabels = [
'Disponivel' => 'Disponível',
'Locado' => 'Locado',
'Em Manutencao' => 'Em Manutenção'
];
@endphp
{{ $statusLocacaoLabels[$patrimonio->status_locacao] ?? $patrimonio->status_locacao }}
R$ {{ number_format($patrimonio->valor_aquisicao ?? 0, 2, ',', '.') }}
@empty
Nenhum patrimônio cadastrado
@endforelse
@endif
@if($podeTabelaPrecos)
Tabelas de Preço do Produto
Nova Tabela
@forelse($produto->tabelasPreco as $tabela)
@php
$diasPreenchidos = [];
for ($i = 1; $i <= 30; $i++) {
$campo = 'd' . $i;
if (($tabela->$campo ?? 0) > 0) {
$diasPreenchidos[$i] = $tabela->$campo;
}
}
// Períodos especiais
if (($tabela->d60 ?? 0) > 0) $diasPreenchidos[60] = $tabela->d60;
if (($tabela->d120 ?? 0) > 0) $diasPreenchidos[120] = $tabela->d120;
if (($tabela->d360 ?? 0) > 0) $diasPreenchidos[360] = $tabela->d360;
@endphp
@if(count($diasPreenchidos) > 0)
@foreach($diasPreenchidos as $dias => $valor)
{{ $dias }} dia{{ $dias > 1 ? 's' : '' }}
R$ {{ number_format($valor, 2, ',', '.') }}
@endforeach
@else
@endif
@empty
Nenhuma tabela de preços cadastrada
@endforelse
@endif
@if($podeManutencao)
@php
$produtoTemPatrimonios = $produto->patrimonios->count() > 0;
@endphp
Manutenções do Produto
@if($produtoTemPatrimonios)
Informações
@endif
Nova Manutenção
Em Manutenção
{{ $produto->manutencoes->whereIn('status', ['em_andamento', 'pendente'])->count() }}
Concluídas
{{ $produto->manutencoes->where('status', 'concluida')->count() }}
Total
{{ $produto->manutencoes->count() }}
Custo Total
R$ {{ number_format($produto->manutencoes->sum('custo') + $produto->manutencoes->sum('valor'), 2, ',', '.') }}
Vínculo
Qtd
Tipo
Descrição
Início
Previsão
Custo
Status
Ações
@forelse($produto->manutencoes as $manutencao)
@if($manutencao->id_patrimonio)
Patrimônio: {{ $manutencao->patrimonio->numero_serie ?? ('PAT-' . $manutencao->id_patrimonio) }}
@else
Produto
@endif
{{ $manutencao->id_patrimonio ? 1 : ($manutencao->quantidade ?? 1) }}
@php
$tipoColors = [
'preventiva' => 'info',
'corretiva' => 'warning',
'preditiva' => 'primary',
'emergencial' => 'danger'
];
@endphp
{{ ucfirst($manutencao->tipo) }}
{{ Str::limit($manutencao->descricao, 30) }}
{{ optional($manutencao->data_manutencao)->format('d/m/Y') ?? optional($manutencao->data_entrada)->format('d/m/Y') ?? '-' }}
@if(!empty($manutencao->hora_manutencao))
{{ substr($manutencao->hora_manutencao, 0, 5) }}
@endif
{{ optional($manutencao->data_previsao)->format('d/m/Y') ?? '-' }}
@if(!empty($manutencao->hora_previsao))
{{ substr($manutencao->hora_previsao, 0, 5) }}
@endif
R$ {{ number_format($manutencao->valor ?? $manutencao->custo ?? 0, 2, ',', '.') }}
@php
$statusColors = [
'pendente' => 'info',
'em_andamento' => 'info',
'concluida' => 'success',
'cancelada' => 'danger'
];
@endphp
{{ in_array($manutencao->status, ['em_andamento', 'pendente']) ? 'Em Manutenção' : (ucfirst(str_replace('_', ' ', $manutencao->status))) }}
@empty
Nenhuma manutenção registrada
@endforelse
@endif
@if($podeMovimentacao)
@php
$temPatrimonios = $produto->patrimonios->count() > 0;
$patrimoniosDisponiveis = $produto->patrimonios->where('status', 'Ativo')->where('status_locacao', 'Disponivel')->count();
@endphp
@if($temPatrimonios)
Estoque baseado em Patrimônios
Este produto possui patrimônios cadastrados. O estoque é calculado automaticamente com base na quantidade de patrimônios ativos e disponíveis.
@endif
Controle de Estoque
Movimentações
Ver Contratos
@if(!$temPatrimonios)
Nova Movimentação
@endif
@if($temPatrimonios)
{{ $produto->patrimonios->where('status', 'Ativo')->count() }}
@else
{{ $produto->estoque_total ?? 0 }}
@endif
Estoque Total
@if($temPatrimonios)
{{ $patrimoniosDisponiveis }}
@else
{{ $produto->quantidade ?? 0 }}
@endif
Disponível
@if($temPatrimonios)
{{ $produto->patrimonios->where('status', 'Ativo')->count() - $patrimoniosDisponiveis }}
@else
{{ ($produto->estoque_total ?? 0) - ($produto->quantidade ?? 0) }}
@endif
Em Uso/Locado
@if(!$temPatrimonios)
@else
Detalhamento por Patrimônio
Nº Série
Status
Status Locação
Ações
@forelse($produto->patrimonios->where('status', 'Ativo') as $pat)
{{ $pat->numero_serie }}
{{ $pat->status }}
@if($pat->status_locacao === 'Disponivel')
Disponível
@elseif($pat->status_locacao === 'Locado')
Locado
@else
{{ $pat->status_locacao }}
@endif
Histórico
Contratos
@empty
Nenhum patrimônio ativo
@endforelse
@endif
@endif