Centar za edukaciju-BiH


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

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


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 kd (Visual Basic):
  1. Option Compare Database
  2. Option Explicit
  3. Const Putanja_Filea = "C:\tmp\receipt_sale.out" ' putanja sa imenom filea

PreuzmiIzvorni kd (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 02:03 od strane zxz. ↑  ↓

#2 07.03.2011 12: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 12:54 od strane biromega. ↑  ↓

#3 07.03.2011 13:06
zxz Van mreze
Administrator
Registrovan od:03.02.2009
Postovi:10,612


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 13: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 13:34
zxz Van mreze
Administrator
Registrovan od:03.02.2009
Postovi:10,612


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 12: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 16: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 16:33
zxz Van mreze
Administrator
Registrovan od:03.02.2009
Postovi:10,612


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 18:12
zxz Van mreze
Administrator
Registrovan od:03.02.2009
Postovi:10,612


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 kd (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 10: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 +02:00. Trenutno vrijeme: 9: 49 pm.