miro35 03.11.2010 09:21
Predmet:Re: Fiskalizacija u FBiH

Evo i code koji pravi ovaj xml uspio sam ga napravit:
PreuzmiIzvorni kôd (Text):
  1. Dim RS2
  2. Dim Db As Database
  3. Set Tekst = New Stream
  4. Tekst.Open
  5. Tekst.Position = 0
  6. Tekst.Charset = "UTF-8"
  7. Tekst.WriteText "<?xml version=""1.0"" encoding=""UTF-8""?>" & vbCrLf
  8. Tekst.WriteText "<TremolFpServer Command=""Receipt"" Description=""*** RA UN ***"">" & vbCrLf
  9.  
  10. Set Db = CurrentDb()
  11. Set RS2 = Db.OpenRecordset("SELECT * FROM qryIZLAZMP", dbOpenDynaset)
  12.     Do While Not RS2.EOF
  13. 'Tekst.WriteText "<?xml version=""1.0"" encoding=""UTF-8""?>" & vbCrLf
  14. 'Tekst = "<" & "Item" & "Description" & "=" & RS2!ArtNaz & "/>" & vbCrLf
  15.  Tekst.WriteText "<" & "Item Description" & "=" & """" & RS2!ArtNaz & """" & " " & "Quantity" & "=" & """" & RS2!KOLICINA & """" & " " & "Price" & "=" & """" & RS2!PRODCIJ & """" & " " & "VatInfo=""1"" " & "Department=""4"" " & "UnitName" & "=" & """" & RS2!SIFJED & """" & " " & "/>" & vbCrLf
  16. 'Tekst.WriteText "<" & "Item" & ">" & "Description" & "=" & RS2!ArtNaz & "/>" & vbCrLf
  17. 'Tekst.WriteText "<" & "Item" & ">" & "Description" & "=" & RS2!ArtNaz1 & "/>" & vbCrLf
  18. RS2.MoveNext
  19.  
  20. 'Tekst.WriteText "<Payment Type=""Gotovina"" Amount=""100.95""/>" & vbCrLf
  21. 'Tekst.WriteText "<AdditionalLine Message=""Linija sa proizvoljnim tekstom 1""/>" & vbCrLf
  22. 'Tekst.WriteText "<AdditionalLine Message=""Linija sa proizvoljnim tekstom 2""/>" & vbCrLf
  23. 'Tekst.WriteText "</Item Description>" & vbCrLf
  24.  
  25.  
  26.     Loop
  27.    
  28.       RS2.Close
  29.       Tekst.WriteText "<Payment Type=""Virman"" Amount=""1""/>" & vbCrLf
  30.       Tekst.WriteText "<Payment Type=""Gotovina"" " & "Amount" & "=" & """" & DSum("[PRODCIJUK]", "QryIZLAZMP") & """" & " " & "/>" & vbCrLf
  31.       Tekst.WriteText "<AdditionalLine Message=""Hvala na posjeti""/>" & vbCrLf
  32.    Tekst.WriteText "</" & "TremolFpServer" & ">" & vbCrLf
  33.       'Tekst.WriteText "<TremolFpServer>" & vbCrLf
  34.  
  35.    
  36.     Set Db = Nothing
  37. Tekst.SaveToFile "C:\Prodaja\Miro.xml", adSaveCreateOverWrite
  38.  Tekst.Close

dragan59 03.11.2010 21:48
Predmet:Re: Fiskalizacija u FBiH

U RS se koriste 3 fiskalna printera. Mikroelektronika ima verziju FP550P od Datecsa, Digit ima printer Partner od Karat Electronics-a i Galeb ima neÅ¡to slično FP550P, ali na tijelu nekog Epson termalnog printera.
Svaki od ovih printera ima svoj tzv. "fiskalni drajver" koji je certifikovan od strane komisije ministarstva finansija. I samo taj drajver "ima pravo" da se obaća direktno printeru. POS softveri ne moraju da se certifikuju, ali moraju da se preprave tako da komuniciraju sa fiskalnim drajverom. Ta komunikacija se obično obavlja slanjem tekstualnog (i XML je samo specijalno formatiran txt) fajla u određeni folder. F. drajver obradi fajl i ako je sve OK izvrÅ¡i ga. Nakon Å¡to ga obradi on u njega (u poslati tekstualni fajl) upiÅ¡e na određena mjesta npr. ako je sve proÅ¡lo OK, onda OK, ako je bila greÅ¡ka Er ili Sd(standby). Takođe može da upiÅ¡e i broj izdatog fiskalnog računa Å¡to je vrlo bitna za automatizovan prenos u poresku fakturu.

