otel programı hakkında...

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
PcText
Üye
Mesajlar: 36
Kayıt: 19 Ağu 2004 04:04
Konum: İstanbul / Alibeyköy
İletişim:

otel programı hakkında...

Mesaj gönderen PcText »

slm arkadaşlar,askerliğimi yağtığım afyon ordu evi için bir otel programı yazmaya başladık

programda
master-detail kullanarak
müşteri bilgileri ,rezervasyon bilgileri ve konaklama bilgileri diye ilişkili
üç adet tablo yapmayı düşünüyoruz,
müşteri bilgilerinde gelen müşterinin kisisel bilgileri
rezervasyon bilgilerinde yer ayırttığı tarih ve oda bilgileri
konaklama bilgilerinde ise otele giriş tarihi-çıkış tarihi ve alınan ücretler felan olcak
özetle algoritmayı böyle yaptık ama
kafamı kurcalayan konu Müşterinin giriş yaptığı tarihi bir veri alanında saklarken çıkış yaptığı tarihide ikinci bir alanda saklıyacağız ama( misal: 13.12.2006 da girmiş 17.12.2006 da çıkmış) bu iki tarih arasında ki günleri
nasıl bir kodla bir alana saklamalıyızki bu tarihler arasında müşterinin kaldığı ilgili oda giriş tarihi ve çıkış tarihi arasındaki günlerdede dolu gözüksün ve listelendiğinde bu oda bu tarihlerdedolu densin

biliyorum biraz uzun ve karışık oldu ama
sabırla okuyup yardım ediceğinizi düşünüyorum
şimdiden teşekkürler yardımlarınız için
Dört bir yan kararınca sana yöneldik.Ey ışıklar kaynağı aç kapını biz geldik.
Kullanıcı avatarı
bobasturk
Kıdemli Üye
Mesajlar: 1387
Kayıt: 20 May 2004 08:39
Konum: Düzce

Mesaj gönderen bobasturk »

Merhaba,

Fikir açısından oda bilgilerini tuttuğun tablona bir alan daha eklemek suretiyle (misalen odadurum gibi) odayı kiraladığın anda bu alanı checkbox veya dolu gibi bir yazı ile güncelleyip boş veya dolu oda sorgusunda bilginin gelmesini sağlayabilirsin. sonuçta dolu yazısı dönerse veya dolu checkbox işaretli ise o odanın dolu olduğu ortaya çıkar. odayı boşaltma tarihinde yine bu alanı boş veya boşcheckbox u ile güncelleyerek boş görünmesini sağlayabilirsin.

kolay gelsin
Şefkat-u Merhamette Güneş Gibi Ol.
Başkalarının Kusurunu Örtmekte Gece Gibi Ol.
Sehavet-u Cömertlikte Akarsu Gibi Ol.
Hiddet-u Asabiyette Ölü Gibi Ol.
Tevazu-u Mahviyette Toprak Gibi Ol.
Ya Olduğun Gibi Görün Ya Göründüğün Gibi Ol.

Resim
ikut

Re: otel programı hakkında...

Mesaj gönderen ikut »

PcText yazdı:slm arkadaşlar,askerliğimi yağtığım afyon ordu evi için bir otel programı yazmaya başladık

programda
master-detail kullanarak
müşteri bilgileri ,rezervasyon bilgileri ve konaklama bilgileri diye ilişkili
üç adet tablo yapmayı düşünüyoruz,
müşteri bilgilerinde gelen müşterinin kisisel bilgileri
rezervasyon bilgilerinde yer ayırttığı tarih ve oda bilgileri
konaklama bilgilerinde ise otele giriş tarihi-çıkış tarihi ve alınan ücretler felan olcak
özetle algoritmayı böyle yaptık ama
kafamı kurcalayan konu Müşterinin giriş yaptığı tarihi bir veri alanında saklarken çıkış yaptığı tarihide ikinci bir alanda saklıyacağız ama( misal: 13.12.2006 da girmiş 17.12.2006 da çıkmış) bu iki tarih arasında ki günleri
nasıl bir kodla bir alana saklamalıyızki bu tarihler arasında müşterinin kaldığı ilgili oda giriş tarihi ve çıkış tarihi arasındaki günlerdede dolu gözüksün ve listelendiğinde bu oda bu tarihlerdedolu densin

