FiskalizacijaDEV - želje i pozdravi

Coordinator
Feb 6, 2013 at 7:29 AM
Nakon nešto malo više od mjesec dana od kada je fiskalizacija krenula, bilo bi zanimljivo čuti iskustva iz prve ruke, "sa terena", od vas koji koristite DLL/COM/EXE u svojim rješenjima.

Osim ideje od dkusteca, da bi bilo zgodno XML datoteke spremati u podfoldere (http://fiskalizacija.codeplex.com/workitem/742), po datumu, neki drugi konkretan feedback nismo dobili.

Jasno je da ne treba mijenjati ono što radi, no, možda je moguće uz malo planiranja pripremiti neke novosti koje bi mogle olakšati stvari :)
Feb 6, 2013 at 7:57 AM
Trenutno na tesnim fazama, ali svejedno - sve radi savršeno.

U Accessu samo prvo spajanje traje nešto duže, sva ostala su u djeliću sekunde.

U drugoj aplikaciji koja koristi EXE svako spajanje traje dugo (relativno dugo; red veličine 5-6 sekundi). Pretpostavljam da je to normalno; u prvom slučaju kao da se veza na neki način cacheira (ne znam kako bih drugačije rekla), a u drugom toga nema.

Prezadovoljna sam, hvala, hvala, beskrajno hvala na ovom vašem trudu!

Poslala bih vam čokoladu, ali ne znam na koju adresu :D
Feb 6, 2013 at 3:32 PM
Skidam kapu svima koji su radili na ovome projektu, veliko hvala za veliki trud... I, u ovom je slučaju posao stvarno dobro urađen, funkcionira k'o po špagu!

Kad si malo razmislim, već je i ideja da se napravi open source za ovaj čisto komercijalni tip posla za pohvalu - i više od toga. Meni je osobno jako puno pomoglo, i zapravo ne znam kako bi riješio stvar bez toga.

Pretpostavljam da veliki dio programa u hrvatskoj koristi fiscaldev na ovaj ili onaj način.
Feb 6, 2013 at 8:50 PM
Potpisujem gore navedeno, uključujući i čokoladu :)

Kod mene za sada rade samo na dva mjesta (nemam ugostitelje), ali sve je od samog početka bilo bez problema.
Koristim dll, i kao kod Amalthee, prvo spajanje traje duže, 4-5 sec, a svako slijedeće se rješava odmah.
Feb 6, 2013 at 9:53 PM
Evo uspio sam i ja sklepat svoju bazu u Accessu da uz pomoć COM dll-a odradi fiskalizaciju.
Hvala inicijatorima na ovom projektu bez kojeg se vjerojatno nebi ni upuštao u fiskalizaciju.
Jedina sitnica koju bi eventualno mogli dodat je da se i zahtjev i odgovor za poslovni prostor isto sprema u mapu kao što je to napravljeno za racune tako da ostane neki trag da je odrađeno.
Coordinator
Feb 6, 2013 at 10:01 PM
Zlay, spremanje u mapu zahtjeva i odgovora poslovnog prostora je implementirano još od prve verzije.
private void SnimiDokumentUDatoteku(string oib)
        {
            Raverus.FiskalizacijaDEV.CentralniInformacijskiSustav cis = new CentralniInformacijskiSustav();

            Raverus.FiskalizacijaDEV.Schema.RacunType racun = GetRacun(oib);


            Schema.RacunZahtjev zahtjev = PopratneFunkcije.XmlDokumenti.KreirajRacunZahtjev(racun);
            XmlDocument zahtjevXml = PopratneFunkcije.XmlDokumenti.SerijalizirajRacunZahtjev(zahtjev);

            PopratneFunkcije.Potpisivanje.PotpisiXmlDokument(zahtjevXml, PopratneFunkcije.Potpisivanje.DohvatiCertifikat("FISKAL 1"));
            PopratneFunkcije.XmlDokumenti.DodajSoapEnvelope(ref zahtjevXml);

            Raverus.FiskalizacijaDEV.PopratneFunkcije.XmlDokumenti.SnimiXmlDokumentDatoteka(zahtjevXml, @"D:\Users\Nino\Desktop\Zahtjev.xml");

            XmlDocument doc = cis.PosaljiSoapPoruku(zahtjevXml);

            Raverus.FiskalizacijaDEV.PopratneFunkcije.XmlDokumenti.SnimiXmlDokumentDatoteka(doc, @"D:\Users\Nino\Desktop\Odgovor.xml");
        }
