V5 için Gelişmiş Paket Servis Uygulaması

Bölüm 1


Özelleştirilmiş Paket Servisin yeni bir versiyonudur. Bu uygulamayı gerçekleştirmek için V5.1.55 veya yukarısı bir sürüme sahip olmalısınız.


Paketçilerin Hazırlanması

Yeni bir Varlık Tipi oluşturarak işe başlıyoruz.

Yeni bir Varlık Türü oluşturduğumuzda bunu Adisyonlara atayabiliriz. Bu tanımlama bizim Adisyonlar için birer Paketçi atamak istediğimizde kullanacağımız bir tanımlama olacak.

Paketçiler için daha fazla bilgi tutmak da isteyebilirsiniz. Ev adresi, Telefonu gibi. Bunun için Özel alanlar sekmesine giderek ihtiyacınız olacak diğer alanları da tanımlayabilirsiniz.

Özel alanları da tanımladıktan sonra; Yönetim > Varlıklar > Varlıklar tabına tıklayarak sağda bulunan Yeni Varlık Ekle linkini kullanarak Yeni bir Paketçi varlığı ekleyebiliriz.

Tüm Paketçilerinizi tek tek eklemek yerine Toplu Varlık Düzenle menüsünden Paketçiler tabını seçerek ve Toplu Oluştur linkini kullanarak aynı anda daha çok sayıda Paketçi ekleyebilir ve aynı Ekran üzerinden ekleme işlemi tamamlandıktan sonra; Varlıklarınızın dilediğiniz diğer alanlarını da düzenleyerek Kaydedebilirsiniz.

Yeni Adisyon Tipi Oluşturma

Bu adımda Peket Serviste kullanılması için yeni bir Belge Tipi (Adisyon Tipi) oluşturacağız. Bu sayede Paket Serviste yapılacak işleri, ayrı bir şekilde raporlayabilecek ve farklı İlişkilendirmeleri (yazdırma, yetkilendirme vb) sadece Paket Servisi düzeyinde yapabileceğiz.

Yeni bir Adisyon Tİpi oluşturma için Yönetim > Adisyonlar > Adisyon Tipleri menüsünden Adisyon Tipi Ekle Linkine tıklıyoruz.

Adisyon Tipi Adına uygun bir isim verdikten sonra; kullanılacak Menüyü seçip Numaratörleri belirliyoruz ve kaydetmeden önce; Varlık Tipi Listesi tabına tıklayarak açılan ekranda Seçiniz linki ile Müşteriler Varlık Tipinin ve Paketçiler Varlık tipinin bu belge kullanıldığı her yerde önümüze direkt gelmesini sağlayarak bu belge ile ilişkilendiriyoruz.

Varlık Ekranlarının Hazırlanması

Paket Servis Varlık Ekranı

Aynı anda birkaç Varlık Ekranı kullanarak işlerimizi daha düzenli yapabiliriz. Yönetim > Varlıklar > Varlık Ekranları menüsünden Varlık Ekranı Ekle linkine tıklayarak yeni bir Varlık Ekranı tanımlıyoruz.

Varlık Ekranına isim verdikten sonra; Adisyon Tipi alanında mutlaka Paket Servis olarak tanımladığımız Yeni belge tipimizi seçiyor ve Görünüm Modu olarak da Yeni bir Tasarım olan Layout seçiyoruz.

Varlık Listesi tabında bu ekranın Ana Varlık Tipi olarak Paketçileri seçiyoruz. Bu sayede bu ekranda tanımlı olan ana varlık tipimizi de tanımlamış oluyoruz.

Son olarak bu tanımladığımız Varlık Ekranının hangi yetkilerde hangi kullanıcılara gözükmesini istediğimizi belirtecek olan İlişkiler tabına geliyoruz. Ekle linkine tıklayarak tamamı $*$ lardan oluşan bir satır ekliyoruz.

Buradalarda yer alan yıldız (*) sembolünün anlamı, tümü demektir. Bu ekranın sadece bir Departmanda veya sadece farklı bir Roldeki kullanıcılara gözükmesini istiyorsak ilgili sütundan bunu seçerek kaydediyoruz ve ilk Varlık Ekranımızı tanımlamış oluyoruz.

Tanımladığımız yeni Paket Servis ekranı POS ekranında aşağıdaki gibi boş bir ekran olarak gözükecektir.

Müşteri Arama Ekranı

SambaPOS Default kurulumunda Müşteri Ara Varlık ekranı zaten default olarak geliyor ama biz bu örnek için Müşterilerimizi Paket Servis belgesinde aramak istediğimiz için küçük birkaç değişiklik yapacağız.

