Stok+Cari+Fatura+Kasa+Çek/Senet

Firebird ve Interbase veritabanları ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
Cevapla
snofru
Üye
Mesajlar: 204
Kayıt: 19 Ağu 2004 02:57
Konum: /local/usr/src
İletişim:

Stok+Cari+Fatura+Kasa+Çek/Senet

Mesaj gönderen snofru »

S.A.
Başlıktan anlaşılacağı üzre böyle bir projem var ve kısıtlı zamanım var... Bu günlerde veritabanını düzenlemeye çalışıyorum... (Firebird 1.5)
Pano üzerinde bi diagram çizdim ve nerelerde neyin olacağını az-buçuk kestirdim. İlgili yerlerde tetiklenecek SP leri yazdım. Ancak! Fatura modülünde bazı olayları çözemedim. Misâl bir fatura kesilince ilgili Cari hesaba duruma göre Borç/Alacak işleyen SP yi yazdım ancak bu olayla ilgili Kasa'dan bir Tahsilat yapıldığında ise o Cari'ye yine Borç/Alacak durumunu düzenliyorum. Misal 10 TL fatura dan işleniyor 10 TL Kasadan giriliyor o Carinin durumu 10'a 10'a eşitleniyor. Burada sorun yok gibi ancak yinede içimde bir sıkıntı var. Misal Carinin Borç/Alacak sebeplerini raporlamak istediğimde Fatura ve Kasa modüllerinde tarama yapacam. Bunun yerine başka bir tabloya; Her fatura olayından sonra ilgili cari hesap adı altında gerekli değerleri yeniden eklesem bu kötü bir yol mudur? Bundaki amaç bahsi geçen türde bir rapor istenildiğinde Faturadaki Cari leri tarayıp ilgililerin Detailindeki toplam borç değeri bulup listeletmek (ki sanırım raporlada buna ihtiyacım olcak) yerine her Fatura olayından sonra ayrı bir tabloya işlesem nasıl olur? Bence pek mantıklı değil, çünkü öyle bir durumda Insert, Update ve Delete Trigger'larınada DP yazcam ama kafam karışık çözemedim olayı... Ama inşallah derdimi anlatabilmişimdir. Rapor ile alakalı (sanırım) Fahrettin Bey'in bir sözü aklımda; "SP ile her türlü rapor alınabilir ve de tavsiye edilir..."

Bu sorudan ziyade aslında bana böyle bir projede nasıl davranılmasının gerektiğini izah ederseniz minnettar olurum.

*Not: Fahrettin Bey'in bu tip bir projeyi anlatan Makalesini defalarca okudum ve çok yararı oldu, kendisine çok teşekkür ederim... Muhasebe olayını fazla bilmemem beni zora düşürüyor sanırım, öncelikle yapacağım işi çok iyi anlamam lazım...

*** Birde ben bu diagramda şunu gördüm; kullanıcı faturalı bir satış yapmış ve bunun ödenip ödenmediğini sorarsa ben bulduramadım. :oops: Yani x Cari ye 10 sefer satış yapılmış adamın borcu 100 lira ama 75 lira da tahsil edilmiş ama hangi satışlardan tahsil edilmiş bulamıyorum... Aslında buna ihtiyaç var mı onuda bilmiyorum ama ben görmek istediysem eminim kullanıcıda görmek ister...

Sonuç: Bana mantıklı bir tablo yapısı lazım. saatlerdir düşünüyorum farklı bir tabloda düzenlesem diye ama o da problemli gibi olcak... Bu tip yazılımlar yazan arkadaşlar bilgi verirseniz sevimirim...

Saygılar, sevgiler...

Taner DOĞAN
Kullanıcı avatarı
Kuri_YJ
Moderator
Mesajlar: 2248
Kayıt: 06 Ağu 2003 12:07
Konum: İstanbul
İletişim:

Mesaj gönderen Kuri_YJ »

Selamlar,

Oluşturduğun structue'ları yazar mısın, o zaman sana daha net bilgi verebiliriz. Zira şimdikiler çok havada kalır.

Kolya Gelsin
Kuri Yalnız Jedi
Harbi Özgürlük İçin Pisi http://www.pisilinux.org/
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Mesaj gönderen aslangeri »

S.A.
Şöyle bir yapı olabilir.
Cari Tablosu
CARIID

Fatura Tablosu
FATURAID
CARIID

Odemeler Tablosu
ODEMEID
CARIID

Fatura Odeme Tablosu
ODEMEID
CARIID
FATURAID
MIKTAR

Ödemeler Tablosuna kayıt girildiği zaman fatura ödeme tablosunada kayıt girecek. Biraz açıklayım.
Fatura Odeme tablosu ile faturanın ne kadarı ödenmiş onu görüyoruz. Fatura için hesaplanan bir alan (Odenen) ekleyip bu tablodaki kayıtların toplamını alıyoruz. böylece faturanın ne kadarı ödenmiş kaç lira kalmış görüyoruz.
Ödeme kaydını girerken faturaları tek tek tarıyacağız Odenen kısmı miktar kısmına eşit olmayan faturaların kalan ları kadar fatura ödeme tablosuna kayıt girilecek. bu işlem ödemeler tablosundaki ödeme miktarının tamamı faturalara dağıtılana kadar devam edecek. Böylelikle faturaların ne kadarının ödenmiş olduğunu görebilrsin.
Yalnız bu sistem tüm kullanıcılarda düzgün çalışmıyor. Çünkü bazı müşteriler önce yüklü bir ödeme yapıyor sonra fatura kesildikçe ödemesinden düşüyor. bu durumda fatura olmadığı için fatura ödeme tablosuna kayıt girilemiyor ve faturaların ne kadarı ödenmiş göremiyorsun.