Feb 6, 2013 at 10:36 PM
Koristim samo
odgovor = o.PosaljiSoapPoruku(xml, "FISKAL 1")
i imam definirane
NazivMapeZahtjev, NazivMapeOdgovor i NazivAutoGeneriranje
i fino mi sprema zahtjeve i odgovore za račune u definirani folder s autogeneriranim nazivom pa sam mislio da bi bilo zgodno napravit da to radi i sa zahtjevima za poslovnim prostorom. Mozda je napravljeno, ali meni ne radi. Mislim, i nije neki problem... napravio sam si da mi varijablu odgovor zapisuje u file.
Feb 7, 2013 at 12:20 AM
Pridružujem se pohvalama i zahvalama. Ja koristim na manjim lokacijama COM komponentu i radi OK. Imam i nekoliko lokacija koje nisu u mogućnosti imati žicu
pa koristim USB stick,. Ali tu imam povremenih problema zbog kašnjenja i 'timeouta' pa na tim lokacijama koristim drugo rješenje. Na "većim" lokacijama također imam drugo rješenje. U svakom slučaju još jednom pozdravljam autorov trud i čitavu ovu zajednicu korisnika.
Coordinator
Feb 7, 2013 at 1:23 AM
Edited Feb 7, 2013 at 1:24 AM
zlay, prijava poslovnog prostora malo je različita od prijave računa.
Kod prijave p.p. moraš eksplicitno navesti metodu za spremanje zahtjeva i odgovora:
Raverus.FiskalizacijaDEV.PopratneFunkcije.XmlDokumenti.SnimiXmlDokumentDatoteka(zahtjevXml, @"D:\Users\Nino\Desktop\Zahtjev.xml");
Nakon slanja poruke, odgovor snimaš tako što pozoveš metodu:
Raverus.FiskalizacijaDEV.PopratneFunkcije.XmlDokumenti.SnimiXmlDokumentDatoteka(doc, @"D:\Users\Nino\Desktop\Odgovor.xml");
Naravno, ovo radiš samo ako ti je doc != null;
Ne vidim razlog zašto ti ne bi radilo, osim ako nešto krivo nemaš postavljeno u kodu.
Coordinator
Feb 7, 2013 at 6:40 AM
Posebno je frustrirajuće što se sve ovo vrijeme, kod određenog broja korisnika, pojavljuje problem da prvo slanje u CIS traje nešto dulje. Kod drugog djela korisnika sve radi gotovo trenutno - no - nikako da se uspije saznati u čemu je točno stvar.
Napravili smo i jedan tool koji omogućava provjeru brzine, više na: http://fiskalizacija.codeplex.com/discussions/404887 i http://fiskalizacija.codeplex.com/discussions/405700 . Niti to nije pomoglo - nije jasno da li je stvar routera, samog PC-a u kombinaciji sa AV, firewallom, tko zna čime...

Ono što mi iz svoje prakse možemo potvrditi je da stvar radi uvijek jednako - uvijek brzo, gotovo trenutno :)

@cartman2001, ako nije problem pitati - koja druga rješenja koristiš i zašto? Da li je uzrok kašnjenje+timeout sa FiskalizacijaDEV, u istoj okolini, dok sa tim drugim rješenjem toga nemaš? U svakom bi slučaju bilo zgodno saznati više informacija na tu temu, da se problem pokuša izolirati...
Coordinator
Feb 7, 2013 at 6:45 AM
Edited Feb 7, 2013 at 6:46 AM
Vezano uz snimanje XML-ova, dovoljno je podesiti ovo i svi XML-ovi, uključujući i PoslovniProstor, koji se razmjenjuju sa CIS-om će biti snimljeni u datoteku:
cis.NazivMapeZahtjev = @"D:\Users\Nino\Desktop\Fiskalizacija\Zahtjevi";
cis.NazivMapeOdgovor = @"D:\Users\Nino\Desktop\Fiskalizacija\Odgovori";
cis.NazivAutoGeneriranje = true;
Feb 7, 2013 at 7:39 AM
Pozdrav, koristim EXE od početka i sve funkcionira baš onako kako treba, i radi bez pogreške i jako brzo.

