Projekat

Općenito

Profil

Akcije

Podrška #29631

Zatvoren

Fiskalni parametri i opcije, redizajn

Dodano od Saša Vranić prije oko 12 godina. Izmjenjeno prije oko 12 godina.

Status:
Zatvoreno
Prioritet:
Odmah riješiti
Odgovorna osoba:
Saša Vranić
Početak:
14.11.2012
Završetak:
% završeno:

100%

Procjena vremena:

Povezani tiketi 1 (0 otvoreno1 zatvoren)

korelira sa F18 - Nove funkcije #29645: F18, fiskalne opcije, podešavanjeZatvorenoSaša Vranić16.11.2012

Akcije
Akcije #1

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.

Akcije #2

Izmjenjeno od Saša Vranić prije oko 12 godina

Prije svega je potrebno analizirati ovu situaciju...

Akcije #3

Izmjenjeno od Saša Vranić prije oko 12 godina

Imamo tri vrste rada sa uređajima:

1 situacija

Jedan korisnik i jedan fiskalni uređaj (standalone instalacija)

2 situacija

Više korisnika i više fiskalnih uređaja

3 situacija

Više korisnika i jedan fiskalni uređaj

Akcije #4

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...

Akcije #5

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....

Akcije #6

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.

Akcije #7

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...

  1. štimanje uređaja (globalni parametri)
    • uređaj_id
    • naziv
    • tip
    • iosa
    • itd...
  1. štimanje korisnički parametara za sam uređaj
    • korisnik_id
    • uređaj_id
    • izlazni fajl
    • direktorij
    • itd....
Akcije #8

Izmjenjeno od Saša Vranić prije oko 12 godina

dolazimo do ovakvog seta podešenja:

fiskalni parametri

  1. globalni fiskalni parametri
  2. podešenje uređaja
  3. podešenje korisničkih postavki
  4. 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.

Akcije #9

Izmjenjeno od Saša Vranić prije oko 12 godina

  • % završeno promijenjeno iz 0 u 20
Akcije #10

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.

Akcije #11

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

Akcije #12

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

Akcije #13

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 ...

Akcije #14

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...

Akcije #15

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
Akcije #16

Izmjenjeno od Saša Vranić prije oko 12 godina

commit

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 :)

Akcije #17

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
Akcije #18

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

Akcije #19

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

Akcije #20

Izmjenjeno od Saša Vranić prije oko 12 godina

prije je to svaka funkcija radila sama za sebe

Akcije #21

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...

Akcije #22

Izmjenjeno od Saša Vranić prije oko 12 godina

uklonio potpuno tabelu fdevice.dbf itd... stare opcije

commit

sređene funkcije ispisa i unutar POS-a

Akcije #23

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.

Akcije #24

Izmjenjeno od Saša Vranić prije oko 12 godina

commit

provjera izlaznog direktorija prije štampanja fiskalnog računa

Akcije #25

Izmjenjeno od Saša Vranić prije oko 12 godina

provjera naziva artikla, centralizirano

commit

recimo kod FPRINT-a ne smije biti znak ";"

Akcije #26

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

Akcije

Također dostupno kao Atom PDF