Centar za edukaciju-BiH


Stranice (11):1,2,3 ... 10,11

#1 07.03.2011 01:02
zxz Van mreze
Administrator
Registrovan od:03.02.2009
Postovi:10,611


Predmet:Ideje i rjesenja iz teme fiskalizacija
Pitanje od Miro35:
Citat:
JoÅ¡ neÅ¡to Å¡to bi dobro bilo napraviti a vezano je za fiskalizaciju i fiskalne uređaje.Kad iz svoje kase poÅ¡aljem xml fajl u folder iz kojeg uređaj ispisuje račun,ako je se uspjeÅ¡no izvrÅ¡io on vrati fajl pod imenom Receipt.out u kojem piÅ¡e neki text o uspjeÅ¡nom izvrÅ¡enju.Isto tako ako kojim slučajem nije neÅ¡to uredu uređaj vraća isti ovaj fajl sa nastavkom .out u kojem piÅ¡e neka greÅ¡ka.Pitanje:
Kako u access učitati taj podatak Å¡ta piÅ¡e u tom fajlu i onda na osnovu toga prekinuti knjiženje tog računa koji nije ispisan na fiskalni uređaj.A ako je ispisan na fiskalni uređaj onda treba iz tog fajla pročitati da je sve ok i da program nastavi knjiženje računa.Znači bitno bi bilo kako napraviti preko vb coda da pročitamo Å¡ta piÅ¡e u toj .out datoteci.Evo primjer .out datoteka

Na vrh modula ide ovo:
PreuzmiIzvorni kôd (Visual Basic):
  1. Option Compare Database
  2. Option Explicit
  3. Const Putanja_Filea = "C:\tmp\receipt_sale.out" ' putanja sa imenom filea

PreuzmiIzvorni kôd (Visual Basic):
  1. Function ProvjeraF() As Boolean
  2. Dim Temp As String
  3. Dim Red As Integer
  4. Dim Greska As String
  5. Dim GreskaOpis As String
  6. Dim Poz(1 To 2) As Integer
  7. Dim I As Integer
  8.  
  9. Close #1
  10. Red = 2 ' red iz kojeg cita
  11. Open Putanja_Filea For Input As 1
  12. For I = 1 To Red
  13. Input #1, Temp
  14. Next I
  15. Poz(1) = InStr(1, Temp, "ErrorCode=") + 11
  16. Poz(2) = InStr(1, Temp, "ErrorOPOS=") - 2
  17.  
  18. Greska = Mid(Temp, Poz(1), Poz(2) - Poz(1))
  19. If Greska = "0" Then
  20. MsgBox "Uspješno izvršavanje."
  21. ProvjeraF = True
  22. Else
  23. Poz(1) = InStr(1, Temp, "ErrorDescription=") + 17
  24. Poz(2) = InStr(1, Temp, "/>") - 2
  25. GreskaOpis = Mid(Temp, Poz(1), Poz(2) - Poz(1))
  26. MsgBox "Greška br: " & Greska & vbCr & GreskaOpis
  27. ProvjeraF = False
  28. End If
  29.  Close #1
  30. Kraj:
  31. Exit Function
  32. End Function

Podrška samo putem foruma, jer samo tako i ostali imaju koristi od toga.
Ovaj post je ureden 1 puta. Posljednja izmjena 07.03.2011 01:03 od strane zxz. ↑  ↓

#2 07.03.2011 11:51
biromega Van mreze
Clan
Registrovan od:10.12.2010
Postovi:189


Predmet:Re: Ideje i rjesenja iz teme fiskalizacija
Evo kako sam ja to riješio (idejno) postoje dva "koraka"

1) nakon pripreme fiskalnog (reklamiranog) računa u aplikaciji pozivam funkciju OBRADAFP koja u zavisnosti od vrste fiskalnog uređaja radi sljedeće

1.1. NSC
- provjerava da li se pojavio fajl "odgovor" na zadnju komandu displeju. Ako je OK i fajl odgovora sadrži red sa "47,1" Å¡alje se račun Å¡tampaču i provjerava da li fajl odgovora sadrži "56,1,"

1.2. Tring

- Å¡alje se račun Å¡tampaču i provjerava da li fajl odgovora sadrži "</VrstaOdgovora>"

1.3. Tremol

- Å¡alje se račun Å¡tampaču i provjerava da li se pojavio fajl .OUT (odgovor)

1.4. HCP (malo komplikovanije)

- na početku se obriÅ¡e bill_state.xml i poÅ¡alje se račun Å¡tampaču (RCP_xxx.xml) + cmd.ok i "čeka" se da drajver obriÅ¡e cmd.ok, provjerava se da li se pojavio fajl RCP_xxx.OK te se Å¡alje receipt_state (sa fajlom cmd.ok). kada drajver "obriÅ¡e" cmd.ok provjerava se da li postoji fajl bill_state.xml

