Visual FoxPro i Schema.RacunType

Dec 26, 2012 at 4:42 PM

Raverus.FiskalizacijaDEV.CentralniInformacijskiSustav cis = new CentralniInformacijskiSustav();

Raverus.FiskalizacijaDEV.Schema.RacunType racun = new Schema.RacunType();
racun.Oib = oib;
racun.USustPdv = true;
racun.DatVrijeme = Raverus.FiskalizacijaDEV.PopratneFunkcije.Razno.DohvatiFormatiranoTrenutnoDatumVrijeme();
racun.OznSlijed = Schema.OznakaSlijednostiType.P;

Raverus.FiskalizacijaDEV.Schema.BrojRacunaType broj = new Schema.BrojRacunaType();
broj.BrOznRac = "1";
broj.OznPosPr = "123";
broj.OznNapUr = "1";
racun.BrRac = broj;

Raverus.FiskalizacijaDEV.Schema.PdvType pdv = new Schema.PdvType();
Raverus.FiskalizacijaDEV.Schema.PorezType porez = new Schema.PorezType();
porez.Stopa = 25.00m;   // XSD schema tahtjeva dvije decimale, obratite paznju na to!
porez.Osnovica = 10.00m;
porez.Iznos = 2.50m;
pdv.Porez.Add(porez);

racun.IznosUkupno = 12.50m;
racun.NacinPlac = Schema.NacinPlacanjaType.G;
racun.OibOper = "12345678900";
racun.ZastKod = "e4d909c290d0fb1ca068ffaddf22cbd0"; 
racun.NakDost = false;

XmlDocument doc = cis.PosaljiRacun(racun, "FISKAL 1");

Je li netko ovo uspio napraviti u Visual FoxPro 9? Molim za primjer i unaprijed zahvaljujem!

Naime, sve funkcije iz COM-a u VFP9 rade, ali ne znam kako kreirati XML u 'u letu', preko Scheme... sada XML kreiram 'pješice'...

Coordinator
Dec 26, 2012 at 6:50 PM

Ovaj dio nema COM sučelje, tako da moraš i dalje koristiti "ručno" slaganje XML-a...

Dec 26, 2012 at 8:41 PM
Edited Dec 26, 2012 at 8:48 PM

Ili pozivaj direktno code iz assemblya - bez registracije COMa.

Evo ti hintovi :

http://fiskalizacija.codeplex.com/discussions/402386#post938471

http://www.west-wind.com/wwDotnetBridge.aspx

Jan 7, 2013 at 3:20 PM

Mali primjer za xml u letu "ručni" odnosno bez kreiranja xml-a na disku i bez file2var nego direktno

vrijednosti su u varijablama koje se mjenjaju ,  jednostavno

Isprobano i radi super na produkciji

Zahvala na Raverus dll-ovima sourceu i svemu ostalom

TEXT TO

xml NOSHOW ADDITIVE TEXTMERGE PRETEXT 7

<?xml

version="1.0" encoding="utf-8"?>

<tns:RacunZahtjev xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

Id="signXmlId" xmlns:tns="http://www.apis-it.hr/fin/2012/types/f73">

<tns:Zaglavlje>

<tns:IdPoruke><<lidporuka>></tns:IdPoruke>

<tns:DatumVrijeme><<trvrijeme>></tns:DatumVrijeme>

</tns:Zaglavlje>

<tns:Racun>

<tns:Oib><<oibx>></tns:Oib>

<tns:USustPdv>true</tns:USustPdv>

<tns:DatVrijeme><<mvrijemer>></tns:DatVrijeme>

<tns:OznSlijed>P</tns:OznSlijed>

<tns:BrRac>

<tns:BrOznRac><<mbrojr>></tns:BrOznRac>

<tns:OznPosPr>P1</tns:OznPosPr>

<tns:OznNapUr>1</tns:OznNapUr>

</tns:BrRac>

<tns:Pdv>

<tns:Porez>

<tns:Stopa>25.00</tns:Stopa>

<tns:Osnovica><<osnov25>></tns:Osnovica>

<tns:Iznos><<porez25>></tns:Iznos>

</tns:Porez>

<tns:Porez>

<tns:Stopa>10.00</tns:Stopa>

<tns:Osnovica><<osnov10>></tns:Osnovica>

<tns:Iznos><<porez10>></tns:Iznos>

</tns:Porez>

</tns:Pdv>

<tns:Pnp>

<tns:Porez>

<tns:Stopa>3.00</tns:Stopa>

<tns:Osnovica><<osnov3>></tns:Osnovica>

<tns:Iznos><<porez3>></tns:Iznos>

</tns:Porez>

</tns:Pnp>

<tns:IznosUkupno><<mukr>></tns:IznosUkupno>

