Centar za edukaciju-BiH



#51 16.09.2024 19:33
dragan59 Van mreze
Clan
Registrovan od:02.11.2010
Postovi:39


Predmet:Re:Fiskalizacija u RS-u
Prije nekih godina dana sam poceo da se bakcem sa JSON slanjem i prijemom kada je bilo ocito da ce fiskalizacija u RS biti prepisana iz Srbije. Posto tada nije bilo kasa na vidiku ostalo mi je jedino da napravim neki emulator. To sam napravio dosta jednostavno u Delphiju u kojem inace radim. Nije bio idealan, ali je radio posao.
Prije par mjeseci mi je kolega posudio testnu kasu na nekoliko dana i onda sam finalizovao u praksi kod. Obican racun, virmanski sa kupcem, kopiju, reklamirani, sve super.
Prije oko 10 dana sam pustio prvi produkcioni uredjaj i odjednom problemi. Greska 2310 ili tako nesto u dijelu PDV stopa. Mislim da je neko na pocetku to isto prijavio. Zovem help sluzbu operatora, niko nema pojma. Onda mi padne na pamet glupa ideja, sta ako umjesto latinicnih slova za PDV stope stavim cirilicna? Testiram sa Postman-om i to prodje. Znaci, slovo E (ASCII 45) ne moze ici kao PDV stopa, mora biti cirilicna UTF-8 varijanta (Hex d0 95). Isto i za ostale PDV stope.
Sto se tice slike, uspio sam da je izvucem iz JSON respons-a i da je snimim na disk u png obliku. Ostaje mi samo da je nekako odstampam na POS printeru. Posto trenutno nemam POS printer nisam to jos mogao probati.
Ovo stampanje na obicnom POS printeru ce biti vazno za obveznike koji izdaju dosta racuna jer je velicina rolne u originalnom uredaju dosta mala i mozda dovoljna za 30-40 racuna standardne duzine. Ne znam kakva su vasa iskustva, da pustim sliku preko Windows drajvera (hoce li biti sporo?) ili da se zezam sa ESC komandama?
Takodje me muci i smjestanje VerificationUrl u bazu. Dosta je veliki i baza ce poceti da nekontrolisano raste bez obzira sta koristili kao bazu, mdb fajl ili SQL server. Zasad sam ostavio da se pamti pa cu vidjeti nakon par mjeseci.
↑  ↓

#52 17.09.2024 07:20
Gjoreski Van mreze
Administrator
Registrovan od:02.02.2009
Postovi:1,848


Predmet:Re:Fiskalizacija u RS-u
Od ova sta ja vidim u Json u "invoiceImagePngBase64":null, sta znaci da u ovaj json nema png slike
Racun mozes da izvuces iz journal u tamu je vec spreman racun za stampa.

Mora se pogledati u dokumentacii kako treba se se konfigurira JSON da bi vratio PNG slika.

@Amelasar mozes li da probas moj cod dali radi on je slican sa tvoj samo ima vise obrada na podatke i koristi clasa za stvarajne JSON .
Eve cod kako da izvuces neki podatak iz JSON a pomoc ove klase :

PreuzmiIzvorni kôd (Visual Basic):
  1.   Dim p As Object
  2.   Dim sInputJson As String
  3.  
  4.   sInputJson = Me.Text2    ' Zameni Text2 sa tvoj Json string ili ubaci na formi  Text2 i ucitaj tvoj json u ovaj text2
  5.  
  6.     Set p = JSON.parse(sInputJson)
  7.     MsgBox p.item("journal")
  8.     MsgBox p.item("mrc")

Ovaj cod ce vratiti journal odosno spreman racun za stampe isto i mrc sta bi trebalo biti nekakav broj racuna
↑  ↓

#53 17.09.2024 07:34
Gjoreski Van mreze
Administrator
Registrovan od:02.02.2009
Postovi:1,848


Predmet:Re:Fiskalizacija u RS-u
U JSON u treba opcija renderReceiptImage da se stavi na True da bi vratio base64.png
↑  ↓

#54 17.09.2024 10:35
Amelasar Van mreze
Clan
Registrovan od:07.04.2011
Postovi:295


Predmet:Re:Fiskalizacija u RS-u
Citat:
U JSON u treba opcija renderReceiptImage da se stavi na True da bi vratio base64.png

Ima u drugom primjeru.

Tu je i odgovor koji vraca invoiceImagePngBase64":
Pozdrav, Amela
↑  ↓

#55 17.09.2024 10:40
Amelasar Van mreze
Clan
Registrovan od:07.04.2011
Postovi:295


Predmet:Re:Fiskalizacija u RS-u
PreuzmiIzvorni kôd (Text):
  1. Public Function ExtractBase64String(text As String) As String
  2.     Dim startStr As String
  3.     Dim endStr As String
  4.     Dim startPos As Long
  5.     Dim endPos As Long
  6.  
  7.     ' Definiraj pocetni i zavrsni parametar
  8.     startStr = """invoiceImagePngBase64"":"""
  9.     endStr = """,""invoiceNumber"""
  10.  
  11.     ' Nadji pozicije pocetka i kraja stringa
  12.     startPos = InStr(text, startStr)
  13.     If startPos = 0 Then
  14.         ExtractBase64String = "Start string not found"
  15.         Exit Function
  16.     End If
  17.     startPos = startPos + Len(startStr) ' Pomakni poziciju na kraj start stringa
  18.  
  19.     endPos = InStr(startPos, text, endStr)
  20.     If endPos = 0 Then
  21.         ExtractBase64String = "End string not found"
  22.         Exit Function
  23.     End If
  24.  
  25.     ' Izvuci substring izmedju pocetka i kraja
  26.     ExtractBase64String = "data:image/gif;base64," & Mid(text, startPos, endPos - startPos)
  27. End Function