1.5. ERP

- Å¡alje se račun na Å¡tampač i provjerava se da li se pojavio fajl odgvovoa (.eln) i da li on sadrži tekst "BF:" ili "RF:"

1.6. Mikroelektronika

- Å¡alje se račun na Å¡tampač i provjerava se da li se pojavio fajl odgvovoa (.inp) i da li on sadrži tekst ";Ok;Last"

Ako nisu ispunjeni svi uslovi iz koraka 1 (za određeni fiskalni uređaj) PREKIDA se knjiženje računa (koji nije ispisan na fiskalni uređaj)
Ako su ispunjeni svi "propisani" uslovi iz koraka 1 ide se na korak 2.

2) Čitanje i obrada odgovora fiskalnog uređaja (CITAJFP)

2.1. NSC

- iz fajla odgovora u redu "56,1," izdvaja se BF (za fiskalni račun) ili RF (za reklamirani) i odbaciju se vodeće nule

2.2. Tring

- iz fajla odgovora se traži "<VrstaOdgvora>OK</VrstaOdgvora> i izdvaja broj računa "<Vrijednost>xxx</Vrijednost>"

2.3. TREMOL

- iz fajla odgovora se traži "<OPOS_SUCCESS" i izdvaja broj računa "ReceiptNumber="

2.4. HCP

- iz fajla odgovora u "BILL_STATE.XML" izdvajamo RECEIPT_NUMBER (za fiskalni račun) ili REFOUND_RECEIPT_NUMBER (za reklamirani)

2.5. ERP

- iz fajla odgovora u redu "BF:" izdvajamo se broj fiskalnog računa ili "RF:" izdvajamo broj reklamiranog računa

2.6. Mikroelektronika

- iz fajla odgovora u redu ",Ok;LastReceiptNumber;" izdvajamo se broj fiskalnog računa ili "Ok;LastRefundNumber;" izdvajamo broj reklamiranog računa

Ako su ispunjeni svi predviđeni zahtjevi iz koraka 2 "fiskalizacija" zahtjeva je uspjela (dobili smo broj fiskalnog-reklamiranog računa) i treba "zavrÅ¡iti" knjiženje u suprotnom treba ponuditi mogućnost da se unese broj fiskalnog (reklamiranog) računa ako je u međuvremenu odÅ¡tampan (kod pojedinih uređaja se to deÅ¡ava) ili da se zahtjev obriÅ¡e tj. prekine knjiženje.
Ovaj post je ureden 1 puta. Posljednja izmjena 07.03.2011 11:54 od strane biromega. ↑  ↓

#3 07.03.2011 12:06
zxz Van mreze
Administrator
Registrovan od:03.02.2009
Postovi:10,611


Predmet:Re: Ideje i rjesenja iz teme fiskalizacija
Citat:
1.3. Tremol
- Å¡alje se račun Å¡tampaču i provjerava da li se pojavio fajl .OUT (odgovor)
Kako sam ja razumio Miro35 ovaj fajl out se pojavljuje i kada dodje do greske.
Iz tog razloga sam napravio proceduru koja provjerava br. greske te ako je 0 vraca true a ako nije nula (znaci da postoji greska) daje opis i br. greske te vraca vrijednost false.
E sad dali vam je ovo od koristi ili ne neznam.
Podrška samo putem foruma, jer samo tako i ostali imaju koristi od toga.
↑  ↓

#4 07.03.2011 12:27
biromega Van mreze
Clan
Registrovan od:10.12.2010
Postovi:189


Predmet:Re: Ideje i rjesenja iz teme fiskalizacija
1.3. je samo "prvi korak provjere" i pod 2.3. je opisan "drugi korak provjere".

U mom slučaju (integralno rjeÅ¡enje koje podržava sve fiskalne uređaje) je zbog specifičnosti pojedinih uređaja bilo neophodno napraviti ova dva razdvojena koraka. Naravno, za samo neki konkretan uređaj možda to nije neophodno.
↑  ↓

#5 07.03.2011 12:34
zxz Van mreze
Administrator
Registrovan od:03.02.2009
Postovi:10,611


Predmet:Re: Ideje i rjesenja iz teme fiskalizacija
Znaci procedura CITAJFP cita odgovore iz filea u stvari radi ono sto sam ja napravio.
Dobro si ti to sve napisao ali ja nisam citao do kraja.
Podrška samo putem foruma, jer samo tako i ostali imaju koristi od toga.
↑  ↓

#6 08.03.2011 11:30
miro35 Van mreze
Clan
Registrovan od:05.01.2009
Postovi:608


