Bosna i Hercegovina



#1 07.03.2011-02:02
zxz Offline
Administrator
Registrovan/a od: 03.02.2009-17:22
Komentari: 6,499


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

DownloadIzvorni kod (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

Pozdrav
Ovaj komentar je mijenjan 1 puta. zadnja izmjena 07.03.2011-02:03 od strane zxz. ↑  ↓

#2 07.03.2011-12:51
biromega Offline
Clan
Registrovan/a od: 10.12.2010-23:09
Komentari: 106


Ocjena: Ocjena:100 Subject: 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 komentar je mijenjan 1 puta. zadnja izmjena 07.03.2011-12:54 od strane biromega. ↑  ↓

#3 07.03.2011-13:06
zxz Offline
Administrator
Registrovan/a od: 03.02.2009-17:22
Komentari: 6,499


Subject: 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.
Pozdrav
↑  ↓

#4 07.03.2011-13:27
biromega Offline
Clan
Registrovan/a od: 10.12.2010-23:09
Komentari: 106


Subject: 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 Offline
Administrator
Registrovan/a od: 03.02.2009-17:22
Komentari: 6,499


Subject: 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.
Pozdrav
↑  ↓

#6 08.03.2011-12:30
miro35 Offline
Moderator
Registrovan/a od: 05.01.2009-16:56
Komentari: 507


Subject: 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 Offline
Moderator
Registrovan/a od: 05.01.2009-16:56
Komentari: 507


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

Prilozi:
Informacije o fajlu: rar  CMD_784218.rar
Preuzimanja: 58
Veličina: 116 Byte
Informacije o fajlu: rar  RCP_000123.rar
Preuzimanja: 43
Veličina: 77 Byte


Miro
↑  ↓

#8 08.03.2011-16:33
zxz Offline
Administrator
Registrovan/a od: 03.02.2009-17:22
Komentari: 6,499


Subject: Re: Ideje i rjesenja iz teme fiskalizacija
Ovaj ok nastavkom je prazan.
Ako sam te razumio treba proceduru prepraviti da prepoznaje ovo jel tako?
Pozdrav
↑  ↓

#9 08.03.2011-18:12
zxz Offline
Administrator
Registrovan/a od: 03.02.2009-17:22
Komentari: 6,499


Subject: 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.
DownloadIzvorni kod (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

Pozdrav
↑  ↓

#10 09.03.2011-10:06
miro35 Offline
Moderator
Registrovan/a od: 05.01.2009-16:56
Komentari: 507


Subject: 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
↑  ↓

#11 09.03.2011-13:13
zxz Offline
Administrator
Registrovan/a od: 03.02.2009-17:22
Komentari: 6,499


Subject: Re: Ideje i rjesenja iz teme fiskalizacija
Hajd molim te opisi cijeli postupak kako se radi.
Znaci od momenta kada pokrenes stampu. Opisi koje foldere imas i sta se u njma kreira i dali se brise poslije ili ostaje.
Napisi sta ostaje nakon stampe. Ovako napamet sigurno ne uspijeva napraviti neku dobru proceduru a Dok si ti dosao na ideju znaci da se moze nesto napraviti.
Obavezno navedi i o kojem se uredjaju radi.
Pozdrav
↑  ↓

#12 09.03.2011-15:42
miro35 Offline
Moderator
Registrovan/a od: 05.01.2009-16:56
Komentari: 507


Subject: Re: Ideje i rjesenja iz teme fiskalizacija
Znači HCP BestBa Kasa Pisač.
Kad dadnem komandu za ispis računa onda se šalju dva fajla u mapu na putanji C:\HCP\TO_FP
Prvi fajl je račun u kojem se nalaze stavke raču na sa artiklima i cijenama i taj fajl se zove RCP_000001.xml
Drugi fajl je CMD.OK i on je prazan i on se šalje odmah za ovim prvim i služi da pokrene ovaj prvi da se izvrši.
Kad je sve uspjelo onda Mapa(Folder) na putanji ovoj gore C:\HCP\TO_FP ostaje prazan.
E sad postoji i druga mapa FROM_FP na putanji C:\HCP\FROM_FP u nju se sada kreira fajl koji naravno kreira fiskalni uređaj i zove se RCP_000001.OK i u njemu piše da je sve u redu,odnosno piše 0.
Vidiš sada gore kako se zvao fajl RCP_000001.xml a sad se zove RCP_000001.OK.Evo šaljem ti jedan RCP.OK fajl i jedan err fajl.

Prilozi:
Informacije o fajlu: rar  RCP_000123.rar
Preuzimanja: 25
Veličina: 77 Byte
Informacije o fajlu: rar  CMD_784218.rar
Preuzimanja: 22
Veličina: 116 Byte


Miro
↑  ↓

#13 09.03.2011-16:34
zxz Offline
Administrator
Registrovan/a od: 03.02.2009-17:22
Komentari: 6,499


Subject: Re: Ideje i rjesenja iz teme fiskalizacija
Citat:
Prvi fajl je račun u kojem se nalaze stavke raču na sa artiklima i cijenama i taj fajl se zove RCP_000001.xml
Samo jos jedno pitanje.
Ovaj fajl RCP_000001.xml, jeli se uvijek tako zove ili se generise naziv na osnovu broja racuna.
Ti generises racun kodom te ga zapisujes na datu putanju gore te generises cmd file koji je vjerovatno izvrsni i pokrece printer.
Samo je pitanje jeli fajl u kojem je recun uvijek pod istim imenom.
Pozdrav
↑  ↓

#14 09.03.2011-16:35
zxz Offline
Administrator
Registrovan/a od: 03.02.2009-17:22
Komentari: 6,499


Subject: Re: Ideje i rjesenja iz teme fiskalizacija
Mislim da se ovdje nesto moze uraditi.
Moze se provjeriti jeli fajl uposte primio printer i drugo ako je primijo jeli korektan ili nije.
Pozdrav
↑  ↓

#15 09.03.2011-19:10
biromega Offline
Clan
Registrovan/a od: 10.12.2010-23:09
Komentari: 106


Subject: Re: Ideje i rjesenja iz teme fiskalizacija
Ponovo ponavljam važnu stvar za HCP. Kada se pošalje fajl CMD.OK za neki fajl, mora se "čekati" da taj fajl (cmd.ok) bude obrisan od strane drajvera.

Tek poslije toga se ide u analizu.
↑  ↓

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


All times are GMT +01:00. Current time: 26.07.2014-05:05.