Logo Xanh SM

CHỌN ĐỐI TƯỢNG SỬ DỤNG

Vui lòng cho biết bạn là ai để tiếp tục

Cấu hình màn hình Smart TV
Bước 1/2
Đang tải danh sách kho...
Xác thực tài khoản nội bộ
Bước 2/2
Kho: Giao diện:

* Đăng nhập để hệ thống kiểm tra quyền Loa Tổng. Nếu có quyền, TV sẽ tự động phát âm thanh gọi số; nếu không, TV chỉ hiển thị số.

Logo Xanh SM

VUI LÒNG CHỌN KHO VẬN HÀNH

Bạn cần xác định điểm làm việc trước khi thực hiện các bước tiếp theo

Đang kết nối dữ liệu...
Kho:

Logo Xanh SM

XIN CHÀO TÀI XẾ XANH SM

Vui lòng quét hoặc nhập mã CCCD để nhận số thứ tự bàn giao xe

* Có thể tải ảnh chụp màn hình mã QR VNeID, ảnh thẻ CCCD hoặc bật camera quét trực tiếp ()

Khung Quét Camera

Bước 2: Kiểm tra & Bổ sung thông tin

* Bắt buộc nhập tiếng Việt có dấu


Vui lòng chọn Nhóm Dịch Vụ ở trên trước khi chọn Hình thức xử lý

* Chọn đúng hình thức xử lý để nhân viên điều phối dễ dàng phân luồng và gọi số nhanh hơn.

Số Thứ Tự Của Bạn

CCCD:

Số Thứ Tự Của Bạn Là

CCCD:

Dịch vụ:

Kho xử lý:

Hồ sơ của bạn đã hoàn tất trong ngày hôm nay tại kho này.

SỐ THỨ TỰ ĐÃ BỊ HỦY!
STT Cũ Của Bạn

CCCD:

Lý do bị hủy

Hồ sơ này đã bị quản trị viên hủy. Vui lòng kiểm tra lại thông tin và bấm Lấy Số Mới.

Đã Hết Giờ Nhận Số

Kho chỉ tiếp nhận cấp số thứ tự trong khung giờ từ
đến trước

Đã đến giờ đóng cửa (). Hệ thống ngừng phát số thứ tự. Vui lòng quay lại vào ngày làm việc tiếp theo!

Từ Chối Cấp Số Thứ Tự

Không tìm thấy thông tin trong danh sách nhận xe

Quý tài xế không có trong danh sách nhận xe của ngày , vui lòng liên hệ nhân viên Sale (người nhận cọc) hoặc Hotline: 1900.2293 thêm vào danh sách nhận xe để được bàn giao xe.

Họ và tên:
Số CCCD:
Số điện thoại:
Kho thao tác:

Vị Trí Quá Xa

Bạn đang cách kho khoảng

Hệ thống chỉ cho phép lấy số khi bạn đứng cách kho tối đa . Vui lòng di chuyển lại gần kho hơn!

Xác Nhận & Cam Đoan Thông Tin

Thông tin bạn vừa khai báo:
Họ và tên:
Số CCCD:
Số điện thoại:

Tôi xin cam đoan toàn bộ thông tin cá nhân đã khai báo gồm: Họ và tên, Số điện thoại và Số CCCD hoàn toàn chính xác, trùng khớp tuyệt đối với dữ liệu trên thẻ CCCD/VNeID. Tôi hiểu rõ đây là các thông tin bắt buộc phải chính xác để phục vụ trực tiếp cho việc xác lập và ký kết hợp đồng.

Nếu phát hiện bất kỳ thông tin nào sai lệch, tôi xin chịu hoàn toàn trách nhiệm, chấp nhận bị hủy lượt phục vụ và tự giác lấy lại số thứ tự mới để thực hiện việc khai báo lại từ đầu theo đúng quy định.


Hệ Thống Nội Bộ

Yêu cầu tài khoản vận hành

Trạng thái Loa Tổng

Quầy Xử Lý Của Tôi

Đang Gọi

Trạng Thái Quầy

VỊ TRÍ CỦA BẠN:
Lọc theo dịch vụ

Tổng Lấy

Đã Xong

Đợi Lại

Chờ Mới

Đã Hủy

STT Họ và Tên Số ĐT CCCD Nhu Cầu Xử Lý Lịch nhận Giờ ĐK Người xử lý Trạng thái Hành động

Tổng Đơn Nhận

0

Đủ điều kiện nhận xe

Đã Lấy Số Thứ Tự

0