Zanima me samo dali je moguće DLL koristiti iako nisam u .NET okruženje (naime moje aplikacije su rađene u WinDev-u, pa kad importam vaš DLL, on mi je samo read-only). Nebi mjenjao sa EXE na DLL, ali razmišljam da DLL počmem koristiti za maloprodajnu aplikaciju.
Coordinator
Feb 7, 2013 at 8:15 AM
FiskalizacijaDEV.dll/EXE/COM za svoj rad traže .NET Framework 2.0 - bez njega ne ide. Ne znam točno što je WinDev, ali .NET je required...
Feb 7, 2013 at 8:32 AM
Koristim EXE i radi ko zmaj.
Istina, i ja sam ponegdje od korisnika dobio primjedbu da prvo spajanje na CIS traje duže, ali kada sam im rekao da probaju promijeniti operatera (moraš nešto reći i nekoga trećeg optužiti :) ), svi su to prihvatili kao normalno.
Kada sam prigrlio Raverus, jer sam vidio da nema šanse da to sam odradim do Nove godine, sam sam sebe uvjeravao da će mi to biti privremeno rješenje. Sada mi ne pada napamet zezati se i mudrovati oko nečega za što imam pouzdano i efikasno rješenje.
Još jednom, HVALA!!!
(Dosada sam pri zahvalama obećavao pivice, ali vidim da se ovdje prešlo na čokolade - Nino, reci voliš li s rižom ili lješnjacima, crnu ili mliječnu, punjenu, ili bijelu???)
Feb 7, 2013 at 10:51 AM
Potpisujem sve gore rečeno od drugih i pitam za adresu. Imao bih jednu zahvalu za poslati Ninoslavu!
Feb 7, 2013 at 5:53 PM
@nrasinec i @dkustec sorry glup sam, zaboravio sam kod slanja poslovnog prostora dodjelit vrijednost NazivMapeZahtjev, NazivMapeOdgovor i NazivAutoGeneriranje.
THX!
Feb 7, 2013 at 6:13 PM
nrasinec wrote:
Posebno je frustrirajuće što se sve ovo vrijeme, kod određenog broja korisnika, pojavljuje problem da prvo slanje u CIS traje nešto dulje. Kod drugog djela korisnika sve radi gotovo trenutno - no - nikako da se uspije saznati u čemu je točno stvar.
Napravili smo i jedan tool koji omogućava provjeru brzine, više na: http://fiskalizacija.codeplex.com/discussions/404887 i http://fiskalizacija.codeplex.com/discussions/405700 . Niti to nije pomoglo - nije jasno da li je stvar routera, samog PC-a u kombinaciji sa AV, firewallom, tko zna čime...

Ono što mi iz svoje prakse možemo potvrditi je da stvar radi uvijek jednako - uvijek brzo, gotovo trenutno :)

@cartman2001, ako nije problem pitati - koja druga rješenja koristiš i zašto? Da li je uzrok kašnjenje+timeout sa FiskalizacijaDEV, u istoj okolini, dok sa tim drugim rješenjem toga nemaš? U svakom bi slučaju bilo zgodno saznati više informacija na tu temu, da se problem pokuša izolirati...
Nije nikakav problem. Ja koristim pomalo "nestandardno" rješenje a to ti je kombinacija CUBRID SQL servera i Jave.
Naime CUBRID je open source i dodatno ima jednu dobru karakteristiku da je čvrsto integriran s Javom (ima interni Java engine API).
Ukratko, same spremljene procedure pišeš dakle direktno u Javi. Znači ja koristim trigger koji se okida kada ubacim redak u tablicu računa.
Nakon toga priprema se XML, šalje u PU i vraća odgovor u tablicu. Ostalo je manje više poznato.
Sam server vrlo je stabilan (koristim ga već više od 2 god) i toplo ti preporučam da testiraš ;).
P.S.
Javu nisam pisao sam jer tu nisam baš doma (dolazim iz hardware-skih voda) Mikrokontroleri + assembler + lemilica + osciloskop itd, bla bla....

vidi www.cubrid.org
Coordinator
Feb 7, 2013 at 6:20 PM
@cartman2001, hvala ti na pojašnjenju :)
Feb 10, 2013 at 12:24 AM
edelwolf wrote:
Pozdrav, koristim EXE od početka i sve funkcionira baš onako kako treba, i radi bez pogreške i jako brzo.

