| Server IP : 3.111.61.48 / Your IP : 216.73.216.67 Web Server : Apache System : Linux ip-10-0-5-176 6.8.0-1057-aws #60~22.04.1-Ubuntu SMP Wed May 27 08:16:59 UTC 2026 x86_64 User : ubuntu ( 1000) PHP Version : 8.2.31 Disable Function : exec,passthru,shell_exec,system MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /var/www/vhost/lhvpraktani.in/phire-dekha-2026/resources/views/ |
Upload File : |
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width,initial-scale=1" />
<title>LHV Alumni Reunion Registration</title>
<style>
body{font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;margin:0;background:#f6f8fb;}
.wrap{max-width:980px;margin:0 auto;padding:24px;}
.card{background:#fff;border-radius:14px;box-shadow:0 8px 24px rgba(0,0,0,.06);overflow:hidden;}
.top{display:flex;align-items:center;gap:16px;padding:18px 20px;background:linear-gradient(90deg,#0d3b66,#1e6bb8);color:#fff;}
.logo{width:54px;height:54px;border-radius:12px;background:rgba(255,255,255,.18);display:flex;align-items:center;justify-content:center;font-weight:800;}
.banner h1{margin:0;font-size:20px;}
.banner p{margin:4px 0 0;opacity:.9;font-size:13px;}
form{padding:20px;}
.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;}
label{font-size:12px;color:#334155;font-weight:600;display:block;margin-bottom:6px;}
input,select{width:100%;padding:10px 12px;border:1px solid #cbd5e1;border-radius:10px;font-size:14px;background:#fff;}
.row{margin-top:10px;}
.full{grid-column:1/-1;}
.radio{display:flex;gap:14px;align-items:center;flex-wrap:wrap;}
.radio label{margin:0;font-weight:600;color:#0f172a;}
.note{font-size:12px;color:#475569;}
.total{padding:14px 16px;background:#f1f5f9;border:1px dashed #94a3b8;border-radius:12px;display:flex;justify-content:space-between;align-items:center;}
.total strong{font-size:18px;}
.actions{display:flex;gap:12px;align-items:center;margin-top:14px;}
button{padding:12px 16px;border:0;border-radius:12px;background:#0d3b66;color:#fff;font-weight:700;cursor:pointer;}
button:hover{opacity:.95;}
.msg{padding:12px 16px;border-radius:12px;margin:14px 0;}
.ok{background:#ecfdf5;border:1px solid #34d399;color:#065f46;}
.err{background:#fef2f2;border:1px solid #fca5a5;color:#7f1d1d;}
.badge{display:inline-block;padding:4px 8px;border-radius:999px;background:rgba(255,255,255,.18);font-size:12px;margin-left:8px;}
@media(max-width:720px){.grid{grid-template-columns:1fr;}}
</style>
</head>
<body>
<div class="wrap">
<div class="card">
<div class="top">
<div class="logo"> <img src="{{ asset('images/LHVP-New-Logo.jpg') }}" height="50" width="50" /> </div>
<div class="banner">
<h1>Phire Dekha 2026 <span class="badge">18 Jan 2026</span></h1>
<p>Fill this form to register for the upcoming reunion. Upload payment screenshot to complete.</p>
</div>
</div>
<form method="post" action="{{ route('register.store') }}" enctype="multipart/form-data" id="regForm">
@csrf
@if (session('success'))
<div class="msg ok">
<strong>{{ session('success') }}</strong>
@if (session('receipt'))
<div class="note" style="margin-top:6px;">
Name: {{ session('receipt.name') }} | Phone: {{ session('receipt.phone') }} | Paid: ₹{{ session('receipt.grand_total') }}
</div>
@endif
</div>
@endif
@if ($errors->any())
<div class="msg err">
<strong>Please fix these:</strong>
<ul style="margin:8px 0 0 18px;">
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif
<div class="grid">
<div>
<label>Full Name</label>
<input type="text" name="full_name" value="{{ old('full_name') }}" required style="width: 90%;" />
</div>
<div>
<label>Phone Number (WhatsApp) – 10 digits only</label>
<input type="text" name="phone" id="phone" inputmode="numeric" maxlength="10" value="{{ old('phone') }}" placeholder="10-digit number" required />
<div class="note" id="phoneHint" style="margin-top:6px;"></div>
</div>
<div>
<label>Passing Year</label>
<select name="passing_year" id="passing_year" required>
@foreach($years as $y)
<option value="{{ $y }}" @selected(old('passing_year') == $y)>{{ $y }}</option>
@endforeach
</select>
</div>
<div>
<label>Guest (0 to 10)</label>
<select name="guests" id="guests" required>
@for($i=0;$i<=10;$i++)
<option value="{{ $i }}" @selected(old('guests',0) == $i)>{{ $i }}</option>
@endfor
</select>
<div class="note" style="margin-top:6px;">Per Person Rs. 500</div>
</div>
<div class="full">
<label>Participation Type</label>
<div class="radio">
<label><input type="radio" name="participation_type" value="full_time" id="pt_full" {{ old('participation_type','full_time')==='full_time'?'checked':'' }} /> Full Time (default)</label>
<label><input type="radio" name="participation_type" value="till_noon" id="pt_noon" {{ old('participation_type')==='till_noon'?'checked':'' }} /> Till Noon (Breakfast only)</label>
</div>
</div>
<div class="full">
<label>Food Type</label>
<div class="radio">
<label><input type="radio" name="food_type" value="non_veg" {{ old('food_type','non_veg')==='non_veg'?'checked':'' }} /> Non-Veg (default)</label>
<label><input type="radio" name="food_type" value="veg" {{ old('food_type')==='veg'?'checked':'' }} /> Veg</label>
</div>
</div>
<div class="full">
<label>Upload Payment Screenshot (Image)</label>
<input type="file" name="payment_screenshot" accept="image/*" required />
<div class="note">Accepted: JPG/PNG/WebP etc. Max 5MB.</div>
</div>
<div class="full">
<div class="total">
<div>
<div class="note" id="feeBreakdown">Base: ₹0 | Discount: ₹0 | Guests: ₹0</div>
<div style="margin-top:4px;">Grand Total Payable</div>
</div>
<strong id="grandTotal">₹0</strong>
</div>
</div>
<div class="full" style="margin-top:6px;">
<label>
<input type="checkbox" id="disclaimer" required />
I confirm the information is correct and I agree to the reunion participation rules and payment terms.
</label>
</div>
</div>
<div class="actions">
<button type="submit">Submit Registration</button>
<div class="note">Discount (₹300) applies only for <b>Full Time</b> if phone exists in alumni table.</div>
</div>
</form>
</div>
</div>
<script>
(function(){
const phoneEl = document.getElementById('phone');
const yearEl = document.getElementById('passing_year');
const guestsEl = document.getElementById('guests');
const ptFull = document.getElementById('pt_full');
const ptNoon = document.getElementById('pt_noon');
const grandEl = document.getElementById('grandTotal');
const breakdownEl = document.getElementById('feeBreakdown');
const hintEl = document.getElementById('phoneHint');
let phoneExists = false;
function onlyDigits10(val){
return (val || '').replace(/\D/g,'').slice(0,10);
}
function baseFee(pt, year){
const y = parseInt(year,10);
const old = y < 2015;
if(pt==='full_time' && old) return 1000;
if(pt==='till_noon' && old) return 500;
if(pt==='full_time' && !old) return 500;
return 300; // till_noon + year>=2015
}
async function checkPhone(){
const phone = onlyDigits10(phoneEl.value);
phoneEl.value = phone;
phoneExists = false;
hintEl.textContent = '';
// Only check if 10 digits
if(phone.length !== 10) {
updateTotal();
return;
}
try{
const res = await fetch("{{ route('register.checkPhone') }}", {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'X-CSRF-TOKEN': "{{ csrf_token() }}"
},
body: JSON.stringify({ phone })
});
const data = await res.json();
phoneExists = !!data.exists;
if(phoneExists){
hintEl.textContent = '✅ Discount available for your participation in cricket tournament.';
}
}catch(e){
// silently ignore
}
updateTotal();
}
function currentParticipation(){
return ptFull.checked ? 'full_time' : 'till_noon';
}
function updateTotal(){
const pt = currentParticipation();
const year = parseInt(yearEl.value,10);
const guests = parseInt(guestsEl.value,10) || 0;
const base = baseFee(pt, year);
const discount = (pt==='full_time' && phoneExists) ? 300 : 0;
const guestFee = guests * 500;
const grand = Math.max(0, base - discount) + guestFee;
breakdownEl.textContent = `Base: ₹${base} | Discount: ₹${discount} | Guests: ₹${guestFee}`;
grandEl.textContent = `₹${grand}`;
}
// Events
phoneEl.addEventListener('input', () => {
phoneEl.value = onlyDigits10(phoneEl.value);
});
phoneEl.addEventListener('blur', checkPhone);
yearEl.addEventListener('change', updateTotal);
guestsEl.addEventListener('change', updateTotal);
ptFull.addEventListener('change', () => { updateTotal(); checkPhone(); });
ptNoon.addEventListener('change', () => { updateTotal(); checkPhone(); });
updateTotal();
})();
</script>
</body>
</html>