t431u wording changelog (staff screens)
- [site/app.css] css block
    FROM: kv/stay-line wrap + footer contrast + ckr nowrap
    TO:   t431 typography fixes
- [site/menu.js] menu Hôm nay HV / TA → Hôm nay ×1
    FROM: ['grid','Hôm nay HV / TA','so-phong','đã nhận · chưa nhận · gán phòng']
    TO:   ['grid','Hôm nay','so-phong','đã nhận · chưa nhận · gán phòng']
- [site/menu.js] menu Booking → Khách hôm nay ×1
    FROM: ['inbox','Booking','booking','hôm nay · sắp tới · TA']
    TO:   ['inbox','Khách hôm nay','booking','hôm nay · sắp tới · giá đại lý']
- [site/menu.js] menu Quỹ HV · TA → Quỹ phòng ×1
    FROM: ['coin','Quỹ HV · TA','phong','hạn mức · giảm chưa bán · TA']
    TO:   ['coin','Quỹ phòng','phong','hạn mức · giảm chưa bán · giá đại lý']
- [site/menu.js] tab Booking → Khách hôm nay ×1
    FROM: ['booking','Booking']
    TO:   ['booking','Khách hôm nay']
- [site/menu.js] tab Quỹ HV · TA → Quỹ phòng ×1
    FROM: ['phong','Quỹ HV · TA']
    TO:   ['phong','Quỹ phòng']
- [site/menu.js] mở rộng: Toàn bộ phòng KS / inventory ×1
    FROM: ['Toàn bộ phòng KS','Quản lý inventory ngoài quỹ HV/TA TravelQ']
    TO:   ['Toàn bộ phòng khách sạn','Quản lý phòng ngoài quỹ hoà vốn / giá đại lý TravelQ']
- [site/menu.js] mở rộng: Booking nguồn khác ×1
    FROM: ['Booking nguồn khác','OTA / walk-in / công ty — chưa kết nối']
    TO:   ['Đặt phòng nguồn khác','Đại lý / khách vãng lai / công ty — chưa kết nối']
- [site/menu.js] mở rộng: Check-in / Check-out ×1
    FROM: ['Check-in / Check-out đầy đủ','Luồng PMS toàn nhà — chưa kích hoạt']
    TO:   ['Nhận phòng / Trả phòng đầy đủ','Luồng quản lý toàn nhà — chưa kích hoạt']
- [site/menu.js] mở rộng footnote quỹ ×1
    FROM: Quỹ HV/TA TravelQ hiện tại không đổi.
    TO:   Quỹ hoà vốn / giá đại lý TravelQ hiện tại không đổi.