Var olan Müşteri Ara Varlık ekranımız üzerine de çift tıklayarak veya üzerinde sağ klik yaparak Düzenleme ekranını açıyoruz ve Adisyon Tipini; Paket Servis olarak değiştirip Kaydediyoruz. Bu işlemi diğer Müşteri Adisyonları Varlık Ekranında da aynı şekilde Paket Servis olarak değiştirip kaydediyoruz.

Otomasyonun Hazırlanması

Yeni Paket Servis Belgesinin Durumunun Belirlenmesi

Bu yapacağımız Otomasyon ile Yeni bir Paket Servis belgesi oluşturulduğunda Belgeye Yeni bir Durum ile diğer belgelerden ayrıştırabileceğiz.


Yeni bir Adisyon Durumu oluşturacağız ve bu durum ilk sipariş alındığında Bekliyor, Bir Paketçiye atandığında Gönderildi, Paketçi gelip hesabını ödediğinde ise Ödendi durumlarını alacak.


İşlemlere yeni bir Eylem tanılayarak başlıyoruz. Bunun için Belge Durumunu Değiştir Eylemini kullanarak aşağıdaki gibi yeni bir Eylem oluşturuyoruz.

Durum bölümüne yazdığımız [:Paket Servis] bir değişkendir. Kurallarla ilgili durumlar oluştukça aldığı değer değişebilecek bir değişkendir.

Şimdi de yeni bir Paket Servis belgesi oluştuğunda durumunu Beklliyor olarak değiştirecek Kural'ı tanımlayalım; Yönetim > Otomasyon > Kurallar > Kural Ekle linki kullanıyoruz.

Şimdi bu oluşturduğumuz durumu test edelim.

POS'a geçip, Müşteri Ara Ekranından yeni bir Müşteri Kaydedip Paket Servis Siparişi alalım.

Müşterinin adını yazıp Yeni Müşteri Butonuna tıklayarak yeni bir Müşteri ekliyoruz.

Müşterinin bilgilerini yazıp Müşteri Seç butonuna tıkladığımızda aşağıdaki gibi bir Adisyon açılıyor.

Açılan adisyonda adisyon başlığında Müşterinin adı ve Bizim yukarıda yaptığımız tanımlama sonucunda, Paket Servis adında bir Durum ve bu durumunda Bekliyor adında bir değerinin olduğunu görüyoruz.

Buraya kadar yaptığımız işlemlerde sorun olmadığını gördüğümüze göre bir sonraki adıma devam edebiliriz.

Paketçi Seçildiğinde Adisyonun Durumunun Gönderildi olarak değiştirilmesi

Bu işlem içinde yukarıda tanımaladığımız Eylemi kullanacağız ancak farklı bir Kurala ihtiyacımız var. Paketçileri Belgeye Yeni bir Varlık olarak atayacağımızdan, Belge Varlığı Değişti Kuralını kullanarak çalışacağız.


Kuralları İlişkiler tabından herhangi bir ilişkilendirme yapmadan oluşturduğumuz için bu kurallar tüm programda her yerde çalışacak anlamı taşır, dilerseniz bu kuralları sadece ilgili Adisyon tipinde veya Departmanda çalıştırmak için İlişkiler tabından şeçimler yapabilirsiniz.


Paket Teslim edildiğinde Adisyonun Durumunun Teslim Edildi olarak değiştirilmesi

Son olarak Paketimiz teslim edildiğinde Paket Servis Durumunun Teslim Edildi olarak değiştirilmesi için gerekli kuralımızı oluşturacağız.

Burada Belge Kapanmadan Önce Kuralını kullanacağız ve Belge Kapanmadan hemen önce ödemesi alınmış ve Bakiyesi 0 olan adisyonları Teslim Edildi olarak durum değişikliği yapacağız.

Paket Servis Ekranının Eylemleri

Paket Servis Ekranında kullanacağımız Eylemleri hazırlamaya geldi sıra.

Öncelikle gerçek çalışma esnasında, kullanmayacağımız, sadece test için ihtiyacımız olan bir Mesaj Göster eylemi oluşturacağız, Yaptığımız ayarların doğruluğunu gördükten sonra bu Eylemi Kurallarımızın arasından çıkaracağız.

Mesaj Göster Eylemi

Mesaj göstermek için, Yeni bir Eylem tanımlıyoruz ve Eylem Tipinde Mesaj Göster'i seçiyoruz. Aşağıda bulunan Mesaj alanını ise değişken kullanabilmek için bir değişken tanımlıyoruz.

