From 6162b1026ca50082171f7b805096ef69409e140e Mon Sep 17 00:00:00 2001 From: dhanabalan Date: Thu, 28 May 2026 10:55:01 +0530 Subject: [PATCH 1/4] Added register_id and valid_upto column in table visitor entries --- ..._column_register_id_to_visitor_entries.php | 38 +++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 database/migrations/2026_05_27_152300_add_column_register_id_to_visitor_entries.php diff --git a/database/migrations/2026_05_27_152300_add_column_register_id_to_visitor_entries.php b/database/migrations/2026_05_27_152300_add_column_register_id_to_visitor_entries.php new file mode 100644 index 0000000..4f4dc3d --- /dev/null +++ b/database/migrations/2026_05_27_152300_add_column_register_id_to_visitor_entries.php @@ -0,0 +1,38 @@ + Date: Thu, 28 May 2026 10:55:33 +0530 Subject: [PATCH 2/4] Added two columns in visitor entry --- app/Models/VisitorEntry.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/app/Models/VisitorEntry.php b/app/Models/VisitorEntry.php index 706e787..e5a6d63 100644 --- a/app/Models/VisitorEntry.php +++ b/app/Models/VisitorEntry.php @@ -12,6 +12,7 @@ class VisitorEntry extends Model protected $fillable = [ 'mobile_number', + 'register_id', 'name', 'company', 'purpose_of_visit', @@ -20,7 +21,8 @@ class VisitorEntry extends Model 'out_time', 'photo', 'employee_master_id', - 'number_of_person' + 'number_of_person', + 'valid_upto', ]; public function employeeMaster(): BelongsTo -- 2.49.1 From 75ccd36acd9224b517c875a178224605542a7381 Mon Sep 17 00:00:00 2001 From: dhanabalan Date: Thu, 28 May 2026 10:56:29 +0530 Subject: [PATCH 3/4] Added two columns in visitor entry resource page --- .../Resources/VisitorEntryResource.php | 57 ++++++++++++++++++- 1 file changed, 56 insertions(+), 1 deletion(-) diff --git a/app/Filament/Resources/VisitorEntryResource.php b/app/Filament/Resources/VisitorEntryResource.php index 8cb6650..28763fc 100644 --- a/app/Filament/Resources/VisitorEntryResource.php +++ b/app/Filament/Resources/VisitorEntryResource.php @@ -17,6 +17,7 @@ use Filament\Infolists\Infolist; use Filament\Infolists\Components\ImageEntry; use Filament\Infolists\Components\TextEntry; use Filament\Infolists\Components\Section; +use Carbon\Carbon; class VisitorEntryResource extends Resource { @@ -24,10 +25,35 @@ class VisitorEntryResource extends Resource protected static ?string $navigationIcon = 'heroicon-o-rectangle-stack'; + protected static ?string $navigationGroup = 'Gate Entry'; + public static function form(Form $form): Form { return $form ->schema([ + Forms\Components\TextInput::make('register_id') + ->label('Register ID') + ->default(function () { + + $datePart = Carbon::now()->format('ymd'); // 260527 + + $prefix = 'CRI' . $datePart . 'V'; + + // Get latest record for today + $lastRecord = VisitorEntry::where('register_id', 'like', $prefix . '%') + ->latest('id') + ->first(); + + if ($lastRecord) { + $lastNumber = (int) substr($lastRecord->register_id, -3); + $nextNumber = str_pad($lastNumber + 1, 3, '0', STR_PAD_LEFT); + } else { + $nextNumber = '001'; + } + + return $prefix . $nextNumber; + }) + ->readOnly(), Forms\Components\TextInput::make('mobile_number') ->label('Mobile Number') ->length(10) @@ -140,9 +166,17 @@ class VisitorEntryResource extends Resource ->default(1) ->required(), Forms\Components\DateTimePicker::make('in_time') - ->label('In Time'), + ->label('In Time') + ->required() + ->default(now()), Forms\Components\DateTimePicker::make('out_time') ->label('Out Time'), + Forms\Components\DateTimePicker::make('valid_upto') + ->label('Valid Upto') + ->after('in_time') + ->validationMessages([ + 'after' => 'Valid Upto must be after the In Time.', + ]), Forms\Components\View::make('components.webcam-field') ->columnSpanFull(), Forms\Components\Hidden::make('photo'), @@ -178,6 +212,10 @@ class VisitorEntryResource extends Resource ->defaultImageUrl(asset('images/profile.png')) ->alignCenter() ->extraImgAttributes(['style' => 'border-radius: 6px; object-fit: cover;']), + Tables\Columns\TextColumn::make('register_id') + ->label('Register ID') + ->alignCenter() + ->sortable(), Tables\Columns\TextColumn::make('type') ->label('Visitor Type') ->alignCenter() @@ -218,6 +256,15 @@ class VisitorEntryResource extends Resource ->dateTime() ->sortable() ->alignCenter(), + Tables\Columns\TextColumn::make('valid_upto') + ->label('Valid Upto') + ->dateTime() + ->sortable() + ->alignCenter() + ->color(fn ($record) => $record->valid_upto && \Carbon\Carbon::parse($record->valid_upto)->isPast() + ? 'danger' + : 'success' + ), Tables\Columns\TextColumn::make('created_at') ->label('Created At') ->dateTime() @@ -318,6 +365,14 @@ class VisitorEntryResource extends Resource TextEntry::make('out_time') ->label('Out Time') ->dateTime(), + TextEntry::make('valid_upto') + ->label('Valid Upto') + ->dateTime() + ->badge() + ->color(fn ($record) => $record->valid_upto && \Carbon\Carbon::parse($record->valid_upto)->isPast() + ? 'danger' + : 'success' + ), ]) ->columns(2), -- 2.49.1 From 6f9928a989284744b4c7436c53a6865c2770e8d4 Mon Sep 17 00:00:00 2001 From: dhanabalan Date: Thu, 28 May 2026 10:57:12 +0530 Subject: [PATCH 4/4] Added valid upto and register id in badge blade file --- resources/views/visitor/badge.blade.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/resources/views/visitor/badge.blade.php b/resources/views/visitor/badge.blade.php index ec01c8d..8c39a0e 100644 --- a/resources/views/visitor/badge.blade.php +++ b/resources/views/visitor/badge.blade.php @@ -157,7 +157,7 @@ {{-- Header --}}
{{ strtoupper($visitor->type ?? 'VISITOR') }} - #{{ str_pad($visitor->id, 5, '0', STR_PAD_LEFT) }} + #{{ strtoupper($visitor->register_id) }}
{{-- Body --}} @@ -186,7 +186,7 @@
Valid upto: - {{ $visitor->out_time ? \Carbon\Carbon::parse($visitor->out_time)->format('d/m/Y H:i') : '—' }} + {{ $visitor->valid_upto ? \Carbon\Carbon::parse($visitor->valid_upto)->format('d/m/Y H:i') : '—' }}
@@ -212,7 +212,7 @@
{!! QrCode::size(25) ->margin(0) - ->generate($visitor->id) !!} + ->generate($visitor->register_id) !!}
-- 2.49.1