İçindekiler

Bölüm 3 - Adetli Kupon Üretilmesi ve Yazdırılması

Bölüm 1 de ve Bölüm 2 Kupon Oluşturulması ve kullanımı ile ilgili yapılması gereken işlemleri gördük. Bu bölümde ise oluşturduğumuz kuponların yazdırılması, kuponlardan barkod veya karekod oluşturulmasını ve topluca kupon üretiminin nasıl yapılacağını göreceğiz. Bu bölümün konuları :

  1. Adetli Kupon Üretilmesi
  2. Kupon Yazdırılması
  3. Adetli Kupon Yazdırılması
  4. Adetli Kuponların Yazdırılmadan bir txt dosyaya kaydedilmesi

Adetli Kupon Üretilmesi

Çoklu Kupon Oluşturma

Çoklu Kupon Oluşturma Eylemi

Bölüm 1 de kupon üretmenin nasıl yapıldığını anlatmıştık, Bölüm 1 de anlatılan kupon üretme işlemi adisyon içerisinde her bir satırda yanlızca bir kupon olması durumunda üretim yapabiliyor. Ama bizler restoranlarımızda aynı anda onlarca kupon üretmek isteyebiliriz. Örneğin bir firma gelip pesonelleri için topluca 150 tane kahve kuponu almak isterse bunları satır satır yazmak hiç mantıklı değil. 150 X Kahve kuponu dediğimizde bize aynı anda 150 adet Kupon varlığı üretmesi gerekli.
Bu işlemi yapabilmek için Değerleri Döngüye Ata eylemini kullanacağız.

Eylem Değerleri

ÖzellikDeğer
Eylem AdıKPN-Kupon Üret
Eylem TipiDeğerleri Döngüye Ata
Parametreler
Parametre - AdıKupon Üret
Parametre - Değerler([:Quantity])

Değerleri Döngüye Ata eylemi aynı verilen işi verilen değer kadar sefer yaptırmak için kullanılır. Burada ([:Quantity]) değişkenini kullanarak hem Kahve Kuponu önüne gelen miktarı okuyacağız ve bu eylem ile o miktar kadar çalıştırılmasını sağlayacağız.

Örneklerle açıklayacak olursak
Eğer bu eylem girilecek Değer 100 ise bu eylemin 100 değeri için sadece 1 kere çalışmasını sağlar.
Eğer değer 100,150 ise bu sefer eylemin 100 ve 150 için birer kere yani toplam 2 kere çalışır
Eğer gelen değer (100) ise bu sefer 1 den başlayarak 100 e kadar 100 kere çalışması sağlanabilir.
Eğer gelen değer (100,150) ise bu sefer 100 den başlayarak 150 ye kadar 50 kere çalışması sağlanabilir.

Biz buradaki örneğimizde Quantity yi bir değişken parametre olarak gönderdik, ve ürünün önünde bulunan miktar kadar çalışmasını istediğimizden yani 5 tane Kahve Kuponu alındıysa 5 kere çalışmasını istediğimizden değişken olan Quantity'yi bir de parantez içerisine alarak yazdık.

Çoklu Kupon Oluşturma Kuralı

Yukarıda tanımaladığımız eylemi harekete geçirmek için yeni bir kural oluşturuyoruz. Nu kuralımızın Olay adı Değer Döndürücü

Bu kural Değerleri Döngüye ata eyleminden gelen tüm değerler için aynı kuralda geçen işlerin yapılmasını sağlar.

Kural Değerleri

ÖzellikDeğer
Kural AdıKPN-Toplu Kupon Üret
Olay AdıDeğer Döndürücü
Kısıtlamalar
Kısıtlama ŞartıEşitse
AdıEşittirKupon Üret
Eylemler
Eylem - 1 Random Kupon Oluştur
Eylem - 2 Kupondaki Menü Ürün Adını Güncelle
Değer{ORDER STATE:Kupon Ürünü}

Bu Kural yukarıdaki eylemden gelen miktar kadar çalışacak ve her seferinden Eylem 1 de olduğu gibi bir Kupon üretecek ve ürettiği kuponlardaki Menü Ürün adını güncelleyecek.

