kasa işlemleri Ve gün sonu bakiyesi

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
selman
Üye
Mesajlar: 664
Kayıt: 04 Ara 2003 12:06
Konum: İzmir

kasa işlemleri Ve gün sonu bakiyesi

Mesaj gönderen selman »

Herkese Selam Öncelikle yapmak istediğim olayı kısaca anlatayım.Benim 2 ad. kasam var 1.Günlük kasa 2.Anakasa

Şimdi Günlük kasamda yapılan işlemler sistem tarihine bağlı.yani sistem tarihi diyelim bugun 12.12.05 ve bu kasaya ait işlemler yapıldı.Yarın yani 13.12.05oluduğunda ise kasa işlemleri boş bir sayfa açıldı.
Buraya kadar tamam.Yabi SQL ile where koşulu iletarihi çekiphallettim. Fakat asıl sorun şu
Benim bu kasa işlemlerini yapığım en üstte

Önceki günden devir Anakasadan Devir Günlük Giriş Günlük Çıkış
YTL
USD
EURO
Anakasaya Devir ve Gün sonu bakiyesi

Şimdi yapmak istediğim de
ben
Gün sonu bakiyes:=Önceki Günden devir+Anakasadan Devir+Günlük Giriş-(Günlük Çıkış+Anakasaya Devir)

Şeklinde bulup ve sistem tarihi değiştirdiğinden

yani bir sonraki günde Gün sonu bakiyesi Önceki gündendevire geçiçek bunu yapamaddım.Veya nasıl biryol izlemeliyim.

Not:=Sistem tarihi ile otomatik kasayı kapatmak hiç de hoş değil aslında.Ama müşterinin istediği şekildeyapmalıyım.

herkese iyi çalışmalar....
Kullanıcı avatarı
freeman35
Admin
Mesajlar: 2384
Kayıt: 12 Haz 2003 04:05
Konum: merkez camii yanı

Mesaj gönderen freeman35 »

Benim kullandığım mantığı anlatayım sana,
Öncelikle kasa kapatmak bence yanlış, çünkü 3 gün öncesinde bir şey değiştirilirse 3 günlük kasa işlemlerini tekrar güncellemen gerek. e müşterilerde herzaman geriye dönük işlem yapmak isterler.
forumun üstüne bir DateTimepicker koy bunun onchange i değil çünkü her değişiklikte tetiklenir, onexit inde query yi refresh ettir.
Query inde ise ya forma 2 tane Query koyup istenen ilki devir deyip girilmiş tarihin 1 önceki güne kadar olanlarını getiricek, ikinci ise sadece o tarihi alıcak. burda dikkat etmen gereken eğer saat de varsa xx.xx.xxxx 23:59:59 şeklinde vermek gerekir.
Ama bu işlemi bir SP içindede yapabilirsin ve sonuçları tek bir query ilede alabilirsin

dövizler içinde group by kullanırsan tek SQL ile sonuçalrı alabilirsin

Kolay gele
ZAGOR TENAY TÜRK'tür... TÜRK kalacak...
Zoru başarırım, İmkansız zaman alır
FreeMan 35.5

Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!
Kullanıcı avatarı
selman
Üye
Mesajlar: 664
Kayıt: 04 Ara 2003 12:06
Konum: İzmir

Mesaj gönderen selman »

Selam
freeman35 üstadım öncelikle cevap için ök tşkederim.Ben Normalde sistem tarihine göre aldığım için kasayı adam windowsun tarihini geri alarak önceki kasada zaten hataları düzeltebilecek.Ben zaten sistem tarihine ağlı olarak şu şekilde bir yol izledim.

Kod: Tümünü seç


