item-row.blade.php 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. @php($orderItem = !empty($itemRow['id']) && $order ? $order->items->firstWhere('id', (int) $itemRow['id']) : null)
  2. <tr>
  3. <td style="min-width: 320px">
  4. @if(!empty($itemRow['id']))
  5. <input type="hidden" name="items[{{ $index }}][id]" value="{{ $itemRow['id'] }}">
  6. @endif
  7. @php($catalogItem = $catalogItems->get((int) ($itemRow['common_catalog_item_id'] ?? 0)))
  8. <input type="hidden" name="items[{{ $index }}][common_catalog_item_id]"
  9. class="production-order-item-catalog-id"
  10. value="{{ $itemRow['common_catalog_item_id'] ?? '' }}">
  11. <span class="production-order-item-catalog-label">
  12. @if($catalogItem)
  13. {{ $catalogItem->article }} — {{ $catalogItem->calculator_name ?: $catalogItem->print_name ?: 'Без наименования' }}
  14. @endif
  15. </span>
  16. @error('items.'.$index.'.common_catalog_item_id') <div class="text-danger small"><strong>{{ $message }}</strong></div> @enderror
  17. </td>
  18. <td style="min-width: 180px">
  19. @if($canManageItems)
  20. <input type="text" name="items[{{ $index }}][order_item_number]" required
  21. value="{{ $itemRow['order_item_number'] ?? '' }}"
  22. class="form-control form-control-sm @error('items.'.$index.'.order_item_number') is-invalid @enderror">
  23. @error('items.'.$index.'.order_item_number') <div class="invalid-feedback"><strong>{{ $message }}</strong></div> @enderror
  24. @else
  25. <input type="hidden" name="items[{{ $index }}][order_item_number]"
  26. value="{{ $itemRow['order_item_number'] ?? '' }}">
  27. {{ $itemRow['order_item_number'] ?? '' }}
  28. @endif
  29. </td>
  30. <td style="min-width: 160px">
  31. @if($canManageItems || $canUpdateFactoryNumber)
  32. <input type="text" name="items[{{ $index }}][factory_number]"
  33. value="{{ $itemRow['factory_number'] ?? '' }}" class="form-control form-control-sm">
  34. @else
  35. {{ $itemRow['factory_number'] ?? '' }}
  36. @endif
  37. </td>
  38. <td style="min-width: 160px">
  39. @if($canManageItems || $canUpdateManufactureDate)
  40. <input type="date" name="items[{{ $index }}][manufacture_date]"
  41. value="{{ $itemRow['manufacture_date'] ?? '' }}" class="form-control form-control-sm">
  42. @else
  43. {{ $itemRow['manufacture_date'] ?? '' }}
  44. @endif
  45. </td>
  46. <td style="min-width: 190px">
  47. @if($orderItem?->passportFile)
  48. @include('production_orders.partials.file-link', [
  49. 'file' => $orderItem->passportFile,
  50. 'gallery' => 'production-order-passports-'.$order->id,
  51. ])
  52. @if($canManagePassports)
  53. <button type="submit" form="production-order-passport-delete-{{ $orderItem->id }}"
  54. class="btn btn-sm text-danger p-0 ms-1" title="Удалить паспорт">
  55. <i class="bi bi-x-circle-fill"></i>
  56. </button>
  57. @endif
  58. @else
  59. <span class="text-muted"><i class="bi bi-x-circle"></i> нет</span>
  60. @endif
  61. @if($canManagePassports && $orderItem)
  62. <label class="btn btn-sm btn-outline-primary ms-1 mb-0" title="Загрузить скан паспорта">
  63. <i class="bi bi-upload"></i>
  64. <input type="file" name="passport" class="visually-hidden"
  65. form="production-order-passport-upload-{{ $orderItem->id }}"
  66. onchange="this.form.requestSubmit()">
  67. </label>
  68. @endif
  69. </td>
  70. @if($canManageItems)
  71. <td class="text-end">
  72. <button type="button" class="btn btn-sm btn-outline-danger remove-production-order-item" title="Удалить">
  73. <i class="bi bi-trash"></i>
  74. </button>
  75. </td>
  76. @endif
  77. </tr>