Đang xếp hàng / phục vụ

Chưa Lấy Số Thứ Tự

0

Chờ tài xế đến kho

Danh Sách Tài Xế Nhận Xe

Chỉ tài xế có tên trong danh sách ngày hôm nay mới được phép bốc số tại kho bàn giao xe

Bỏ chọn ()
Khu vực
•
STT Mã Đơn Hàng Họ và Tên CCCD SĐT Dòng Xe & Màu Khu Vực Nhận Ngày Nhận Xe Nguồn Cập Nhật Trạng Thái Bốc Số Thao Tác
Tổng cộng: đơn nhận xe

Dữ Liệu Danh Sách Đăng Ký Tổng Hợp

Tra cứu và nhập liệu hàng loạt từ file Excel

Tìm thấy dòng phù hợp
STT Mã Đơn Hàng Họ và Tên CCCD SĐT Dòng Xe & Màu Khu Vực Nhận Ngày Nhận Xe Nguồn Cập Nhật Trạng Thái Bốc Số Email Đã Phát Xe FB Noti TLS L.Hệ Ngày Import
Tổng cộng: dòng

Thêm Tài Xế Nhận Xe Khẩn Cấp

Bổ sung vào danh sách nhận xe để tài xế được phép bốc số

Chỉnh Sửa Thông Tin Đơn Nhận Xe

Kịp thời điều chỉnh dữ liệu để tài xế bốc số và bàn giao xe chính xác

Chi Tiết Truy Vết Đơn Hàng

Lịch sử cập nhật, người thực hiện và nguồn dữ liệu

Mã đơn hàng
Họ và Tên
Số CCCD
Số Điện Thoại
Khu Vực Nhận
Dòng Xe & Màu
Ngày Hẹn Nhận Xe
Nhật Ký Cập Nhật & Nguồn Gốc (Audit Trail)
Người cập nhật gần nhất:
Thời gian cập nhật gần nhất:
Người tạo đơn ban đầu:
Thời gian tạo đơn ban đầu:
Tên file Excel đã nạp:
Dữ liệu cột ngày Sheet:
Trạng Thái Bốc Số Thứ Tự

Cấu hình Tự Động Đồng Bộ Google Sheet

Bổ sung liên tục đơn nhận xe từ Google Sheet lên hệ thống

1. Endpoint Cloud Function Webhook:

https://asia-southeast1-greensm-8d69b.cloudfunctions.net/syncDeliveryOrders

2. Cơ chế Delta Sync tự động (Chỉ gửi dòng mới):

  • Tự động nhận diện dòng mới: Script tự động thêm cột "Trạng thái đồng bộ" ở cuối bảng. Dòng nào mới thêm hoặc chưa đồng bộ sẽ được lọc ra để gửi riêng sang hệ thống.
  • Tiết kiệm 99.9% chi phí Firestore: Thay vì gửi toàn bộ 1.600 dòng mỗi lần, script chỉ gửi 1-2 dòng vừa gõ, Firestore chỉ tốn 1-2 lượt đọc/ghi.
  • Tự động đóng dấu & tô xanh: Khi đồng bộ thành công, ô trạng thái sẽ tự động điền Đã đồng bộ (HH:mm dd/MM) kèm nền xanh lá cây.
  • Sửa đổi đơn cũ cực dễ: Nếu muốn cập nhật lại thông tin một tài xế cũ, chỉ cần xóa chữ "Đã đồng bộ" ở dòng đó, hệ thống sẽ tự động cập nhật lại thông tin mới sang bốc số.

3. Mã Google Apps Script Delta Sync (Tiện ích mở rộng > Apps Script):

/**
 * =========================================================================
 * GOOGLE APPS SCRIPT: DELTA SYNC THÔNG MINH SANG HỆ THỐNG XANH SM
 * Cơ chế: Chỉ gửi đúng các dòng mới / chỉnh sửa chưa đồng bộ
 * =========================================================================
 */

function onOpen() {
  SpreadsheetApp.getUi()
    .createMenu('🚗 XANH SM')
    .addItem('⚡ Quét & Đồng bộ các dòng mới (Delta Sync)', 'autoSyncNewRows')
    .addSeparator()
    .addItem('🔄 Đồng bộ toàn bộ bảng (Dự phòng)', 'syncAllRowsBackup')
    .addToUi();
}

/**
 * 1. TỰ ĐỘNG ĐỒNG BỘ CÁC DÒNG MỚI (DELTA SYNC)
 * Có thể cài Trigger theo thời gian (Time-driven: mỗi 1 - 5 phút/lần)
 */
