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.’);
}
}
