All standard registrations included in base $1,299, only add-ons are extra
Base package includes CORES/FRN, Form 499, DC Agent, RMD, CPNI, CALEA, BDC — all shown as included with checkmarks. Wizard determines which are relevant (grayed out if not needed for service type). Only STIR/SHAKEN (+$499), OCN (+$2,650), State PUC (+$399/state), and formation are itemized add-ons. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
2312edf5df
commit
830f5ae738
1 changed files with 37 additions and 34 deletions
|
|
@ -146,13 +146,10 @@ select:focus,input:focus{outline:none;border-color:#1e3a5f;box-shadow:0 0 0 2px
|
|||
<h2>Your Registration Package</h2>
|
||||
<p class="q-hint">Based on your answers, here's what you need. You can add or remove services.</p>
|
||||
|
||||
<p style="font-size:.78rem;font-weight:600;color:#059669;text-transform:uppercase;margin-bottom:.5rem">Included in base price ($1,299)</p>
|
||||
<p style="font-size:.78rem;font-weight:600;color:#059669;text-transform:uppercase;margin-bottom:.5rem">Included in your $1,299 package</p>
|
||||
<div id="base-services"></div>
|
||||
|
||||
<p style="font-size:.78rem;font-weight:600;color:#6b7280;text-transform:uppercase;margin:.75rem 0 .5rem">Determined by your service type</p>
|
||||
<div id="wizard-services"></div>
|
||||
|
||||
<p style="font-size:.78rem;font-weight:600;color:#d97706;text-transform:uppercase;margin:.75rem 0 .5rem">Optional add-ons</p>
|
||||
<p style="font-size:.78rem;font-weight:600;color:#d97706;text-transform:uppercase;margin:.75rem 0 .5rem">Optional add-ons (additional cost)</p>
|
||||
<div id="addon-services"></div>
|
||||
|
||||
<div class="price-box">
|
||||
|
|
@ -428,37 +425,41 @@ select:focus,input:focus{outline:none;border-color:#1e3a5f;box-shadow:0 0 0 2px
|
|||
// ── Build registration checklist (Step 2) ──
|
||||
function buildChecklist() {
|
||||
var base = document.getElementById('base-services');
|
||||
var derived = document.getElementById('wizard-services');
|
||||
var addons = document.getElementById('addon-services');
|
||||
base.innerHTML = ''; derived.innerHTML = ''; addons.innerHTML = '';
|
||||
base.innerHTML = ''; addons.innerHTML = '';
|
||||
|
||||
function svcRow(name, desc, included, price, key, parent) {
|
||||
var row = document.createElement('label');
|
||||
row.className = 'svc-row';
|
||||
var checked = included ? 'checked' : '';
|
||||
var priceText = price ? '$' + (price / 100).toLocaleString() : 'Included';
|
||||
row.innerHTML = '<input type="checkbox" data-reg="' + key + '" ' + checked + '> ' +
|
||||
function baseSvc(name, desc, relevant) {
|
||||
var row = document.createElement('div');
|
||||
row.className = 'svc-row' + (relevant ? '' : ' disabled');
|
||||
row.innerHTML = '<span style="color:#059669;font-size:1rem;flex-shrink:0">\u2713</span> ' +
|
||||
'<span class="svc-name">' + name + '</span> ' +
|
||||
(price ? '<span class="svc-price">+' + priceText + '</span>' : '<span class="svc-inc">' + priceText + '</span>');
|
||||
row.querySelector('input').addEventListener('change', updatePrice);
|
||||
parent.appendChild(row);
|
||||
'<span class="svc-inc">' + (relevant ? 'Included' : 'Included (not needed for your service type)') + '</span>';
|
||||
base.appendChild(row);
|
||||
}
|
||||
|
||||
// Base (always included)
|
||||
svcRow('CORES / FRN Registration', 'FCC Registration Number', true, 0, 'cores', base);
|
||||
svcRow('Form 499 Initial Registration', 'USAC enrollment', true, 0, 'form499', base);
|
||||
svcRow('D.C. Registered Agent (Annual)', 'FCC process-of-service', true, 0, 'dc_agent', base);
|
||||
function addonRow(name, price, key, preChecked) {
|
||||
var row = document.createElement('label');
|
||||
row.className = 'svc-row';
|
||||
row.innerHTML = '<input type="checkbox" data-reg="' + key + '" ' + (preChecked ? 'checked' : '') + '> ' +
|
||||
'<span class="svc-name">' + name + '</span> ' +
|
||||
'<span class="svc-price">+$' + (price / 100).toLocaleString() + '</span>';
|
||||
row.querySelector('input').addEventListener('change', updatePrice);
|
||||
addons.appendChild(row);
|
||||
}
|
||||
|
||||
// Wizard-determined
|
||||
if (wizard.needsRmd) svcRow('RMD Registration', 'Robocall Mitigation Database', true, 0, 'rmd', derived);
|
||||
if (wizard.needsCpni) svcRow('CPNI Certification', 'Customer data protection', true, 0, 'cpni', derived);
|
||||
if (wizard.needsCalea) svcRow('CALEA SSI Plan', 'Lawful intercept compliance', true, 0, 'calea', derived);
|
||||
if (wizard.needsBdc) svcRow('BDC Filing', 'Broadband Data Collection', true, 0, 'bdc', derived);
|
||||
// All included in base $1,299
|
||||
baseSvc('CORES / FRN Registration', 'FCC Registration Number', true);
|
||||
baseSvc('Form 499 Initial Registration', 'USAC Universal Service Fund enrollment', true);
|
||||
baseSvc('D.C. Registered Agent (Annual)', 'FCC process-of-service address', true);
|
||||
baseSvc('RMD Registration', 'Robocall Mitigation Database', wizard.needsRmd);
|
||||
baseSvc('CPNI Annual Certification', 'Customer data protection compliance', wizard.needsCpni);
|
||||
baseSvc('CALEA SSI Plan', 'Lawful intercept compliance plan', wizard.needsCalea);
|
||||
baseSvc('BDC Filing', 'Broadband Data Collection', wizard.needsBdc);
|
||||
|
||||
// Add-ons
|
||||
svcRow('STIR/SHAKEN Implementation', 'Call authentication certificate', wizard.needsStirShaken, 49900, 'stir_shaken', addons);
|
||||
svcRow('NECA OCN Registration', 'Operating Company Number + sponsoring CLEC', wizard.needsOcn, 265000, 'ocn', addons);
|
||||
svcRow('State PUC Registration (per state)', 'State utility commission filing', false, 39900, 'state_puc', addons);
|
||||
// Add-ons (extra cost)
|
||||
addonRow('STIR/SHAKEN Implementation', 49900, 'stir_shaken', wizard.needsStirShaken);
|
||||
addonRow('NECA OCN Registration', 265000, 'ocn', wizard.needsOcn);
|
||||
addonRow('State PUC Registration (per state)', 39900, 'state_puc', false);
|
||||
|
||||
updatePrice();
|
||||
}
|
||||
|
|
@ -601,13 +602,15 @@ select:focus,input:focus{outline:none;border-color:#1e3a5f;box-shadow:0 0 0 2px
|
|||
var html = '<table style="width:100%;border-collapse:collapse;font-size:.85rem;margin-bottom:1rem">';
|
||||
html += '<tr style="border-bottom:2px solid #e5e7eb"><th style="text-align:left;padding:.4rem">Item</th><th style="text-align:right;padding:.4rem">Price</th></tr>';
|
||||
|
||||
var included = ['CORES/FRN', 'Form 499 Initial', 'D.C. Registered Agent'];
|
||||
if (wizard.needsRmd) included.push('RMD');
|
||||
if (wizard.needsCpni) included.push('CPNI');
|
||||
if (wizard.needsCalea) included.push('CALEA');
|
||||
if (wizard.needsBdc) included.push('BDC');
|
||||
|
||||
var items = [
|
||||
{ name: 'Base Registration (CORES/FRN + Form 499 + DC Agent)', price: wizard.baseFee },
|
||||
{ name: 'FCC Carrier Registration Package (' + included.join(', ') + ')', price: wizard.baseFee },
|
||||
];
|
||||
if (services.indexOf('rmd') >= 0) items.push({ name: 'RMD Registration', price: 0 });
|
||||
if (services.indexOf('cpni') >= 0) items.push({ name: 'CPNI Certification', price: 0 });
|
||||
if (services.indexOf('calea') >= 0) items.push({ name: 'CALEA SSI Plan', price: 0 });
|
||||
if (services.indexOf('bdc') >= 0) items.push({ name: 'BDC Filing', price: 0 });
|
||||
if (services.indexOf('stir_shaken') >= 0) items.push({ name: 'STIR/SHAKEN Implementation', price: 49900 });
|
||||
if (services.indexOf('ocn') >= 0) items.push({ name: 'NECA OCN Registration', price: 265000 });
|
||||
if (services.indexOf('state_puc') >= 0) items.push({ name: 'State PUC Registration', price: 39900 });
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue