delivery-form.blade.php 7.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  1. @php
  2. $delivery = $delivery ?? null;
  3. $formId = $delivery ? 'production-order-delivery-'.$delivery->id : 'production-order-delivery-new';
  4. $value = static fn (string $field, mixed $default = null): mixed => $delivery?->$field ?? $default;
  5. @endphp
  6. <form id="{{ $formId }}" method="POST" action="{{ $delivery
  7. ? route('schedule.orders.deliveries.update', [$order, $delivery])
  8. : route('schedule.orders.deliveries.store', $order) }}" class="border rounded p-3 mb-2">
  9. @csrf
  10. @if($delivery) @method('PUT') @endif
  11. <input type="hidden" name="nav" value="{{ $nav ?? '' }}">
  12. <div class="row g-2 align-items-end">
  13. <div class="col-md-3">
  14. <label for="{{ $formId }}-date" class="form-label small">Дата доставки <sup>*</sup></label>
  15. <input id="{{ $formId }}-date" type="date" name="delivery_date" required
  16. value="{{ $value('delivery_date')?->toDateString() }}" class="form-control form-control-sm">
  17. </div>
  18. <div class="col-md-2">
  19. <label for="{{ $formId }}-time" class="form-label small">Время</label>
  20. <input id="{{ $formId }}-time" type="time" name="delivery_time"
  21. value="{{ substr((string) $value('delivery_time'), 0, 5) }}" class="form-control form-control-sm">
  22. </div>
  23. <div class="col-md-4">
  24. <label for="{{ $formId }}-driver" class="form-label small">Водитель <sup>*</sup></label>
  25. <select id="{{ $formId }}-driver" name="driver_id" required class="form-select form-select-sm">
  26. <option value="">Выберите...</option>
  27. @foreach($drivers as $driverId => $driverName)
  28. <option value="{{ $driverId }}" @selected((int) $value('driver_id') === (int) $driverId)>
  29. {{ $driverName }}
  30. </option>
  31. @endforeach
  32. </select>
  33. </div>
  34. <div class="col-md-3 d-flex gap-2">
  35. <button type="submit" class="btn btn-sm btn-primary">
  36. {{ $delivery ? 'Сохранить' : 'Добавить доставку' }}
  37. </button>
  38. @if($delivery)
  39. <button type="submit" form="{{ $formId }}-delete" class="btn btn-sm btn-outline-danger"
  40. onclick="return confirm('Удалить доставку?')">Удалить</button>
  41. @endif
  42. </div>
  43. </div>
  44. <details class="mt-3" @if($delivery && collect([
  45. 'carrier', 'request_number', 'request_date', 'carrier_note', 'contact_position', 'contact_name',
  46. 'contact_phone', 'desired_time', 'access_system', 'unloading_place', 'advance_notice',
  47. 'document_signing_method', 'note',
  48. ])->contains(fn ($field) => filled($delivery->$field))) open @endif>
  49. <summary class="small cursor-pointer">Данные заявки и перевозки</summary>
  50. <div class="row g-2 mt-1">
  51. <div class="col-md-4">
  52. <label class="form-label small">Перевозчик</label>
  53. <input type="text" name="carrier" maxlength="255" value="{{ $value('carrier') }}" class="form-control form-control-sm">
  54. </div>
  55. <div class="col-md-2">
  56. <label class="form-label small">№ заявки</label>
  57. <input type="text" name="request_number" maxlength="100" value="{{ $value('request_number') }}" class="form-control form-control-sm">
  58. </div>
  59. <div class="col-md-2">
  60. <label class="form-label small">Дата заявки</label>
  61. <input type="date" name="request_date" value="{{ $value('request_date')?->toDateString() }}" class="form-control form-control-sm">
  62. </div>
  63. <div class="col-md-2">
  64. <label class="form-label small">Желаемое время</label>
  65. <input type="time" name="desired_time" value="{{ substr((string) $value('desired_time'), 0, 5) }}" class="form-control form-control-sm">
  66. </div>
  67. <div class="col-md-6">
  68. <label class="form-label small">Примечание перевозчику</label>
  69. <textarea name="carrier_note" rows="2" maxlength="5000" class="form-control form-control-sm">{{ $value('carrier_note') }}</textarea>
  70. </div>
  71. <div class="col-md-2">
  72. <label class="form-label small">Должность</label>
  73. <input type="text" name="contact_position" maxlength="255" value="{{ $value('contact_position') }}" class="form-control form-control-sm">
  74. </div>
  75. <div class="col-md-2">
  76. <label class="form-label small">Контактное лицо</label>
  77. <input type="text" name="contact_name" maxlength="255" value="{{ $value('contact_name') }}" class="form-control form-control-sm">
  78. </div>
  79. <div class="col-md-2">
  80. <label class="form-label small">Телефон</label>
  81. <input type="text" name="contact_phone" maxlength="100" value="{{ $value('contact_phone') }}" class="form-control form-control-sm">
  82. </div>
  83. @foreach([
  84. 'access_system' => 'Пропускная система',
  85. 'unloading_place' => 'Место выгрузки',
  86. 'advance_notice' => 'Предварительное предупреждение',
  87. 'document_signing_method' => 'Способ подписания документов',
  88. ] as $field => $label)
  89. <div class="col-md-6">
  90. <label class="form-label small">{{ $label }}</label>
  91. <textarea name="{{ $field }}" rows="2" maxlength="5000" class="form-control form-control-sm">{{ $value($field) }}</textarea>
  92. </div>
  93. @endforeach
  94. <div class="col-md-6">
  95. <label class="form-label small">Дополнительный комментарий</label>
  96. <textarea name="note" rows="2" maxlength="10000" class="form-control form-control-sm">{{ $value('note') }}</textarea>
  97. </div>
  98. <div class="col-md-6 d-flex align-items-end pb-1">
  99. <input type="hidden" name="has_passports_and_certificates" value="0">
  100. <div class="form-check">
  101. <input type="checkbox" name="has_passports_and_certificates" value="1"
  102. id="{{ $formId }}-passports" class="form-check-input" @checked((bool) $value('has_passports_and_certificates'))>
  103. <label for="{{ $formId }}-passports" class="form-check-label small">Паспорта и сертификаты в комплекте</label>
  104. </div>
  105. </div>
  106. </div>
  107. </details>
  108. </form>
  109. @if($delivery)
  110. <form id="{{ $formId }}-delete" method="POST"
  111. action="{{ route('schedule.orders.deliveries.destroy', [$order, $delivery]) }}">
  112. @csrf
  113. @method('DELETE')
  114. <input type="hidden" name="nav" value="{{ $nav ?? '' }}">
  115. </form>
  116. @endif