Değişken tanımlamayı yukarıdaki örnekten de hatırlayacaksınız. Köşeli Parantez içinde : işareti ile başlarlar.

Adisyonu Göster Eylemi

Bu Eylemi Paket Serviste bir adisyonu çağırıp içine girmekte kullanacağız. Adisyonu Görüntüle Eylem Tipini kullanan yeni bir Eylem oluşturuyoruz ve yine Ticket ID alanına işaretlediğimiz Adisyonu açsın diye başka Kural ile çağırabileceğimiz bir değişken tanımlıyoruz. Örnekte ben [:Adisyon ID] değişkenini tanımladım.

Adisyonu Yükle Eylemi

Çağırdığımız adisyonların gösterilmek için hafızaya alınması gerektiği için oluşturduğumuz bir Eylemdir. //Adisyon Yükle// Eylem Tipi ile çalıştırılır.

Ticket ID alanına yine aynı değişkeni giriyoruz, bu sayede hafızadaki adisyon numaralarını bilip ona göre yükleyebileceğiz

Belge Paketçisini Değiştir Eylemi

Paket Serviste atacağımız Paketçiyi değiştirmek için kullanacağımız bir eylemdir. Eylem Tipi olarak Belge Varlığı Değiştir'i kullanacağız.

Belgeyi Kapat Eylemi

Kapat Butonuna tıklandığında Adisyonu Kapatacak olan Eylemdir. Default bir SambaPOS kurulumunda oluşturulur. Bu iş için yeni bir eylem tanımlamaya gerek yok. Var olanı kullanabiliriz.

Bu eylem ile Paket Servis ekranında yeni bir Internet Explorer ekranını PopUp olarak açıp içinde farklı bilgiler göstereceğiz.

Eylem Tipi olarak Popup Browser'ı kullanıyoruz.

Özel Paket Servis Ekranının Ayarlanması

Yukarıda tanımladığımız Eylemlerin tümünü bu ekran üzerinde kullanacağız.

Ticket Lister Eklenmesi - Bekleyen Paketler için

Özel bir Varlık Ekranı görünümü hazırlamak için öncelikle POS ekranında ilgili Ekrana geçiyoruz ve mouse'un sağ tuşuna basarak Düzenleme Moduna geçiyoruz veya Klavyeden Shift + Ctrl + D tu kombinasyonuna basıyoruz.

1 tane sadece Ticket Lister a ihtiyacımız var.

Düzenleme modunun aktif olduğunu pencerenin etrafında çizilen //ince kırmızı çizgilerden// anlayabiliriz.

Düzenleme modunun içindeyen Ticket Lister mouse ile tutulur ve ekranda istediğimiz konumda durabileceği uygun bir poziyona ve yere oturtulur.

Ticket Lister'ımızı istediğimiz boyutta ve konumda mouse ile konumlandırdıktan sonra, Add Widget butonu ile bir tane de Etiket Bileşeni ekliyoruz. Bu Etiket ile Ticket Lister'a bir isim vereceğiz.

Etiket Bileşeninin Ticket Lister üzerine Konumlandırılması

Yukarıdaki gibi Etiket Bileşenini yerine konumlandırdıktan sonra bileşenin üstüne sağ tıklayarak açılan Menüde Ayarlar [Etiket Bileşeni] menüsüne girerek bu Widgetımızla ilgili detaylı ayarları yapabiliriz.

Bekleyen Siparişlerin Gösterilmesi

Ekrana yerleştirdiğimiz Ticket Lister içerisinde yalnızca Bekleyen Durumunda olan Paket Servis siparişlerini göstereceğiz. Bunun için Düzenleme modu aktifken Ticket Lister üzerinde mouse'un sağ tuşuna tıklayarak //Ayarlar [Ticket Lister]// menüsüne giriyoruz.

Açılan pencerede en önemli 2 alan Durum ve Şablon. Durumda sadece Bekleyen Adisyonların Listelenmesini istediğimiz için yukarıdaki Kural içinde tanımladığımız //Bekliyor// durumunu yazıyoruz.

Satır Formatının Ayarlanması

<L00><block 10 transparent left *>
<L00><size 20>{ENTITY NAME:Müşteriler}</size><br/>
<L00>[='{ENTITY DATA:Müşteriler:Adres}'.replace('<!rn>','<br/>')]
<L00></block>

<L00><block 10><size 40>{TICKET TOTAL}.-₺</size></block>

