@extends('layouts.layoutMaster') @section('title', 'Gerenciamento de Locações') @section('vendor-style') @endsection @section('content') @php $podeCriarLocacao = \Perm::pode(auth()->user(), 'locacoes.criar'); $podeEditarLocacao = \Perm::pode(auth()->user(), 'locacoes.editar'); $podeAlterarStatusLocacao = \Perm::pode(auth()->user(), 'locacoes.alterar-status'); $podeRetornarLocacaoPerm = \Perm::pode(auth()->user(), 'locacoes.retornar'); $podeRenovarLocacao = \Perm::pode(auth()->user(), 'locacoes.renovar'); $podeContratoPdfLocacao = \Perm::pode(auth()->user(), 'locacoes.contrato-pdf'); @endphp
Em Andamento

{{ $stats['em_andamento'] ?? 0 }}

Atrasadas

{{ $stats['atrasadas'] ?? 0 }}

Valor Total

R$ {{ number_format($stats['valor_total'] ?? 0, 2, ',', '.') }}

Filtros de Busca
@if($podeCriarLocacao) Nova Locação @endif
Locações
@forelse($locacoes as $locacao) @empty @endforelse
Editar Contrato Cliente Período Produtos Valor Total Status
@if($podeEditarLocacao && !in_array($locacao->status, ['encerrado', 'cancelado'])) @else - @endif
#{{ $locacao->numero_contrato }} {{ $locacao->created_at->format('d/m/Y') }}
{{ $locacao->cliente->nome ?? 'N/A' }} @if($locacao->cliente && $locacao->cliente->celular) {{ $locacao->cliente->celular }} @endif
{{ optional($locacao->data_inicio)->format('d/m/Y') }} - {{ optional($locacao->data_fim)->format('d/m/Y') }} {{ $locacao->total_dias }} dias
@if($locacao->produtos->count() > 0) {{ $locacao->produtos->count() }} produto(s) @else - @endif R$ {{ number_format($locacao->valor_total, 2, ',', '.') }} @php $statusColors = [ 'medicao' => 'warning', 'orcamento' => 'secondary', 'aprovado' => 'primary', 'encerrado' => 'success', 'cancelado' => 'danger', 'retirada' => 'info', 'em_andamento' => 'info', 'atrasada' => 'danger' ]; $statusLabels = \App\Domain\Locacao\Models\Locacao::statusList(); @endphp {{ $statusLabels[$locacao->status] ?? $locacao->status }} @if($locacao->estaAtrasada()) Atrasada @endif
Informações do Contrato
Cliente: {{ $locacao->cliente->nome ?? 'N/A' }}
Período: {{ optional($locacao->data_inicio)->format('d/m/Y') }} {{ $locacao->hora_inicio ?? '' }} até {{ optional($locacao->data_fim)->format('d/m/Y') }} {{ $locacao->hora_fim ?? '' }}
Valor: R$ {{ number_format($locacao->valor_total, 2, ',', '.') }}
@php $modelosContratoDisponiveis = ($modelosContratoAtivos ?? collect()); $podeAcionarLocacao = !in_array($locacao->status, ['encerrado', 'cancelado'], true); $podeRetornarLocacao = in_array($locacao->status, ['aprovado', 'em_andamento', 'atrasada', 'retirada'], true); $temPatrimonioPendente = $locacao->produtos ->whereNotNull('id_patrimonio') ->filter(fn($item) => in_array($item->status_retorno, [null, 'pendente'], true)) ->isNotEmpty(); @endphp @if($locacao->status === 'orcamento') @if($podeContratoPdfLocacao) @forelse($modelosContratoDisponiveis as $modeloContrato) @empty @endforelse @endif @if($podeRenovarLocacao) @endif @if($podeAlterarStatusLocacao) @endif @elseif($locacao->status === 'aprovado') @if($podeContratoPdfLocacao) @forelse($modelosContratoDisponiveis as $modeloContrato) @empty @endforelse @endif @if($podeRenovarLocacao) @endif @if($podeRetornarLocacaoPerm) @endif @else @if($podeAcionarLocacao && $podeRenovarLocacao) @endif @if($podeRetornarLocacao && $podeRetornarLocacaoPerm) @endif @endif

Nenhuma locação encontrada

@if(method_exists($locacoes, 'links') && $locacoes->total() > 0)
Mostrando {{ $locacoes->firstItem() }} até {{ $locacoes->lastItem() }} de {{ $locacoes->total() }} registros
{{ $locacoes->appends(request()->query())->links() }}
@endif
@endsection @section('vendor-script') @endsection @section('page-script') @endsection