function autoSyncNewRows() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = getDeliverySheet(ss);
  if (!sheet) return;

  var data = sheet.getDataRange().getValues();
  if (data.length <= 1) return;

  var headerRowIdx = findHeaderRowIdx(data);
  var headers = data[headerRowIdx].map(function(h) { return String(h || '').trim().toLowerCase(); });
  var cols = mapColumns(headers);

  // Tìm hoặc khởi tạo cột 'Trạng thái đồng bộ'
  var colSyncStatus = -1;
  for (var c = 0; c < headers.length; c++) {
    if (headers[c].indexOf('trạng thái sync') !== -1 || headers[c].indexOf('trạng thái đồng bộ') !== -1 || headers[c].indexOf('đồng bộ bốc số') !== -1) {
      colSyncStatus = c;
      break;
    }
  }

  // Nếu chưa có cột trạng thái, tự tạo tiêu đề ở cột kế tiếp
  if (colSyncStatus === -1) {
    colSyncStatus = headers.length;
    sheet.getRange(headerRowIdx + 1, colSyncStatus + 1).setValue("Trạng thái đồng bộ").setFontWeight("bold").setBackground("#e8eaed");
  }

  var deltaOrders = [];
  var targetRowIndices = []; // Lưu số dòng thực tế trên Sheet (1-indexed)

  for (var i = headerRowIdx + 1; i < data.length; i++) {
    var row = data[i];
    var currentStatus = String(row[colSyncStatus] || '').trim();

    // Nếu đã đồng bộ rồi thì BỎ QUA NGAY (không gửi lại)
    if (currentStatus.indexOf('Đã đồng bộ') === 0 || currentStatus.indexOf('Thành công') === 0) {
      continue;
    }

    var parsed = parseOrderRow(row, cols);
    // Chỉ gửi khi dòng có tối thiểu Tên VÀ (CCCD hoặc SĐT)
    if (parsed && parsed.name && (parsed.cccd || parsed.phone)) {
      deltaOrders.push(parsed);
      targetRowIndices.push(i + 1);
    }
  }

  // Nếu không có dòng mới nào cần đồng bộ, KẾT THÚC NGAY (0 HTTP request, 0 lượt đọc Firestore)
  if (deltaOrders.length === 0) {
    return;
  }

  Logger.log("Phát hiện " + deltaOrders.length + " dòng mới cần đồng bộ...");
  var res = sendOrdersToFirebase(deltaOrders);
  if (res && res.success) {
    var nowStr = Utilities.formatDate(new Date(), "GMT+7", "HH:mm dd/MM");
    // Đánh dấu xanh vào các dòng đã đồng bộ thành công
    for (var k = 0; k < targetRowIndices.length; k++) {
      var rIdx = targetRowIndices[k];
      sheet.getRange(rIdx, colSyncStatus + 1)
        .setValue("Đã đồng bộ (" + nowStr + ")")
        .setBackground("#e6f4ea")
        .setFontColor("#137333");
    }
    ss.toast("Đã tự động nạp " + deltaOrders.length + " đơn mới sang hệ thống bốc số!", "🚗 XANH SM", 6);
  }
}

/**
 * 2. TỰ ĐỘNG RESET TRẠNG THÁI KHI SỬA THÔNG TIN CỦA DÒNG ĐÃ SYNC
 */
function onEdit(e) {
  if (!e || !e.range) return;
  var sheet = e.range.getSheet();
  var row = e.range.getRow();
  var col = e.range.getColumn();
  if (row <= 1) return;

  var lastCol = sheet.getLastColumn();
  // Nếu sửa đổi ở các cột thông tin (từ cột 1 đến cột trước trạng thái sync)
  if (col < lastCol) {
    var statusCell = sheet.getRange(row, lastCol);
    var statusVal = String(statusCell.getValue() || '');
    if (statusVal.indexOf('Đã đồng bộ') === 0) {
      // Tự động xóa trạng thái để kích hoạt sync lại thông tin mới
      statusCell.setValue('').setBackground(null).setFontColor(null);
    }
  }
}

/**
 * 3. ĐỒNG BỘ TOÀN BỘ BẢNG (DỰ PHÒNG KHI CẦN RESET)
 */