procedure Tkasa.FormShow(Sender: TObject);
begin
RzDateTimePicker2.Date:=now;
Rzdatetimepicker1.Date:=now;
datamodule3.kasa.Close;
datamodule3.kasa.SelectSQL.Clear;
datamodule3.kasa.SelectSQL.Text:='select* from kasa where tarih='''+datetostr(RzDateTimePicker1.Date)+'''';
 datamodule3.kasa.Open;

 datamodule3.adevir.Close;
datamodule3.adevir.SelectSQL.Clear;
datamodule3.adevir.SelectSQL.Text:='select* from adevir where tarih='''+datetostr(RzDateTimePicker1.Date)+'''';
 datamodule3.adevir.Open;


datamodule3.kasagirtop.Close;
datamodule3.kasagirtop.ParamByName('ilk').AsDateTime:=now;
datamodule3.kasagirtop.ParamByName('son').AsDatetime:=now;
datamodule3.kasagirtop.Open;

datamodule3.kasagirtopusd.Close;
datamodule3.kasagirtopusd.ParamByName('ilk').AsDateTime:=now;
datamodule3.kasagirtopusd.ParamByName('son').AsDatetime:=now;
datamodule3.kasagirtopusd.Open;


datamodule3.kasagirtopytl.Close;
datamodule3.kasagirtopytl.ParamByName('ilk').AsDateTime:=now;
datamodule3.kasagirtopytl.ParamByName('son').AsDatetime:=now;
datamodule3.kasagirtopytl.Open;



datamodule3.kasaciktop.Close;
datamodule3.kasaciktop.ParamByName('ilk').AsDateTime:=now;
datamodule3.kasaciktop.ParamByName('son').AsDatetime:=now;
datamodule3.kasaciktop.Open;


datamodule3.kasaciktopusd.Close;
datamodule3.kasaciktopusd.ParamByName('ilk').AsDateTime:=now;
datamodule3.kasaciktopusd.ParamByName('son').AsDatetime:=now;
datamodule3.kasaciktopusd.Open;


datamodule3.kasaciktopytl.Close;
datamodule3.kasaciktopytl.ParamByName('ilk').AsDateTime:=now;
datamodule3.kasaciktopytl.ParamByName('son').AsDatetime:=now;
datamodule3.kasaciktopytl.Open;

datamodule3.adevirler.Close;
datamodule3.adevirler.ParamByName('ilk').AsDateTime:=now;
datamodule3.adevirler.ParamByName('son').AsDatetime:=now;
datamodule3.adevirler.Open;


datamodule3.adevirlerusd.Close;
datamodule3.adevirlerusd.ParamByName('ilk').AsDateTime:=now;
datamodule3.adevirlerusd.ParamByName('son').AsDatetime:=now;
datamodule3.adevirlerusd.Open;


datamodule3.adevirlerytl.Close;
datamodule3.adevirlerytl.ParamByName('ilk').AsDateTime:=now;
datamodule3.adevirlerytl.ParamByName('son').AsDatetime:=now;
datamodule3.adevirlerytl.Open;


datamodule3.kdevirler.Close;
datamodule3.kdevirler.ParamByName('ilk').AsDateTime:=now;
datamodule3.kdevirler.ParamByName('son').AsDatetime:=now;
datamodule3.kdevirler.Open;


datamodule3.kdevirlerusd.Close;
datamodule3.kdevirlerusd.ParamByName('ilk').AsDateTime:=now;
datamodule3.kdevirlerusd.ParamByName('son').AsDatetime:=now;
datamodule3.kdevirlerusd.Open;


datamodule3.kdevirlerytl.Close;
datamodule3.kdevirlerytl.ParamByName('ilk').AsDateTime:=now;
datamodule3.kdevirlerytl.ParamByName('son').AsDatetime:=now;
datamodule3.kdevirlerytl.Open;


datamodule3.kasabakiyeler.Close;
datamodule3.kasabakiyeler.ParamByName('ilk').AsDateTime:=RzDateTimePicker2.Date;
datamodule3.kasabakiyeler.ParamByName('son').AsDatetime:=RzDateTimePicker2.Date;
datamodule3.kasabakiyeler.Open;


datamodule3.kasabakiyelerusd.Close;
datamodule3.kasabakiyelerusd.ParamByName('ilk').AsDateTime:=RzDateTimePicker2.Date;
datamodule3.kasabakiyelerusd.ParamByName('son').AsDatetime:=RzDateTimePicker2.Date;
datamodule3.kasabakiyelerusd.Open;



datamodule3.kasabakiyelerytl.Close;
datamodule3.kasabakiyelerytl.ParamByName('ilk').AsDateTime:=RzDateTimePicker2.Date;
datamodule3.kasabakiyelerytl.ParamByName('son').AsDatetime:=RzDateTimePicker2.Date;
datamodule3.kasabakiyelerytl.Open;
böyle bir kod yazarak formun on show olayından kontrol ediyorum.Benim tek sorunum

Gün sonu bakiyesini Önceki Günden Devire atmak istiyorum.Yukarıdaki mesajımdada Günsonu bakiyesini nasıl bulduğumu söylemiştim.
Kolay gele...
Cevapla