Yukarıdaki gibi Format ayarlandıktan sonra bu Ticket Lister'da göstermek istediğimiz adisyon bilgilerini formatını değiştirerek istediğimiz gibi gösterebiliyoruz.

Paketçi Butonlarının Ayarlanması

Ayrıca buton veya Komut tanımlamadan Ticket Lister içerisinde Paketçi isimlerimizi buton haline getirebiliriz.

Düzenleme moduna girdikten sonra mouse'un sağ klik yaparak Ayarlar [Ticket Lister] a girerek, Command Buttons alanına tanımladığımız paketçilerin adlarının herbiri bir satıra gelecek şekilde yazarız.

Aynı şekilde yazılmaları önemlidir.

Bu sayede paketçilerimizin adını Ticket Lister altında butonlaştımış oluruz. Bu Paketçilerimizin adının birer Otomasyon komutu gibi çalışabilmesi için gerekli olan söz dizimi ise;

<Buton Adı>=<Otomasyon Komutu Adı>

şeklinde olmalıdır.

Yaptığımız bu butonları test edebilmek için bu butonları çalıştıracak bir Kural oluşturalım.\

Yukarıdaki örnek Kural ile bir adisyon seçilip bir Paketi adına tıkladığımızda bir Mesaj ile karşılaşacağız.

Kullanım olarak öncelikle bir adisyon seçmek için ilgili adisyonun üstüne tıklamalı sonra bu adisyonları göndereceğimiz paketçiyi seçmeliyiz.

Paketçilerin Parametreleri

SambaPOS V5 de hangi otomasyon komutuna tıkladığımızı ve bu komutun hangi parametreleri gönderdiğiniz bilebiliriz. Bunun için V5 komut parametresi özelliğini kullanacağız.

İnek Şaban=Paketçi Komutu:TicketId=$1,Paketçi=İnek Şaban
Damat Ferit=Paketçi Komutu:TicketId=$1,Paketçi=Damat Ferit
Güdük Necmi=Paketçi Komutu:TicketId=$1,Paketçi=Güdük Necmi
Hayda İsmail=Paketçi Komutu:TicketId=$1,Paketçi=Hayda İsmail

Söz dizimi

<Buton Adı>=<Otomasyon Komutu Adı>:<Parametre>

biçimde olmalıdır.

Ticket Listerde sonra olarak Ayarlarında Multi Selection'u enable ederek ve Loop Commad ı açarak işlemlerini tamamlıyoruz.

Az evvel yaptığımız Kural örneğini biraz geliştirerek, Paketçi adını da alabildiğimizin örneğini yapalım.

Sonuç : Adisyonu seçip paketçiye tıkladığımızda Artık adisyonun numarasını hafızasına aldığını ve tıkladığımız paketçiyi seçtiğini Mesaj Göster eylemi sayesinde öğrendik.\

Kullanımı:

Adisyonda Paketçiyi Güncelleme

Yukarıda mesaj göndermek üzere yaptığımız Kuralımızı artık gerçek işini yapması için düzenleyeceğiz. Mesaj Göstererek doğru çalıştığını gördük. Şimdi önce ilgili Adisyonu Yükleyecek, Paketçiyi içine yazacak ve son olarak da Adisyonu Kapatacak olan Kuralımızı aşağıdaki gibi güncelliyoruz.

Gelişmiş Paketçi Butonları

Yukarıda Paketçilerin adlarını Ticket Lister içerisinde teker teker yazıp herbirine teker teker Otomasyon Komutu atamıştık. Bu Paketçiler her değiştiğinde oldukça yoğun bir iş çıkacaktır.\ Yazıcı Etiketlerini kullanarak burada olan tüm Paketçileri otomatik olarak buton haline getirebiliriz.

{REPORT ENTITY DETAILS:
E.Name.asc
:(ET=Paketçi)
:{0}=Paketçi Komutu\:TicketId=$1,Paketçi={0}}

Ticket Lister Eklenmesi - Gönderilen Paketler için

Yukarıda anlattığımız Ticket Lister'ın bir benzerinden bir tane daha Ticket Lister ve Editör Bileşeni ekliyoruz.\

Eklediğimiz bu Ticket Lister'ı ekranda istediğimiz yere göre konumlandırıyoruz.

Öncelikle Eklediğimiz Editör Bileşenini istediğimiz gibi isimlendirip biçimlendiriyoruz.

Sırada Gönderilen (Paketçiye verilen) siparişlerin listeleneceği Ticket Lister'ın özelliklerinin ayarlanması var. Düzenleme modunda düzenleyeceğimiz Ticket Lister'ın üstünde //Ayarlar [Ticket Lister// menüsüne giriyoruz ve öncelikle State i Gönderildi olarak değiştiriyoruz.

