index.blade.php 4.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. @extends('layouts.app')
  2. @section('content')
  3. @php
  4. $dayNames = [
  5. 1 => 'Понедельник',
  6. 2 => 'Вторник',
  7. 3 => 'Среда',
  8. 4 => 'Четверг',
  9. 5 => 'Пятница',
  10. 6 => 'Суббота',
  11. 7 => 'Воскресенье',
  12. ];
  13. @endphp
  14. <div class="row mb-3 align-items-center">
  15. <div class="col-md-5">
  16. <h3 class="mb-0">График доставок</h3>
  17. </div>
  18. <div class="col-md-7">
  19. <div class="d-flex flex-wrap gap-2 justify-content-md-end align-items-center">
  20. <a href="{{ route('schedule.deliveries', ['week' => $previousWeek]) }}" class="btn btn-sm btn-primary" title="Предыдущая неделя">
  21. <i class="bi bi-arrow-left"></i>
  22. </a>
  23. <input type="date" class="form-control form-control-sm" style="max-width: 160px"
  24. value="{{ $weekStart->toDateString() }}"
  25. onchange="window.location='{{ route('schedule.deliveries') }}?week='+this.value"
  26. aria-label="Первый день недели">
  27. <span class="small text-muted">
  28. {{ $weekStart->format('d.m.Y') }} — {{ $weekEnd->format('d.m.Y') }}
  29. </span>
  30. <a href="{{ route('schedule.deliveries', ['week' => now()->toDateString()]) }}" class="btn btn-sm btn-outline-primary">
  31. Текущая неделя
  32. </a>
  33. <a href="{{ route('schedule.deliveries', ['week' => $nextWeek]) }}" class="btn btn-sm btn-primary" title="Следующая неделя">
  34. <i class="bi bi-arrow-right"></i>
  35. </a>
  36. </div>
  37. </div>
  38. </div>
  39. <div class="table-responsive js-subtable-scroll">
  40. <table class="table table-sm table-bordered align-middle schedule-week-table">
  41. <thead>
  42. <tr>
  43. <th>День</th>
  44. <th>Время</th>
  45. <th>Заказ</th>
  46. <th>Заказчик</th>
  47. <th>Адрес</th>
  48. <th>Водитель</th>
  49. <th>Перевозчик</th>
  50. <th>Примечание</th>
  51. </tr>
  52. </thead>
  53. <tbody>
  54. @foreach($days as $date => $day)
  55. @php($dayDeliveries = $deliveries->get($date, collect()))
  56. @forelse($dayDeliveries as $delivery)
  57. <tr class="{{ $loop->last ? 'schedule-week-day-end' : '' }}">
  58. @if($loop->first)
  59. <td rowspan="{{ $dayDeliveries->count() }}" class="text-nowrap bg-body-secondary">
  60. <strong>{{ $dayNames[$day->dayOfWeekIso] }}</strong><br>
  61. {{ $day->format('d.m.Y') }}
  62. </td>
  63. @endif
  64. <td class="text-nowrap">{{ substr((string) $delivery->delivery_time, 0, 5) ?: '—' }}</td>
  65. <td>
  66. <a href="{{ route('schedule.orders.show', ['productionOrder' => $delivery->productionOrder, 'nav' => $nav]) }}">
  67. {{ $delivery->productionOrder->order_number }}
  68. </a>
  69. </td>
  70. <td>{{ $delivery->productionOrder->customer_name }}</td>
  71. <td>{{ $delivery->productionOrder->object_address }}</td>
  72. <td>{{ $delivery->driver?->name }}</td>
  73. <td>{{ $delivery->carrier ?: '—' }}</td>
  74. <td>{{ $delivery->note ?: $delivery->carrier_note ?: '—' }}</td>
  75. </tr>
  76. @empty
  77. <tr class="schedule-week-day-end">
  78. <td class="text-nowrap bg-body-secondary">
  79. <strong>{{ $dayNames[$day->dayOfWeekIso] }}</strong><br>
  80. {{ $day->format('d.m.Y') }}
  81. </td>
  82. <td colspan="7" class="text-muted">Доставок нет</td>
  83. </tr>
  84. @endforelse
  85. @endforeach
  86. </tbody>
  87. </table>
  88. </div>
  89. @endsection