Umarım yardımcı olabilmişimdir.
Kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Misafir

Mesaj gönderen Misafir »

merhaba.
oturmuş muhasebe programları ve sistemlerinde mantık kısaca ÖZEL KOD uygulamasıdır...form üzerinde görülen ÖZEL KOD kullanıcı için hazırlansa da programın sistematik çalışması ve ilgili kartların hiyerarşik yapısını düzenleme amaçlıdır.ancak;forumda kullanılan ÖZEL KOD, veri girildikten sonra belirlenecek parametre olarak algılanmalıdır.dolayısıyla aynı metodu arka plânda kullanmak üzere bir takım hazırlıklar yapılması gerekir.Aslangeri'nin de bahsettiği gibi bir id değeri ya da bir referans numarası verilmelidir ki,hangi ödemenin hangi cari karta bağlı hangi faturasından düşülmesi gerektiği tespit edilebilsin.Aslangeri'nin bahsettiği diğer husus (fatura kesilmeden önceki yüksek meblağlı ödemeler) için ise bu işlemin kaydı esnasında (trigger olabilir bu) borç/alacak sonucu ve tahsil edilmek istenen tutar kontrol edilmelidir.
kolay gelsin.
Kullanıcı avatarı
nitro
Üye
Mesajlar: 1112
Kayıt: 23 Ağu 2004 01:18
Konum: Çanakkale
İletişim:

bence ara bir tablo kullanmakta fayda var

Mesaj gönderen nitro »

faturalar kaydedilir.
ödemeler de ayrı bir tabloda kaydedilir.
içerisinde sadece hangi numaralı ödemenin hangi faturaya ait olduğu tutulan bir minik tablo oluşturulur.
böylece tüm raporlamalar ve işlemler için minik tablomuzu ziyaret edebiliriz.
örnek
10 nolu 100 liralık fatura var
ve daha sonradan
45 nolu ödeme 20 liralık ödeme
64 nolu ödeme 50 liralık ödeme var

bu durumda minik tablo şöyle bir şekil alacak

10 45
10 64

sorgu aldığımızda görürüz ki 10 numaralı faturanın 70 lirası ödenmiş.
zikir fikir ile başlar. kolay gelsin.
snofru
Üye
Mesajlar: 204
Kayıt: 19 Ağu 2004 02:57
Konum: /local/usr/src
İletişim:

Mesaj gönderen snofru »

S.A.
Arkadaşlar hepinize teşekkür ederim... Olayı anladım... Zaten bu süre içerisinde tabloları hazırladım SP leri yazdım ve ilgili yerdeki triggerlara bağladım. Tüm yapıyı Pano üzerine aktardım ve sanal alım, satım, alacak verecek filan uyguluyorum normal görünüyor.
Şimdilerde Foreign key, indexleme filan tasarlıyorum (ki FK olayını bi türlü çözemedim hep Delphi'de Master/Detail olayda hata alıyorum) sanırım yarın Delphi'ye geçerim :) İnşallah DB de büyük bi problemle karşılaşmam... Raporlama hariç Arayüz kısmını 1 haftada filan bitirmem lazım. İnşallah yıkıcı bi problemle karşılaşmam... Bu ilk projem ve başarısız olmak istemiyoruumm... :roll:

Hepinize tekrar teşekkür ederek birşey daha rica edeceğim...
Bana izlemem gereken bir yol tavsiye eder misiniz? Yani ilk projem ve acemiyim, sıkıntılıyım... Bana güvenenleri utandırmak istemiyorum :roll:

Saygılar, sevgiler...

Taner DOĞAN
Misafir

zor olanı

Mesaj gönderen Misafir »

ama bence doğru olanı, fatura ve ödemeleri ayrı ayrı tablolarda değil aynı tablo da takip etmen. yani kısaca temel de sana dört tablo lazım olacak bir de çek senet 5 tablo

stok,cari,stok hareket,cari hareket ve çek senet tabloları

burada önemli olan cari hareket gibi gözüküyor, bi fatura kesildiğinde fatura toplam bilgilerini bu carihareket tablosuna, kalem bilgilerini stokhareket dosyasına kaydetmelisin. ve her carihareket kaydı için kapatılan tutar takibi yapmalısın. bir ödeme işlemi gerçkleştiğinde ister en eski tarihten en yeni tarihe doğru otomatik kapatırsın istersen kullanıcıya bırakırsın. yani kullanıcı derki bu tahsilat şu şu ve şu faturaları kapatsın. o zaman sen o cari hareketin kapatılan tutar bölümüne gider yazarsın

ama bu sanırım senin şimdiye kadar ki tüm çabalarını yeniden gözden geçirmeni gerektirecek bir olay.

kolay gelsin
snofru
Üye
Mesajlar: 204
Kayıt: 19 Ağu 2004 02:57
Konum: /local/usr/src
İletişim:

Mesaj gönderen snofru »

S.A.
Dostlar, ben olayın VT kısmını tavsiyeleriniz ve düşünceleriniz doğrultusunda yapılandırdım. Dün gece de Delphi'ye geçtim. Yaptığımız testler (VT yapısı üzerinde) olayın düzgün çalıştığını gösteriyor ama bakalım ilerde tabii ki problemlerle karşılaşacağız...

Bahsi geçen hareket tablolarımı oluşturdum ve ilgili Triggerlarda SP ile işliyorum olayı... Hayırlısı olsun diyerek ve Hepinize şürkranlarımı sunarak başlıyorum....

Saygılar, sevgiler...

Taner DOĞAN
Cevapla