Öncelikle bu döküman içerisinde anlatılacak olan Paket Servisi yapısının senaryosundan bahsedelim adım adım;
Kullanım Videosu:
Alternatif Vimeo Linki: https://vimeo.com/69235916
Öncelikle sistem içeirisinde Paketçi Varlık Tipinin eklemeyle bağlıyoruz, Varlık Tipi ekleyebilmek için öncelikle yeni tanımlayacağımız Varlık Tipinin bağlı olacağı Hesap Şablonunun tanımlanması gerekir.
Bunun için Yönetim > Hesaplar > Hesap Şablonları > Hesap Şablonu Ekle linkine tıklıyor ve bu Hesap Şablonuna bir isim verip Filtreleri Tümü, Kuralları Varsayılan olarak seçili bırakıp Kaydet butonuna tıklıyoruz.
Paketçi Varlık Tipi için Hesap Şablonu tanımlandıktan sonra, Yönetim > Varlıklar > Varlık Tipleri linkine tıklanarak yeni bir Varlık Tipi olacak Paketçi Varlık tipini ekleyebilir.
2 Numaralı alana Varlık Tipini adını yazıyoruz, (Paketçi), 3 Numaralı alana Varlık adını yazıp 4 Numaralı alanda bir önceki adımda tanımladığımız Hesap Şablonunu şeçiyor ve Paketçiler için ihtiyacımız olabilecek, Özel alanları Özel Alanlar kutucuğunun üzerinde mouse'un sağ tuşunu tıklayarak seçebiliyoruz. Buradaki örnekte Paket Servisi Personeli için, telefon ve adres alanlarını tanımladığımız yukarıdaki resimde görebilirsiniz.
Özel alanlarda tanımlandıktan sonra, Kaydet butonuna tıklayarak Varlık Tipimizi tanımlamayı bitiriyoruz.
Paketçi varlık tipini tanımladıktan sonra bu Varlık Tipinin içerisinde yer alacak, Varlıklarımızı tanımlıyoruz.
Yönetim > Varlıklar > Varlıklar linkine tıklarak Yeni Varlık Ekle'ye tıklayarak Paketçilerimiz tanımlıyoruz.
Adı kısmına Paketçi Personelimizin Adını yazıp, 3 numaralı kutucuta yer alan Varlık Tipi listesinde bir önceki adımda tanımladığımız Varlık Tipini Paketçi olacak şekilde seçip, Özel Alan olarak tanımladığımız alanları doldurarak Paketçi tanımlalamızımı da bitiriyoruz, İşletmemizde çalışan tüm Paketçileri aynı şekilde sırayla tanımlıyoruz.
SambaPOS içeirinde istediğimiz kadar farklı, Belge tanımlayabiliyoruz, SambaPOS kurulumu içersinde, ilk kurulumda bizim için Adisyon Belgesi Hazır açılmış olarak geliyor, Yapacağımız diğer ayarları ve Raporlarımızı özelleştirebilmek için Paket Servisinde kullanacağımız Belge Türünü değiştirmemiz faydalı olacaktır. Bu tanımlamanın yapılabilmesi için Yönetim > Adisyonlar > Adisyon Tipleri linkine tıkladıktan sonra, Yeni Adisyon Tipi Ekle linkine tıklıyoruz ve aşağıdaki gibi belge tanımlalamızı yapıyoruz.
Adisyon Belgesi tanımlarken, Adisyonun adını, Bu Adisyon için kullanılacak Menüyü ve Numaratörlerimiz seçtikten sonra, Hareket Tipi olarak Satış Hareketini seçiyoruz, bu şekilde bu belge ile yapacağımız işlemlerde bütün hareketler Hesaplarda Satış Hareketi hesabı içerisine yazılmış olacaktır. Son olarak bu belgemizin içerinde kullanacağımız, Varlık Tiplerini Ekle linkine tıklayarak açılan pencereden öncelik sırasına göre seçerek belge tipimizin içerisine ekliyor ve Kaydet butonuna basarak, Belge Tipi tanımlamamızı bitirmiş oluyoruz.
Ön tanımlamalarımızı yaptıktan sonra, Paket Servisi için kullanacağımız Departmanı tanımlamaya başlayabiliriz, Yönetim > Departmanlar > linkin tıkladıktan sonra Sağ üst köşede bulunan Yeni Departman Ekle linkine tıklıyoruz.
SambaPOS V3 de Departman tanımlamak V2 ye kıyasla son derece sadeştirilmiş durumda; Bu ekrada Departma Adını yazdıktan sonra; Varsayılan Adisyon Tipine bir önceki adımda tanımladığımız Paket Servisi Adisyon Belgesini seçiyoruz. Eğer Paket Servis Departmanımızdan yapılacak satışlar farklı bir Depo'nun envanterinden düşecekse Depo tanımalasını yapıp, buradan Depo seçiminide yaptıkan sonra Adisyon Oluşturma Metodumuza da Varlık Seç, metodunu seçiyoruz, Bu şekilde bu Departmanda yapılacak satışlar öncesinde bizden mutlaka bir Müşteri, Masa veya Paketçi gibi bir Varlık seçmemizi zorunlu hale getirmiş oluyoruz.
Paket Servisinde çalışacağımız Departmanıda tanımladıktan sonra sıra, bu Departmanı tıkladığımızda karşımıza gelecek ekranları tanımlamıza ve “tasarlamamıza” sıra geliyor. Yönetim > Varlıklar > Varlık Ekranları linkne tıkladıktan sonra sağ üst köşede bulunan Yeni Varlık Ekranı Ekle linkine tıklayarak iki ekranımızdan ilkini Müşteri Arama Ekranımızı tanımlıyoruz.
Yeni Müşteri Varlık Ekranı tanımlama sayfamızda 3 farklı tab'da tanımlamalar yapmamız gerekiyor, 1. tab) Genel Ayarlar: Burada Varlık Ekranımızın Adını yazıyoruz bu isim Departman tıkladıımızda ekranın üstünde tıklanabilir bir buton olarak gözükecek olan alandır, Adisyon Tipini daha önce tanımladığımız Paket Servisi belgesini seçtikten sonra Görünüm Modu bölümünde açılan listeden Ara özelliğini seçiyoruz, bu şekilde bu ekranın bir Arama ekranı olacağını Masa gibi Varlıkları buton olarak göstermeyeceğinin tanımlamış oluyoruz. 1. tab'da tanımalmalarımızı bitirdikten sonra 2. tab'a Varlık Listesi tabına geçiyoruz;
Buradan da Varlık Tipi Listesinden Müşterileri seçiyoruz, Bu seçim ile bu arama ekranımızın Müşteriler Varlık tipi içerisine açılan Varlıklarımızın içerisinden arama yapacağını tanımlamış oluyoruz. Bu tab'da sadece Müşteri arayacağımız için Görünğm Durumu, Durum Filtresi ve Varlıklarımız alanlarını boş bırakarak 3. tab'a geçiyoruz.
3. tab'ımız İlişkiler tabı, Bu tab'ı SambaPOS V3 içerisinde çok sayıda tanımlama alanında karşımıza çıkacaktır, İlişkiler alanı hazırlamakta olduğumuz ekranın veya özelliğin hangi durumlarda, hangi roldeki kullanıcılara, hangi departmanda, veya hangi belge tipleri için çalışacağının sınırlanmalarının yapılabileceği bize inanılmaz esneklik sağlayan bir bölümdür.
Bu Müşteri Arama ekranımızın Paket Servisi Departmanında, Paket Servisi belgesi ile ve tüm rollerdeki kullanıcıların kullanabilmelerini istediğimizden Roller alanına * işareti koyup, Departmanlarda Paket Servis Departmanımızı ve Adisyon Tipinde de Paket Servisi için hazırladığımız Belge Tipini seçiyoruz.
Paket Servis Departmanımızda kullanacağımız ve ekran görünüm tasarımını da bizim yapacağımız ekranı tasarlama geldi sıra; bir önceki ekran tanıtımı gibi, Yeni Varlık Ekranı Ekle linkine tıkladıktan sonra; Ekranımıza bir isim veriyoruz ve Adisyon Tİpi olarak yine Paket Servisi belgesinin kullanılacağını seçiyoruz, Bu sefer farklı olarak Görünüm Modunda “Özel” seçeneğinin seçiyoruz kullanacağımız ekrana ihtiyacımız olan Widget adı özellikleri kendimiz daha sonraki adımlarda seçeceğiz.
Genel Ayarlar tabında bulunan tanımlamaları yaptıktan sonra, Varlık Listesi tabına geçiyoruz, Bu ekranımızda Varlık Tipi olarak seçeceğimiz Paketçileri seçmek istiyoruz bunun için açılan listeden Paketçiyi seçiyoruz ve Görünüm Durumuna SambaPOS V3 default kurulumunda gelen ve Restoran Departmanında masaların görünüm renklerinin düzenlenmesini sağlayan Durum ayarlarımızın burada da aynen geçerli olması için “Status” yazıp, Varlık Seç linkine tıklayarak Varlık olarak tanımladığımız Paketçilerimizi seçiyoruz.
Son olarak bir önceki Varlık Ekranı tanımlalamızda olduğu gibi bu Varlık Ekranımızda Paket Servisi Departmanında, Peket Servisi belgesi ile tüm Rollerdeki kullanıcıların kullanımına açık olması için İlişkile tabında gerekli düzenlemeyi yaparak Kaydet butonuna basıyor ve ekran tanımalamarımızı bitirmiş oluyoruz.
Ekran tanımlamalarını da yaptıktan sonra tanımladığımız 2 tane ekranların hangisinin önce hangisinin sonra geleceğini belirleyebilmek için Varlık Ekranları linkinin sağ üst köşesinde bulunan Varlık Ekranlarını Sırala linkine tıklayarak açılan küçük pencere içerisinde sürükle-bırak metodu ile istediğimiz sıralamayı yapabiliyoruz.
Varlık Ekranlarımızı tanımlama adımı bittikten sonra; LogOut - Login olduğumuzda, aşağıdaki gibi boş bir ekrana sahip olacağız. Bu ekran bizim ihtiyaçlarıız doğrultusunda istediğimiz gibi özelleştirebileceğimiz bir ekran oldu artık.
Bu işlem bize Paket Servisi belgesi içerisinde bir sipariş aldığımız anda, başka bir komut tarafından değiştirilene kadar belgenin durumunun Bekliyor olarak atanmasını ve Paketçiye verilmemiş ve teslim edilmemiş belgelerden ayırabilmemiz için gerekli bir Durum tanımlaması olakcak.
Yönetim > Otomason > Eylemler linkine tıklanarak sağ üst köşede bulunan Yeni Eylem Ekle linkine tıklanarak yeni bir eylem tanımlamaya başlarız, Eyleme kendini tanımlayıcı bir isim verildikten sonra Eylem Tipi olarak; “Belge Durumunu Değiştir” eylemini seçeriz,
Aşağıda açılan tanımlama alanlarında StateName (Durum Adı) alanına adisyonumuzun içerinde görmek istediğimiz Durumun Adını yazarız; buradaki ve video daki örnekte bu isim Servis olarak atandı.
Durum kısmına ise bu belgenin durumun Kural içerisinde alacağı değişkeni tanımlayacağımız bir değişken ad tanımlıyoruz, SambaPOS V3 de değişken tanımlamak için [:] içerisine : işaretinden sonra değişken adı yazarak bu tanımlamayı yazarak yapıyoruz.
Buradaki örnekte bu değişken adını Paket Servisin Status'unu tanımladğımızı anlatabilmek için [:PStatus] olarak yazsıktan sonra Eylemimizi Kaydediyoruz.
Durum değiştirme Eylemimiz hazır olduğuna göre bu durumun hangi koşulda çalışacağının söylenebilmesi için gerekli olan Kuralımızı tanımlama geliyor sıra; Bunun için Yönetim > Otomasyon > Kurallar linki içerisine girip sağ üst köşede bulunan Yeni Kural Ekle linkine tıklıyoruz.
Kuralımıza uygun bir isim verdikten sonra; bu belgemizi Bekliyor durumuna getirmek için gerekli olan Olayı seçiyoruz, Biz yeni Bir Paket Servisi Belgesi açtığımızda bu belgenin durmunu değiştirmek istediğimiz için, “Belge Oluşturuldu” olayı bu iş için ideal bir seçim oluyor. Olayımızı da seçtikten sonra Eylem Seç linkine tıklayarak az evvel tanımladığımız Eylemi bu Kuralda çalışması için seçyoruz ve Eylemin sağında bulunan minik aşağı ok işaretine basarak eyleme tanımladğımız değişkenin değerinin ne olmasını istediğimizi elle yazıyoruz.
Bu örnek için PStatus değişkeninin Belge ilk açıldığında değerinin “Bekliyor-1” olmasını istediğimizde için buraya Bekliyor-1 yazıyoruz. Siz kendi işletmenizde bu duruma daha farklı bir isim de verebilirsiniz.
Paket Servisi Departmanında Paket Servisi belgesi içerisine Sipariş alındığında belgenin durumunu Bekliyor olarak düzenledikten sonra, (yani müşteride sipariş alınıp siparişler hazırlanmaya başladıkta sonra) Paketçiler aracılığıyla, bu siparişlerin dağıtımı yapılmadan evvel adisyonların işaretlenip Paketçilerinini seçilmesi durumunu bu örneğin en kritik özelliiklerinden birisi olarak anlatmıştık, Yani Bekliyor durumunda olan belgeler seçileek ve bunlara ilglili Paketçiler atanacaki bu durumda, bu belgenin Durumu (yani Durum adı Servis olarak tanımladığımız Durumu) Yolda olarak değiştirilmesini isteiyoruz, 7.1 maddesinde tanımladığınız Eylemi kullanarak yapacağız bu işlemide;
Yeni bir Kural daha tanımlıyoruz, Bu kuralada uygun bir isim verdilkten sonra gerekli olan Olayı seçiyoruz, örneğimizde Paketçilerimiz Varlı olarak tanımladığımız için Paketçi seçtiğimizde yani Varlık seçtiğimizde veya değitirdiğimizde diyebilmek için, Olayımızı “Belge Varlığı Değişti” olarak tanımlıyoruz ve Eylem Seç linkine tıklayarak 7.1 maddede tanımladığımız eylemimizi tekrar seçip, özellik okuna tıklayarak PStatus değerinin almasını istediğimiz adı yazıyoruz.
Yukarıda 6.2. maddede tanımlasını yaptığımız ekran görünümünü tasarlamak için; Navigasyon içerisiden POS > Paket Servisi Departmanı > Paket butonuna basarak bom boş bir ekran olan görünüm ekranımızı karşımıza alıyoruz. Bu ekran üzerinde mouse'un sağ tuşunu tıkladığımızda Düzenleme Modu seçeneği gelecektir. Bu tuşa tıklayarak ekranımızı düzenleme moduna alıyoruz.
Düzenleme modunda olduğunu ekranınızın etrafını çizen ince kırmızı renkli bir çizgiden anlayabilirsiniz.
Düzenleme Modu'na geçiş yaptıktan sonra tekrar mouse'un sağ tuşuna tıklayarak Add Widget butonunu genişletiyor ve buradan bu boş sayfamıza eklemek istediğimiz, Widgetlarımızı sırasıyla seçiyoruz.
İlk önce ekranın sağ tarafında bulunan Kaynak Arama (Resource Search) özelliğini seçelim.
Ekrana bir Resource Search eklediğimizde bu ekranımızın orta üst tarafında yer alacaktır. Aşağıdaki resimde 1. hamlede gözüktüğü gibi kırmızı ok yönünde Widgetın kenarlarında bulunan kesikli çizgilerden tutarak ekranımızın en sol alt köşesine gelene kadar sürüklüyoruz, Bu şekilde ekranımızın ne kadar bir alanını kapsayabileceğimizi söylemiş oluyoruz. Bu Widgetı sol alt köşeye kadar taşıdıktan sonra sol üst köşesinde bulunan noktya tutarak (resimde görülen yeşil nokta) ekranımızda uygun gelecek en üst noktaya kadar istediğimiz oradan büyüterek yerleşmesini sağlıyoruz, Bu şekilde bu Widgetımızı ekranımıza yerleştirmiş oluyoruz.
Widgetımızı istediğimiz pozisyona yerleştirdikten sonra üzerinde mouseun sağ tuşuna tıklayarak; Ayarlar linkine tıklıyoru ve bu Kaynak Arama Widgetımızın özelliklerinin neler olacağını belirliyoruz.
Entity Type Name Value (Varlık Tipi Adı) ayarında bu Widgetda Paketçilerimizi kullanmak istediğimiz için seçiyoruz ve Tamam tuşuna basarak bu widgetımızda işlemimizi bitiriyoruz.
Şimdi yaptığımız ayarların kayıt olabilmesi için ekranımızın boş bir alanında yine mouseumuzun sağ tuşuna basarak, Düzenleme Modundan çıkıyoruz, bu şekilde yaptığımız Widget bu Varlık Görünümünün içine kaydedilmiş oluyor.
8.2. Durumu Bekliyor olan Siparişlerimizi Gösteren Belge Listeleyici Eklenmesi
Tekrar ekranımızın boş bir yerinde mouseun sağ tuşuna tıklayarak Düzenleme Moduna geçiyoruzi ve tekrar tıklayarak Add Widget linki ile açılan menüde Ticket Lister (Belge Listeleyici) ekliyoruz ekranımıza bir tane,
Bu Belge Listeliyiciyide aynı bir önceki adımda olduğu gibi kenararında tutatarak ekranımızda istediğimiz bir alana taşıyoruz, ve yine köşelerinden tutarak istediğimiz boyutlara gelene kadar büyütüyoruz.
İstediğimiz boyuta geldiğinde bu Belge Listeleyicinin üzerinde mouseun sağ tuşuna tıklayarak Ayarlar seçeneğine tıklıyor ve bu Widgetımızın hangi özellik ve ayarlarda çalışabileceğini tanımlıyoruz.
Aşağıdaki ekran görüntüsünden de anlayabilecğiniz gibi biz bu Widgetı sadece Bekleyen siparişlerin gösterilmesi için ayarladık. Burada yer alan State bizim yukarıda Kural içerisinde tanımladığımız henüz teslim edilmeyen siparişlerimizin Belge durumunu gösteriyor. Bu şekilde bu Widget da sadece henüz içeride hazırlanan herhangi bir şekilde bir paketçiye teslim edilmemiş adisyonları göreceğiz.
Format alanında yazan değerler ise bizim bu Widget üzerinde hangi bilgilerin hangi sıra ile yazacağını tanımladığımız alandır. Bu alan verilerini birebir Yazıcı Şablonları içesinde yer alan değerlerden almaktadır. Yazım biçimi ve formatıda birebir aynıdır. Burada verdiğimiz örnekte;
<codejava>
<J>{ENTITY NAME:Müşteri}|{TICKET TOTAL}| - {ENTITY DATA:Müşteri:Semt}
</code>
yazmaktadır.
Diğer ekran görünümü ile ilgili renk ve font boyları gibi ayarlarıda kendi isteğinize göre yaptıktan sonra Tamam butonuna basarak bu Widgetımızı da tamamlamış oluyoruz.
Yine yaptığımız ayarların kayıt olması için ekranın boş bir alanında mouseun sağ tuşuna basarak Düzenleme Moduna tıklıyor ve Düzenleme Modundan çıkıyoruz. Bu şekilde bu Widgetıda kaydetmiş oluyoruz.
Tekrar ekranımızın boş bir yerinde mouseun sağ tuşuna tıklayarak Düzenleme Moduna geçiyoruzi ve tekrar tıklayarak Add Widget linki ile açılan menüde Ticket Lister (Belge Listeleyici) ekliyoruz ekranımıza bir tane daha,
Bu Belge Listeliyiciyide aynı bir önceki adımda olduğu gibi kenararında tutatarak ekranımızda istediğimiz bir alana taşıyoruz, ve yine köşelerinden tutarak istediğimiz boyutlara gelene kadar büyütüyoruz.
İstediğimiz boyuta geldiğinde bu Belge Listeleyicinin üzerinde mouseun sağ tuşuna tıklayarak Ayarlar seçeneğine tıklıyor ve bu Widgetımızın hangi özellik ve ayarlarda çalışabileceğini tanımlıyoruz.
Aşağıdaki ekran görüntüsünden de anlayabilecğiniz gibi bu ikinci Widgetda sadece Paketçiye verilmiş Adisyonları görmek istiyoruz. Bunun için State satırına Kural içerisinde tanımladığımız Yolda Durumunu yazıyoruz. Bu şekilde bu Widget da sadece Paketçilere atanan adisyonları gösteriyor bize.
Format alanında yazan değerler ise bizim bu Widget üzerinde hangi bilgilerin hangi sıra ile yazacağını tanımladığımız alandır. Bu alan verilerini birebir Yazıcı Şablonları içesinde yer alan değerlerden almaktadır. Yazım biçimi ve formatıda birebir aynıdır. Burada verdiğimiz örnekte;
<codejava> <F>* <J>{ENTITY NAME:Müşteri}|{TICKET TOTAL} {ENTITY NAME:Paketçi} yazmaktadır. </code>
Diğer ekran görünümü ile ilgili renk ve font boyları gibi ayarlarıda kendi isteğinize göre yaptıktan sonra Tamam butonuna basarak üçüncü Widgetımızı da tamamlamış oluyoruz.
Yine yaptığımız ayarların kayıt olması için ekranın boş bir alanında mouseun sağ tuşuna basarak Düzenleme Moduna tıklıyor ve Düzenleme Modundan çıkıyoruz. Bu şekilde bu Widgetıda kaydetmiş oluyoruz.
Şu ana kadar olan durum özetimiz
Şu ana kadar yaptığımız işlemler ile Paket Servisi Departmanımız içerisinden Sipariş alabilir, bu siparişlerin Durumlarını Hazırlanıyor, Bekliyor durumunda işaretleyebilir ve aldığımız siparişleri tasarladığımız Paket Servis Varlık Görünümü ekranında bulunan sol Widgetda görebilir duruma geldik.
Bundan sonra yapacaklarımız;
Tasarladığımız ekranda sol taraf yerleştirdiğimiz Varlık Listeleyici ekranımızda altalta yer alacak adisyonlara tıklandığı zaman bu ID numarlarının saklanmasını için bir dizi işlem yapmamı gerekiyor. SambaPOS V2 den de hatırlayacağınız gibi Eylemlerimiz içerisinde yer alan Program Ayarı adı altında bir veri alanımız mevcuttu, bu veri alanına üzerine tıklanan adisyonların ID numaraları yazıp saklayacağız, Bu işe öncelikle Program Ayarı değiştir Eylemi ile başlıyporuz;
Yönetim > Otomasyon > Eylemler > Yeni Eklem Ekle linkine tıkladıktan sonra Eylemimize uygun bir isim vriyoruz ve Eylem Tipi olarak da “Program Ayarı Değiştir” eylemini seçiyoruz. Aşağıdaki ekran görüntüsünde de görebileceğimiz gibi, Ayara bir isim verioruz burada farklı bir çok ayar değişkeni kullanabileceğimiz için ayrımı yapabilmek için AdisyonId adını verdik.
Ayar Değerine ise değişken olacağından dolayı [:] içerisinde bu değişkenin almasını istediğimiz adını [:AdisyonID] veriyoruz, her bir değişken geldiğinde bu değişkenleri be yapmasını istediğimizi Güncelleme Şeklinden Güncelle olarak ayarladıktan sonra bu Program ayarının networkte bulunan tüm makinalar için mi yoksa sadece tanımlı Local bilgisayarında mı çalışacağını seçmek için IsLocal ayarını True yapıp Eylemimizi kaydediyoruz.
Hazırladığımız bu eylemin çalışabilmesi için, ihtiyacı olan Kuralı yazmaya sıra geldi ama bu Kural aynı zamanda ekranınıza dizayn ettiğimiz Belge Listeleyici içerisinden veri alacağı için Yani bu Belge Listeleyici de yanlızca bir Otomasyon Konutu ile tetiklenebileceği için öncelikle bir Otomasyon Komutu tanımlamamız gerekiyor.
Yönetim > Otomasyon > Otomasyon Komutları alanına gelerek Yeni Otomasyon Komutu ekle linkine tıklıyor ve açılan sayfada yeni bir komut ekliyoruz, Komutumuza uygun bir isim tanımladıktan sınra Buton olarak kullanmayacak olsak bile bir buton adı vermek zorunluluğundan bir Bubuton adı veiyoruz ve direk kaydediyoruz, Bu otomasyon komutu buton olarak herhangi bir yerde işlev görmeyeceğinden (sadece Belge Listeleyicisinde tetikleyici olarak çalışacağından) ilişkiler sekmesinde herhangi bir özellik tanıtmıyor ve komutumuzu kaydediyoruz. İlişki tanımlamadığımız için Otomsyon Komutları içerinde silik gri renkli gözükmesi normaldir.
Tasarladığımız ekranda Solda bulunuan Belge Listeleyici içerisinde, paketçi atamak için seçtiğimiz adisyonların ID numarlarını bir üstte anlattığımı Eylem ile hafızaya yazdırmıştık, Şimdi bu Eylemde okunan ID numaralarının hangi koşulda saklanacağının belirleneceği kuralımızı tanıtmaya sıra geldi. Yönetim > Otomasyon > Kurallar > Yeni Kural ekle linkine tıkladıktan sonra Kuralımzıa uygun bir isim veriyoruz ve Olay adı olarak bir önceki adımda tanımladığımız Otomosyon Komutu çalıştığında bu işlemi yapmasını istediğimizden “Otomasyon Komutu Çalıştı” olayını seçiyoruz.
AutomationCommandName (Otomasyon Komut Adı) alanına bir önceki adımda tanıttığımız Otomasyon komutunu seçtikten sonra Eylem Seç linkine tıklarayrak 9. maddede hazırladğımız ve Adisyon ID lerini saklamaya yarayan Eylemimizi seçip özelliklerini açıyoruz.
Otomasyon Kuralı çalıştığında alacağı değerleri Value alanına yazacağı için bizde Eylem içerinde okunan bu değerleir kaydetmek istediğimizden AdisyonID olarak eylemde tanımladığımız değer alanının alacağı değerin Otomasyon kuralından gelecek Value olduğunu söylemek için [:Value] diyoruz. Bu şekilde Otomasyon Komutu çalıtığında alacağı değerler bu kural ile Eylem içerisinde tanımladığımız AdisyonID veri alanına yazılmış olacak.
Tanımlamalarımızı yaptıktan sonra Kaydet butonuna basarak bu kuralımızıda kaydetmiş oluyoruz.
Eğer her bir adisyon için ayrı ayrı paketçi atayacak olsaydık bu komuta gerek kalmazdı, ama biz aynı anda çoklu şeçim özelliği kullanmak ve aynı anda bir çok adisyon seçip hepsini bir kerede tek bir paketçiye atamak istediğimizden SambaPOS'a aynı işlemi seçili tüm adisyonlar iin yapması gerektiğini söylememşz gerekiyor, Bu işlemi yapabilmek için gerekli işlemlerin ilk adımı bu adisyonları sırasıyla gezecek ve okuduğu ID leri saklayacak bir Eylem.
Yeni Eylem ekle linkine tıkladıktan sonra, eylemimize yine uygun bir isim veriyor ve Eylem Tipi olarak “Loop Values” eylemini seçiyoruz, bu eylem okunacak değerler bitene kadar sırasuyla tüm değerlerin teker teker okunmasını sağlayan bir görece sahip.
Eylem Tipi seçildikten sonra Loop Value eylemimize bir isim veriyoruz ve Değerlerin bu sefer Program ayarı alanından okunması gerektiği için süslü parantez adındaki parantez ile değerini atıyoruz.
Burada [:] kullanmadık, çünkü [] (köşeli parantez) program içerisinde bizim açtığımız veri alanları ve onların okunması için kullanılırken, süslü parantez, program ayarında bulunan verilerin okunması için kullanılır. Bu sebepten Değerler alanına {:AdisyonId} olarak Program ayarında saklandığını tanımlıyoruz.
İşaretlediğimiz adisyonlar atancak paketçilerin isimlerini de ayrı bir “Program Değeri değiştir” eylemi ile hafızada saklamak için bir Eylem daha tanımlıyoruz, Yeni Eylem ekle linkine tıklandıktan sonra Eylemimize uygun bir isim veriyoruz ve Eylem Tipi olarak Program Ayarı Değiştir'i seçiyoruz, Ayar Adı alanına bu ayarın program hafızasında hangi isimle saklanacağını belirleyeceğimiz ismini veriyoruz. Ayar Değeri olarak da kendimiz bir veri alanı tanımlayacağımız için köşeli parantez içerisinde değerin adını [:Paketçi] örneğindeki gibi verdikten sonra Güncelleme Metodu olarak Güncelleyi seçiyoruz ve bu Eylemin sadece bu makinada local olarak çalışması bize yeteceği için IsLocal değerini de True vererek eylemimizi kaydediyoruz.
İçerisine varlık olarak paketçileri atayacağımız adisyonlarda işlem yapabilmek için öncelikle Adisyonun hafızaya yüklenmesi gereklidir. Yeni bir eylem daha tanımlıyoruz ve bu eyleme uygun ismi verdikten sonra, Eylem Tipi olarak Load Ticket (Adisyon Yükle) eylemini seçip, Ticket ID değerini ise bizin yukarıda tanımladığımız adisyon Id numarası kullanmasını istediğimiz için köeşli parantez içerisinde [:AdisyonId] değerini atayarak kaydediyoruz.
Adisyona Paketçi atamak için “Belge Varlığını Değiştir” eylemini kullanıyoruz, Yeni bir eylem açtıktan sonra uygun ismi veriyoruz ve Eylem Tipini de seçtikten sonra; Entity Type Name (Varlık Tipi Adı) alanına tanımladığımız Paketçi varlığının adını değiştirmek istediğimizden Paketçi olarak seçiyoruz ve Varlık Adı alanına da köşeli parantez içerisinde Paketçilerin adının saklanacağı bir veri alanı tanımlıyoruz, Örn. [:Paketçi Adı] Bu tanımlamayı da yaptıktan sonra Kaydet butonuna basarak işlemimizi tamamlıyoruz.
Kullanmamız gereken eylemleri ve Otomasyon Komutlarını tanımladıktan sonra sıra bunları çalıştıracak olan Kuralın tanımlanmasına geliyor. Bu kural ile yapmak istediklerimizi hatırlaycak olursak, adisyonları tek tek gezip onların ID numarlarını alan Eylemi adisyon sayısı kadar çalıştırması gerekiyor. Adisyonları açıp içlerine paketçilerini yazdıktan sonra da tekrar kapatması gerekiyor ve bunu seçili olan adisyon sayısı kadar yapması gerekiyor.
Yeni Kural Ekle linkine tıkladıktan sonra, kuralımıza uygun bir isim veriyoruz ve Olay Adı olarak her bir adisyon için teker teker çalıması gerektiği için Valur Looper (Değer Kadar Çalış) olayını seçiyor ve bu kuralın çalıştırmasını istediğimiz Eylemleri sırasıyla seçiyoruz.
Öncelikle Adisyonu çağırması gerektiği için Adisyon Yükleyen eylemimizi seçiyoruz ve eylemin değerine AdisyonID olarak hafızamızda tuttuğumuz [:Value] değişkeninin içerisinde yer alan ID numarasını yazmasını istiyoruz, Bİr sonraki adımda Adisyona Paketçi Ata eylemini seçip, Eylem değeri olarak da Paketçi Adı kısmına Program Ayarında saklı duran paketinin adını {:Paketçi} ile yazıyoruz. Süslü parantez kullanıyoruz çünkü bu değer Program ayarı içerisinde saklanıyor.
Bu iki eylemle belgeyi çağırıp içine paketçiyi atıyor ve öylece kaldığı için birde SambaPOS V3 kurulumu ile birlikte gelen Belgeyi Kapat eylemini seçiyoruz.
Belgeyi kapatıyor. ve bunu seçili olan tüm adisyonlar iin sırasıyla yapıyor.
Yukarıda da tanımladıımız kuralı, bir butona basıldığında çalışmasını istediğimiz için öncelikle bir Otomasyon Komutu ekliyoruz. Bu otomasyon komutu, Paketçilerin isimlerinin yazıldığı butona basıldığı anda yapması gereken işleir kurala gönderebilmek için gerekli.
Yeni Otomasyon Komutu Ekle linkine tıkladıktan sonra komutumuza uygun bir isim veriyoruz ve buton olarak kullanaycak olsak da boş geçemeyeceğimiz için bir buton adı tanımlıyoruz. İlişkiler kısmını sadece kural tetiklemek i.in çalıştıracağımızdan boş bırakıyor ve kaydet butonuna tıklıyoruz.
Otomasyon Komutumuzda hazır olduğuna göre Kuralımızı oluşturabiliriz. Yeni Kural ekle dedikten sonra uygun bir kural ismi veriyor ve Olay Tipi olarak Otomasyon Komutu çalıştığında olayını seçiyoruz. Otomasyon Komut adına az evvel tanımladığımız Otomasyon komutunu seçerek bu kuralın yapmasını istediğimiz eylemleri seçiyoruz ve ilk önce Paketçi Adını hatırlamak için yazdığımız eylemi seçip Paketçi değerini [:Value] olarak veriyoruz, bu Value adındaki değişkenin içinde saklı bulunan paketçinin adını hatırlıyor.
İkinci olarak Paket Adisyonlarını Sıra ile gez eylemini ekliyor ve kuralın çalışmasını istediğimiz Departman ve Belge tipini İlişkiler tabından seçtikten sonra kaydet butonuna basarak bu kuralımızıda tanımlamış oluyoruz.
Paket servisi ekranımızı tasarlarken eklediğimizve bize Paketçilere atanan adisyonları gösteren Belge Listeleyici de adisyonların üzerlerine tıklandığında o adisyonun içerisine girmesini istiyoruz, Bunu yapabilmek için çok basit bir eylem, kural ve basit bir Otomasyon komutuna ihtiyacımız olacak.
Adisyonun içine girebilmek için gerekli olan eylemdir, Yeni bir eklem ekle dedikten sonra alakalı ismi veryor ve Eylem Tipi olarak Adisyonu Görüntüle eylemini seçiyoruz, Aşağıda açılan TicketId değerine ise tıkladndığında hafızaya aldığımız adisyon nuımarasını alabilmek için değer olarak verdiğimiz değişken adını [:Adisyonu Numarası] formatında yazıyor ve bu eylemi kaydedip kapatıyoruz.
Otomasyon Komutu bundan öne tanımladıklarımın neredeyse aynısı gibi çalışacak, Yeni Otomasyon Komutu Ekle dedikten sonra uygun ismi verip Düğme başlığınıda yazdıktan sonra buton olarak kullanılmayacağı için ilişkiler kısmını boş bırakıp Kaydediyoruz.
Kuralımızı çalıştıracak komutumuzda hazır olduğuna göre artık kuralımızı da tanımlayabiliriz, Yeni Kural ekle dedikten sonra uygun bir isim veriyor ve Olay Tipi olarka Otomasyon Komutu Çalıştığında olayını seçiyor ve OtomationCommandName alanına az evvel tanımladığımız Otomasyon Komutunu seçiyoruz.
Eylem Seç linkine tıklayarak Adisyonu Görüntüle olarak tanımladığımız eylemi seçip, değerleri için yanında bulunan küçük ok sembolüne tıkladıktan sonra Adisyon Numarası alanına Otomasyon komutunda değeri alacak olan [:Value] değişkenini yazıp İlişkiler tabında bu kuralın çalışacağı Departan, Rol ve Bege tipini seçtikten sonra Kaydet butonuna basarak işlemimizi tamamlıyoruz.
Finale Doğru
Tüm tanımalamalarımızı yaptıkta sonra son bir işlem kalıyor geriye, Paket Servisinde kullanmak için tasarladığımız ekranımızda eksik olan Paketçi butonlarımızı tanımlamak ve yaptığımız bu Eylem ve Kural topluluğunun kullanacağımız özel ekranda nerede ne zaman çalışacaklarını belirlemek.
Paket Servis Özel Varlık Görünümü ekranımıza dönüruz ve ekranın boş bir yerinde mouseumuzun sağ tuşuna tıklayarak Düzenleme Moduna geçiyoruz.
Düzenleme moduna geçtikten sonra ekranın boş bir alanında tekrar mouseun sağ tuşuna tıklıyor ve Add Widget menüsü aracılığıyla Automation Command Button (Otomasyon Komut Butonu) linkine tıklarayrak ekranımızda boş bir buton oluşmasını sağlıyoruz. Bu ekran daha öncede olduğu gibi bu butonumuzun bulunmasını istediğimiz yere etrafındaki kesik çizgilerden tutarak taaşıyor boyutlandıyoruz ve Düzenleme modu içerisindeyken bu butonun üzerinde mouseun sağ tuşuna tıklayarak Ayarlar Menüsüne giriyoruz.
Yerleştirdiğimiz bu butonun üzerine tıklandığında hangi görevi yapacağını daha önceden tanımladığımız Otomasyon Komutlarından seçiyoruz, biz daha önce bu komutu Paketçi Seçildiğinde çalıştır olarak vermiştik. Altında yer alan Value kısmı ise bu komut çalıştığında değer olarak gönderilecek bilginini yazıldığı alandır, Bu bilgi adisyon içerisine paketçi olarak yazılacak alandır.
Bunun altında yazan, Caption bu butonun üzerinde yer alacakk bilgidir.
Bu durumda biz Value Paketçi olarak Mehmet i tanımlayıp butonun üzerine Balgat Bölgesi yazarak Mehmet'in Balgat bölgesi paketlerini götüdüğünü de tanımlayabilir.
Bu işlemi farklı kullanacağımız tüm paketçilerimiz için teker teker yapıp çalıştırmak istediğimiz kadar butonu ekleyerek değerlerini veriyor ve düzenleme modundan çıkarak yaptığımız bu butonalrın kaydedilmiş olmasını sağlıyoruz.
Ekranın sol tarafına eklediğimiz belge listeleyicisinde tekli veya çoklu olarka adisyonların üzerine tıklandığında onların seçili duruma gelmesi, adisyona paketçi eklenerek durumlarının değiştirilmesi görevini atamak için ekranın boş bir yerinde sağ tuşa tıklayarak Düzenleme Moduna geçiş yapıp solda bulunan Belge Listeleyicisinin üstünde mouseun sağ tuşuna tıklayarak Ayarlar menüsüne giriyoruz.
Burada yer alan bir kısım değerleri Belge Listesini tanımlarken girmiştik, şimdi saece komutlarını ve çalışma biçimi tanımlayacağız.
Adisyonları çoklu olarak seçebileceğimiz için Multi Selection kutucuğunu işaretliyor ve Command Name Value değerine hazırladığımız Otomasyon Komutunu yani “Adisyon Seçildiğinde Çalış” ı seçiyoruz. Bu şekilde bu Belge Listeleyicinin üzerinde tekli veya çoklu adisyonlar seçildiğinde SambaPOS içeride Adisyon Seçildiğinde komutunu çalıştıracak bu komutta sçili belgelerin ID numaralarını aklında tutacak ve biz Paketçi butonuna basarak bu adisyon numaralarını paketçi adları yazılması için Butonlara göndermiş olacağız.
Bu listeleyici sadece üzerine teker teker tıklanabilmelidir. Bunun için Multi Selection kutucuğu boş kalmalı ve Command Name Value olarak da bundan yapmasını istediğimizi işi yani Adisyonun içini göstermelidir. Bunun için Command Name Value de Adisyonu Görüntüle komutunu seçerek kaydet tuşuna basıyor ve işlemimizi tamamlamış oluyoruz.
Notlar:
Yukarıda anlatılan uygulamalar için SambaPOS V3.019 veya üzeri bir versiyon kullanmalısınız. Aşağıda verilen örnek veritabanı SambaPOS V3.031 için özelleştirilmiştir.
Bu uygulamanın yapıldığı örnek SDF veritabanı dosyasını Buradan İndirebilirsiniz.
Bu uygulamanın yapıldığı örnek SQL veritabanı yedek dosyasını Buradan İndirebilirsiniz.
Bu uygulamanın SambaPOS V4 ve SQL Server 2014 için örnek SQL veritabanı yedek dosyasını Buradan İndirebilirsiniz