@extends('layouts.app') @section('title', 'Voucher Numbering') @section('breadcrumb') @endsection @section('content')
Click Configure on any row to set prefix, suffix, padding, year/month inclusion and auto-reset rules. Numbers are generated atomically — no duplicates even under concurrent load.
@php $groups = [ 'Accounting Vouchers' => ['cash_payment','bank_payment','cash_receipt','bank_receipt','contra','journal'], 'Accounts Receivable' => ['quotation','sales_order','delivery_note','sales_invoice','sales_return','cash_sale','receive_payment'], 'Accounts Payable' => ['purchase_req','purchase_order','grn','bill','bill_payment'], 'Inventory & Mfg' => ['stock_adjustment','warehouse_transfer','production_order'], ]; @endphp @foreach($groups as $groupName => $types)
{{ $groupName }}
@foreach($types as $type) @if(isset($merged[$type])) @php $item = $merged[$type]; $s = $item['setting']; @endphp @endif @endforeach
Document Type Prefix Format Next Number Reset Number On Actions
{{ $item['label'] }} @if($s && $s->prefix) {{ $s->prefix }} @else None @endif @if($s) @if($s->include_year) Year @endif @if($s->include_month) Month @endif {{ str_repeat('0', $s->padding_digits) }} @if($s->suffix) {{ $s->suffix }} @endif @else Default @endif {{ $item['preview'] }} @if($s) @php $resets=['never'=>'Never','yearly'=>'Yearly','monthly'=>'Monthly']; @endphp {{ $resets[$s->reset_period] ?? 'Never' }} @else Never @endif @if($s) {{ ucfirst($s->number_on) }} @else Draft @endif @if(auth()->user()->hasPermission('settings','edit')) Configure @endif
@endforeach @endsection