İkinci Önemli adım ise Bölüm 1 de anlatılan Ödeme Yapıldığında Kupon Üret Kuralını tekrar düzenlemek olacak. Çünkü o kural şu ana kadar teker teker kupon üretmek için kullanılıyordu.
Ama yukarıda yaptığımız tanımlama ile artık teker teker kupon üretmeye ihtyacımız kalmadı.

Kupon Oluştur Kuralı

Yapılacak işlem daha önceden oluştuğumuz KPN-Kupon Ödendiğinde Kupon Varlığı Oluştur kuralını bularak ona Düzenle diyerek içine girmek ve Eylem Seç linkine tıklayarak var olan Random Kupon Üret ile Kupondaki Menü Ürün adını güncelle eylemlerini kaldırarak yerine Kupon Üret eylemini seçerek Quantity değerini de Yazıcı şablonlarından hatırlaycağımız gibi {QUANTITY} vermektir.

Kural Değerleri

Özellik Değer
Kural Adı KPN-Kupon Ödendiğinde Kupon Varlığı Oluştur
Olay Adı Sipariş Durumu Değiştir
Kısıtlamalar
Kısıtlama Şartı Eşitse
StateName Eşittir Kupon Durumu
Durum Eşittir Kupon Ödendi
Eylemler
Eylem Kupon Üret
Quantity{QUANTITY}

Bu işlemle beraber artık 5 X Kahve Kuponu ürünü satılarak ödemesi alındığında artık aynı anda 5 farklı Kahve kuponu varlığı üreterek içindeki Menü Ürün isimlerini de güncelleştirmeyş bitirmiş olduk.

Kupon Yazdırılması

Yazıcı Şablonu Oluşturulması

Kupon üzerinde istediğimiz tüm dataları yazdırabiliriz. Ancak biz bu Kahve Kuponunu sonra kullanılmaz üzere bir ürün gibi satacağımızdan yazdıracağımız fişin üzerinde bize Varlığı temsil eden bir barkod veya karekod basması bizim o 11 haneli varlık adını kolayca kullanabilmek için barkod okuyucu kullanmamızda kolaylık sağlayacaktır.

Yazıcı Şablonu

Şablon Değerleri
<codejava> [ENTITY] <C00>SambaPOS <F>- <T>Ücretsiz <T>Kahve Kuponu <R00> <EC> <QR80>{ENTITY NAME} <R00> <R00>{ENTITY NAME} </code>

Bu Şablonu okuyacak olursak bize <QR> kodundan dolayı bir Karekod oluşturacağını yanında bulunan ilk karakter olan 8 den dolayı büyüklüğünün 8 birim oalcağını onun yanında bulunan ikinci 0 dan dolayı da Hata düzeltmesi tarfında esnek olacağını anlatıyor.
Son olarak da <R00>{ENTITY NAME} ile bir satır boşluk verdikten sonra varlık adını okuyablmek için normal yazıylada yazılacağını anlatan bir şablon yapmış olduk.

Barkod Yazıcısından Barkod ve Karekod Yazdırmak konulu makalede detayları geniş bilgi bulunmaktadır.

Yukarıdaki Şablon Normal Fiş Yazıcısından yazıdırdığın da aşağıdaki çıktı üretilecektir.

Kuponun Yazdırılması

Kuponlarımızı yazdırmak için Varlık Yazdır eylemini kullanacağız.

Varlık Yazdır Eylemi

Eylem Değerleri

ÖzellikDeğer
Eylem AdıKPN-Kupon Yazdır
Eylem TipiVarlık Yazdır
Parametreler
Parametre - Varlık Adı[:Kupon Numarası]
Parametre - Yazıcı AdıAdisyon Yazıcı
Parametre - Yazıcı ŞablonuKupon Şablonu

Bu eylem bir önceki adımda oluşturduğumuz Yazıcı Şablonunun hangi yazıcı taradından yazdırılacağının ve hangi şablonu kullanacağının belirlendiği eylemdir.

Bu eylemi çalıştırmak için bu linkte anlatılan Çoklu Kupon Oluşturma kuralının içine ilave etmemiz gerekiyor.

Bu sayede Kural çalıştığında kuponları üretiyor, ürettiği kuponların içine Menü Ürün İsimlerini yazıyor ve son olarak yazdırma eylemini çalıştırabiliyor oldu.