NajviÅ¡e je u upotrebi printer FP550P (lokalno nazvan Professional, a VP verzija Hybrid) pa najveći broj POS softvera radi sa njim tj. sa FLink-om koji je njegov certifikovani drajver.
Evo primjera:
prodaja:

S,1,______,_,__;Artikl-xx;0,3;1,000;1;1;2;0;1593;
S,1,______,_,__;Artikl-xy;0,3;1,000;1;1;2;0;1594;
T,1,______,_,__;

//obasnjenje
S,-komanda za prodaju
1,-redni broj kase, uvijek 1
______,_,__; - 6, pa 1 pa 2 underscor-a, na ta mjesta nakon obrade drajver upise broj kase i rezulta obrade, npr 025358,1,OK, ili u slučaju greÅ¡ke 025358,1,Er
Artikl-xx - naziv artikla, do 32 znaka ili već koliko proizvođač kaže, mora biti jedinstven
0,3 - MPC sa PDV-om
1,000 - količina
1 - štand - nebitno uvijek 1
1 - grupa - nebitno uvijek 1
2 - PDV stopa (17%), za one van PDV-a ide 1, a za artikle bez PDV-a (boravišna taksa npr.) 4
0 - uvijek 0
1593 - PLU artikla, Integer pod kojim printer vodi artikl.

T-komande za plaćanje
Iza crtica nema niÅ¡ta jer je odabrano gotovinsko plaćanje sa tačnim iznosom. Može ići ono Å¡to je kupac dao recimo
T,1,______,_,__;0;50 i tada će na računu biti ispisano koliko je kupac dao i koliko je kusura kupcu.
U slučaju recimo virmanskog iÅ¡lo bi:
T,1,______,_,__;3 - nema potrebe za iznosom
Može ići i viÅ¡e ovih komandi uzastopno ako je plaćanje mijeÅ¡ano npr.
T,1,______,_,__;0;10
T,1,______,_,__;3;50
znači 10 KM gotovinom i 50 virmanom. Ovaj način se koristi u apotekama da bi se razdvojio dio koji plaća Fond (virman) od dijela koji plaća kupac (gotovina)

zxz 03.11.2010 21:57
Predmet:Re: Fiskalizacija u FBiH

Dobro ovo mi je jasno.
naci drajver je vjerovatno neki dll koji komunicira sa printerom.
Mi mu saljemo file u obliku:
Citat:
prodaja:
S,1,______,_,__;Artikl-xx;0,3;1,000;1;1;2;0;1593;
S,1,______,_,__;Artikl-xy;0,3;1,000;1;1;2;0;1594;

On nam vraca u taj file ako je prihvatio OK.

Sad me interesuje sta ce printer printati kako racun izgleda za kupca?

Ispravi me ako sam negdje pogrijesio.

dragan59 03.11.2010 22:31
Predmet:Re: Fiskalizacija u FBiH

Minimalna prerada vaÅ¡eg programa bi bila ova komanda za prodaju. Na žalost većina softvera koji radi ovdje i nije viÅ¡e uradila. Pored ovih komandi (S i T) postoje joÅ¡ neke važne:
U - upis artikla u printer
X - printanje presjeka stanja pri kome se ne zaključuje kasa
Z - zaključivanje kase, dnevni izvjeÅ¡taj ili Z-izvjeÅ¡taj
O - brisanje artikla iz memorije printera (u dozvoljenom periodu)
To su osnovne komande koje će svaki printer sa FP550 protokolom izvrÅ¡iti. Osim njih postoje i tzv. V komande koje npr izgledaju ovako:
V,1,______,_,__;A
U uputstvu od printera piÅ¡e da je to komanda sa kodom 65. Funkcija joj je da provjeri koliko u printeru ima novca po vrstama plaćanja.
Nakon Å¡to je f.drajver obradi umjesto A upiÅ¡e iznose po vrstama plaćanja koje onda možete iÅ¡čitati u vaÅ¡em softveru. Tu su i komande za ispisivanje raznog teksta po displeju, otvaranje ladice, upisivanje blagajnika, ispis nekog teksta u podnožju računa, itd...

Za sada su u FBiH proÅ¡la dva printera, ovaj FP550P i TringFavorite koji je u stvari prerađena kasa Favourit koju je radio Digit u RS. JoÅ¡ se očekuje minimalno jedan printer od firme HCP iz KruÅ¡evca. Njih zastupa KimTec iz Viteza.

