File: /var/www/test/Installationlist/oldphp/fill_preview_data.js
// ✅ 將 preview.php 的資料填入行為封裝成可重用函式
function fillPreviewFromSession(container) {
const q = (id) => container.querySelector(`#${id}`);
// 基本欄位
const fields = {
user_id_display: "user_id_display",
member_display: "member_display",
applicant_name: "applicant_name",
applicant_homenumber: "applicant_homenumber",
applicant_usernumber: "applicant_usernumber",
applicant_phone: "applicant_phone",
applicant_email: "applicant_email",
speed: "speed",
pppoeid: "pppoeid",
pppoepw: "pppoepw",
fistcount: "fistcount",
basenumber: "basenumber"
};
for (let id in fields) {
let val = sessionStorage.getItem("sessionsave_" + fields[id]) || '';
if (q(id)) q(id).innerText = val;
}
// 裝機地址
const memberaddress = sessionStorage.getItem("sessionsave_memberaddress") || '';
const useraddress = sessionStorage.getItem("sessionsave_useraddress") || '';
const addressDisplay = [memberaddress, useraddress].filter(Boolean).join(' ');
if (q("install_address")) q("install_address").textContent = addressDisplay;
// 設備資訊
const displayMultiBox = (id, prefix) => {
const box = q(id);
if (!box) return;
box.innerHTML = '';
let found = false;
for (let i = 0; i < 20; i++) {
const val = sessionStorage.getItem(`sessionsave_${prefix}[${i}]`);
if (!val) continue;
if (val === '無') {
box.innerHTML = '<div>無</div>';
return;
}
found = true;
const div = document.createElement('div');
div.textContent = val;
box.appendChild(div);
}
if (!found) box.innerHTML = '';
};
const displayUseBox = (id) => {
const box = q(id);
if (!box) return;
box.innerHTML = '';
let found = false;
for (let i = 0; i < 20; i++) {
const name = sessionStorage.getItem(`sessionsave_use_box[${i}]`);
if (!name) continue;
if (name === '無') {
box.innerHTML = '<div>無</div>';
return;
}
const sn = sessionStorage.getItem(`sessionsave_use_sn[${i}]`) || '';
const dp = sessionStorage.getItem(`sessionsave_use_dp[${i}]`) || '';
const wrapper = document.createElement('div');
wrapper.style.marginBottom = '8px';
const nameLine = document.createElement('div');
nameLine.textContent = name;
wrapper.appendChild(nameLine);
if (sn) {
const snLine = document.createElement('div');
snLine.textContent = `料號:${sn}`;
wrapper.appendChild(snLine);
}
if (dp) {
const dpLine = document.createElement('div');
dpLine.innerHTML = `押金:<span style="color:red; font-weight:bold;">${dp}</span>`;
wrapper.appendChild(dpLine);
}
box.appendChild(wrapper);
found = true;
}
if (!found) box.innerHTML = '';
};
displayMultiBox('info_box', 'info_box');
displayMultiBox('router_box', 'Router_box');
displayUseBox('use_box');
// 收費明細
const feeList = q('fee-list');
let total = 0;
if (feeList) {
feeList.innerHTML = '';
const feeMain = sessionStorage.getItem('sessionsave_fee_select');
const netFee = sessionStorage.getItem('sessionsave_net_fee_only');
if (feeMain && netFee) {
let feeValue = isNaN(netFee) ? 0 : parseInt(netFee);
feeList.innerHTML += `<tr><td>網路費用</td><td>${feeMain}</td><td>${netFee}</td><td>${netFee === '信用卡扣款' ? '定期信用卡方案,無需繳費' : ''}</td></tr>`;
if (!isNaN(feeValue)) total += feeValue;
}
try {
const indexes = JSON.parse(sessionStorage.getItem('sessionsave_price_indexes')) || [];
indexes.forEach(idx => {
const type = sessionStorage.getItem(`sessionsave_price_box[${idx}]`) || '';
const num = sessionStorage.getItem(`sessionsave_other_fee_number[${idx}]`) || '';
const amt = sessionStorage.getItem(`sessionsave_other_fee_amount[${idx}]`) || '';
if (!type && !amt) return;
feeList.innerHTML += `<tr><td>${type}</td><td></td><td>${amt}</td><td>${num}</td></tr>`;
if (!isNaN(amt)) total += parseInt(amt);
});
} catch {}
const totalTd = q('fee-total');
if (totalTd) totalTd.textContent = total.toString();
}
// 日期明細
const dateMap = {
'install-date': 'install_date',
'rental-start-date': 'rental_start_date',
'rental-end-date': 'rental_end_date',
'real-end-date': 'real_end_date'
};
for (const id in dateMap) {
const val = sessionStorage.getItem('sessionsave_' + dateMap[id]) || '';
if (q(id)) q(id).textContent = val;
}
// 贈送月份明細
const list = [];
try {
const indexes = JSON.parse(sessionStorage.getItem('sessionsave_given_indexes')) || [];
indexes.forEach(idx => {
let reason = sessionStorage.getItem(`sessionsave_given_box[${idx}]`) || '';
let qty = sessionStorage.getItem(`sessionsave_give_qty[${idx}]`) || '';
let intro = sessionStorage.getItem(`sessionsave_introducer_name[${idx}]`) || '';
let str = `${reason}${qty ? ` ${qty}月` : ''}`;
if (intro) str += `(介紹人:${intro})`;
list.push(str);
});
} catch {}
const given = q('given-months-list');
if (given) given.textContent = list.join('\n');
}