Bir önceki (Bekleyen Siparişler) Ticket Listerında olduğu gibi Formatını da ayarlayarak kaydediyoruz.

Satır Formatı Örnek Kodu:

<L00><block 10 transparent left *>
<L00><size 20>{ENTITY NAME:Paketçi}</size><br/>
<L00>[='{ENTITY NAME:Müşteri}'.replace('<!rn>','<br/>')]
<L00></block>

<L00><block 10><size 40>{TICKET TOTAL} ₺</size></block>

Gönderilen Paketler Ticket Lister'ına Butonların atanması

Seçilen adisyona tıklandıktan sonra adisyonun içine girebilek için //Adisyonu Göster// adında bir Komut ekliyoruz, Ticket Lister'ımızın Command Value alanına.\

Bu komutun çalışabilmesi içinde bir Kural'a ihtiyacımız olacak. Otomasyon > Kurallar > Yeni Kural ekle linki ile yeni bir Kural ekliyoruz. Olay Adı olarak //Otomasyon Komutu Çalıştı// olayını seçiyoruz ve bir de Kısıtlama ekleyerek Adisyonu Göster Eylemini seçerek butona tıklandığında ne yapmak istediğimizi tanımlıyoruz.

Sonuç olarak;

Haritada Göster Butonunun Eklenmesi

Aynı Adisyonu Göster butonunda yaptığımız gibi yeni bir Commad Button ekleyeceğiz ama URL ye göndereceğimiz datanın içinde kendi adresimizde yazması gerektiği için komutu aşağıdaki gibi yazmalıyız.

Haritada Göster=Haritada Göster:"TicketId=$1","MapURL=https://maps.google.com/maps?saddr=Şehit Muhtar Mahallesi, Süslü Saksı Sokak No 22 Beyoğlu İstanbul&daddr={ENTITY DATA:Müşteri:Adres}&hl=tr"

Bu komutu da ekleyerek butonumuzu eklemiş oluyoruz,

Bu butonumuzun çalışmasını sağlayacak Olay Adı //Otomasyon Komutu Çalıştırıldı// olacak olan //Kural// ı da oluşturduktan sonra butonumuz çalışmaya başlayacak.

Müşteri Arama/Seçme Bölümü

Paket Servis Ekranımızda mouse'un Sağ tuşuna tıklayarak, Düzenleme modunu aktif hale getiriyoruz, yeniden sağ tuş ile Add Widget menüsünden bir tane Entity Seach Widget'ı yüklüyoruz. Bu Widgetı müşteri seçmek için kullanacağız.

Aşağıdaki animasyonda da gözüktüğü gibi Ekranımıza Entity Search Widget'ını ekledikten sonra; Ekranda yer almasını istediğimiz şekilde konumlandırıyoruz.

Eklediğimiz bu Entity Search ekranının özelliklerini düzenleyeceğiz. Düzenleme Modu içerisindeyken sağ tuş ile Ayarlar [Entity Search] menüsüne giriyoruz. Burada yer alan Entity type name Value ye Müşterileri seçiyoruz. Bu sayede bu Entity Search ile artık Müşterileri aratıp bulabileceğiz.

Command Button kısmına ise Yeni Müşteri, Müşteri Düzenle ve Müşteri Seç butonları için önceden tanımlanmış olan fonksiyonları önce buton başlığı = tanım şeklinde yazıyoruz.

Son olarak butonların ne kadar yükseklikte olmalarını istediğimiz Command Area Height ve satır sayısını da seçtikten sonra kaydediyoruz.

Müşteri Seç=Select
Müşteri<br/>Düzenle=Edit
Yeni Müşteri=Create

Temel tüm fonksiyonları ile artık çalışmaya hazır bir Gelişmiş Paket servis özelliğine kavuşmuş oluyoruz. İlerleyen bölümlerde bu paket servis çalışmasına yeni özellikler ekleyerek geliştirmeye devam edeceğiz.


Aşağıdaki Download linki ile yukarıda anlatılan dökümanın Veritabanı Araçları Import dosyasını indirebilirsiniz. Veritabanı Araçları Dosyası


Aşağıdaki Download linki ile yukarıda anlatılan dökümanın Layout Dosyalarına ulaşabilirsiniz. Layout Dosyaları Download

Not: Bu Layout dosyaları, Belgelerim > SambaPOS5 dizininin içinde yer alan Layout dizinine kopyalanmalıdır.


results matching ""

    No results matching ""