Izvucem string iz odgovora i mogu ga pretvoriti u png.

Sad mi je problem poslati na stampu tu sliku na odredjen stampac.
Pozdrav, Amela
↑  ↓

#56 17.09.2024 10:45
Amelasar Van mreze
Clan
Registrovan od:07.04.2011
Postovi:295


Predmet:Re:Fiskalizacija u RS-u
Ovdje je zxz lijepo objasnio kako napraviti sliku:

switch Spoiler:


@Gjoreski tvoj kod nisam uspjela implementirati a cini mi se dobar jer moram sad sve povezati sa bazom (ovo je bilo rucno).
Pozdrav, Amela
↑  ↓

#57 17.09.2024 10:56
Gjoreski Van mreze
Administrator
Registrovan od:02.02.2009
Postovi:1,848


Predmet:Re:Fiskalizacija u RS-u
U cemu je problem sta nisi uspela ?, Objasni malo da vidimo gde si zapela .

Nisam gledao drugi primer ako ima nije problem da se izvuce , samo je pitanje dali ti treba ta slika .

Ako bi ja pravio onda iz ove kase ja bi uzeo samo vraceni status dali je ispravno racun fiskaliziran i ako je bi napravio svoj racun na koj bi dodao broj fiskalizacije i to je to.
Ovaj post je ureden 1 puta. Posljednja izmjena 17.09.2024 10:57 od strane Gjoreski. ↑  ↓

#58 17.09.2024 11:06
Amelasar Van mreze
Clan
Registrovan od:07.04.2011
Postovi:295


Predmet:Re:Fiskalizacija u RS-u
Citat:
Ako bi ja pravio onda iz ove kase ja bi uzeo samo vraceni status dali je ispravno racun fiskaliziran i ako je bi napravio svoj racun na koj bi dodao broj fiskalizacije i to je to.

Ne znam jeli mora biti izgled racuna kao sto kasa stampa? Za sada je puno nepoznanica, a kao sto @Dragan59 pise "Zovem help sluzbu operatora, niko nema pojma."

Za sada je meni ovo dovoljno, da povezem sa izdavanjem racuna (sa programom) i ostaje mi problem stampanja slike.

Pokusala sam sa shell al ne ide.
Pozdrav, Amela
↑  ↓

#59 17.09.2024 11:10
Amelasar Van mreze
Clan
Registrovan od:07.04.2011
Postovi:295


Predmet:Re:Fiskalizacija u RS-u
PreuzmiIzvorni kôd (Text):
  1. Private Function PrintImageUsingPrintCommand(imagePath As String, printerName As String)
  2.     Dim shellCommand As String
  3.  
  4.     ' Formiraj shell naredbu za printanje
  5.     shellCommand = "print /d:""" & printerName & """ """ & imagePath & """"
  6.  
  7.     ' Izvrsi shell naredbu
  8.     Shell "cmd.exe /c " & shellCommand, vbHide
  9.  
  10.     MsgBox "Slika je poslana na pisac."
  11. End Function
  12.  
  13. Private Sub Command1_Click()
  14. Dim imagePath As String
  15.     Dim printerName As String
  16.  
  17.     ' Postavi putanju do slike
  18.     imagePath = "D:\qr\qr.png"
  19.     ' Postavi ime pisaca
  20.     printerName = "EPSON" ' Zamijeni s stvarnim imenom pisaca
  21.  
  22.     ' Pozovi funkciju za printanje slike
  23.     PrintImageUsingPrintCommand imagePath, printerName
  24. End Sub

I nece!
Pozdrav, Amela
↑  ↓

#60 17.09.2024 21:57
dragan59 Van mreze
Clan
Registrovan od:02.11.2010
Postovi:39


Predmet:Re:Fiskalizacija u RS-u
Citiraj Amelasar:

Ne znam jeli mora biti izgled racuna kao sto kasa stampa? Za sada je puno nepoznanica, a kao sto @Dragan59 pise "Zovem help sluzbu operatora, niko nema pojma."

Za sada je meni ovo dovoljno, da povezem sa izdavanjem racuna (sa programom) i ostaje mi problem stampanja slike.

Pokusala sam sa shell al ne ide.
Ako govorimo o POS racunu (malom) onda mora biti isti izgled jer je definisan pravilnikom. Sto se tice A4 fakture, na njoj treba biti link za provjeru ako se salje elektronski i QR kod.
Nisam jos nabavio termalni printer pa nisam uspio isprobati, ali koliko mi se cini da cu se morati zezati sa ESC komandama i slanjem sadrzaja slike kao MemoryStream na printer. Barem tako kaze dokumentacija Epsona i Bixolona (dva najzastupljenika brenda kod nas).
Ovaj post je ureden 1 puta. Posljednja izmjena 17.09.2024 23:03 od strane dragan59. ↑  ↓

Stranice (7):1,2,3,4,5,6,7


Sva vremena su GMT +02:00. Trenutno vrijeme: 9: 41 am.