@extends('layouts.app') @section('title', 'Ученики без графика оплаты') {{-- Read-only report — the single GET filter form needs no CSRF. Rendered by StudentsWithoutPaymentScheduleController, which documents what counts as "no schedule". --}} @section('content')

Ученики без графика оплаты

Обучающиеся ученики, у которых не заполнен «График оплаты (уроки по дням)» — для них не считается дата следующей оплаты. Групповой и индивидуальный графики проверяются отдельно: нужен тот, для которого у ученика указан тариф (общий или индивидуальный).

@if ($search !== '') @endif
{{ count($rows) }}
учеников без графика оплаты
@if (empty($rows))
@if ($search !== '') По выбранным фильтрам учеников без графика оплаты нет. @else У всех обучающихся учеников заполнен график оплаты. @endif
@else
@foreach ($rows as $i => $row) {{-- Which of the card's two tables still needs filling in — a kind is missing when the student has its tariff but no rows of that kind; with no tariff at all, both. --}} @php $noTariffs = $row['general_tariff_name'] === null && $row['individual_tariff_name'] === null; $missingGroup = ! $row['has_group'] && ($noTariffs || $row['general_tariff_name'] !== null); $missingIndividual = ! $row['has_individual'] && ($noTariffs || $row['individual_tariff_name'] !== null); @endphp @endforeach
# Ученик Класс Телефон Группы Не заполнен Тарифы Куратор
{{ $i + 1 }} {{ $row['last_name'] }} {{ $row['first_name'] }} {{ $row['class_name'] ?? '—' }} {{ $row['phone'] ?: '—' }} {{ $row['group_names'] ?: '—' }} @if ($missingGroup) Групповые @endif @if ($missingIndividual) Индивидуальные @endif @foreach (['general' => 'Общий', 'individual' => 'Индивидуальный'] as $prefix => $label) @if ($row[$prefix.'_tariff_name'] !== null)
{{ $label }}: {{ $row[$prefix.'_tariff_name'] }} ({{ (int) $row[$prefix.'_lessons_count'] }} ур.)
@endif @endforeach @if ($noTariffs) — @endif
{{ $row['adviser_name'] ?? '—' }}
@endif
@endsection