dragan59 03.11.2010 22:43
Predmet:Re: Fiskalizacija u FBiH

Citiraj zxz:
Dobro ovo mi je jasno.
naci drajver je vjerovatno neki dll koji komunicira sa printerom.
Mi mu saljemo file u obliku:
Citat:
prodaja:
S,1,______,_,__;Artikl-xx;0,3;1,000;1;1;2;0;1593;
S,1,______,_,__;Artikl-xy;0,3;1,000;1;1;2;0;1594;

On nam vraca u taj file ako je prihvatio OK.

Sad me interesuje sta ce printer printati kako racun izgleda za kupca?

Ispravi me ako sam negdje pogrijesio.
To je to. Fiskalni drajver je u obliku rezidentnog fajla koji "čuči" u tray-u i osluÅ¡kuje određeni folder. Ako se u njemu (folder-u) pojavi novi fajl on pokuÅ¡ava da ga obradi. Postoji kod nekih drajvera i "dll način" rada pri kome direktno iz programa "prozivamo" dll drajvera i prosljeđujemo mu paramtere. Puno brži način, ali se deÅ¡avalo da se ta komunikacija ponekad zaglupi pa zablokira POS software.

Programer nema Å¡ta da vodi brigu o izgledu računa. Izgled računa je određen zakonom i pravilnicima i sasvim je dovoljno da se poÅ¡alje onaj fajl sa S i T komandama da bi printer izvukao račun. Sav izgled je unaprijed programiran u firmware-u printera i tu programer nema Å¡ta da centrira itd. Može eventualno da na kraju računa (podnožje) iza separatora odÅ¡tampa neku dodatnu poruku tipa: POS račun broj 12122, software by xxxx.soft, Hvala itd. Ima 4 reda na raspolaganju.
Zaglavlje zadaje serviser prije fiskalizacije jer se ono može mijenjati samo u servisnom modu.

Tako da je programerima sa te strane lakÅ¡e. Sjećam se svojih muka sa printanjem direktno kroz port, pa sve ručno centriraj i složi i onda odneseÅ¡ kod klijenta, a on ima printer sa 32 karaktera. Pa sve nanovo...Tako da sam morao imati varijantu za bar 3 različita broja karaktera. Pa prerađuj svaki izvjeÅ¡taj itd.

zxz 03.11.2010 23:08
Predmet:Re: Fiskalizacija u FBiH

Ok hvala na iscrpnom izvjestaju.
Sada je bar meni puno jasnije.

Kiro 04.11.2010 09:57
Predmet:Re: Fiskalizacija u FBiH

I od mene hvala @dragan59. Dosta je jasnije.
Pošto još nema printera i ne može se ništa probati.
Imam ja jedno pitanje.
Koji bi ti sebi kupio printer da moraš?
Znači daj preporuku.

dragan59 04.11.2010 15:35
Predmet:Re: Fiskalizacija u FBiH

Izbor printera nije laka stvar.
Definitivno najbolji po svim karakteristima (trajnost u radu tj. mogućnost da bez kvara izvuče veliki broj računa, mali broj kvarova, iskustvo programera sa njim itd.) je FP550P. Međutim kod njega je problem Å¡to je dosta skup. U FBiH joÅ¡ nije izaÅ¡la cijena, ali sigurno će biti u rangu 900EUR kao Å¡to je i u Srbiji i u RS. Taj printer inače u Srbiji i u RS koriste veliki trgovački lanci tipa Interex, Delta itd.

Ukoliko je u pitanju manji obim izdavanja računa onda će svaki printer zadovoljiti potrebe i tu je onda najbitnija cijena. A ona je za Tring uređaj oko 800KM Å¡to nije mala razlika.

Ja lično bih uzeo ovaj FP550P ako bih mogao to da platim i ako imam veći obim izdavanja računa.

zxz 04.11.2010 15:47
Predmet:Re: Fiskalizacija u FBiH

Ima dosta ovih firmi koje imaju samo par racuna mjesecno.
Sta bi ti takvima preporucio da kupe.

miro35 04.11.2010 16:10
Predmet:Re: Fiskalizacija u FBiH

Ja sam isprobao danas ispis računa preko fp servera u test modu za printer tremol t260F.A u utorak ću imati dostupan i uređaj. Ovo preko drivera za taj printer Å¡to sam isprobao vraća mi poruku da je sve u redu.Poruka je ovog sadržaja:
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<TremolFpServerOutput ErrorCode="0" ErrorOPOS="OPOS_SUCCESS" ErrorDescription="Uspješno izvršavanje." />