@extends('layouts.layoutMaster') @section('title', 'Detalhes da Locação') @section('content')
@php $periodoQuantidade = max(1, (int) ($locacao->periodo_qtd_exibicao ?? $locacao->quantidade_dias ?? 1)); $periodoUnidadeExibicao = (string) ($locacao->periodo_unidade_exibicao ?? (($locacao->locacao_por_hora_exibicao ?? false) ? 'hora(s)' : 'dia(s)')); $periodoTitulo = ($locacao->locacao_por_hora_exibicao ?? false) ? 'Total de Horas' : 'Total de Dias'; $podeEditarLocacao = \Perm::pode(auth()->user(), 'locacoes.editar'); $podeAlterarStatusLocacao = \Perm::pode(auth()->user(), 'locacoes.alterar-status'); $podeContratoPdfLocacao = \Perm::pode(auth()->user(), 'locacoes.contrato-pdf'); $podeAssinaturaDigitalLocacao = \Perm::pode(auth()->user(), 'locacoes.assinatura-digital'); $subtotalProdutosProprios = (float) (($locacao->produtos ?? collect())->sum(function ($item) { $valorUnitario = (float) ($item->preco_unitario ?? $item->valor_unitario ?? 0); $quantidade = max(1, (int) ($item->quantidade ?? 1)); $periodo = max(1, (int) ($item->periodo_qtd_exibicao ?? 1)); $fator = !empty($item->valor_fechado) ? 1 : $periodo; return $valorUnitario * $quantidade * $fator; })); $subtotalProdutosTerceiros = (float) (($locacao->produtosTerceiros ?? collect())->sum(function ($item) { $valorUnitario = (float) ($item->preco_unitario ?? 0); $quantidade = max(1, (int) ($item->quantidade ?? 1)); $periodo = max(1, (int) ($item->periodo_qtd_exibicao ?? 1)); $fator = !empty($item->valor_fechado) ? 1 : $periodo; return $valorUnitario * $quantidade * $fator; })); $subtotalProdutos = $subtotalProdutosProprios + $subtotalProdutosTerceiros; $subtotalServicos = (float) (($locacao->servicos ?? collect())->sum(function ($item) { return (float) ($item->valor_total ?? 0); })); $descontoResumo = (float) ($locacao->valor_desconto ?? $locacao->desconto ?? 0); $acrescimoResumo = (float) ($locacao->valor_acrescimo ?? $locacao->taxa_entrega ?? 0); @endphp
Locação #{{ $locacao->numero_contrato }}
Criada em {{ $locacao->created_at->format('d/m/Y H:i') }}
@php $statusColors = [ 'orcamento' => 'secondary', 'reserva' => 'primary', 'em_andamento' => 'info', 'finalizada' => 'success', 'cancelada' => 'danger' ]; $statusLabels = [ 'orcamento' => 'Orçamento', 'reserva' => 'Reserva', 'em_andamento' => 'Em Andamento', 'finalizada' => 'Finalizada', 'cancelada' => 'Cancelada' ]; @endphp {{ $statusLabels[$locacao->status] ?? $locacao->status }} @if($podeEditarLocacao) Editar @endif Voltar
Cliente
@if($locacao->cliente)
{{ $locacao->cliente->nome }}

{{ $locacao->cliente->cpf_cnpj ?? 'Não informado' }}

@if($locacao->cliente->email)

{{ $locacao->cliente->email }}

@endif @if($locacao->cliente->celular)

{{ $locacao->cliente->celular }}

@endif @if($locacao->cliente->endereco)

{{ $locacao->cliente->endereco }} @if($locacao->cliente->cidade) , {{ $locacao->cliente->cidade }} @endif @if($locacao->cliente->uf) - {{ $locacao->cliente->uf }} @endif

@endif @else

Cliente não encontrado

@endif
Período da Locação
Data/Hora de Saída
{{ optional($locacao->data_inicio)->format('d/m/Y') ?? '-' }} @if($locacao->hora_inicio) às {{ substr($locacao->hora_inicio, 0, 5) }} @endif
Data/Hora de Retorno
{{ optional($locacao->data_fim)->format('d/m/Y') ?? '-' }} @if($locacao->hora_fim) às {{ substr($locacao->hora_fim, 0, 5) }} @endif
{{ $periodoTitulo }}
{{ $periodoQuantidade }} {{ $periodoUnidadeExibicao }}
Tipo de Locação
{{ ucfirst($locacao->tipo_locacao ?? 'Locação') }}
@if($locacao->data_transporte_ida || $locacao->data_transporte_volta)
Transporte
Ida

