@extends('layouts.app') @section('title', __('pharmacy::messages.stock.receive')) @section('content')

{{ __('pharmacy::messages.stock.receive') }}

{{ __('pharmacy::messages.stock.receive_subtitle') }}

{{ __('common.back') }}
{{-- Step one: which medicine. A formulary of several hundred entries is not a dropdown, so it is searched โ€” now as it is typed. The note that once stood here said a picker script could not survive the content security policy; that was never quite right. The policy forbids *inline* script, and this behaviour lives in the bundle like every other picker in the product. --}} {{-- Searched as it is typed. The panel carries the endpoint and the address a chosen medicine leads to; Clinic.stockPicker reads both. The Search button stays in the markup and is hidden once that script binds, so a browser without JavaScript keeps the form it always had rather than a box that does nothing. --}}
{{-- Where the live results land. The server-rendered list below is untouched and still answers a real submit. --}}

    {{ __('pharmacy::messages.stock.no_medicine') }}

    @if ($term !== '') @if ($matches === [])

    {{ __('pharmacy::messages.stock.no_medicine') }}

    @else @endif @endif
    {{-- Step two: the batch. Only once there is something to book it against โ€” an empty form above an unanswered question is how a delivery gets recorded against the wrong medicine. --}} @if ($chosen !== null)
    @csrf
    @error('batch_number')
    {{ $message }}
    @enderror
    @error('expiry_date')
    {{ $message }}
    @enderror {{ __('pharmacy::messages.stock.expiry_hint') }}
    @error('quantity')
    {{ $message }}
    @enderror
    {{-- Said plainly, because the consequence is a bill that silently misses a line. --}} {{ __('pharmacy::messages.stock.selling_price_hint') }}
    @endif
    @endsection