biliyorum biraz uzun ve karışık oldu ama
sabırla okuyup yardım ediceğinizi düşünüyorum
şimdiden teşekkürler yardımlarınız için
oda bilgileri diye ayrı bir tablo daha kullanman uygun olur. odayı ordadan seçtirir boşmu dolumu güncellersin.
Kullanıcı avatarı
armadillo
Üye
Mesajlar: 67
Kayıt: 07 Tem 2005 01:16
Konum: Antalya

Mesaj gönderen armadillo »

Hangi VT yi kullanacaksın ? eğer server tabanlı bir mimari olacaksa SP ve view kullanarak çözebilirsin. Örneğin gün tarihini baz alarak giriş ve çıkış tarihleri arasında ise o oda numarası için true değeri döndüren bir stored procedure yazıp bu değerleri bir delphi nesnesini (Buton olabilir) visible özelliğine atadığında dolu odalara ilişkin buton görünür olur vs. çeşitli yöntemler uygulayabilirsin. Firebird ü yeni öğrenmeme rağmen çok güzel özellikleri var (ücretsiz olması çok büyük avantaj) ve formumuz sayesinde türkçe kaynak sıkıntısı asla çekmezsin. Her daim yardıma hazır ustalarımızda burdalar saolsunlar her türlü sorumuza üşenmeden cevap veriyorlar. Hayırlı tezkereler
Abdüsselam

Mesaj gönderen Abdüsselam »

otellerde bir odada 3-4 kişiye kadar kalabiliyor. Veritabanını nasıl tasarlayacaksın.

s.a.
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Mesaj gönderen mrmarman »

- Verimli bir çözüm üretmek isterseniz sözlerime şöyle başlıycam.. :lol:

- Ben olsam 8) OdaBilgileri, OdaHareket, MüşteriBilgileri ve HesapHareket olarak tasarlardım. Böyle daha verimli olur kanaatindeyim.

- Biraz açayım...

OdaBilgileri : Otelinizin odalarının yatak kapasitesi, oda numarası, kat numarası, bakımda/serbest/servisdışı gibi vs. Fiziksel durumunu tutan tablodur.

OdaHareket : "Rezervasyon/Kalınmakta/Boş" olarak üç tür bilgiyi barındıracak bir alan ve takip eden diğer alanlarda başlama ve bitiş tarihi olur. İki adet anahtar alan da bulunmalıdır. 1.Anahtar OdaBilgileri 2.Anahtar MüşteriBilgileri'dir.

MüşteriBilgileri : Müşterilerin kimlik bilgileri ve özel notları içeren bilgiler tablosudur. Anahtar olarak 1.Anahtar OdaBilgileri, 2.Anahtar HesapHareket olacaktır.

HesapHareket : Oda hakkındaki masraf kalemlerinin hareketlerinin tutulduğu tablodur. iki anahtar vardır. 1.Anahtar Müşteri Id, 2.Anahtar ise OdaBilgileri'dir. MüşteriID boş olanlar ise müşteriden bağımsız otelin kendi masrafları olarak nitelendirilebilir. Hatta bazı kalem hesaplar üretilerek Temizlik kalemi, Tamirat kalemi gibi odaya özel hesap durumu oluşturulabilir. :idea:

- Sözlerimi şöyle sonladırıcam. Kolay gelsin... :wink:
Resim
Resim ....Resim
Kullanıcı avatarı
PcText
Üye
Mesajlar: 36
Kayıt: 19 Ağu 2004 04:04
Konum: İstanbul / Alibeyköy
İletişim:

Mesaj gönderen PcText »

fikirleriniz için teşekkürler ama hala tam olarak sorduğum sorunun cevabını bulamadım çoktur uğraşıyorum ama bi türlü nasıl yapabilmiş değilim
otel giris tarihini ve çıkış tarihini datetimepickerla veritabanına kaydetib
bu tarihler arasında seçilen oda numarasını dolu gösterip,bir sonraki yeni kayıtta eğer bu tarihler arasında her hangi bir günde aynı odaya kayıt yapılmaya çalışıldığında dolu göstermesini sağlamak

veritabanım interbase
ibtable kullanıyorum

1 haftadır uğraşmama rağmen hala bir çözüm yolu bulamadım
yardımlarınızı bekliyorum
Dört bir yan kararınca sana yöneldik.Ey ışıklar kaynağı aç kapını biz geldik.
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Mesaj gönderen mrmarman »

- Bir laf vardır denizleri aşıp derede boğulmak diye... :oops:

- Şimdi Tablo tasarımına kara verdin mi ? Biz onu tartışmıyor muyuz ? Kişisel olarak yabancılaştım.

- Sorduğun sorunun cevabı kuracağın SQL cümlelerinin içeriğinde saklı. Şöyle ki,

Kod: Tümünü seç

SELECT OdaNo FROM OdaBilgileri Where OdaId in ( SELECT OdaIdBaglantiId FROM ODAHAREKET WHERE  OdaDurumu = "Kalınıyor" (GirisTarihi <> Null AND AyrilisTarih is Null)
bu neyi verir kalınmakta olan odalar yani Dolu olanlar... çıkış tarihlerini peşin olarak giriyorsan;

Kod: Tümünü seç

SELECT OdaNo FROM OdaBilgileri Where OdaId in ( SELECT OdaIdBaglantiId FROM ODAHAREKET WHERE OdaDurum = "Kalınıyor" AND Date() BETWEEN GirisTarihi and AyrilisTarihi 
bu neyi verir, bu da aynı sonucu... Ama bugün için kalınan odaların listesi.

- Biraz modifiye edelim...

Kod: Tümünü seç

SELECT OdaNo FROM OdaBilgileri Where OdaId in ( SELECT OdaIdBaglantiId FROM ODAHAREKET WHERE OdaDurum = "Tamirat" 
bu da tamiratta olan odaların listesi. Gördüğün gibi biraz modifiye edilerek sonsuz bilgiye ulaşabilirsin..
Resim
Resim ....Resim
Kullanıcı avatarı
PcText
Üye
Mesajlar: 36
Kayıt: 19 Ağu 2004 04:04
Konum: İstanbul / Alibeyköy
İletişim:

Mesaj gönderen PcText »

mrmarman yazdı:- Bir laf vardır denizleri aşıp derede boğulmak diye... :oops:

- Şimdi Tablo tasarımına kara verdin mi ? Biz onu tartışmıyor muyuz ? Kişisel olarak yabancılaştım.

- Sorduğun sorunun cevabı kuracağın SQL cümlelerinin içeriğinde saklı. Şöyle ki,

Kod: Tümünü seç

SELECT OdaNo FROM OdaBilgileri Where OdaId in ( SELECT OdaIdBaglantiId FROM ODAHAREKET WHERE  OdaDurumu = "Kalınıyor" (GirisTarihi <> Null AND AyrilisTarih is Null)
bu neyi verir kalınmakta olan odalar yani Dolu olanlar... çıkış tarihlerini peşin olarak giriyorsan;

Kod: Tümünü seç

SELECT OdaNo FROM OdaBilgileri Where OdaId in ( SELECT OdaIdBaglantiId FROM ODAHAREKET WHERE OdaDurum = "Kalınıyor" AND Date() BETWEEN GirisTarihi and AyrilisTarihi 
bu neyi verir, bu da aynı sonucu... Ama bugün için kalınan odaların listesi.

- Biraz modifiye edelim...

Kod: Tümünü seç

SELECT OdaNo FROM OdaBilgileri Where OdaId in ( SELECT OdaIdBaglantiId FROM ODAHAREKET WHERE OdaDurum = "Tamirat" 
bu da tamiratta olan odaların listesi. Gördüğün gibi biraz modifiye edilerek sonsuz bilgiye ulaşabilirsin..
listelemekle ilgili bir sorun yok şimdilik en azından listeleme olayına geçmedim daha
benim yapmak istediğim şey giriş tarihi ve çıkış tarihi arasında ki günlerde
kişi sayısını girip
ilgili odayı dolu (veya kişi sayısına göre bu yarı doluda olabilir) gösterip, yeni kayıt yapılmak istendiğinde eğer yine bu tarihler arasında bir tarih ve aynı oda yazılmışsa bu oda ilgili tarihte dolu diye bi uyarı verdirmek
Dört bir yan kararınca sana yöneldik.Ey ışıklar kaynağı aç kapını biz geldik.
Kullanıcı avatarı
PcText
Üye
Mesajlar: 36
Kayıt: 19 Ağu 2004 04:04
Konum: İstanbul / Alibeyköy
İletişim:

Mesaj gönderen PcText »

arkadaşlar verdiğiniz cevaplar için tekrar teşekkürler. verdiğiniz fikirler doğrultusunda
sql kodlarıyla istediğim şeyi gerçekleştirdim
Dört bir yan kararınca sana yöneldik.Ey ışıklar kaynağı aç kapını biz geldik.
Cevapla