- [site/stats-live.js] inventoryLine HV/TA ×1
    FROM: return `<div class="cs" data-inventory-line>Khách sạn ${Number.isFinite(phys)?phys:'—'} phòng · TravelQ ${Number.isFinite(tq)?tq:'—'} phòng${Number.isFinite(hv)&&Number.isFinite(ta)?' (HV '+hv+' · TA …
    TO:   return `<div class="cs" data-inventory-line>Khách sạn ${Number.isFinite(phys)?phys:'—'} phòng · TravelQ ${Number.isFinite(tq)?tq:'—'} phòng${Number.isFinite(hv)&&Number.isFinite(ta)?' (Hoà vốn '+hv+' …
- [site/stats-live.js] bars title ×1
    FROM: `<div title="${x.d}: HV ${x.hv} · TA ${x.ta}"
    TO:   `<div title="${x.d}: Hoà vốn ${x.hv} · Giá đại lý ${x.ta}"
- [site/stats-live.js] bars legend ×1
    FROM: <span style="color:#2BB673">■</span> HV · <span style="color:#F5A623">■</span> TA · bấm cột để xem booking ngày đó
    TO:   <span style="color:#2BB673">■</span> Hoà vốn · <span style="color:#F5A623">■</span> Giá đại lý · bấm cột để xem đặt phòng ngày đó
- [site/stats-live.js] who() bỏ cụm tên gọi chưa có ×1
    FROM: function who(h){const L=(window.bkHolderLabel||(()=>({name:'',tqid:'',gap:true})))(h);return L.name?`<b style="overflow-wrap:anywhere">${E(L.name)}${L.tqid?` · <span class="mono">${E(L.tqid)}</span>`:…
    TO:   function who(h){const L=(window.bkHolderLabel||(()=>({name:'',tqid:'',gap:true})))(h);return L.name?`<b class="holder-line">${E(L.name)}${L.tqid?` · <span class="mono">${E(L.tqid)}</span>`:''}</b>`:`<…
- [site/stats-live.js] contrib empty ×1
    FROM: Không có booking đã thanh toán trong khoảng này.
    TO:   Không có đặt phòng đã thanh toán trong khoảng này.
- [site/stats-live.js] dayView HV label ×1
    FROM: <div class="cs">HV đã bán / quỹ</div>
    TO:   <div class="cs">Hoà vốn đã bán / quỹ</div>
- [site/stats-live.js] dayView TA label ×1
    FROM: <div class="cs">TA đã bán / quỹ</div>
    TO:   <div class="cs">Giá đại lý đã bán / quỹ</div>
- [site/stats-live.js] dayView Booking đã TT (2 occ) ×2
    FROM: <div class="cs">Booking đã TT</div>
    TO:   <div class="cs">Đặt phòng đã thanh toán</div>
- [site/stats-live.js] dayView sigma line ×1
    FROM: ${sq===hv+ta?'✓ Σ phòng các booking = HV + TA':'⚠ chưa khớp: Σ '+sq+' ≠ '+(hv+ta)}
    TO:   ${sq===hv+ta?'✓ Số phòng các đặt phòng = hoà vốn + giá đại lý':'⚠ chưa khớp: tổng '+sq+' ≠ '+(hv+ta)}
- [site/stats-live.js] dayView Σ phòng ×1
    FROM: <div class="cs">Σ phòng</div>
    TO:   <div class="cs">Số phòng</div>
- [site/stats-live.js] period HV ×1
    FROM: <div class="cs">HV đã bán</div>
    TO:   <div class="cs">Hoà vốn đã bán</div>
- [site/stats-live.js] period TA ×1
    FROM: <div class="cs">TA đã bán</div>
    TO:   <div class="cs">Giá đại lý đã bán</div>
- [site/stats-live.js] overview box wording ×1
    FROM: box('BOOKING ĐANG HIỆU LỰC (ĐÃ THANH TOÁN)',`<div class="kv" style="grid-template-columns:1fr"><div><span>Đã nhận phòng</span><b data-m="da">${r.length} booking · ${q(r)} phòng</b></div><div><span>Chư…
    TO:   box('ĐẶT PHÒNG ĐANG HIỆU LỰC (ĐÃ THANH TOÁN)',`<div class="kv" style="grid-template-columns:1fr"><div><span>Đã nhận phòng</span><b data-m="da">${r.length} đặt phòng · ${q(r)} phòng</b></div><div><span…
- [site/stats-live.js] rowOf status ×1
    FROM: st:x.checkedIn?'Đã check-in':'Chưa nhận phòng'
    TO:   st:x.checkedIn?'Đã nhận phòng':'Chưa nhận phòng'
- [site/stats-live.js] wrapBooking title ×1
    FROM: dhead('Booking','Chỉ đặt phòng đã thanh toán')
    TO:   dhead('Khách hôm nay','Chỉ đặt phòng đã thanh toán')
- [site/stats-live.js] wrapBooking state ×1
    FROM: state(c,'booking')
    TO:   state(c,'đặt phòng')
- [site/stats-live.js] vFuture state ×1
    FROM: state(c,'booking đặt trước')
    TO:   state(c,'đặt phòng đặt trước')
- [site/stats-live.js] vFuture table headers ×1
    FROM: '<table class="tbl"><tr><th>Booking</th><th>TQID</th><th>Ngày đến</th><th>Ngày đi</th><th>Trạng thái</th></tr>'
    TO:   '<table class="tbl"><tr><th>Đặt phòng</th><th>Mã ID</th><th>Ngày đến</th><th>Ngày đi</th><th>Trạng thái</th></tr>'
- [site/stats-live.js] vFuture footnote ×1
    FROM: Không có doanh thu dự đoán / booking tạo trên trình duyệt.
    TO:   Không có doanh thu dự đoán / đặt phòng tạo trên trình duyệt.
- [site/stats-live.js] quy-ta mobile title ×1
    FROM: mtop('Quỹ phòng HV & TA','Quỹ TravelQ','phong')
    TO:   mtop('Quỹ phòng','Quỹ TravelQ','phong')
- [site/stats-live.js] quy-ta desktop title ×1
    FROM: dhead('Quỹ phòng hoà vốn & TA','Theo ngày (giờ VN)','')
    TO:   dhead('Quỹ phòng','Theo ngày (giờ Việt Nam)','')
- [site/stats-live.js] stayClsTable: bỏ nhãn ánh xạ, đổi HV/TA, không dấu gạch (×1)
    FROM: function capOf(type,caps){const i=FUND_TYPES.indexOf(type);return i>=0?caps[i]:null}
function stayClsTable(j){
  const fundNote=(t)=>t==='Family'?' (quỹ Suite)':t==='Seaview'?' (qu…
    TO:   function capOf(type,caps){const types=(caps&&caps.length===5)?ROOM_TYPES:FUND_TYPES;const i=types.indexOf(type);return i>=0?caps[i]:null}
function stayClsTable(j){
  const cell=(so…
- [site/stats-live.js] default 5-type caps (×1)
    FROM: [8,8,5]/[4,4,2]
    TO:   [8,8,2,2,1]/[3,2,2,1,2]
- [site/stats-live.js] overview state (×1)
    FROM: state(bk,'danh sách booking')
    TO:   state(bk,'danh sách đặt phòng')
- [site/stats-live.js] vFuture known (×1)
    FROM: known.length+' booking có ngày đến từ hôm nay
    TO:   known.length+' đặt phòng có ngày đến từ hôm nay
- [site/stats-live.js] vFuture unknown (×1)
    FROM: unknown.length+' booking chưa có ngày đến
    TO:   unknown.length+' đặt phòng chưa có ngày đến
- [site/stats-live.js] clsTable headers (×1)
    FROM: function clsTable(j){return `<table class="tbl" style="margin-top:8px"><tr><th>Hạng</th><th>HV đã bán / quỹ</th><th>TA đã bán / quỹ</th></tr>
    TO:   function clsTable(j){return `<table class="tbl" style="margin-top:8px"><tr><th>Hạng</th><th>Hoà vốn đã bán / quỹ</th><th>Giá đại lý đã bán / quỹ</th></tr>
- [site/stats-live.js] stayRow HV/TA + wrap class already (×1)
    FROM: function stayRow(x){return `<div class="lr" data-stay-row="${E(x.key)}" style="padding:7px 0;display:flex;gap:8px;flex-wrap:wrap;align-items:baseline"><span style="flex:2;min-width…
    TO:   function srcLb(s){return s==='HV'?'Hoà vốn':s==='TA'?'Giá đại lý':(s||'')}
function stayRow(x){return `<div class="lr" data-stay-row="${E(x.key)}" style="padding:7px 0;display:flex…
- [site/stats-live.js] sold footnote shortened (×1)
    FROM: Đã bán hôm nay = phòng TravelQ đã thanh toán có ngày nhận/ở trùng ngày này (giờ VN). Tổng TravelQ ${j.hvSold+j.taSold} phòng. Family tính vào quỹ Suite, Seaview tính vào quỹ Deluxe…
    TO:   Tính các phòng TravelQ đã thanh toán có khách ở ngày này.
- [site/stats-live.js] so-phong kv labels (×1)
    FROM: <div><span>TravelQ HV</span><b data-kv="hv">${hv}</b></div><div><span>TravelQ TA</span><b data-kv="ta">${ta}</b></div>
    TO:   <div><span>TravelQ hoà vốn</span><b data-kv="hv">${hv}</b></div><div><span>TravelQ giá đại lý</span><b data-kv="ta">${ta}</b></div>
- [site/stats-live.js] so-phong footnote (×1)
    FROM: TravelQ HV/TA / Khách sạn tự bán là số phòng đang có khách theo nguồn.
    TO:   TravelQ hoà vốn / giá đại lý / Khách sạn tự bán là số phòng đang có khách theo nguồn.
- [site/stats-live.js] waiting empty (×1)
    FROM: Không còn booking đã thanh toán chờ nhận phòng ngày này.
    TO:   Không còn đặt phòng đã thanh toán chờ nhận phòng ngày này.
- [site/stats-live.js] vHomNay arr state — careful may already be changed in wrap? (×1)
    FROM: state(bk,'booking')
    TO:   state(bk,'đặt phòng')
- [site/stats-live.js] csv headers (×1)
    FROM: ['Mã booking','Nguồn','Ngày bán','Số phòng','TravelQ ID']
    TO:   ['Mã đặt phòng','Nguồn','Ngày bán','Số phòng','Mã TravelQ ID']
- [site/stats-live.js] csv banner (×1)
    FROM: # Dữ liệu khách sạn · ngày thanh toán giờ VN · Σ phòng không nhân đêm
    TO:   # Dữ liệu khách sạn · ngày thanh toán giờ Việt Nam · số phòng không nhân đêm
- [site/stats-live.js] reportNote unknown (×1)
    FROM: ${unknown?'<div class="cs" data-payment-day-unknown>'+E(unknown)+' booking đã TT thiếu/sai ngày thanh toán: không đưa vào kỳ.</div>':''}
    TO:   ${unknown?'<div class="cs" data-payment-day-unknown>'+E(unknown)+' đặt phòng đã thanh toán thiếu/sai ngày thanh toán: không đưa vào kỳ.</div>':''}
- [site/stats-live.js] GAP_LB (×1)
    FROM: booking_payment_day_unknown:'Booking thiếu ngày thanh toán',hv_amount_missing:'Thiếu số tiền phòng HV'
    TO:   booking_payment_day_unknown:'Đặt phòng thiếu ngày thanh toán',hv_amount_missing:'Thiếu số tiền phòng hoà vốn'
- [site/stats-live.js] finance lines (×1)
    FROM: line('1. HV · tổng tiền phòng đã ghi nhận TT',money(m[1].amountVnd),1)+line('2. TA · số phòng bán (không phải đêm)',m[2].rooms+' phòng',2)+line('3. Dịch vụ · chỉ đã xác nhận từ cổn…
    TO:   line('1. Hoà vốn · tổng tiền phòng đã ghi nhận thanh toán',money(m[1].amountVnd),1)+line('2. Giá đại lý · số phòng bán (không phải đêm)',m[2].rooms+' phòng',2)+line('3. Dịch vụ · c…
- [site/stats-live.js] finance note TA (×1)
    FROM: Không cộng số phòng TA thành doanh thu.
    TO:   Không cộng số phòng giá đại lý thành doanh thu.
- [site/stats-live.js] vRoomManagement link (×1)
    FROM: <a class="btn gl2" href="#/quy-ta">Quỹ HV · TA</a>
    TO:   <a class="btn gl2" href="#/quy-ta">Quỹ phòng</a>
- [site/stats-live.js] owner unknown metrics (×1)
    FROM: Công suất theo đêm, ADR, TA net/lợi nhuận và dự báo:
    TO:   Công suất theo đêm, giá trung bình, thực nhận giá đại lý / lợi nhuận và dự báo:
- [site/stats-live.js] SKIP (×2)
    FROM: src:x.src,qty:x.roomQty
    TO:   src:x.src,qty:x.roomQty
- [site/stats-live.js] srcLb hoisted before contrib (×1)
    FROM: 
    TO:   function srcLb
- [site/stats-live.js] contrib src labels (×1)
    FROM: span>${E(it.src)}</span>
    TO:   span>${E(srcLb(it.src))}</span>

t437u additional wording (app.js staff screens)
- [site/app.js] bkTitleHtml gap phrase ×1
    FROM: return `<b class="mono" style="font-size:${big?'22px':'inherit'};font-weight:800">${escBk(tq||'—')}</b><div class="cs" style="font-size:11px" data-name-gap="1">
    TO:   return `<b class="mono" style="font-size:${big?'22px':'inherit'};font-weight:800">${escBk(tq||'—')}</b><div class="cs" style="font-size:11px" data-name-gap="1">
- [site/app.js] EXTRA_MAX note ×1
    FROM: Không bịa TQID · tối đa EXTRA_MAX extras · đã checkout chặn · audit ks.them-khach / ks.khai-bao-sau. Không xác minh giả.
    TO:   Không bịa mã ID. Mỗi đặt phòng thêm tối đa 4 người. Không thêm sau khi đã trả phòng.
- [site/app.js] srcB Phòng TA ×1
    FROM: const srcB=s=>s==='HV'?bd('Hoà vốn','ok'):bd('Phòng TA','wn');
    TO:   const srcB=s=>s==='HV'?bd('Hoà vốn','ok'):bd('Giá đại lý','wn');
- [site/app.js] Check-in button ×1
    FROM: title="Nhận phòng · hệ thống kiểm tra gán phòng / sạch / giờ">Check-in</div>`
    TO:   title="Nhận phòng · hệ thống kiểm tra gán phòng / sạch / giờ">Nhận phòng</div>`
- [site/app.js] Tạo booking mới ×1
    FROM: Tạo booking mới tại quầy
    TO:   Tạo đặt phòng mới tại quầy
- [site/app.js] dBooking title ×1
    FROM: return dhead('Booking','Đã nhận / Chưa nhận · chỉ booking đã thanh toán')+
    TO:   return dhead('Khách hôm nay','Đã nhận / Chưa nhận · chỉ đặt phòng đã thanh toán')+
- [site/app.js] dBooking count ×1
    FROM:  <div class="cs" style="margin:0 0 8px">Đang xem: <b>${rows.length}</b> booking · <b>${rows.reduce((s,r)=>s+(+r.q||0),0)}</b> phòng</div>
    TO:    <div class="cs" style="margin:0 0 8px">Đang xem: <b>${rows.length}</b> đặt phòng · <b>${rows.reduce((s,r)=>s+(+r.q||0),0)}</b> phòng</div>
- [site/app.js] KB column ×1
    FROM: <th>Giấy tờ · KB</th>
    TO:   <th>Giấy tờ · Khai báo</th>
- [site/app.js] dBooking footnote ×1
    FROM: Chỉ hiện booking đã thanh toán hoặc đã xác nhận. Booking đặt cho ngày sau đang ở mục Chưa nhận. Booking đã trả phòng hoặc đã huỷ không nằm trong danh sách này.
    TO:   Chỉ hiện đặt phòng đã thanh toán hoặc đã xác nhận. Đặt phòng cho ngày sau đang ở mục Chưa nhận. Đặt phòng đã trả phòng hoặc đã huỷ không nằm trong danh sách này
- [site/app.js] KB empty chip ×1
    FROM: if(!lab)return `<span${go('luu-tru')} class="cs" style="cursor:pointer" title="Khai báo lưu trú">KB</span>`;
    TO:   if(!lab)return `<span${go('luu-tru')} class="cs" style="cursor:pointer" title="Khai báo lưu trú">Khai báo</span>`;
- [site/app.js] KB labelled chip ×1
    FROM: return `<span${go('luu-tru')} style="cursor:pointer" title="Khai báo lưu trú">${bd('KB · '+lab,tone)}</span>`}
    TO:   return `<span${go('luu-tru')} style="cursor:pointer" title="Khai báo lưu trú">${bd('Khai báo · '+lab,tone)}</span>`}
- [site/app.js] toast before checkin ×1
    FROM: toast('Chưa gán phòng — mở gán phòng trước khi Check-in')
    TO:   toast('Chưa gán phòng — mở gán phòng trước khi nhận phòng')
- [site/app.js] toast checkin error ×1
    FROM: ('Check-in lỗi '+r.status)
    TO:   ('Nhận phòng lỗi '+r.status)
- [site/app.js] toast booking checked in ×1
    FROM: toast('Booking đã nhận phòng')
    TO:   toast('Đặt phòng đã nhận phòng')
- [site/app.js] dLuuTru subtitle ×1
    FROM: return dhead('Nhận phòng & khai báo lưu trú',ltReady()?(`Hôm nay · ${n} booking có trạng thái nhận phòng`):'Cần phiên lễ tân · nhận phòng ≠ thanh toán')+
    TO:   return dhead('Nhận phòng & khai báo lưu trú',ltReady()?(`Hôm nay · ${n} đặt phòng có trạng thái nhận phòng`):'Cần phiên lễ tân · nhận phòng ≠ thanh toán')+
- [site/app.js] dLuuTru footnote HV ×1
    FROM:  · HV đã thanh toán trước ≠ đã nhận phòng</div>`)}
    TO:    · Phòng hoà vốn đã thanh toán trước ≠ đã nhận phòng</div>`)}
- [site/app.js] mBooking title ×1
    FROM: function mBooking(){const rawF=Q.f||'chua-nhan',f=bkNormF(rawF),rows=bkRows(f);return mhd('Booking','Đã nhận / Chưa nhận · đã TT')+
    TO:   function mBooking(){const rawF=Q.f||'chua-nhan',f=bkNormF(rawF),rows=bkRows(f);return mhd('Khách hôm nay','Đã nhận / Chưa nhận · đã thanh toán')+
- [site/app.js] mBookingCt title ×1
    FROM: return mtop(b.code,'Chi tiết booking','booking')+
    TO:   return mtop(b.code,'Chi tiết đặt phòng','booking')+
- [site/app.js] NAVD Booking ×1
    FROM: ['inbox','Booking','booking',1]
    TO:   ['inbox','Khách hôm nay','booking',1]
- [site/app.js] MENU Check-in items ×1
    FROM: ['face','Check-in khuôn mặt','khuon-mat?b=0142&s=1','mở rộng · cần khách đồng ý'],['qr2','Check-in bằng mã QR','checkin-qr','khách đưa QR từ app'],['idc','Check
    TO:   ['face','Nhận phòng khuôn mặt','khuon-mat?b=0142&s=1','mở rộng · cần khách đồng ý'],['qr2','Nhận phòng bằng mã QR','checkin-qr','khách đưa QR từ app'],['idc','N
- [site/app.js] NOTI booking mới ×1
    FROM: ['inbox','Booking mới · Phòng TA','TQ555083021 · Deluxe × 1 · đến 21:30 · TravelQ đã thu'
    TO:   ['inbox','Đặt phòng mới · Giá đại lý','TQ555083021 · Deluxe × 1 · đến 21:30 · TravelQ đã thu'
- [site/app.js] NOTI Phòng TA ×1
    FROM: ['check','Đã đạt hoà vốn hôm nay','Đã bán 30/30 phòng hoà vốn · Phòng TA tự mở bán'
    TO:   ['check','Đã đạt hoà vốn hôm nay','Đã bán 30/30 phòng hoà vốn · Giá đại lý tự mở bán'
- [site/app.js] UNL quỹ HV ×1
    FROM: Superior hết quỹ HV, khách hỏi thêm 1 phòng
    TO:   Superior hết quỹ hoà vốn, khách hỏi thêm 1 phòng
- [site/app.js] UNL Phòng TA ×1
    FROM: Ngày này đã chuyển sang Phòng TA
    TO:   Ngày này đã chuyển sang giá đại lý
- [site/app.js] detail TA net / đêm ×1
    FROM: ['TA net KS nhận / đêm',mv(netN)]
    TO:   ['Thực nhận giá đại lý / đêm',mv(netN)]
- [site/app.js] detail KS nhận TA net ×1
    FROM: ['KS nhận (TA net)',
    TO:   ['Thực nhận giá đại lý',
- [site/app.js] detail pay Phòng TA ×1
    FROM: I_('coin',15,'#FFD27A')+' Thanh toán Phòng TA'}
    TO:   I_('coin',15,'#FFD27A')+' Thanh toán giá đại lý'}
- [site/app.js] roomsTA header ×1
    FROM: <th class="r">TA net KS nhận / đêm</th>
    TO:   <th class="r">Thực nhận giá đại lý / đêm</th>
- [site/app.js] dashboard TA net ×1
    FROM: KS nhận giá TA net · TravelQ thu khách
    TO:   KS thực nhận giá đại lý · TravelQ thu khách
- [site/app.js] roomsTA footnote net ×1
    FROM: trả KS giá TA net
    TO:   trả KS giá thực nhận đại lý
- [site/app.js] dashboard PHÒNG TA ×1
    FROM: PHÒNG TA HÔM NAY
    TO:   GIÁ ĐẠI LÝ HÔM NAY
- [site/app.js] dashboard BOOKING ×1
    FROM: BOOKING HÔM NAY
    TO:   ĐẶT PHÒNG HÔM NAY
- [site/app.js] dashboard checked-in ×1
    FROM: ['Đã check-in (booking)',
    TO:   ['Đã nhận phòng',
- [site/app.js] dashboard booking count ×1
    FROM: ${live?'booking đã lưu · '+(live.list.qtySum!=null?live.list.qtySum:live.list.roomQtySum)+' phòng':'booking mẫu'}
    TO:   ${live?'đặt phòng đã lưu · '+(live.list.qtySum!=null?live.list.qtySum:live.list.roomQtySum)+' phòng':'đặt phòng mẫu'}
- [site/app.js] dashboard HV đã bán ×1
    FROM: ['HV đã bán',
    TO:   ['Hoà vốn đã bán',
- [site/app.js] dashboard HV+TA ×1
    FROM: ['Phòng quỹ HV+TA',
    TO:   ['Phòng quỹ hoà vốn + giá đại lý',
- [site/app.js] dashboard TA open badge ×1
    FROM: bd('HV đủ → TA mở','ok'):bd('TA theo quỹ','mt')
    TO:   bd('Hoà vốn đủ → giá đại lý mở','ok'):bd('Giá đại lý theo quỹ','mt')
- [site/app.js] Phòng TA TravelQ bán desktop ×1
    FROM: ${I_('coin',17,'#FFD27A')} Phòng TA · TravelQ bán
    TO:   ${I_('coin',17,'#FFD27A')} Giá đại lý · TravelQ bán
- [site/app.js] Phòng TA TravelQ bán mobile ×1
    FROM: ${I_('coin',16,'#FFD27A')} Phòng TA · TravelQ bán
    TO:   ${I_('coin',16,'#FFD27A')} Giá đại lý · TravelQ bán
- [site/app.js] TA đang mở ×1
    FROM: bd('● TA đang mở từ '+st.t,'ok')
    TO:   bd('● Giá đại lý đang mở từ '+st.t,'ok')
- [site/app.js] roomsHV quỹ HV ×1
    FROM: quỹ HV ${c[2]}
    TO:   quỹ hoà vốn ${c[2]}
- [site/app.js] roomsTA quỹ TA ×2
    FROM: quỹ TA ${c[4]} phòng
    TO:   quỹ giá đại lý ${c[4]} phòng
- [site/app.js] lt detail login ×1
    FROM: Đăng nhập để xem chi tiết booking có checkedIn.
    TO:   Đăng nhập để xem chi tiết đặt phòng đã nhận.
- [site/app.js] mLuuTru count ×1
    FROM: ${rows.length} booking · chỉ Đã nhận / Chưa nhận
    TO:   ${rows.length} đặt phòng · chỉ Đã nhận / Chưa nhận
- [site/app.js] mLuuTru empty ×1
    FROM: Không có booking có checkedIn.
    TO:   Không có đặt phòng đã nhận.
