Teknik Döküman - huginsdk/fpu GitHub Wiki
GİRİŞ
Bu döküman, GMP entegrasyon protokolleri dahilindeki Yeni Nesil Hugin ÖKC'ler ile bilgisayar bağlantılı sistemler arasında iletişimi, Hugin arayüzleri ile sağlamak ve bu yapıların oluşturulmasına kılavuzluk etmek amacı ile hazırlanmıştır. Dökümanın ve dökümanda adı geçen ürünlerin tüm hakları HUGİN YAZILIM TEKNOLOJİLERİ A.Ş. firmasına aittir.
ENTEGRASYON KÜTÜPHANELERİ
Entegrasyon yapılacak kütüphanlere buradan erişebilirsiniz. C++, C#, Java, Delphi entegrasyon kütüphanleri link altında mevcuttur. Kablolu entegrasyon LAN(TCP/IP) ve RS232 protokolleri üzerinden gerçekleşmektedir. Genel itibari ile akış aşağıdaki şekilde gerçekleşmektedir.
sequenceDiagram
UYGULAMA ->> KÜTÜPHANE: (1)Fiş başlat!
KÜTÜPHANE ->>YNÖKC: (2)Fiş Başlat!
YNÖKC->>KÜTÜPHANE: (3)Fiş Başlatıldı!
KÜTÜPHANE->>UYGULAMA: (4)Fiş Başlatıldı!
Tüm kütüphanelerde kullanılan arayüzler aynıdır. Methodların aldığı argümanlar ve dönüş değerleri aynı yapıdadır. Bu dönüş değerleri boolean ya da string yapıdadır.
Method dönüş değerleri string formatta, araya '|' karakteri konularak birleştirilip tek bir string olarak dönmektedir.
<String1>|<String2>|<String3>|................
Bu değerlerden, ilk iki string değeri Hata Kodu ve ÖKC Durum Kodu dur.
<ErrorCode>|<StatusValue>|<Parameter1>|<Parameter2>|................
HATA KODLARI
Hata Kodu | Enum Değer |
Açıklama Detay |
---|---|---|
1 | ERR_DATA_CORRUPT | Kayıp ya da eksik data (Uzunluk kadar gelmeli) Methodu tekrar çağır |
2 | ERR_CRC | Data değişmiş Methodu tekrar çağır |
3 | ERR_INVALID_STATE | ÖKC durumu uygun değil Çağırılan method ÖKC durumu için uygun değil. Örneğin Örneğin ÖKC ödeme durumunda iken belge başlat ya da ürün yazdır methodları çağırılamaz. |
4 | ERR_INVALID_CMD | Geçersiz komut ÖKC ilgili method komutunu desteklememektedir |
5 | ERR_INVALID_PRM | Geçersiz parametre Methoda verilen parametre(ler) geçersiz. |
6 | ERR_OPERATION_FAILED | İşlem başarısız Methodu tekrar çağır |
7 | ERR_CLEAR_REQUIRED | Hata ya da durum sonrası devam onayı ÖKC işleme devam edebilmesi için onay bekler. Genelde rulo kağıt bitimi sonrası yeni rulo takıldığında ya da 24 saat Z raporu sonrası fırlatılır. |
8 | ERR_NO_PAPER | Kağıt yok ÖKC rulosunda kağıt kalmayınca bu hatayı döner. Yeni kağıt rulosu takıldıktan sonra ÖKC hata kodu 7 ye dönecektir. Sizden işleme devam edebilmek için onay isteyecektir. ClearError methodunu çağırarak işleme devam edebilirsiniz. |
9 | ERR_MATCH_ERROR | Eşleme hatası Eşlenmiş cihaz bulunmamaktadır ya da başarısız eşleme |
--- | --- | --- --- |
11 | ERR_FM_LOAD_ERROR | Mali bellek yüklenirken hata oluştu ÖKC bloklanır, servis çağırılmaldır. |
12 | ERR_FM_REMOVED | Mali bellek bağlantısı bulunamadı ÖKC bloklanır, servis çağırılmalıdır. |
13 | ERR_FM_MISMATCH | Mali bellek uyuşmazlığı Servis çağırılmalıdır. |
14 | ERR_NEW_FM | Yeni mali bellek, formatlanmalı ÖKC bloklanır, servis çağırılmalıdır. |
15 | ERR_FM_INIT | MAli bellek formatlanırken hata oluştu ÖKC bloklanır, servis çağırılmalıdır. |
16 | ERR_FM_FISCALIZE | Mali bellek malileştirme başarısız ÖKC bloklanır, servis çağırılmalıdır. |
17 | ERR_FM_DAILY_LIMIT | Günlük Z limiti * Günlük Z Raporu limitiniz dolduysa bu hata fırlatılır. Z Raporu almak için bir sonraki gün beklenir.* |
18 | ERR_FM_FULL | Mali bellek dolu ÖKC bloklanır, servis çağırılmalıdır. |
19 | ERR_FM_FORMATTED | Mali bellek önceden formatlanmış ÖKC bloklanır, servis çağırılmalıdır. |
20 | ERR_FM_CLOSED | Mali bellek kapalı ÖKC bloklanır, servis çağırılmalıdır |
21 | ERR_FM_INVALID | Geçersiz mali bellek ÖKC bloklanır, servis çağırılmalıdır. |
22 | ERR_FM_SAM_CARD | SAM karttan sertifika alınamıyor ÖKC bloklanır, servis çağırılmalıdır. |
--- | --- | --- --- |
31 | ERR_EJ_LOAD | EKÜ yüklenirken hata oluştu Servis çağırılmalıdır. |
32 | ERR_EJ_REMOVED | EKÜ çıkarıldı EKÜ çıkarılmıştır. yeniden takılıp ClearError methodu çağırılmalıdır. |
33 | ERR_EJ_MISMATCH | EKÜ uyuşmazlığı Farklı bir EKÜ takıldığında bu hata oluşur. |
34 | ERR_EJ_OLD | EKÜ eski Eski EKÜ takıldığında alınır. Sadece EKÜ raporları alınabilir. |
35 | ERR_NEW_EJ | Yeni EKÜ Yeni EKÜ yü onayla ve ClearError methodunu çağır. |
36 | ERR_EJ_ZREQUIRED | EKÜ değiştirilemedi, Z raporu gerekli EKÜ üzerinde değişiklik için Z raporu alınmalıdır. Yeni EKÜ takmak için de son belge Z raporu olmalıdır |
37 | ERR_EJ_INIT | EKÜ başlatılamadı Farklı bir EKÜ tak. EKÜ sorunlu ya da bozuk olabilir. |
38 | ERR_EJ_FULL | EKÜ dolu Z raporu almalı ve yeni bir EKÜ takmalısın. |
39 | ERR_EJ_FORMATTED | EKÜ daha önce formatlanmış yeni EKÜ formatla |
--- | --- | --- --- |
51 | ERR_RCPT_TOTAL_LIMIT | Fiş limiti aşıldı Aratoplam fiş limitini aşarsa bu hata alınır. |
52 | ERR_RCPT_SALE_COUNT | Fişteki satış kalemi sayısı aşıldı Maksimum satış kalemi sayısı 128. Ödeme alınıp belge kapatılmalıdır. |
53 | ERR_INVALID_SALE | Geçersiz satış Satış tutarı 0 olduğu zaman bu hata alınır. |
54 | ERR_INVALID_VOID | Geçersiz iptal işlemi İptal edilecek satış yok ise bu hata alınır. |
55 | ERR_INVALID_CORR | Geçersiz düzeltme işlemi Eğer son işlem düzeltilebilir bir işlem değil ise bu hata alınır. Örnek olarak son işlem ödeme ise. |
56 | ERR_INVALID_ADJ | Geçersiz indirim/arttırım inidirm/arttırım değerinizi kontrol ediniz. |
57 | ERR_INVALID_PAYMENT | Geçersiz ödeme Ödeme parametrelerinizi kontrol ediniz |
58 | ERR_PAYMENT_LIMIT | Ödeme kalem limiti aşıldı Maksimum parçalı ödeme sayısı 10 dur |
59 | ERR_DAILY_PLU_LIMIT | Günlük satış limiti aşıldı Aynı ürün için günlük satış adedi 9999999 dur. Aynı üründen satışa devam etmek için Z raporu alınmalıdır. |
--- | --- | --- --- |
71 | ERR_VAT_NOT_DEFINED | KDV oranı tanımlı değil KDV oranını tanımlamalısınız |
72 | ERR_SECTION_NOT_DEFINED | Kısım tanımlı değil Önce kısım tanımlamalısınız. |
73 | ERR_PLU_NOT_DEFINED | PLU tanımlı değil İlk önce PLU tanımlamalısınız |
74 | ERR_CREDIT_NOT_DEFINED | Kredi tanımlı değil Kredi tanımlamalısınız. |
75 | ERR_CURRENCY_NOT_DEFINED | Döviz tipi tanımlı değil Döviz tipini tanımlamılısınız. |
76 | ERR_EJSEARCH_NO_RESULT | EKÜ de kayıt bulunamadı. Parametrelerinizi kontrol ediniz. |
77 | ERR_FMSEARCH_NO_RESULT | Mali bellekte kayıt bulunamadı Parametrelerinizi kontrol ediniz. |
78 | ERR_SUBCAT_NOT_DEFINED | Geçersiz alt-kategori Alt-kategori tanımlamalısınız |
79 | ERR_FILESEARCH_NO_RESULT | Dosya aramasında sonuç bulunamadı Parametrelerinizi kontrol ediniz. |
--- | --- | --- --- |
91 | ERR_CASHIER_AUTH | Kasiyer yetkisi yetersiz Yetkili kasiyer girişi yapmalısınız |
92 | ERR_HAS_SALE | Satış var Örneğin satışı olan KDV değerini değiştirmeye çalıştığınızda alırsınız, öncesinde Z raporu alınmalıdır. |
93 | ERR_HAS_RECEIPT | Fiş var , Z Raporu gerekli Örneğin son belge Z raporu değil ise Logo değiştirilemez. |
94 | ERR_NOT_ENOUGH_MONEY | Çekmecede yeterli nakit yok Örnek: çekmecede 20 lira var ise 21 lira paraüstü veremezsiniz ya da 21 lira nakit çıktı yapamazsınız. |
95 | ERR_DAILY_RCPT_COUNT | Günlük fiş limiti aşıldı Z raporu almalısınız yoksa yeni fiş başlatamazsınız. |
96 | ERR_DAILY_TOTAL_LIMIT | Günlük TOTAL limiti aşıldı Z raporu almalısınız, yeni fiş başlatılamaz. |
97 | ERR_ECR_NONFISCAL | ÖKC mali değil Mali işlem yapmak için ÖKC mali konuma alınmalıdır. |
--- | --- | --- --- |
111 | ERR_LINE_LEN | Satır uzunluğu fazla Parametrelerinizi kontrol ediniz. |
112 | ERR_INVALID_VATRATE | Geçersiz KDV oranı Geçerli KDV oranı tanımla |
113 | ERR_INVALID_DEPTNO | Geçersiz kısım Kısım tanımla |
114 | ERR_INVALID_PLUNO | Geçersiz PLU numarası PLU tanımla |
115 | ERR_INVALID_NAME | Geçersiz tanım(ürün ismi, PLU ismi, kısım ismi,....) Parametrelerinizi kontrol ediniz |
116 | ERR_INVALID_BARCODE | Geçersiz barkod Parametrelerinizi kontrol ediniz. |
117 | ERR_INVALID_OPTION | Geçersiz seçenek Parametrelerinizi kontrol ediniz. |
119 | ERR_INVALID_QUANTITY | Geçersiz adet Parametrelerinizi kontrol ediniz. |
120 | ERR_INVALID_AMOUNT | Geçersiz tutar Parametrelerinizi kontrol ediniz. |
--- | --- | --- --- |
131 | ERR_BLK_COVER_OPEN | Kapaklar açıldı ÖKC bloklanır, servis çağırınız. |
132 | ERR_BLK_FM_MESH | Mali bellek mesh zarar gördü ÖKC bloklanır, servis çağırılmalı. |
133 | ERR_BLK_HUB_MESH | HUB mesh zarar gördü ÖKC bloklanır, servis çağırılmalı. |
134 | ERR_BLK_Z_REQUIRED | Z Raporu Alınmalı(24 Saat) ÖKC Z raporu almak için onayınızı bekler, ClearError çağrılmalıdır. |
135 | ERR_BLK_EJ_INVALID | Geçersiz EKÜ *EKÜ tak ve ÖKC yi yeniden başlat. * |
136 | ERR_BLK_NOT\ _LOAD_CERTIFICATE | Sertifikalar yüklenemedi. ÖKC bloklanır, servis çağırınız. |
137 | ERR_BLK_DT | Tarih Zaman ayarlanmalı ÖKC bloklanır, servis çağırınız. |
138 | ERR_BLK_DAILY_FISCAL | Günlük ile mali bellek uyuşmazlığı ÖKC bloklanır servis çağırınız. |
139 | ERR_BLK_DB | Veritabanı hatası ÖKC bloklanır servis çağırınız. |
140 | ERR_BLK_LOG | Log hatası ÖKC bloklanır servis çağırınız |
141 | ERR_BLK_SRAM | SRAM hatası ÖKC bloklanır servis çağırınız. |
142 | ERR_BLK_CERT_MISMATCH | Sertifika uyuşmazlığı ÖKC bloklanır servis çağırınız |
143 | ERR_BLK_VERSION | Versiyon hatası ÖKC bloklanır servis çağırınız. |
144 | ERR_BLK_DAILY_LOG_OVER | Günlük log limiti aşıldı ÖKC bloklanır servis çağırınız |
145 | ERR_BLK_RESTART_ECR | Yeniden başlat ECR Güç kapanıp açılır |
146 | ERR_BLK_LOCK_SIGN_IN | Hatalı şifre giriş hakkı doldu *24 saat geçmesini bekelyiniz ve ya başka bir kasiyer ile deneyiniz * |
148 | ERR_BLK_RETRY_TO_ CONNECT_RAD | GİB Sunucularına bağlanamıyor, tekrar deneyiniz ÖKC ethernet bağlantınızı kontrol ediniz ve ClearError komutunu çağırınız. |
170 | ERR_EFT_NOT_CONNECT | Bağlı EFT cihazı bulunmamaktaır. EFT-POS cihazı ile olan bağlantınızı kontrol ediniz, bağlı cihazınız yok ise servis menüsünden cihaz eşleyiniz. |
171 | ERR_EFT_INVALID_STATE | Geçersiz EFT-POS cihaz durumu EFT-POS cihazınızın durumunu kontrol ediniz ve tekrar deneyiniz |
172 | ERR_EFT_INCORRECT_CARD | Geçersiz kart Kullanılan kart EFT-POS tarafında desteklenmemektedir |
173 | ERR_EFT_DIFFERENT_AMOUNT | Farklı tutar desteklenmıyor Kart bilgisi aldıysanız farklı bir tutar girişi yapamazsınız. |
174 | ERR_EFT_NO_PROVISION | Provizyon yok Banka provizyon vermemiştir işleme |
175 | ERR_EFT_UNSUPPORTED _INSTALLMENT | Desteklenmeyen taksit Farklı bir taksit değeri giriniz |
176 | ERR_EFT_VOID_FAIL | EFT ödeme iptali başarısız Ödeme iptal edilemeiyor |
Note: Hata kodu 0 (sıfır) ise işlem başarılıdır.
DURUM KODLARI
Durum Kodu | Enum Değer | Açıklama | Operasyonlar |
---|---|---|---|
1 | ST_IDLE | ÖKC üzerinde satış yoktur | Belge Başlat, Rapor Al, Nakit girdi-çıktı, Programlama, Servis Operasyonları, Kasiyer giriş-çıkış |
2 | ST_SELLING | Satış konumunda | Satış, İndirim/arttırım, Satış iptal, Belge İptal, Ödeme. |
3 | ST_SUBTOTAL | Aratoplam hesaplandı | Aratoplam İndirim/Arttırım, Belge İptal, Ödeme |
4 | ST_PAYMENT | Ödeme Bekleniyor (Satış yapılamaz) | Ödeme, Ödeme İptal |
5 | ST_OPEN_SALE | Ödeme tamamlandı. Belge kapatılmalı. | Yorum satırı ekle, Belge Kapat |
6 | ST_INFO_RCPT | Bilgi Fişi alınıyor | Yorum satırı ekle, mali olmayan belge kapat |
7 | ST_CUSTOM_RCPT | Custom Belge | Yorum satırı yazdır, Mali olmayan belge kapat. |
8 | ST_IN_SERVICE | Kasa servis konumunda | Servis operasyonları, Servis çıkış |
9 | ST_SRV_REQUIRED | Servis gerekli | Servis girişi |
10 | ST_LOGIN | Kasiyer girişi | Kasiyer giriş |
11 | ST_NONFISCAL | ÖKC mali değil (Ör: EKÜ raporları alınamaz) | Mali olmayan belge başlat, mali olmayan rapor al, Programlama |
12 | ST_ON_PWR_RCOVR | İptal için bekleyen belge var | Belge iptal |
13 | ST_INVOICE | Fatura | Satış, Ödeme, Belge iptal |
14 | ST_CONFIRM_REQUIRED | ÖKC onay için bekliyor | ClearError() |
KÜTÜPHANE FONKSİYONLARI
Kütüphanelerde yer alan methodları işlevlerine göre 5 ana başlık altında toplayabiliriz.
- Programlama Fonksiyonları
- Satış Fonksiyonları
- Rapor Fonksiyonları
- Yardımcı Fonksiyonlar
- Kütüphane Özelikleri
YNÖKC üzerinde satış işlemlerine başlayabilmek adına, öncesinde bazı zorunlu ya da mükellefe göre değişen ayarları ayarlamanız gerekir. Bunun için öncelikle programlama yetkisi bulunan kasiyer ile giriş yapılmalıdır. Aksi halde hata kodu 91, "Kasiyer Yetkisi Yetersiz" hatası alınacaktır.
Ayarlara göre sağlamanız gereken durumlar olabilir. YNÖKC sizi bu durumlarda uyaracaktır. Örneğin; Üzerinde satış bulunan departman(kısım) bilgisini değiştirmeden önce sizi Z raporu almaya zorlayacaktır.
Öncelikli programlanması gereken ayarları Logo bilgileri, KDV bilgileri, Departman(kısım) bilgileri, PLU bilgileri(eğer kısım satışı yapılmayacak ise), kredi bilgileri, döviz bilgileri, ana/alt kategori bilgileri, kasiyer bilgileri, grafik logo bilgileri, fiş sonu bilgileri şeklinde sıralayabiliriz.
Programlama sırasında sık karşılaşılabilecek hatalar aşağıdaki şekildedir.
Hata Kodu | Enum Değer | Açıklama |
---|---|---|
3 | ERR_INVALID_STATE | Uygun olmayan YNÖKC durumu |
5 | ERR_INVALID_PRM | Geçersiz Parametre |
91 | ERR_CASHIER_AUTH | Kasiyer yetkisi yetersiz |
YNÖKC üzerindeki logo satırlarını set eder. Logo alanı 6 satırdan oluşmaktadır.
NOT: 6. yani son satır sadece nümerik (0-9) karakterlerden oluşmalıdır. Vergi kimlik numarası gibi.
Parametreler:
parametre adı | tanım | data tipi |
---|---|---|
index | logo indeks değeri | Int(0-5) |
line | logo satırı | String(FT202 ve Vx675 modelleri için 32, FP300 modeli için maksimum 48 karakter) |
Dönüş Değerleri:
<HataKodu>|<Durumkodu>|<LogoSatırı>
YNÖKC üzerinde kayıtlı bulunan logo satırlarını getirir.
Parametreler:
parametre adı | tanım | data tipi |
---|---|---|
index | logo indeks değeri | Int(0-5) |
Dönüş Değerleri:
<HataKodu>|<Durumkodu>|<LogoSatırı>
YNÖKC üzerinde KDV oranlarını set eder. maksimum 8 adet KDV değeri tanımlanabilir.
NOT: Kullanılmayan KDV indekslerini geçersiz olarak tanımlamak için vatRate değeri -1 olarak gönderilebilir. Ayrıca iki farklı indekse aynı KDV değeri tanımlanamaz. Bir değer sadece bir KDV indeksine tanımlanabilir.
Parametreler:
parametre adı | tanım | data tipi |
---|---|---|
index | KDV indeksi | Int(0-7) |
vatRate | KDV değeri | decimal(0-99) |
Dönüş Değerleri:
<HataKodu>|<DurumKodu>|<KDVDeğeri>
Bir önceki metod ile aynı özelliklere sahiptir, tek farkı decimal olan parametre yerine int değer alan parametre yer almaktadır.
YNÖKC üzerinde tanımlı KDV değerlerini getirir.
Parametreler:
parametre adı | tanım | data tipi |
---|---|---|
index | KDV indeksi | Int(0-7) |
Dönüş Değerleri:
<HataKodu>|<DurumKodu>|<KDVDeğeri>
YNÖKC üzerindeki departman değerleri set edilir. Bazı kesimlerde "kısım" olarak da tanımlanır. YNÖKC'ler satışları direkt olarak KDV değerlerinden satmanıza izin vermez. KDV değerleri departmanlara bağlanır ya da tanımlanır diyebiliriz. Her KDV değeri bir departmana tanımlanmak zorunda değildir fakat her departmanın tanımlı bir KDV değeri olmalıdır. Ayrıca birden fazla departman aynı KDV değerine de tanımlanabilir.
Parametreler:
parametre adı | tanım | data tipi |
---|---|---|
id | departman ID numarası | Int(1-8) |
name | departman ismi | String(20) |
vatId | departman KDV grup ID | Int(1-8) |
price | fiyat | Decimal Max(999.999,99) |
weighable | tartılabilirlik | Int (0 -> tartılamaz, 1 -> tartılabilir) |
Dönüş Değerleri:
<HataKodu>|<DurumKodu>|<DepartmanAdı>|<KDVGrupID>|<Fiyat>|<Tartılabilirlik>
Olası Hatalar:
Hata Kodu | Enum Değer | Açıklama |
---|---|---|
71 | ERR_VAT_NOT_DEFINED | Tanımsız KDV. Departmana tanımlanan KDV grubunda tanımlı bir KDV değeri bulunmamaktadır. |
92 | ERR_HAS_SALE | Departman üzerinde satış bulunmaktadır. Bu yüzden departman değerleri değiştirilemez. Değiştirmek için Z raporu alınmalıdır. |
113 | ERR_INVALID_DEPTNO | Geçersiz departman numarası |
115 | ERR_INVALID_NAME | Geçersiz departman adı |
Bir önceki metod ile aynı özelliklere sahiptir, tek farkı decimal olan parametre yerine int değer alan parametre yer almaktadır.
1.6. string SetDepartment (int id, string name, int vatId, decimal price, int weighable, decimal limit)
Bir önceki method ile aynı özelliklere sahiptir. Sadece bir parametre fazla almaktadır. limit parametresi departman üzerinden yapılabilecek maksimum satış tutarını belirlemek için kullanılır. Örnek olarak, departmana ait ürün birim fiyatı 50, siz de departman limitini 500 olarak set ettiniz ise o üründen maksimum 10 adet satabilirsiniz.
Parametreler:
parametre adı | tanım | data tipi |
---|---|---|
id | departman ID numarası | Int(1-8) |
name | departman adı | String(20) |
vatId | departman KDV grup ID | Int(1-8) |
price | fiyat | Decimal Max(999.999,99) |
weighable | tartılabilirlik | Int (0 -> tartılamaz, 1 -> tartılabilir) |
limit | departman limit değeri | Decimal (999.999,99) |
Dönüş Değerleri:
<HataKodu>|<DurumKodu>|<DepartmanAdı>|<KDVGrupID>|<Fiyat>|<Tartılabilirlik>|<Limit>
Olası Hatalar:
Hata Kodu | Enum Değer | Açıklama |
---|---|---|
71 | ERR_VAT_NOT_DEFINED | Tanımsız KDV. Departmana tanımlanan KDV grubunda tanımlı bir KDV değeri bulunmamaktadır. |
92 | ERR_HAS_SALE | Departman üzerinde satış bulunmaktadır. Bu yüzden departman değerleri değiştirilemez. Değiştirmek için Z raporu alınmalıdır. |
113 | ERR_INVALID_DEPTNO | Geçersiz departman numarası |
115 | ERR_INVALID_NAME | Geçersiz departman adı |
Bir önceki metod ile aynı özelliklere sahiptir, tek farkı decimal olan parametre yerine int değer alan parametre yer almaktadır.
YNÖKC üzerinde tanımlı departman bilgilerin getirilmesini sağlar.
Parametreler:
parametre adı | tanım | data tipi |
---|---|---|
deptId | Bilgileri getirilicek departman id değeri | Int(1-8) |
Dönüş Değerleri :
<HataKodu>|<DurumKodu>|<DepartmanAdı>|<KDVGrupID>|<Fiyat>|<Tartılabilirlik>|<Limit>
Olası Hatalar:
Hata Kodu | Enum Değer | Açıklama |
---|---|---|
113 | ERR_INVALID_DEPTNO | Geçersiz departman id değeri |
YNÖKC üzerinde kredi bilgilerini kaydetmek için kullanılır. Kredili ödemeler genelde YNÖKC'lere bağlı olmayan EFT-POS cihazlarından alınan ödemelerden sonra ve hediye, ticket gibi ödemelerde kullanılır.
NOT: FT202 ve FP300 modellerinde maksmum 8 adet, Vx675 modelinde ise maksimum 4 adet kredi bilgisi tanımlanabilir.
Parametreler:
parametre adı | tanım | data tipi |
---|---|---|
id | kredi ID numarası | FP300,FT202: Int(0-7), Vx675: Int(0-3) |
name | kredi adı | String(15) |
Dönüş Değerleri:
<HataKodu>|<DurumKodu>|<KrediAdı>
Olası Hatalar:
Hata Kodu | Enum Değer | Açıklama |
---|---|---|
92 | ERR_HAS_SALE | Kredi üzerinden ödemesi alınmış satış bulunmaktadır. Z raporu alınmalıdır. |
115 | ERR_INVALID_NAME | Geçersiz kredi ismi |
YNÖKC üzerinde kayıtlı kredi bilgilerini getirmek için kullanılır.
Parametreler:
parametre adı | tanım | data tipi |
---|---|---|
id | kredi ID numarası | FP300,FT202: Int(0-7), Vx675: Int(0-3) |
Dönüş Değerleri:
<HataKodu>|<DurumKodu>|<KrediAdı>
YNÖKC üzerinde tanımlı döviz bilgilerini kaydetmek için kullanılır.
NOT: Maksimum 4 adet döviz bilgisi tanımlanabilir.
Parametreler:
parametre adı | tanım | data tipi |
---|---|---|
id | döviz ID numarası | Int(0-3) |
name | döviz adı | String(15) |
exchangeRate | döviz kuru | Decimal(999.999,99) |
Dönüş Değerleri:
<HataKodu>|<DurumKodu>|<DövizAdı>|<DövizKuru>
Olası Hatalar:
Hata Kodu | Enum Değer | Açıklama |
---|---|---|
92 | ERR_HAS_SALE | Ödeme bilgisi üzerinde satş vardır. Değişiklik yapmak için Z raporu alınması gerekir. |
115 | ERR_INVALID_NAME | Geçersiz isim |
120 | ERR_INVALID_AMOUNT | Geçersiz tutar bilgisi |
Bir önceki metod ile aynı özelliklere sahiptir, tek farkı decimal olan parametre yerine int değer alan parametre yer almaktadır.
YNÖKC üzerinde tanımlı döviz bilgilerini getirmek için kullanılır.
Parametreler:
parametre adı | tanım | data tipi |
---|---|---|
id | döviz ID numarası | Int(0-3) |
Dönüş Değerleri :
<HataKodu>|<DurumKodu>|<DövizAdı>|<DövizKuru>
YNÖKC üzerinde kasiyer bilgilerini kaydetmek için kullanılır.
Parametreler:
parametre adı | tanım | data tipi |
---|---|---|
cashierId | kasiyer ID numarası | Int(1-9) |
cashierName | kasiyer adı | String(15) |
cashierPass | kasiyer şifresi | String(6) |
Dönüş Değerleri:
<HataKodu>|<DurumKodu>|<KasiyerAdı>
Errors:
Hata Kodu | Enum Değer | Açıklama |
---|---|---|
115 | ERR_INVALID_NAME | Geçersiz kasiyer ismi |
YNÖKC üzerinde tanımlı kasiyer bilgisini getirir.
Parametreler:
parametre adı | tanım | data tipi |
---|---|---|
cashierId | kasiyer ID numarası | Int(1-9) |
Dönüş Değerleri:
<HataKodu>|<DurumKodu>|<KasiyerAdı>
1.14. string SaveProduct (int pluNo, string productName, int deptId, decimal price, int weighable, string barcode, int subCatId)
YNÖKC üzerine ürün bilgisi kaydetmek için kullanılır.
Parametreler:
parametre adı | tanım | data tipi |
---|---|---|
pluNo | ürün ID numarası | Int(1-200000) |
productName | ürün ismi | String(20) |
deptId | departman ID numarası | Int(1-8) |
price | ürün fiyatı | Decimal(999.999,99) |
weighable | tartılabilirlik (1 veya 0) | 0,1 |
barcode | ürün barkod bilgisi | String(15) |
subCatId | alt kategori ID numarası | Int(1-250) |
Dönüş Değerleri:
<HataKodu>|<DurumKodu>|<DepartmanAdı>|<DepartmanID>|<Fiyat>|<Tartılabilirlik>|<Barkod>|<AltKategori>
Olası Hatalar:
Hata Kodu | Enum Değer | Açıklama |
---|---|---|
72 | ERR_SECTION_NOT_DEFINED | Tanımsız departman |
92 | ERR_HAS_SALE | Değiştirilmek istenen ürün üzerinde satış bulunmaktadır. Değiştirmek için Z raporu alınmalıdır. |
113 | ERR_INVALID_DEPTNO | Geçersiz departman numarası |
114 | ERR_INVALID_PLUNO | Geçersiz ürün numarası |
115 | ERR_INVALID_NAME | Geçersiz ürün adı |
116 | ERR_INVALID_BARCODE | Geçersiz barkod bilgisi |
1.14.1. string SaveProduct(int productId, string productName, int deptId, int price,int weighable, string barcode, int subCatId)
Bir önceki metod ile aynı özelliklere sahiptir, tek farkı decimal olan parametre yerine int değer alan parametre yer almaktadır.
YNÖKC üzerinde ilgili numaraya tanımli ürün bilgisini getirmek için kullanılır.
Parametreler :
parametre adı | tanım | data tipi |
---|---|---|
pluNo | ürün id numarası | Int(1-200000) |
Dönüş Değerleri:
<HataKodu>|<DurumKodu>|<DepartmanAdı>|<DepartmanID>|<Fiyat>|<Tartılabilirlik>|<Barkod>|<AltKategoriID>
Olası Hatalar:
Hata Kodu | Enum Değer | Açıklama |
---|---|---|
114 | ERR_INVALID_PLUNO | Geçersiz PLU numarası |
YNÖKC üzerine bitmap grafik logo yüklemek için kullanılır.
Parametreler:
parametre adı | tanım | data tipi |
---|---|---|
imageObject | yüklenecek grafik logo | Monochrome bitmap(Width:570px, Height:120px) |
Dönüş Değerleri:
<HataKodu>|<DurumKodu>
Olası Hatalar:
Hata Kodu | Enum Değer | Açıklama |
---|---|---|
6 | ERR_OPERATION_FAILED | Grafik logo yükleme işlemi başarısız. (Geçersiz grafik logo format olabilir) |
YNÖKC üzerinde bazı ayarların set edilme işlemleri bu method ile yapılır.
Parametreler:
parametre adı | tanım | data tipi |
---|---|---|
progName | YNÖKC ayarları | enum değerler: 0 : Kağıt Kesici 1 : EFT ile ödeme 2 : Fiş Limiti 3 : Grafik Logo 4 : Fiş Barkodu 5 : EFT Yönetimi |
progValue | programlanan değer | Int |
- Kağıt Kesici için; 0 değeri kapalı, 1 değeri açık
- EFT ile Ödeme için; 0 değeri kapalı, 1 değeri açık
- Fiş Limiti değeri için decimal(double) değer verilir. Ör: 900,00 veya 850,45 gibi
- Grafik Logo için; 0 değeri kapalı, 1 değeri açık
- Fiş barkodu için; 0 değeri kapalı, 1 değeri açık
- EFT yönetimi için; 0 ise YNÖKC tarafında yapılır, 1 ise EFT-POS tarafında yapılır.
Dönüş Değerleri :
<HataKodu>|<DurumKodu>|<ProgramlananDeğer>
Olası Hatalar:
Hata Kodu | Enum Değer | Açıklama |
---|---|---|
117 | ERR_INVALID_OPTION | İşlem başarısız |
YNÖKC üzerinde tanımlı ayarları getirir.
Parametreler:
parametre adı | tanım | data tipi |
---|---|---|
progName | YNÖKC ayarları | enum değerler: 0 : Kağıt Kesici 1: Pay with EFT 2 : Receipt Limit 3 : Graphic Logo 4 : Receipt Barcode 5 : EFT Yönetimi |
Dönüş Değerleri:
<HataKodu>|<DurumKodu>|<ProgramlananDeger>
YNÖKC üzerinde tanımlı fiş sonu notlarını verilen indeks değerine göre getirir.
NOT: Maksimum 6 satır fiş sonu notu tanımlanabilir.
Parametreler:
parametre adı | tanım | data tipi |
---|---|---|
index | satır indeksi | int(1-6) |
Dönüş Değerleri:
<HataKodu>|<DurumKodu>|<SatırIcerigi>
YNÖKC üzerinde fiş sonu notu tanımlamak için kullanılır.
Parametreler:
parametre adı | tanım | data tipi |
---|---|---|
index | satır indeksi | int(1-6) |
line | satır içeriği | string(FP300 için 48, FT202 ve Vx675 için maksimum 32 karakter) |
Dönüş Değerleri:
<HataKodu>|<DurumKodu>|<SatırIcerigi>
YNÖKC üzerinde fiş belgesini başlatır
Dönüş Değerleri:
<HataKodu>|<DurumKodu>|<FişNo>
Olası Hatalar:
Hata Kodu | Enum Değer | Açıklama |
---|---|---|
3 | ERR_INVALID_STATE | Geçersiz ÖKC durumu (ÖKC yeni belge başlatılabilir, IDLE konumda olmalıdır.) |
20 | ERR_FM_CLOSED | Mali bellek kapalı ya da takılı değil |
91 | ERR_CASHIER_AUTH | Belge başlatmak için yetersiz kasiyer yetkisi |
38 | ERR_EJ_FULL | EKÜ dolu |
95 | ERR_DAILY_RCPT_COUNT | Günlük fiş limiti aşıldı |
Bilgi fişlerini başlatmak için kullanılır.
Kullanıcılar aşağıdaki sebeplerden ötürü bilgi fişi kullanmaya ihtiyaç duyabilirler;
- Eğer fiş toplamı fiş limitini aşarsa, belge tipi fatura, e-fatura ya da e-arşiv olmalıdır..Türkiye'deki güncel fiş limiti 1000,00 TL'dir.
- Eğer müşteri fatura isterse ve müşteri e-fatura mükellefi ise kasiyer e-fatura düzenlemek zorundadır.
- Müşteriler fatura yerine E-arşiv isteyebilirler.
- Eğer müşteri yemek kartı ile ödeme yapmak isterse, yemek bilgi fişi başlatılmak zorundadır. Yemek fişinde sadece yemek grubu için belirlenen standart KDV değeri yer alır. Bu ödeme yemek restaurantlarında geçerlidir.
- Otoparklar otopark bilgi fişi başlatmalıdır.
- Eğer müşteri alışverişten önce ödeme yapmak isterse Avans bilgi fişi başlatılmalıdır.
Belge Tipleri:
- Fatura: Uygulama yazılımı tarafından hazırlanır. YNÖKC üzerinden bilgi fişi basılır. Fatura yazıcısından fatura yazdırılır.
- E-Fatura : Elektronik faturadır. Mükellef firmalar için düzenlenir.
- E-Arşiv : Elektronik faturalardır. E-Fatura mükellefi olmayanlar için düzenlenir.
- Yemek Fişi : Yemek kartı ile ödeme almak için düzenlenir.
- Otopark Fişi : Otoparklar kullanır.
- Avans Fişi : Müşteri avans ödemesi yapar
NOT: TCKN 11 krakterden VKN ise 10 karakterden oluşur. Uymayan durumlarda parametre hatası alınır.
Parametreler:
parametre adı | tanım | data tipi |
---|---|---|
tckn_vkn | Müşteri TCKN ya da VKN si (Fatura, E-Fatura ve E-Arşiv için zorunludur) | String(11 veya 10) |
amount | Bilgi fişi tutarı (4,5,6 belge tipleri için zorunludur) | Decimal(999.999,99) |
docType | belge tipi | Int(1-6) |
Dönüş Değerleri:
<HataKodu>|<DurumKodu>|<BelgeNo>
Olası Hatalar:
Hata Kodu | Enum Değer | Açıklama |
---|---|---|
3 | ERR_INVALID_STATE | Geçersiz ÖKC durumu, Belge başlatılabilir, IDLE konumda olmalıdır |
20 | ERR_FM_CLOSED | Mali bellek kapalı |
91 | ERR_CASHIER_AUTH | Kasiyer Yetkisi yetersiz |
38 | ERR_EJ_FULL | EKÜ dolu |
95 | ERR_DAILY_RCPT_COUNT | Günlük fiş limiti aşılmış |
Bir önceki metod ile aynı özelliklere sahiptir, tek farkı decimal olan parametre yerine int değer alan parametre yer almaktadır.
2.3. string PrintDocumentHeader (int docType, string tckn_vkn, string docSerial, DateTime docDateTime)
Fatura, e-fatura, e-arşiv belgelerini başlatmak için kullanılır.
Parametreler:
parametre adı | tanım | data tipi |
---|---|---|
tckn_vkn | müşteri TCKN veya VKN numarası | String(11) |
docType | belge tipi | Int(1-6) |
docSerial | belge seri | string(11) |
docDateTime | düzenleme tarihi | DateTime |
Belge Tipleri:
- Fatura: Satış uygulaması hazırlar
- E-Invoce : Elektronik fatura, e-fatura mükellefleri için düzenlenir
- E-Archive : Elektronik arşiv, e-fatura mükellefi olmayanlar için düzenlenir.
Dönüş Değerleri:
<HataKodu>|<DurumKodu>|<BelgeNo>
Olası Hatalar:
Hata Kodu | Enum Değer | Açıklama |
---|---|---|
5 | ERR_INVALID_PRM | Geçersiz parametre, parametreleri kontrol ediniz |
71 | ERR_VAT_NOT_DEFINED | Tanımsız KDV, tanımlı KDV kullanınız |
95 | ERR_DAILY_RCPT_COUNT | Günlük fiş limiti aşıldı |
Avans bilgi fişi başlatır.
Parametreler:
parametre adı | tanım | data tipi |
---|---|---|
tckn | müşteri TCKN veya VKN | String(11) |
name | müşteri adı | String(22) |
amount | avans tutarı | decimal(999.999,99) |
Dönüş Değerleri:
<HataKodu>|<DurumKodu>|<BelgeNo>
Olası Hatalar:
Hata Kodu | Enum Değer | Açıklama |
---|---|---|
5 | ERR_INVALID_PRM | Geçersiz parametre, parametreleri kontrol ediniz |
71 | ERR_VAT_NOT_DEFINED | Tanımsız KDV, tanımlı KDV kullanınız |
95 | ERR_DAILY_RCPT_COUNT | Günlük fiş limiti aşıldı |
Bir önceki metod ile aynı özelliklere sahiptir, tek farkı decimal olan parametre yerine int değer alan parametre yer almaktadır.
2.5. string PrintCollectionDocumentHeader (string invoiceSerial, DateTime invoiceDate, decimal amount, string subscriberNo, string institutionName, decimal comissionAmount)
Fatura tahsilat bilgi fişi yazdırır.
parametre adı | tanım | data tipi |
---|---|---|
invoiceSerial | fatura seri numarası (alfa-nümerik) ÖR: AA123456 | string(11) |
invoiceDate | düzenleme tarihi | Datetime |
amount | ödenecek tutar | Decimal(999.999,99) |
subscriberNo | abone numarası | string(15) |
instutionName | kurum adı | string(22) |
comissionAmount | komisyon tutarı | Decimal(9.999,99) |
Dönüş Değerleri:
<HataKodu>|<DurumKodu>|<BelgeNo>
Olası Hatalar:
Hata Kodu | Enum Değer | Açıklama |
---|---|---|
5 | ERR_INVALID_PRM | Geçersiz parametre |
71 | ERR_VAT_NOT_DEFINED | Tanımsız KDV |
95 | ERR_DAILY_RCPT_COUNT | Günlük fiş limiti aşıldı |
2.5.1. string PrintCollectionDocumentHeader(string invoiceSerial, DateTime invoiceDate, int amount, string subscriberNo, string institutionName, int comissionAmount)
Yemek bilgi fişini başlatır.
Dönüş Değerleri:
<HataKodu>|<DurumKodu>|<BelgeNo>
Olası Hatalar:
Hata Kodu | Enum Değer | Açıklama |
---|---|---|
71 | ERR_VAT_NOT_DEFINED | Tanımsız KDV |
95 | ERR_DAILY_RCPT_COUNT | Günlük fiş limiti aşıldı |
Otopark bilgi fişi başlatır.
Parametreler:
parametre adı | tanım | data tipi |
---|---|---|
plate | araç plakası | string(11) |
entranceDate | giriş tarih/zaman | DateTime |
Dönüş Değerleri:
<HataKodu>|<DurumKodu>|<BelgeNo>
Olası Hatalar:
Hata Kodu | Enum Değer | Açıklama |
---|---|---|
5 | ERR_INVALID_PRM | Geçersiz parametre, parametrelerinizi kontrol ediniz |
95 | ERR_DAILY_RCPT_COUNT | Günlük fiş limiti aşıldı |
2.8. PrintItem (int PLUNo, decimal quantity, decimal amount, string name, string barcode, int deptId, int weighable)
Satış ürününü yazdırır.
NOT: "deptId", "amount", "name", "weighable" parametreleri eğer PLU satışı yapacaksanız gereksizdir. (Eğer PLU daha önceden kaydedilmiş ise). Bu parametreler için "-1" değeri gönderebilirsiniz. (name->null). Bu sayede kütüphane YNÖKC cihazına bu parametreleri göndermeyecektir. Ayrıca bu fonksiyon ile, YNÖKC programlanabilir modda ise (programlama yetkisine sahip kasiyer girişi mevcutsa) satış ile birlikte PLU kaydı da yapabilirsiniz.
Parametreler:
parametre adı | tanım | data tipi |
---|---|---|
PLUno | ürün PLU nuamrası | Int (1-200000) |
quantity | miktar/adet | Decimal(999,99) |
amount | ürün fiyatı | Decimal(999999,99) |
name | ürün adı | String(20) |
barcode | ürün barkod bilgisi | String(15) |
deptId | ürünün ait olduğu departman ID | Int(1-8) |
weighable | tartılabilirlik | Int(0-1) |
Dönüş Değerleri:
<HataKodu>|<DurumKodu>|<Aratoplam>
Olası Hatalar:
Hata Kodu | Enum Değer | Açıklama |
---|---|---|
3 | ERR_INVALID_STATE | Geçersiz YNÖKC durumu, cihaz satış konumunda olmalıdır |
51 | ERR_RCPT_TOTAL_LIMIT | Fiş Tutar Limiti aşımı |
52 | ERR_RCPT_SALE_COUNT | Satış kalem aşımı hatası (Maksimum 128 kalem satış yapılabilir) |
53 | ERR_INVALID_SALE | Geçersiz satış |
59 | ERR_DAILY_PLU_LIMIT | Günlük PLU satışı aşımı |
72 | ERR_SECTION_NOT_DEFINED | Tanımsız departman |
2.8.1. string PrintItem(int PLUNo, int quantity, int amount, string name, string barcode, int deptId, int weighable)
Bir önceki metod ile aynı özelliklere sahiptir, tek farkı decimal olan parametre yerine int değer alan parametre yer almaktadır.
2.9. string PrintDepartment (int deptId, decimal quantity, decimal amount, string name, int weighable)
Ürün satışını yazdırır. Satışı departman üzerinden yapar. PLU kullanmaz. PLU satışına göre daha hızlı ve efektif bir çözüm sunar.
Parametreler:
parametre adı | tanım | data tipi |
---|---|---|
deptId | departman ID | int(1-8) |
quantity | miktar/adet | decimal(999,99) |
amount | tutar | decimal(999999,99) |
name | ürün adı | string(20) |
weighable | tartılabilirlik, opsiyonel | int(0-1) |
Dönüş Değerleri:
<HataKodu>|<DurumKodu>|<Aratoplam>
Olası Hatalar:
Hata Kodu | Enum Değer | Açıklama |
---|---|---|
3 | ERR_INVALID_STATE | Uygun olmayan ÖKC durumu, ÖKC satış durumunda olmalıdır. |
51 | ERR_RCPT_TOTAL_LIMIT | Fiş toplamı aşıldı hatası |
52 | ERR_RCPT_SALE_COUNT | Maksimum Satış kalemi aşıldı |
53 | ERR_INVALID_SALE | Geçersiz satış |
59 | ERR_DAILY_PLU_LIMIT | Günlük PLU satış limiti aşımı |
60 | ERR_OVER_DEPT_LIMIT | Departman limiti aşıldı |
72 | ERR_SECTION_NOT_DEFINED | Tanımsız departman |
73 | ERR_PLU_NOT_DEFINED | Tanımsız PLU |
96 | ERR_DAILY_TOTAL_LIMIT | günlük toplam limiti aşımı |
119 | ERR_INVALID_QUANTITY | geçersiz miktar |
120 | ERR_INVALID_AMOUNT | geçersiz tutar |
Bir önceki metod ile aynı özelliklere sahiptir, tek farkı decimal olan parametre yerine int değer alan parametre yer almaktadır.
Satışı yapılan son ürüne indirim/arttırım uygular, indirim/arttırım satırını yazdırır. Son işlem ürün satışı ya da aratoplam olmalıdır. Son işlem ürün satışı ise sadece o ürüne uygulanır, aratoplam ise belge toplamına uygulanır.
Parametreler:
parametre adı | tanım | data tipi |
---|---|---|
adjustmentType | indirim/arttırım türü | 0 : tutar arttırım 1 : yüzde arttırım 2 : tutar indirim 3: yüzde indirim |
amount | eğer tutar indirim ya da tutar arttırım ise işlemin tutarı | Decimal(999999,98) |
percentage | eğer yüzde indirim ya da yüzde arttırım ise yüzde miktarı | Int(1-99) |
Dönüş Değerleri:
<HataKodu>|<DurumKodu>|<Aratoplam>
Olası Hatalar:
Hata Kodu | Enum Değer | Açıklama |
---|---|---|
3 | ERR_INVALID_STATE | Uygunsuz ÖKC durumu, belge başlatılmış olup satış ya da aratoplam durumlarında olmalıdır |
56 | ERR_INVALID_ADJ | geçersiz indirim/arttırım, parametrelerinizi kontrol ediniz |
52 | ERR_RCPT_SALE_COUNT | satış kalemi aşıldı |
51 | ERR_RCPT_TOTAL_LIMIT | belge toplamı aşıldı |
96 | ERR_DAILY_TOTAL_LIMIT | günlük toplam aşıldı |
Bir önceki metod ile aynı özelliklere sahiptir, tek farkı decimal olan parametre yerine int değer alan parametre yer almaktadır.
Son yapılan işlemi geri alır (satış, indirim, arttırım..)
Dönüş Değerleri:
<HataKodu>|<DurumKodu>|<Aratoplam>
Olası Hatalar:
Hata Kodu | Enum Değer | Açıklama |
---|---|---|
3 | ERR_INVALID_STATE | Uygun olmayan ÖKC durumu |
52 | ERR_RCPT_SALE_COUNT | satış kalemi aşıldı |
55 | ERR_INVALID_CORR | Geçersiz düzeltme işlemi |
Belge üzerinde PLU satışı yapılmış bir ürünü verilen miktar kadar iptal eder.
NOT: Ürün birden fazla kalemde yer alıyor ise, son kalemden iptal işlemine başlar.
Parametreler:
parametre adı | tanım | data tipi |
---|---|---|
PLUNo | Ürün PLU numarası | Int(1-200000) |
quantity | miktar | Decimal(999,99) |
Dönüş Değerleri:
<HataKodu>|<DurumKodu>|<Aratoplam>
Olası Hatalar:
Hata Kodu | Enum Değer | Açıklama |
---|---|---|
3 | ERR_INVALID_STATE | Uygunsuz ÖKC durumu |
52 | ERR_RCPT_SALE_COUNT | Satış kalemi aşıldı |
54 | ERR_INVALID_VOID | Geçersiz iptal işlemi |
73 | ERR_PLU_NOT_DEFINED | Tanımsız PLU |
Bir önceki metod ile aynı özelliklere sahiptir, tek farkı decimal olan parametre yerine int değer alan parametre yer almaktadır.
Yapılan departman satışını iptal eder.
Parametreler:
parametre adı | tanım | data tipi |
---|---|---|
deptId | departman ID numarası | int(1-8) |
deptName | departman ismi | string(20) |
quantity | iptal edilecek miktar | decimal(999,99) |
Dönüş Değeri:
<HataKodu>|<DurumKodu>|<Aratoplam>
Bir önceki metod ile aynı özelliklere sahiptir, tek farkı decimal olan parametre yerine int değer alan parametre yer almaktadır.
YNÖKC üzerinde o an açık olan dökümanın aratoplamını yazdırmanızı ya da sadece değerini çekmenizi sağlar.
Parametreler:
parametre adı | tanım | data tipi |
---|---|---|
harcopy | aratoplamı yazdır ya da sadece değerini çek | boolean(true: yazdır) |
Dönüş Değerleri:
<HataKodu>|<DurumKodu>|<Aratoplam>|<ÖdemeToplamı>
Olası Hatalar:
Hata Kodu | Enum Değer | Açıklama |
---|---|---|
3 | ERR_INVALID_STATE | Uygunsuz ÖKC durumu |
Ödeme bilgilerini yazdırır. Eğer parçalı ödeme yapıyorsanız, ödeme tutarları toplamı aratoplama eşit olana kadar bekler. Eşit olunca tüm ödemeleri birlikte yazdırır.
Parametreler:
parametre adı | tanım | data tipi |
---|---|---|
paymentType | ödeme tipi | 0 : Nakit 1 : Kredi 2 : Çek 3: Döviz 5: Yemek Kartı |
index | indeks parametresinin kullanım amacı ödeme tipine göre değişklik gösterir. Nakit ile ödemede kullanılmaz. Kredi ile ödeme de ÖKC üzerinde tanımlı kredi tiplerinin ID sine göre seçiminde kullanılır. Döviz için de aynı şekilde ÖKC üzerinde tanımlı döviz birimlerinin seçiminde kullanılır. Çek ile ödemede ise çek nuamrası gönderilir, fakat zorunlu değildir. | Int |
paidTotal | ödeme tutarı | Decimal(999999,99) |
Dönüş Değerleri:
<HataKodu>|<DurumKodu>|<Aratoplam>|<ÖdenenTutar>
Olası Hatalar:
Hata Kodu | Enum Değer | Açıklama |
---|---|---|
3 | ERR_INVALID_STATE | Uygun olmayan ÖKC durumu |
57 | ERR_INVALID_PAYMENT | Geçersiz ödeme |
58 | ERR_PAYMENT_LIMIT | Ödeme limiti aşıldı |
74 | ERR_CREDIT_NOT_DEFINED | Tanımsız kredi tipi |
75 | ERR_CURRENCY_NOT_DEFINED | Tanımsız döviz |
94 | ERR_NOT_ENOUGH_MONEY | Çekmecede yeterli para yok (paraüstü için) |
Bir önceki metod ile aynı özelliklere sahiptir, tek farkı decimal olan parametre yerine int değer alan parametre yer almaktadır.
Kart bilgisini çekmek için kullanılır. EFT ödemesinden önce kullanılabilir.
Parametreler:
parametre adı | tanım | data tipi |
---|---|---|
amount | sorgulanacak ödeme tutarı | Decimal(999999,99) |
Dönüş Değeri:
<HataKodu>|DurumKodu>|<Hgnccid>|<Hgnccname>|<CardHolderName>|<CardNumber>|<DiscountEnable>
Dönüş Değeri | tanım | data tipi |
---|---|---|
Hgnccid | Kart tipinin HUGIN ID karşılığı | Int(8) |
Hgnccname | Kart ismi WORLD, MAXIMUM, GARANTİ PLAY gibi | String(20) |
CardHolderName | kart sahibinin ismi | String(20) |
CardNumber | BIN | String(16) |
DiscountEnable | Bu kartla ödemeye devam ederken GetEFTAuthorisation çağrıldığında ödeme tutarı farklı olabilir | boolean(true/false) |
Olası Hatalar:
Hata Kodu | Enum Değer | Açıklama |
---|---|---|
3 | ERR_INVALID_STATE | Uygun olmayan ÖKC durumu |
74 | ERR_CREDIT_NOT_DEFINED | Tanımlı olmayan kredi |
172 | ERR_EFT_INCORRECT_CARD | Hatalı kart |
Bağlı olan EFT-POS cihazından ödeme almak için kullanılır. EFT-POS cihazı YNÖKC ile daha önceden eşlenmiş durumda olmalıdır. Ödeme toplamı aratoplama eşit olduğunda EFT ödemesi yazdırılır.
Parametreler:
parametre adı | tanım | data tipi |
---|---|---|
amount | ödeme tutarı | Decimal(999999,99) |
installment | taksit sayısı | Int(99) |
cardNumber | GetCardInfo() ile alınan kart numarasının ilk 6 hanesi, bu alan opsiyoneldir, zorunlu değildir | String(6) |
Dönüş Değerleri:
<HataKodu>|DurumKodu>|<Aratoplam>|<ProvisionID>|<Tutar>|<OnaylananTaksitSayısı>|<AcquirerId>|<BIN>|<IssuerId>|<AltİşlemTipi>|<BatchNo(GrupNo)>|<StanNo(SıraNo)>|<TotalPaidAmount>
Dönüş Değeri | tanım | data tipi |
---|---|---|
Subtotal | Belge aratoplamı | Decimal(999999,99) |
ProvisionID | gerçekleştirilen işlemin banka provision ID | Int |
Amount | EFT tarafından yapılan ödeme miktarı | Decimal(999999,99) |
AppliedInstallment | Ödemede kabul edilen taksit sayısı. Taksit sayısı bazen methodda verilen değerden farklı olabilir çünkü bazı bankalar sadece EFT cihazı üzerinden girilen taksit değerlerini kabul eder. | Int(99) |
AcquirerId | Acquirer bank id | String(3) |
BIN | Kart ilk 6 hanesi | String(6) |
IssuerId | Issuer bank id | String(3) |
AltİşlemTipi | Altişlem tipi oalrak enum değer döner (Sadece Vx675 modelleri için, diğer cihazlarda 0 döner) | Int(3) |
BatchNo | EFT Ödeme batch(grup) numarası | Int(3) |
StanNo | EFT Ödeme standing(sıra) numarası | Int(3) |
TotalPaidAmount | Ödenen toplam tutar | Decimal(999999,99) |
ALT İŞLEM TİPLERİ:
{
SATIS = 1, "Sale"
YBELGE = 10, "New document"
TAKSITLI_SATIS = 04, "Installment sales"
VADE_FARKLI_SATIS = 16, "Maturity different sales "
E_IADE = 20, "return document"
KISMI_IADE = 22,"partial return document"
KONTOR_SATIS = 13, "credits sale"
PUAN_SORGU = 14, "point query"
KK_BORC_ODEME = 05, "credit card debt payment"
PREPAID_NAKIT_YUKLEME = 29, "pre-paid cash load"
PREPAID_KARTLI_YUKLEME = 30, "pre-paid loading with payment card"
CASHBACK = 12, "cash back"
}
Olası Hatalar:
Hata Kodu | Enum Değer | Açıklama |
---|---|---|
3 | ERR_INVALID_STATE | Uygunsuz ÖKC durumu |
57 | ERR_INVALID_PAYMENT | Geçersiz ödeme |
58 | ERR_PAYMENT_LIMIT | Ödeme limiti aşımı |
74 | ERR_CREDIT_NOT_DEFINED | Tanımsız kredi |
EFT-POS tarafından alınmış ödemeyi POS üzerinden iptal eder. Bu method, fiş kapatıldıktan sonra ilgili bilgileri verilen EFT ödemesinin tüm tutarını iptal eder.
Parametreler:
parametre adı | tanım | data tipi |
---|---|---|
acquierID | Kredi kartı ve debit kart ödemelerinde bankayı tanımlayan id değeridir. | |
EFT ödeme iptalinden önce uygulama GetBankListOnEFT() methodunu çağırarak uygun banka id sini kullanmalıdır. | int(9999) | |
batchNo | batch no ya da grup no slip üzerinde yer alır. İptal edilmek istenen ödememnin yer aldığı slipteki bu değer girilmelidir. | int(9999) |
stanNo | stanno ya da sıra no slip üzerinde yer alır. İptal edlmek istenen ödemenin yer aldığı slipteki bu değer girilmelidir. | int(9999) |
Dönüş Değerleri:
<HataKodu>|<DurumKodu>|<Tutar>|<AcquierID>|<IssuerID>|<KartNumarası>
Olası Hatalar:
Hata Kodu | Enum Değer | Açıklama |
---|---|---|
3 | ERR_INVALID_STATE | Uygun olmayan ÖKC durumu |
5 | ERR_INVALID_PRM | Geçersiz parametre, parametrelerinizi kontrol ediniz |
176 | ERR_EFT_VOID_FAIL | Başarısız EFT iptal işlemi |
EFT-POS cihazı üzerinde iade işlemi başlatır. Bu method fiş kapandıktan sonra, miktarsal olarak EFT iade alınmasını sağlar.
Parametreler:
parametre adı | tanım | data tipi |
---|---|---|
acquierID | Kredi kartı ve debit kart ödemelerinde bankayı tanımlayan id değeridir. | |
EFT ödeme iadeden önce uygulama GetBankListOnEFT() methodunu çağırarak uygun banka id sini kullanmalıdır. | int(9999) | |
amount | iade miktarı | decimal(999999,99) |
Dönüş Değerleri:
<HataKodu>|<DurumKodu>|<Tutar>|<AcquierID>|<IssuerID>|<KartNumarası>
Olası Hatalar:
Hata Kodu | Enum Değer | Açıklama |
---|---|---|
3 | ERR_INVALID_STATE | Uygunsuz ÖKC durumu |
5 | ERR_INVALID_PRM | Geçersiz parametre, parametrelerinizi kontrol ediniz |
177 | ERR_EFT_RETURN_FAIL | Başarısız EFT iade işlemi |
EFT slip kopyası almanızı sağlar. Slip Z no - Fiş no ikilisi ya da batch(grup) no - stan(sıra) no ikilisi kullanıalrak çağıralabilir. Acquier ID her iki çağırım için de zorunludur.
Not: Kullanılmayan ikili için 0 (sıfır) değeri gönderebilirsiniz.
Parametreler:
parametre adı | tanım | data tipi |
---|---|---|
acquierID | Banka acquier id nuamrası, banka listesinde yer alan | int(9999) |
batchNo | slip batch(grup) no | int(9999) |
stanNo | slip stan(sıra) no | int(9999) |
zNo | slip Z numarası | int(999) |
receiptNo | slip belge no | int(9999) |
Dönüş Değerleri:
<HataKodu>|<DurumKodu>
Olası Hatalar:
Hata Kodu | Enum Değer | Açıklama |
---|---|---|
3 | ERR_INVALID_STATE | Uygunsuz ÖKC durumu |
5 | ERR_INVALID_PRM | Geçersiz parametre, parametrelerinizi kontrol ediniz |
EFT-POS üzerinde kayıtlı banka listesini getirir. Banka listesinde yer alan banka bilgileri acquier ID ve banka ismi bilgisinden oluşur.
String BankInfo = Banka Acquier ID (4) + Banka İsmi
Dönüş Değerleri:
<HataKodu>|<DurumKodu> |<BankInfo_1>|<BankInfo_2>|<BankInfo_3>|......|<BankInfo_N>
Olası Hatalar:
Hata Kodu | Enum Değer | Açıklama |
---|---|---|
3 | ERR_INVALID_STATE | Uygunsuz ÖKC durumu |
İçinde bulunan satış durumunun bilgilerini getirir.
Dönüş Değerleri:
<HataKodu>|<DurumKodu> |<BelgeNo>|<ZNo>|<BelgeTipi>|<Tarih>|<Zaman>|<Aratoplam>|Ödemeler(<ÖdemeTipi>|<Ödemeİndeksi>|<Tutar>|<Not>)|KDV Bloğu(<KdvOranı>|<Tutar>|<KDVTutarı>)
BELGE TİPLERİ: 0. Z Raporu
- Fiş
- İptal Fişi
- Bilgi Raporu, X Raporu, Departman Satış raporu gibi..
- Mali Rapor
- EKÜ periyodik raporu
- Elektrik kesinitisi sonrası iptal fişi
- Mali olmayan belge
- not in use,
- İptal mali olmayan belge,
- Fatura
- E-Fatura, E-Arşiv
- E-Fatura, E-Arşiv iptali
Olası Hatalar:
Hata Kodu | Enum Değer | Açıklama |
---|---|---|
3 | ERR_INVALID_STATE | Uygunsuz ÖKC durumu |
Ödeme iptal edilmesini sağlar. Dikkat edilmesi gereken nokta ödemelerin yazdırılmamış olması gerektiğidir.
Parametreler:
parametre adı | tanım | data tipi |
---|---|---|
paymentSequenceNo | Gönderilen ödemelerin sıra numarası. İlk gönderilen ödeme sıra numarası 0 dır. | Int(0-8) |
Dönüş Değerleri:
<HataKodu>|<DurumKodu>
Olası Hatalar:
Hata Kodu | Enum Değer | Açıklama |
---|---|---|
3 | ERR_INVALID_STATE | Uygunsuz ÖKC durumu |
54 | ERR_INVALID_VOID | Geçersiz iptal |
176 | ERR_EFT_VOID_FAIL | Geçersiz EFT iptali |
Belgeyi kapatır.
Parametreler:
parametre adı | tanım | data tipi |
---|---|---|
slipCopy | Eğer ödemelerde EFT ödemesi var ise kapatılan belgenin ardına slip kopyasının yazdırılmasını sağlar. | boolean(true; slip kopya yazdır). |
Dönüş Değerleri:
<HataKodu>|<DurumKodu>|<BelgeNo>
Olası Hatalar:
Hata Kodu | Enum Değer | Açıklama |
---|---|---|
3 | ERR_INVALID_STATE | Uygun olmayan ÖKC durumu |
Başlatılmış olan belgeyi iptal eder.
Dönüş Değerleri:
<HataKodu>|<DurumKodu>|<BelgeNo>
Olası Hatalar:
Hata Kodu | Enum Değer | Açıklama |
---|---|---|
3 | ERR_INVALID_STATE | Uygun olmayan ÖKC durumu |
Ödemelerden sonra belgenin footer kısmında barkod yazdırır. Barkod formatı code128 olmalıdır. Bir belge dahilinde sadece bir kez barkod yazdırılabilir. Bu method sadece FP300 modellerinde desteklenir.
Parametreler:
parametre adı | tanım | data tipi |
---|---|---|
barcode | yazdırılacak barkod (code128) | String(17) |
Dönüş Değerleri:
<HataKodu>|<DurumKodu>
Olası Hatalar:
Hata Kodu | Enum Değer | Açıklama |
---|---|---|
3 | ERR_INVALID_STATE | Uygun Olmayan ÖKC durumu |
Not(yorum) satırı yazdırır. ÖKC, SELLING(satış) ya da OPEN_SALE (ödeme sonrası belge kapatılmadan önce) durumlarında olmalıdır.
Parametreler:
parametre adı | tanım | data tipi |
---|---|---|
lines | yazdırılıcak satır | String Array(Satır maksimum uzunluk: FP300-> 45, FT202,Vx675-> 29) |
Dönüş Değerleri:
<HataKodu>|<DurumKodu>
Olası Hatalar:
Error Code | Title |
---|---|
3 | ERR_INVALID_STATE |
JSON formatta hazırlanan Hugin Satış Belgesini yazdırır. PLU satışı yapar. Bu yüzden ürünler satılırken aynı zamanda kaydedilmesi için 9 kasiyer ile giriş yapılmış olmalıdır.
Parametreler:
parametre adı | tanım | data tipi |
---|---|---|
jsonStr | Hugin JSONDocument satış belgesi nesnesi JSON string değeri | String |
HUGIN JSON PLU Satış Döküman Nesnesi :
enum PaymentType
{
CASH,
CREDIT,
CHECK,
F_CURRENCY
}
enum AdjustmentType : sbyte
{
FEE,
PERCENT_FEE,
DISCOUNT,
PERCENT_DISCOUNT
}
class Adjustment
{
public AdjustmentType Type = AdjustmentType.Discount;
public decimal Amount = 0m;
public int percentage = 0;
public string NoteLine1;
public string NoteLine2;
}
class PaymentInfo
{
public PaymentType Type = 0;
public int Index = 0;
public decimal PaidTotal = 0.00m;
}
class JSONItem
{
public int Id;
public decimal Quantity;
public decimal Price;
public string Name;
public string Barcode;
public int DeptId;
public int Status;
public Adjustment Adj = null;
public string NoteLine1;
public string NoteLine2;
}
class EndOfReceipt
{
public bool CloseReceiptFlag = true;
public bool BarcodeFlag = false;
public string Barcode;
}
class JSONDocument
{
public List<JSONItem> FiscalItems = new List<JSONItem>();
public List<Adjustment> Adjustments = new List<Adjustment>();
public List<PaymentInfo> Payments = new List<PaymentInfo>();
public List<String> FooterNotes = new List<string>();
}
NOT : JSONItem ve Adjustment içindeki NoteLine1 ve NoteLine2 alanları sadece PrintJSONDocumentDeptOnly vePrintSalesDocument methodlarında kullanılır.
Örnek JSON;
{
"FiscalItems":[{
"Id":13,
"Quantity":1.0,
"Price":11.0,
"Name":"LIPTON ÇAY",
"DeptId":1,
"Status":0,
"Adj":null,
"NoteLine1":"DEMLIK POŞET"
},{
"Id":7,
"Quantity":25.0,
"Price":0.70,
"Name":"YUMURTA",
"DeptId":3,
"Status":0,
"Adj":{"Type":3,"Amount":-0.88,"percentage":5},
"NoteLine1":"DOĞAL KÖY YUMURTASI"
},{
"Id":9,
"Quantity":2.0,
"Price":1.2,
"Name":"ÜLKER ÇİZİ",
"DeptId":3,"Status":0,
"Adj":null
},{
"Id":3,
"Quantity":1.35,
"Price":11.95,
"Name":"BEYAZ PEYNİR",
"DeptId":3,
"Status":1,
"Adj":null
},{
"Id":5,
"Quantity":1.0,
"Price":8.95,
"Name":"YOĞURT",
"DeptId":3,
"Status":0,
"Adj":{"Type":1,"Amount":0.45,"percentage":5,"NoteLine1":"SÜT HAFTASI ÖZEL İNDİRİMİ"}
},{
"Id":2,
"Quantity":2.5,
"Price":4.49,
"Name":"BULGUR",
"DeptId":2,
"Status":1,
"Adj":null
}],
"Adjustments":[{
"Type":3,
"Amount":-10.02,
"percentage":15,
"NoteLine1":"ÖZEL MÜŞTERİ İNDİRİMİ"
}],
"Payments":[{
"Type":0,
"Index":0,
"PaidTotal":20.0,
"SequenceNo":0
},{
"Type":1,
"Index":0,
"PaidTotal":36.76,
"SequenceNo":1
}],
"FooterNotes":[
"ÜRÜN İNDİRİMİ : *0,43",
"ARATOP İNDİRİMİ: *10,02",
"TOPLAM İNDİRİM : *10,45",
" **** İYİ GÜNLER ****",
" www.hugin.com.tr",
" 0212 212 2121",
" MERSİS NO: 121244112344123124"
],
"EndOfReceiptInfo":{"CloseReceiptFlag":false,"BarcodeFlag":false,"Barcode":null}
}
Dönüş Değerleri:
<HataKodu>|<DurumKodu>
Hugin JSON satış belgesini yazdırır. JSON içerik de yer alan ürünler PLU değil departman bilgileri ile satılırlar. Bu yüzden yukarıda yer alan JSON PLU satışına istinaden daha efektif ve hızlı sonuç verir.
JSONItem ve Adjustment sınıflarında yer alan NoteLine1 ve NoteLine2 alanları bu methodda kullanılabilir. FP300 modeli için maksimum 48, FT202 ve Vx675 modelleri için 36 karakter olabilir.
NOT: Bu method çağırılmadan önce belgenin başlatılmış olması gereklidir. ÖKC satış(SELLING) durumunda olmalıdır.
Parametreler:
parametre tipi | tanım | data tipi |
---|---|---|
jsonStr | Hugin satış belgesi JSON karşılığı | String |
Dönüş Değerleri:
<HataKodu>|<DurumKodu>
Hugin JSON satış belgesini departman satışı ile yazdırır. PrintJSONDocumentDeptOnly methodundan farkı tek paket olarak ÖKC ye gönderim yapar bu yüzden daha hızlıdır.
NOT: Veriler tek paket halinde gönderildiği için, satış içeriği tamamlanmış halde olmalıdır. Yani ödeme bilgileri ile birlikte tamamlanmış bir belge olmalıdır. Uygulama tarafında oluşturulan JSON belgeniz yukarıda bahsedilen gibi tamamlanmış ise bu method ile gönderiniz, farklı bir durumda ise PrintJSONDocumentDeptOnly methodunu çağırınız.
Parametreler:
parametre adı | tanım | data tipi |
---|---|---|
jsonStr | Hugin JSON satış nesnesi | String |
Dönüş Değerleri:
<HataKodu>|<DurumKodu>|<ZNo>|<FişNo>|<Tarih>|<Saat>|<BelgeTipi>|
Ödeme bloğu (Her ödeme için tekrarlar)
<ÖdemeTipi>|<İndeks>|<Tutar>|<Not>
2.31. string PrintCurrentAccountCollectionDocumentHeader (string tcknVkn, string customerName, string docSerial, DateTime docDate, decimal amount)
Cari hesap tahsilat fişini başlatır.
Parametreler:
parametre adı | tanım | data tipi |
---|---|---|
tcknVkn | müşteri TCKN veya VKN | string(10 veya 11) |
customerName | müşteri isim | string(30) |
docSerial | belge seri | string(30) |
docDate | belge tarih-zaman | DateTime |
amount | belge tutarı | Decimal(999.999,99) |
Dönüş Değerleri:
<HataKodu>|<DurumKodu>|<BelgeNo>
2.31.1. string PrintCurrentAccountCollectionDocumentHeader(string tcknVkn, string customerName, string docSerial, DateTime docDate, int amount)
Bir önceki metod ile aynı özelliklere sahiptir, tek farkı decimal olan parametre yerine int değer alan parametre yer almaktadır.
Fiş sonunda seçilen barkod tipine göre barkod değerini yazdırır.
NOT: Bu method sadece Vx675 model ÖKC'lerde kullanılabilir.
BARKOD TİPLERİ: 1- EAN 2- QRN 3- C039 4- C128
Parametreler:
parametre tipi | tanım | data tipi |
---|---|---|
barcodeType | barkod tipi | int(1-4) |
barcode | barkod | string |
Dönüş Değerleri
<HataKodu>|<DurumKodu>
E-Arşiv ve E-Fatura belgelerini FP300 modeli ÖKC üzerinde yazdırır. Diğer modeller desteklememektedir.
Parametreler:
parametre adı | tanım | data tipi |
---|---|---|
docType | belge tipi enum değer: E-Invoice = 2, E-Archieve = 3 | int(2 veya 3) |
_lines _ | yazdırılacak satırlar | string[] |
Dönüş Değerleri:
<HataKodu>|<DurumKodu>
EFT-POS yönetimi satış uygulaması tarafından yapıldığı durumlarda(EFT-POS ÖKC'ye bağlı olmadığı durumda), alınan EFT ödeme içeriğini fiş içerisinde yazdırmak için bu komut kullanılır. Müşteri kopyası, İşyeri Nüshası ve Hata slipleri basılır. Bu işlem sadece FP300 modeli ÖKC üzerinde yazdırır. Diğer modeller desteklememektedir.
Parametreler:
parametre adı | tanım | data tipi |
---|---|---|
type | Slip tipi değeri: 1- Müşteri kopyası 2- İşyeri nüshası 3- Hata bilgisi |
int |
lines | Slip içeriği. Satır başlarındaki ilk karakter font bilgisini içerir. 1- Normal 2- Medium 3- Bold |
string[] |
Dönüş Değerleri:
<HataKodu>|<DurumKodu>
Olası Hatalar:
Error Code | Title |
---|---|
3 | ERR_INVALID_STATE Slipler ödeme başlayıp fiş kapatılmadan önce gönderilmelidir. |
5 | ERR_INVALID_PRM |
111 | ERR_LINE_LEN Satır uzunluğu beklenenden fazla |
2.35. string PrintInvoiceHeader(DateTime invoiceDT, string serial, string orderNo, Customer customerInfo)
Dahili yazıcıda fatura başlatır.
Parametreler:
parametre adı | tanım | data tipi |
---|---|---|
invoiceDT | fatura tarihi | DateTime |
serial | belge seri numarası | string(10) |
orderNo | belge sıra numarası | string(10) |
customerInfo | müşteri bilgileri | Hugin.Common.Customer |
Dönüş Değerleri:
<HataKodu>|<DurumKodu>|<BelgeNo>|<ZNo>|<KDVOranı>|<KDVTutarı>
2.36. string PrintReturnDocumentHeader(DateTime invoiceDT, string serial, string orderNo, Customer customerInfo)
İade belgesi (Gider Pusulası) başlatmak için kullanılır.
Parametreler:
parametre adı | tanım | data tipi |
---|---|---|
invoiceDT | fatura tarihi | DateTime |
serial | belge seri numarası | string(10) |
orderNo | belge sıra numarası | string(10) |
customerInfo | müşteri bilgileri | Hugin.Common.Customer |
Dönüş Değerleri:
<HataKodu>|<DurumKodu>|<BelgeNo>|<ZNo>|<KDVOranı>|<KDVTutarı>
Serbest Meslek Makbuzu başlatmak için kullanılır.
Parametreler:
parametre adı | tanım | data tipi |
---|---|---|
customerInfo | müşteri bilgileri | Hugin.Common.Customer |
services | hizmetlerin listesi | Hugin.Common.Service[] |
Dönüş Değerleri:
<HataKodu>|<DurumKodu>|<BelgeNo>|<ZNo>|<KDVOranı>|<KDVTutarı>
YNÖKC üzerindeki dökümanın aratoplam değerini stopaj miktarı kullanarak çekmenizi sağlar.
Parametreler:
parametre adı | tanım | data tipi |
---|---|---|
stoppageAmount | stopaj miktarı | Decimal(999999,98) |
Dönüş Değerleri:
<HataKodu>|<DurumKodu>|<BelgeNo>|<ZNo>|<KDVOranı>|<KDVTutarı>
Bir önceki metod ile aynı özelliklere sahiptir, tek farkı decimal olan parametre yerine int değer alan parametre yer almaktadır.
Parametreler:
parametre adı | tanım | data tipi |
---|---|---|
acquierID | Kredi kartı ve debit kart ödemelerinde bankayı tanımlayan id değeridir. |
Dönüş Değerleri:
<HataKodu>|<DurumKodu>
Olası Hatalar:
Hata Kodu | Enum Değer | Açıklama |
---|---|---|
3 | ERR_INVALID_STATE | Uygunsuz ÖKC durumu |
5 | ERR_INVALID_PRM | Geçersiz parametre, parametrelerinizi kontrol ediniz |
177 | ERR_EFT_RETURN_FAIL | Başarısız EFT iade işlemi |
Uygulama, ÖKC'yi rapor yazdırmak için tetikleyebilir. İlgili methodlar rapoarları kağıda yazdırabildiği gibi, yazdırmadan da içerik olarak alabilirler. copy parametresi bu amaç için kullanılır.
copy parametresi aşağıdaki değerleri alır;
değer | tanım |
---|---|
1 | Sadece içerik al (desteklenmiyor) |
2 | Sadece kağıda yazdır |
3 | Hem içerik al hem kağıda yazdır(desteklenmiyor) |
Rapor fonksiyonlarında alınabilecek genel hatalar;
Hata Kodu | Enum Değer | Açıklama |
---|---|---|
3 | ERR_INVALID_STATE | Uygun olmayan ÖKC durumu |
20 | ERR_FM_CLOSED | Mali bellek kapalı |
91 | ERR_CAHIER_AUTH | Kasiyer yetkisi yetersiz, yetkili kasiyer girişi yapınız |
8 | ERR_NO_PAPER | Kağıt yok |
32 | ERR_EJ_REMOVED | EKÜ çıkarılmış |
33 | ERR_EJ_MISMATCH | EKÜ uyuşmazlık hatası |
34 | ERR_EJ_OLD | EKÜ eski |
35 | ERR_NEW_EJ | EKÜ yeni |
36 | ERR_EJ_ZREQUIRED | Z raporu alınmalı |
38 | ERR_EJ_FULL | EKÜ dolu |
5 | ERR_INVALID_PRM | Geçersiz parametre |
X raporunu yazdırır. X raporu, Z raporu ile aynı içeriği içerir fakat mali değildir. X raporu, hiç bir mali değeri sıfırlamadan, Z rapor içeriğini görmek için kullanılır.
Parametreler:
parametre adı | tanım | data tipi |
---|---|---|
copy | içerik hedefi | Int(1-3) |
Return value:
<HataKodu>|<DurumKodu>|<BelgeNo>|<ZNo>
Verilen PLU değerleri arasında X raporu yazdırır.
NOT: Verilen PLU aralığı 1000'den küçük olmalıdır.
Parametreler:
parametre adı | tanım | data tipi |
---|---|---|
firstPlu | İlk PLU numarası | Int(1-200000) |
lastPlu | Son PLU numarası | Int(1-200000) |
copy | yazdırma opsiyonu | Int(1-3) |
Dönüş Değerleri:
<HataKodu>|<DurumKodu>|<DocNo>|<ZNo>
Olası Hatalar:
Hata Kodu | Enum Değer | Açıklama |
---|---|---|
59 | ERR_DAILY_PLU_LIMIT | PLU limit aşım hatası |
Sistem bilgi raporunu yazdırır. Bu rapor içinde, ÖKC sicil bilgisi, yazılım versiyon bilgileri, network bilgileri, KDV bilgileri, Departman bilgileri ve program ayarları yer alır.
Parametreler:
parametre adı | tanım | data tipi |
---|---|---|
copy | yazdırma opsiyonu | int değerler: 0 : Kağıt 1 : Ana Ünite 2 : İkisi |
Dönüş Değerleri:
<HataKodu>|<DurumKodu>|<DocNo>|<Raporİçeriği>
Fiş özetleri raporunu yazdırır. Bu rapor fişler şeklinde gruplanmış olarak toplam satış bilgilerini içerir.
Parametreler:
parametre adı | tanım | data tipi |
---|---|---|
copy | yazdırma opsiyonu | Int(1-3) |
Dönüş Değerleri:
<HataKodu>|<DurumKodu>|<DocNo>|<Raporİçeriği>
Olası Hatalar:
Hata Kodu | Enum değer | Açıklama |
---|---|---|
97 | ERR_ECR_NONFISCAL | ÖKC mali değil |
Z Raporunu yazdırır. Z raporu bir çeşit gün sonu raporudur. Satılan ürünlerin departman ve toplam tutar bilgilerini içerir. Gün toplam değerlerini sıfırlar.
Dönüş Değerleri:
<HataKodu>|<DurumKodu>|<BelgeNo>|<ZNo>
Olası Hatalar:
Hata Kodu | Enum Değer | Açıklama |
---|---|---|
17 | ERR_FM_DAILY_LIMIT | Mali bellek günlük limit hatası |
18 | ERR_FM_FULL | Mali bellek dolu |
İki tarih arasında periyodik raporu yazdırır. Bu iki tarih arasındaki ödeme bilgilerini içerir.
Parametreler:
parametre adı | tanım | data tipi |
---|---|---|
firstDay | ilk tarih | DateTime(Fiscalization date to Last receipt date) |
lastDay | son tarih | DateTime(Fiscalization date to Last receipt date) |
copy | yazdırma opsiyonu | Int(1-3) |
detail | detaylı ya da değil | boolean(true: her fişin toplam değeri raporda yer alsın) |
Dönüş Değerleri:
<HataKodu>|<DurumKodu>|<BelgeNo>|<ZNo>
Olası Hatalar:
Hata Kodu | Enum değer | Açıklama |
---|---|---|
77 | ERR_FMSEARCH_NO_RESULT | Uygun sonuç bulunamadı |
97 | ERR_ECR_NONFISCAL | ÖKC mali değil |
Tek Z ya da birden fazla Z içeriğinin yer aldığı periyodik raporu yazdırır.
Parametreler:
parametre adı | tanım | data tipi |
---|---|---|
firstZ | İlk Z no | Int(1-3650) |
lastZ | Son Z No | Int(1-3650) |
copy | yazdırma opsiyonu | Int(1-3) |
detail | detaylı veya değil | boolean(true: her bir fiş için total değer yazdırılacak) |
Dönüş Değerleri:
<HataKodu>|<DurumKodu>|<BelgeNo>|<ZNo>
Olası Hatalar:
Hata Kodu | Enum Değer | Açıklama |
---|---|---|
77 | ERR_FMSEARCH_NO_RESULT | Uygun sonuç bulunamadı |
97 | ERR_ECR_NONFISCAL | ÖKC mali değil |
Günlük periyodik rapor yazdırır. Bu rapor sadece mali modda alınabilir.
Parametreler:
parametre adı | tanım | data tipi |
---|---|---|
day | raporlanacak gün | DateTime |
copy | yazdırma opsiyonu | Int(1-3) |
Dönüş Değerleri:
<HataKodu>|<DurumKodu>|<BelgeNo>|<ZNo>
İki tarih arası periyodik raporu yazdırır. Bu rapor sadece mali modda alınabilir.
Parametreler:
parametre adı | tanım | data tipi |
---|---|---|
startTime | Başlangıç tarihi | DateTime(Fiscalization date to Last receipt date) |
endTime | Bitiş tarihi | DateTime(Fiscalization date to Last receipt date) |
copy | yazdırma opsiyonu | Int(1-3) |
Dönüş Değerleri:
<HataKodu>|<DurumKodu>|<BelgeNo>|<ZNo>
İki Z arası periyodik rapor yazdırır. Bu rapor sadece mali modda alınabilir.
parametre adı | tanım | data tipi |
---|---|---|
ZStartId | Başlangıç Z numarası | Int(1-3650) |
docStartId | Başlangıç belge no | Int(9999) |
ZEndId | Bitiş Z numarası | Int(1-3650) |
docEndId | Bitiş belge no | Int(9999) |
copy | yazdırma opsiyonu | Int(1-3) |
Dönüş Değerleri:
<HataKodu>|<DurumKodu>|<BelgeNo>|<ZNo>
Genel EKÜ kullanımı ile ilgili bilgileri içeren rapor yazdırır. EKÜ no, ilk Z no, son Z no, ilk fiş no, son fiş no, toplam EKÜ satırı, kullanılan EKÜ satırı gibi..
parametre adı | tanım | data tipi |
---|---|---|
copy | yazdırma opsiyonu | Int(1-3) |
Dönüş Değerleri:
<HataKodu>|<DurumKodu>|<EKÜNo>|<İlkZno>|<İlkBelgeNo>|<SonZno>|<SonBelgeNo>|<ToplamEKÜSatırı>|<KullanılanEKÜSatırı>
EFT-POS cihazı üzerinde gün sonu raporunu yazdırır.
Dönüş Değerleri:
<HataKodu>|<DurumKodu>
Z Raporunu yazdırır. Z raporu bir çeşit gün sonu raporudur. Satılan ürünlerin departman ve toplam tutar bilgilerini içerir. Gün toplam değerlerini sıfırlar.
Parametreler:
parametre adı | tanım | data tipi |
---|---|---|
copy | yazdırma opsiyonu | int değerler: 0 : Kağıt 1 : Ana Ünite 2 : İkisi |
Dönüş Değerleri:
<HataKodu>|<DurumKodu>|<BelgeNo>|<ZNo>
Olası Hatalar:
Hata Kodu | Enum Değer | Açıklama |
---|---|---|
17 | ERR_FM_DAILY_LIMIT | Mali bellek günlük limit hatası |
18 | ERR_FM_FULL | Mali bellek dolu |
Parametreler :
parametre adı | tanım | data tipi |
---|---|---|
count | yazdırma opsiyonu | Int(1-3) |
amount | miktar | decimal |
isAffectDawer | yazdırma opsiyonu | boolean(true/false) |
Dönüş Değerleri:
<HataKodu>|<DurumKodu>|<EKÜNo>|<İlkZno>|<İlkBelgeNo>|<SonZno>|<SonBelgeNo>|<ToplamEKÜSatırı>|<KullanılanEKÜSatırı>
Son yazıdırılan raporun içeriğini getirmek için kullanılır.
Dönüş Değerleri:
<HataKodu>|<DurumKodu>|<BelgeNo>|<Zno>|<Raporİçeriği>
İki tarih arasında diğer belgelerin (fatura,gider pusulası, serbest meslek makbuzu) ekü kopyasını almak için kullanılır.
Parametreler :
parametre adı | tanım | data tipi |
---|---|---|
firstDate | Başlangıç tarihi | DateTime |
lastDate | Bitiş tarihi | DateTime |
oDocType | Belge tipi | Int(0-2) |
Dönüş Değerleri:
<HataKodu>|<DurumKodu>|<BelgeNo>|<ZNo>
Diğer belgelerin (fatura,gider pusulası, serbest meslek makbuzu) ekü kopyasını almak için kullanılır.
Parametreler :
parametre adı | tanım | data tipi |
---|---|---|
oDocType | Belge Tipi | Int(0-2) |
Dönüş Değerleri:
<HataKodu>|<DurumKodu>|<BelgeNo>|<ZNo>
ÖKC yöetiminde sıklıkla kullanılan, satış, programlama ve rapor harici fonksiyonlardır.
O anki ÖKC durumu hakkında bilgi verir. Satış uygulaması bu method ile ÖKC durumunu ya da ÖKC'yi bloklayan hata sebebini öğrenebilir. Hiçbir mali işlevi yoktur, sadece durum bilgisi öğrenilir.
NOT: Her ne kadar mali bir işlevi olmasa da, gerek olmayan durumlar dışında sürekli kasa durumunu sorgulatmak, satış uygulaması tarafında da işlem akışının yavaşlamasına sebep olacaktır.
Dönüş Değerleri:
<HataKodu>|<DurumKodu>|<Tarih>|<Zaman>|NULL|NULL|NULL|NULL|NULL
ÖKC üzerinde kayıtlı olan bilgiler ile kasiyer girişini sağlar.
Parametreler:
parametre adı | tanım | data tipi |
---|---|---|
id | kasiyer numarası | Int(1-9) |
password | kasiyer şifresi (nümerik) | String(5) |
Dönüş Değerleri:
<HataKodu>|<DurumKodu>|NULL|NULL|<KasiyerAdı>|NULL|NULL|NULL|<YetkiSeviyesi>
Default Kasiyer Bilgilerir:
id | şifre | Yetki Seviyesi | tanım |
---|---|---|---|
1,2,3,4,5 | 1234 | Satış | Bu kasiyerler sadece satış yapabilirler |
6,7,8, | 1357 | Satış, Z Raporu | Bu kasiyerler satış yapabilirler, Z raporu alabilirler. |
9 | 14710 | Satış, Z Raporu, Programlama | Bu kasiyerler ÖKC üzerinde ayarları değiştirebilirler. Satış yapabilirler ve Z raporu alabilirler. |
Olası Hatalar:
Hata Kodu | Enum Değer | Açıklama |
---|---|---|
91 | ERR_CASHIER_AUTH | Kasiyer Yetkisi yetersiz |
Kasiyer şifresini kontrol etmek amacı ile kullanılır. Maksimum hatalı giriş sayısı günlük 5 kezdir. Bu sayının aşılması durumunda kasiyer 24 saat boyunca kilitlenir.
Parametreler:
parametre adı | tanım | data tipi |
---|---|---|
id | kontrol edilecek kasiyer id | Int(1-9) |
password | şifre (nümerik) | String(5) |
Dönüş Değerleri:
<HataKodu>|<DurumKodu>|NULL|NULL|<KasiyerID>|NULL|NULL| <HatalıGirişSayısı>|<YetkiSeviyesi>|
Olası Hatalar:
Hata Kodu | Enum Değer | Açıklama |
---|---|---|
91 | ERR_CASHIER_AUTH | Kasiyer yetki hatası |
ÖKC' ye nakit girdi yapar.
Parametreler:
parametre adı | tanım | data tipi |
---|---|---|
amount | nakit girdi tutarı | Decimal(999999,99) |
Dönüş Değerleri:
<HataKodu>|<DurumKodu>|NULL|NULL|NULL|<Tutar>|NULL|NULL|NULL|
Olası Hatalar:
Hata Kodu | Enum Değer | Açıklama |
---|---|---|
96 | ERR_DAILY_TOTAL_LIMIT | Günlük toplam limit hatası |
Bir önceki metod ile aynı özelliklere sahiptir, tek farkı decimal olan parametre yerine int değer alan parametre yer almaktadır.
ÖKC nakit çıktı yapar.
Parametreler:
parametre adı | tanım | data tipi |
---|---|---|
amount | nakit miktarı | Decimal(999999,99) |
Dönüş Değerleri:
<HataKodu>|<DurumKodu>|NULL|NULL|NULL|<Tutar>|NULL|NULL|NULL|
Olası Hatalar:
Hata Kodu | Enum Değer | Açıklama |
---|---|---|
94 | ERR_NOT_ENOUGH_MONEY | Çekmecede yeterli nakit yok |
Bir önceki metod ile aynı özelliklere sahiptir, tek farkı decimal olan parametre yerine int değer alan parametre yer almaktadır.
ÖKC ile eşleşmeyi başlatır. Connected durumda olan connection nesnesi System.IO.Ports.SerialPort ya da System.Net.Sockets.Socket sınıflarından birine ait olmalıdır. DeviceInfo sınıfına Hugin.Common kütüphanesi üzerinden ulaşılabilinir.
Parametreler:
parametre adı | tanım | data tipi |
---|---|---|
connObj | uygulama tarafındaki connection nesnesi | |
serverInfo | server cihaz bilgileri |
Dönüş Değerleri: true (eğer işlem başarılı ise) false(eğer işlem başarısız ise)
ÖKC çekmece bilgilerini çeker.
Dönüş Değerleri:
<HataKodu>|<DurumKodu>|<ToplamBelgeSayısı>|<ToplamTutar>|<MaliFişSayısı>| <MaliFişTutarları>|<İptalBelgeSayısı>|<İptalTutarı>|<ToplamİndirimTutarı>|<NakitGirişID>|<NakitGirişSayısı>|<NakitGirişMiktarı>|<NakitÇıkışID>|<NakitÇıkışSayısı>|<NakitÇıkışMiktarı>|<ÖdemeTipi>|<Index>|<Tutar>
Tekrarlanabilir Ödemeler Bloğu:
<ÖdemeTipi>|<Index>|<Tutar>
ÖKC üzerinde yazılan son belge ile ilgili bilgileri getirir.
Parametreler:
parametre adı | tanım | data tipi |
---|---|---|
lastZ | Son belge tipini belirtir, Z raporu mu? Normal Fiş mi? | boolean(true: Son Z bilgisini getirir) |
Dönüş Değerleri:
<HataKodu>|<DurumKodu>|<BelgeNo>|<ZNo>|<EKÜNo>|<BelgeTipi>| <BelgeTarihi>| <BelgeZamanı>
Interruptable raporların durdurulmasını sağlar.(Rapor alınırken)
Buna ek olarak hata sonrası kasiyer onayı gibi bir görevi de vardır. Örneğin 24 saat geçmesi itibariyle ÖKC nin 24 Saat Z raporu uyarısı vermesinden sonra Z raporunu aldırmak için bu komut gönderilir.
ÖKC üzerinde kağıt rulo bitmesi sonrası yeni rulo takıldıktan sonra da ÖKC işleme devam etmek için sizden bu komutu bekler.
Dönüş Değerleri:
<HataKodu>|<DurumKodu>
Çekmece açma komutu. ÖKC üzerinde entegre çekmece var ise bu komut ile açılır.
Dönüş Değerleri:
<HataKodu>|<DurumKodu>
ÖKC üzerinde mali değeri olmayan fiş başlatır. Free-text raporlar ve belgeler için kullanılabilinir.
Dönüş Değerleri:
<HataKodu>|<DurumKodu>
Olası Hatalar:
Hata Kodu | Enum Değer | Açıklama |
---|---|---|
95 | ERR_DAILY_RCPT_COUNT | Günlük Fiş sayısı limiti |
Mali olmayan fişe, satır yazdırır.
Parametreler:
parametre adı | tanım | data tipi |
---|---|---|
lines | yazdırılacak satıalr | String Array (Line length is 48 for FP300, 32 for FT202 and Vx675 models) |
Dönüş Değerleri:
<HataKodu>|<DurumKodu>
Mali olmayan fişi kapatır.
Dönüş Değerleri:
<HataKodu>|<DurumKodu>
Kütüphane üzerinden son log bilgisini getirir.
Dönüş Değerleri:
<Komut>|<İşlemSıraNo>|<ÖKCDurum>|<HataKodu>|<HataMesajı>
ÖKC versiyon bilgisini getirir.
Dönüş Değerleri:
<VersiyonBilgisi>
ÖKC tarafından verilen son cevabı görüntüler.
Dönüş Değerleri:
<HataKodu>|<DurumKodu>|Tarih|Zaman|NULL|NULL|NULL|NULL|NULL|
Gün içersinde yapılan işlemlerin belge bazında kdv dağılımı toplalarını ve ödeme toplamlarını almak için kullanılır.
Dönüş Değerleri: İşlem Başarılı ise Json formatında bilgiler gelir. Başarılı değilse hata kodu gelir.
Örnek Başarılı cevap
{
"summaries": [
{
"DocumentType": 13,
"ValidCount": 3,
"CancelledCount": 1,
"ValidAmount": 117.0,
"CancelledAmount": 64.0,
"VatTotal": 0.16,
"VatGroupSales": [
{
"VatRate": 0,
"VatAmount": 0.0,
"SaleAmount": 101.0
},
{
"VatRate": 1,
"VatAmount": 0.16,
"SaleAmount": 16.0
}
],
"Cash": 117.0,
"Credit": 0.0,
"Other": 0.0
},
{
"DocumentType": 1,
"ValidCount": 1,
"CancelledCount": 0,
"ValidAmount": 30.0,
"CancelledAmount": 0.0,
"VatTotal": 0.56,
"VatGroupSales": [
{
"VatRate": 1,
"VatAmount": 0.26,
"SaleAmount": 26.0
},
{
"VatRate": 8,
"VatAmount": 0.3,
"SaleAmount": 4.0
}
],
"Cash": 30.0,
"Credit": 0.0,
"Other": 0.0
},
{
"DocumentType": 2,
"ValidCount": 1,
"CancelledCount": 2,
"ValidAmount": 40.0,
"CancelledAmount": 165.0,
"VatTotal": 6.1,
"VatGroupSales": [
{
"VatRate": 18,
"VatAmount": 6.1,
"SaleAmount": 40.0
}
],
"Cash": 40.0,
"Credit": 0.0,
"Other": 0.0
},
{
"DocumentType": 3,
"ValidCount": 1,
"CancelledCount": 3,
"ValidAmount": 45.0,
"CancelledAmount": 45.0,
"VatTotal": 0.45,
"VatGroupSales": [
{
"VatRate": 1,
"VatAmount": 0.45,
"SaleAmount": 45.0
}
],
"Cash": 45.0,
"Credit": 0.0,
"Other": 0.0
},
{
"DocumentType": 4,
"ValidCount": 1,
"CancelledCount": 1,
"ValidAmount": 50.0,
"CancelledAmount": 15.0,
"VatTotal": 0.0,
"VatGroupSales": [
{
"VatRate": 0,
"VatAmount": 0.0,
"SaleAmount": 50.0
}
],
"Cash": 50.0,
"Credit": 0.0,
"Other": 0.0
}
],
"CummulativeTotal": 43173.53,
"CummulativeVat": 3631.13
}
Hatalı Cevap Formatı:
<Komut>|<İşlemSıraNo>|<ÖKCDurum>|<HataKodu>|<HataMesajı>
O anki static CompactPrinter instance değerini döner. Eğer bu özelik null ise, yeni instance oluşturulmalıdır.
Bu özelik ÖKC sicil numarasının kütüphaneye set edilmesi amacı ile kullanılır. Eşeleme sırasında Connect methodu çağrılmadan önce ÖKC sicil numarası bu method ile set edilmelidir. Ayrıca get ulaşımı da bulunduğu için set edilen sicil numarası öğrenilebilinir.
Eğer eşleme yapılan cihazın modeli Vx675 ise bu özellik true döner, diğer modellerde false döner. Yanlızca get ulaşımı bulunmaktadır.
Bu özellik ile kütüphane loglama dizinini belirleyebilir, set edebilirsiniz.
NOT: Java kütüphanesinde bu özeliğe karşılık gelen özelik -> "SetDebugFolder(string path)"
Loglama levelini belirlemenizde kullanılır. 6 log leveli bulunmaktadır.
public enum LogLevel
{
FATAL = 1,
ERROR = 2,
WARN = 3,
INFO = 4,
DEBUG = 5,
HIDE_BUG = 6
}
NOT: Java kütüphanesinde bu özeliğe karşılık gelen özelik -> "SetDebugLevel(int level)"
Kütüphane versiyon bilgisini getirir.
Seri port ve TCP/IP haberleşmeleri için kütüphane tarafından desteklenen buffer boyutu bilgisini getirir.
JSON SATIŞ BELGESİ
ÖDEME TİPLERİ:
İNDEKS | ENUM DEĞER | AÇIKLAMA |
---|---|---|
0 | CASH | Nakit Ödeme tipi |
1 | CREDIT | Kredi ile Ödeme Tipi |
2 | CHECK | Çek ile Ödeme Tipi |
3 | F_CURRENCY | Döviz ile Ödeme Tipi |
İNDİRİM/ARTTIRIM TİPLERİ:
İNDEKS | ENUM DEĞER | AÇIKLAMA |
---|---|---|
0 | FEE | Tutarsal yapılan arttırım |
1 | PERCENT_FEE | Yüzde ile yapılan arttırım |
2 | DISCOUNT | Tutarsal yapılan indirim |
3 | PERCENT_FEE | Yüzde ile yapılan indirim |
JSONDocument
ALAN ADI | TANIM | VERİ TİPİ |
---|---|---|
FiscalItems[] | Satılan ürünler bu alan altında JSONItem tipinde gönderilir. | JSONItem(0..128) |
Adjustments[] | Belge toplamına yapılan indirim/arttırım bilgilerinin yer aldığı alan. | Adjustment(0..1) |
Payments[] | Ödeme bilgilerinin yer aldığı alan | PaymentInfo(0..10) |
FooterNotes[] | Fiş sonuna yazdırılmak istenen belge sonu notlarının yer aldığı alan. Bu alan kullanılırken ilgili cihazın bir satırda yer alabilecek maksimum karakter sayısına dikkat edilmelidir. | String(0..10) |
EndOfReceiptInfo | Fiş sonu bilgileri ve ayarları içeren alandır. | EndOfReceipt |
JSONItem
ALAN ADI | TANIM | VERİ TİPİ |
---|---|---|
Id | Ürün PLU numarasını belirtir. PLU satışlarında mutlaka uygun değer verilmelidir. Departman satışların da ise 0 gelebilir. | Int(0..100.000) |
Quantity | Ürün tartılabilir ise kilogram cinsinden, tartılamaz ise adet cinsinden miktarını belirtir. | Decimal (max. 999.999,99) |
Price | Birim ürüne ait liste fiyatı | Decimal (max. 999.999,99) |
Name | Ürün adı | String(max. 20 karakter) |
Barcode | Ürün barkod bilgisi. Sadece PLU satışında kullanılabilir. | String(max. 20) |
DeptId | Ürün departman numarası. | Int(1..8) |
Status | Ürün tartılabilirlik bilgisi. Tartılabilir ise 1, tartılamaz ise 0 gönderilmelidir. | Int(0..1) |
Adj | Ürün üzerinde uygulanan indirim/arttırım bilgilerini içerir. Eğer uygulama tarafında birden fazla indirim ya da arttırım uygulanmış ise bunların genel toplamı sonucu oluşan indirim ya da arttırım bilgisi bu alana işlenir. | Adjustment |
NoteLine1 | Üründen sonraki satırda herhangi bir bilgi yazdırılmak istenirse kullanılır. | String(ÖKC modeline göre maksimum karakter sayısı) |
NoteLine2 | Üründen sonraki yazdırılan not satırı ardına 2.satır yazdırılmak istenirse kullanılır. | String(ÖKC modeline göre maksimum karakter sayısı) |
Adjustment
ALAN ADI | TANIM | VERİ TİPİ |
---|---|---|
Type | Yapılan indirim ya da arttırım bilgisinin tipini belirtir | AdjustmentType |
Amount | Yapılan indirim ya da arttırım bilgisinin tutarsal miktarı. Yüzdesel indirimlerde/arttırımlarda herhangi bir değer atamaya gerek yoktur. | Decimal (max. 999.999,99) |
percentage | Yapılan indirim ya da arttırımın yüzdesel miktarı. Tutarsal indirim ya da arttırımlarda herhangi bir değer atamaya gerek yoktur. | Int(1-99) |
NoteLine1 | İndirim/arttırım bilgisinden sonra herhangi bir açıklama ya da bilgi satırı girilicekse bu alan kullanılır. | String(ÖKC modeline göre maksimum karakter sayısı) |
NoteLine2 | İndirim/arttırım bilgisinden sonra ikinci açıklama ya da bilgi satırı girilecekse bu alan kullanılır. | String(ÖKC modeline göre maksimum karakter sayısı) |
PaymentInfo
ALAN ADI | TANIM | VERİ TİPİ |
---|---|---|
PaymentType | Ödeme bilgisinin tipini belirtir | PaymentType |
Index | Ödeme tipine göre değişen amaçlarla kullanılır.Kredili ödeme ve Döviz ödemelerinde kasa üzerinde tanımlı alanların indeks değerini içerir, zorunludur. Çek ile ödemede çek numarası olarak kullanılır, zorunlu değildir. | Int |
PaidTotal | Ödeme tutarı | Decimal (max. 999.999,99) |
viaByEFT | Yapılan kredili ödemenin EFT-POS cihazının bağlı olması durumunda, cihaza yönlendirilmesini sağlar. Şu anda desteklenmemektedir. | Boolean |
EndOfReceipt
ALAN ADI | TANIM | VERİ TİPİ |
---|---|---|
CloseReceiptFlag | JSON departman satışında (PrintJSONDocumentDeptOnly), ödeme sonrası fişin kapatılıp kapatılmayacağını belirtir. true ise fiş kapatılır, değil ise kapatılmaz. | Boolean |
BarcodeFlag | Fiş sonu barkodunun basılıp basılmayacağını belirtir. Eğer true atanıp barkod basılmak isteniyor ise Barcode alanı da doldurulmalıdır. | Boolean |
Barcode | BarcodeFlag true set edildikten sonra basılmak istenen fiş sonu barkod değeri bu alana girilir. | String(20) |
NOT: JSONItem ve Adjustment veri tiplerinde yer alan NoteLine1 ve NoteLine2 alanları sadece PrintJSONDocumentDeptOnly ve PrintSalesDocument methodlarında kullanılır.
HUGIN JSON PLU Satış Belgesi Nesnesi (C#):
enum PaymentType
{
CASH,
CREDIT,
CHECK,
F_CURRENCY
}
enum AdjustmentType
{
FEE,
PERCENT_FEE,
DISCOUNT,
PERCENT_DISCOUNT
}
class Adjustment
{
public AdjustmentType Type = AdjustmentType.Discount;
public decimal Amount = 0m;
public int percentage = 0;
public string NoteLine1;
public string NoteLine2;
}
class PaymentInfo
{
public PaymentType Type = 0;
public int Index = 0;
public decimal PaidTotal = 0.00m;
public bool viaByEFT = false;
}
class JSONItem
{
public int Id;
public decimal Quantity;
public decimal Price;
public string Name;
public string Barcode;
public int DeptId;
public int Status;
public Adjustment Adj = null;
public string NoteLine1;
public string NoteLine2;
}
class EndOfReceipt
{
public bool CloseReceiptFlag = true;
public bool BarcodeFlag = false;
public string Barcode;
}
class JSONDocument
{
public List<JSONItem> FiscalItems = new List<JSONItem>();
public List<Adjustment> Adjustments = new List<Adjustment>();
public List<PaymentInfo> Payments = new List<PaymentInfo>();
public List<String> FooterNotes = new List<string>();
public EndOfReceipt EndOfReceiptInfo = new EndOfReceipt();
}
JSON ÖRNEK:
{
"FiscalItems":[{
"Id":13,
"Quantity":1.0,
"Price":11.0,
"Name":"LIPTON ÇAY",
"DeptId":1,
"Status":0,
"Adj":null,
"NoteLine1":"DEMLIK POŞET"
},{
"Id":7,
"Quantity":25.0,
"Price":0.70,
"Name":"YUMURTA",
"DeptId":3,
"Status":0,
"Adj":{"Type":3,"Amount":-0.88,"percentage":5},
"NoteLine1":"DOĞAL KÖY YUMURTASI"
},{
"Id":9,
"Quantity":2.0,
"Price":1.2,
"Name":"ÜLKER ÇİZİ",
"DeptId":3,"Status":0,
"Adj":null
},{
"Id":3,
"Quantity":1.35,
"Price":11.95,
"Name":"BEYAZ PEYNİR",
"DeptId":3,
"Status":1,
"Adj":null
},{
"Id":5,
"Quantity":1.0,
"Price":8.95,
"Name":"YOĞURT",
"DeptId":3,
"Status":0,
"Adj":{"Type":1,"Amount":0.45,"percentage":5,"NoteLine1":"SÜT HAFTASI ÖZEL İNDİRİMİ"}
},{
"Id":2,
"Quantity":2.5,
"Price":4.49,
"Name":"BULGUR",
"DeptId":2,
"Status":1,
"Adj":null
}],
"Adjustments":[{
"Type":3,
"Amount":-10.02,
"percentage":15,
"NoteLine1":"ÖZEL MÜŞTERİ İNDİRİMİ"
}],
"Payments":[{
"Type":0,
"Index":0,
"PaidTotal":20.0,
"SequenceNo":0
},{
"Type":1,
"Index":0,
"PaidTotal":36.76,
"SequenceNo":1
}],
"FooterNotes":[
"ÜRÜN İNDİRİMİ : *0,43",
"ARATOP İNDİRİMİ: *10,02",
"TOPLAM İNDİRİM : *10,45",
" **** İYİ GÜNLER ****",
" www.hugin.com.tr",
" 0212 212 2121",
" MERSİS NO: 121244112344123124"
],
"EndOfReceiptInfo":{"CloseReceiptFlag":false,"BarcodeFlag":false,"Barcode":null}
}
BANKA KODLARI
Banka Kodu | Banka İsmi |
---|---|
0010 | TC ZIRAAT BANKASI |
0100 | ADABANK A.S. |
0103 | MILLENNIUM BANK A.S. |
0106 | WESTDEUTSCHE LANDESBANK GIROZENTRAL |
0108 | TURKLAND BANK A.S. |
0109 | TEKSTIL BANKASI A.S. |
0111 | FINANSBANK A.S. |
0115 | DEUTSCHE BANK A.S. |
0116 | TAIB YATIRIMBANK A.S. |
0012 | HALK BANKASI |
0121 | CALYON YATIRIM BANKASI TURK A.S. |
0122 | SOCIETE GENERALE |
0123 | HSBC BANK A.S. |
0124 | ALTERNATIFBANK A.S. |
0125 | EUROBANK TEKFEN A.S. |
0129 | MERRILL LYNCH YATIRIM BANK A.S. |
0132 | IMKB TAKAS VE SAKLAMA BANKASI |
0134 | DENIZ BANK A.S. |
0135 | ANADOLUBANK A.S. |
0138 | DİLER YATIRIM BANKASI A.S. |
0139 | GSD YATIRIM BANKASI A.S. |
0014 | T.SINAİ KALK. BANKASI A.S. |
0141 | NUROL YATIRIM BANKASI A.S. |
0142 | BANKPOZITIF KREDI VE KALK.BANK.A.S. |
0143 | AKTIF YATIRIM BANKASI A.S. |
0015 | T.VAKIFLAR BANKASI T.A.O. |
0016 | T.IHRACAT KREDI BANKASI A.S. |
0017 | T.KALKINMA BANKASI A.S. |
0203 | ALBARAKA TURK KATILIM BANKASI A.S. |
0205 | KUVEYT TURK KATILIM BANKASI A.S. |
0206 | TURKIYE FINANS KATILIM BANKASI A.S. |
0208 | ASYA KATILIM BANKASI A.S. |
0029 | BIRLESIK FON BANKASI A.S. |
0032 | T.EKONOMİ BANKASI A.S. |
0004 | İLLER BANKASI |
0046 | AKBANK T.A.S. |
0059 | ŞEKERBANK T.A.S. |
0062 | T.GARANTİ BANKASI A.S. |
0064 | T.IŞ BANKASI A.S. |
0067 | YAPI VE KREDI BANKASI A.S. |
0071 | FORTIS BANK A.S. |
0087 | BANCO DI ROMA |
0088 | ABN AMRO BANK N.V. |
0091 | ARAP TÜRK BANKASI A.S. |
0092 | CITIBANK A.S. |
0096 | TURKISHBANK |
0098 | JP MORGAN CHASE BANK NA MERK COL.OH |
0099 | ING BANK A.S. |
ÖRNEK AKIŞLAR VE KODLAR
ÖKC ile kütüphane üzerinden bağlantı kurmak için temel olarak
/// <summary>
/// Starts matching with ECR
/// </summary>
/// <param name="commObj">connection object(SerialPort or TCP/IP)</param>
/// <param name="serverInfo">device info object</param>
/// <returns>true if operations are done successfully</returns>
bool Connect(Object commObj, DeviceInfo serverInfo);
methodu kullanılacaktır. Göründüğ üzere methodun iki parametresi bulunmaktadır. Öncelikli olarak commObj olarak belirtilen connection nesnesi oluşturulmalıdır. Seriport ve TCP bağlantıları desteklendiği için bu nesne;
System.IO.Ports.SerialPort
ya da
System.Net.Sockets.Socket
sınıflarından türemiş olmalıdır. Öncelikle bu bağlantılar oluşturulmalıdır.
if (tabConn.SelectedTab == tabComPort)
{
// Seri port bağlantısı oluşturulur
this.Connection = new SerialConnection(cmbPorts.Text, int.Parse(txtBaudrate.Text));
}
else
{
// TCP/IP bağlantı oluşturulur
int port = Convert.ToInt32(txtTcpPort.Text);
this.Connection = new TCPConnection(txtTCPIP.Text, port);
}
this.Log(FormMessage.CONNECTING + "... ("+FormMessage.PLEASE_WAIT+")");
this.Connection.Open();
errPrefix = FormMessage.MATCHING_ERROR + ": ";
// ÖKC ile eşleme adımı
MatchExDevice();
Örnek uygulama projesinde yer alan yukarıdaki kod bloğunda da bu işlem yapılmıştır. Öncelikle Seriport ve TCP bağlantıları kurulmuş daha sonra eşleme adımına geçilmiştir.
NOT: Java kütüphanesinde TCPConnect ve SerialConnect methodları mevcuttur. Bu methodlar üzerinden gerekli bağlantılar sağlanabilir. Devamında akış aynıdır.
Bağlantılar kurulduktan sonra Hugin.Common kütüphanesinde yer alan DeviceInfo sınıfının alanları doldurulmalıdır. Bu Connect methodunun ikinci parametresidir.
Bu alanlar eşleşme sağlayacak olan bilgisayar bağlantılı sistemin, IP adres bilgisi, port, IP protokolü, marka, model, sicil numarası, versiyon ve anakart serisi gibi alanlardır.
// DeviceInfo sınıfı gerekli bilgiler ile doldurulur
DeviceInfo serverInfo = new DeviceInfo();
serverInfo.IP = System.Net.IPAddress.Parse(GetIPAddress());
serverInfo.IPProtocol = IPProtocol.IPV4;
serverInfo.Brand = "HUGIN";
if (!String.IsNullOrEmpty(System.Configuration.ConfigurationManager.AppSettings["Brand"]))
{
serverInfo.Brand = System.Configuration.ConfigurationManager.AppSettings["Brand"];
}
serverInfo.Model = "HUGIN COMPACT";
serverInfo.Port = Convert.ToInt32(txtTcpPort.Text);
serverInfo.TerminalNo = txtFiscalId.Text.PadLeft(8, '0');
serverInfo.Version = new FileInfo(System.Reflection.Assembly.GetExecutingAssembly().Location).LastWriteTime.ToShortDateString();
try
{
// Motherboard serisi alınır
serverInfo.SerialNum = CreateMD5(GetMBId()).Substring(0, 8);
}
catch
{
// Seri alınırken sıkıntı yaşanırsa default bir değer verilebilir
serverInfo.SerialNum = "ABCD1234";
}
Örnek uygulamada yer alan yukarıda kod blokunda örnek giriş gösterilmektedir. Anakart serisi tekillik sağlama amaçlıdır. İllaki anakart serisi olacak diye bir koşul yoktur.
Artık gerekli parametreler hazırdır ve Connect methodunu çağırabiliriz.
if (isMatchedBefore)
{
// Eğer önceden eşleme yapıldıysa sadece connection objesinin kütüphaneye set edlmesi yeterli olacaktır.
printer.SetCommObject(conn.ToObject());
return;
}
try
{
printer = new CompactPrinter();
// Eşleme öncesi ÖKC sicil numarası kütüphane üzerinde ilgili alana set edilir.
printer.FiscalRegisterNo = fiscalId;
try
{
// Loglama yapılacak dizin ve log seviyesi istenirse set edilir. Opsiyonel seçeneklerdir.
//Set edilmemesi durumunda default değerler kullanılır.
if (!String.IsNullOrEmpty(System.Configuration.ConfigurationManager.AppSettings["LogDirectory"]))
{
printer.LogDirectory = System.Configuration.ConfigurationManager.AppSettings["LogDirectory"];
}
printer.LogerLevel = int.Parse(System.Configuration.ConfigurationManager.AppSettings["LogLevel"]);
}
catch { }
// Eşleme başlatılır. Başarılı ise true, başarısız ise false döner.
if (!printer.Connect(conn.ToObject(), serverInfo))
{
throw new OperationCanceledException(FormMessage.UNABLE_TO_MATCH);
}
// ÖKC üzerinde desteklenen bağlantı kapasitesi kontrol edilir, oluşturulan connection ile farklı ise düzenleme yapılır.
// Check supported printer size and set if it is different
if (printer.PrinterBufferSize != conn.BufferSize)
{
conn.BufferSize = printer.PrinterBufferSize;
}
printer.SetCommObject(conn.ToObject());
isMatchedBefore = true;
}
catch (Exception ex)
{
throw ex;
}
Eğer daha önceden ÖKC ile eşleme sağlanmış ise, kurulan yeni bağlantının SetCommObject ile bağlantı nesnesinin set edilmesi yeterli olacaktır. Tekrar eşleme yapmaya ya da Connect methodu kullanmaya gerek yoktur.
Diğer durumda ise, öncelikel CompactPrinter instance edilir ve ilk iş olarak ÖKC sicil numarası FiscalRegisterNo alanına set edilir.
Opsiyonel olarak, log dosyalarının oluşturulacağı dizin ve log seviyesi set edilebilir. Bu alanlara ait gerekli bilgiler KÜTÜPHANE FONKSİYONLARI bölümünde mevcuttur. Herhangi bir işlem yapılmaması durumunda default dizin ve log seviyesi kullanılacaktır. Default log dizini uygulamanın çalıştığı dizin, default log seviyesi de INFO seviyesi yani 4. seviyedir.
Ardından hazır olan parametrelerimiz ile birlikte Connect methodu çağırılır. true dönerse eşleşme başarılıdır. false dönmesi halinde başarısız olmuştur.
NOT: İlk eşleme sırasında Connect methodu çağırılmadan önce, ÖKC servis konumunda ve harici cihaz eşleme başlatılmış olmalıdır. Servis menüsünden bir kere başarılı eşleme yapıldıktan sonra ikincisine gerek yoktur.
Başarılı eşlemeden sonra, CompactPrinter'ın PrinterBufferSize özeliğinden desteklenen bağlantı buffer boyutu alınarak kurulan bağlanıtının buffer boyutu ile karşılaştırma yapılır. Eğer aynı değil ise, mevcut bağlantının buffer boyutu printer buffer boyutu ile set edilir. Ardından SetCommObject ile güncellenen mevcut bağlantı tekrar printer bağlantısı olarak set edilir. İşleme ait örnek uygulamada yer alan kod bloğu aşağıdadır.
// ÖKC üzerinde desteklenen bağlantı kapasitesi kontrol edilir, oluşturulan connection ile farklı ise düzenleme yapılır.
// Check supported printer size and set if it is different
if (printer.PrinterBufferSize != conn.BufferSize)
{
conn.BufferSize = printer.PrinterBufferSize;
}
printer.SetCommObject(conn.ToObject());
Buraya kadar herhangi bir hata alınmamış ise bilgisayar bağlantılı harici sistem ÖKC ile başarılı bir şekilde eşleşmiştir.
ÖKC ile bağlantı kurulması sonucu ÖKC "KASİYER GİRİŞİ" durumunda olacaktır. Sizden kasiyer girişi yapılması beklenmektedir. SignInCashier methodu ile kasiyer girişi yapılır. ÖKC üzerinde yer alan default kasiyer bilgilerini ilgili birimlerimizden temin edebilirsiniz.
Kasiyer girişi sonrası ÖKC, IDLE yani bekleme durumuna geçecektir. Yazdıracağımız belge tipine göre uygun belge başlığı yazdırma methodu çağırılmalıdır. Bazı belgelerin kalem ürün yazdırma opsiyonu yoktur ve bu belge başlığı yazdırma methodunda gerekli tüm parametrelere sahiptir. Fatura tahsilatı, Avans gibi..
Fiş başlatılacak ise;
/// <summary>
/// Starts fiscal receipt
/// </summary>
/// <returns>
/// "ErrorCode"|"Status"|"ReceiptNo"
/// </returns>
string PrintDocumentHeader();
fatura, e-fatura ve e-arşiv bilgi fişleri başlatılacak ise ;
/// <summary>
/// Starts invoice, e-invoice, e-archive
/// </summary>
/// <param name="docType">doc type id</param>
/// <param name="tckn_vkn">TCKN or VKN</param>
/// <param name="docSerial">document serial number</param>
/// <param name="docDateTime">documnet issue date and time</param>
/// <returns>"ErrorCode"|"Status"|"DocumentNo"</returns>
string PrintDocumentHeader(int docType, string tckn_vkn, string docSerial, DateTime docDateTime);
Avans belgesi bilgi fişi için;
/// <summary>
/// Prints advance document
/// </summary>
/// <param name="tckn">customer TCKN</param>
/// <param name="name">customer name</param>
/// <param name="amount">advance amount</param>
/// <returns>"ErrorCode"|"Status"|"DocumentNo"</returns>
string PrintAdvanceDocumentHeader(string tckn, string name, decimal amount);
Fatura tahsilat bilgi fişi için;
/// <summary>
/// Prints collection document
/// </summary>
/// <param name="invoiceNo">collection invoice number</param>
/// <param name="amount">collection amount</param>
/// <param name="subscriberNo">subscriber number</param>
/// <param name="institutionName">instution name</param>
/// <param name="comissionAmount">comission amount</param>
/// <returns></returns>
string PrintCollectionDocumentHeader(string invoiceSerial, DateTime invoiceDate, decimal amount, string subscriberNo, string institutionName, decimal comissionAmount);
Cari hesap tahsilat bilgi fişi için;
/// <summary>
/// Prints Current Account Collection Document
/// </summary>
/// <param name="tcknVkn">TCKN/VKN</param>
/// <param name="customerName">Customer name</param>
/// <param name="docSerial">document serial</param>
/// <param name="amount">document amount</param>
/// <returns>"ErrorCode"|"Status"|"DocumentNo"</returns>
string PrintCurrentAccountCollectionDocumentHeader(string tcknVkn, string customerName, string docSerial, DateTime docDate, decimal amount);
Yemek fişi için;
/// <summary>
/// Starts food document
/// </summary>
/// <returns></returns>
string PrintFoodDocumentHeader();
Otopark bilgi fişi için;
/// <summary>
/// Prints otopark document
/// </summary>
/// <param name="plate">vehicle plate num</param>
/// <param name="entrenceDate">entrence date-time</param>
/// "ErrorCode"|"Status"|"InvoiceNo"
string PrintParkDocument(string plate, DateTime entrenceDate);
methodları kullanılır. Methodlar ve aldıkları parametreler ile ilgili daha detaylı açıklamalar KÜTÜPHANE FONKSİYONLARI kısmında yer almaktadır.
ÖKC üzerinde iki çeşit satış yapılabilmektedir. PLU ya da departman(kısım) satışı. Belge başlatıldıktan sorna satışlar kalem kalem yazdırılabilir ya da JSON formatta uygun methodlar ile toplu halde ÖKC ye gönderilebilir. En hızlı belge gönderimi ve basımı, tutarlılık ve daha az problem için JSON formatta departman satışı yapılmasını önermekteyiz.
/// <summary>
/// Prints sale item
/// </summary>
/// <param name="PLUNo">PLU number of item</param>
/// <param name="quantity">item quantity</param>
/// <param name="amount">item amount</param>
/// <param name="name">item name</param>
/// <param name="barcode">item barcode</param>
/// <param name="deptId">department id of item</param>
/// <returns>
/// "ERrorCode"|"Status"|"SubTotal"
/// </returns>
string PrintItem(int PLUNo, decimal quantity, decimal amount, string name, string barcode, int deptId, int weighable);
/// <summary>
/// Prints sale item
/// </summary>
/// <param name="deptId">department id </param>
/// <param name="quantity">item quantity</param>
/// <param name="amount">item amount</param>
/// <param name="name">item name</param>
/// <param name="weighable">item is weighable or not</param>
/// <returns>
/// "ErrorCode"|"Status"|"SubTotal"
/// </returns>
string PrintDepartment(int deptId, decimal quantity, decimal amount, string name, int weighable);
/// <summary>
/// prints JSON DOC
/// </summary>
/// <param name="jsonStr"></param>
/// <returns></returns>
string PrintJSONDocument(string jsonStr);
/// <summary>
/// Prints sales document which json format. ECR must be in selling state
/// it means StartDocument called before.
/// </summary>
/// <param name="jsonStr"></param>
/// <returns></returns>
string PrintJSONDocumentDeptOnly(string jsonStr);
ya da
/// <summary>
/// Send sale document to print
/// </summary>
/// <param name="jsonStr">Sales document info in JSON format</param>
/// <returns>returns printer response</returns>
string PrintSalesDocument(string jsonStr);
Bu iki method aynı işi yapıyor gibi görünse de farklılıkları mevcuttur. PrintJSONDocumentDeptOnly ile sadece satışlar ya da sadece ödemeler gönderilebilir. Fakat PrintSalesDocument ile sadece tamamlanmış belgeler yani ödemesi ile birlikte kapatılmış belgeler gönderilebilir.
Hız bakımından departman satışları PLU satışlarına göre daha hızlıdır. PrintJSONDocumentDeptOnly methoduna göre de PrintSalesDocument methodu daha hızlıdır.
Belge kapatma;
/// <summary>
/// Closes receipt
/// </summary>
/// <param name="slipCopy">prints slip copy </param>
/// <returns>
/// "ErrorCode"|"Status"|"ReceiptNumber"
/// </returns>
string CloseReceipt(bool slipCopy);
için yukarıdaki method kullanılabileceği gibi, JSON satışlarda ilgili JSON alanı ile de yapılabilir. Detaylar için JSON satış belgesi kısmını inceleyebilirsiniz.
İndirim ve arttırımlar genel olarak ürüne yapılan ya da belge toplamına yapılan şekilde ikiye ayırlabilir. Kendi içlerinde de; yüzdesel indirim, yüzdesel arttırım, tutarsal indirim, tutarsal arttırım olarak dörde ayırabiliriz.
/// <summary>
/// Prints adjustment
/// </summary>
/// <param name="adjustmentType">
/// enum number having the following meanings
/// {
/// 0 : Fee
/// 1 : Percent Fee
/// 2 : Discount
/// 3 : Percent Discount
/// }
/// </param>
/// <param name="amount">amount of adjustment</param>
/// <param name="percentage">percentage value if adjustment type is fee or discount</param>
/// <returns>
/// "ErrorCode"|"Status"|"SubTotal"
/// </returns>
string PrintAdjustment(int adjustmentType, decimal amount, int percentage);
İndirim/arttırım işlemleri için PrintAdjustment methodu kullanılır. Ürün satışından sonra çağırılırsa en son satılan ürüne uygulanır. Aratoplam alınır ve ondan sonra çağırılırsa belge toplamına uygulanır. Belge aratoplamı PrintSubtotal methodu ile alınır.
JSON satışlarında ise ilgili alanlar doldurulmalıdır. Adjustment sınıfı kullanılır. JSONItem dahilinde yer alırsa ilgili ürüne uygular, JSONDocument dahilindeki ise belge toplamına uygulanır.
class Adjustment
{
public AdjustmentType Type = AdjustmentType.Discount;
public decimal Amount = 0m;
public int Percentage = 0;
public string NoteLine1;
public string NoteLine2;
}
PLU satışı,
/// <summary>
/// Voids a sold item on document
/// </summary>
/// <param name="PLUNo">PLU number of item</param>
/// <param name="quantity">item quantity</param>
/// <returns>
/// "ErrorCode"|"Status"|"SubTotal"
/// </returns>
string Void(int PLUNo, decimal quantity);
departman satışı ise,
/// <summary>
/// Voids a sold item on document
/// </summary>
/// <param name="deptId">Department id to be void</param>
/// <param name="deptName">Department name to be void</param>
/// <param name="quantity">item quantity</param>
/// <returns>
/// "ErrorCode"|"Status"|"SubTotal"
/// </returns>
string VoidDepartment(int deptId, string deptName, decimal quantity);
methodları kullanılarak iptal edilebilir.
Belge iptalinde ise
/// <summary>
/// Voids receipt
/// </summary>
/// <returns>
/// "ErrorCode"|"Status"|"ReceiptNumber"
/// </returns>
string VoidReceipt();
kullanılır. Bu methodlarda ÖKC durumuna dikkat edilmelidir. Bu işlemlerin gerçekleşebileceği uygun durumlarda olmalıdır, aksi takdirde hata alınır.
ÖKC, IDLE konumda iken yani üzerinde bir işlem yok iken kağıt bitmesi ya da rulo değiştirilmesi durumunda herhangi bir işlem yapmaya gerek yoktur. İşlem sırasında kağıt bitmesi durumunda ÖKC ilgili hata kodunu fırlatır. Hata alındıktan sonra kasiyer yeni rulo takar. Bu adımdan sorna ÖKC "7" hata kodu ile SİLME GEREKLİ mesajı yollayacaktır. Rulo takıldıktan sonra CheckPrinterStatus komutu ile ÖKC durumunu kontrol etmekte fayda vardır. İlgili hata kodu alındıktan sonra
/// <summary>
/// this function called if ECR returns error codes below
/// 7 ERR_CLEAR_REQUIRED
/// 35 ERR_NEW_EJ
/// 134 ERR_BLK_Z_REQUIRED
/// </summary>
/// <returns>
/// "ErrorCode"|"Status"
/// </returns>
string ClearError();
komutu ile SİLME işlemi gerçekleştirilir. Bu işlemin ardından ÖKC ile kaldığınız yerden çalışmaya devam edebilirsiniz. Ayrıca JSON belge satışı sırasında kağıt bitimi gerçekleşirse ve basılmayan ürünler mevcut ise bu komut ardına basılmayan kısımlar da basılarak belge kapatılır.
ÖKC üzerinde 24 saat dahilinde Z raporu alınmaması durumunda fırlatılır. Bu durumda dikkat edilmesi gereken nokta; bu hata alındıktan sonra PrintZReport methodu ile Z raporunu yazdıramazsınız. Z raporunun yazdırılabilmesi için ClearError komutu kullanılmalıdır. Devamında işlemlerinize devam edebilirsiniz.
/// <summary>
/// this function called if ECR returns error codes below
/// 7 ERR_CLEAR_REQUIRED
/// 35 ERR_NEW_EJ
/// 134 ERR_BLK_Z_REQUIRED
/// </summary>
/// <returns>
/// "ErrorCode"|"Status"
/// </returns>
string ClearError();