<tns:NacinPlac>G</tns:NacinPlac>

<tns:OibOper><<radoib>></tns:OibOper>

<tns:ZastKod><<zki>></tns:ZastKod>

<tns:NakDost><<naknadno>></tns:NakDost>

</tns:Racun>

</tns:RacunZahtjev>

ENDTEXT

Jan 15, 2013 at 2:10 PM

Integraciju Fox-a i .Net-a sam uspješno obavio (hvala mladenbabic).

No ne znam kojom metodom iz Fox-a pozivam računanje ZKI-ja putem assemblyja?

Odnosno koje metode uopće imam na raspolaganju osim:

TestCOM(string test)
PosaljiEcho(string poruka)
PosaljiSoapPoruku(string xml, string certificateSubject)
PosaljiSoapPorukuCertifikatDatoteka(string xml, string certifikatDatoteka, string zaporka)
DohvatiJir(string xml)?

Trebaju li mi podaci biti negdje posebno pohranjeni (jer ja ih držim u Foxovim tablicama i varijablama)?

Sorry ako su pitanja trivijalna.

Coordinator
Jan 15, 2013 at 2:12 PM

Koristiš ZastitniKodIzracun

Pogledaj: http://fiskalizacija.codeplex.com/wikipage?title=Potpisivanje%20i%20slanje%20pozivanjem%20COM%20DLL-a

Jan 15, 2013 at 2:22 PM
p0k7 wrote:

Integraciju Fox-a i .Net-a sam uspješno obavio (hvala mladenbabic).

No ne znam kojom metodom iz Fox-a pozivam računanje ZKI-ja putem assemblyja?

Odnosno koje metode uopće imam na raspolaganju osim:

TestCOM(string test)
PosaljiEcho(string poruka)
PosaljiSoapPoruku(string xml, string certificateSubject)
PosaljiSoapPorukuCertifikatDatoteka(string xml, string certifikatDatoteka, string zaporka)
DohvatiJir(string xml)?

Trebaju li mi podaci biti negdje posebno pohranjeni (jer ja ih držim u Foxovim tablicama i varijablama)?

Sorry ako su pitanja trivijalna.

Evo u kratko kako ja koristim COM:

1. Izracuvananje Zastitnog Kod-a

cStrZk = myObject.ZastitniKodIzracunCertifikatDatoteka(gPathCertifikata, gPWDCertifikata, cMaticniBroj, cDatum, CStr(mBrojRacuna), gOznakaPoslovnogProstora, NaplatniUredjaj, cIznRac)       

2. Izracunavanje UUID-a

cStrUUID = myObject.GenerirajUuid()

 

3. Generiranje XML-a sa svim potrebnim parametrima 

4. Saljem XML u CIS

odgovor = myObject.PosaljiSoapPorukuCertifikatDatoteka(xml, gPathCertifikata, gPWDCertifikata)

5. Dohvacam JIR i dolaznog XML-a

cStrjir = myObject.DohvatiJir(odgovor)

6. Ako ima gresaka, love se sa :

greska = myObject.OdgovorGreska

 

7. Snimam XML file-ove

8. Ispisuje se racun.

 

I za sada fercera bez problema.

Nino,

kaj da vise velim .. :)

Coordinator
Jan 15, 2013 at 2:24 PM

:)

Hvala na dodatnom pojašnjenju za kolege koji koriste COM :)

Jan 15, 2013 at 2:25 PM

Nino,

vidim da si se vratio.... :)  .

Samo reci kad pase da se nadjemo u GG-oldu !! :)

Coordinator
Jan 15, 2013 at 2:34 PM

Je, u subotu; lovim konce ovih dana, javljam se na mail pa da nekaj dogovorimo :)

Jan 15, 2013 at 2:55 PM
nrasinec wrote:

Je, u subotu; lovim konce ovih dana, javljam se na mail pa da nekaj dogovorimo :)

OK..

Jan 16, 2013 at 10:25 AM

Nino i Goran, hvala vam puno.

Jan 16, 2013 at 1:37 PM
Edited Jan 16, 2013 at 1:38 PM

Zašto mi metoda:

cZKI= oCis.ZastitniKodIzracun(cCert, cOIB, cDVI, cBOR, gOPP, gONU, cUIR)

vrati drugačiji ZKI od FDev Explorera v1.0.1.0, a za generiranje XML-a koriste se iste ove varijable gore (cDVI je formata"22.10.2012T18:04:26")?

I zašto mi CIS (u testnom okruženju) vraća JIR bez obzira je li ZKI ispravan ili ne (mijenjam pokoju znamenku ručno, a on uvijek vrati)? To je normalno?

Jan 16, 2013 at 1:57 PM
p0k7 wrote:

Zašto mi metoda:

