[This is preliminary documentation and is subject to change.]
PRIMJERI
CopyC#
TringFiskalniPrinter printer = new TringFiskalniPrinter(); KasaOdgovor odgovor = new KasaOdgovor(); StatusUredjaja status; //vrsta fiskalnog uređaja printer.VrstaUredjaja = VrsteFiskalnihUredjaja.TringTF1; //promijeni režim u emulator printer.PromjeniRezimRada(RezimRada.Emulator); //postavka ip adrese Tring.Fiscal.Server //localhost za slučaj lokalnog server //ip adresa ili mrežni naziv računala u slučaju da je server lociran u mreži printer.IPadresa("localhost"); //testiranje dostupnosti Tring.Fiscal.Server odgovor = printer.TestirajTringFiscalServer(); if (odgovor.VrstaOdgovora == VrsteOdgovora.OK) { //server dostupan //provjera statusa uredjaja status = printer.ProvjeriStatusUredjaja(); if (status == StatusUredjaja.Normalan || status == StatusUredjaja.Test) { //nastavak koda OleDbConnection con = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=..\..\..\..\..\VB6\pos.mdb"); OleDbCommand command = new OleDbCommand("select * from KOMITENTI where JIB=1234567890123", con); //komitent na računu OleDbDataReader dr; try { con.Open(); dr = command.ExecuteReader(); Kupac kup = new Kupac(); while (dr.Read()) { kup.IDbroj = dr.GetValue(0).ToString(); //samo brojevi ipak kup.Naziv = dr.GetString(1); kup.Adresa = dr.GetString(2); kup.PostanskiBroj = int.Parse(dr.GetString(3)); kup.Grad = dr.GetString(4); } dr.Close(); //novi racun Racun _racun = new Racun(); _racun.Kupac = kup; //učitavanje stavki iz računa command.CommandText = "SELECT RACUNI_STAVKE.BrojStavke, RACUNI_STAVKE.BrojRacuna, RACUNI_STAVKE.Artikal, RACUNI_STAVKE.Kolicina, RACUNI_STAVKE.Cijena, RACUNI_STAVKE.Rabat, ARTIKLI.Naziv, ARTIKLI.JM, ARTIKLI.StopaPDV " + "FROM RACUNI_STAVKE INNER JOIN ARTIKLI ON RACUNI_STAVKE.Artikal = ARTIKLI.Sifra " + " where RACUNI_STAVKE.BrojRacuna=1"; //može ići i parametar dr = command.ExecuteReader(); while (dr.Read()) { RacunStavka _stavka = new RacunStavka(); //izmjena od CTP2 Artikal art = new Artikal(); art.Sifra = dr.GetValue(2).ToString(); art.Naziv = dr.GetString(6); art.JM = dr.GetString(7); art.Stopa = (VrstePoreskihStopa)dr.GetInt16(8); art.Cijena = dr.GetDouble(4); //_stavka.SifraArtikla = dr.GetValue(2).ToString(); //samo brojevi ipak _stavka.Kolicina = (double) dr.GetValue(3); //_stavka.Cijena = (double)dr.GetValue(4); izbačeno u CTP2, pošto se već nalazi u objektu Artikal _stavka.Rabat = (double)dr.GetValue(5); _racun.DodajStavkuRacuna(_stavka); } //unijeti način plaćanja //kada je iznos 0 to znači kompletan iznos ide za tu vrstu plaćanja //prema Zakonu, mora se omogućiti da jedan račun bude plaćen na više vrsta plaćanja //npr. ako je iznos računa 110 KM, treba omogućiti da 100 bude plaćano Karticom a 10 u Gotovini _racun.DodajVrstuPlacanja(VrstePlacanja.Virman, 0); //dodati u printer odgovor = printer.StampatiReklamiraniRacun(_racun); if (odgovor.VrstaOdgovora == VrsteOdgovora.OK) { Debug.WriteLine("OK"); for (int i = 0; i less odgovor.Odgovori.Count; i++) { if (odgovor.Odgovori[i].Naziv == "BrojFiskalnogRacuna") { // } } } dr.Close(); con.Close(); } catch (Exception ex) { MessageBox.Show(ex.Message); } } } else { //greška } printer = null; odgovor = null;
CopyVB 5,6
Dim printer As TringFiskalniPrinter Dim odgovor As KasaOdgovor Dim status As StatusUredjaja Dim racun As racun Dim stavkaracuna As RacunStavka Dim kupac As kupac Dim i As Integer Dim adoRacun As New ADODB.Recordset Dim adoRacunStavke As New ADODB.Recordset Dim con As New ADODB.Connection With con .Provider = "MSDataShape" .Properties("Data Provider") = "Microsoft.Jet.OLEDB.4.0" .Properties("Data Source") = Replace("D:\PROJEKTI\Tring.Fiscal\Sample\VB6\pos.mdb", vbNullChar, "") .Properties("User ID").Value = "Admin" End With Set printer = New TringFiskalniPrinter Set odgovor = New KasaOdgovor 'vrsta fiskalnog uređaja printer.VrstaUredjaja = VrsteFiskalnihUredjaja_TringTF1 'promijeni režim u emulator printer.PromjeniRezimRada (RezimRada_Emulator) 'postavka ip adrese Tring.Fiscal.Server 'localhost za slučaj lokalnog server 'ip adresa ili mrežni naziv računala u slučaju da je server lociran u mreži printer.IPadresa ("localhost") 'testiranje dostupnosti Tring.Fiscal.Server Set odgovor = printer.TestirajTringFiscalServer() If odgovor.VrstaOdgovora = VrsteOdgovora_OK Then 'server dostupan status = printer.ProvjeriStatusUredjaja() 'provjera statusa uredjaj If status = StatusUredjaja_Normalan Or status = StatusUredjaja_Test Then 'nastavak koda 'otvaranje konekcije Call con.Open Set adoRacun.ActiveConnection = con 'zadavanje SQL naredbe adoRacun.Source = "SELECT KOMITENTI.JIB, KOMITENTI.NazivKomitenta, KOMITENTI.Adresa1, KOMITENTI.Adresa2, KOMITENTI.Adresa3, KOMITENTI.PDVbroj " + _ "FROM RACUNI INNER JOIN KOMITENTI ON RACUNI.Komitent = KOMITENTI.JIB " + _ "WHERE (((RACUNI.BrojRacuna)= 1));" 'možete koristiti parametar za broj računa Call adoRacun.Open Set kupac = New kupac With kupac .IDbroj = adoRacun!JIB .Naziv = adoRacun!NazivKomitenta .Adresa = adoRacun!Adresa1 .PostanskiBroj = adoRacun!Adresa2 .Grad = adoRacun!Adresa3 End With 'novi racun Set racun = New racun 'dodjeljivanje kupca. Ako ne postoji ostaviti nothing null Set racun.kupac = kupac 'dodavanje stavki na račun Set adoRacunStavke.ActiveConnection = con adoRacunStavke.Source = "SELECT RACUNI_STAVKE.BrojStavke, RACUNI_STAVKE.BrojRacuna, RACUNI_STAVKE.Artikal, RACUNI_STAVKE.Kolicina, RACUNI_STAVKE.Cijena, RACUNI_STAVKE.Rabat, ARTIKLI.Naziv, ARTIKLI.JM, ARTIKLI.StopaPDV " + _ "FROM RACUNI_STAVKE INNER JOIN ARTIKLI ON RACUNI_STAVKE.Artikal = ARTIKLI.Sifra " + _ " where RACUNI_STAVKE.BrojRacuna=1" 'može ići parametar adoRacunStavke.Open 'učitavanje artikala iz recordseta u listu artikala For i = 0 To adoRacunStavke.RecordCount - 1 'kreiranje novog artikla Set stavkaracuna = New RacunStavka Set art = New Artikal With art .Sifra = adoRacunStavke!Artikal .Naziv = adoRacunStavke!Naziv .JM = adoRacunStavke!JM .Stopa = CInt(adoRacunStavke!StopaPDV) .Cijena = CDbl(adoRacunStavke!Cijena) End With With stavkaracuna Set .Artikal = art 'izbačeno od CTP2 '.SifraArtikla = adoRacunStavke!Artikal .Kolicina = CDbl(adoRacunStavke!Kolicina) 'izbačeno od CTP2 '.Cijena = CDbl(adoRacunStavke!Cijena) .Rabat = CDbl(adoRacunStavke!Rabat) End With 'dodavanje artikla u listu Call racun.DodajStavkuRacuna(stavkaracuna) adoRacunStavke.MoveNext Next i 'zatvaranje konekcije adoRacun.Close adoRacunStavke.Close Call con.Close 'stampati reklamirani račun Set odgovor = printer.StampatiReklamiraniRacun(racun) If odgovor.VrstaOdgovora = VrsteOdgovora_OK Then 'račun uspješno odštampan na fiskalnom printeru For i = 0 To odgovor.BrojOdgovora - 1 If odgovor.OdgovorCom(i).Naziv = "BrojFiskalnogRacuna" Then 'insertovanje broja fiskalnog računa u bazu 'broj fiskalnog računa je obavezno prikazati na štampanoj A4 verziji računa End If Next i End If End If Else 'greška '.... End If Set adoRacun = Nothing Set adoRacunStavke = Nothing Set con = Nothing Set printer = Nothing Set odgovor = Nothing