KDV Hesaplayıcı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';
}
});