Zanima me samo dali je moguće DLL koristiti iako nisam u .NET okruženje (naime moje aplikacije su rađene u WinDev-u, pa kad importam vaš DLL, on mi je samo read-only). Nebi mjenjao sa EXE na DLL, ali razmišljam da DLL počmem koristiti za maloprodajnu aplikaciju.
Radi u Windevu. Project explorer, .NET Assemblies, Use a NET Assembly in this project. I da...mislim da je minimalna verzija Windev-a u kojoj to radi 16. 15 sigurno ne radi a u 17 sve klapa ko vurica :) A V18 samo što nije :)
Coordinator
Feb 10, 2013 at 5:18 PM
@mikropro, uspio si konačno upogoniti aplikaciju?
nice :)
Feb 10, 2013 at 10:59 PM
@nrasinec, ne koristim spremanje xml fajlova, vec imam instaliran sugarsync, slicno nesto google disku ili cloudu, tako da mi se backupira odnosno sinhroniziraju podaci, odnosno baza direktno sa podacima na njihovim serverima, sto znaci da je uvijek baza up to date, a besplatno je i stane 5GB podataka...
Feb 11, 2013 at 7:28 AM
@sanjink: Koji bazu ti koristiš? I kako ide to sinkroniziranje? Pri svakoj promijeni u bazi sugarsync šalje cijelu bazu na net, odnosno nakon svakog računa? Ili ti samo XML-ove sync-aš na net?
Feb 11, 2013 at 8:17 AM
Edited Feb 11, 2013 at 8:19 AM
mikropro wrote:
edelwolf wrote:
Pozdrav, koristim EXE od početka i sve funkcionira baš onako kako treba, i radi bez pogreške i jako brzo.

Zanima me samo dali je moguće DLL koristiti iako nisam u .NET okruženje (naime moje aplikacije su rađene u WinDev-u, pa kad importam vaš DLL, on mi je samo read-only). Nebi mjenjao sa EXE na DLL, ali razmišljam da DLL počmem koristiti za maloprodajnu aplikaciju.
Radi u Windevu. Project explorer, .NET Assemblies, Use a NET Assembly in this project. I da...mislim da je minimalna verzija Windev-a u kojoj to radi 16. 15 sigurno ne radi a u 17 sve klapa ko vurica :) A V18 samo što nije :)
Da znao sam da od 16 pa nadalje radi :) (jer ja imam 15). Ništa morat ću se držati ipak EXE-a (firmi skupo uzet nadogradnju sa 15 na 17 ili 18). Ove korake koje si objasnio sam i ja koristio, ali nemam prevelike koristi od toga. Uglavnom sa EXE-om mi radi sve perfektno.
Feb 11, 2013 at 9:06 AM
@Kruu: imam i bazu i program sve u folderu i cijeli folder se sinhronizira. Kod sinhronizacije, ne salje se cijela baza nego samo dijelovi koji se update-ju, to traje par sekundi nakon sto se izda recimo racun ili se nesto radi sa bazom...rjesenje za 5...:)
lp, Sanjin
Feb 11, 2013 at 9:27 AM
sanjink wrote:
@Kruu: imam i bazu i program sve u folderu i cijeli folder se sinhronizira. Kod sinhronizacije, ne salje se cijela baza nego samo dijelovi koji se update-ju, to traje par sekundi nakon sto se izda recimo racun ili se nesto radi sa bazom...rjesenje za 5...:)
lp, Sanjin
Koji tip baze koristiš, MySQL, access ili nešto drugo?
Feb 11, 2013 at 4:58 PM
@Kruu: Ms Access
Mar 19, 2013 at 11:34 AM
Hoće li ta adresa za čokoladu?
Coordinator
Mar 19, 2013 at 11:36 AM
Joj - ne :)
Naime, poštari imaju izuzetno nezgodnu naviku NE dostavljati paket na ruke, nego ostave onu poruku pa treba odlaziti u poštu po to, što strašno komplicira stvari :)

U svakom slučaju, još jednom - nema potrebe za ničime takvim :)
Mar 20, 2013 at 9:09 AM
Hvala svima koji su radili na ovome projektu, veliko hvala za trud... sve uglavnom funkcionira. Koristim com.dll i prvo spajanje uglavnom traje do 2 sec. Na nekim strojevima potraje do 6 sec. Nije mi jasno zašto jer imam slučaj da oba stroja (2 i 6 sec) su na istoj mreži, spajaju se preko istog rutera, koriste istu bazu podataka, isti program, oba stroja su XP i odustala sam od toga da pokušam naći razlike ... i ovih 6 sec je zadovoljavajuće ...

Još jednom HVALA svima.
Mar 20, 2013 at 10:57 AM
Delay na prvom pozivu zapravo ima veze sa resove-om DNS proxy-ija.

