item-row.blade.php 4.7 KB

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