function syncAllRowsBackup() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = getDeliverySheet(ss);
  if (!sheet) return;

  var data = sheet.getDataRange().getValues();
  var headerRowIdx = findHeaderRowIdx(data);
  var cols = mapColumns(data[headerRowIdx].map(function(h) { return String(h || '').trim().toLowerCase(); }));

  var allOrders = [];
  for (var i = headerRowIdx + 1; i < data.length; i++) {
    var parsed = parseOrderRow(data[i], cols);
    if (parsed && parsed.name && (parsed.cccd || parsed.phone)) {
      allOrders.push(parsed);
    }
  }

  if (allOrders.length === 0) return;
  ss.toast("Đang đồng bộ toàn bộ " + allOrders.length + " đơn...", "Đang xử lý", 10);
  var res = sendOrdersToFirebase(allOrders);
  if (res) ss.toast(res.message || "Đồng bộ hoàn tất!", "🚗 XANH SM", 8);
}

// =================== CÁC HÀM HỖ TRỢ CHUẨN HÓA ===================
function getDeliverySheet(ss) {
  var sheets = ss.getSheets();
  for (var s = 0; s < sheets.length; s++) {
    var sName = sheets[s].getName().toLowerCase();
    if (sName.indexOf('nhận xe') !== -1 || sName.indexOf('bàn giao') !== -1 || sName.indexOf('rto') !== -1) {
      return sheets[s];
    }
  }
  return ss.getActiveSheet();
}

function findHeaderRowIdx(data) {
  for (var r = 0; r < Math.min(5, data.length); r++) {
    var rowStr = data[r].map(function(c) { return String(c || '').trim().toLowerCase(); });
    if (rowStr.some(function(h) { return h.indexOf('mã') !== -1 || h.indexOf('cccd') !== -1 || h.indexOf('họ') !== -1 || h.indexOf('sđt') !== -1; })) {
      return r;
    }
  }
  return 0;
}

function mapColumns(headers) {
  function findCol(keywords, fallback) {
    for (var i = 0; i < headers.length; i++) {
      for (var k = 0; k < keywords.length; k++) {
        if (headers[i].indexOf(keywords[k]) !== -1) return i;
      }
    }
    return fallback;
  }
  return {
    orderCode: findCol(['mã đơn hàng', 'mã đơn', 'order_code', 'order', 'mã hợp đồng', 'mã'], 0),
    name:      findCol(['họ và tên', 'họ tên', 'tên lái xe', 'tên tài xế', 'tên', 'full_name', 'name'], 1),
    cccd:      findCol(['cccd', 'số cccd', 'căn cước', 'cmnd'], 2),
    phone:     findCol(['sđt', 'sdt', 'số điện thoại', 'điện thoại', 'phone', 'tel', 'mobile'], 3),
    email:     findCol(['email', 'mail'], 4),
    vehicle:   findCol(['dòng xe', 'loại xe', 'vehicle'], 5),
    color:     findCol(['màu ngoại thất', 'màu xe', 'màu', 'color'], 6),
    region:    findCol(['khu vực nhận xe', 'khu vực', 'kho', 'region'], 7),
    date:      findCol(['ngày nhận xe', 'ngày nhận', 'ngày bàn giao', 'lịch nhận', 'ngày hẹn', 'ngày thanh toán', 'ngày tt', 'date'], 8)
  };
}

