@extends('layouts.layoutMaster') @section('title', 'Editar Produto - ' . ($produto->nome ?? 'Produto')) @section('page-style') @endsection @section('content') @php $podeExcluirProduto = \Perm::pode(auth()->user(), 'produtos.excluir'); $podePatrimonio = \Perm::pode(auth()->user(), 'produtos.patrimonio'); $podeTabelaPrecos = \Perm::pode(auth()->user(), 'produtos.tabela-precos'); $podeManutencao = \Perm::pode(auth()->user(), 'produtos.manutencao'); $podeMovimentacao = \Perm::pode(auth()->user(), 'produtos.movimentacao'); @endphp
@if($errors->any())
    @foreach($errors->all() as $err)
  • {{ $err }}
  • @endforeach
@endif
@csrf @method('PUT')
Foto do Produto
@if(!empty($produto->foto_url)) {{ $produto->nome }} @else
@endif
Formatos: JPG, PNG, WEBP. Tamanho máximo: 10MB
@if(!empty($produto->foto_url)) @endif

R$
R$
R$

Cancelar
@if($podeExcluirProduto)
@endif
@if($podePatrimonio)
Patrimônios Vinculados
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() }}
@forelse($produto->patrimonios as $patrimonio) @empty @endforelse
Nº Série Status Status Locação Valor Aquisição Ações
{{ $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, ',', '.') }}

Nenhum patrimônio cadastrado

@endif @if($podeTabelaPrecos)
Tabelas de Preço do Produto
@forelse($produto->tabelasPreco as $tabela)
{{ $tabela->nome }}
{{ $tabela->descricao }}
@if($tabela->status === 'ativo') Ativa @else Inativa @endif
@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

Nenhum preço configurado

@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) @endif
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, ',', '.') }}
@forelse($produto->manutencoes as $manutencao) @empty @endforelse
Vínculo Qtd Tipo Descrição Início Previsão Custo Status Ações
@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))) }}

Nenhuma manutenção registrada

@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
@if(!$temPatrimonios) @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
@forelse($produto->patrimonios->where('status', 'Ativo') as $pat) @empty @endforelse
Nº Série Status Status Locação Ações
{{ $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
Nenhum patrimônio ativo
@endif
Documentos e Arquivos
Arraste arquivos aqui ou clique para selecionar
PDF, DOC, DOCX, JPG, PNG (máx. 10MB)
Arquivo Tipo Tamanho Data Ações

Nenhum arquivo anexado

@endif
@endsection @section('vendor-script') @endsection @section('page-script') @if(session('success')) @endif @if(session('error')) @endif @endsection