Ako se ne koristi proxy za spajanje na CIS servis onda se on može isključiti(u kôdu ili config file-u).
// Ovo vrijedi globalno za sve web request-e
WebRequest.DefaultWebProxy = null;
App.config
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <system.net>
        <defaultProxy enabled="false"/>
    </system.net>
</configuration>
Ovo će posebno pomoć u exe rješenju jer je tamo svaki poziv prvi poziv :)

Pozdrav
Tomislav
http://fiscalization.codeplex.com/
Mar 22, 2013 at 12:10 AM
tgrospic wrote:
Delay na prvom pozivu zapravo ima veze sa resove-om DNS proxy-ija.
Moguce da si u pravu. No, gdje mi, osudjenici na Dos porozor, da konfiguriramo DNS? Kroz ruter? Pitam cisto radoznalosti radi, jer mi nikakav problem nije tih 5-10 sec za prvi racun (napominjem, ne prvi racun u danu, vec prvi racun nakon duzeg neizdavanja racuna, barem 60-120 sec). BTW, koristim Fisku za fiskalizaciju, koja pretpostavljam da sa CIS-om komunicira via Raverus.dll.
Mar 22, 2013 at 10:35 AM
Da pojasnim .NET čita windows postavke(Internet options > Connections > LAN settings) kod uspostave TCP konekcija.
I to se zapravo ovdje postavlja preko config file-a ili u kôdu, ali na razini aplikacije a ne na razini OS-a.

.NET čita config file preko exe-a koji je pokrenuo aplikaciju, za COM komponentu to je ovisno gdje se koristi i zato nema jednostavnog načina da se definira.

Ali kod tebe Fiska.exe je .NET exe i na njega treba postavit config file.
Kreiraj u istom folderu sa Fiska.exe i Fiska.exe.config sa gore navedenim XML-om.

Pozdrav
Tomislav
Mar 22, 2013 at 11:41 AM
@tgrospic - znači li to da u već postojeći Raverus.FiskalizacijaDEV.EXE.exe.config samo trebam pod <configuration> dodati
    <system.net>
        <defaultProxy enabled="false"/>
    </system.net>
pa da izgleda ovako:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <configSections>
        <sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
            <section name="Raverus.FiskalizacijaDEV.EXE.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" />
        </sectionGroup>
    </configSections>
    <userSettings>
        <Raverus.FiskalizacijaDEV.EXE.Properties.Settings>
            <setting name="CisUrl" serializeAs="String">
                <value />
            </setting>
            <setting name="TimeOut" serializeAs="String">
                <value>0</value>
            </setting>
            <setting name="RacunZahtjevDatoteka" serializeAs="String">
                <value />
            </setting>
            <setting name="PoslovniProstorZahtjevDatoteka" serializeAs="String">
                <value />
            </setting>
            <setting name="RacunOdgovorDatoteka" serializeAs="String">
                <value />
            </setting>
            <setting name="PoslovniProstorOdgovorDatoteka" serializeAs="String">
                <value />
            </setting>
            <setting name="NazivCertifikata" serializeAs="String">
                <value />
            </setting>
            <setting name="RacunZahtjevPotpisiDatoteka" serializeAs="String">
                <value />
            </setting>
            <setting name="PoslovniProstorZahtjevPotpisiDatoteka" serializeAs="String">
                <value />
            </setting>
            <setting name="RacunZahtjevPosaljiDatoteka" serializeAs="String">
                <value />
            </setting>
            <setting name="PoslovniProstorZahtjevPosaljiDatoteka" serializeAs="String">
                <value />
            </setting>
            <setting name="RacunOdgovorPotpisiDatoteka" serializeAs="String">
                <value />
            </setting>
            <setting name="PoslovniProstorOdgovorPotpisiDatoteka" serializeAs="String">
                <value />
            </setting>
            <setting name="RacunOdgovorPosaljiDatoteka" serializeAs="String">
                <value />
            </setting>
            <setting name="PoslovniProstorOdgovorPosaljiDatoteka" serializeAs="String">
                <value />
            </setting>
        </Raverus.FiskalizacijaDEV.EXE.Properties.Settings>
    </userSettings>
    <system.net>
        <defaultProxy enabled="false"/>
    </system.net>
</configuration>
Dakle, samo ga dodam na istom nivou kao <configSections> <userSettings>?
Mar 22, 2013 at 11:56 AM
tgrospic hvala.
Funkcionira i na nivou LAN settings i na nivou Raverus.FiskalizacijaDEV.EXE.exe.config
Prvi prolaz i svi ostali su unutar 1 sec.
Još jednom HVALA