=======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ı : - Adetli Kupon Üretilmesi - Kupon Yazdırılması - Adetli Kupon Yazdırılması - 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. {{:tr:promosyon_kpn:kupon-promosyon-33.jpg?700|}} **Eylem Değerleri** ^Özellik^Değer^ |Eylem Adı|KPN-Kupon Üret| |Eylem Tipi|Değ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. {{:tr:promosyon_kpn:kupon-promosyon-34.jpg?700|}} **Kural Değerleri** ^Özellik^Değ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şittir|Kupon Ü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. {{:tr:promosyon_kpn:kupon-promosyon-35.jpg?700|}} **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**\\ {{:tr:promosyon_kpn:kupon-promosyon-36.jpg?700|}} **Şablon Değerleri**\\ [ENTITY] SambaPOS - Ücretsiz Kahve Kuponu {ENTITY NAME} {ENTITY NAME} Bu Şablonu okuyacak olursak bize 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 {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_yazicisindan_barkod_ve_karekod_yazdirmak_icin_gerekenler]] 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. {{:tr:promosyon_kpn:kupon-promosyon-37.jpg?700|}} ====Kuponun Yazdırılması ==== Kuponlarımızı yazdırmak için ''Varlık Yazdır'' eylemini kullanacağız. ==== Varlık Yazdır Eylemi ==== {{:tr:promosyon_kpn:kupon-promosyon-38.jpg?700|}} **Eylem Değerleri** ^Özellik^Değer^ |Eylem Adı|KPN-Kupon Yazdır| |Eylem Tipi|Varlık Yazdır| ^Parametreler^ |Parametre - Varlık Adı|[:Kupon Numarası]| |Parametre - Yazıcı Adı|Adisyon Yazıcı| |Parametre - Yazıcı Şablonu|Kupon Ş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 [[bolum_3_-_adetli_kupon_uretilmesi_ve_yazdirilmasi#Çoklu Kupon Oluşturma Kuralı|bu linkte anlatılan Çoklu Kupon Oluşturma kuralının içine ilave etmemiz gerekiyor.]] {{:tr:promosyon_kpn:kupon-promosyon-39.jpg?700|}} 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. {{:tr:promosyon_kpn:kupon-promosyon-40.jpg?700|}} **Eylem Değerleri** ^Özellik^Değer^ |Eylem Adı|KPN-Yeni Dosya adı Oluştur| |Eylem Tipi|Program Ayarı Değiştir| ^Parametreler^ |Parametre - Ayar Adı|Kupon Dosyası| |Parametre - Ayar Değeri|C:/Users/Mehmet/Documents/SambaPOS3/Kuponlar/{RANDOM}.txt| |Parametre - Güncelleme Şekli|Güncelle| |Parametre - IsLocal|True| 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 [[bolum_3_-_adetli_kupon_uretilmesi_ve_yazdirilmasi#kupon_olustur_kurali| Kupon oluştur kuralının içine eklemiz gerekiyor.]] {{:tr:promosyon_kpn:kupon-promosyon-41.jpg?700|}} 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. {{:tr:promosyon_kpn:kupon-promosyon-42.jpg?700|}} **Eylem Değerleri** ^Özellik^Değer^ |Eylem Adı|KPN-Kuponları Dosyaya Yaz| |Eylem Tipi|Add 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 [[bolum_3_-_adetli_kupon_uretilmesi_ve_yazdirilmasi#Çoklu Kupon Oluşturma Kuralı|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. {{:tr:promosyon_kpn:kupon-promosyon-43.jpg?700|}} **Kural Yeni Değerleri** ^ Eylemler^^^ |Eklenen Eylem|KPN-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. {{:tr:promosyon_kpn:kupon-promosyon-44.jpg?700|}}