ST. EDWARD SCHOOL

SES Merchandise POS

Scan, verify, and process merchandise inventory transactions.

ITEMS 0
TOTAL STOCK 0
CURRENT SALE / RELEASE

Single Transaction

No item selected

Scan a barcode using the USB scanner or camera. The item will appear here automatically.

MULTI-ITEM PROCESSING

Bulk Transactions

SCANNED ITEMS

Transaction Cart

0 line items
Item Stock Qty Amount Status
Scan merchandise to add items to this bulk transaction.
ACTIVITY

Recent Transactions

Latest records from the Log sheet
Loading recent transactions...
'; printWindow.document.open(); printWindow.document.write(printHtml); printWindow.document.close(); } function createRequestId() { if (window.crypto && typeof window.crypto.randomUUID === "function") { return window.crypto.randomUUID(); } return "MERCH-" + Date.now() + "-" + Math.random().toString(36).slice(2); } function manilaTime() { return new Date().toLocaleString("en-PH", { timeZone: "Asia/Manila" }); } function formatMoney(value) { return new Intl.NumberFormat("en-PH", { style: "currency", currency: "PHP", minimumFractionDigits: 2 }).format(Number(value) || 0); } function formatQuantity(value) { const number = Number(value); return Number.isFinite(number) ? number.toLocaleString("en-PH") : "0"; } function escapeHtml(value) { return String(value || "") .replace(/&/g, "&") .replace(//g, ">") .replace(/"/g, """) .replace(/'/g, "'"); } function playFeedback(success) { if ("vibrate" in navigator) { navigator.vibrate(success ? 90 : [90, 60, 90]); } try { const AudioContextClass = window.AudioContext || window.webkitAudioContext; if (!AudioContextClass) return; const context = new AudioContextClass(); const oscillator = context.createOscillator(); const gain = context.createGain(); oscillator.type = "sine"; oscillator.frequency.value = success ? 880 : 330; gain.gain.setValueAtTime(0.07, context.currentTime); gain.gain.exponentialRampToValueAtTime(0.001, context.currentTime + 0.14); oscillator.connect(gain); gain.connect(context.destination); oscillator.start(); oscillator.stop(context.currentTime + 0.14); } catch (error) { console.warn(error); } } els.singleTabBtn.addEventListener("click", function () { switchWorkspace("single"); }); els.bulkTabBtn.addEventListener("click", function () { switchWorkspace("bulk"); }); els.usbModeBtn.addEventListener("click", function () { switchMode("usb"); }); els.cameraModeBtn.addEventListener("click", function () { switchMode("camera"); }); els.usbInput.addEventListener("input", queueUsbAutoSearch); els.usbInput.addEventListener("keydown", function (event) { if (event.key === "Enter" || event.key === "Tab") { if (els.usbInput.value.trim()) { event.preventDefault(); submitUsbCode(); } } }); els.focusUsbBtn.addEventListener("click", focusUsbScanner); els.submitUsbBtn.addEventListener("click", submitUsbCode); els.manualSearchBtn.addEventListener("click", submitManualCode); els.manualInput.addEventListener("keydown", function (event) { if (event.key === "Enter") { event.preventDefault(); submitManualCode(); } }); els.transaction.addEventListener("change", function () { state.pendingReleaseRecords = []; state.pendingReleaseLoadedFor = ""; els.pendingReleaseSelect.innerHTML = ''; updateSingleProjection(); }); els.pendingReleaseSelect.addEventListener("change", function () { updatePendingReleaseSelection(); updateSingleProjection(); }); els.quantity.addEventListener("input", updateSingleProjection); els.processBtn.addEventListener("click", processSingleTransaction); els.newSingleBtn.addEventListener("click", function () { resetSingle(true); }); els.addToBulkBtn.addEventListener("click", addCurrentSingleToBulk); els.bulkTransaction.addEventListener("change", function () { state.bulkCart.forEach(function (line) { if (line.status === "failed") { line.status = "pending"; line.error = ""; } }); renderBulkCart(); }); els.processBulkBtn.addEventListener("click", processBulkTransaction); els.clearCompletedBtn.addEventListener("click", clearCompletedBulk); els.clearBulkBtn.addEventListener("click", clearAllBulk); els.detectCamerasBtn.addEventListener("click", function () { loadCameraDevices(true, false).then(chooseBestCameraOption); }); els.openCameraBtn.addEventListener("click", openCamera); els.stopCameraBtn.addEventListener("click", function () { stopCamera().then(function () { setStatus("Camera stopped.", ""); }); }); els.cameraSelect.addEventListener("change", function () { if (els.cameraSelect.value) localStorage.setItem(PREFERRED_CAMERA_KEY, els.cameraSelect.value); if (state.stream) stopCamera().then(openCamera); }); els.printLastSlipBtn.addEventListener("click", reopenLastPaymentSlip); els.closeSlipBtn.addEventListener("click", closePaymentSlip); els.cancelSlipBtn.addEventListener("click", closePaymentSlip); els.printSlipBtn.addEventListener("click", printPaymentSlip); els.slipModal.addEventListener("click", function (event) { if (event.target && event.target.hasAttribute("data-slip-close")) closePaymentSlip(); }); els.slipNumberInput.addEventListener("input", function () { const normalized = normalizePaymentSlipNumber(els.slipNumberInput.value); if (els.slipNumberInput.value !== normalized) { els.slipNumberInput.value = normalized; } renderPaymentSlipPreview(); }); [els.slipNameInput, els.slipPreparedByInput].forEach(function (input) { input.addEventListener("input", renderPaymentSlipPreview); }); els.refreshBtn.addEventListener("click", loadSetup); els.fullscreenBtn.addEventListener("click", function () { if (!document.fullscreenElement) { if (portal.requestFullscreen) portal.requestFullscreen(); } else if (document.exitFullscreen) { document.exitFullscreen(); } }); document.addEventListener("keydown", function (event) { if (event.key === "Escape" && state.slipOpen) { event.preventDefault(); closePaymentSlip(); } }, true); document.addEventListener("keydown", handleGlobalScannerKey, true); if (navigator.mediaDevices && navigator.mediaDevices.addEventListener) { navigator.mediaDevices.addEventListener("devicechange", function () { loadCameraDevices(false, true).then(function () { if (!state.stream) chooseBestCameraOption(); }); }); } document.addEventListener("visibilitychange", function () { if (!document.hidden && state.activeMode === "camera") { window.setTimeout(ensureCameraAwake, 250); } }); window.addEventListener("beforeunload", function () { stopCamera(); }); els.queueToggle.addEventListener("click", function () { els.queuePanel.hidden = !els.queuePanel.hidden; }); els.clearSavedQueue.addEventListener("click", function () { state.queue = state.queue.filter(function (task) { return task.status !== "saved"; }); persistPosQueue(); renderPosQueue(); }); els.queueBar.addEventListener("click", function (event) { const button = event.target.closest("[data-pos-queue]"); if (!button) return; if (button.dataset.posQueue === "retry") retryPosQueue(button.dataset.id); else dismissPosQueue(button.dataset.id); }); restorePosQueue(); renderBulkCart(); resetSingle(false); setButtons(); checkPosServerVersion().then(loadSetup).catch(function (error) { setStatus(error.message || String(error), "bad"); loadSetup(); }); loadCameraDevices(false, true).then(chooseBestCameraOption); })();

Contact Us Today

Learn more about us and our programs and curriculum today.

Scroll to Top
The St. Edward School website uses a third-party service to analyze non-identifiable web traffic data for us. This service does not use cookies. Data generated is not shared with any other party. For more info, see our Privacy Policy.