Fatura hakkında

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
kerpeten
Üye
Mesajlar: 62
Kayıt: 26 May 2016 01:31

Re: Fatura hakkında

Mesaj gönderen kerpeten »

Kodlarda epeyce değişiklik yaptım. Veritabanında da değişiklikler oldu.
Kodu atıyorum.
PKTS.rar
(136.86 KiB) 67 kere indirildi
isahin474650
Üye
Mesajlar: 28
Kayıt: 22 Eki 2017 11:05

Re: Fatura hakkında

Mesaj gönderen isahin474650 »

Ç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
kerpeten
Üye
Mesajlar: 62
Kayıt: 26 May 2016 01:31

Re: Fatura hakkında

Mesaj gönderen kerpeten »

Paketin içinde veri tabanı var zaten
isahin474650
Üye
Mesajlar: 28
Kayıt: 22 Eki 2017 11:05

Re: Fatura hakkında

Mesaj gönderen isahin474650 »

Ç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
kerpeten
Üye
Mesajlar: 62
Kayıt: 26 May 2016 01:31

Re: Fatura hakkında

Mesaj gönderen kerpeten »

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.
isahin474650
Üye
Mesajlar: 28
Kayıt: 22 Eki 2017 11:05

Re: Fatura hakkında

Mesaj gönderen isahin474650 »

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

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;
    
kerpeten
Üye
Mesajlar: 62
Kayıt: 26 May 2016 01:31

Re: Fatura hakkında

Mesaj gönderen kerpeten »

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.
isahin474650
Üye
Mesajlar: 28
Kayıt: 22 Eki 2017 11:05

Re: Fatura hakkında

Mesaj gönderen isahin474650 »

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ı
kerpeten
Üye
Mesajlar: 62
Kayıt: 26 May 2016 01:31

Re: Fatura hakkında

Mesaj gönderen kerpeten »

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.
isahin474650
Üye
Mesajlar: 28
Kayıt: 22 Eki 2017 11:05

Re: Fatura hakkında

Mesaj gönderen isahin474650 »

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
Cevapla