@php $package = $packages->first(); $branchName = ''; if (!empty($order->HOSPITAL_ID) && $order->HOSPITAL_ID == 2 && !empty($order->eNDUSER->IS_COMPANY) && $order->eNDUSER->IS_COMPANY == 1) { $branchName = $order->eNDUSER->COMPANY_NAME; } elseif (!empty($order->HOSPITAL_ID) && $order->HOSPITAL_ID != 2) { $branchName = $order->HOSPITAL->NAME_EN; } elseif (empty($order->HOSPITAL_ID) && !empty($order->eNDUSER->IS_COMPANY) && $order->eNDUSER->IS_COMPANY == 1) { $branchName = $order->eNDUSER->COMPANY_NAME; } elseif (empty($order->HOSPITAL_ID)) { $branchName = 'Home Visit'; } else { $branchName = 'Normal Patient - ' . ($package->NAME ?? ''); } $patientName = $package->NAME ?? ''; $reservationId = $order->ID ?? ''; $intendNumber = $package->INTEND_NUMBER ?? ''; $barcodeLabel = $package->BARCODE_LABEL ?? ''; $collectionTime = ''; if (!empty($package->COLLECTION_TIME) && $package->COLLECTION_TIME !== '0000-00-00 00:00:00') { $collectionTime = date('d/m/Y', strtotime($package->COLLECTION_TIME)); } elseif (!empty($package->CREATE_DATE)) { $collectionTime = date('d/m/Y', strtotime($package->CREATE_DATE)); } elseif (!empty($package->created_at)) { $collectionTime = date('d/m/Y', strtotime($package->created_at)); } $collectionLine = trim(($barcodeLabel ? $barcodeLabel . ' ' : '') . $collectionTime); $singleBlock = !empty($single_block ?? false); $labels = []; // The sample's own label. A single block is a reprint of that block alone, // so the sample label is not repeated alongside it. if (!$singleBlock && !empty($package) && empty($package->IS_PACKAGE)) { $labels[] = ['code' => $intendNumber, 'barcode_value' => $intendNumber]; } // Then one label per block if (!empty($package_blocks) && count($package_blocks) > 0) { foreach ($package_blocks as $block) { $blockCode = $block->BLOCK_CODE ?? ''; $blockLetter = ''; if (!empty($intendNumber) && strpos($blockCode, $intendNumber) === 0) { $blockLetter = substr($blockCode, strlen($intendNumber)); } elseif (!empty($blockCode)) { $blockLetter = substr($blockCode, -1); } // The letter reads beside the number - SP26-1089 A - rather than on // a line of its own, while the barcode stays the sample's code, // because a block has none of its own to scan. $labels[] = [ 'code' => trim($intendNumber . ' ' . $blockLetter), 'barcode_value' => $intendNumber, ]; } } @endphp {{-- OLD LAYOUT (table-style specimen print) — kept for reference @foreach($packages as $package) @if(!empty($package->COLLECTION_TIME) && empty($package->IS_PACKAGE))

{{$package->INTEND_NUMBER}}

{{$package->NAME}}

{{$order->ID}}

{{date('d/m/Y',strtotime($package->COLLECTION_TIME))}}

@endif @endforeach --}} @foreach($labels as $label)
{{ $branchName }}
{{ $label['code'] }}
{{ $patientName }}
{{ $reservationId }}
{{ $collectionLine }}
@endforeach