Adetli Kuponların Yazdırılmadan bir txt dosyaya kaydedilmesi

Özelllikle aynı anda çok adette kupon üretmemiz gerektiği zamanlarda bu kuponları yazıcıdan basmak istemyebiliriz. Örneğin bir reklam çalışması için ücretsiz kahve dağıtacağımızı varsayalım. Reklam broşürlerimizi basacak matbaaya sadece basacağı barkod veya karekodun değerleini bir text dosya içinde vermemizi yeterli olacağı durumlarda çokca işe yarayacaktır.

Kupon Numaralarının text dosyaya kaydedilmesi

Kupon numaralarını bilgisayarımızda bir dosyada saklamak için ilk adımımız bir eylem oluşturmak olacak.

Yeni Dosya adı Oluştur Eylemi

Bu eylem dosyalarımızı saklamak istediğimiz dizinin adresini hafızasında saklayacak ve gerektiğinde kullanmak isteyen kurala vermekle çalışan bir eylemdir.

Eylem Değerleri

ÖzellikDeğer
Eylem AdıKPN-Yeni Dosya adı Oluştur
Eylem TipiProgram Ayarı Değiştir
Parametreler
Parametre - Ayar AdıKupon Dosyası
Parametre - Ayar DeğeriC:/Users/Mehmet/Documents/SambaPOS3/Kuponlar/{RANDOM}.txt
Parametre - Güncelleme ŞekliGüncelle
Parametre - IsLocalTrue

Burada geçen Ayar Değeri verisi benim kendi bilgisayarımda kullanıcımın yazmaya yetkisi olan Belgelerimin içersinde Kuponlar isiml bir dizin olarak seçildi. Siz kendi bilgisayrınızda kendi dizin yolunu belirtmelisiniz.

Bilgisayar dizin adresi verilirken dikkat edeceğiniz gibi \ yerine / kullanılmıştır. Sizde aynı şekilde kullanmalısınız

{RANDOM}.txt o anda oluşacak olan dosyanın adını bilgisayarızın zamanına göre otomatik olarak türetecektir.

Bilgisayarımızda nerede hangi isimli dosyalar açılması gerektiği bilgisini bir Eylem ile belirttikten sonra bu bilginin okunabilmesi için daha önceden tanımladığımız Kupon oluştur kuralının içine eklemiz gerekiyor.

Burada dikkat edilmesi gereken husus, Yeni Dosya ismi oluştur eylemimizin Kupon Üret eyleminden önce yer almasıdır.

Çünkü önce dosya adı belli olmalıdı ki, kuponları nereye yazacağını bilsin.

Kuponları Dosyaya Yaz Eylemi

Bu eylem ile, yukarıda oluşturduğumuz dosyaya neler yazacağının ön tanımını yapıyoruz.

Eylem Değerleri

ÖzellikDeğer
Eylem AdıKPN-Kuponları Dosyaya Yaz
Eylem TipiAdd Line To Text File - Dosyaya bilgi ekle
Parametreler
Parametre - File Path{:Kupon Dosyası}
Parametre - TExt[:Kupon Satırı]

Bu şekilde ileride Kuralda tanımlayacağımız [:Kupon Satırı] değişkeninde geçecek bilgilerin {:Kupon Dosyası} adındaki dosyanın içine satır satır yazılacağını tanımalamış oldu.

Sırada bu eylemi çalıştıracağımız kuralımız var.
Bu eylemi çalıştırmak için bu linkte anlatılan Çoklu Kupon Oluşturma kuralının içine ilave etmemiz gerekiyor. Bu şekilde her bir kupon üretildiğinde gerekli veri de üretilerek dosyanın içine satır satır yazılmış olacak.

Kural Yeni Değerleri

Eylemler
Eklenen EylemKPN-Kuponları Dosyaya Yaz
Kupon Satır{ORDER STATE:Kupon Ürünü} - {ENTITY NAME}

Burda Kuponları dosyaya yaz eylemimizde bulunna Kupon Satırı değişkenimize {ORDER STATE:Kupon Ürünü} - {ENTITY NAME} tanımını girerek önce ürün adını sonrada yanına varlık adını yazması gerekğini tanımlamış olduk.