{{ optional($locacao->data_transporte_ida)->format('d/m/Y') ?? '-' }} @if($locacao->hora_transporte_ida) às {{ $locacao->hora_transporte_ida }} @endif

Volta

{{ optional($locacao->data_transporte_volta)->format('d/m/Y') ?? '-' }} @if($locacao->hora_transporte_volta) às {{ $locacao->hora_transporte_volta }} @endif

@if($locacao->preferencia_estoque) Estoque calculado pela @if($locacao->preferencia_estoque == 'data_transporte') data do transporte @else data do contrato @endif @endif
@endif @if($locacao->local_entrega)
Endereço de Entrega
{{ $locacao->local_entrega }}
@endif
Produtos Locados
@php $temItensProdutos = (($locacao->produtos ?? collect())->count() + ($locacao->produtosTerceiros ?? collect())->count()) > 0; @endphp @if($temItensProdutos) @foreach($locacao->produtos as $produto) @php $valorUnitarioProduto = (float) ($produto->preco_unitario ?? $produto->valor_unitario ?? 0); $quantidadeProduto = max(1, (int) ($produto->quantidade ?? 1)); $periodoProduto = max(1, (int) ($produto->periodo_qtd_exibicao ?? $periodoQuantidade)); $fatorCobrancaProduto = !empty($produto->valor_fechado) ? 1 : $periodoProduto; $subtotalProduto = $valorUnitarioProduto * $quantidadeProduto * $fatorCobrancaProduto; $dataInicioProduto = optional($produto->data_inicio)->format('d/m') ?? optional($locacao->data_inicio)->format('d/m'); $dataFimProduto = optional($produto->data_fim)->format('d/m') ?? optional($locacao->data_fim)->format('d/m'); $horaInicioProduto = !empty($produto->hora_inicio) ? substr((string) $produto->hora_inicio, 0, 5) : (!empty($locacao->hora_inicio) ? substr((string) $locacao->hora_inicio, 0, 5) : ''); $horaFimProduto = !empty($produto->hora_fim) ? substr((string) $produto->hora_fim, 0, 5) : (!empty($locacao->hora_fim) ? substr((string) $locacao->hora_fim, 0, 5) : ''); @endphp @endforeach @foreach($locacao->produtosTerceiros as $produtoTerceiro) @php $valorUnitarioTerceiro = (float) ($produtoTerceiro->preco_unitario ?? 0); $quantidadeTerceiro = max(1, (int) ($produtoTerceiro->quantidade ?? 1)); $periodoTerceiro = max(1, (int) ($produtoTerceiro->periodo_qtd_exibicao ?? $periodoQuantidade)); $fatorCobrancaTerceiro = !empty($produtoTerceiro->valor_fechado) ? 1 : $periodoTerceiro; $subtotalTerceiro = $valorUnitarioTerceiro * $quantidadeTerceiro * $fatorCobrancaTerceiro; $horaInicioLocacao = !empty($locacao->hora_inicio) ? substr((string) $locacao->hora_inicio, 0, 5) : ''; $horaFimLocacao = !empty($locacao->hora_fim) ? substr((string) $locacao->hora_fim, 0, 5) : ''; @endphp @endforeach @else @endif
Tipo Produto Sala Patrimônio Período Qtd Qtd {{ ($locacao->locacao_por_hora_exibicao ?? false) ? 'Horas' : 'Dias' }} Valor Unit. Subtotal
{{ $produto->produto->nome ?? $produto->descricao ?? 'Item não encontrado' }} @if($produto->sala) {{ $produto->sala->nome }} @else - @endif {{ $produto->patrimonio->codigo_patrimonio ?? $produto->patrimonio->numero_serie ?? '-' }} {{ $dataInicioProduto }}@if($horaInicioProduto) {{ $horaInicioProduto }}@endif - {{ $dataFimProduto }}@if($horaFimProduto) {{ $horaFimProduto }}@endif {{ $quantidadeProduto }} {{ $periodoProduto }} R$ {{ number_format($valorUnitarioProduto, 2, ',', '.') }} R$ {{ number_format($subtotalProduto, 2, ',', '.') }}
{{ $produtoTerceiro->nome_produto ?? $produtoTerceiro->nome_produto_manual ?? ($produtoTerceiro->produtoTerceiro->nome ?? 'Produto de terceiro') }} @if($produtoTerceiro->fornecedor)
{{ $produtoTerceiro->fornecedor->nome ?? '-' }} @endif
@if($produtoTerceiro->sala) {{ $produtoTerceiro->sala->nome }} @else - @endif - {{ optional($locacao->data_inicio)->format('d/m') }}@if($horaInicioLocacao) {{ $horaInicioLocacao }}@endif - {{ optional($locacao->data_fim)->format('d/m') }}@if($horaFimLocacao) {{ $horaFimLocacao }}@endif {{ $quantidadeTerceiro }} {{ $periodoTerceiro }} R$ {{ number_format($valorUnitarioTerceiro, 2, ',', '.') }} R$ {{ number_format($subtotalTerceiro, 2, ',', '.') }}
Nenhum produto adicionado
Subtotal Produtos: R$ {{ number_format($subtotalProdutos, 2, ',', '.') }}
@if($locacao->servicos && $locacao->servicos->count() > 0)
Serviços Adicionais
@foreach($locacao->servicos as $servico) @php $servicoTerceiro = (string) ($servico->tipo_item ?? 'proprio') === 'terceiro'; $valorUnitarioServico = (float) ($servico->preco_unitario ?? $servico->valor_unitario ?? 0); $subtotalServico = (float) ($servico->valor_total ?? 0); @endphp @endforeach
Tipo Descrição Quantidade Qtd {{ ($locacao->locacao_por_hora_exibicao ?? false) ? 'Horas' : 'Dias' }} Valor Unitário Subtotal
@if($servicoTerceiro) @else @endif {{ $servico->descricao }} @if($servicoTerceiro && !empty($servico->fornecedor_nome))
{{ $servico->fornecedor_nome }} @endif
{{ (int) ($servico->quantidade ?? 1) }} {{ (int) ($servico->periodo_qtd_exibicao ?? $periodoQuantidade) }} R$ {{ number_format($valorUnitarioServico, 2, ',', '.') }} R$ {{ number_format($subtotalServico, 2, ',', '.') }}
Subtotal Serviços: R$ {{ number_format($subtotalServicos, 2, ',', '.') }}
@endif @if($locacao->despesas && $locacao->despesas->count() > 0)
Despesas
@foreach($locacao->despesas as $despesa) @endforeach
Tipo Descrição Valor
{{ ucfirst($despesa->tipo) }} {{ $despesa->descricao ?? '-' }} R$ {{ number_format($despesa->valor, 2, ',', '.') }}
Total Despesas: R$ {{ number_format($locacao->despesas->sum('valor'), 2, ',', '.') }}
@endif
@if($locacao->observacoes)
Observações

{{ $locacao->observacoes }}

@endif
Resumo Financeiro
Subtotal Produtos: R$ {{ number_format($subtotalProdutos, 2, ',', '.') }}
Subtotal Serviços: R$ {{ number_format($subtotalServicos, 2, ',', '.') }}
Desconto: - R$ {{ number_format($descontoResumo, 2, ',', '.') }}
Taxa de Entrega: R$ {{ number_format($acrescimoResumo, 2, ',', '.') }}
VALOR TOTAL: R$ {{ number_format($locacao->valor_total, 2, ',', '.') }}
@if(($locacao->status === 'orcamento' || $locacao->status === 'reserva') && $podeAlterarStatusLocacao) @endif @if($locacao->status === 'em_andamento' && $podeAlterarStatusLocacao) @endif @if($locacao->status !== 'finalizada' && $locacao->status !== 'cancelada' && $podeAlterarStatusLocacao) @endif
@if($podeEditarLocacao) Editar @endif @if($podeContratoPdfLocacao || $podeAssinaturaDigitalLocacao) @endif
@endsection @section('vendor-script') @endsection @section('page-script') @endsection