Fatura hakkında
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Re: Fatura hakkında
Kodlarda epeyce değişiklik yaptım. Veritabanında da değişiklikler oldu.
Kodu atıyorum.
Kodu atıyorum.
-
- Üye
- Mesajlar: 28
- Kayıt: 22 Eki 2017 11:05
Re: Fatura hakkında
Çok teşekkür ederim ama çözemedim veri tabanında düzenleme yapıp göndere bilirmisniz
Borç alacak ta yapacağım onu göre tanimlarsaniz ben veri tabanında tiriger yazacağım
Borç alacak ta yapacağım onu göre tanimlarsaniz ben veri tabanında tiriger yazacağım
Re: Fatura hakkında
Paketin içinde veri tabanı var zaten
-
- Üye
- Mesajlar: 28
- Kayıt: 22 Eki 2017 11:05
Re: Fatura hakkında
Çok teşekkür ederim Allah razı olsun sadece silme işleminde bir sıkıntı var
Birde cari hareket için ayrı tablo mu yapacağım
2. Programda iki sefer açıldığında ikiside ayna anda fatura kaydı yapamıyor önce birisi kayıt işlemini tamamlaması gerekiyor
Birde cari hareket için ayrı tablo mu yapacağım
2. Programda iki sefer açıldığında ikiside ayna anda fatura kaydı yapamıyor önce birisi kayıt işlemini tamamlaması gerekiyor
Re: Fatura hakkında
Cari için senin sistemine bağlı. Senin faturanda birden fazla satır vardı, o nedenle 2 ayrı tablo önerdim. Ama cari hareketlerde her fiş tek kalem olabilir.
Mmüşteri bir kısmını kredi kartı, bir kısmını senet, bir kısmını nakit TL, bir kısmını nakit USD olarak ödeme olasılığı varsa aynen stoktaki gibi iki ayrı tablo yapman gerekir. Yani bir başlık ve toplamlardan oluşan tablo ve bir de detay tablosu. Yok eğer, daima tek kalem ödeme yapılıyorsa o zaman tek tablo yeterlidir.
2. program açılmaması sebebi IBX'in transaction'u ile ilgili sanıyorum. Onları ayarlarsan düzelecektir.
Ancak bu arada bazı konulara değinmeden geçemeyeceğim.
1- Firebird DB'si üzerinde değişiklikler ve düzeltmeler yaparken 4-5 defa DB bozuldu, baştan başlamak zorunda kaldım. Bir DB için bu kabul edilemez bir şey. Bence Firebird kullanmak riskli.
2- Niçin IBX kullanıyorsun? Ciddi projelerde yeterli olacak mı? Bence bu konuda UniDac iyi bir çözüm olabilir. İnternette biraz ararsan bulabilirsin. Profesyonel ve kolay kullanımlı (özellikle BDE'ye benzerliğiyle) bir DB erişim sistemi.
3- Delphi 7 kullanıyorsun, ancak artık D7 dönemini tamamladı. Çağa ve çağın yeni paradigmalarına uygun olabilmek için mutlaka Design Pattern'leri uygulayabileceğin bir versiyonunu kullanman (D 2010 veya sonrası, ya da FPC-Lazarus) gerekli. Yeni versiyonlarda bile Delphi programcıyı geleneksel programlamaya zorluyor ancak bunlara uymadan yeni sistemi öğrenmek ve uygulamak gerekiyor. Yoksa çağın gerisinde kalmak kaçınılmaz.
Mmüşteri bir kısmını kredi kartı, bir kısmını senet, bir kısmını nakit TL, bir kısmını nakit USD olarak ödeme olasılığı varsa aynen stoktaki gibi iki ayrı tablo yapman gerekir. Yani bir başlık ve toplamlardan oluşan tablo ve bir de detay tablosu. Yok eğer, daima tek kalem ödeme yapılıyorsa o zaman tek tablo yeterlidir.
2. program açılmaması sebebi IBX'in transaction'u ile ilgili sanıyorum. Onları ayarlarsan düzelecektir.
Ancak bu arada bazı konulara değinmeden geçemeyeceğim.
1- Firebird DB'si üzerinde değişiklikler ve düzeltmeler yaparken 4-5 defa DB bozuldu, baştan başlamak zorunda kaldım. Bir DB için bu kabul edilemez bir şey. Bence Firebird kullanmak riskli.
2- Niçin IBX kullanıyorsun? Ciddi projelerde yeterli olacak mı? Bence bu konuda UniDac iyi bir çözüm olabilir. İnternette biraz ararsan bulabilirsin. Profesyonel ve kolay kullanımlı (özellikle BDE'ye benzerliğiyle) bir DB erişim sistemi.
3- Delphi 7 kullanıyorsun, ancak artık D7 dönemini tamamladı. Çağa ve çağın yeni paradigmalarına uygun olabilmek için mutlaka Design Pattern'leri uygulayabileceğin bir versiyonunu kullanman (D 2010 veya sonrası, ya da FPC-Lazarus) gerekli. Yeni versiyonlarda bile Delphi programcıyı geleneksel programlamaya zorluyor ancak bunlara uymadan yeni sistemi öğrenmek ve uygulamak gerekiyor. Yoksa çağın gerisinde kalmak kaçınılmaz.
-
- Üye
- Mesajlar: 28
- Kayıt: 22 Eki 2017 11:05
Re: Fatura hakkında
Hocam
1.Silme işleminde sıkıntı var transaction'u ayarladım yine hata mesajı veriyor
2. Birinci kullanıcı yeni fatura ekranı açıp fatura girişi yaparken Stok hareketbaslik toblosu insert konumuna geçiyor diğer kullanıcı fatura kaydı yapamıyor Id çakışması yapıyor
3 stok hareket başlıktaki Fatura tarih , Belge No , toplam tutar Cari Hareket Toplasunada Gitmesi gerekmiyor mu
1.Silme işleminde sıkıntı var transaction'u ayarladım yine hata mesajı veriyor
2. Birinci kullanıcı yeni fatura ekranı açıp fatura girişi yaparken Stok hareketbaslik toblosu insert konumuna geçiyor diğer kullanıcı fatura kaydı yapamıyor Id çakışması yapıyor
3 stok hareket başlıktaki Fatura tarih , Belge No , toplam tutar Cari Hareket Toplasunada Gitmesi gerekmiyor mu
Kod: Tümünü seç
procedure TDM.DeleteFatura({const FatId: Integer; }atblFatHdr : TDataset);
var
IBQ : TIBQuery;
begin
IBTransaction.Active := False;
try
IBQ := TIBQuery.Create(self);
IBQ.Database := IBDatabase;
try
IBQ.SQL.Add('delete TPL_STOKHAREKETDETAY where STHBASLIKID='+IntToStr(atblFatHdr.FieldByName('STHBASLIKID').AsInteger));
IBQ.ExecSQL;
//IBQ.SQL.Clear;
// IBQ.SQL.Add('delete TPL_STOKHAREKETBASLIK where STHBASLIKID='+IntToStr(FatId));
// IBQ.ExecSQL;
finally
IBQ.Free;
end;
atblFatHdr.Delete;
IBTransaction.Commit;
IBTransaction.Active := False;
except
on e:Exception do
begin
IBTransaction.Active := False;
raise Exception.Create(e.Message);
end;
end;
Re: Fatura hakkında
1-IBExpress'i şimdiye kadar hiç kullanmadım. İlk defa bu programda kullandım, bu nedenle bu tür hatalar nereden kaynaklanır bilmiyorum.
2-Aynı anda 2 kullanıcının tek faturada düzeltme yapması sorun yaratacak ve engellenmesi gereken bir şeydir. Lock sistemi zaten bunu önlemek için yapılmıştır.
3-Bu program tasarımıyla ilgili bir şey. Sen gitmesini istersen götürürsün. Ama sistem o şekilde işlemez. Bir müşterinin alacak ve borçları vardır. Borçlar fatura kayıtlarından ve bizim ona yaptığımız ödemelerden oluşur. Alacağı ise onun bize kestiği fatura ve yaptığı ödemelerden oluşur. Sistemi bu şekilde düşünüp ona önceden oluşturmak lazım. Sen istiyorsan cariyle ilgili başka bir tabloya da bunu yazdırabilirsin. Bu tamamen tasarım işi. Ben burada sadece fiş şeklindeki giriş nasıl yapılır onu gösterdim sana. Gerisi sana kalmış bir şey.
2-Aynı anda 2 kullanıcının tek faturada düzeltme yapması sorun yaratacak ve engellenmesi gereken bir şeydir. Lock sistemi zaten bunu önlemek için yapılmıştır.
3-Bu program tasarımıyla ilgili bir şey. Sen gitmesini istersen götürürsün. Ama sistem o şekilde işlemez. Bir müşterinin alacak ve borçları vardır. Borçlar fatura kayıtlarından ve bizim ona yaptığımız ödemelerden oluşur. Alacağı ise onun bize kestiği fatura ve yaptığı ödemelerden oluşur. Sistemi bu şekilde düşünüp ona önceden oluşturmak lazım. Sen istiyorsan cariyle ilgili başka bir tabloya da bunu yazdırabilirsin. Bu tamamen tasarım işi. Ben burada sadece fiş şeklindeki giriş nasıl yapılır onu gösterdim sana. Gerisi sana kalmış bir şey.
-
- Üye
- Mesajlar: 28
- Kayıt: 22 Eki 2017 11:05
Re: Fatura hakkında
Hocam Aynı fatura değil 1.kullanıcı yeni fatura oluşturmaya başladı Diğer kullanıcıda yeni fatura açtı ilk kim kayıt ederse o kayıt işlemi tamamliyor soNaki ID hatası veriyor
Yani 1.kullanıcı 4 noldu İD aldı sonraki kullanıcı 5 İD olması gerekirken 4 yapıyor kayıt esnasında sorun var
Sıkıntı iki kullanıcı Aynı anda Insert yapması
Yani 1.kullanıcı 4 noldu İD aldı sonraki kullanıcı 5 İD olması gerekirken 4 yapıyor kayıt esnasında sorun var
Sıkıntı iki kullanıcı Aynı anda Insert yapması
Re: Fatura hakkında
IBTransaction'la ilgili tüm satırları kaldırdığın zaman herşey düzgün çalışıyor. IBTransaction'ın Active özelliği en baştan True olacak.
Bunun bir sakıncası var elbette. Birbiriyle bağlantılı BASLIK ve DETAY tablolarında bir dizi işlem yaparken arada kesilirse bu soruna yol açacaktır. Yani işlemlerin yarısı yapılıp yarısı yapılmamış olacaktır. Bunları tümüyle elle düzenlemek gerekmekte. Sorun şu ki, bir tablo (ya da query, dataset) open edildiği zaman IBTransaction'ın active olması gerektiği. Yani transaction'ı open etmeden önce başlatıyor. Örnekleri iyi incelemek lazım. Bunları nasıl yaptığına dair. Maalesef ben şu anda inceleyemiyorum.
Bunun bir sakıncası var elbette. Birbiriyle bağlantılı BASLIK ve DETAY tablolarında bir dizi işlem yaparken arada kesilirse bu soruna yol açacaktır. Yani işlemlerin yarısı yapılıp yarısı yapılmamış olacaktır. Bunları tümüyle elle düzenlemek gerekmekte. Sorun şu ki, bir tablo (ya da query, dataset) open edildiği zaman IBTransaction'ın active olması gerektiği. Yani transaction'ı open etmeden önce başlatıyor. Örnekleri iyi incelemek lazım. Bunları nasıl yaptığına dair. Maalesef ben şu anda inceleyemiyorum.
-
- Üye
- Mesajlar: 28
- Kayıt: 22 Eki 2017 11:05
Re: Fatura hakkında
Hocam Rica etsem Bir kısımda Takıldım Yine Fatura toplamlarini aşağıya atıyorum Ama düzeltme için faturaya girince Tutarı ikiye katlıyor Rica Etsem Alt kısımdaki Toplamda Yardımcı Olurmusun