cZKI= oCis.ZastitniKodIzracun(cCert, cOIB, cDVI, cBOR, gOPP, gONU, cUIR)

vrati drugačiji ZKI od FDev Explorera v1.0.1.0, a za generiranje XML-a koriste se iste ove varijable gore (cDVI je formata"22.10.2012T18:04:26")?

I zašto mi CIS (u testnom okruženju) vraća JIR bez obzira je li ZKI ispravan ili ne (mijenjam pokoju znamenku ručno, a on uvijek vrati)? To je normalno?

Gle, ZK je broj koji ti generiras i Cis ga uopce ne kontrolira. Njemu je sasvim nebitno kaj si ti poslao. ( prema onim pravilima ). Tako da ces ti dobiti JIR od Cia-a bez obzira mjenjao li koju znamenku ili ne.

E sada, zakaj FDev Explorer vrati drugaciji ZK ???

To ce ti Nino sigurno uskoro obrazloziti, tj objasniti gdje je kvaka .. :)

Coordinator
Jan 16, 2013 at 2:18 PM

FDev explorer je u svojoj prvoj verziji imao bug vezan uz izračun ZKI (https://getsatisfaction.com/fdev/topics/iaj0zxihi6ixd), napravi nadogradnju na zadnju verziju i ZKI koji dobiješ putem FDev Explorera bi morao biti isti kao i ZKI koji vraća FiskalizacijaDEV.DLL/COM/EXE, za iste ulazne parametre.

Jan 16, 2013 at 2:44 PM

To znam, ali fora je u tome da mi upravo verzija 1.0.1.0. vraća drugačiji ZKI (FDev automatski nudi update tako da sam to odmah riješio). :(

Coordinator
Jan 16, 2013 at 2:50 PM

Daj onda provjeri koje ulazne parametre daješ na jednom i na drugom mjestu...

Jan 17, 2013 at 9:07 AM

Nino,

pojavljuje se razlika u generiranju ZK-ova, tj stvar je kako se proslijedi datum & vrijeme.

Ja iz programa saljem sa "T" i dobijem drugacije nego u FDev Exploreru.

Kad sam za test slao sa " " dobio sam isto. 

E sada, pitanje je kako treba slati: u specifikaciji za korisnike V1.2 stoji:

"Datum i vrijeme izdavanja koji se ispisuju na računu. dd.mm.ggggThh:mm:ss"

Coordinator
Jan 17, 2013 at 9:21 AM

Bojim se da nisi u pravu, u Tehničkoj sepcifikaciji stoji da ide bez T, pogledaj stranu 49: "pročitaj (datVrij – datum i vrijeme izdavanja računa zapisani kao tekstu formatu 'dd.MM.gggg HH:mm:ss')"

Jan 17, 2013 at 9:35 AM
nrasinec wrote:

Bojim se da nisi u pravu, u Tehničkoj sepcifikaciji stoji da ide bez T, pogledaj stranu 49: "pročitaj (datVrij – datum i vrijeme izdavanja računa zapisani kao tekstu formatu 'dd.MM.gggg HH:mm:ss')"

Auuuu.. :)

U pravu si, ja slao onako kako se generira XML !! No nema veze, ovu godinu moram onda ovako, posto su vec racuni generirani sa "pogresnim" oblikom datum - vrijeme, zbog naknadnog generiranja iz programa koji radi na isti nacin kako sam i slao u Cis.

Nadam se da se nece pogoditi dva ista ZK !! :)

 

Coordinator
Jan 17, 2013 at 9:39 AM

Ma da, ovo je totalna budalaština i nemar, što to nisu uskladili sa formatom u zahtjev XML; predlagali smo da se to usuglasi u onim davnim danima kada su još primali sugestije, no, eto, nije prošlo :)

Jan 17, 2013 at 9:41 AM

Ma da znas da me briga : moj ZK ce valjda biti jedinstven i takav isti ce se naknadno generirati iz programa i kraj price.. :)

Jan 17, 2013 at 12:19 PM

Istinu zborite. Ako "T" zamijenim sa " " ZKI se podudara.

Znači što ste zaključili, u XML-u držim format 'dd.MM.ggggTHH:mm:ss', a ZKI izračunavam pomoću 'dd.MM.gggg HH:mm:ss'? I tako je ok?

Coordinator
Jan 17, 2013 at 12:21 PM

Da

Jan 17, 2013 at 12:28 PM
p0k7 wrote:

Istinu zborite. Ako "T" zamijenim sa " " ZKI se podudara.

Znači što ste zaključili, u XML-u držim format 'dd.MM.ggggTHH:mm:ss', a ZKI izračunavam pomoću 'dd.MM.gggg HH:mm:ss'? I tako je ok?

Je ako nisi vec poslao racune ( kao i ja ) sa "T" u ZKI-jevima !!!