Welcome to our store. Learn more

Get ready for some retail magic by offering local pickup or shipping all across Egypt!

NO INSTALLMENT! Learn more

🚀أقوى عروض شهر 8!

Quotation Compumarts

CompuMarts Quotation Builder
COMPUMARTS · QUOTATION

قبل ما نبدأ الكوتيشن يا فنان

اكتب بيانات العميل واسمك عشان الكوتيشن يتسجل صح، ويتربط بالتحليل، والمتابعة، وخدمة ما بعد البيع.

✓ البيانات اتحفظت — أدوات الكوتيشن ظهرت تحت

Customer Info
PC Components
Monitor (Optional)
Pricing Adjustments
EGP
EGP
EGP
Summary
SubtotalEGP 0
Discount– EGP 0
ShippingEGP 0
TaxEGP 0
Final Total EGP 0
Live Preview
Your Tech, Our Passion

Quotation

No. —

Customer:
Salesperson:
# Item Qty Unit (EGP) Total (EGP)
No items added yet
SubtotalEGP 0
Discount– EGP 0
ShippingEGP 0
TaxEGP 0
Final Total EGP 0
'; var win = window.open('', '_blank', 'width=860,height=1000'); if (!win) { toast('⚠️ Allow popups then try again', 3000); return; } win.document.open(); win.document.write(html); win.document.close(); setTimeout(function() { try { win.focus(); win.print(); } catch (e) { console.warn('Print window error', e); } }, 500); toast('✅ Sent to Slack — opening print...', 2000); } /* ── Reset ── */ function doReset() { if (!confirm('Reset all fields and items?')) return; document.querySelectorAll('input:not([type=date]), textarea').forEach(function(el) { if (el.type === 'checkbox') el.checked = false; else el.value = ''; }); document.getElementById('discount').value = '0'; document.getElementById('shipping').value = '0'; document.getElementById('tax').value = '0'; document.getElementById('items-container').innerHTML = ''; document.getElementById('monitorItemContainer').innerHTML = ''; document.getElementById('monitorSelect').value = 'none'; document.getElementById('monitorCustomFields').hidden = true; safeStorageRemove('cm_quote_gate_customer_name'); safeStorageRemove('cm_quote_gate_customer_phone'); safeStorageRemove('cm_quote_gate_salesperson'); itemCounter = 0; lastSlackSig = ''; initDefaults(); initComponents(); render(); bindGateEvents(); openGate(); toast('Cleared ✓'); } /* ── Toast ── */ function toast(msg, dur) { var t = document.getElementById('toast'); t.textContent = msg; t.classList.add('show'); clearTimeout(t._timer); t._timer = setTimeout(function() { t.classList.remove('show'); }, dur || 2600); } /* ── Init ── */ function initDefaults() { var now = new Date(); var qno = 'CM-' + now.getFullYear() + ('0'+(now.getMonth()+1)).slice(-2) + ('0'+now.getDate()).slice(-2) + '-' + Math.floor(1000 + Math.random()*9000); document.getElementById('quotationNo').placeholder = qno; document.getElementById('quotationDate').value = now.toISOString().split('T')[0]; } function initQuoteBuilder() { if (document.body.dataset.cmQuoteInitialized === 'true') return; document.body.dataset.cmQuoteInitialized = 'true'; initDefaults(); initComponents(); render(); bindGateEvents(); openGate(false); document.querySelectorAll('#cmGateForm input').forEach(function(input) { input.addEventListener('input', function() { input.classList.remove('cm-invalid'); input.setAttribute('aria-invalid', 'false'); var error = document.getElementById(input.id + 'Error'); if (error) error.textContent = ''; }); }); document.addEventListener('keydown', function(event) { if (event.key === 'Escape' && !document.getElementById('cmEntranceGate').classList.contains('is-hidden')) { event.preventDefault(); event.stopPropagation(); } }, true); } if (document.readyState === 'loading') { window.addEventListener('DOMContentLoaded', initQuoteBuilder, { once: true }); } else { initQuoteBuilder(); }