function parseOrderRow(row, cols) {
  var orderCode = String(row[cols.orderCode] || '').trim();
  var name = String(row[cols.name] || '').trim();
  var cccd = String(row[cols.cccd] || '').replace(/'/g, '').replace(/\D/g, '').trim();
  var phone = String(row[cols.phone] || '').replace(/'/g, '').replace(/\D/g, '').trim();

  if (!name && !cccd && !phone) return null;
  if (orderCode.indexOf('#') === 0) orderCode = '';

  if (cccd.length === 10 && cccd.indexOf('0') === 0 && phone.length === 12) {
    var tmp = cccd; cccd = phone; phone = tmp;
  }

  var rawDateVal = row[cols.date];
  var formattedDate = '';
  if (rawDateVal instanceof Date) {
    formattedDate = Utilities.formatDate(rawDateVal, "GMT+7", "dd/MM/yyyy");
  } else if (rawDateVal) {
    formattedDate = String(rawDateVal).trim();
  }

  var region = String(row[cols.region] || '').trim();
  if (region.indexOf('GMT') !== -1 || region.indexOf('Indochina') !== -1) region = '';

  return {
    orderCode: orderCode,
    name: name,
    cccd: cccd,
    phone: phone,
    email: String(row[cols.email] || '').trim(),
    vehicleType: String(row[cols.vehicle] || '').trim(),
    color: String(row[cols.color] || '').trim(),
    region: region,
    paymentDate: formattedDate
  };
}

function sendOrdersToFirebase(orders) {
  var url = 'https://asia-southeast1-greensm-8d69b.cloudfunctions.net/syncDeliveryOrders';
  var options = {
    method: 'post',
    contentType: 'application/json',
    payload: JSON.stringify({ orders: orders }),
    muteHttpExceptions: true
  };
  try {
    var response = UrlFetchApp.fetch(url, options);
    return JSON.parse(response.getContentText());
  } catch(e) {
    Logger.log("Lỗi gửi dữ liệu: " + e.message);
    return null;
  }
}

Tổng Tài Xế Định Danh

Tài khoản theo CCCD 12 số

Đang Hoạt Động

Tài khoản bình thường

Đang Tạm Khóa

Cần hỗ trợ xử lý tại quầy

Đã Bàn Giao Xe

Đã mở khóa video nhận xe

Danh Sách Tài Khoản Tài Xế (Định Danh CCCD)

Tra cứu danh tính, lịch sử lấy số, mở khóa/reset mật khẩu tài khoản CCCD tài xế và kiểm tra đối soát bàn giao xe

STT Số CCCD Họ và Tên Số Điện Thoại Trạng Thái Bàn Giao & Video Kho Gần Nhất Lần Cuối Hành Động Nghiệp Vụ
Tổng tài xế | Hiển thị từ đến Đang tìm trên Server...
/
ĐANG TỔNG HỢP...

Tổng Quan Chỉ Số Vận Hành

-

Xu Hướng Vận Hành 7 Ngày

Tổng Lấy

Số liệu tổng

Đã Xong

Hoàn tất

Đang Chờ

Hàng đợi

Đã Hủy

Bị hủy bỏ

Tra cứu vòng đời Số Thứ Tự

Xuất Dữ Liệu Báo Cáo (Excel)

Tối đa 1 tháng
Từ: Đến:
Nhanh:

Bảng Phân Tích Chuyên Sâu Theo Nhóm Dịch Vụ

Từ: Đến:
Nhóm Dịch Vụ Nhân Viên Xử Lý Tổng Gọi Avg Lần gọi Hiệu Quả Xử Lý
(Thành Công)
Hủy Số Tốc Độ
TB

Quản lý Nhân viên

Tổng:

Quản lý Vị trí Kho

Tên Kho Chức Năng Kho Tọa độ (Lat, Long) Hành động

Bảo mật: Việc thêm, sửa, xóa tọa độ Kho liên quan trực tiếp đến định vị lấy số của Tài xế. Chỉ tài khoản Super Admin mới có quyền thao tác tính năng này.

Bảo trì & Đồng bộ dữ liệu

Chức năng quét toàn bộ lịch sử vé cũ để tính toán và khôi phục lại dữ liệu cho Dashboard.

Danh Sách Blacklist

Device ID Xóa
Trang /

Báo Cáo Gian Lận (Hôm nay)

Tự động phát hiện thiết bị lấy từ 2 số thứ tự trở lên trong ngày

Thiết bị (Device ID) Số vé Vé đã lấy hôm nay Thao tác
Trang /

Chi tiết các số đã lấy của Thiết bị

Tổng cộng: vé Hoàn thành: Đang chờ: Đang gọi:

* Nhân viên có thể tự đổi mật khẩu sau khi đăng nhập.

Thông Tin Định Danh & Tài Khoản Auth
Họ và Tên:
Số CCCD (12 số):
Số điện thoại:
Email đăng nhập ảo:
Mật khẩu mặc định:
Kho hoạt động gần nhất:
Trạng thái nhận xe:
Video hướng dẫn:
Ghi chú quản trị:
Hồ Sơ Nhận Xe Đối Soát (Từ File Excel) Khớp dữ liệu
Lịch Sử Lấy Số Thứ Tự
Đang tải lịch sử vé...
Số Vé Kho Dịch Vụ Quầy Người Xử Lý Thời Gian Trạng Thái

Chỉnh Sửa Thông Tin Tài Xế

Thêm Mới Tài Khoản Tài Xế (Định Danh CCCD)

* Mật khẩu đăng nhập mặc định sẽ là 6 số cuối của CCCD.

Xác Nhận Hủy Số

Bạn có chắc chắn muốn hủy số thứ tự này? Hệ thống sẽ bỏ qua số này khi gọi.

Xác Nhận Bỏ Qua Số

Tài xế vắng mặt? Hệ thống sẽ đẩy số này xuống cuối hàng đợi.

Lịch Sử Bỏ Qua Số - STT

Vòng Đời Số Thứ Tự

Từ khóa:

Hiển thị đầy đủ mốc sự kiện theo thời gian thực

Ghi Chú Nội Bộ - STT

Ghi chú sẽ hiển thị trên bảng hàng đợi để toàn bộ điều phối viên cùng theo dõi.

Lịch sử cập nhật ghi chú

Sơ Đồ Chọn Vị Trí Quầy

Trống (Click để chọn)
Vị trí của bạn
NV Khác đã giữ
Đang có số xử lý

Chỉ định Quầy Xử Lý

Chỉ định số thứ tự cho nhân viên:

Hợp lệ
Không hợp lệ

Thiết Lập Luồng Gọi Số

Thông Tin Vị Trí
Kích hoạt Sơ đồ quầy 3D

Bật nút xem sơ đồ quầy 3D trực quan cho điều phối viên tại kho này

Cấu Hình Quầy Xử Lý

Đổi Mật Khẩu

LƯU Ý BẮT BUỘC KHI LẤY SỐ

CHUẨN BỊ ẢNH QR VNeID

Chụp lưu sẵn mã QR trên VNeID để tải ảnh lên lấy số

Video hướng dẫn thao tác Chạm xem to
Phóng to xem video

(Video phát tự động thao tác mở mã QR Thẻ CCCD trên ứng dụng VNeID)

4 BƯỚC CHUẨN BỊ ĐỂ LẤY SỐ THỨ TỰ:

1
Mở ứng dụng VNeID trên điện thoại & đăng nhập.
2
Vào mục Thẻ Căn cước công dân → Bấm xem Mã QR (như hình mẫu trên).
⚠️ Tuyệt đối KHÔNG dùng mã "QR Định danh" ở trang chủ VNeID (mã đổi theo giây).
3
Chụp ảnh màn hình chứa mã QR & lưu lại vào thư viện ảnh máy.
4
Quay lại đây, bấm nút Tải ảnh QR VNeID và chọn ảnh vừa chụp để hệ thống tự động điền thông tin và lấy số!

YÊU CẦU CHẤT LƯỢNG ẢNH:

• Ảnh chụp mã QR phải rõ ràng, không bị mờ nhòe, không bị che khuất.
• Thông tin CCCD phải chính chủ tài xế. Hệ thống sẽ hủy số thứ tự nếu dữ liệu không hợp lệ!

Tự động đóng sau s Bạn đã có thể bắt đầu lấy số!

Video hướng dẫn mở mã QR VNeID
Cảnh báo loại mã QR

MÃ QR KHÔNG PHÙ HỢP!

Bạn đang dùng Mã QR Định danh mức 2 trên app VNeID (mã Token đổi theo giây), không phải mã QR thẻ CCCD.

Hệ thống không thể trích xuất thông tin cá nhân từ mã QR định danh mức 2 để bàn giao xe.

✕
KHÔNG DÙNG: QR Định danh ở trang chủ VNeID Mã QR ở màn hình chính có thời gian đếm ngược 60 giây.
✓
PHẢI DÙNG: Mã QR Thẻ Căn cước công dân • Cách 1: Mở VNeID → Vào mục "Thẻ Căn cước công dân" → Bấm Mã QR trên thẻ để chụp màn hình.
• Cách 2: Chụp trực tiếp mã QR in ở góc trên bên phải thẻ CCCD cứng.

Tạm Khóa Nhận Số

Dịch vụ:

Khi tạm khóa, tài xế tại kho sẽ không thể lấy thêm số cho dịch vụ . Các số thứ tự đã phát trước đó vẫn được gọi phục vụ bình thường.

Mở Khóa Nhận Số

Dịch vụ:

Bạn có chắc chắn muốn mở nhận số lại cho dịch vụ tại kho ?

Tài xế sẽ có thể tiếp tục lấy số thứ tự bình thường trên màn hình điện thoại ngay sau khi mở.

PHÁT LOA GỌI TÀI XẾ

Hệ thống phát thanh hội trường & TV sảnh tiếp nhận

Quầy số
Tài xế sẽ được gọi ():
Nội dung phát thanh thực tế: Cú pháp chuẩn

Số lần đọc:

SƠ ĐỒ 3D TOÀN CẢNH QUẦY TIẾP NHẬN

Đã có nhân viên trực
Đang gọi tài xế (Calling)
Quầy trống
Nhân viên trực:
Trạng thái phục vụ: