====== SambaKart Uygulaması ====== Bu döküman [[http://forum2.sambapos.com/index.php?topic=974.msg4845#new]] adresindeki konuyla ilgili olarak hazırlanmıştır. V3 alpha sürümü üzerinde çalıştığımız için gelecekteki V3 sürümlerinde bu dökümanda gösterilen bazı özellikler değişebilir. Konumuz SambaPOS ile ön ödemeli kart uygulamalarının nasıl yapılabileceği. Bu yazımızda V3 sürümümüzde bulunan çeşitli özellikleri kullanarak bir kart uygulamasının nasıl yapılabileceğini örneklemeye çalışacağız. ===== Tanımlar ===== Öncelikle Müşteri Kartları için farklı bir hesap türü tanımlayacağız. Bu sayede kart hesaplarının normal müşteri hesaplarından farklı bir hesap türü altında takip edilmesini sağlayacağız ve bu hesap türüne özel çalışma kuralları belirleyebileceğiz. ==== Hesap Tanımları ==== Örnek olarak kartımızın adı ''SambaKart'' olsun. ''Yönetim > Hesaplar > Hesap Şablonları'' menüsünden yeni bir hesap şablonu tanımlayarak başlıyoruz. {{:tr:v3:sambakart:1.jpg?600|}} Müşterilere vereceğimiz ve alacaklı çalışan her bir kart için bu hesap altında bir hesap oluşacak. Bu kartlara para yüklemesi yapmak için yani kart hesaplarını alacaklandırmak için bir hesap hareketi tipi tanımlayacağız. Öncelikle bir kısa açıklama yapalım. SambaPOS hesap sistemi restoranlar için basitleştirilmiş bir hesap sistemidir. Çift kayıt esasına göre çalışır. Bu şu anlama geliyor. Eğer bir kart hesabı alacaklanıyorsa (yani karta para yüklemesi yapılıyorsa) başka bir hesabın da borçlanması gerekir. Bu sayede hesapların dengede kalması sağlanır. Bunun için öncelikle "Satışlar Hesapları" altına "SambaKart Satışları" isminde bir hesap tanımlayacağız. Doldurduğumuz her kart bu hesabın da borcuna yazacağı için toplam kart satışlarımızı da bu hesaptan takip edebiliriz. {{:tr:v3:sambakart:2.jpg?600|}} Şimdi ''Kart Hesabını'' alacaklandırıp ''Kart Satışları'' hesabını borçlandıran bir hesap hareketi tanımlayacağız. ''Hesaplar > Hareket Tipleri'' kısmından yeni bir Hesap Hareketi Tipi tanımlıyoruz. {{:tr:v3:sambakart:3.jpg?600|}} Bu ekranda henüz Türkçeleştirme tamamlanmamış ancak yaptığımız işlem çok basit. Borçlanan (Target Account) ve Alacaklanan (Source Account) hesap tipini seçiyoruz. ''Default Target Account'' kısmından ise hedef hesap olarak "SambaKart Satışları" hesabını seçiyoruz. ''Default Source Account'' yani alacaklanan hesap boş kalıyor çünkü bu kart hesabının ne olduğu işlem sırasında belirlenecek. Böylece SambaPOS'a kart doldurma işleminin nasıl yapılacağını tarif etmiş olduk. Son olarak kullanıcının bu işi basitçe yapabilmesi için bir ''Döküman Tipi'' tanımlayacağız. Bu sayede bu hesap hareketleri otomatik olarak gerçekleştirilmiş olacak. ''Hesaplar > Döküman Tipleri'' menüsünden yeni bir döküman tipi tanımlıyoruz. {{:tr:v3:sambakart:4.jpg?600|}} Dökümanın adını belirledik. Kullanıcının kart doldurmak için basacağı düğmenin başlığı ''Kart Doldur'' olacak. Düğme rengi olarak açık yeşil (Tan) seçtim. ''Hesap Şablonu'' olarak kartlar için tanımladığımız hesap şablonunu seçiyoruz. Yani bu düğme ''SambaKart Hesapları'' için çalışacak. ''Açıklama Şablonu'' kısmına ise varsayılan işlem açıklamasını yazıyoruz. Kullanıcı isterse kart dolumu sırasında bu açıklamayı değiştirebilir. Burada en önemli kısım çalışacak ''Hesap Hareketlerini'' seçtiğimiz bölüm. ''Hesap Hareketi Tipi Ekle'' diyerek ''SambaKart Satışı'' hareketini listeye ekliyoruz. Burada birden fazla hareketin çalışacağı durumlar olabiliyor ama bu örnek için tek hareket çalıştırmamız yeterli olacak. ''Kart Yükleme'' özelliğinin hangi durumlarda çalışacağını seçmek için Mappings sayfasına geçiyoruz. {{:tr:v3:sambakart:5.jpg?600|}} Burada bu işlemin hangi kullanıcı ya da hangi terminal için çalışacağını seçiyoruz. * işareti ''Tüm Kullanıcılar'' anlamına gelir. Yani her tür kullanıcı bu işlemi yapabilir. Burada Kart yükleme işleminin nasıl çalışacağını belirlemiş olduk. Kaydet'e basıp işlemi tamamlıyoruz. ==== Kaynak Tanımları ==== Kart Hesapları ile ilgili yaptığımız tanımlamalar bu kadar. Şimdi Kartların açılması ve adisyonlara seçilmesi ile ilgili işlemleri yapalım. ''Masa'', ''Müşteri'' gibi adisyonlara bağladığımız her şeye ''Kaynak'' ismi verdik. Yani Adisyonda seçmek istediğimiz herşeyi bir ''Kaynak Tipi'' olarak tanımlayabiliriz. Adisyonda ''SambaKart'' seçimi yapabilmek için öncelikle ''Kaynaklar > Kaynak Tipleri'' ekranından yeni bir ''Kaynak Tipi'' tanımlayalım. {{:tr:v3:sambakart:6.jpg?600|}} Kaynak Tipini ''SambaKart Müşteri Kartı'' olarak belirledik. Varlık adı kısmına kaynağın tekil ismini yazıyoruz. Bu ismi ilgili düğmeleri oluştururken kullanacağız. Hesap Şablonu olarak tanımladığımız ''SambaKart Hesapları'' şablonunu şeçiyoruz. ''Hesap İsmi Şablonu'' olarak da kartlar için açılacak hesabın isminin nasıl oluşturulacağını belirliyoruz. Buradaki örnekte Müşteri Adı ''Emre EREN'', Telefonu da ''(312) 444-4444'' ise hesap ismi ''SK-Emre EREN-3124444444'' olarak oluşturulacak şekilde tanımladık. Özel alanlar kart tanımlarken kullanacağımız bilgiler. Özel alanlar listesine sağ tıklayarak yeni alan açabiliriz. Örneği ekran görüntüsündeki gibi yapalım ve kaydedelim. Kaynak adı olarak Kart numarasını kullanacağız. Diğer bilgileri için de özel alan olarak tanımladığımız alanları kullanacağız. İhtiyaca göre daha fazla sayıda özel alan tanımlanabilir. Burada önemli bir konudan bahsetmek istiyorum. Farkettiğiniz gibi ''Kaynak'' ve ''Hesap'' olarak iki farklı mantığımız var. Bunu şöyle düşünelim. Oluşturacağımız her ''SambaKart'' için bir hesap açmak zorunda değiliz. Bu kartlar sadece promosyon amaçlı kullanılabilirler. Eğer bir kart verdiğimiz kişi tarafından bir ödeme yöntemi olarak da kullanılabilecekse o zaman karta bir hesap açabiliriz. Yani her müşterimize bir SambaKart verebiliriz ancak sadece açık hesap çalışacak müşterilere verdiğimiz kartlar için hesap açacağız. Bunun örneğini az sonra göreceğiz. Şimdi bu Kartları seçme, ekleme gibi işlemler için kullanacağımız POS ekranını tanımlayalım. Bunun için ''Kaynaklar > Kaynak Ekranları'' menüsüne gidiyoruz. ''Genel Ayarlar'' sayfasını şu şekilde düzenleyelim. {{:tr:v3:sambakart:7.jpg?600|}} Ekran adını ''SambaKart'' yaptık. Bu POS ekranında bir buton olarak görünecek. Görünüm modunu ''Ara'' olarak belirliyoruz. Yani kartları tıpkı Müşteri arama ekranındaki gibi arayarak seçeceğiz. Buradaki ayarları tamamlayıp ''Kaynak Listesi'' sayfasına geçiyoruz. {{:tr:v3:sambakart:8.jpg?600|}} Bu ekran Masa seçimi gibi düğmeli bir kaynak seçim ekranı kullanacaksak tanımlama yaptığımız yer. Düğmeli ekran kullanmayacağımız için sadece ''Kaynak Tipini'' belirlememiz yeterli. ''Kaynak Tipi'' olarak tanımladığımız tipi seçiyoruz ve ''Mappings'' sayfasına geçiyoruz. {{:tr:v3:sambakart:9.jpg?600|}} Burada bu ekranı hangi departmanlarda hangi kullanıcıların kullanabileceğini belirliyoruz. Örneğin ''Paket Servis'' departmanında kartla satış özelliğini kullanmak istemeyebiliriz. Ben ''Ekle'' komutu vererek ayarları * olarak bırakıyorum. Bu ayar tanımladığımız ekran her departmanda ve her tip kullanıcı için çalışacak anlamına geliyor. Kaynak tanımlarımız bu kadar. ==== Ödeme Tipi Tanımları ==== Dökümanın başında kart hesaplarının alacaklanması yani ''Kart Yüklemesi'' işlemini tanımlamıştık. Şimdi de Kart hesaplarının borçlanması yani ''SambaKart ile Ödeme Yapma'' işlemini tanımlayacağız. Bunun için öncelikle bir hesap hareketi tanımlaması yapıyoruz. ''Hesaplar > Hareket Tipleri'' ekranından yeni bir ''Hareket Tipi'' ekleyelim. {{:tr:v3:sambakart:10.jpg?600|}} Normalde açtığımız her adisyon ''Alacaklar'' hesabına Borç yazar yani ''Alacaklar'' tutarı artar. Aldığımız her ödeme de ''Alacaklar'' hesabına Alacak yazar yani bu hesabın tutarı düşer. Yani Alacaklar hesabının bakiyesi anlık olarak henüz ödenmemiş adisyonların toplam tutarını gösterecektir. SambaKart ile ödeme yapıldığı zaman da ''Alacaklar'' tutarını düşürmemiz ve ''SambaKart'' için açığımız hesabı da borçlandırmamız gerek. Bu Hareket Tipi bu işlemi yapacak olan hareket tipidir. Kart ile ödeme yapıldığında hesap hareketinin nasıl yapılacağını tanımladık. Son olarak Ödeme ekranında kullanacağımız ödeme butonunun tanımlamasını yapıyoruz. ''Adisyonlar > Ödeme Tipleri'' ekranından yeni bir ödeme tipi ekleyelim. {{:tr:v3:sambakart:11.jpg?600|}} Bu ekranda yaptığımız tanıma göre ödeme tipi düğmemiz ''SambaKart'' olarak ve yeşil renkte görüntülenecek. Hesap Hareketi Tipi olarak da biraz önce tanımladığımız ''SambaKart Hesap Hareketini'' seçiyoruz. Yine Mappings sayfasına geçerek bu düğmenin nasıl görüneceğini tanımlayalım. {{:tr:v3:sambakart:12.jpg?600|}} Burada farklı olarak ''Ödeme Ekranında Göster'' ve ''Adisyon Altında Göster'' olarak iki seçeneğimiz daha var. Eğer ''Adisyon altında göster'' seçeneğini işaretlersek bu düğme ''Fast Food'' ekranlarındaki gibi bir hızlı ödeme düğmesi olarak görünecektir. Şimdilik sadece ''Ödeme ekranında göster'' seçeneğini işaretleyelim. Yine burada düğmenin hangi departmanlarda hangi tip kullanıcılara görünüp görünmeyeceğini de belirleyebiliyorum. Kaydet tuşuna bastığımızda SambaPOS'a ''Ön Ödemeli Kart'' özelliğini eklemek için gerekli tanımları yapmış bulunuyoruz... Yapacağımız işlemler bu kadar. Şimdi bu özelliğin nasıl çalışacağını adım adım inceleyelim. ===== Örnek Uygulama ===== POS ekranımıza ''SambaKart'' isminde yeni bir ekran daha eklendi. Bu ekran tıpkı müşteri ekranları gibi çalışıyor. Kart ismi olarak kart numarası kullanacağız. Kart numarası olarak 55716911 girelim. Bu numarayı klavye emülasyonlu manyetik kart okuyucu kullanarak girebilmek de mümkün. {{:tr:v3:sambakart:13.jpg?600|}} Böyle bir kart tanımlanmadığı için ekranda birşey görünmüyor. ''Yeni SambaKart'' düğmesine tıklayarak yeni bir kart tanımlayalım. {{:tr:v3:sambakart:14.jpg?600|}} Sağ tarafta üç düğme görüyoruz. * Kaydet: Kartı tanımlar ve arama ekranına döner. * SambaKart Seç: Kartı tanımlar, yeni bir adisyon açar. * Hesap Oluştur: Kartı tanımlar ve bağlı hesabı açar. Yeni bir adisyon oluşturur. Emre EREN kartını ödeme tipi olarak kullanabileceği için ''Hesap Oluştur'' düğmesine tıklıyoruz. Diğer seçeneklerden birini seçersem kart yine tanımlanacak ancak hesap açılmadığı için ''Emre EREN'' kartını ödemede kullanamayacak. {{:tr:v3:sambakart:15.jpg?600|}} Tanımladığımız kart ekranda böyle görünüyor. Karta bağlı hesap oluştuğu için ''Hesap Detayları'' düğmesi aktif halde. Bu düğmeye basalım. {{:tr:v3:sambakart:16.jpg?600|}} Karta bağlı ''SK-Emre EREN-4445555555'' isimli hesap böyle görünüyor. Yeşil renkteki ''Kart Doldur'' düğmesine basarak karta yükleme yapalım. {{:tr:v3:sambakart:17.jpg?600|}} Tutar kısmına 200 yazarak ''Kaydet'' diyelim. {{:tr:v3:sambakart:18.jpg?600|}} Karta 200 TL yüklemiş olduk. ''Kapat'' diyerek ekranımıza geri dönelim. Kart ekranda seçili olarak bekliyor. Eğer karta hesap açmayı unutursak ya da hesap açılmamış bir karta yükleme yapmak istersek ''SambaKart Düzenle'' diyerek hesap açma işlemini yapabiliriz. Burada yeni bir kart daha açalım. {{:tr:v3:sambakart:19.jpg?600|}} Bu karta hesap tanımlamayalım ve ''Kaydet'' diyerek listeye geri dönelim. Bu noktada ''SambaKart Seç'' diyerek karta bağlı yeni bir adisyon açabiliriz ancak bunun yerine ''Tüm Masalar'' ekranından bir masa seçelim ve Adisyondaki duruma bakalım. {{:tr:v3:sambakart:20.jpg?600|}} Adisyonda da ''SambaKart Seç'' düğmesi görünüyor. Hatırlarsanız bu düğmeleri tüm departmanlarda görünür yapmıştık. Şimdi ''SambaKart Seç'' düğmesine tıklayalım ve ''55716911'' numaralı kartı arayalım. Burada yine Kart okuyucu kullanabileceğimizi hatırlayalım. Ayrıca bu ekranda numara yerine müşteri adını, telefonu ya da adresi yazarak da özel alanlardan arama yapabileceğimizi belirtmeden geçmeyelim. {{:tr:v3:sambakart:21.jpg?600|}} Dikkat ederseniz bu ekrana adisyon içinden ''SambaKart Seç'' diyerek geldiğim için üst tarafta sadece ''SambaKart'' ekranı görünüyor. Bu ekranda yeni kart açmak ya da kart bilgilerinde değişiklik yapmak gibi işlemler yapabilirim. ''Hesap Detayları'' düğmesine tıklayarak kartın geçmiş hareketlerini inceleyebilirim. Ya da ''SambaKart Yok'' düğmesine tıklayarak kart seçmeden adisyona geri dönebilirim. Şimdi ''SambaKart Seç'' düğmesine tıklayalım ve adisyona dönelim. {{:tr:v3:sambakart:22.jpg?600|}} Adisyonun üst kısmında seçili kart numarasını görüyorum. Şimdi ''Ödeme'' düğmesine tıklarayarak ödeme ekranına geçelim. {{:tr:v3:sambakart:23.jpg?600|}} Bu ekranda bayağı bir değişiklik oldu. Öncelikle en sol üst köşede kartın kalan tutarını görebiliyorum. Sağda en alta da yeşil renkte ''SambaKart'' butonu gelmiş. Eğer SambaKart ile ödeme alabileceksem ''Tümü'' butonuna tıkladığımda bu butonun aktif hale gelmesi gerekiyor. ''Tümü'' diyelim ve ''SambaKart'' düğmesine tıklayarak ödemeyi alalım. İşte yaptığımız tanımlar sayesinde bu işlemleri yapabilmiş olduk. Eğer bu işlemde diğer tanımladığım SambaKartı seçseydim bu karta hesap açmadığım için ''SambaKart'' ile ödeme alamayacaktım ancak diğer tanımladığım promosyon kuralları çalışacaktı. Şimdi farklı bir işlem deniyoruz. Yine boş bir masaya tıklayalım, Emre EREN için açtığımız kartı seçelim ve 200 TL'yi aşacak şekilde sipariş girelim. {{:tr:v3:sambakart:24.jpg?600|}} Kartın bakiyesi 192 TL ve Sipariş Tutarı 250 TL. Kart kredisini aştığımız halde program halen SambaKart ile ödeme almaya izin veriyor. Ödemeyi alalım. SambaKart ekranına geçip Emre EREN kartını bulalım ve ''Hesap Detayları'' butonuna tıklayalım. {{:tr:v3:sambakart:25.jpg?600|}} Bu kart üzerinde gerçekleşen tüm işlemleri bu ekranda göreceğim. Göründüğü gibi müşterimiz bize 58 TL borçlanmış oldu. Ön ödemeli kartlar için bu istenmeyen bir durum olabilir. Küçük bir ayar yaparak kartın borçlu duruma geçememesini sağlayabiliriz. ''Yönetim > Hesaplar > Hesap Şablonları'' ekranından SambaKart Hesapları'na çift tıklayalım. {{:tr:v3:sambakart:26.jpg?600|}} Bu ekranda ''Kurallar:'' ayarını ''Varsayılan'' seçeneğinden ''Alacak'' Seçeneğine çevirelim. Bu ayar SambaKart hesaplarının Alacaklı çalışan hesaplar olduğunu belirliyor. Yani kart hesaplarının ödeme ekranı kullanılarak ''Borçlu'' duruma geçmesini engellemiş oluyoruz. Şimdi tekrar POS ekranına geçelim. 55716911 numaralı kartı arayalım, ''Hesap Detayları'' ekranına geçelim, ''Kart Doldur'' diyelim ve 100 TL daha yükleme yapalım. {{:tr:v3:sambakart:27.jpg?600|}} Ekranda göründüğü gibi 100 TL daha yükleyince kartımızın kredisi 42 TL oldu. Şimdi ''Kapat'' diyerek önceki ekrana göre dönüyoruz ve ''SambaKart Seç'' diyerek yeni bir adisyon açıyoruz. Adisyon tutarı 42 TL'den az olduğu program SambaKart ile ödemeye izin veriyor. {{:tr:v3:sambakart:28.jpg?600|}} Ancak Adisyon tutarı 42 TL'yi geçerse SambaKart ile ödemeye izin verilmiyor. {{:tr:v3:sambakart:29.jpg?600|}} Böylece SambaKart kullanıcılarının borçlu duruma geçmesini engellemiş oluyoruz. Aslında benzer özellik ''Kredi Limiti'' tanımlayarak da yapılabilir. Bu kart bazlı olarak bir borçlana limiti tanımlamak için kullanılabilecek bir özellik. Bu sayede SambaKart kullanıcılarının 5~10 TL'lik ya da ne kadar limit koyuyorsak o kadar borçlanabilmelerini sağlayabiliriz. Uzun bir yazı oldu ancak birçok yeni V3 özelliğini de incelemiş olduk. Sorularınız, düşünceleriniz ya da önerileriniz için [[http://forum2.sambapos.com/index.php?topic=974]] adresindeki forum konusunu ziyaret edebilirsiniz.