Predmet:Re: Ideje i rjesenja iz teme fiskalizacija
Odlično ste ovo započeli oko provjere fajlova.JoÅ¡ nisam imo vremena da ovu prvu funkciju probam od zxz.Izgleda da će to biti rjeÅ¡enje,jer bitno je da se pročita iz out datoteke Å¡ta piÅ¡e tj. je li "uspjeÅ¡no izvrÅ¡avanje" ili neÅ¡to drugo.

Vidim da biromega već ima rjeÅ¡enje za sve uređaje.E kad bi sad mogao da nam izbaciÅ¡ neki svoj primjer za neku vrstu uređaja.mene bi recimo sad zanimalo za tremol kako da to napravimo.
Miro
↑  ↓

#7 08.03.2011 15:29
miro35 Van mreze
Clan
Registrovan od:05.01.2009
Postovi:608


Predmet:Re: Ideje i rjesenja iz teme fiskalizacija
Evo fajlovi koje javi HCP kad je uspješno i kad nije

Prilozi:
Informacije o tipu datoteke za:rar  CMD_784218.rar
Preuzimanja:404
Velicina datoteke:116 Bajt
Informacije o tipu datoteke za:rar  RCP_000123.rar
Preuzimanja:368
Velicina datoteke:77 Bajt


Miro
↑  ↓

#8 08.03.2011 15:33
zxz Van mreze
Administrator
Registrovan od:03.02.2009
Postovi:10,611


Predmet:Re: Ideje i rjesenja iz teme fiskalizacija
Ovaj ok nastavkom je prazan.
Ako sam te razumio treba proceduru prepraviti da prepoznaje ovo jel tako?
Podrška samo putem foruma, jer samo tako i ostali imaju koristi od toga.
↑  ↓

#9 08.03.2011 17:12
zxz Van mreze
Administrator
Registrovan od:03.02.2009
Postovi:10,611


Predmet:Re: Ideje i rjesenja iz teme fiskalizacija
Ovo ce raditi ok ako u tom direktoriju postoji uvijek samo jedan file ako ne treba prepraviti proceduru.
PreuzmiIzvorni kôd (Visual Basic):
  1. Function Provjera_G() As Boolean
  2. Dim temp As String
  3. Dim fl
  4. Dim fs
  5. Dim I
  6. Dim Putanja As String
  7.  
  8. Putanja = "C:\tmp\" 'Ovdje upisati putanju
  9. Set fs = Application.FileSearch
  10. With fs
  11.     .LookIn = Putanja
  12.     .FileType = 1
  13.     If .Execute > 0 Then
  14.         For I = 1 To .FoundFiles.Count
  15.           fl = .FoundFiles(I)
  16.         Next I
  17.     Else
  18.         MsgBox "Tne postoji fajl"
  19.         GoTo Kraj
  20.     End If
  21. End With
  22. If Right(fl, 3) = "ERR" Then
  23. Close #1
  24. Open fl For Input As 1
  25. Input #1, temp
  26. Close #1
  27. MsgBox temp
  28. Provjera_G = False
  29. Else
  30. MsgBox "Uspješno izvršavanje."
  31. Provjera_G = False
  32. End If
  33. Kraj:
  34. End Function

Podrška samo putem foruma, jer samo tako i ostali imaju koristi od toga.
↑  ↓

#10 09.03.2011 09:06
miro35 Van mreze
Clan
Registrovan od:05.01.2009
Postovi:608


Predmet:Re: Ideje i rjesenja iz teme fiskalizacija
Sad si mi dao ideju za hcp best ba uređaj.Ovako rad sa fajlovima radi na principu da mi iz svog programa Å¡aljemo fajl računa koji se zove RCP_000001.xml i nakon toga skoro istovremano Å¡aljemo fajl pod nazivom CMD.OK koji je prazan.Sve to Å¡aljemo u folder C:\HCP\TO_FP.Kad ovaj CMD.OK izvrÅ¡i odnosno isprinta račun onda on kreira fajl koji se zove RCP_000001.OK,a ako neÅ¡to nije uredu sa tim računom onda kreira fajl RCP_000001.ERR.
E sada ove fajlove ne kreira u istom folderu:C:\HCP\TO_FP, nego u folderu: C:\HCP\FROM_FP.Moje miÅ¡ljenje je da bi trebalo neÅ¡to napravit kad se ovo sve izdeÅ¡ava da program provjeri da li je folder TO_FP prazan i ako nije da program Å¡alje CMD.OK fajlove dok se sve datoteke ne izvrÅ¡e koje su u njemu.Jer možemo mi čitati greÅ¡ke iz FROM_FP ali Å¡ta ako se neÅ¡to nije izvrÅ¡ilo u folderu TO_FP.
Miro
↑  ↓

Stranice (11):1,2,3 ... 10,11


Sva vremena su GMT +01:00. Trenutno vrijeme: 12: 29 am.