Gelir-Gider ve Cari Hesap Takip table { border-collapse: collapse; width: 100%; } th, td { border: 1px solid #dddddd; text-align: left; padding: 8px; } th { background-color: #f2f2f2; }

Gelir-Gider ve Cari Hesap Takip

Gelir-Gider Cari Hesaplar
let gelirler = []; let giderler = []; let cariHesaplar = []; let editingIndex = -1; function showGelirGider() { document.getElementById(‘gelirGiderContainer’).style.display = ‘block’; document.getElementById(‘cariHesaplarContainer’).style.display = ‘none’; document.getElementById(‘firmaDetaylari’).style.display = ‘none’; } function showCariHesaplar() { document.getElementById(‘gelirGiderContainer’).style.display = ‘none’; document.getElementById(‘cariHesaplarContainer’).style.display = ‘block’; document.getElementById(‘firmaDetaylari’).style.display = ‘none’; } function gelirEkle() { const miktar = parseFloat(document.getElementById(‘miktar’).value) || 0; const aciklama = document.getElementById(‘aciklama’).value; const tarih = document.getElementById(‘tarihGelirGider’).value; if (aciklama !== ”) { gelirler.push({ miktar, aciklama, tarih }); updateResults(); } else { alert(‘Geçerli bir açıklama girin.’); } } function giderEkle() { const miktar = parseFloat(document.getElementById(‘miktar’).value) || 0; const aciklama = document.getElementById(‘aciklama’).value; const tarih = document.getElementById(‘tarihGelirGider’).value; if (aciklama !== ”) { giderler.push({ miktar, aciklama, tarih }); updateResults(); } else { alert(‘Geçerli bir açıklama girin.’); } } function bakiyeHesapla() { const toplamGelir = gelirler.reduce((acc, item) => acc + item.miktar, 0); const toplamGider = giderler.reduce((acc, item) => acc + item.miktar, 0); const bakiye = toplamGelir – toplamGider; document.getElementById(‘toplamGelir’).innerText = `Toplam Gelir: ${toplamGelir}`; document.getElementById(‘toplamGider’).innerText = `Toplam Gider: ${toplamGider}`; document.getElementById(‘bakiye’).innerText = `Bakiye: ${bakiye}`; } function cariHesapEkle() { const musteriAdi = document.getElementById(‘musteriAdi’).value; const borc = parseFloat(document.getElementById(‘borc’).value) || 0; const alacak = parseFloat(document.getElementById(‘alacak’).value) || 0; const tarih = document.getElementById(‘tarihCari’).value; const aciklama = document.getElementById(‘aciklamaCari’).value; if (editingIndex === -1) { // Yeni hesap ekleme modunda ise if (musteriAdi !== ”) { cariHesaplar.push({ musteriAdi, borc, alacak, detaylar: [{ borc, alacak, tarih, aciklama }] }); updateCariHesaplarTable(); clearCariHesapForm(); } else { alert(‘Geçerli bir firma adı girin.’); } } else { // Güncelleme modunda ise if (musteriAdi !== ”) { const detaylar = cariHesaplar[editingIndex].detaylar; detaylar.push({ borc, alacak, tarih, aciklama }); cariHesaplar[editingIndex] = { musteriAdi, borc, alacak, detaylar }; updateCariHesaplarTable(); clearCariHesapForm(); editingIndex = -1; // Güncelleme tamamlandığında editingIndex’i sıfırla } else { alert(‘Geçerli bir firma adı girin.’); } } } function updateResults() { bakiyeHesapla(); } function updateCariHesaplarTable() { const cariHesaplarTableBody = document.getElementById(‘cariHesaplar’).getElementsByTagName(‘tbody’)[0]; // Önce tabloyu temizle cariHesaplarTableBody.innerHTML = ”; // Cari hesapları tabloya ekle cariHesaplar.forEach((cariHesap, index) => { const row = cariHesaplarTableBody.insertRow(); row.insertCell(0).innerHTML = `${cariHesap.musteriAdi}`; row.insertCell(1).innerText = cariHesap.borc; row.insertCell(2).innerText = cariHesap.alacak; // Düzenle düğmesi const editButton = document.createElement(‘button’); editButton.innerText = ‘Düzenle’; editButton.onclick = () => editCariHesap(index); row.insertCell(3).appendChild(editButton); }); } function showCariHesapDetails(index) { const cariHesap = cariHesaplar[index]; const firmaDetaylariTableBody = document.getElementById(‘firmaDetaylari’).getElementsByTagName(‘tbody’)[0]; firmaDetaylariTableBody.innerHTML = ”; cariHesap.detaylar.forEach((detay, detayIndex) => { const row = firmaDetaylariTableBody.insertRow(); row.insertCell(0).innerText = detay.borc; row.insertCell(1).innerText = detay.alacak; row.insertCell(2).innerText = detay.tarih; row.insertCell(3).innerText = detay.aciklama; const deleteButton = document.createElement(‘button’); deleteButton.innerText = ‘Sil’; deleteButton.onclick = () => deleteCariHesapDetay(index, detayIndex); row.insertCell(4).appendChild(deleteButton); }); // Toplam borç ve alacak miktarlarını hesapla ve göster const toplamBorc = cariHesaplar.reduce((acc, item) => acc + item.borc, 0); const toplamAlacak = cariHesaplar.reduce((acc, item) => acc + item.alacak, 0); document.getElementById(‘toplamBorcDetaylari’).innerText = toplamBorc; document.getElementById(‘toplamAlacakDetaylari’).innerText = toplamAlacak; document.getElementById(‘cariHesaplarContainer’).style.display = ‘none’; document.getElementById(‘firmaDetaylari’).style.display = ‘block’; } function deleteCariHesapDetay(cariHesapIndex, detayIndex) { cariHesaplar[cariHesapIndex].detaylar.splice(detayIndex, 1); updateCariHesaplarTable(); showCariHesapDetails(cariHesapIndex); } function backToCariHesaplar() { document.getElementById(‘firmaDetaylari’).style.display = ‘none’; document.getElementById(‘cariHesaplarContainer’).style.display = ‘block’; } function clearCariHesapForm() { document.getElementById(‘musteriAdi’).value = ”; document.getElementById(‘borc’).value = ”; document.getElementById(‘alacak’).value = ”; document.getElementById(‘tarihCari’).value = ”; document.getElementById(‘aciklamaCari’).value = ”; } function editCariHesap(index) { const cariHesap = cariHesaplar[index]; document.getElementById(‘musteriAdi’).value = cariHesap.musteriAdi; document.getElementById(‘borc’).value = ”; document.getElementById(‘alacak’).value = ”; document.getElementById(‘tarihCari’).value = ”; document.getElementById(‘aciklamaCari’).value = ”; // Cari hesapı düzenle butonunu güncelle const updateButton = document.createElement(‘button’); updateButton.innerText = ‘Güncelle’; updateButton.onclick = () => updateCariHesap(index); document.getElementById(‘cariHesaplar’).getElementsByTagName(‘tbody’)[0].rows[index].cells[3].innerHTML = ”; document.getElementById(‘cariHesaplar’).getElementsByTagName(‘tbody’)[0].rows[index].cells[3].appendChild(updateButton); // Güncelleme moduna geç editingIndex = index; } function updateCariHesap(index) { const musteriAdi = document.getElementById(‘musteriAdi’).value; const borc = parseFloat(document.getElementById(‘borc’).value) || 0; const alacak = parseFloat(document.getElementById(‘alacak’).value) || 0; const tarih = document.getElementById(‘tarihCari’).value; const aciklama = document.getElementById(‘aciklamaCari’).value; if (musteriAdi !== ”) { const detaylar = cariHesaplar[index].detaylar; detaylar.push({ borc, alacak, tarih, aciklama }); cariHesaplar[index] = { musteriAdi, borc: cariHesaplar[index].borc, alacak: cariHesaplar[index].alacak, detaylar }; updateCariHesaplarTable(); clearCariHesapForm(); editingIndex = -1; // Güncelleme tamamlandığında editingIndex’i sıfırla } else { alert(‘Geçerli bir firma adı girin.’); } }