SAC

KDV Hesaplayıcı
İşlem:
KDV Oranı:
Tutar:
KDV Hariç Tutar:
0.00 TL
KDV (20%):
0.00 TL
KDV Dahil Tutar:
0.00 TL
KDV Dahil Tutar Okunuşu: Sıfır Türk Lirası
KDV Dahil Tutar Yazılışı: SıfırTürkLirası
https://kdvhesap.net adresinde hesaplanmıştır
'); printWindow.document.close(); printWindow.focus(); setTimeout(() => { printWindow.print(); printWindow.close(); }, 500); }); // PDF export button handler pdfBtn.addEventListener('click', function() { // Show loading overlay loaderOverlay.style.opacity = '1'; loaderOverlay.style.pointerEvents = 'auto'; setTimeout(() => { const { jsPDF } = window.jspdf; const doc = new jsPDF(); const printContent = resultSection.cloneNode(true); const buttons = printContent.querySelector('.result-actions'); if (buttons) buttons.remove(); // Add title doc.setFontSize(18); doc.text('KDV Hesaplama Sonuçları', 105, 15, { align: 'center' }); // Add content doc.setFontSize(12); let y = 30; const resultItems = printContent.querySelectorAll('.result-item'); resultItems.forEach(item => { const label = item.querySelector('.result-label').textContent; const value = item.querySelector('.result-value').textContent; doc.text(label + ': ' + value, 15, y); y += 10; }); const noteItems = printContent.querySelectorAll('.result-note div'); noteItems.forEach(item => { doc.text(item.textContent, 15, y); y += 10; }); // Add calculated on text doc.text('https://kdvhesap.net adresinde hesaplanmıştır', 15, y); // Save the PDF doc.save('KDV_Hesaplama.pdf'); // Hide loading overlay loaderOverlay.style.opacity = '0'; loaderOverlay.style.pointerEvents = 'none'; // Show feedback const originalText = pdfBtn.innerHTML; pdfBtn.innerHTML = ' İndirildi!'; setTimeout(() => { pdfBtn.innerHTML = originalText; }, 2000); }, 500); }); // Share button handler shareBtn.addEventListener('click', function(e) { e.stopPropagation(); socialShare.classList.toggle('show'); }); // Social share options handler document.querySelectorAll('.social-icon').forEach(icon => { icon.addEventListener('click', function(e) { e.stopPropagation(); const type = this.getAttribute('data-type'); const resultText = `KDV Hesaplama Sonuçları: KDV Hariç Tutar: ${amountExcludingElem.textContent} KDV (${vatRateResultElem.textContent}%): ${vatAmountElem.textContent} KDV Dahil Tutar: ${amountIncludingElem.textContent} Tutar Okunuşu: ${amountReadElem.textContent} Tutar Yazılışı: ${amountWrittenElem.textContent}https://kdvhesap.net adresinde hesaplanmıştır`; let shareUrl = ''; const encodedText = encodeURIComponent(resultText); const url = encodeURIComponent('https://kdvhesap.net'); switch(type) { case 'email': const subject = 'KDV Hesaplama Sonuçları'; const body = resultText.replace(/\n/g, '%0D%0A'); shareUrl = `mailto:?subject=${encodeURIComponent(subject)}&body=${encodeURIComponent(body)}`; window.location.href = shareUrl; break; case 'facebook': shareUrl = `https://www.facebook.com/sharer/sharer.php?u=${url}"e=${encodedText}`; window.open(shareUrl, 'facebook-share-dialog', 'width=800,height=600'); break; case 'twitter': shareUrl = `https://twitter.com/intent/tweet?text=${encodedText}`; window.open(shareUrl, 'twitter-share-dialog', 'width=800,height=600'); break; case 'instagram': // Instagram doesn't have direct sharing, so we'll open their app or website shareUrl = 'https://www.instagram.com/'; window.open(shareUrl, '_blank'); break; case 'pinterest': shareUrl = `https://pinterest.com/pin/create/button/?url=${url}&description=${encodedText}`; window.open(shareUrl, 'pinterest-share-dialog', 'width=800,height=600'); break; } socialShare.classList.remove('show'); }); }); // Close social share when clicking outside document.addEventListener('click', function() { if (socialShare.classList.contains('show')) { socialShare.classList.remove('show'); } }); // Helper function to convert numbers to words function convertNumberToWords(num) { if (num === 0) return 'Sıfır'; if (num > 1000000000000) return 'Çok Büyük Tutar'; const ones = ['', 'Bir', 'İki', 'Üç', 'Dört', 'Beş', 'Altı', 'Yedi', 'Sekiz', 'Dokuz']; const teens = ['On', 'Onbir', 'Oniki', 'Onüç', 'Ondört', 'Onbeş', 'Onaltı', 'Onyedi', 'Onsekiz', 'Ondokuz']; const tens = ['', '', 'Yirmi', 'Otuz', 'Kırk', 'Elli', 'Altmış', 'Yetmiş', 'Seksen', 'Doksan']; const scales = ['', 'Bin', 'Milyon', 'Milyar', 'Trilyon']; function convertLessThanOneThousand(n) { if (n === 0) return ''; if (n < 10) return ones[n]; if (n < 20) return teens[n - 10]; if (n < 100) { return tens[Math.floor(n / 10)] + (n % 10 !== 0 ? ' ' + ones[n % 10] : ''); } return ones[Math.floor(n / 100)] + ' Yüz' + (n % 100 !== 0 ? ' ' + convertLessThanOneThousand(n % 100) : ''); } let words = ''; let scaleIndex = 0; while (num > 0) { const chunk = num % 1000; if (chunk !== 0) { let chunkWords = convertLessThanOneThousand(chunk); if (scaleIndex > 0) { chunkWords += ' ' + scales[scaleIndex]; } words = chunkWords + (words ? ' ' + words : ''); } num = Math.floor(num / 1000); scaleIndex++; } return words || 'Sıfır'; } });