Podrška #29631
ZatvorenFiskalni parametri i opcije, redizajn
100%
Povezani tiketi 1 (0 otvoreno — 1 zatvoren)
Izmjenjeno od Saša Vranić prije oko 12 godina
- Status promijenjeno iz Novo u Dodijeljeno
- Prioritet promijenjeno iz Normalan u Urgentno
Jučer usmeno pričali oko ove teme, pošto se pojavio problem u situacijama gdje se koristi lista uređaja, tj. da sa jednog radnog mjesta možemo slati račune na više fiskalnih uređaja i različitih tipova.
Izmjenjeno od Saša Vranić prije oko 12 godina
Prije svega je potrebno analizirati ovu situaciju...
Izmjenjeno od Saša Vranić prije oko 12 godina
Kod ovih opcija se treba obratiti pažnja na automatsko generisanje PLU kodova, to je parametar u pgsql-u.
Tako da smo recimo imali situaciju da ista baza (više korisnika) pristupa na svako svoj uređaj.
Znači imamo 2 radne stanice:
- ws_01 (baza: f18_01), računi idu na uređaj_fiscal_01
- ws_02 (baza: f18_01), računi idu na uređaj_fiscal_02
obje stanice treba kada puštaju dnevni izvještaj, treba da znaju na koji će uređaj i koji će AUTO_PLU parametar da resetuju itd...
Izmjenjeno od Saša Vranić prije oko 12 godina
praktično na nivou preduzeća bi trebali da definišemo uređaje
preduzeće: f18_01 (to je baza)
u njemu se koriste 3 fiskalna uređaja
definišemo u parametrima
"fiscal_devices": /f18_01/fiscal_devices/ = 3 "device_01": /f18_01/fiscal_device_01/ /f18_01/fiscal_device_01/id = 1 /f18_01/fiscal_device_01/type = "FPRINT" /f18_01/fiscal_device_01/iosa = "22222222222222" itd... "device_02": /f18_01/fiscal_device_02/ /f18_01/fiscal_device_02/id = 2 /f18_01/fiscal_device_02/type = "FPRINT" /f18_01/fiscal_device_02/iosa = "99999999999999" itd... "device_03": /f18_01/fiscal_device_03/ /f18_01/fiscal_device_03/id = 3 /f18_01/fiscal_device_03/type = "TREMOL" /f18_01/fiscal_device_03/iosa = "nebitan !!!" itd...
i praktično tu imamo sve parametre koji su standardni za jedan uređaj...
- tip
- iosa broj
- serijski broj
- u sistemu pdv-a
- itd...
Što se tiče korisnika trebalo bi da se mogu podesiti uređaji koje će koristiti:
recimo:
- user_01, koristi uređaj 1 i 3
/f18_01/user_01/use_fiscal_devices/ = "1,3"
- user_02, koristi uređaj 2
/f18_01/user_02/use_fiscal_devices/ = "2"
eh, i tu imamo još jednu stvar, a to je podešenje korisničkih parametara po uređaju...
tako da bih kada setujem globalne postavke uređaja trebao dodati parametre za pojedinog korisnika....
pa bih trebao imati:
"device_01": /f18_01/fiscal_device_01/ "user_01" postavke /f18_01/fiscal_device_01/user_01/output_directory = "i:\fiscal" /f18_01/fiscal_device_01/user_01/output_file = "out_1.txt" /f18_01/fiscal_device_01/user_01/output_answer = "answer.txt" "user_02" postavke /f18_01/fiscal_device_01/user_02/output_directory = "x:\fiscal" /f18_01/fiscal_device_01/user_02/output_file = "bla bla bla.txt" /f18_01/fiscal_device_01/user_02/output_answer = "bla bla bla.txt" itd... "device_02": /f18_01/fiscal_device_02/ "user_01" postavke /f18_01/fiscal_device_02/user_01/output_directory = "i:\fiscal" /f18_01/fiscal_device_02/user_01/output_file = "out_1.txt" /f18_01/fiscal_device_02/user_01/output_answer = "answer.txt" "user_02" postavke /f18_01/fiscal_device_02/user_02/output_directory = "r:\fiscal" /f18_01/fiscal_device_02/user_02/output_file = "out_2.txt" /f18_01/fiscal_device_02/user_02/output_answer = "answer.txt" itd... "device_03": /f18_01/fiscal_device_03/ "user_01" postavke /f18_01/fiscal_device_03/user_01/output_directory = "i:\tremol_out\" /f18_01/fiscal_device_03/user_01/output_file = "tr$01.txt" /f18_01/fiscal_device_03/user_01/output_answer = "" "user_02" postavke /f18_01/fiscal_device_03/user_02/output_directory = "r:\tremol_out\" /f18_01/fiscal_device_03/user_02/output_file = "tr$02.txt" /f18_01/fiscal_device_03/user_02/output_answer = "" itd...
tako da bih u konačnici imali:
ako imamo podešen samo jedan uređaj, i kod korisnika imamo podešeno da koristi samo uređaj: 1 recimo, situcija je jasna...
device_id := get_my_fiscal_devices() => { device_01:id, device_02:id, .... } // to je ono što smo setovali šta korisnik može da koristi get_fiscal_params_for_device( device_id ) => hash{ "type":param_1, "iosa":param_2, "output_dir":param_3, ... }
naravno, funkcija obavlja sve za tekućeg korisnika....
Izmjenjeno od Saša Vranić prije oko 12 godina
Auto generisanje PLU kodova¶
Na osnovu ovih parametara mi praktično uvijek imamo ID definisanog uređaja, (1, 2, 3, ... )
Pa tako, taj id proslijeđujemo funkciji koja se brine za automatski PLU.
"auto_plu_" + device_id /auto_plu_1/1562 /auto_plu_2/100 /auto_plu_3/5122
da li će ovo poklopiti sve moguće zahtjeve na terenu...
1 situacija : jedan korisnik, jedna baza, jedan uređaj¶
Dakle, štimamo parametre za 1 uređaj, ID mu je = 1, za korisnika kažemo da će koristiti uređaje id = 1
I to će raditi...
2 situacija : više korisnika, jedna baza, više uređaja¶
Podešavamo parametre za uređaje, recimo 1, 2 i 3 u parametrima:
Definišemo da:
- user_01 koristi 1,2,3
- user_02 koristi 1,2,3
- user_03 koristi 1,2,3
i svakome će prilikom puštanja računa na uređaj biti izvučena lista uređaja ... iz koje će odabrati na koji uređaj da pusti račun ili slično...
I to će raditi također.
3 situacija : više korisnika, jedna baza, jedan uređaj¶
Definišemo uređaj ID = 1, za korisnike podešavamo:
- user_01 koristi 1
- user_02 koristi 1
- user_03 koristi 1
i to će raditi također...
4 situacija : više korisnika, jedna baza, svako ima svoj uređaj¶
Definišemo uređaje 1, 2, 3, 4 u parametrima
Za korisnike podešavamo:
- user_01 koristi 1
- user_02 koristi 2
- user_03 koristi 3
i to će raditi opet.
Izmjenjeno od Saša Vranić prije oko 12 godina
Ono što je upitno je kako setovati ove parametre, znači imamo 2 nivoa setovanja parametara...
- štimanje uređaja (globalni parametri)
- uređaj_id
- naziv
- tip
- iosa
- itd...
- štimanje korisnički parametara za sam uređaj
- korisnik_id
- uređaj_id
- izlazni fajl
- direktorij
- itd....
Izmjenjeno od Saša Vranić prije oko 12 godina
dolazimo do ovakvog seta podešenja:
fiskalni parametri
- globalni fiskalni parametri
- podešenje uređaja
- podešenje korisničkih postavki
- pregled tekućih postavki
gdje su:
1) globlani parametri¶
- koriste li se fiskalne opcije
- broj uređaja u preduzeću (može biti koristan)
2) podešenje uređaja¶
Otvori se forma, koja me pita za device_id, pa ja unesem 1 a on mi da ili postavke ili prazna polja da definišem
- tip
- iosa broj
- serijski broj
- aktivan D/N
- itd...
ali moram imati i opciju brisanja !!! također, da jedan uređaj izbrišem
3) podešenje korisničkih postavki¶
Otvara se forma koja me prvo pita za
- korisnik
- uređaj_id
i onda mi daje listu parametara / iščita ako postoji ili prazno ako ne postoje parametri
Sa jednog mjesta bih trebao da mogu setovati parametre za sve korisnike, tako što ću ponavljati proceduru podešavanja za svakog korisnika ponaosob...
4) pregled tekućih postavki¶
Forma izvještaja koja će mi izlistati sve uređaje i sve postavke za sve korisnike itd.... može biti korisno.
Izmjenjeno od Saša Vranić prije oko 12 godina
pošto nemamo mogućnost brisanja parametara onda možemo predvidjeti odmah 10 uređaja
uređaj 01
/db/device_01/id = 1 /db/device_01/aktivan = "N" /db/device_01/naziv = "Fiskalni uređaj 1"
uređaj 02
/db/device_02/id = 2 /db/device_02/aktivan = "N" /db/device_02/naziv = "Fiskalni uređaj 2"
itd... do 10.
To su stvari koje se trebaju izgenerisati odmah prilikom starta aplikacije.
Kada aktiviramo uređaje 1 i 2 podešenjem parametara i pozovemo funkciju
get_my_fiscal_device()
ona će mi napraviti ovaj meni:
1) Fiskalni uređaj 1 2) Fiskalni uređaj 2
kao što je to do sada rađeno ali iz tabele...
gdje treba da odaberem uređaj na koji želim nešto da pustim.
Ako za korisnika podesimo interni korisnički parametar "koristi uređaje" = 1
onda će mi uvijek davati parametre tog uređaja bez otvaranja ovog menija.
Izmjenjeno od Saša Vranić prije oko 12 godina
Fiskalni uređaj prema vrsti dokumenta¶
I ovo je bitna stvar, da mogu podesiti da mi sve 10-ke iz FAKT-a idu na uređaj 1, a 11-ke idu na uređaj 2
Da li ovo može biti globalno ili može biti od korisnika do korisnika, hm...
- user_01, štampa 10-ke na 1, 11-ke na 2
- user_02, štampa 10-ke na 1, 11-ke na 2
- user_03, ima menij za izbor na koji će štampati
može biti
Izmjenjeno od Saša Vranić prije oko 12 godina
ovim uvođenjem bi se i masa onih globalnih parametara riješila, tj. nema potrebe za njima...
sad imamo ono gFisc_use, gFisc_type itd...
a sada bi se kod fiskalnih opcija samo proslijedio "id uređaja" i automatski bi se iščitale postavke uređaja za mene kao korisnika
Izmjenjeno od Saša Vranić prije oko 12 godina
dev_hash := hb_hash() // globalni parametri _dev_id := fetch_metric( "fiscal_device_01_id", NIL, 1 ) _dev_active := fetch_metric( "fiscal_device_01_active", NIL, "D" ) // korisnički parametri _output_file := fetch_metric( "fiscal_device_01_output_file", my_user(), "out.txt" ) _output_dir := fetch_metric( "fiscal_device_01_output_dir", my_user(), "i:\fiscal\" ) itd ... dev_hash["device_id"] = _dev_id dev_hash["device_active"] = _dev_active dev_hash["output_file"] = _output_file dev_hash["output_dir"] = _output_dir itd ...
Izmjenjeno od Saša Vranić prije oko 12 godina
i to bi trebalo da proradi sve...
Ništa, prvi korak je uvođenje funkcija za podešavanje i čitanje parametara...
Setovanje:
// inicijalni parametri uređaja pri startu aplikacije init_main_fiscal_params() // ovo treba da upiše odmah 10 uređaja, standardne postavke // ali sa parametrom aktivan = "N" // setovanje glavnih parametara parametara set_main_fiscal_params() // device_id // forma za setovanje // setovanje korisničkih postavki nad uređajem set_user_fiscal_params() // user, device_id // forma za setovanje
Čitanje:
// vraća fiskalni uređaj iz liste uređaja, odabir uređaja get_fiscal_device( { user_id | NIL } ) => ( device_id ) // na osnovu parametara izvlači aktivne uređaje // ako je user_id = NIL, izvlači sve uređaje aktivne // vraća id odabranog uređaja iz liste // vraća hash matricu sa parametrima uređaja za korisnika get_fiscal_device_params( device_id, { user_id | NIL } ) => hb_hash( param_1, param_2, param_3 ... ) // uzima se tekući korsnik ako je user_id = NIL ili zadani korisnik
Utility:
// printanje parametara za uređaje print_fiscal_device_params( device_id ) // znači treba da ispiše parametre // pa i za svakog korisnika, za kojeg je setovano // pozivat će funkciju: // get_fiscal_device() // pa će za pojedini uređaj iz liste pozivati, za sve korisnike // get_fiscal_devce_params( device_id, user_id )
mislim da bi to otprilike bilo to...
Izmjenjeno od Saša Vranić prije oko 12 godina
- Naslov promijenjeno iz Fiskalni parametri, redizajn u Fiskalni parametri i opcije, redizajn
- Prioritet promijenjeno iz Urgentno u Odmah riješiti
Izmjenjeno od Saša Vranić prije oko 12 godina
napravio sam niz izmjena, uveo parametre itd....
sada trenutno radim na revrajtu opcija fiskalne štampe... itd...
ovo će mi trebati još dan-dva sigurno, ovo sam sada sve raskopao :)
Izmjenjeno od Ernad Husremović prije oko 12 godina
uočio sam još radnije da na opcijama menija stavljaš dvoslovne oznak oznake tipa:
- "1. opcija"
- "F. Francuska"
- "Fi. Fiskalni parametri"
- "10. opcija deset"
To nije dobro. Meni je osjetljiv na prvo slovo tako da se opcija Fi ili 10 nikada neće moći pozvati osim tako što se strelice ne pozicioniraju na tu poziciju.
Ispravno je ovako:
- 1. opcija 1
- F. Francuska
- G. Fiskalni parametri
- H. Opcija 10
Izmjenjeno od Saša Vranić prije oko 12 godina
Ovo
Fi. novi parametri
je privremeno, neće tako biti... između ostalog to će biti samo F. ali nisam još isključivao trenutnu fiskalne parametre
Izmjenjeno od Saša Vranić prije oko 12 godina
do kasno sam radio na ovim opcijama...
uspio sam konačno da objedinim sve, što znači opcija štampe fiskalnog računa iz modula FAKT teče ovako:
// daj mi uređaj _device_id := get_fiscal_device( my_user() ) _device_params := get_fiscal_device_params( _device_id, my_user() ) _header := fakt_header_prepare() _items := fakt_items_prepare() if printer = "TREMOL" fakt_to_tremol( _header, _items ... ) if printer = "FPRINT" fakt_to_fprint( .... )
ovo identično sada treba implementirati i kod modula POS... objediniti funkciju koja izvlači podatke u matricu
Izmjenjeno od Saša Vranić prije oko 12 godina
prije je to svaka funkcija radila sama za sebe
Izmjenjeno od Saša Vranić prije oko 12 godina
očistio sam dosta fiskalnih funkcija, ima toga još...
recimo objedinjena je funkcija koja vraća oznaku tarife za txt/xml fajl
isto treba odraditi za vrste plaćanja, jedinice mjere...
Izmjenjeno od Saša Vranić prije oko 12 godina
uklonio potpuno tabelu fdevice.dbf itd... stare opcije
sređene funkcije ispisa i unutar POS-a
Izmjenjeno od Saša Vranić prije oko 12 godina
... i mislim da sam pročistio, testirao sam sve fiskalne opcije
- fprint, tremol
- hcp nisam, tu imamo nekih kamaru fajlova...
Treba odmah predvidjeti i onu provjeru lokacije koja nas je zezala... ono nije drive dostupan i slično.
Izmjenjeno od Saša Vranić prije oko 12 godina
provjera izlaznog direktorija prije štampanja fiskalnog računa
Izmjenjeno od Saša Vranić prije oko 12 godina
Izmjenjeno od Saša Vranić prije oko 12 godina
- Status promijenjeno iz Dodijeljeno u Zatvoreno
- % završeno promijenjeno iz 20 u 100
HCP funkcije testirane...
FPRINT funkcije testirane....
uživo na uređajima