@extends('layouts.owner') @section('title', __('Faturamento — Lined')) @section('page-title', __('Faturamento')) @section('page-subtitle', __('Resumo financeiro dos agendamentos')) @section('content') @php $summary = (array) ($summary ?? []); $money = fn($v) => 'R$ ' . number_format((float) $v, 2, ',', '.'); $selProfessional = $idprofessional ?? ''; $selProfessionalName = ''; foreach ($professionals as $p) { $p = (object)(array) $p; if ((string)($p->idprofessional ?? '') === (string) $selProfessional) { $selProfessionalName = $p->name ?? ''; break; } } @endphp
@if ($selProfessional !== '' || $dateFrom !== '' || $dateTo !== '') {{ __('Limpar') }} @endif
{{ __('Total ganho') }}
{{ $money($summary['completed_amount'] ?? 0) }}
{{ $summary['completed_count'] ?? 0 }} {{ __('agendamentos finalizados') }}
{{ __('A receber') }}
{{ $money($summary['pending_amount'] ?? 0) }}
{{ $summary['pending_count'] ?? 0 }} {{ __('agendamentos pendentes') }}
{{ $summary['scheduled_count'] ?? 0 }}
{{ __('Agendadas') }}
{{ $summary['pending_count'] ?? 0 }}
{{ __('Pendentes') }}
{{ $summary['completed_count'] ?? 0 }}
{{ __('Finalizadas') }}
{{ $summary['cancelled_count'] ?? 0 }}
{{ __('Canceladas') }}

{{ __('Faturamento por profissional') }}

@if (count($byProfessional) > 0)
@foreach ($byProfessional as $row) @php $r = (object)(array) $row; @endphp @endforeach
{{ __('Profissional') }} {{ __('Agendadas') }} {{ __('Finalizadas') }} {{ __('Total ganho') }}
{{ $r->professional_name ?? '—' }} {{ (int) ($r->scheduled_count ?? 0) }} {{ (int) ($r->completed_count ?? 0) }} {{ $money($r->completed_amount ?? 0) }}
@else

{{ __('Sem dados no período') }}

{{ __('Ajuste os filtros para ver o faturamento.') }}

@endif
@php $statusLabels = [0 => __('Pendente'), 1 => __('Finalizado'), 2 => __('Cancelado')]; $statusClasses = [ 0 => 'bg-amber-400/10 border-amber-400/25 text-amber-400', 1 => 'bg-brand-green/10 border-brand-green/25 text-brand-green', 2 => 'bg-red-500/10 border-red-500/25 text-red-400', ]; @endphp

{{ __('Detalhe dos agendamentos') }}

@if (count($appointments) > 0)
@foreach ($appointments as $appointment) @php $a = (object)(array) $appointment; $st = (int) ($a->status ?? 0); $dateFmt = !empty($a->appointment_date) ? \Carbon\Carbon::parse($a->appointment_date)->format('d/m/Y') : '—'; @endphp @endforeach
{{ __('Cliente') }} {{ __('Data & Hora') }} {{ __('Status') }} {{ __('Valor') }}
{{ $a->names ?? '—' }} {{ $dateFmt }} {{ $a->appointment_interval ?? '' }} {{ $statusLabels[$st] ?? $st }} {{ $money($a->total_price ?? 0) }}
@if ($pagination['last_page'] > 1)

{{ __('Exibindo') }} {{ $pagination['from'] }} {{ __('a') }} {{ $pagination['to'] }} {{ __('de') }} {{ $pagination['total'] }}

@if ($pagination['current_page'] > 1) ← {{ __('Anterior') }} @else ← {{ __('Anterior') }} @endif @for ($i = max(1, $pagination['current_page'] - 2); $i <= min($pagination['last_page'], $pagination['current_page'] + 2); $i++) {{ $i }} @endfor @if ($pagination['current_page'] < $pagination['last_page']) {{ __('Próximo') }} → @else {{ __('Próximo') }} → @endif
@endif @else

{{ __('Nenhum agendamento encontrado') }}

{{ __('Ajuste os filtros para ver os agendamentos.') }}

@endif
@push('scripts') @endpush @endsection