Painel do Projeto

@if (session('status'))
{{ session('status') }}
@endif @if ($errors->has('quantidade'))
{{ $errors->first('quantidade') }}
@endif
{{ $projeto->codigo }} @if ($projeto->centroCusto) {{ $projeto->centroCusto->codigo }} @endif Estado: {{ $projeto->estado }}

{{ $projeto->nome }}

Cliente: {{ $projeto->cliente->nome ?? 'Cliente Geral / Não Definido' }} @if (isset($projeto->cliente->nif)) (NIF: {{ $projeto->cliente->nif }}) @endif

{{ $projeto->descricao ?? 'Sem descrição adicionada.' }}

@php $percentagem = $projeto->orcamento_atribuido > 0 ? min(($projeto->custo_atual / $projeto->orcamento_atribuido) * 100, 100) : 0; $excedido = $projeto->custo_atual > $projeto->orcamento_atribuido; @endphp
Orçamento Atribuído {{ number_format($projeto->orcamento_atribuido, 2, ',', '.') }} €
Custo Acumulado Real {{ number_format($projeto->custo_atual, 2, ',', '.') }} €
Margem Absorvida {{ number_format(($projeto->custo_atual / ($projeto->orcamento_atribuido ?: 1)) * 100, 1, ',', '.') }}%

Linhas de Material Aplicado em Obra

Realizado: {{ number_format($projeto->custo_atual, 2, ',', '.') }} €
@forelse($projeto->consumos as $consumo) @empty @endforelse
Data / Hora SKU / Artigo Aplicado Qtd Extratada Custo Unit. Subtotal Motivo / Operação Ações
{{ \Carbon\Carbon::parse($consumo->created_at)->translatedFormat('d M Y - H:i') }} {{ $consumo->artigo->sku }} {{ $consumo->artigo->nome }} {{ $consumo->quantidade }} {{ number_format($consumo->custo_unitario, 2, ',', '.') }} € {{ number_format($consumo->custo_total, 2, ',', '.') }} €
{{ $consumo->motivo }}
@if ($consumo->observacoes)
{{ $consumo->observacoes }}
@endif
@csrf @method('DELETE')
Nenhum consumo material registado neste projeto até ao momento.

Adicionar Linha ao Planeamento

Estipula custos de Mão de Obra ou materiais futuros. O stock e as chaves reais mantêm-se intactos.

@if($projeto->planeamentos->count() > 0)
@csrf @method('DELETE')
@endif
@csrf

Matriz de Custos Estimados Guardada

@forelse($projeto->planeamentos as $plan) @empty @endforelse
SKU / Artigo Simulado Tipo Recurso Qtd Estimada Custo Unitário Subtotal Projetado Ações
{{ $plan->artigo->sku }} {{ $plan->artigo->nome }} {{ $plan->artigo->tipo }} {{ $plan->quantidade }} {{ number_format($plan->custo_unitario, 2, ',', '.') }} € {{ number_format($plan->custo_total, 2, ',', '.') }} €
@csrf @method('DELETE')
Nenhuma linha de estimativa persistida na base de dados para este plano.
@if($projeto->planeamentos->count() > 0) @php // Algoritmo de projeção agregada $custoTotalTeorico = $projeto->custo_atual + $custoPlaneadoAcumulado; $percentagemMargem = $projeto->orcamento_atribuido > 0 ? ($custoTotalTeorico / $projeto->orcamento_atribuido) * 100 : 0; $excedeuPrevisto = $custoTotalTeorico > $projeto->orcamento_atribuido; @endphp
Acumulado em Planeamento + {{ number_format($custoPlaneadoAcumulado, 2, ',', '.') }} €
Custo Total Estimado Final {{ number_format($custoTotalTeorico, 2, ',', '.') }} €
Margem Absorvida Prevista {{ number_format($percentagemMargem, 1, ',', '.') }}%
@endif
@forelse($comparativo as $artId => $data) @php $artigo = $data['artigo']; $plans = $data['planeamentos']; $realConsumos = $data['consumos']; $totalPlaneadoQtd = $plans->sum('quantidade'); $totalPlaneadoCusto = $plans->sum('custo_total'); $totalRealQtd = $realConsumos->sum('quantidade'); $totalRealCusto = $realConsumos->sum('custo_total'); $desvioQtd = $totalRealQtd - $totalPlaneadoQtd; $desvioCusto = $totalRealCusto - $totalPlaneadoCusto; $temDesvioNegativo = $desvioCusto < 0; $temDesvioPositivo = $desvioCusto > 0; @endphp
{{ $artigo->sku }}

{{ $artigo->nome }}

Desvio Orçamental: @if($desvioCusto == 0) 0,00 € (Alinhado) @elseif($temDesvioNegativo) {{ number_format($desvioCusto, 2, ',', '.') }} € (Poupança) @else +{{ number_format($desvioCusto, 2, ',', '.') }} € (Excesso) @endif
Desvio Qtd: @if($desvioQtd == 0) 0 @elseif($desvioQtd < 0) {{ $desvioQtd }} @else +{{ $desvioQtd }} @endif
Total Planeado / Simulado {{ $totalPlaneadoQtd }} un. | {{ number_format($totalPlaneadoCusto, 2, ',', '.') }} €
Total Real Consumido {{ $totalRealQtd }} un. | {{ number_format($totalRealCusto, 2, ',', '.') }} €
Linhas de Planeamento ({{ $plans->count() }})
@if($plans->isEmpty())
Nenhuma estimativa simulada para este artigo.
@else
@foreach($plans as $plan)
{{ $plan->quantidade }} un.
Preço: {{ number_format($plan->custo_unitario, 2, ',', '.') }} € | Total: {{ number_format($plan->custo_total, 2, ',', '.') }} €
@csrf @method('DELETE')
@endforeach
@endif
Consumos Reais ({{ $realConsumos->count() }})
@if($realConsumos->isEmpty())
Nenhum consumo real registado para este artigo.
@else
@foreach($realConsumos as $consumo)
{{ $consumo->quantidade }} un. {{ \Carbon\Carbon::parse($consumo->created_at)->translatedFormat('d M H:i') }}
Total: {{ number_format($consumo->custo_total, 2, ',', '.') }} € | {{ $consumo->motivo }}
@csrf @method('DELETE')
@endforeach
@endif
@empty
Não existem dados de planeamento ou consumo registados neste projeto.
@endforelse