|
Az Ön kosara még üres! |
|
Driver Sam4s Pénztárgéphez |
|
|
|
Ár (Nettó): 30.000 Forint Az AC420MDrv.ocx használata
Az AC420MDrv.ocx használatához szükséges a Sam4s ER-420M típusú pénztárgép kezelési útmutatójának ismerete!
A Sam4s ER-420M típusú pénztárgép képes arra, hogy a vonalkód olvasóval beolvasott (vagy a pénztárgép billentyűzetén beütött) termékkódot lekérdezze a számítógéptől, és a visszakapott adatok alapján értékesítse a cikket, ill. az értékesítési adatokat továbbítsa a számítógépre is. Sőt, lehetőséget biztosít vevőazonosításra, ezáltal a megfelelő árszint automatikus kiválasztására is! Az értékesítés folyamata
1. Az értékesítés a napnyitással kezdődik (eladó bejelentkezés szükséges lehet, ill. szükség esetén kötelezővé tehető). 2. Eladás előtt végezhető vevő-, vagy vevőcsoport (pl.: kisker, nagyker) azonosítás (szükség esetén kötelezővé tehető). Ez történhet vonalkód olvasóval (max. 30 alfanumerikus karakter) vagy a pénztárgép billentyűzetéről (ekkor csak számokat használhatunk). 3. Eladás: - Mennyiség bevihető billentyűzetről, vagy beolvasható mérlegről (ha szükséges) - A termék azonosítása a termék kód (max. 14 számjegy, pl.: EAN 8, EAN 13) vonalkód olvasó általi beolvasásával, vagy a billentyűzetről történő bevitellel történhet (Eladás történhet hagyományos módon az egységár megadásával, és a megfelelő gyűjtőbillentyű megnyomásával.) 4. Utolsó, vagy korábbi tétel sztornója (ha szükséges) 5. Kedvezmény/felár adása tételre vagy részösszegre (ha szükséges) 6. Visszáru funkció alkalmazása (ha szükséges) 7. Fizetés akár többféle fizetőeszközzel - készpénzzel - csekkel - 8-féle hitellel - 4-féle valutával A megkezdett nyugta megszakítható. 8. Napi zárás
A PLU-k jellemzői (A 420M modell rendelkezik a 420F minden képességével, beleértve az árucikkek pénztárgépen való tárolásának lehetőségét is. Ezért a PLU-k az itt tárgyalt lekérdező üzemmódban is azonos jellemzőkkel rendelkeznek, mint a hagyományos PLU-kezelés esetén.) A PLU előre programozott árucikket jelent. Minden PLU rendelkezik egy maximum 14 számjegyből álló azonosító kóddal (ez célszerűen vonalkód, de lehet akár egy egyjegyű gyorskód is, amit a pénztárgép billentyűzetén kell beütni), megnevezéssel, három különböző csoporthoz rendelhető. Státuszában beállítható a működési módja, rendelhető hozzá VTSZ-kód, kapcsolható hozzá egy másik PLU, ill. három különböző ár rendelhető hozzá. Használata rendkívül megkönnyíti az eladást. Elég csak beolvasni (vagy beütni) a termék kódját és a pénztárgép azonnal el is adja, és kinyomtatja a cikk nevét, árát. Csoportképzéssel egy csoportba (pl. termékcsoport fogyásának azonosítására, mint tejtermékek, üdítőitalok, kenyér- és péksütemény, műszaki cikkek, stb.) tudjuk gyűjteni az azonos csoporthoz rendelt egyedi PLU-k értékesítési eredményeit. Minden PLU hozzárendelhető egy, két, vagy három különböző csoporthoz is. Alapesetben a pénztárgép 20 csoportot kezel, ezek számát kérésére a szerviz csökkentheti, ill. növelheti.
A státuszban beállítható opciók: 1. Előre programozott ár Ha nincs beállítva, az áraknál megadott értékek maximális árat jelentenek, ekkor természetesen a termék árát minden eladáskor meg kell adni a pénztárgép billentyűzetén. 2. Az előre programozott ár felülírható Beállítása esetén a kezelési kézikönyvben megadott módon eltérhetünk a beállított ártól. 3. Egytételes cikk Amennyiben a nyugtán első tételként kerül eladásra, a pénztárgép automatikusan lezárja a nyugtát. 4. Azonosító szám megadása kötelező A cikk eladása előtt kötelező egy azonosító szám (pl.: gyártási szám) megadása. 5. Tiltott Beállítása esetén a terméket nem lehet eladni. 6. Mérendő Értékesítés előtt kötelező a súly megadása 7. Adalékanyag, tartozék Önállóan, első tételként nem értékesíthető (pl. csomagolóanyag) 8. Kötelező adalékanyag bevitele A termék eladása után csak adalékanyag értékesíthető (ld. 7. opció) 9. Számláló nem nullázódik mikor PLU Z riport készül – ebben a megoldásban lényegtelen PLU riport kérésekor megkapjuk cikkenként az eladott darabszámot, és forgalmazott összeget. Ha az opció nincs beállítva, Z riport kérésekor mind a darabszám, mind az összeg nullázódik, ellenkező esetben csak az összeg. 10. Raktárkészletes – ebben a megoldásban ne használja, értéke mindig 0 legyen! Lehetőség van arra, hogy a pénztárgép maga kezelje a megadott cikkekből a raktárkészletet. A rendelkezésre álló darabszámot, egy erre szolgáló függvénnyel fel tölteni a pénztárgépbe (de előbb a PLU-t kell raktárkészletessé tenni!). A gép minden eladáskor csökkenteni fogja a készletet az eladott mennyiséggel. Csak a rendelkezésre álló készlet erejéig enged értékesíteni! Nem ajánljuk a használatát! 11. ÁFA kör A jelenleg (2006. január 24.) hatályos törvények szerint az ÁFA körök a következők: 1: 5% („A” ÁFA kör) 2: 18% („B” ÁFA kör) 3: 25% („C” ÁFA kör) 4: AJT (adójegyes termékek, „D” ÁFA kör) 5: TAM (tárgyi adómentes termékek, „E” ÁFA kör) 12. Hozzárendelt mennyiségi egység A pénztárgépben beállított mennyiségi egység sorszáma (1-9). Kötelező az egyikhez hozzárendelni a cikkeket. Csak egyszerűsített számla nyomtatásakor van jelentősége, ekkor kerül nyomtatásra. A mennyiségi egységek programozását a szerviz szakembere végzi, egyeztessen vele! A VTSZ-kód csak egyszerűsített számlán kerül nyomtatásra. Egy PLU-hoz hozzákapcsolhatunk egy másikat (pl. a sör és az üveg). Ekkor az egyik eladása maga után vonja a másikat is – a pénztárgép lekérdezi a kapcsolt terméket is, és ugyanannyi darabot ad el belőle. A megadott árak a státusz 1. opciójától függően fix árat, vagy maximális árat jelentenek. Ha a pénztárgép árszint lehetőségének használata mellet dönt, minden egyes szinthez végre kell hajtani a memóriafoglalás újrafelosztását, valamint a funkcióbillentyűt definiálni szükséges a klaviatúrára. Az ehhez szükséges feladatok elvégzéséhez kérje a szerviz segítségét. E funkció használata esetén ugyanazon PLU három különböző árszinten értékesíthető (például a normál árhoz képest kétféle felárral értékesíti ugyanazon terméket műszaktól, napszaktól, szezontól függően). Alapesetben a pénztárgép csak egy árszintet kezel, az árszintek növelésével csökken a használható PLU-k száma!
Rendszerkövetelmények: min. operációs rendszer min. processzor min. RAM soros port
Az adott programozási nyelvnek alkalmasnak kell lennie az ActiveX technológia használatára. Pl.: Delphi, Visual Basic stb.
Az ocx-et első használat előtt regisztrálni kell! Ennek legegyszerűbb módja a „regsvr32 AC420MDrv.ocx” parancs futtatása.
Az online számítógépes kapcsolathoz szükséges, csak szerviz által végezhető beállítások
A nem kívánt billentyűfunkciók (pl. kedvezmény, megszakítás billentyű) letilthatók.
A kommunikáció
Az illesztő program, csak azokkal a pénztárgépekkel működik együtt korlátozás nélkül, amelyekhez megvásárolták! Ellenkező esetben a program minden funkciója működik, de egy tétel ára maximum 99 Ft lehet! A mellékelt sam4s.enc fájl tartalmazza a megvásárolt gépekhez tartozó kódokat.
Egy számítógép akár több pénztárgépet is kiszolgálhat, de vegyük azt figyelembe, hogy a számítógép esetleges meghibásodása esetén csak hagyományos módon, közvetlenül gyűjtőbe lehet értékesíteni. (A számítógépes kapcsolat nélküli értékesítés adatait a pénztárgép tételesen nem tárolja!) Ezért azt ajánljuk, hogy az egynél több értékesítési hellyel rendelkező üzletekben legalább két számítógép szolgálja ki a pénztárgépeket. Négynél több pénztárgépet ne csatlakoztasson egy számítógéphez!
Az osztályból csak egyetlen példányt hozzon létre akkor is, ha több pénztárgépet akar kiszolgálni! Ebben az esetben minden használni kívánt portra hívja meg a PortOpen függvényt. Az eladás folyamatáról események tájékoztatnak: Egy termék kódjának beolvasása egy OnPluInquire eseményt generál. A tényleges értékesítéshez a SendPlu függvényt kell hívni az eseményben kapott kódú termék adataival. Amennyiben a termék első a nyugtában, előbb egy OnOpenReceipt esemény következik, majd egy OnSell. Minden további termék eladása egy OnSell-t eredményez. (Amennyiben közvetlenül gyűjtőbe értékesítenek, az OnPluInquire természetesen elmarad, de az adatokat ekkor is megkapjuk az eladásról.) Kedvezmény, ill. felár adásakor egy OnModify, fizetéskor egy OnTender érkezik (ebből több is lehet, ha több fizetőeszközzel egyenlítik ki a nyugtát), a nyugta lezárását pedig egy OnCloseReceipt jelzi. Ha a nyugta megszakad, akkor az OnCloseReceipt elmarad, helyette egy OnCancelReceipt érkezik. Vevőazonosításkor egy OnCustInquire keletkezik, erre a SendCust függvény hívásával kell válaszolni. A visszakapott vevőnév első 16 karakterét a pénztárgép megjeleníti a kijelzőjén. (Ezt a funkciót a pénztárgép „VEVŐ. AZON.” billentyűjének megnyomásával kell kezdeményezni.) Vevőazonosítást a nyugtán belül többször is lehetséges. Függvények (A deklarációk a Delphi szintaktikáját követik, az objektum típusa: AC420.)
A Sam4s 420M vezérlőprogramját 2006. 04. 14-én módosítottuk! A módosítások a korábban üzembe helyezett pénztárgépeket is érintik, ezekben is ki fogjuk cserélni a vezérlőprogramot három hónapon belül. Ezzel szükségtelenné vált a port megnyitáskor az adóazonosító szám ellenőrzése, mivel az új programmal működő pénztárgép a plu lekérdezésekor elküldi az adóazonosítóját is. Ha a pénztárgépet ez alapján akarja azonosítani, lehetősége van rá az új OnPluInquireEx esemény kezelésével. Mivel az adóazonosító szám lekérdezése a port nyitásakor különböző problémákkal járt, az Init függvény helyett az azonos paraméterekkel hívható PortOpen függvény használatát javasoljuk. A PortOpen hívása után nem keletkezik OnConnect esemény function Init(port_num: Byte; baudrate, log_size: Integer; const sn_path: WideString): Integer Helyette a PortOpen függvény használatát javasoljuk! A kapcsolat felvételére szolgál. Megnyitja a megadott portot, és ellenőrzi a gépszámot. Sikeres kapcsolatfelvétel esetén egy OnConnect esemény keletkezik. Ha az esemény nem következik be 1500 ms-on belül, a kapcsolatfelvétel sikertelen volt, a program demo módban fog működni! Ha a kapcsolatfelvétel sikeres volt a pénztárgép kijelzőjén „PC KAPCSOLAT” felirat látható. A „TÖRLÉS” gomb megnyomására a pénztárgép visszaáll eladás módba.
A paraméterek jelentése: port_num: soros port száma (1-16) baudrate: 9600 v. 19200 (meg kell egyezzen pénztárgépen beállított kommunikációs sebességgel) log_size: a log fájl mérete KB-ban megadva (max. 500). Ha értéke 0 nem készít logot. A log helye az sn_path-ban megadott útvonal, ezért erre a könyvtárra írási jog szükséges amennyiben logot szeretnénk készíteni! Csak indokolt esetben használjuk, mert lassítja a kommunikációt! sn_path: a sam4s.enc elérési útvonala (ha lehet egy helyi meghajtóra másoljuk, mert a hálózatra loggolás nagyon lelassíthatja a kommunikációt!)
function PortOpen(port_num: Byte; baudrate, log_size: Integer; const sn_path: WideString): Integer; Megnyitja a megadott portot.
A paraméterek jelentése: port_num: soros port száma (1-16) baudrate: 9600 v. 19200 (meg kell egyezzen pénztárgépen beállított kommunikációs sebességgel) log_size: a log fájl mérete KB-ban megadva (max. 500). Ha értéke 0 nem készít logot. A log helye az sn_path-ban megadott útvonal, ezért erre a könyvtárra írási jog szükséges amennyiben logot szeretnénk készíteni! Csak indokolt esetben használjuk, mert lassítja a kommunikációt! sn_path: a sam4s.enc elérési útvonala (ha lehet egy helyi meghajtóra másoljuk, mert a hálózatra loggolás nagyon lelassíthatja a kommunikációt!)
procedure PortClose(port_num: Byte) Bezárja a paraméterben megadott portot.
function SendPlu(port_num: Byte; const plu_code, desc: WideString; group1,group2, group3: Byte; const status, vtsz, link: WideString; price1, price2, price3: Integer): Integer Az OnPluInquire eseményben lekérdezett termék adatait ezzel a függvénnyel lehet a pénztárgépre továbbítani. Ha az adatok megfelelőek, értékesíti a terméket. Port_num és plu_code paraméterek értéke meg kell egyezzen az esemény azonos nevű paramétereiével. Ha a keresett kódú termék nem található, plu_code paraméter értéke „0” legyen.
A paraméterek jelentése: port_num: soros port száma plu_code: max. 14 számjegyű termékazonosító kód desc: max. 24 karakteres megnevezés group1: 0-99 közötti érték group2: mint group1 group3: mint group1 stat: max. 12 számjegy, az első tíz 1 v. 0 (igen v. nem); a 11. 1-5; a 12. 1-9 közötti értékkel vtsz: max. 11 karakter link: max. 14 számjegyű azonosító kód (ha nincs, értéke legyen „0”) price1: max. 8 számjegy price2: mint price1 price3: mint price1
function SendCust(port_num: Byte; const cust_id, cust_desc: WideString): Integer Az OnCustInquire eseményben lekérdezett vevő adatait ezzel a függvénnyel lehet a pénztárgépre továbbítani. A cust_desc paraméterben megadott vevőnév első 16 karaktere megjelenik a pénztárgép kijelzőjén. A port_num és cust_id paraméterek értéke meg kell egyezzen az esemény azonos nevű paramétereiével. Ha a keresett kódú vevő nem található cust_id paraméter értéke „0” legyen.
A paraméterek jelentése: port_num: soros port száma cust_id: max. 30 karakteres vevőazonosító cust_desc: max. 16 karakteres vevőnév
A pénztárgép programozásához szükséges függvények jellemzői:
A string paraméterek néhány esetben (ezt a függvények leírásánál külön jelezzük) tulajdonképpen listák, melyben az egyes elemeket az ASCII 255-ös karakter választja el egymástól. Azaz pl. a CurrencyUpload függvény cur_id, desc, stb. paraméterében több kódot, nevet, stb. is megadhatunk ASCII 255-ös karakterrel elválasztva. (Természetesen egy függvény minden paraméterének azonos számú elemet kell tartalmaznia). Így ha mind a négy valuta árfolyamát akarjuk megváltoztatni elég egyszer meghívni a függvényt. Ha nyitott napnál programozzuk a pénztárgépet nyomtat egy rövid jelentést a papírszalagra. A programozás végén kétszer meg kell nyomni a pénztárgép „TÖRLÉS” billentyűjét!
function GetStatus(port_num: Byte; var day_open: WordBool): Integer; A nap nyitott állapot lekérdezésére szolgál. (Bizonyos programozási utasításokat csak zárt napnál hajt végre a pénztárgép.)
A paraméterek jelentése: port_num: soros port száma day_open: ha „true” a nap nyitva van
function CurrencyUpload(port_num: Byte; const cur_id, desc, rate, nod: WideString): Integer; A valuták feltöltésére szolgáló függvény. A pénztárgép négy valutát képes kezelni. A string paraméterek listák.
A paraméterek jelentése: port_num: soros port száma cur_id: programozandó valuta sorszáma (1-4) desc: max. 3 karakteres megnevezés rate: max. 6 számjegyen a váltási arány (beleértve a tizedesjegyeket is) nod: tizedes jegyek száma (0-7) (azaz ha a váltási arány 256,23 akkor rate értéke 25623, nod értéke 2 legyen)
function SetClerkOptions(port_num: Byte; entry_code: WordBool; default_clerk: Byte; stay_down: WordBool): Integer; Az eladókhoz tartozó opciók beállítására. Végrehajtáshoz zárt nap szükséges!
A paraméterek jelentése: port_num: soros port száma entry_code: ha „true”, az eladóknak kóddal kell bejelentkezniük default_clerk: ha entry_code értéke „false”, az itt megadott eladót lépteti be az eladó gomb megnyomásakor (1-10) stay_down: ha „false” minden nyugta után újra be kell jelentkeznie az eladónak
function ClerkUpload(port_num: Byte; const clerk_id, desc, secret_code, status: WideString): Integer; Az eladók nevének, kódjának programozására szolgál. A pénztárgép alapállapotban 10 eladót kezel, de akár 99 is allokálható. A végrehajtáshoz zárt nap szükséges! A string paraméterek listák.
A paraméterek jelentése: port_num: soros port száma clerk_id: eladó sorszáma (1-99, de max. az allokált eladók száma) desc: max. 12 karakteres megnevezés secret_code: max. 7 jegyű tikos kód status: jelenleg nem használt
Események
procedure OnConnect(port_num: Byte; const ap_num: WideString; demo_mode: WordBool); Közvetlenül az Init függvény hívása után keletkezik.
A paraméterek jelentése: port_num: soros port száma ap_num: a pénztárgép adóazonosító száma demo_mode: ha „true”, a korábban ismertetett korlátozásokkal működik a program
procedure OnPluInquire(port_num: Byte; const plu_code: WideString) Bekövetkezik, ha egy termék kódját vonalkód olvasóval beolvassák, vagy beütik a pénztárgép billentyűzetén. A termék adatait a SendPlu függvénnyel kell a pénztárgépnek küldeni. Figyelem: a pénztárgép a vonalkód vezető 0-it nem küldi el! (A 2.0-ás verziótól az OnPluInquire után keletkezik egy OnPluInquireEx esemény is a korábban ismertetettek miatt az OnConnect esemény kiváltására, de csak az egyiket szabad lekezelni!)
A paraméterek jelentése: port_num: soros port száma plu_code: a termék azonosító kódja
procedure OnPluInquireEx(port_num: Byte; const plu_code: WideString; const ap_num: WideString; demo_mode: WordBool); Bekövetkezik, ha egy termék kódját vonalkód olvasóval beolvassák, vagy beütik a pénztárgép billentyűzetén. A termék adatait a SendPlu függvénnyel kell a pénztárgépnek küldeni. Figyelem: a pénztárgép a vonalkód vezető 0-it nem küldi el! (A 2.0-ás verziótól az OnPluInquireEx előtt keletkezik egy OnPluInquire esemény is a korábban ismertetettek miatt, de csak az egyiket szabad lekezelni!)
A paraméterek jelentése: port_num: soros port száma plu_code: a termék azonosító kódja ap_num: a pénztárgép adóazonosító száma demo_mode: ha „true”, a korábban ismertetett korlátozásokkal működik a program
procedure OnCustInquire(port_num: Byte; const cust_id: WideString) Bekövetkezik, ha egy vevő kódját vonalkód olvasóval beolvassák, vagy beütik a pénztárgép billentyűzetén. A termék adatait a SendCust függvénnyel kell a pénztárgépnek küldeni.
A paraméterek jelentése: port_num: soros port száma cust_id: a vevő azonosítója
procedure OnDayOpen(port_num: Byte; const do_date: WideString; const do_time: WideString; clerk_num: Byte; const ap_num: WideString) Bekövetkezik, ha napi nyitást végeznek a pénztárgépen.
A paraméterek jelentése: port_num: soros port száma do_date: dátum ÉÉHHNN formában do_time: idő ÓÓPP formában clerk_num: bejelentkezett eladó száma ap_num: pénztárgép adóazonosító száma
procedure OnOpenReceipt(port_num: Byte; const or_date: WideString; const or_time: WideString; clerk_num: Byte; receipt_num: Integer; const ap_num: WideString) A nyugta nyitásakor (az első tétel eladása előtt) következik be.
A paraméterek jelentése: port_num: soros port száma or_date: dátum ÉÉHHNN formában or_time: idő ÓÓPP formában clerk_num: bejelentkezett eladó száma receipt_num: a megkezdett nyugta száma ap_num: pénztárgép adóazonosító száma
procedure OnSell(port_num: Byte; tr_type: Byte; item_type: Byte; const item_code: WideString; unit_price: Integer; total_price: Integer; count: Integer) Bekövetkezik, ha a pénztárgépen értékesítés történt.
A paraméterek jelentése: port_num: soros port száma tr_type: tranzakció típusa ha 0: eladás ha 1: sztornó ha 2: visszáru item_type: tétel típusa ha 0: PLU ha 1: gyűjtő item_code: PLU vagy gyűjtő kódja (item_type-tól függően) unit_price: termék egységára (gyűjtőbe történő eladásnál van jelentősége) total_price: unit_price*count a pénztárgép által számolt értéke count: darabszám 100-zal szorozva (pl.: 1,15 esetén 115)
procedure OnModify(port_num: Byte; m_type: Byte; m_mode: Byte; amount: Integer) Bekövetkezik, ha engedményt adnak, vagy a felár funkciót használják a pénztárgépen.
A paraméterek jelentése: port_num: soros port száma m_type: az ármódosítás típusa ha 68: kedvezmény ha 83: felár m_mode: az áreltérítés módja ha 73: tételre ha 83: részösszegre amount: az ármódosítás értéke
procedure OnTender(port_num: Byte; t_type: Byte; amount: Integer; huf_value: Integer; change: Integer) Bekövetkezik, ha fizettetnek a pénztárgépen.
A paraméterek jelentése: port_num: soros port száma t_type: fizetőeszköz típusa ha 48: készpénz ha 49: csekk ha 50-57: hitel1-hitel8 ha 65-68: valuta1-valuta4 amount: átadott összeg (ha t_type:65-68, akkor amount értékét 100-zal kell osztani, pl. 110 esetén az átadott érték 1,10!) huf_value: átadott összeg értéke forintban change: visszajáró forintban
procedure OnCloseReceipt(port_num: Byte; const cr_date: WideString; const cr_time: WideString; clerk_num: Byte; receipt_num: Integer; const ap_num: WideString) A nyugta lezárásakor (ha a fizetéskor megadott összeg eléri vagy meghaladja a fizetendőt) következik be.
A paraméterek jelentése: port_num: soros port száma cr_date: dátum ÉÉHHNN formában cr_time: idő ÓÓPP formában clerk_num: bejelentkezett eladó száma receipt_num: a megkezdett nyugta száma ap_num: pénztárgép adóazonosító száma
procedure OnCancelReceipt(port_num: Byte; const cl_date: WideString; const cl_time: WideString; clerk_num: Byte; receipt_num: Integer; const ap_num: WideString) A nyugta megszakításakor következik be.
A paraméterek jelentése: port_num: soros port száma cl_date: dátum ÉÉHHNN formában cl_time: idő ÓÓPP formában clerk_num: bejelentkezett eladó száma receipt_num: a megkezdett nyugta száma ap_num: pénztárgép adóazonosító száma
procedure OnPaidInOut(port_num: Byte; p_type: Byte; cash: Integer; check: Integer; const pd_date: WideString; const pd_time: WideString; clerk_num: Byte; const ap_num: WideString) Bekövetkezik, ha Pénz be vagy Pénz ki műveletet végeznek a pénztárgéppel.
A paraméterek jelentése: port_num: soros port száma p_type: a művelet típusa ha 48: Pénz be ha 49: Pénz ki cash: betett/kivett készpénz check: betett/kivett csekk pd_date: dátum ÉÉHHNN formában pd_time: idő ÓÓPP formában clerk_num: bejelentkezett eladó száma ap_num: pénztárgép adóazonosító száma
A függvények lehetséges visszatérési értékei:
0: Nincs hiba 1: Hiba a port nyitásakor 2. Időtúllépés (a pénztárgép nem válaszol) 3. A megadott port nincs nyitva 4. Paraméter feldolgozási hiba: a paraméterek értéke nem megfelelő 5. Hiba a sam4s.enc fájl olvasásakor 6. Paraméter feldolgozási hiba: feltöltéskor a paraméterekben lévő elemek száma nem egyezik 7. Paraméter feldolgozási hiba: feltöltéskor túl hosszú (legalább) az egyik paraméter 8. Nincs elég eladó allokálva! 9. Négy portnál többet nem lehet megnyitni!
Programverziók:
V 1.0.0: 2006.02.14. az első verzió
V 2.0.0: 2006.04.24. A Sam4s 420M vezérlőprogramja 2006. 04. 14-től módosult.
Új függvények: PortOpen GetStatus CurrencyUpload SetClerkOptions ClerkUpload Új esemény: OnPluInquireEx Hibajavítás: az OnCustInquire eseményben a cust_id mindig 30 karakter hosszú volt: javítva OnPaidInOut eseményben ha p_type=49 (pénz ki) cash ill. check értéke negatív volt: javítva
V 2.1.0: 2006.06.15. A Visual Basicben készült, és lefordított alkalmazásokban nem voltak események A program átdolgozásával a probléma megoldódott. Ebből kifolyólag a megnyitható portok száma 4-re lett korlátozva. (A korábbi verziókban nem volt korlát.)
V 2.1.1: 2007.07.05. A 2.1-es verzióba az átdolgozás során került egy hiba: nem működtek a GetStatus, CurrencyUpload, SetClerkOptions, ClerkUpload függvények. Javítva. |