private void KreirajDIsketu() { string strPoziv = this.sifraugovaratelja.Text + "90"; strPoziv = strPoziv + Razno.KontrolniBroj(strPoziv); string str = "up5924-" + this.rkdp.Text + "-" + strPoziv; SaveFileDialog dialog2 = new SaveFileDialog { InitialDirectory = Conversions.ToString(0), FileName = str, RestoreDirectory = true }; SaveFileDialog dialog = dialog2; if (dialog.ShowDialog() == DialogResult.OK) { if (this.SnimiDisketuZaHZZO(dialog.FileName)) { MessageBox.Show("Datoteka za HZZO uspješno kreirana."); } else { MessageBox.Show("Greška prilikom kreiranja HZZO datoteke."); } } }
private void btnNarudzbe_Click(object sender, EventArgs e) { string sql = "SELECT * FROM neuspjela_fiskalizacija"; DataTable DT = classSQL.select(sql, "neuspjela_fiskalizacija").Tables[0]; Raverus.FiskalizacijaDEV.Schema.ZaglavljeType zaglavlje = new Raverus.FiskalizacijaDEV.Schema.ZaglavljeType() { DatumVrijeme = Razno.DohvatiFormatiranoTrenutnoDatumVrijeme(), IdPoruke = Guid.NewGuid().ToString() }; X509Certificate2 certifikat = Raverus.FiskalizacijaDEV.PopratneFunkcije.Potpisivanje.DohvatiCertifikat(DTfis.Rows[0]["naziv_certifikata"].ToString()); string datum_vrijeme = DateTime.Now.ToString("dd.MM.yyyyThh:mm:ss"); for (int i = 0; i < DT.Rows.Count; i++) { XmlDocument dokument = new XmlDocument(); dokument.LoadXml(DT.Rows[i]["xml"].ToString()); XmlNamespaceManager ns = new XmlNamespaceManager(dokument.NameTable); ns.AddNamespace("tns", "http://www.apis-it.hr/fin/2012/types/f73"); string d = dokument.SelectSingleNode("/tns:RacunZahtjev/tns:Racun/tns:NakDost", ns).ChildNodes[0].Value = "true"; Raverus.FiskalizacijaDEV.CentralniInformacijskiSustav cis = new CentralniInformacijskiSustav(); if (Class.Postavke.TEST_FISKALIZACIJA) { cis.CisUrl = "https://cistest.apis-it.hr:8449/FiskalizacijaServiceTest"; } else { cis.CisUrl = "https://cis.porezna-uprava.hr:8449/FiskalizacijaService"; } Raverus.FiskalizacijaDEV.PopratneFunkcije.Potpisivanje.PotpisiXmlDokument(dokument, certifikat); Raverus.FiskalizacijaDEV.PopratneFunkcije.XmlDokumenti.DodajSoapEnvelope(ref dokument); try { DateTime dd; DateTime.TryParse(DT.Rows[i]["date"].ToString(), out dd); string id_kasa = DT.Rows[i]["id_kasa"].ToString(); string id_ducan = DT.Rows[i]["id_ducan"].ToString(); XmlDocument odgovor = cis.PosaljiSoapPoruku(dokument); string jir = Raverus.FiskalizacijaDEV.PopratneFunkcije.XmlDokumenti.DohvatiJir(odgovor); provjera_sql(classSQL.delete("DELETE FROM neuspjela_fiskalizacija WHERE broj_racuna='" + DT.Rows[i]["broj_racuna"].ToString() + "'" + " AND id_kasa='" + id_kasa + "' AND id_ducan='" + id_ducan + "'")); provjera_sql(classSQL.update("UPDATE racuni SET jir='" + jir + "' WHERE broj_racuna='" + DT.Rows[i]["broj_racuna"].ToString() + "'" + " AND godina='" + dd.Year.ToString() + "' AND id_kasa='" + id_kasa + "' AND id_ducan='" + id_ducan + "'" + "")); } catch (Exception ex) { MessageBox.Show("Greška kod fiskalizacije\r\n\r\n\r\n" + cis.OdgovorGreska.InnerXml + ex.ToString() + "\r\n\r\n\r\n\r\n\r\n" + ex.ToString(), "Greška od strane FINE"); } } Set(); }
private bool SnimiDisketuZaHZZO(string strNazivDatoteke) { bool flag = false; if (this.olaksica == -1) { Interaction.MsgBox("Potrebno je odabrati olakšicu za koju želite izraditi datoteku", MsgBoxStyle.OkOnly, null); return(flag); } try { IEnumerator enumerator = null; SqlConnection connection = new SqlConnection(Configuration.ConnectionString); SqlCommand selectCommand = new SqlCommand(); SqlDataAdapter adapter = new SqlDataAdapter(selectCommand); selectCommand.Connection = connection; S_OD_REKAP_OLAKSICEDataAdapter adapter2 = new S_OD_REKAP_OLAKSICEDataAdapter(); S_OD_REKAP_OLAKSICEDataSet dataSet = new S_OD_REKAP_OLAKSICEDataSet(); object obj2 = adapter2.Fill(dataSet, this.Obracun); if (dataSet.Tables[0].Rows.Count == 0) { MessageBox.Show("Ne postoje obračunate olakšice!"); return(flag); } DataView view = new DataView { Table = dataSet.S_OD_REKAP_OLAKSICE }; decimal num3 = DB.N20(RuntimeHelpers.GetObjectValue(view.Table.Compute("Sum(IZNOSOLAKSICE)", "IDOLAKSICE=" + Conversions.ToString(this.olaksica)))); decimal num = DB.N20(RuntimeHelpers.GetObjectValue(view.Table.Compute("count(idradnik)", "IDOLAKSICE=" + Conversions.ToString(this.olaksica)))); StreamWriter writer = new StreamWriter(strNazivDatoteke, false, Encoding.ASCII); writer.Write("0:5924-"); writer.Write(DB.BrojVodeceNule(this.rkdp.Text, 5, 0, false, "")); string strPoziv = this.sifraugovaratelja.Text + "90"; strPoziv = strPoziv + Razno.KontrolniBroj(strPoziv); writer.Write("-"); writer.Write(strPoziv); writer.Write(":"); writer.Write(this.nazivkorisnika); writer.Write(" :"); writer.Write(Conversions.ToDate(this.datum.Value).ToString("dd.MM.yyyy")); writer.Write(": "); writer.Write(num3.ToString("0.00").Replace(",", ".")); writer.Write(":" + Conversions.ToString(num)); writer.WriteLine(":"); int num2 = 0; try { enumerator = view.Table.Rows.GetEnumerator(); while (enumerator.MoveNext()) { DataRow current = (DataRow)enumerator.Current; if (Operators.ConditionalCompareObjectEqual(current["idolaksice"], this.olaksica, false)) { num2++; writer.Write("1:5924-"); writer.Write(this.rkdp.Text + "-"); writer.Write(RuntimeHelpers.GetObjectValue(current["ZADPOJEDINACNIPOZIV"])); writer.Write(":"); writer.Write(RuntimeHelpers.GetObjectValue(current["prezime"])); writer.Write(Operators.ConcatenateObject(" ", current["ime"])); writer.Write(":"); writer.Write(Conversions.ToDate(this.datum.Value).ToString("dd.MM.yyyy")); writer.Write(": "); decimal num4 = Conversions.ToDecimal(current["iznosolaksice"]); writer.Write(num4.ToString("0.00").Replace(",", ".")); writer.Write(":"); writer.Write(num2); writer.WriteLine(":"); } } } finally { if (enumerator is IDisposable) { (enumerator as IDisposable).Dispose(); } } writer.Close(); flag = true; } catch (System.Exception exception1) { throw exception1; //Interaction.MsgBox("Greška prilikom kreiranja datoteke za HZZO", MsgBoxStyle.OkOnly, null); //flag = false; } return(flag); }
private void PosaljiPodatke() { if (txtOIB.Text == "") { MessageBox.Show("Krivo upisani oib."); return; } if (txtOznakaPP.Text == "") { MessageBox.Show("Krivo upisana oznaka PP."); return; } if (txtUlica.Text == "") { MessageBox.Show("Krivo upisana ulica."); return; } if (txtKucniBroj.Text == "") { MessageBox.Show("Krivo upisani kućni broj."); return; } if (txtBrojPoste.Text == "") { MessageBox.Show("Krivo upisani broj pošte."); return; } if (txtNaselje.Text == "") { MessageBox.Show("Krivo upisani oib."); return; } if (txtOpcina.Text == "") { MessageBox.Show("Krivo upisana općina."); return; } if (txtRadnoVrijeme.Text == "") { MessageBox.Show("Krivo upisano radno vrijeme."); return; } if (txtOznakaPP.Text.Length > 19) { MessageBox.Show("Previše znamenaka u poslovnom prostoru."); } ZaglavljeType zaglavlje = new ZaglavljeType() { DatumVrijeme = Razno.DohvatiFormatiranoTrenutnoDatumVrijeme(), IdPoruke = Guid.NewGuid().ToString() }; //X509Certificate2 certifikat = Raverus.FiskalizacijaDEV.PopratneFunkcije.Potpisivanje.DohvatiCertifikat(DTfis.Rows[0]["naziv_certifikata"].ToString()); X509Certificate2 certifikat; if (File.Exists(Class.Postavke.putanja_certifikat)) { certifikat = Potpisivanje.DohvatiCertifikat(Class.Postavke.putanja_certifikat, Class.Postavke.certifikat_zaporka); } else { certifikat = Potpisivanje.DohvatiCertifikat(DTfis.Rows[0]["naziv_certifikata"].ToString()); } try { CentralniInformacijskiSustav cis = new CentralniInformacijskiSustav(); if (Class.Postavke.TEST_FISKALIZACIJA) { cis.CisUrl = "https://cistest.apis-it.hr:8449/FiskalizacijaServiceTest"; } else { cis.CisUrl = "https://cis.porezna-uprava.hr:8449/FiskalizacijaService"; } cis.TimeOut = 10000; PoslovniProstorType poslovniProstor = new PoslovniProstorType(); poslovniProstor.Oib = txtOIB.Text; poslovniProstor.OznPoslProstora = txtOznakaPP.Text; AdresaType adresa = new AdresaType(); adresa.Ulica = txtUlica.Text; adresa.KucniBroj = txtKucniBroj.Text; if (txtKucniDodatak.Text != "") { adresa.KucniBrojDodatak = txtKucniDodatak.Text; } adresa.BrojPoste = txtBrojPoste.Text; adresa.Naselje = txtNaselje.Text; adresa.Opcina = txtOpcina.Text; AdresniPodatakType adresniPodatak = new AdresniPodatakType(); adresniPodatak.Item = adresa; poslovniProstor.AdresniPodatak = adresniPodatak; if (chbZatvaranje.Checked) { poslovniProstor.OznakaZatvaranjaSpecified = true; poslovniProstor.OznakaZatvaranja = OznakaZatvaranjaType.Z; } poslovniProstor.RadnoVrijeme = txtRadnoVrijeme.Text; poslovniProstor.DatumPocetkaPrimjene = Razno.FormatirajDatum(dtpDate.Value); poslovniProstor.SpecNamj = Class.Postavke.OIB_PC1; XmlDocument doc = cis.PosaljiPoslovniProstor(poslovniProstor, certifikat); //MessageBox.Show(doc.InnerXml.Replace("\'", "")); if (cis.OdgovorGreska != null) { MessageBox.Show("Greška kod slanja zahtjeva"); } else { string zatvaranje = "0"; if (chbZatvaranje.Checked) { zatvaranje = "1"; } string sql = "UPDATE podaci_poslovnica_fiskal SET " + " OIB='" + txtOIB.Text + "'," + " oznakaPP='" + txtOznakaPP.Text + "'," + " ulica='" + txtUlica.Text + "'," + " broj='" + txtKucniBroj.Text + "'," + " broj_dodatak='" + txtKucniDodatak.Text + "'," + " posta='" + txtBrojPoste.Text + "'," + " naselje='" + txtNaselje.Text + "'," + " opcina='" + txtOpcina.Text + "'," + " datum='" + dtpDate.Value.ToString() + "'," + " r_vrijeme='" + txtRadnoVrijeme.Text + "'," + " zatvaranje='" + zatvaranje + "'" + ""; classSQL.Setings_Update(sql); MessageBox.Show("Zahtjev uspješno poslan."); } } catch (Exception ex) { string sql = "UPDATE podaci_poslovnica_fiskal SET " + " OIB='" + txtOIB.Text + "'," + " oznakaPP='" + txtOznakaPP.Text + "'," + " ulica='" + txtUlica.Text + "'," + " broj='" + txtKucniBroj.Text + "'," + " broj_dodatak='" + txtKucniDodatak.Text + "'," + " posta='" + txtBrojPoste.Text + "'," + " naselje='" + txtNaselje.Text + "'," + " opcina='" + txtOpcina.Text + "'," + " datum='" + dtpDate.Value.ToString() + "'," + " r_vrijeme='" + txtRadnoVrijeme.Text + "'," + " zatvaranje='0'" + ""; classSQL.Setings_Update(sql); MessageBox.Show("Greška kod slanja zahtjeva.\r\n\r\n" + ex.ToString()); } }
private void btnNarudzbe_Click(object sender, EventArgs e) { string sql = "SELECT * FROM neuspjela_fiskalizacija"; DataTable DT = classSQL.select(sql, "neuspjela_fiskalizacija").Tables[0]; Raverus.FiskalizacijaDEV.Schema.ZaglavljeType zaglavlje = new Raverus.FiskalizacijaDEV.Schema.ZaglavljeType() { DatumVrijeme = Razno.DohvatiFormatiranoTrenutnoDatumVrijeme(), IdPoruke = Guid.NewGuid().ToString() }; //X509Certificate2 certifikat = Raverus.FiskalizacijaDEV.PopratneFunkcije.Potpisivanje.DohvatiCertifikat(DTfis.Rows[0]["naziv_certifikata"].ToString()); X509Certificate2 certifikat; if (File.Exists(Class.Postavke.putanja_certifikat)) { certifikat = Raverus.FiskalizacijaDEV.PopratneFunkcije.Potpisivanje.DohvatiCertifikat(Class.Postavke.putanja_certifikat, Class.Postavke.certifikat_zaporka); } else { certifikat = Raverus.FiskalizacijaDEV.PopratneFunkcije.Potpisivanje.DohvatiCertifikat(DTfis.Rows[0]["naziv_certifikata"].ToString()); } string datum_vrijeme = DateTime.Now.ToString("dd.MM.yyyyThh:mm:ss"); for (int i = 0; i < DT.Rows.Count; i++) { XmlDocument dokument = new XmlDocument(); dokument.LoadXml(DT.Rows[i]["xml"].ToString()); XmlNamespaceManager ns = new XmlNamespaceManager(dokument.NameTable); ns.AddNamespace("tns", "http://www.apis-it.hr/fin/2012/types/f73"); string d = dokument.SelectSingleNode("/tns:RacunZahtjev/tns:Racun/tns:NakDost", ns).ChildNodes[0].Value = "true"; Raverus.FiskalizacijaDEV.CentralniInformacijskiSustav cis = new CentralniInformacijskiSustav(); string testYes = File.Exists("FiskalTest") ? "1" : "0"; if (Class.Postavke.TEST_FISKALIZACIJA) { cis.CisUrl = "https://cistest.apis-it.hr:8449/FiskalizacijaServiceTest"; } else { cis.CisUrl = "https://cis.porezna-uprava.hr:8449/FiskalizacijaService"; } Raverus.FiskalizacijaDEV.PopratneFunkcije.Potpisivanje.PotpisiXmlDokument(dokument, certifikat); Raverus.FiskalizacijaDEV.PopratneFunkcije.XmlDokumenti.DodajSoapEnvelope(ref dokument); try { string vrsta = DT.Rows[i]["vrsta"].ToString().ToLower(); string godina = Convert.ToDateTime(DT.Rows[i]["date"].ToString()).Year.ToString(); string id = DT.Rows[i]["id"].ToString(); string broj = DT.Rows[i]["broj_racuna"].ToString(); string id_ducan = DT.Rows[i]["id_ducan"].ToString(); string id_kasa = DT.Rows[i]["id_kasa"].ToString(); XmlDocument odgovor = cis.PosaljiSoapPoruku(dokument); string jir = Raverus.FiskalizacijaDEV.PopratneFunkcije.XmlDokumenti.DohvatiJir(odgovor); provjera_sql(classSQL.delete("DELETE FROM neuspjela_fiskalizacija WHERE id='" + id + "'")); switch (vrsta) { case "račun": provjera_sql(classSQL.update("UPDATE racuni SET jir='" + jir + "' WHERE broj_racuna='" + broj + "' AND id_ducan=" + id_ducan + " AND id_kasa=" + id_kasa)); break; case "avans": provjera_sql(classSQL.update("UPDATE avansi SET jir='" + jir + "' WHERE broj_avansa='" + broj + "'")); //" AND godina_avansa ='" + godina + "'")); break; case "faktura": provjera_sql(classSQL.update("UPDATE fakture SET jir='" + jir + "' WHERE broj_fakture='" + broj + "'")); break; case "ifb": provjera_sql(classSQL.update("UPDATE ifb SET jir='" + jir + "' WHERE broj='" + broj + "'")); break; default: provjera_sql(classSQL.update("UPDATE racuni SET jir='" + jir + "' WHERE broj_racuna='" + broj + "' AND id_ducan=" + id_ducan + " AND id_kasa=" + id_kasa)); break; } } catch (Exception ex) { string greska; if (cis.OdgovorGreska != null) { greska = cis.OdgovorGreska.InnerXml.Replace("\'", ""); int x, y; x = greska.IndexOf("<tns:PorukaGreske>") + 18; y = greska.IndexOf("</tns:PorukaGreske>"); string porukaUseru = new string(greska.ToArray(), x, y - x); MessageBox.Show("Greška kod fiskalizacije\r\n\r\n" + porukaUseru.Replace("\"", "") + "\r\n\r\nPokušajte naknadno fiskalizirati", "Greška od strane FINE"); } else { greska = ex.ToString().Replace("\'", ""); MessageBox.Show("Greška kod fiskalizacije\r\n\r\n\r\nNije ostvarena veza sa poreznom upravom\r\n\r\nPokušajte naknadno fiskalizirati"); } } } Set(); }
public static string[] Fiskalizacija(string oib, string oib_operatera, DataTable DTartikli, DateTime datum_racuna, bool sustavPDV, int broj_rac, string prodajnoMJ, int broj_kase, DataTable DTpdv, string[] porez_na_potrosnju, DataTable DTostali_porezi, string iznososlobpdv, string iznos_marza, DataTable DTnaknade, decimal ukupno, string nacin_placanja, bool naknadno_poslano, double osnovica) { sifra_prodajnog_mjesta = prodajnoMJ; DataTable DTdd = classSQL.select("SELECT ime_ducana FROM ducan WHERE id_ducan='" + prodajnoMJ + "'", "ducan").Tables[0]; if (DTdd.Rows.Count > 0) { prodajnoMJ = DTdd.Rows[0][0].ToString(); } string ZkiGotov = ""; string[] za_vratiti = new string[3]; try { Raverus.FiskalizacijaDEV.Schema.ZaglavljeType zaglavlje = new Raverus.FiskalizacijaDEV.Schema.ZaglavljeType() { DatumVrijeme = Razno.DohvatiFormatiranoTrenutnoDatumVrijeme(), IdPoruke = Guid.NewGuid().ToString() }; osnovica_sve = osnovica; X509Certificate2 certifikat; if (File.Exists(DTpostavke.Rows[0]["putanja_certifikat"].ToString())) { certifikat = Raverus.FiskalizacijaDEV.PopratneFunkcije.Potpisivanje.DohvatiCertifikat(DTpostavke.Rows[0]["putanja_certifikat"].ToString(), DTpostavke.Rows[0]["certifikat_zaporka"].ToString()); } else { certifikat = Raverus.FiskalizacijaDEV.PopratneFunkcije.Potpisivanje.DohvatiCertifikat(DTfis.Rows[0]["naziv_certifikata"].ToString()); } if (certifikat == null) { MessageBox.Show("Nije pravilno instalirani certifikat.", "Greška"); return(za_vratiti); } string datum_vrijeme = DateTime.Now.ToString("dd.MM.yyyyTHH:mm:ss"); ZkiGotov = ZKI(certifikat, oib, datum_vrijeme, broj_rac.ToString(), prodajnoMJ, broj_kase.ToString(), ukupno.ToString("#0.00").Replace(",", ".")); xml = @"<?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>" + zaglavlje.IdPoruke + "</tns:IdPoruke>" + @"<tns:DatumVrijeme>" + datum_vrijeme + "</tns:DatumVrijeme>" + @"</tns:Zaglavlje>" + @"<tns:Racun>" + @"<tns:Oib>" + oib + "</tns:Oib>" + @"<tns:USustPdv>" + sustavPDV.ToString().ToLower() + "</tns:USustPdv>" + @"<tns:DatVrijeme>" + datum_racuna.ToString("dd.MM.yyyyTHH:mm:ss") + "</tns:DatVrijeme>" + @"<tns:OznSlijed>" + DTfis.Rows[0]["oznaka_slijednosti"].ToString() + "</tns:OznSlijed>" + @"<tns:BrRac>" + @"<tns:BrOznRac>" + broj_rac + "</tns:BrOznRac>" + @"<tns:OznPosPr>" + prodajnoMJ + "</tns:OznPosPr>" + @"<tns:OznNapUr>" + broj_kase + "</tns:OznNapUr>" + @"</tns:BrRac>" + PDVreturn(DTpdv, sustavPDV.ToString().ToLower()) + PorezNaPotrosnju(porez_na_potrosnju) + OstaliPorezi(DTostali_porezi) + IznosOslobPdv(iznososlobpdv) + IznosMarza(iznos_marza) + Naknade(DTnaknade) + @"<tns:IznosUkupno>" + ukupno.ToString("#0.00").Replace(",", ".") + "</tns:IznosUkupno>" + @"<tns:NacinPlac>" + nacin_placanja + "</tns:NacinPlac>" + @"<tns:OibOper>" + oib_operatera + "</tns:OibOper>" + @"<tns:ZastKod>" + ZkiGotov + "</tns:ZastKod>" + @"<tns:NakDost>" + naknadno_poslano.ToString().ToLower() + "</tns:NakDost>" + @"</tns:Racun>" + @"</tns:RacunZahtjev>"; XmlDocument dokument = new XmlDocument(); dokument.LoadXml(xml); try { string path = System.Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments); if (!Directory.Exists(path + "/FiskalniXML")) { Directory.CreateDirectory(path + "/FiskalniXML"); } dokument.Save(path + "/FiskalniXML/" + Util.Korisno.GodinaKojaSeKoristiUbazi + "-" + broj_rac + "-" + prodajnoMJ + "-" + broj_kase + ".xml"); } catch { } Raverus.FiskalizacijaDEV.CentralniInformacijskiSustav cis = new CentralniInformacijskiSustav(); if (Class.Postavke.TEST_FISKALIZACIJA) { cis.CisUrl = "https://cistest.apis-it.hr:8449/FiskalizacijaServiceTest"; } else { cis.CisUrl = "https://cis.porezna-uprava.hr:8449/FiskalizacijaService"; } Raverus.FiskalizacijaDEV.PopratneFunkcije.Potpisivanje.PotpisiXmlDokument(dokument, certifikat); Raverus.FiskalizacijaDEV.PopratneFunkcije.XmlDokumenti.DodajSoapEnvelope(ref dokument); try { cis.TimeOut = 8000; XmlDocument odgovor = null; try { odgovor = cis.PosaljiSoapPoruku(dokument); } catch { } if (odgovor != null) { string jir = Raverus.FiskalizacijaDEV.PopratneFunkcije.XmlDokumenti.DohvatiJir(odgovor); za_vratiti[0] = jir; za_vratiti[1] = ZkiGotov; za_vratiti[2] = zaglavlje.IdPoruke; return(za_vratiti); } else { za_vratiti[0] = ""; za_vratiti[1] = ZkiGotov; za_vratiti[2] = zaglavlje.IdPoruke; string gr = cis.OdgovorGreska == null ? "" : cis.OdgovorGreska.ToString(); InsertNeuspjelaFis(broj_rac.ToString(), gr, sifra_prodajnog_mjesta, broj_kase.ToString(), oib_operatera, ukupno.ToString("#0.00").Replace(",", ".")); return(za_vratiti); } } catch (Exception ex) { za_vratiti[0] = ""; za_vratiti[1] = ZkiGotov; za_vratiti[2] = zaglavlje.IdPoruke; string greska; if (cis.OdgovorGreska != null) { greska = cis.OdgovorGreska.InnerXml.Replace("\'", ""); InsertNeuspjelaFis(broj_rac.ToString(), greska.Replace("\"", ""), sifra_prodajnog_mjesta, broj_kase.ToString(), oib_operatera, ukupno.ToString("#0.00").Replace(",", ".")); MessageBox.Show("Greška kod fiskalizacije\r\n\r\n\r\n" + greska.Replace("\"", "") + "\r\n\r\n\r\n\r\n\r\n", "Greška od strane FINE"); } else { greska = ex.ToString().Replace("\'", ""); InsertNeuspjelaFis(broj_rac.ToString(), greska, sifra_prodajnog_mjesta, broj_kase.ToString(), oib_operatera, ukupno.ToString("#0.00").Replace(",", ".")); MessageBox.Show("Greška kod fiskalizacije\r\n\r\n\r\n" + greska.Replace("\"", "")); } za_vratiti[1] = ZkiGotov; return(za_vratiti); } } catch { za_vratiti[0] = ""; za_vratiti[1] = ZkiGotov; za_vratiti[2] = ""; return(za_vratiti); } }
private void PosaljiPodatke() { if (txtOIB.Text == "") { MessageBox.Show("Krivo upisani oib."); return; } if (txtOznakaPP.Text == "") { MessageBox.Show("Krivo upisana oznaka PP."); return; } if (txtUlica.Text == "") { MessageBox.Show("Krivo upisana ulica."); return; } if (txtKucniBroj.Text == "") { MessageBox.Show("Krivo upisani kučni broj."); return; } if (txtBrojPoste.Text == "") { MessageBox.Show("Krivo upisani broj pošte."); return; } if (txtNaselje.Text == "") { MessageBox.Show("Krivo upisani oib."); return; } if (txtOpcina.Text == "") { MessageBox.Show("Krivo upisana opčina."); return; } if (txtRadnoVrijeme.Text == "") { MessageBox.Show("Krivo upisano radno vrijeme."); return; } if (txtOznakaPP.Text.Length > 19) { MessageBox.Show("Previše znamanka imate u poslovnom prostoru"); } ZaglavljeType zaglavlje = new ZaglavljeType() { DatumVrijeme = Razno.DohvatiFormatiranoTrenutnoDatumVrijeme(), IdPoruke = Guid.NewGuid().ToString() }; X509Certificate2 certifikat = Potpisivanje.DohvatiCertifikat(DTf.Rows[0]["naziv_certifikata"].ToString()); try { CentralniInformacijskiSustav cis = new CentralniInformacijskiSustav(); if (DTf.Rows[0]["test_Yes"].ToString() == "1") { cis.CisUrl = "https://cistest.apis-it.hr:8449/FiskalizacijaServiceTest"; } else { cis.CisUrl = "https://cis.porezna-uprava.hr:8449/FiskalizacijaService"; } cis.TimeOut = 10000; PoslovniProstorType poslovniProstor = new PoslovniProstorType(); poslovniProstor.Oib = txtOIB.Text; poslovniProstor.OznPoslProstora = txtOznakaPP.Text; AdresaType adresa = new AdresaType(); adresa.Ulica = txtUlica.Text; adresa.KucniBroj = txtKucniBroj.Text; if (txtKucniDodatak.Text != "") { adresa.KucniBrojDodatak = txtKucniDodatak.Text; } adresa.BrojPoste = txtBrojPoste.Text; adresa.Naselje = txtNaselje.Text; adresa.Opcina = txtOpcina.Text; AdresniPodatakType adresniPodatak = new AdresniPodatakType(); adresniPodatak.Item = adresa; poslovniProstor.AdresniPodatak = adresniPodatak; if (chbZatvaranje.Checked) { poslovniProstor.OznakaZatvaranjaSpecified = true; poslovniProstor.OznakaZatvaranja = OznakaZatvaranjaType.Z; } poslovniProstor.RadnoVrijeme = txtRadnoVrijeme.Text; poslovniProstor.DatumPocetkaPrimjene = Razno.FormatirajDatum(dtpDate.Value); poslovniProstor.SpecNamj = "47165970760"; XmlDocument doc = cis.PosaljiPoslovniProstor(poslovniProstor, certifikat); if (cis.OdgovorGreska != null) { MessageBox.Show("Greška kod slanja zahtjeva"); } else { string zatvaranje = "0"; if (chbZatvaranje.Checked) { zatvaranje = "1"; } string sql = string.Format(@"UPDATE podaci_fiskalizacija SET oib = '{0}', ulica = '{1}', broj = '{2}', broj_dodatak = '{3}', posta = '{4}', naselje = '{5}', opcina = '{6}', datum = '{7}', r_vrijeme = '{8}', zatvaranje = '{9}';", txtOIB.Text, txtUlica.Text, txtKucniBroj.Text, txtKucniDodatak.Text, txtBrojPoste.Text, txtNaselje.Text, txtOpcina.Text, dtpDate.Value.ToString("yyyy-MM-dd H:mm:ss"), txtRadnoVrijeme.Text, zatvaranje); classDBlite.LiteSqlCommand(sql); MessageBox.Show("Zahtjev uspješno poslan."); } } catch (Exception ex) { string sql = string.Format(@"UPDATE podaci_fiskalizacija SET OIB = '{0}', oznakaPP = '{1}', ulica = '{2}', broj = '{3}', broj_dodatak = '{4}', posta = '{5}', naselje = '{6}', opcina = '{7}', datum = '{8}', r_vrijeme = '{9}', zatvaranje = '0';", txtOIB.Text, txtOznakaPP.Text, txtUlica.Text, txtKucniBroj.Text, txtKucniDodatak.Text, txtBrojPoste.Text, txtNaselje.Text, txtOpcina.Text, dtpDate.Value.ToString("yyyy-MM-dd H:mm:ss"), txtRadnoVrijeme.Text); classDBlite.LiteSqlCommand(sql); MessageBox.Show("Greška kod slanja zahtjeva.\r\n\r\n" + ex.ToString()); } }
public static string[] Fiskalizacija(string oib, string oib_operatera, DataTable DTartikli, DateTime datum_racuna, bool sustavPDV, int broj_rac, string prodajnoMJ, int broj_kase, DataTable DTpdv, string[] porez_na_potrosnju, DataTable DTostali_porezi, string iznososlobpdv, string iznos_marza, DataTable DTnaknade, decimal ukupno, string nacin_placanja, bool naknadno_poslano) { string[] za_vratiti = new string[3]; Raverus.FiskalizacijaDEV.Schema.ZaglavljeType zaglavlje = new Raverus.FiskalizacijaDEV.Schema.ZaglavljeType() { DatumVrijeme = Razno.DohvatiFormatiranoTrenutnoDatumVrijeme(), IdPoruke = Guid.NewGuid().ToString() }; X509Certificate2 certifikat = Raverus.FiskalizacijaDEV.PopratneFunkcije.Potpisivanje.DohvatiCertifikat(DTfis.Rows[0]["naziv_certifikata"].ToString()); string datum_vrijeme = DateTime.Now.ToString("dd.MM.yyyyThh:mm:ss"); string ZkiGotov = ZKI(certifikat, oib, datum_vrijeme, broj_rac.ToString(), prodajnoMJ, broj_kase.ToString(), ukupno.ToString("#0.00").Replace(",", ".")); string xml = @"<?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>" + zaglavlje.IdPoruke + "</tns:IdPoruke>" + @"<tns:DatumVrijeme>" + datum_vrijeme + "</tns:DatumVrijeme>" + @"</tns:Zaglavlje>" + @"<tns:Racun>" + @"<tns:Oib>" + oib + "</tns:Oib>" + @"<tns:USustPdv>" + sustavPDV.ToString().ToLower() + "</tns:USustPdv>" + @"<tns:DatVrijeme>" + datum_racuna.ToString("dd.MM.yyyyThh:mm:ss") + "</tns:DatVrijeme>" + @"<tns:OznSlijed>" + DTfis.Rows[0]["oznaka_slijednosti"].ToString() + "</tns:OznSlijed>" + @"<tns:BrRac>" + @"<tns:BrOznRac>" + broj_rac + "</tns:BrOznRac>" + @"<tns:OznPosPr>" + prodajnoMJ + "</tns:OznPosPr>" + @"<tns:OznNapUr>" + broj_kase + "</tns:OznNapUr>" + @"</tns:BrRac>" + PDVreturn(DTpdv) + PorezNaPotrosnju(porez_na_potrosnju) + OstaliPorezi(DTostali_porezi) + IznosOslobPdv(iznososlobpdv) + IznosMarza(iznos_marza) + Naknade(DTnaknade) + @"<tns:IznosUkupno>" + ukupno.ToString("#0.00").Replace(",", ".") + "</tns:IznosUkupno>" + @"<tns:NacinPlac>" + nacin_placanja + "</tns:NacinPlac>" + @"<tns:OibOper>" + oib_operatera + "</tns:OibOper>" + @"<tns:ZastKod>" + ZkiGotov + "</tns:ZastKod>" + @"<tns:NakDost>" + naknadno_poslano.ToString().ToLower() + "</tns:NakDost>" + @"</tns:Racun>" + @"</tns:RacunZahtjev>"; XmlDocument dokument = new XmlDocument(); dokument.LoadXml(xml); Raverus.FiskalizacijaDEV.CentralniInformacijskiSustav cis = new CentralniInformacijskiSustav(); Raverus.FiskalizacijaDEV.PopratneFunkcije.Potpisivanje.PotpisiXmlDokument(dokument, certifikat); Raverus.FiskalizacijaDEV.PopratneFunkcije.XmlDokumenti.DodajSoapEnvelope(ref dokument); //XmlNode node = dokument.SelectSingleNode("Root/Node/Element"); //node.Attributes[0].Value = "true"; //string s = node.Attributes[0].ToString(); dokument.Save("d:/fiskalizacija" + broj_rac + ".xml"); try { XmlDocument odgovor = cis.PosaljiSoapPoruku(dokument); if (odgovor != null) { string jir = Raverus.FiskalizacijaDEV.PopratneFunkcije.XmlDokumenti.DohvatiJir(odgovor); za_vratiti[0] = jir; za_vratiti[1] = ZkiGotov; za_vratiti[1] = zaglavlje.IdPoruke; return(za_vratiti); } else { za_vratiti[1] = ZkiGotov; return(za_vratiti); } } catch (Exception ex) { if (cis.OdgovorGreska != null) { XmlNamespaceManager xmlnsManager = new XmlNamespaceManager(dokument.NameTable); xmlnsManager.AddNamespace("tns", "http://www.apis-it.hr/fin/2012/types/f73"); xmlnsManager.AddNamespace("s", "http://schemas.xmlsoap.org/soap/envelope/"); string Severity = dokument.SelectSingleNode("s:Envelope/s:Body/tns:RacunZahtjev/tns:Racun/tns:NakDost", xmlnsManager).ChildNodes[0].Value = "true"; dokument.Save("Fiskalizacija/_" + broj_rac.ToString() + ".xml"); MessageBox.Show(cis.OdgovorGreska.InnerXml); za_vratiti[1] = ZkiGotov; return(za_vratiti); } else { MessageBox.Show(string.Format("Greska: {0}", ex.Message)); } za_vratiti[1] = ZkiGotov; return(za_vratiti); } }