item-row.blade.php 4.1 KB

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