edit.blade.php 6.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129
  1. @extends('layouts.app')
  2. @section('content')
  3. <div class="px-3">
  4. <form class="row" action="{{ route('order.store') }}" method="post">
  5. <div class="col-xxl-6">
  6. <h4>Общая информация об объекте</h4>
  7. @csrf
  8. @if(isset($order))
  9. <input type="hidden" name="id" value="{{ $order->id }}">
  10. @endif
  11. @include('partials.select', ['name' => 'district_id', 'title' => 'Округ', 'options' => $districts, 'value' => $order?->district_id ?? old('district_id'), 'first_empty' => true, 'required' => true])
  12. @include('partials.select', ['name' => 'area_id', 'title' => 'Район', 'options' => $areas, 'value' => $order?->area_id ?? old('area_id'), 'required' => true, 'first_empty' => true])
  13. @include('partials.input', ['name' => 'object_address', 'title' => 'Адрес объекта', 'value' => $order->object_address ?? old('object_address'), 'required' => true])
  14. @include('partials.select', ['name' => 'object_type_id', 'title' => 'Тип объекта', 'options' => $objectTypes, 'value' => $order->object_type_id ?? old('object_type_id'), 'required' => true, 'first_empty' => true])
  15. @include('partials.input', ['name' => 'contract_date', 'title' => 'Дата договора', 'type' => 'date', 'value' => $order->contract_date ?? old('contract_date')])
  16. @include('partials.input', ['name' => 'contract_number', 'title' => 'Номер договора', 'value' => $order->contract_number ?? old('contract_number')])
  17. @include('partials.textarea', ['name' => 'comment', 'title' => 'Комментарий', 'value' => $order->comment ?? old('comment')])
  18. @include('partials.input', ['name' => 'installation_date', 'title' => 'Дата выхода на монтаж', 'type' => 'date', 'value' => $order->installation_date ?? old('installation_date')])
  19. @include('partials.select', ['name' => 'brigadier_id', 'title' => 'Бригадир', 'options' => $brigadiers, 'value' => $order->brigadier_id ?? old('brigadier_id')])
  20. @include('partials.select', ['name' => 'user_id', 'title' => 'Менеджер', 'options' => $users, 'value' => $order->user_id ?? old('user_id') ?? auth()->user()->id])
  21. @include('partials.input', ['name' => 'tg_group_name', 'title' => 'Название группы в ТГ', 'value' => $order->tg_group_name ?? old('tg_group_name')])
  22. @include('partials.input', ['name' => 'tg_group_link', 'title' => 'Ссылка на группу в ТГ', 'value' => $order->tg_group_link ?? old('tg_group_link')])
  23. </div>
  24. <div class="col-xxl-6">
  25. <h4>МАФ</h4>
  26. <div>
  27. <input type="text" class="form-control mb-2" @disabled($order->order_status_id ?? 0 > 1) placeholder="Поиск номенклатуры" id="search_maf">
  28. <select id="select_maf" class="form-select mb-3" multiple @disabled($order->order_status_id ?? 0 > 1)></select>
  29. </div>
  30. <div id="selected_maf">
  31. @isset($order)
  32. <div class="changes-message small text-warning visually-hidden">* необходимо сохранить изменения</div>
  33. @endisset
  34. @if(isset($order) && $order->products_sku)
  35. @foreach($order->products_sku as $p)
  36. <div class="maf d-flex justify-content-between mb-1">
  37. <div>
  38. <input type="hidden" class="visually-hidden" name="products_sku[]" value="{{ $p->id }}">
  39. <input type="hidden" class="visually-hidden" name="products[]" value="{{ $p->product->id }}">
  40. <div class="p-1">{!! $p->product->common_name !!}</div>
  41. </div>
  42. <div class="col-1 d-flex justify-content-end">
  43. <div>
  44. <input class="form-control text-end form-control-sm quantity" type="number" name="quantity[]" value="1" @disabled($order->order_status_id > 1)>
  45. </div>
  46. <div class="p-1">
  47. @if($order->order_status_id == 1)
  48. <i onclick="$(this).parent().parent().parent().remove(); $('.changes-message').removeClass('visually-hidden');" class="bi bi-trash text-danger cursor-pointer"></i>
  49. @endif
  50. </div>
  51. </div>
  52. </div>
  53. @endforeach
  54. @endif
  55. </div>
  56. </div>
  57. <div class="col-12 text-end">
  58. @include('partials.submit')
  59. </div>
  60. </form>
  61. </div>
  62. @if($errors->any())
  63. @dump($errors->all())
  64. @endif
  65. @endsection
  66. @push('scripts')
  67. <script type="module">
  68. $('#select_maf').on('change', function () {
  69. $('#selected_maf').append(
  70. '<div class="maf d-flex justify-content-between mb-1">' +
  71. '<div>' +
  72. '<input type="hidden" name="products[]" value="'+ $(this).val() +'">' +
  73. '<div class="p-1">'+ $('#select_maf option:selected').text() +'</div> ' +
  74. '</div>' +
  75. '<div class="col-1 d-flex justify-content-end">' +
  76. '<div>' +
  77. '<input class="form-control text-end form-control-sm quantity" type="number" name="quantity[]" value="1">' +
  78. '</div>' +
  79. '<div class="p-1">' +
  80. '<i onclick="$(this).parent().parent().parent().remove();" class="bi bi-trash text-danger cursor-pointer"></i>' +
  81. '</div>' +
  82. '</div>'
  83. );
  84. $('#select_maf').children().remove();
  85. $('#search_maf').val('');
  86. $('.changes-message').removeClass('visually-hidden');
  87. });
  88. $('#district_id').on('change', function () {
  89. // load areas of selected district
  90. console.log($(this).val());
  91. $.get('{{ route('area.ajax-get-areas-by-district') }}/' + $(this).val(),
  92. function (data) {
  93. $('#area_id').children().remove();
  94. $.each(data, function (id, name) {
  95. $('#area_id').append('<option value=\'' + id + '\'>' + name + '</option>');
  96. });
  97. }
  98. );
  99. });
  100. </script>
  101. @endpush