Edit Project
Editing
ID: #{{ $project->id }}
@if($errors->any())
⚠️ Please fix the following errors:
@foreach($errors->all() as $error)
{{ $error }}
@endforeach
@endif
@csrf @method('PUT')
Project Information
Project Title
*
@error('title')
{{ $message }}
@enderror
Customer
-- Select Customer --
@foreach($customers as $customer)
account_id ?? $project->client_id ?? $project->customer_id ?? '') == $customer->id ? 'selected' : '' }}> {{ $customer->company ?? $customer->name ?? $customer->display_name ?? 'Customer #'.$customer->id }}
@endforeach
@error('account_id')
{{ $message }}
@enderror
Status
*
@if(count($statuses) > 0) {{-- Use project_statuses table --}}
@foreach($statuses as $status)
status_id) == $status->id ? 'selected' : '' }} > {{ $status->label }}
@endforeach
@error('status_id')
{{ $message }}
@enderror @elseif(isset($statusOptions) && count($statusOptions) > 0) {{-- Use dynamic status options from enum --}}
@foreach($statusOptions as $opt)
status) == $opt['value'] ? 'selected' : '' }}> {{ $opt['label'] }}
@endforeach
@error('status')
{{ $message }}
@enderror @else {{-- Fallback to simple integer status --}}
status) == '1' ? 'selected' : '' }}>Planned
status) == '2' ? 'selected' : '' }}>Active
status) == '3' ? 'selected' : '' }}>On Hold
status) == '4' ? 'selected' : '' }}>Completed
status) == '5' ? 'selected' : '' }}>Cancelled
@error('status')
{{ $message }}
@enderror @endif
Project Value
Billing Method
*
billing_method) == 'fixed' ? 'selected' : '' }}>Fixed Amount
billing_method) == 'project_hours' ? 'selected' : '' }}>Project Hours
billing_method) == 'task_hours' ? 'selected' : '' }}>Task Hours
@error('billing_method')
{{ $message }}
@enderror
Fixed Amount
@error('fixed_amount')
{{ $message }}
@enderror
Hourly Rate
@error('hourly_rate')
{{ $message }}
@enderror
Project Timeline
Planned Start Date
@error('planned_start_date')
{{ $message }}
@enderror
Planned End Date
@error('planned_end_date')
{{ $message }}
@enderror
Project Notes & Documentation
Scope Notes
Optional
{{ old('scope_notes', $project->scope_notes) }}
{{ strlen($project->scope_notes ?? '') }} / 65535 characters
@error('scope_notes')
{{ $message }}
@enderror
Internal Notes (Private)
Not visible to customer
{{ old('internal_notes', $project->internal_notes) }}
{{ strlen($project->internal_notes ?? '') }} / 65535 characters
@error('internal_notes')
{{ $message }}
@enderror
Team Members
Assign Team Members
@php // Safely get team member IDs $teamIds = []; try { if ($project->relationLoaded('team')) { $teamIds = $project->team->pluck('id')->toArray(); } elseif (method_exists($project, 'team')) { $teamIds = $project->team->pluck('id')->toArray(); } } catch (\Exception $e) { $teamIds = []; } @endphp
@foreach($admins as $admin)
id, old('team', $teamIds)) ? 'selected' : '' }}> {{ $admin->name }}
@endforeach
Currently {{ count($teamIds) }} team member(s) assigned
@error('team')
{{ $message }}
@enderror @error('team.*')
{{ $message }}
@enderror
is_billable) ? 'checked' : '' }} >
Mark as Billable Project
— Time logged will be included in invoicing
Update Project
Cancel