private void povrat_robe() { string sql1 = SqlPodaciTvrtke.VratiSql("", "", ""); classSQL.CeAdatpter(sql1).Fill(dSRpodaciTvrtke, "DTRpodaciTvrtke"); string sql_liste = "SELECT " + " povrat_robe_stavke.sifra," + " roba.naziv," + " roba.jm AS naziv2," + " povrat_robe_stavke.kolicina AS kolicina," + " povrat_robe_stavke.rabat AS cijena1 ," + " povrat_robe_stavke.nbc AS cijena2," + " CAST(povrat_robe_stavke.nbc AS money) * CAST(REPLACE(odjava_komisione_stavke.kolicina_prodano,',','.') AS cijena3" + " FROM povrat_robe_stavke" + " LEFT JOIN roba ON roba.sifra=povrat_robe_stavke.sifra WHERE broj='" + broj_dokumenta + "'"; if (classSQL.remoteConnectionString == "") { classSQL.CeAdatpter(sql_liste).Fill(dSRliste, "DTliste"); } else { classSQL.NpgAdatpter(sql_liste).Fill(dSRliste, "DTliste"); } DataTable DT = classSQL.select("SELECT datum FROM povrat_robe WHERE broj='" + broj_dokumenta + "'", "povrat_robe").Tables[0]; string year = DT.Rows.Count > 0 ? Convert.ToDateTime(DT.Rows[0]["datum"].ToString()).Year.ToString() : ""; string sql_liste_string = "SELECT " + " 'Šifra' AS tbl1," + " 'Naziv' AS tbl2," + " 'JMJ' AS tbl3," + " 'Količina' AS tbl4," + " 'Rabat%' AS tbl5," + " 'Cijena' AS tbl6," + " 'Iznos' AS tbl7," + " povrat_robe.datum AS datum1," + " povrat_robe.napomena AS komentar," + " partners.ime_tvrtke AS string2," + " partners.adresa AS string3 ," + " grad.posta + ' ' + grad.grad AS string4 ," + " partners.oib AS string5," + " partners.id_partner AS string6," + " skladiste.skladiste AS skladiste," + " zaposlenici.ime + ' ' + zaposlenici.prezime AS string1," + " CAST ('POVRATNICA DOBAVLJAČU: ' AS nvarchar) + CAST (povrat_robe.broj AS nvarchar) +'/'+ CAST (" + year + " AS nvarchar) AS naslov" + " FROM povrat_robe " + " LEFT JOIN skladiste ON skladiste.id_skladiste=povrat_robe.id_skladiste " + " LEFT JOIN zaposlenici ON zaposlenici.id_zaposlenik=povrat_robe.id_izradio " + " LEFT JOIN partners ON partners.id_partner=povrat_robe.id_partner " + " LEFT JOIN grad ON grad.id_grad=partners.id_grad " + " WHERE broj ='" + broj_dokumenta + "'"; if (classSQL.remoteConnectionString == "") { classSQL.CeAdatpter(sql_liste_string).Fill(dSRlisteTekst, "DTlisteTekst"); } else { classSQL.NpgAdatpter(sql_liste_string.Replace("nvarchar", "varchar")).Fill(dSRlisteTekst, "DTlisteTekst"); } }
private void SetPovratDobavljacu() { string filter = ""; if (pregled == true) { filter = "kalkulacija.id_kalkulacija='" + broj_kalkulacije + "';"; } else { filter = "povrat_robe.broj='" + broj_kalkulacije + "' AND povrat_robe.id_skladiste='" + skladiste + "';"; } string SustavPdv = @"select * from partners where id_partner = (select id_partner from povrat_robe where broj = '" + broj_kalkulacije + "')"; DataSet dsPartner = classSQL.select(SustavPdv, "partners"); bool partnerExist = false, uSustavuPdv = false; if (dsPartner != null && dsPartner.Tables.Count > 0 && dsPartner.Tables[0] != null && dsPartner.Tables[0].Rows.Count > 0) { partnerExist = true; uSustavuPdv = Convert.ToBoolean(dsPartner.Tables[0].Rows[0]["uSustavPdv"].ToString()); } string sqlTecaj = @"SELECT povrat_robe.broj, povrat_robe.godina, skladiste.skladiste, povrat_robe.tecaj, valute.ime_valute AS valuta FROM povrat_robe LEFT JOIN skladiste ON povrat_robe.id_skladiste=skladiste.id_skladiste LEFT JOIN valute ON povrat_robe.id_valuta=valute.id_valuta LEFT JOIN partners ON povrat_robe.id_partner=partners.id_partner WHERE " + filter + " "; DataTable dtTecaj = classSQL.select(sqlTecaj, "kalkulacija").Tables[0]; double tecaj = 1; if (dtTecaj.Rows.Count > 0) { tecaj = Convert.ToDouble(dtTecaj.Rows[0]["tecaj"].ToString()); } string naziv_fakture = " podaci_tvrtka.naziv_fakture,"; string sql1 = SqlPodaciTvrtke.VratiSql("", naziv_fakture, ""); if (classSQL.remoteConnectionString == "") { classSQL.CeAdatpter(sql1).Fill(dSRpodaciTvrtke, "DTRpodaciTvrtke"); } else { //classSQL.NpgAdatpter(sql1).Fill(dSRpodaciTvrtke, "DTRpodaciTvrtke"); classSQL.CeAdatpter(sql1).Fill(dSRpodaciTvrtke, "DTRpodaciTvrtke"); } DataTable dtPdv = new DataTable(); dtPdv.Columns.Add("stopa"); dtPdv.Columns.Add("iznos"); dtPdv.Columns.Add("osnovica"); string filter1 = ""; if (pregled == true) { filter1 = "povrat_robe_stavke.id_kalkulacija='" + broj_kalkulacije + "'"; } else { filter1 = "povrat_robe_stavke.broj='" + broj_kalkulacije + "' AND povrat_robe_stavke.id_skladiste='" + skladiste + "'"; } string sql_stavke = "SELECT " + " povrat_robe_stavke.sifra," + " povrat_robe_stavke.id_stavka AS id," + " roba.naziv," + " roba.jm AS jmj," + " povrat_robe_stavke.kolicina," + " povrat_robe_stavke.rabat," + " povrat_robe_stavke.nbc," + " 0 as prijevoz," + " 0 as carina," + " 0 as posebni_porez," + " round(((povrat_robe_stavke.vpc / povrat_robe_stavke.nbc::numeric) - 1) * 100, 6) as marza," + " povrat_robe_stavke.vpc," + " povrat_robe_stavke.pdv AS pdv" + " FROM povrat_robe_stavke" + " LEFT JOIN roba ON povrat_robe_stavke.sifra=roba.sifra" + " WHERE " + filter1 + " ORDER BY CAST(id_stavka AS INT) ASC"; if (classSQL.remoteConnectionString == "") { classSQL.CeAdatpter(sql_stavke).Fill(dSkalkulacija_stavke, "DTkalkDtavke"); } else { classSQL.NpgAdatpter(sql_stavke).Fill(dSkalkulacija_stavke, "DTkalkDtavke"); } DataTable DT = dSkalkulacija_stavke.Tables[0]; double fakIznos = 0; double fak_iznos_stavka = 0; double fakNetto = 0; double osnovica = 0; double fakPdv = 0; double fak_ukupno_stavka = 0; double fakUk = 0; double fak_cijena = 0; double kolicina = 0; double rabat = 0; double rabatStavka = 0; double rabatUk = 0; double mpc = 0; double mpc_uk = 0; double porez = 0; double vpc = 0; double nab_cijena = 0; double posebni_porez = 0; double prijevoz = 0; double carina = 0; double net_cijena = 0; double marza = 0; double marzaIznos = 0; double marzaUk = 0; double nabavna_zadnja = 0; double marza_uk_ = 0; double fak_cijena_S_pdv = 0; double fak_cijena_S_pdv_ukp = 0; for (int i = 0; i < DT.Rows.Count; i++) { kolicina = Math.Round(Convert.ToDouble(DT.Rows[i]["kolicina"].ToString()), 3); fak_cijena = Math.Round(Convert.ToDouble(DT.Rows[i]["fak_cijena"].ToString()), 3); rabat = Math.Round(Convert.ToDouble(DT.Rows[i]["rabat"].ToString()), 3); porez = Math.Round(Convert.ToDouble(DT.Rows[i]["pdv"].ToString()), 3); vpc = Math.Round(Convert.ToDouble(DT.Rows[i]["vpc"].ToString()), 3); posebni_porez = Math.Round(Convert.ToDouble(DT.Rows[i]["posebni_porez"].ToString()), 3); prijevoz = Math.Round(Convert.ToDouble(DT.Rows[i]["prijevoz"].ToString()), 4); carina = Math.Round(Convert.ToDouble(DT.Rows[i]["carina"].ToString()), 3); marza = Math.Round(Convert.ToDouble(DT.Rows[i]["marza"].ToString()), 8); if (marza.ToString() == "NaN" || marza.ToString() == "Infinity") { marza = 0; } double vpc_s_kol = vpc * kolicina; double fak_s_kol = fak_cijena * kolicina; nabavna_zadnja = Math.Round((fak_s_kol - (fak_s_kol * (rabat / 100)) + ((prijevoz + carina) * kolicina)), 3); marza_uk_ = Math.Round(nabavna_zadnja * (marza / 100), 3); marzaIznos = Math.Round(marza / 100 * nabavna_zadnja, 3); marzaUk += marzaIznos; rabatStavka = fak_cijena * kolicina * rabat / 100; rabatUk += rabatStavka; mpc = vpc * (1 + porez / 100.0); mpc_uk = mpc * kolicina; nab_cijena = kolicina * fak_cijena * (1 - rabat / 100) - posebni_porez + ((prijevoz + carina) * kolicina); //if (Util.Korisno.oibTvrtke == "41109922301") { // nab_cijena = fak_cijena * (1 - rabat / 100) - posebni_porez + ((prijevoz + carina)); //} fak_cijena_S_pdv = nab_cijena * (1 + (porez / 100)); if (partnerExist && !uSustavuPdv) { fak_cijena_S_pdv = nab_cijena; } fak_cijena_S_pdv_ukp += fak_cijena_S_pdv; net_cijena = kolicina * fak_cijena * (1 - rabat / 100); fak_iznos_stavka = kolicina * fak_cijena; fakIznos += fak_iznos_stavka; fakNetto += fak_iznos_stavka * (1 - rabat / 100); fak_ukupno_stavka = vpc * (1 + porez / 100) * kolicina; fakUk += fak_ukupno_stavka; osnovica += fak_ukupno_stavka * 100 / (100 + porez); fakPdv += fak_ukupno_stavka * (1 - 100 / (100 + porez)); //fak_pdv += fak_ukupno_stavka / (1 - porez); //double stopa = ((mpc - vpc) / vpc); double pdvStavka_cisto = (nab_cijena) * (porez / 100); if (partnerExist && !uSustavuPdv) { pdvStavka_cisto = 0; } StopePDVa(Math.Round((decimal)porez, 4), Math.Round((decimal)pdvStavka_cisto, 4), Math.Round(((decimal)nab_cijena), 4)); DT.Rows[i].SetField("mpc_uk", Math.Round(mpc_uk, 3)); DT.Rows[i].SetField("mpc", Math.Round(mpc, 3)); DT.Rows[i].SetField("rabat", Math.Round(rabat, 3)); DT.Rows[i].SetField("rabat_uk", Math.Round(rabatStavka, 3)); DT.Rows[i].SetField("marza", Math.Round(marza, 3)); DT.Rows[i].SetField("marzaIznos", Math.Round(marza_uk_, 3)); DT.Rows[i].SetField("posebni_porez", posebni_porez); DT.Rows[i].SetField("prijevoz", Math.Round(prijevoz, 4)); DT.Rows[i].SetField("carina", Math.Round(carina, 3)); DT.Rows[i].SetField("kolicina", Math.Round(kolicina, 3)); DT.Rows[i].SetField("fak_cijena", Math.Round(fak_cijena, 3)); DT.Rows[i].SetField("fak_cijena_val", Math.Round(fak_cijena / tecaj, 3)); DT.Rows[i].SetField("net_cijena", Math.Round(net_cijena, 3)); DT.Rows[i].SetField("nab_cijena", Math.Round(nab_cijena, 3)); DT.Rows[i].SetField("fak_cijena_S_pdv", Math.Round(fak_cijena_S_pdv, 3)); //DT.Rows[i].SetField("nab_porez", Math.Round(nab_cijena, 3)); } fakIznos = Math.Round(fakIznos, 3); fakNetto = Math.Round(fakNetto, 3); fakPdv = Math.Round(fakPdv, 3); osnovica = Math.Round(osnovica, 3); fakUk = Math.Round(fakUk, 3); rabatUk = Math.Round(rabatUk, 3); marzaUk = Math.Round(marzaUk, 3); string filter2 = ""; if (pregled == true) { filter2 = "kalkulacija.id_kalkulacija='" + broj_kalkulacije + "';"; } else { filter2 = "kalkulacija.broj='" + broj_kalkulacije + "' AND kalkulacija.id_skladiste='" + skladiste + "';"; } string sql_kalk = @"SELECT kalkulacija.broj, kalkulacija.id_partner, kalkulacija.godina, 'Kalkulacija' AS naslov, skladiste.skladiste, kalkulacija.datum, partners.ime_tvrtke + ' ' + partners.id_partner AS dobavljac, kalkulacija.tecaj AS tecaj, kalkulacija.racun, kalkulacija.otpremnica, CAST(kalkulacija.otpremnica_datum AS date) AS otpremnica_datum, kalkulacija.tecaj, zaposlenici.ime + ' ' + zaposlenici.prezime AS kalkulirao, CAST(kalkulacija.racun_datum AS date) AS racun_datum, valute.ime_valute AS valuta, '" + fakIznos + @"' AS fak_iznos, '" + fakNetto + @"' AS netto_fak_iznos, '" + fakPdv + @"' AS pdv, '" + rabatUk + @"' AS rabatUk, '" + marzaUk + @"' AS marzaUk, '" + osnovica + @"' AS osnovica, '" + fakUk + @"' AS ukupno, '" + Math.Round(fak_cijena_S_pdv_ukp, 2) + @"' as fak_cijena_S_pdv, case when partners.uSustavPdv = true then 'Dobavljač u sustavu PDV-a: DA' else 'Dobavljač u sustavu PDV-a: NE' end as sustavPdv FROM kalkulacija LEFT JOIN skladiste ON kalkulacija.id_skladiste=skladiste.id_skladiste LEFT JOIN zaposlenici ON kalkulacija.id_zaposlenik=zaposlenici.id_zaposlenik LEFT JOIN valute ON kalkulacija.id_valuta=valute.id_valuta LEFT JOIN partners ON kalkulacija.id_partner=partners.id_partner WHERE " + filter2; if (classSQL.remoteConnectionString == "") { classSQL.CeAdatpter(sql_kalk).Fill(dSkalkulacija, "DTKalkulacijA"); } else { classSQL.NpgAdatpter(sql_kalk).Fill(dSkalkulacija, "DTKalkulacijA"); } }
private void SkladisteFinancije() { string sql1 = SqlPodaciTvrtke.VratiSql("", "", ""); classSQL.CeAdatpter(sql1).Fill(dSRpodaciTvrtke, "DTRpodaciTvrtke"); if (skladiste != "") { skladiste = " AND roba_prodaja.id_skladiste='" + skladiste + "'"; } string sql_liste = "SELECT roba_prodaja.kolicina,roba_prodaja.vpc,roba_prodaja.porez,roba_prodaja.nc,roba_prodaja.id_skladiste,skladiste.skladiste " + " FROM roba_prodaja" + " LEFT JOIN skladiste ON roba_prodaja.id_skladiste = skladiste.id_skladiste" + " LEFT JOIN roba ON roba_prodaja.sifra=roba.sifra WHERE roba.oduzmi='DA' " + skladiste; DataTable DT = classSQL.select(sql_liste, "roba_prodaja").Tables[0]; DataRow RowSkl; foreach (DataRow row in DT.Rows) { DataRow[] dataROW = dSRliste.Tables["DTliste"].Select("kolicina = '" + row["id_skladiste"].ToString() + "'"); decimal vpc = Convert.ToDecimal(row["vpc"].ToString()); decimal pdv = Convert.ToDecimal(row["porez"].ToString()); decimal kol = Convert.ToDecimal(row["kolicina"].ToString().Replace(".", ",")); decimal nbc; decimal.TryParse(row["nc"].ToString().Replace(".", ","), out nbc); //if (kol > 90) //{ // MessageBox.Show(""); //} if (dataROW.Count() == 0) { RowSkl = dSRliste.Tables["DTliste"].NewRow(); RowSkl["kolicina"] = row["id_skladiste"].ToString(); RowSkl["naziv"] = row["skladiste"].ToString(); RowSkl["cijena1"] = (vpc * kol).ToString(); RowSkl["cijena3"] = ((vpc * pdv / 100) * kol).ToString(); RowSkl["cijena6"] = ((vpc * pdv / 100) + vpc) * kol; RowSkl["jmj"] = nbc * kol; dSRliste.Tables["DTliste"].Rows.Add(RowSkl); } else { dataROW[0]["cijena1"] = Math.Round(Convert.ToDecimal(dataROW[0]["cijena1"].ToString()) + (vpc * kol), 3); dataROW[0]["cijena6"] = Convert.ToDecimal(dataROW[0]["cijena6"].ToString()) + (((vpc * pdv / 100) + vpc) * kol); dataROW[0]["cijena3"] = Convert.ToDecimal(dataROW[0]["cijena3"].ToString()) + ((vpc * pdv / 100) * kol); dataROW[0]["jmj"] = Convert.ToDecimal(dataROW[0]["jmj"].ToString()) + (nbc * kol); } } //if (classSQL.remoteConnectionString == "") //{ // classSQL.CeAdatpter(sql_liste).Fill(dSRliste, "DTliste"); //} //else //{ // classSQL.NpgAdatpter(sql_liste).Fill(dSRliste, "DTliste"); //} string sql_liste_string = "SELECT " + " '' AS tbl1," + " 'Naziv skladišta' AS tbl2," + " 'NBC' AS tbl3," + " 'VPC' AS tbl4," + " 'PDV' AS tbl5," + " '' AS tbl6," + " 'MPC' AS tbl8," + " '' AS tbl7," + " 'Stanje na skladištu financijski' AS naslov"; if (classSQL.remoteConnectionString == "") { classSQL.CeAdatpter(sql_liste_string).Fill(dSRlisteTekst, "DTlisteTekst"); } else { classSQL.NpgAdatpter(sql_liste_string.Replace("nvarchar", "varchar")).Fill(dSRlisteTekst, "DTlisteTekst"); } }
private void FillRacun(string broj, string[] imeTablice) { PCPOS.classNumberToLetter broj_u_text = new PCPOS.classNumberToLetter(); //MessageBox.Show(broj_slovima.ToLower()); string sql2 = "SELECT " + " " + imeTablice[1] + ".kolicina," + " " + imeTablice[1] + ".vpc," + " " + imeTablice[1] + ".porez," + " " + imeTablice[1] + ".broj_racuna," + " " + imeTablice[1] + ".rabat," + " " + imeTablice[1] + ".sifra_robe AS sifra," + " roba.naziv as naziv," + " roba.jm as jm," + " " + imeTablice[1] + ".id_skladiste AS skladiste" + " FROM " + imeTablice[1] + "" + " LEFT JOIN roba ON roba.sifra=" + imeTablice[1] + ".sifra_robe " + " WHERE " + imeTablice[1] + ".broj_racuna='" + broj + "'"; if (imeTablice[1] == "racun_stavke") { sql2 += " AND racun_stavke.id_ducan=" + poslovnica + " AND racun_stavke.id_kasa=" + naplatni; } //DSRfakturaStavke DSfs = new DSRfakturaStavke(); if (classSQL.remoteConnectionString == "") { classSQL.CeAdatpter(sql2).Fill(dSRfakturaStavke, "DTfakturaStavke"); } else { classSQL.NpgAdatpter(sql2).Fill(dSRfakturaStavke, "DTfakturaStavke"); } double vpc = 0; double kol = 0; double porez; double rabat; double mpc; double mpcStavka; double rabatStavka = 0; double pdvStavka = 0; double osnovicaStavka = 0; double osnovicaUkupno = 0; double sveUkupno = 0; double pdvUkupno = 0; double rabatSve = 0; DataTable DT = dSRfakturaStavke.Tables[0]; for (int i = 0; i < DT.Rows.Count; i++) { vpc = Math.Round(Convert.ToDouble(DT.Rows[i]["vpc"].ToString()), 3); kol = Math.Round(Convert.ToDouble(DT.Rows[i]["kolicina"].ToString()), 3); porez = Math.Round(Convert.ToDouble(DT.Rows[i]["porez"].ToString()), 2); rabat = Math.Round(Convert.ToDouble(DT.Rows[i]["rabat"].ToString()), 2); mpc = Math.Round(vpc * (1 + porez / 100.0), 2); rabatStavka = Math.Round(mpc * kol * rabat / 100, 2); mpcStavka = Math.Round(mpc * kol - rabatStavka, 2); pdvStavka = Math.Round(mpcStavka * (1 - 100 / (100 + porez)), 2); osnovicaStavka = Math.Round(mpcStavka - pdvStavka, 2); DT.Rows[i].SetField("mpc", Math.Round(mpc, 2)); DT.Rows[i].SetField("vpc", Math.Round(vpc, 3)); DT.Rows[i].SetField("porez", Math.Round(porez, 2)); DT.Rows[i].SetField("rabat", Math.Round(rabat, 2)); DT.Rows[i].SetField("kolicina", Math.Round(kol, 3)); DT.Rows[i].SetField("mpcStavka", Math.Round(mpcStavka, 2)); DT.Rows[i].SetField("rabatStavka", Math.Round(rabatStavka, 2)); rabatSve += rabatStavka; osnovicaUkupno += osnovicaStavka; pdvUkupno += pdvStavka; sveUkupno += mpcStavka; } string broj_slovima = broj_u_text.PretvoriBrojUTekst(sveUkupno.ToString(), ',', "kn", "lp").ToString(); string year; if (imeTablice[0] == "ispis_racuni") { year = DateTime.Now.Year.ToString(); } else { year = classSQL.select("SELECT datum_racuna FROM racuni WHERE broj_racuna='" + broj_dokumenta + "'", "racuni").Tables[0].Rows[0][0].ToString(); DateTime date = Convert.ToDateTime(year); year = date.Year.ToString(); } string sql = "SELECT " + " " + imeTablice[0] + ".broj_racuna," + " " + imeTablice[0] + ".datum_racuna AS datum," + " " + imeTablice[0] + ".jir," + " " + imeTablice[0] + ".zki," + " " + imeTablice[0] + ".napomena," + " '" + sveUkupno + "' AS ukupno," + " '" + pdvUkupno + "' AS iznos_pdv," + " '" + osnovicaUkupno + "' AS osnovica," + " '" + rabatSve + "' AS rabat,"; if (imeTablice[0] == "racuni") { sql += "CAST (racuni.broj_racuna AS varchar) + '/' + ime_ducana + '/' + ime_blagajne AS Naslov,"; } else { sql += " CAST (" + imeTablice[0] + ".broj_racuna AS nvarchar) + CAST ('" + Util.Korisno.VratiDucanIBlagajnuZaIspis(1) + "' AS nvarchar) AS Naslov,"; } sql += " partners.ime_tvrtke AS kupac_tvrtka," + " partners.adresa AS kupac_adresa," + " ' Novčanice: ' + CAST(" + imeTablice[0] + ".ukupno_gotovina AS money) + ' Kartice: ' + CAST(" + imeTablice[0] + ".ukupno_kartice AS money) AS placanje," + " partners.id_grad AS id_kupac_grad," + " partners.id_partner AS sifra_kupac," + " partners.napomena AS napomena_tvrtka," + " ziro_racun.ziroracun AS zr," + " zaposlenici.ime + ' ' + zaposlenici.prezime AS izradio," + " ziro_racun.banka AS banka," + " '" + broj_slovima.ToLower() + "' AS broj_slovima," + " partners.oib AS kupac_oib" + " FROM " + imeTablice[0] + "" + " LEFT JOIN ziro_racun ON ziro_racun.id_ziroracun='1'" + " LEFT JOIN zacrnjeni_partner as partners ON partners.id_partner=" + imeTablice[0] + ".id_kupac"; if (imeTablice[0] == "racuni") { sql += " LEFT JOIN ducan ON racuni.id_ducan = ducan.id_ducan " + " LEFT JOIN blagajna ON racuni.id_kasa = blagajna.id_blagajna "; } sql += " LEFT JOIN zaposlenici ON zaposlenici.id_zaposlenik=" + imeTablice[0] + ".id_blagajnik WHERE " + imeTablice[0] + ".broj_racuna='" + broj_dokumenta + "'"; if (imeTablice[0] == "racuni") { sql += " AND racuni.id_ducan=" + poslovnica + " AND racuni.id_kasa=" + naplatni; } if (classSQL.remoteConnectionString == "") { classSQL.CeAdatpter(sql).Fill(dSFaktura, "DTRfaktura"); } else { classSQL.NpgAdatpter(sql.Replace("nvarchar", "varchar")).Fill(dSFaktura, "DTRfaktura"); } string id_kupac_grad = ""; string id_kupac = ""; if (dSFaktura.Tables[0].Rows.Count > 0) { id_kupac_grad = dSFaktura.Tables[0].Rows[0]["id_kupac_grad"].ToString(); id_kupac = dSFaktura.Tables[0].Rows[0]["sifra_kupac"].ToString(); } else { MessageBox.Show("Odabrani zahtjev ne postoji.", "Greška", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } string naziv_fakture = " podaci_tvrtka.naziv_fakture,"; string sql1 = SqlPodaciTvrtke.VratiSql(id_kupac_grad, naziv_fakture, id_kupac); if (classSQL.remoteConnectionString == "") { classSQL.CeAdatpter(sql1).Fill(dSRpodaciTvrtke, "DTRpodaciTvrtke"); } else { classSQL.CeAdatpter(sql1).Fill(dSRpodaciTvrtke, "DTRpodaciTvrtke"); //classSQL.NpgAdatpter(sql1).Fill(dSRpodaciTvrtke, "DTRpodaciTvrtke"); } string ziro = dSRpodaciTvrtke.Tables[0].Rows[0]["zr"].ToString(); dSFaktura.Tables[0].Rows[0].SetField("zr", ziro); string iban = dSRpodaciTvrtke.Tables[0].Rows[0]["iban"].ToString(); dSFaktura.Tables[0].Rows[0].SetField("iban", iban); string banka = ""; DataTable dt = classSQL.select("SELECT banka FROM ziro_racun WHERE ziroracun = '" + ziro + "'", "ziro_racun").Tables[0]; if (dt.Rows.Count > 0) { banka = dt.Rows[0]["banka"].ToString(); dSFaktura.Tables[0].Rows[0].SetField("banka", banka); } else { } }
private void KnjigaIO() { string sql1 = SqlPodaciTvrtke.VratiSql("", "", ""); classSQL.CeAdatpter(sql1).Fill(dSRpodaciTvrtke, "DTRpodaciTvrtke"); string sql_liste; if (sa_rabatom) { sql_liste = "SELECT (CURRENT_DATE zbroj i) AS datum1, " + "'Račun' AS naziv, " + "(SELECT SUM(racun_stavke.vpc*CAST(REPLACE(racun_stavke.kolicina,',','.') AS numeric)*(1-CAST(REPLACE(racun_stavke.rabat,',','.') AS numeric)/100)*(1 zbroj CAST(REPLACE(racun_stavke.porez,',','.') AS numeric)/100)) FROM racun_stavke LEFT JOIN racuni ON racuni.broj_racuna=racun_stavke.broj_racuna WHERE CAST(racuni.datum_racuna as date) = (CURRENT_DATE zbroj i)) AS cijena1, " + "(SELECT SUM(racun_stavke.vpc*CAST(REPLACE(racun_stavke.kolicina,',','.') AS numeric)*(1-CAST(REPLACE(racun_stavke.rabat,',','.') AS numeric)/100)) FROM racun_stavke LEFT JOIN racuni ON racuni.broj_racuna=racun_stavke.broj_racuna WHERE CAST(racuni.datum_racuna as date) = (CURRENT_DATE zbroj i)) AS cijena2, " + "(SELECT SUM(racun_stavke.vpc*CAST(REPLACE(racun_stavke.kolicina,',','.') AS numeric)*(CAST(REPLACE(racun_stavke.rabat,',','.') AS numeric)/100)*(1 zbroj CAST(REPLACE(racun_stavke.porez,',','.') AS numeric)/100)) FROM racun_stavke LEFT JOIN racuni ON racuni.broj_racuna=racun_stavke.broj_racuna WHERE CAST(racuni.datum_racuna as date) = (CURRENT_DATE zbroj i)) AS rabat1, " + "(SELECT SUM(racun_stavke.vpc*CAST(REPLACE(racun_stavke.kolicina,',','.') AS numeric)*(CAST(REPLACE(racun_stavke.rabat,',','.') AS numeric)/100)) FROM racun_stavke LEFT JOIN racuni ON racuni.broj_racuna=racun_stavke.broj_racuna WHERE CAST(racuni.datum_racuna as date) = (CURRENT_DATE zbroj i)) AS rabat2, " + "0.0 AS cijena3, " + "'Faktura' AS naziv2, " + "(SELECT SUM(faktura_stavke.vpc*CAST(REPLACE(faktura_stavke.kolicina,',','.') AS numeric)*(1-CAST(REPLACE(faktura_stavke.rabat,',','.') AS numeric)/100)*(1 zbroj CAST(REPLACE(faktura_stavke.porez,',','.') AS numeric)/100)) FROM faktura_stavke LEFT JOIN fakture ON fakture.broj_fakture=faktura_stavke.broj_fakture AND fakture.id_ducan=faktura_stavke.id_ducan AND fakture.id_kasa=faktura_stavke.id_kasa WHERE CAST(fakture.date as date) = (CURRENT_DATE zbroj i)) AS cijena5, " + "(SELECT SUM(faktura_stavke.vpc*CAST(REPLACE(faktura_stavke.kolicina,',','.') AS numeric)*(1-CAST(REPLACE(faktura_stavke.rabat,',','.') AS numeric)/100)) FROM faktura_stavke LEFT JOIN fakture ON fakture.broj_fakture=faktura_stavke.broj_fakture AND fakture.id_ducan=faktura_stavke.id_ducan AND fakture.id_kasa=faktura_stavke.id_kasa WHERE CAST(fakture.date as date) = (CURRENT_DATE zbroj i)) AS cijena6, " + "(SELECT SUM(faktura_stavke.vpc*CAST(REPLACE(faktura_stavke.kolicina,',','.') AS numeric)*(CAST(REPLACE(faktura_stavke.rabat,',','.') AS numeric)/100)*(1 zbroj CAST(REPLACE(faktura_stavke.porez,',','.') AS numeric)/100)) FROM faktura_stavke LEFT JOIN fakture ON fakture.broj_fakture=faktura_stavke.broj_fakture AND fakture.id_ducan=faktura_stavke.id_ducan AND fakture.id_kasa=faktura_stavke.id_kasa WHERE CAST(fakture.date as date) = (CURRENT_DATE zbroj i)) AS rabat3, " + "(SELECT SUM(faktura_stavke.vpc*CAST(REPLACE(faktura_stavke.kolicina,',','.') AS numeric)*(CAST(REPLACE(faktura_stavke.rabat,',','.') AS numeric)/100)) FROM faktura_stavke LEFT JOIN fakture ON fakture.broj_fakture=faktura_stavke.broj_fakture AND fakture.id_ducan=faktura_stavke.id_ducan AND fakture.id_kasa=faktura_stavke.id_kasa WHERE CAST(fakture.date as date) = (CURRENT_DATE zbroj i)) AS rabat4, " + "0.0 AS cijena7, " + " 'Kalkulacija' AS cijena4, " + "CAST((SELECT SUM(kalkulacija.ukupno_mpc) FROM kalkulacija WHERE CAST(kalkulacija.datum as date) = (CURRENT_DATE zbroj i)) AS NUMERIC)AS cijena8, " + "CAST((SELECT SUM(kalkulacija.ukupno_vpc) FROM kalkulacija WHERE CAST(kalkulacija.datum as date) = (CURRENT_DATE zbroj i)) AS NUMERIC)AS cijena9, " + "0.0 AS cijena10, " + "'Faktura IFB' AS naziv3, " + "(SELECT SUM(ifb_stavke.vpc*ifb_stavke.kolicina*(1-ifb_stavke.rabat/100)*(1 zbroj ifb_stavke.porez/100)) FROM ifb_stavke LEFT JOIN ifb ON ifb.broj=ifb_stavke.broj WHERE CAST(ifb.datum as date) = (CURRENT_DATE zbroj i)) AS cijena11, " + "(SELECT SUM(ifb_stavke.vpc*ifb_stavke.kolicina*(1-ifb_stavke.rabat/100)) FROM ifb_stavke LEFT JOIN ifb ON ifb.broj=ifb_stavke.broj WHERE CAST(ifb.datum as date) = (CURRENT_DATE zbroj i)) AS cijena12, " + "(SELECT SUM((ifb_stavke.vpc*ifb_stavke.kolicina*ifb_stavke.rabat/100)*(1 zbroj ifb_stavke.porez/100)) FROM ifb_stavke LEFT JOIN ifb ON ifb.broj=ifb_stavke.broj WHERE CAST(ifb.datum as date) = (CURRENT_DATE zbroj i)) AS cijena13, " + "(SELECT SUM((ifb_stavke.vpc*ifb_stavke.kolicina*ifb_stavke.rabat/100)) FROM ifb_stavke LEFT JOIN ifb ON ifb.broj=ifb_stavke.broj WHERE CAST(ifb.datum as date) = (CURRENT_DATE zbroj i)) AS cijena14, 0.0 AS cijena14, 0.0 AS cijena15 " + "FROM generate_series(date '" + datumOD.ToString("yyyy-MM-dd") + "'- CURRENT_DATE, " + "date '" + datumDO.ToString("yyyy-MM-dd") + "' - CURRENT_DATE ) i "; } else { sql_liste = "SELECT (CURRENT_DATE zbroj i) AS datum1, " + "'Račun' AS naziv, " + "(SELECT SUM(racun_stavke.vpc*CAST(REPLACE(racun_stavke.kolicina,',','.') AS numeric)*(1 zbroj CAST(REPLACE(racun_stavke.porez,',','.') AS numeric)/100)) FROM racun_stavke LEFT JOIN racuni ON racuni.broj_racuna=racun_stavke.broj_racuna WHERE CAST(racuni.datum_racuna as date) = (CURRENT_DATE zbroj i)) AS cijena1, " + "(SELECT SUM(racun_stavke.vpc*CAST(REPLACE(racun_stavke.kolicina,',','.') AS numeric)) FROM racun_stavke LEFT JOIN racuni ON racuni.broj_racuna=racun_stavke.broj_racuna WHERE CAST(racuni.datum_racuna as date) = (CURRENT_DATE zbroj i)) AS cijena2, " + "(SELECT SUM(racun_stavke.vpc*CAST(REPLACE(racun_stavke.kolicina,',','.') AS numeric)*(1 zbroj CAST(REPLACE(racun_stavke.porez,',','.') AS numeric)/100)) FROM racun_stavke LEFT JOIN racuni ON racuni.broj_racuna=racun_stavke.broj_racuna WHERE CAST(racuni.datum_racuna as date) = (CURRENT_DATE zbroj i)) AS rabat1, " + "(SELECT SUM(racun_stavke.vpc*CAST(REPLACE(racun_stavke.kolicina,',','.') AS numeric)) FROM racun_stavke LEFT JOIN racuni ON racuni.broj_racuna=racun_stavke.broj_racuna WHERE CAST(racuni.datum_racuna as date) = (CURRENT_DATE zbroj i)) AS rabat2, " + "0.0 AS cijena3, " + "'Faktura' AS naziv2, " + "(SELECT SUM(faktura_stavke.vpc*CAST(REPLACE(faktura_stavke.kolicina,',','.') AS numeric)*(1 zbroj CAST(REPLACE(faktura_stavke.porez,',','.') AS numeric)/100)) FROM faktura_stavke LEFT JOIN fakture ON fakture.broj_fakture=faktura_stavke.broj_fakture AND fakture.id_ducan=faktura_stavke.id_ducan AND fakture.id_kasa=faktura_stavke.id_kasa WHERE CAST(fakture.date as date) = (CURRENT_DATE zbroj i)) AS cijena5, " + "(SELECT SUM(faktura_stavke.vpc*CAST(REPLACE(faktura_stavke.kolicina,',','.') AS numeric)) FROM faktura_stavke LEFT JOIN fakture ON fakture.broj_fakture=faktura_stavke.broj_fakture AND fakture.id_ducan=faktura_stavke.id_ducan AND fakture.id_kasa=faktura_stavke.id_kasa WHERE CAST(fakture.date as date) = (CURRENT_DATE zbroj i)) AS cijena6, " + "(SELECT SUM(faktura_stavke.vpc*CAST(REPLACE(faktura_stavke.kolicina,',','.') AS numeric)*(1 zbroj CAST(REPLACE(faktura_stavke.porez,',','.') AS numeric)/100)) FROM faktura_stavke LEFT JOIN fakture ON fakture.broj_fakture=faktura_stavke.broj_fakture AND fakture.id_ducan=faktura_stavke.id_ducan AND fakture.id_kasa=faktura_stavke.id_kasa WHERE CAST(fakture.date as date) = (CURRENT_DATE zbroj i)) AS rabat3, " + "(SELECT SUM(faktura_stavke.vpc*CAST(REPLACE(faktura_stavke.kolicina,',','.') AS numeric)) FROM faktura_stavke LEFT JOIN fakture ON fakture.broj_fakture=faktura_stavke.broj_fakture AND fakture.id_ducan=faktura_stavke.id_ducan AND fakture.id_kasa=faktura_stavke.id_kasa WHERE CAST(fakture.date as date) = (CURRENT_DATE zbroj i)) AS rabat4, " + "0.0 AS cijena7, " + " 'Kalkulacija' AS cijena4, " + "CAST((SELECT SUM(kalkulacija.ukupno_mpc) FROM kalkulacija WHERE CAST(kalkulacija.datum as date) = (CURRENT_DATE zbroj i)) AS NUMERIC)AS cijena8, " + "CAST((SELECT SUM(kalkulacija.ukupno_vpc) FROM kalkulacija WHERE CAST(kalkulacija.datum as date) = (CURRENT_DATE zbroj i)) AS NUMERIC)AS cijena9, " + "0.0 AS cijena10, " + "'Faktura IFB' AS naziv3, " + "(SELECT SUM(ifb_stavke.vpc*ifb_stavke.kolicina*(1 zbroj ifb_stavke.porez/100)) FROM ifb_stavke LEFT JOIN ifb ON ifb.broj=ifb_stavke.broj WHERE CAST(ifb.datum as date) = (CURRENT_DATE zbroj i)) AS cijena11, " + "(SELECT SUM(ifb_stavke.vpc*ifb_stavke.kolicina) FROM ifb_stavke LEFT JOIN ifb ON ifb.broj=ifb_stavke.broj WHERE CAST(ifb.datum as date) = (CURRENT_DATE zbroj i)) AS cijena12, " + "(SELECT SUM((ifb_stavke.vpc*ifb_stavke.kolicina)*(1 zbroj ifb_stavke.porez/100)) FROM ifb_stavke LEFT JOIN ifb ON ifb.broj=ifb_stavke.broj WHERE CAST(ifb.datum as date) = (CURRENT_DATE zbroj i)) AS cijena13, " + "(SELECT SUM(ifb_stavke.vpc*ifb_stavke.kolicina) FROM ifb_stavke LEFT JOIN ifb ON ifb.broj=ifb_stavke.broj WHERE CAST(ifb.datum as date) = (CURRENT_DATE zbroj i)) AS cijena14, 0.0 AS cijena14, 0.0 AS cijena15 " + "FROM generate_series(date '" + datumOD.ToString("yyyy-MM-dd") + "'- CURRENT_DATE, " + "date '" + datumDO.ToString("yyyy-MM-dd") + "' - CURRENT_DATE ) i "; } if (classSQL.remoteConnectionString == "") { classSQL.CeAdatpter(sql_liste).Fill(dSRliste, "DTliste"); } else { classSQL.NpgAdatpter(sql_liste).Fill(dSRliste, "DTliste"); } string sql_liste_string = "SELECT " + " 'Datum' AS tbl1," + " 'Opis' AS tbl2," + " 'MPC razduženje' AS tbl3," + " 'VPC razduženje' AS tbl4," + " 'PDV razduženje' AS tbl5," + " 'MPC zaduženje' AS tbl6," + " 'VPC zaduženje' AS tbl7," + " 'PDV zaduženje' AS tbl8," + " 'Knjiga Ulaza i Izlaza' AS naslov"; if (classSQL.remoteConnectionString == "") { classSQL.CeAdatpter(sql_liste_string).Fill(dSRlisteTekst, "DTlisteTekst"); } else { classSQL.NpgAdatpter(sql_liste_string.Replace("nvarchar", "varchar")).Fill(dSRlisteTekst, "DTlisteTekst"); } for (int i = 0; i < dSRliste.Tables[0].Rows.Count; i++) { decimal c1, c2, c5, c6, c8, c9, c11, c12, c13, c14; decimal.TryParse(dSRliste.Tables[0].Rows[i]["cijena1"].ToString(), out c1); decimal.TryParse(dSRliste.Tables[0].Rows[i]["cijena2"].ToString(), out c2); decimal.TryParse(dSRliste.Tables[0].Rows[i]["cijena5"].ToString(), out c5); decimal.TryParse(dSRliste.Tables[0].Rows[i]["cijena6"].ToString(), out c6); decimal.TryParse(dSRliste.Tables[0].Rows[i]["cijena8"].ToString(), out c8); decimal.TryParse(dSRliste.Tables[0].Rows[i]["cijena9"].ToString(), out c9); decimal.TryParse(dSRliste.Tables[0].Rows[i]["cijena11"].ToString(), out c11); decimal.TryParse(dSRliste.Tables[0].Rows[i]["cijena12"].ToString(), out c12); decimal.TryParse(dSRliste.Tables[0].Rows[i]["cijena13"].ToString(), out c13); dSRliste.Tables[0].Rows[i]["cijena1"] = c1; dSRliste.Tables[0].Rows[i]["cijena2"] = c2; dSRliste.Tables[0].Rows[i]["cijena3"] = c1 - c2; dSRliste.Tables[0].Rows[i]["cijena5"] = c5; dSRliste.Tables[0].Rows[i]["cijena6"] = c6; dSRliste.Tables[0].Rows[i]["cijena7"] = c5 - c6; dSRliste.Tables[0].Rows[i]["cijena8"] = c8; dSRliste.Tables[0].Rows[i]["cijena9"] = c9; dSRliste.Tables[0].Rows[i]["cijena10"] = c8 - c9; dSRliste.Tables[0].Rows[i]["cijena11"] = c11; dSRliste.Tables[0].Rows[i]["cijena12"] = c12; dSRliste.Tables[0].Rows[i]["cijena13"] = c13; dSRliste.Tables[0].Rows[i]["cijena14"] = c11 - c12; } }
private void FillIFB(string broj) { PCPOS.classNumberToLetter broj_u_text = new PCPOS.classNumberToLetter(); string sql2 = "SELECT " + " ifb_stavke.kolicina," + " ifb_stavke.vpc," + " ifb_stavke.porez," + " ifb_stavke.broj," + " ifb_stavke.rabat," + " ifb_stavke.jmj AS jm," + " ifb_stavke.naziv as naziv" + " FROM ifb_stavke" + " WHERE ifb_stavke.broj='" + broj + "'"; if (classSQL.remoteConnectionString == "") { classSQL.CeAdatpter(sql2).Fill(dSRfakturaStavke, "DTfakturaStavke"); } else { classSQL.NpgAdatpter(sql2).Fill(dSRfakturaStavke, "DTfakturaStavke"); } double vpc = 0; //double kol_stavka = 0; double pdv = 0; double kol = 0; double mpc = 0; double rabat = 0; double mpc_stavka = 0; double rabat_stavka = 0; double pdv_stavka = 0; double osnovica_stavka = 0; double RabatSve = 0; double ukupno_stav = 0; double pdvStavka = 0; double stopa = 0; double mpcStavka = 0; double rabatStavka = 0; double osnovicaStavka = 0; double cista_cijena_sveukupno = 0; DataTable DT = dSRfakturaStavke.Tables[0]; for (int i = 0; i < DT.Rows.Count; i++) { vpc = Convert.ToDouble(DT.Rows[i]["vpc"].ToString()); //kol_stavka = Convert.ToDouble(DT.Rows[i]["kolicina"].ToString()); pdv = Convert.ToDouble(DT.Rows[i]["porez"].ToString()); rabat = Convert.ToDouble(DT.Rows[i]["rabat"].ToString()); kol = Convert.ToDouble(DT.Rows[i]["kolicina"].ToString()); mpc = vpc * (1 + (pdv / 100)); ukupno_stav = vpc * kol - vpc * kol * rabat / 100; rabat_stavka = vpc * kol * rabat / 100; rabatStavka = mpc * kol * rabat / 100; mpc_stavka = vpc * kol - rabat_stavka; pdv_stavka = mpc_stavka - mpc_stavka / (1 + pdv / 100); osnovica_stavka = mpc_stavka; mpcStavka = Math.Round(mpc * kol - rabatStavka, 2); osnovicaStavka = mpcStavka; double preracunataSto = (100 * pdv) / (100 + pdv); pdvStavka = Math.Round(mpcStavka * (preracunataSto / 100), 3); stopa = ((mpc - vpc) / vpc); dSRfakturaStavke.Tables[0].Rows[i].SetField("mpcStavka", mpc_stavka); dSRfakturaStavke.Tables[0].Rows[i].SetField("rabatStavka", rabat_stavka); dSRfakturaStavke.Tables[0].Rows[i].SetField("mpc", mpc); dSRfakturaStavke.Tables[0].Rows[i].SetField("kolicina", kol.ToString("#0.00")); RabatSve = rabat_stavka + RabatSve; osnovica_ukupno = Math.Round(osnovica_stavka, 2) + osnovica_ukupno; pdv_ukupno = Math.Round(pdvStavka, 2) + pdv_ukupno; SveUkupno = mpcStavka + SveUkupno; StopePDVa(Math.Round((stopa * 100), 0), Math.Round(pdvStavka, 2), Math.Round(osnovica_stavka, 2)); } string broj_slovima = broj_u_text.PretvoriBrojUTekst(SveUkupno.ToString(), ',', "kn", "lp").ToString(); string sql = "SELECT " + " ifb.broj," + " ifb.datum AS datum," + " ifb.datum_dvo AS datum_dvo," + " ifb.datum_valute," + " ifb.jir," + " ifb.zki," + " ifb.mj_troska AS mjesto_troska," + " nacin_placanja.naziv_placanja AS placanje," + " ifb.otprema AS otprema," + " CAST (ifb.model AS nvarchar) + ' '+ CAST (ifb.broj AS nvarchar)+CAST (ifb.godina AS nvarchar)+'-'+CAST (ifb.odrediste AS nvarchar) AS model," + " ifb.napomena," + " '" + mpc + "' AS string4," + " '" + RabatSve + "' AS rabat," + " '" + SveUkupno + "' AS ukupno," + " '" + pdv_ukupno + "' AS iznos_pdv," + " '" + osnovica_ukupno + "' AS osnovica," + " '" + ukupno_stav + "' AS string5," + " ifb.godina," + //" CAST (ifb.broj AS nvarchar) +'/'+ CAST (ifb.godina AS nvarchar) AS Naslov," + " CAST (ifb.broj AS nvarchar) + CAST ('" + Util.Korisno.VratiDucanIBlagajnuZaIspis(4) + "' AS nvarchar) AS Naslov," + " partners.ime_tvrtke AS kupac_tvrtka," + " 'Datum isporuke:' AS naziv_date1," + " 'Datum dospijeća:' AS naziv_date2," + " '' AS string3," + " partners.adresa AS kupac_adresa," + " partners.id_grad AS id_kupac_grad," + " partners.id_partner AS sifra_kupac," + " zaposlenici.ime + ' ' + zaposlenici.prezime AS izradio," + " '" + broj_slovima.ToLower() + "' AS broj_slovima," + " partners.oib AS kupac_oib" + " FROM ifb" + " LEFT JOIN zacrnjeni_partner as partners ON partners.id_partner=ifb.odrediste" + " LEFT JOIN nacin_placanja ON nacin_placanja.id_placanje=ifb.id_nacin_placanja" + //" LEFT JOIN ziro_racun ON ziro_racun.id_ziroracun=fakture.zr" + " LEFT JOIN zaposlenici ON zaposlenici.id_zaposlenik=ifb.id_zaposlenik WHERE ifb.broj='" + broj + "'" + ""; if (classSQL.remoteConnectionString == "") { classSQL.CeAdatpter(sql).Fill(dSFaktura, "DTRfaktura"); } else { classSQL.NpgAdatpter(sql.Replace("nvarchar", "varchar")).Fill(dSFaktura, "DTRfaktura"); } string dodatak = ""; if (DTpostavke.Rows[0]["oslobodenje_pdva"].ToString() == "1" && pdv_ukupno == 0) { dodatak = "\r\n\r\nPrijenos porezne obveze prema čl. 75., st. 3b. i čl. 79. Zakona o PDV-u.\r\nKupac će sam obračunati PDV od 25% i iskazati ga u poreznoj prijavi.\r\nObračun prema naplaćenoj naknadi."; } else if (DTpostavke.Rows[0]["oslobodenje_pdva"].ToString() == "1") { dodatak = "\r\n\r\nObračun prema naplaćenoj naknadi"; } dSFaktura.Tables[0].Rows[0]["napomena"] = dSFaktura.Tables[0].Rows[0]["napomena"] + dodatak; string id_kupac_grad = ""; string id_kupac = ""; if (dSFaktura.Tables[0].Rows.Count > 0) { id_kupac_grad = dSFaktura.Tables[0].Rows[0]["id_kupac_grad"].ToString(); id_kupac = dSFaktura.Tables[0].Rows[0]["sifra_kupac"].ToString(); } else { MessageBox.Show("Odabrani zahtjev ne postoji.", "Greška", MessageBoxButtons.OK, MessageBoxIcon.Warning); } string naziv_fakture = " podaci_tvrtka.naziv_fakture,"; string sql1 = SqlPodaciTvrtke.VratiSql(id_kupac_grad, naziv_fakture, id_kupac); if (classSQL.remoteConnectionString == "") { classSQL.CeAdatpter(sql1).Fill(dSRpodaciTvrtke, "DTRpodaciTvrtke"); } else { classSQL.CeAdatpter(sql1).Fill(dSRpodaciTvrtke, "DTRpodaciTvrtke"); if (dSRpodaciTvrtke.Tables[0].Rows.Count > 0) { string iban = dSRpodaciTvrtke.Tables[0].Rows[0]["iban"].ToString(); string[] ibans = iban.Split(';'); string ibanR = ""; foreach (string s in ibans) { ibanR += s + "\r\n"; } if (ibanR.Length > 4) { ibanR = ibanR.Remove(ibanR.Length - 2); } dSRpodaciTvrtke.Tables[0].Rows[0]["iban"] = ibanR; } } DateTime datum_ = Convert.ToDateTime(dSFaktura.Tables[0].Rows[0]["datum"].ToString()); reportViewer1.LocalReport.DisplayName = "IFB-" + dSFaktura.Tables[0].Rows[0]["broj"].ToString() + "-" + datum_.ToString("dd-MM-yyyy") + ""; decimal u_kune_iz_valute = 0; string u_kunama = ""; if (racunajTecaj) { u_kune_iz_valute = Math.Round(Convert.ToDecimal(cista_cijena_sveukupno), 2); u_kunama = u_kune_iz_valute.ToString() + " kn"; } else { u_kunama = "0 kn"; } ReportParameter p7 = new ReportParameter("iznos_valuta_kn", u_kunama); this.reportViewer1.RefreshReport(); }
private void PrometKase_fak() { string sql1 = SqlPodaciTvrtke.VratiSql("", "", ""); classSQL.CeAdatpter(sql1).Fill(dSRpodaciTvrtke, "DTRpodaciTvrtke"); string WHERE = "WHERE "; string _ducan = "SVI"; string _zaposlenik = "SVI"; string _skladiste = "SVE"; if (blagajnik != null) { WHERE += "fakture.id_zaposlenik_izradio='" + blagajnik + "' AND "; try { _zaposlenik = classSQL.select("SELECT ime + ' ' + prezime FROM zaposlenici WHERE id_zaposlenik='" + blagajnik + "'", "zaposlenici").Tables[0].Rows[0][0].ToString(); } catch (Exception) { } } if (skladiste != null) { WHERE += "faktura_stavke.id_skladiste='" + skladiste + "' AND "; try { _skladiste = classSQL.select("SELECT skladiste FROM skladiste WHERE id_skladiste='" + skladiste + "'", "skladiste").Tables[0].Rows[0][0].ToString(); } catch (Exception) { } } string dodatak = ""; //WHERE += "racuni.datum_racuna >'" + datumOD + "' AND racuni.datum_racuna <'" + datumDO + "' AND racuni.storno = 'NE'"; dodatak += " AND fakture.date >'" + datumOD + "' AND fakture.date <'" + datumDO + "' "; string gotovina = "Select sum(ukupno) as ukupno From fakture where id_nacin_placanja = '1' " + dodatak; DataTable DTgoto = classSQL.select(gotovina, "gotovina").Tables[0]; string kartice = "Select sum(ukupno) as ukupno From fakture where id_nacin_placanja = '2' " + dodatak; DataTable DTkart = classSQL.select(kartice, "gotovina").Tables[0]; decimal kartice_ = 0; decimal gotovina_ = 0; if (DTkart.Rows[0]["ukupno"].ToString() != "") { kartice_ = Convert.ToDecimal(DTkart.Rows[0]["ukupno"].ToString()); } if (DTgoto.Rows[0]["ukupno"].ToString() != "") { gotovina_ = Convert.ToDecimal(DTgoto.Rows[0]["ukupno"].ToString()); } decimal ukupno = kartice_ + gotovina_; string sql_liste = "SELECT '" + ukupno + "' AS [cijena1], '" + gotovina_ + "' AS [cijena2],'" + kartice_ + "' AS [cijena3] "; if (classSQL.remoteConnectionString == "") { classSQL.CeAdatpter(sql_liste).Fill(dSRliste, "DTliste"); } else { classSQL.NpgAdatpter(sql_liste).Fill(dSRliste, "DTliste"); } //------------------------------------OVAJ DIO RACUNA RABAT------------------------------------------------------------------- WHERE += " fakture.date >'" + datumOD + "' AND fakture.date <'" + datumDO + "' "; DataSet DS = new DataSet(); string sql_liste1 = "SELECT " + "faktura_stavke.vpc," + "faktura_stavke.rabat," + "faktura_stavke.porez," + "faktura_stavke.kolicina" + " FROM faktura_stavke " + " LEFT JOIN fakture ON faktura_stavke.broj_fakture=fakture.broj_fakture " + " AND fakture.id_ducan=faktura_stavke.id_ducan AND fakture.id_kasa=faktura_stavke.id_kasa " + WHERE + " AND fakture.id_nacin_placanja <> '3' AND fakture.id_nacin_placanja <> '4'" + ""; if (classSQL.remoteConnectionString == "") { classSQL.CeAdatpter(sql_liste1).Fill(DS, "DTliste"); } else { classSQL.NpgAdatpter(sql_liste1).Fill(DS, "DTliste"); } decimal mpc = 0; decimal vpc = 0; decimal pdv = 0; decimal rabat = 0; decimal kolicina = 0; decimal rabat_iznos = 0; for (int i = 0; i < DS.Tables[0].Rows.Count; i++) { vpc = Convert.ToDecimal(DS.Tables[0].Rows[i]["vpc"].ToString()); pdv = Convert.ToDecimal(DS.Tables[0].Rows[i]["porez"].ToString()); rabat = Convert.ToDecimal(DS.Tables[0].Rows[i]["rabat"].ToString()); kolicina = Convert.ToDecimal(DS.Tables[0].Rows[i]["kolicina"].ToString()); mpc = vpc * (1 + (pdv / 100)); rabat_iznos += (mpc * rabat / 100) * kolicina; } //------------------------------------OVAJ DIO RACUNA RABAT----------------kraj-------------------------------------- string sql_liste_string = "SELECT " + " 'Način plaćanja ' AS tbl1," + " 'Popust ' AS tbl2," + " 'Iznos ' AS tbl3," + " 'NOVČANICE ' AS string1," + " 'KARTICE ' AS string2," + " 'Dućan: " + _ducan + "' AS string3," + " '' AS string4," + " 'Skladište: " + _skladiste + "' AS string5," + " 'Blagajnik: " + _zaposlenik + "' AS string6," + " 'PROMET KASE PO NAČINIMA PLAĆANJA ' AS naslov," + " 'Rabat ukupno: " + Math.Round(rabat_iznos, 2).ToString("#0.00") + "' AS string3," + " 'Za razdoblje: " + datumOD + " - " + datumDO + "' AS godina" + ""; if (classSQL.remoteConnectionString == "") { classSQL.CeAdatpter(sql_liste_string).Fill(dSRlisteTekst, "DTlisteTekst"); } else { classSQL.NpgAdatpter(sql_liste_string).Fill(dSRlisteTekst, "DTlisteTekst"); } }
private void frmKnjiznoOdobrenje_Load(object sender, EventArgs e) { this.reportViewer1.LocalReport.EnableExternalImages = true; INIFile ini = new INIFile(); string vpcplusporez = "MPC"; try { if (ini.Read("VPCPLUSPOREZ", "vpcplusporez") == "1") { vpcplusporez = "VPC+porez"; } } catch { } string sas = ""; if (File.Exists("Sas.txt")) { sas = "1"; } else { sas = "0"; } string root = ""; if (DTpostavke.Rows[0]["logo"].ToString() == "1") { root = DTpostavke.Rows[0]["logopath"].ToString(); } else { string localPath = Path.GetDirectoryName(Application.ExecutablePath); root = localPath + "\\bijela.jpg"; } ReportParameter p2 = new ReportParameter("path", root); ReportParameter p5 = new ReportParameter("sas", sas); this.reportViewer1.LocalReport.EnableExternalImages = true; this.reportViewer1.LocalReport.SetParameters(new ReportParameter[] { p2, p5 }); sql = "Select row_number() over() as rb, ko.broj_odobrenje, ko.datum, ko.broj_fakture, ko.id_ducan, ko.id_kasa, ko.id_ducan_faktura, ko.id_kasa_faktura, ko.id_izradio, ko.porez_odobrenja, f.ukupno::numeric as fUkp, f.ukupno_porez, " + "ROUND(f.ukupno::numeric-(f.ukupno::numeric*(ko.porez_odobrenja/100)), 2) as fUkpNew, ROUND(((f.ukupno::numeric-(f.ukupno::numeric*(ko.porez_odobrenja/100)))/1.25)*0.25, 2) as fUkpPorezNew, f.date as datum_fakture " + "from knjizno_odobrenje ko " + "left join fakture f on ko.broj_fakture = f.broj_fakture and ko.id_kasa_faktura = f.id_kasa and ko.id_ducan_faktura = f.id_ducan where broj_odobrenje = '" + broj_odobrenje + "'"; //if (true) //{ // sql = "Select row_number() over() as rb, ko.broj_odobrenje, ko.datum, ko.broj_fakture, ko.id_ducan, ko.id_kasa, ko.id_ducan_faktura, ko.id_kasa_faktura, ko.id_izradio, ko.porez_odobrenja, f.ukupno::numeric as fUkp, f.ukupno_porez, " + // "ROUND(f.ukupno::numeric-(f.ukupno::numeric*(ko.porez_odobrenja/100)), 2) as fUkpNew, ROUND(((f.ukupno::numeric-(f.ukupno::numeric*(ko.porez_odobrenja/100)))/1.25)*0.0, 2) as fUkpPorezNew, f.date as datum_fakture " + // "from knjizno_odobrenje ko " + // "left join fakture f on ko.broj_fakture = f.broj_fakture and ko.id_kasa_faktura = f.id_kasa and ko.id_ducan_faktura = f.id_ducan where broj_odobrenje = '" + broj_odobrenje + "'"; //} if (classSQL.remoteConnectionString == "") { classSQL.CeAdatpter(sql).Fill(dSKnjiznoOdobrenje, "dtKnjiznoOdobrenje"); } else { classSQL.NpgAdatpter(sql).Fill(dSKnjiznoOdobrenje, "dtKnjiznoOdobrenje"); } DataTable dtKnjiznoOdobrenje = classSQL.select(sql, "knjizno_odobrenje").Tables[0]; sql = "SELECT " + " fakture.broj_fakture," + " fakture.broj_avansa," + " fakture.godina_avansa," + " fakture.date AS datum," + " fakture.dateDVO AS datum_dvo," + " fakture.datum_valute," + " fakture.jir," + " fakture.zki," + " fakture.tecaj AS tecaj," + " valute.ime_valute AS valuta," + " fakture.mj_troska AS mjesto_troska," + " nacin_placanja.naziv_placanja AS placanje," + " otprema.naziv AS otprema," + " CAST (fakture.model AS nvarchar) + ' '+ CAST (fakture.broj_fakture AS nvarchar)+" + "CAST (fakture.godina_fakture AS nvarchar)+'-'+CAST (fakture.id_fakturirati AS nvarchar) AS model," + " fakture.napomena," + " '0' AS rabat," + " '0' AS ukupno," + " '0' AS iznos_pdv," + " '0' AS osnovica," + " fakture.godina_fakture," + //" CAST (fakture.broj_fakture AS nvarchar) +'/'+ CAST (fakture.godina_fakture AS nvarchar) AS Naslov," + " CAST (fakture.broj_fakture AS nvarchar) + CAST ('" + Util.Korisno.VratiDucanIBlagajnuZaIspis(2) + "' AS nvarchar) AS Naslov," + " partners.ime_tvrtke AS kupac_tvrtka," + " 'Datum isporuke:' AS naziv_date1," + " 'Datum dospijeća:' AS naziv_date2," + " partners.adresa AS kupac_adresa," + " partners.id_grad AS id_kupac_grad," + " partners.id_partner AS sifra_kupac," + " partners.napomena AS napomena_tvrtka," + " zemlja.zemlja AS kupac_drzava, " + " ziro_racun.ziroracun AS zr," + " zaposlenici.ime + ' ' + zaposlenici.prezime AS izradio," + " ziro_racun.banka AS banka," + " 'br slov' AS broj_slovima," + " partners.oib AS kupac_oib, " + " partners.oib_polje AS string5 " + " FROM fakture" + " LEFT JOIN partners ON partners.id_partner=fakture.id_odrediste" + " LEFT JOIN otprema ON otprema.id_otprema=fakture.otprema" + " LEFT JOIN nacin_placanja ON nacin_placanja.id_placanje=fakture.id_nacin_placanja" + " LEFT JOIN ziro_racun ON ziro_racun.id_ziroracun=fakture.zr" + " LEFT JOIN valute ON valute.id_valuta=fakture.id_valuta" + " LEFT JOIN zemlja ON zemlja.id_zemlja=partners.id_zemlja" + " LEFT JOIN zaposlenici ON zaposlenici.id_zaposlenik=fakture.id_zaposlenik_izradio WHERE fakture.broj_fakture='" + dtKnjiznoOdobrenje.Rows[0]["broj_fakture"] + "'" + " AND fakture.id_ducan='" + dtKnjiznoOdobrenje.Rows[0]["id_ducan_faktura"] + "' AND fakture.id_kasa='" + dtKnjiznoOdobrenje.Rows[0]["id_kasa_faktura"] + "'" + ""; //AND fakture.id_ducan='" + poslovnica + "' AND fakture.id_kasa='" + naplatni + "' if (classSQL.remoteConnectionString == "") { classSQL.CeAdatpter(sql).Fill(dSFaktura, "DTRfaktura"); } else { classSQL.NpgAdatpter(sql.Replace("nvarchar", "varchar")).Fill(dSFaktura, "DTRfaktura"); } string id_kupac_grad = ""; string id_kupac = ""; if (dSFaktura.Tables[0].Rows.Count > 0) { id_kupac_grad = dSFaktura.Tables[0].Rows[0]["id_kupac_grad"].ToString(); id_kupac = dSFaktura.Tables[0].Rows[0]["sifra_kupac"].ToString(); } else { } string naziv_fakture = " podaci_tvrtka.naziv_fakture,"; string sql1 = SqlPodaciTvrtke.VratiSql(id_kupac_grad, naziv_fakture, id_kupac); if (classSQL.remoteConnectionString == "") { classSQL.CeAdatpter(sql1).Fill(dSRpodaciTvrtke, "DTRpodaciTvrtke"); } else { classSQL.CeAdatpter(sql1).Fill(dSRpodaciTvrtke, "DTRpodaciTvrtke"); if (dSRpodaciTvrtke.Tables[0].Rows.Count > 0) { string iban = dSRpodaciTvrtke.Tables[0].Rows[0]["iban"].ToString(); if (iban.Length > 5) { string[] ibans = iban.Split(';'); string ibanR = ""; foreach (string s in ibans) { ibanR += s + "\r\n"; } if (ibanR.Length > 4) { ibanR = ibanR.Remove(ibanR.Length - 2); } dSRpodaciTvrtke.Tables[0].Rows[0]["iban"] = ibanR; } string swift = dSRpodaciTvrtke.Tables[0].Rows[0]["swift"].ToString(); if (swift.Length > 5) { string[] swifts = swift.Split(';'); string swiftR = ""; foreach (string s in swifts) { swiftR += s + "\r\n"; } if (swiftR.Length > 4) { swiftR = swiftR.Remove(swiftR.Length - 2); } dSRpodaciTvrtke.Tables[0].Rows[0]["swift"] = swiftR; } } //classSQL.NpgAdatpter(sql1).Fill(dSRpodaciTvrtke, "DTRpodaciTvrtke"); } PostaviPodatkeOBanci(ref dSRpodaciTvrtke, ref dSFaktura); DateTime datum_ = Convert.ToDateTime(dSFaktura.Tables[0].Rows[0]["datum"].ToString()); //if (DTpostavke.Rows[0]["ispis_partnera"].ToString() == "0") { if (MessageBox.Show("Želite li na ovoj fakturi ispisati podatke o kupcu?", "Kupac", MessageBoxButtons.YesNo, MessageBoxIcon.Question) != DialogResult.Yes) { dSFaktura.Tables[0].Rows[0]["kupac_tvrtka"] = ""; dSFaktura.Tables[0].Rows[0]["kupac_adresa"] = ""; dSFaktura.Tables[0].Rows[0]["id_kupac_grad"] = "0"; dSFaktura.Tables[0].Rows[0]["sifra_kupac"] = ""; dSFaktura.Tables[0].Rows[0]["napomena_tvrtka"] = ""; dSFaktura.Tables[0].Rows[0]["kupac_drzava"] = ""; dSFaktura.Tables[0].Rows[0]["kupac_oib"] = ""; dSFaktura.Tables[0].Rows[0]["string5"] = ""; dSRpodaciTvrtke.Tables[0].Rows[0]["grad_kupac"] = ""; } //} this.reportViewer1.RefreshReport(); }
private void FillRNS(string broj, int godina) { string sql2 = @"SELECT COALESCE(to_char(servis_status.datum, 'YYYY.MM.DD HH24:MI:SS'), '') as broj_fakture, case when servis_status.status = 0 then 'Nulti servis' else case when servis_status.status = 1 then 'Zaprimljeno' else case when servis_status.status = 2 then 'Servis u toku' else case when servis_status.status = 3 then 'Na vanjskom servisu' else case when servis_status.status = 4 then 'Završen servis' else 'Povrat kupcu' end end end end end as naziv, servis_status.napomena as sifra FROM servis_status LEFT JOIN servis ON servis.id = servis_status.id_servis WHERE servis.servisna_primka = '" + broj + "' and servis.godina = '" + godina + @"' order by servis_status.datum asc; "; //DSRfakturaStavke DSfs = new DSRfakturaStavke(); if (classSQL.remoteConnectionString == "") { classSQL.CeAdatpter(sql2).Fill(dSRfakturaStavke, "DTfakturaStavke"); } else { classSQL.NpgAdatpter(sql2).Fill(dSRfakturaStavke, "DTfakturaStavke"); } DataTable DT = dSRfakturaStavke.Tables[0]; for (int i = 0; i < DT.Rows.Count; i++) { } string sql = "SELECT " + " radni_nalog_servis.broj," + " radni_nalog_servis.date AS datum," + " radni_nalog_servis.vrijedi_do AS datum_dvo," + " radni_nalog_servis.vrijedi_do AS datum_valute," + " '' AS placanje," + " otprema.naziv AS otprema," + " CAST (radni_nalog_servis.model AS nvarchar) + ' '+ CAST (radni_nalog_servis.broj AS nvarchar)+" + " CAST (radni_nalog_servis.godina AS nvarchar)+'-'+CAST (radni_nalog_servis.id_fakturirati AS nvarchar) AS model," + " radni_nalog_servis.napomena," + //" '" + rabatSve + "' AS rabat," + //" '" + sveUkupno + "' AS ukupno," + //" '" + pdvUkupno + "' AS iznos_pdv," + //" '" + osnovicaUkupno + "' AS osnovica," + " radni_nalog_servis.godina," + " CAST (radni_nalog_servis.broj AS nvarchar) +'/'+ CAST (radni_nalog_servis.godina AS nvarchar) AS Naslov," + " partners.ime_tvrtke AS kupac_tvrtka," + " 'Vrijedi do:' AS naziv_date1," + " partners.adresa AS kupac_adresa," + " partners.id_grad AS id_kupac_grad," + " partners.id_partner AS sifra_kupac," + " partners.napomena AS napomena_tvrtka," + " partners.oib_polje AS string5, " + " zemlja.zemlja AS kupac_drzava, " + " ziro_racun.ziroracun AS zr," + " zaposlenici.ime + ' ' + zaposlenici.prezime AS izradio," + " ziro_racun.banka AS banka," + //" '" + broj_slovima + "' AS broj_slovima," + " partners.oib AS kupac_oib" + " FROM radni_nalog_servis" + " LEFT JOIN partners ON partners.id_partner=radni_nalog_servis.id_fakturirati" + " LEFT JOIN otprema ON otprema.id_otprema=radni_nalog_servis.otprema" + " LEFT JOIN nacin_placanja ON nacin_placanja.id_placanje=radni_nalog_servis.id_nacin_placanja" + " LEFT JOIN zemlja ON zemlja.id_zemlja=partners.id_zemlja" + " LEFT JOIN ziro_racun ON ziro_racun.id_ziroracun=radni_nalog_servis.zr" + " LEFT JOIN zaposlenici ON zaposlenici.id_zaposlenik=radni_nalog_servis.id_zaposlenik_izradio WHERE radni_nalog_servis.broj='" + broj + "'" + ""; sql = @"select s.servisna_primka as broj_racuna, s.godina as godina, s.seriski_broj as string1, s.sifra as string2, s.naziv as string3, case when p.vrsta_korisnika = 1 then p.ime_tvrtke else concat(p.ime, ' ', p.prezime) end AS kupac_tvrtka, p.adresa AS kupac_adresa, p.id_grad AS id_kupac_grad, p.id_partner AS sifra_kupac, p.napomena AS napomena_tvrtka, p.tel as jir, p.mob as zki, p.oib_polje AS string5, z.zemlja AS kupac_drzava, p.oib AS kupac_oib, za.ime + ' ' + za.prezime AS izradio from servis s left join partners p on s.partner = p.id_partner left join zemlja z ON z.id_zemlja = p.id_zemlja LEFT JOIN zaposlenici za ON za.id_zaposlenik = s.izradio where s.servisna_primka = '" + broj + "' and s.godina = '" + godina + "';"; if (classSQL.remoteConnectionString == "") { classSQL.CeAdatpter(sql).Fill(dSFaktura, "DTRfaktura"); } else { classSQL.NpgAdatpter(sql.Replace("nvarchar", "varchar")).Fill(dSFaktura, "DTRfaktura"); } string id_kupac = ""; if (dSFaktura.Tables[0].Rows.Count > 0) { id_kupac = dSFaktura.Tables[0].Rows[0]["id_kupac_grad"].ToString(); } else { MessageBox.Show("Odabrani zahtjev ne postoji.", "Greška", MessageBoxButtons.OK, MessageBoxIcon.Warning); //return; } //string drzava = dSRpodaciTvrtke.Tables[0].Rows[0]["id_kupac_grad"].ToString(); string naziv_fakture = " 'Servisna primka ' AS naziv_fakture,"; string sql1 = SqlPodaciTvrtke.VratiSql(id_kupac, naziv_fakture, ""); if (classSQL.remoteConnectionString == "") { classSQL.CeAdatpter(sql1).Fill(dSRpodaciTvrtke, "DTRpodaciTvrtke"); } else { classSQL.CeAdatpter(sql1).Fill(dSRpodaciTvrtke, "DTRpodaciTvrtke"); } PostaviPodatkeOBanci(ref dSRpodaciTvrtke, ref dSFaktura); //DateTime datum_ = Convert.ToDateTime(dSFaktura.Tables[0].Rows[0]["datum"].ToString()); reportViewer1.LocalReport.DisplayName = "Servisna primka - " + dSFaktura.Tables[0].Rows[0]["broj_racuna"].ToString(); }
private void obracunporeza_fak() { //if (DTpdv.Columns["porez"] == null) //{ // DTpdv.Columns.Add("porez"); // DTpdv.Columns.Add("iznos"); // DTpdv.Columns.Add("nacin"); // DTpdv.Columns.Add("osnovica"); //} //else //{ // DTpdv.Clear(); //} string naziv_fakture = " podaci_tvrtka.naziv_fakture,"; string sql1 = SqlPodaciTvrtke.VratiSql("", naziv_fakture, ""); classSQL.CeAdatpter(sql1).Fill(dSRpodaciTvrtke, "DTRpodaciTvrtke"); frmObracunporeza obrporez = new frmObracunporeza(); string duc = ""; if (ducbool == true) { duc = " fakture.id_ducan ='" + ducan + "' AND "; } else { duc = ""; } string kas = ""; if (kasbool == true) { kas = "fakture.id_kasa ='" + kasa + "' AND "; } else { kas = ""; } string datOD = ""; string datODrez = ""; //if (datbool == true) //{ datOD = " fakture.datedvo >='" + datumOD.AddDays(0).ToString("yyyy-MM-dd 00:00:00") + "' AND "; datODrez = "'" + datumOD.AddDays(0).ToString("yyyy-MM-dd") + "' As datum2 ,"; //} //else //{ // datOD = ""; //} string datDO = ""; string datDOrez = ""; //if (datbool == true) //{ datDO = "fakture.datedvo <='" + datumDO.AddDays(0).ToString("yyyy-MM-dd 23:59:59") + "' AND "; datDOrez = "'" + datumDO.AddDays(0).ToString("yyyy-MM-dd") + "' As datum3 ,"; //} //else //{ // datDO = ""; //} string racOD = ""; string racodd = ""; if (racbool == true) { racOD = " CAST(fakture.broj_fakture AS numeric) >='" + racunOD + "' AND "; racodd = " '" + racunodd + "' As string3 ,"; } else { racOD = ""; } string racDO = ""; string racdoo = ""; if (racbool == true) { racDO = " CAST(fakture.broj_fakture AS numeric) <='" + racunDO + "' AND "; racdoo = " '" + racundoo + "' As string4 ,"; } else { racDO = ""; } string bla = ""; string blag = ""; if (blabool == true) { bla = "fakture.id_zaposlenik_izradio ='" + blagajnik + "' AND "; blag = " '" + blagajnik + "' As string5 ,"; } else { bla = ""; } string filter = datOD + datDO + racOD + racDO + kas + bla + duc; if (filter.Length != 0) { filter = " WHERE " + filter; filter = filter.Remove(filter.Length - 4, 4); } string sql_liste = "SELECT " + " faktura_stavke.porez As porezroba," + " faktura_stavke.rabat As rabat ," + " faktura_stavke.kolicina ," + " faktura_stavke.vpc ," + " faktura_stavke.vpc * (1 zbroj (CAST(replace(faktura_stavke.porez,',','.') as numeric)/100)) as mpc, " + blag + racodd + racdoo + " fakture.date As datum1," + datODrez + datDOrez + " roba.oduzmi," + " fakture.ukupno," + " faktura_stavke.porez_potrosnja," + " faktura_stavke.povratna_naknada" + " FROM faktura_stavke" + " LEFT JOIN roba ON roba.sifra=faktura_stavke.sifra " + " LEFT JOIN fakture ON fakture.broj_fakture=faktura_stavke.broj_fakture " + " AND fakture.id_ducan=faktura_stavke.id_ducan AND fakture.id_kasa=faktura_stavke.id_kasa" + " " + filter; classSQL.NpgAdatpter(sql_liste).Fill(dSRlisteTekst, "DTlisteTekst"); if (dSRlisteTekst.Tables[0].Rows.Count < 1) { this.Hide(); MessageBox.Show("Za taj upit ne postoji ni jedan zapis !"); this.Close(); } //string sqltxt1 = " SELECT MAX(CAST(broj_racuna AS INTEGER)) AS string3," + //" MIN(CAST(broj_racuna AS INTEGER)) As string4 " + //" FROM racuni"; //classSQL.NpgAdatpter(sqltxt1).Fill(dSRlisteTekst, "DTlisteTekst"); //MessageBox.Show(dSRlisteTekst.Tables[0].Rows.Count.ToString()); DataTable DTstavke; DTstavke = classSQL.select(sql_liste, "faktura_stavke").Tables[0]; DataTable DTstavke1; DTstavke1 = classSQL.select(sql_liste, "faktura_stavke").Tables[0]; DataTable DTstavke2; DTstavke2 = classSQL.select(sql_liste, "faktura_stavke").Tables[0]; decimal Stopa = 0; decimal iznos_bez_poreza = 0; decimal osnovica_ukupno = 0; decimal rabat_iznos = 0; decimal pdv_rabat = 0; decimal pdv_osnovica = 0; decimal pdv_iznos = 0; decimal Stopa1 = 0; decimal iznos_bez_poreza1 = 0; decimal osnovica_ukupno1 = 0; decimal pdv_rabat1 = 0; decimal pdv_osnovica1 = 0; decimal pdv_iznos1 = 0; decimal povratna_naknada = 0; decimal povratna_naknada1 = 0; decimal pnp = 0; decimal porez_na_potrosnju = 0; decimal sveukupno1 = 0; decimal sveukupno2 = 0; decimal porez_na_potrosnju1 = 0; decimal rabat_iznos1 = 0; for (int y = 0; y < DTstavke.Rows.Count; y++) { //MessageBox.Show(DTstavke.Rows[y]["povratna_naknada"].ToString()); decimal pdv = Convert.ToDecimal(DTstavke.Rows[y]["porezroba"].ToString()); decimal vpc = Convert.ToDecimal(DTstavke.Rows[y]["vpc"].ToString()); decimal rabat = Convert.ToDecimal(DTstavke.Rows[y]["rabat"].ToString()); decimal kol = Convert.ToDecimal(DTstavke.Rows[y]["kolicina"].ToString()); decimal uku = Convert.ToDecimal(DTstavke.Rows[y]["ukupno"].ToString()); decimal mpc = Convert.ToDecimal(DTstavke.Rows[y]["mpc"].ToString()); if (DTstavke.Rows[y]["povratna_naknada"].ToString() != "") { povratna_naknada = Convert.ToDecimal(DTstavke.Rows[y]["povratna_naknada"].ToString()); } else { povratna_naknada = 0; } if (DTstavke.Rows[y]["porez_potrosnja"].ToString() != "") { pnp = Convert.ToDecimal(DTstavke.Rows[y]["porez_potrosnja"].ToString()); } else { pnp = 0; } if (DTstavke.Rows[y]["oduzmi"].ToString() == "DA") { if (DTstavke.Rows[y]["povratna_naknada"].ToString() != "") { povratna_naknada = Convert.ToDecimal(DTstavke.Rows[y]["povratna_naknada"].ToString()); } else { povratna_naknada = 0; } sveukupno1 = mpc * kol; Stopa = (pdv * 100) / (100 + pdv); rabat_iznos = (mpc * (rabat / 100)) * kol; pdv_rabat = (rabat_iznos * (Stopa / 100)); osnovica_ukupno = (mpc - (mpc * (rabat / 100))) * kol; porez_na_potrosnju = pnp; pdv_iznos = osnovica_ukupno * (Stopa / 100); iznos_bez_poreza = osnovica_ukupno - pdv_iznos; StopePDVa(pdv, Stopa, sveukupno1, povratna_naknada, rabat_iznos, pdv_rabat, osnovica_ukupno, pdv_iznos, porez_na_potrosnju, iznos_bez_poreza); } else { if (DTstavke.Rows[y]["povratna_naknada"].ToString() != "") { povratna_naknada1 = Convert.ToDecimal(DTstavke.Rows[y]["povratna_naknada"].ToString()); } else { povratna_naknada1 = 0; } sveukupno2 = mpc * kol; Stopa1 = (pdv * 100) / (100 + pdv); rabat_iznos1 = (mpc * (rabat / 100)) * kol; pdv_rabat1 = (rabat_iznos1 * (Stopa / 100)); osnovica_ukupno1 = ((mpc - (mpc * (rabat / 100))) * kol); porez_na_potrosnju1 = pnp; pdv_iznos1 = osnovica_ukupno1 * (Stopa1 / 100); iznos_bez_poreza1 = osnovica_ukupno1 - pdv_iznos1; //StopePDVa(0, 0, 0, 0, 0, 0, 0, 0, 0, 0); StopePDVa1(pdv, Stopa1, sveukupno2, povratna_naknada1, rabat_iznos1, pdv_rabat, osnovica_ukupno1, pdv_iznos1, porez_na_potrosnju1, iznos_bez_poreza1); } } rekapitulacija(); }
private void LoadDocument() { string grad_string = ""; DataTable grad = classSQL.select("SELECT grad,posta FROM grad, izdatnica" + " LEFT JOIN partners ON partners.id_partner=izdatnica.id_partner" + " WHERE izdatnica.broj='" + broj_dokumenta + "' AND izdatnica.id_skladiste = '" + broj_skladista + "'" + " And partners.id_grad=grad.id_grad", "grad").Tables[0]; if (grad.Rows.Count != 0) { grad_string = grad.Rows[0]["posta"].ToString().Trim() + " " + grad.Rows[0]["grad"].ToString(); } string sql1 = "SELECT " + " p.broj AS broj," + " p.originalni_dokument," + " p.datum," + " p.napomena AS napomena," + " p.godina," + " partners.ime_tvrtke AS kupac_tvrtka," + " partners.adresa AS kupac_adresa," + " '" + grad_string + "' AS kupac_grad," + " partners.id_grad AS kupac_grad_id," + " partners.id_partner AS sifra_kupac," + " partners.oib AS kupac_oib," + " '' AS Naslov," + " zaposlenici.ime + ' ' + zaposlenici.prezime AS izradio," + " grad.grad as mjesto," + " skladiste.id_skladiste," + " skladiste.skladiste" + " FROM izdatnica p" + " LEFT JOIN partners ON partners.id_partner=p.id_partner" + " LEFT JOIN zaposlenici ON zaposlenici.id_zaposlenik=p.id_izradio" + " LEFT JOIN skladiste ON skladiste.id_skladiste=p.id_skladiste" + " LEFT JOIN grad ON grad.id_grad=p.id_mjesto" + " WHERE p.broj='" + broj_dokumenta + "' AND p.id_skladiste = '" + broj_skladista + "'"; //izdatnica broj + skladište ili id_izdatnica??? if (classSQL.remoteConnectionString == "") { classSQL.CeAdatpter(sql1).Fill(dSIzdatnica, "DTRIzdatnica"); } else { classSQL.NpgAdatpter(sql1.Replace("nvarchar", "varchar")).Fill(dSIzdatnica, "DTRIzdatnica"); } string sql_liste = "SELECT " + " p.sifra," + " p.vpc," + " p.mpc," + " p.rabat," + " p.broj," + " CAST(p.kolicina AS numeric)," + " p.nbc," + " CAST(p.pdv as numeric)," + " p.ukupno," + " r.naziv AS naziv_robe," + " r.jm" + " FROM roba r, izdatnica_stavke p" + " LEFT JOIN izdatnica ON izdatnica.id_izdatnica=p.id_izdatnica" + " WHERE izdatnica.broj='" + broj_dokumenta + "' AND izdatnica.id_skladiste = '" + broj_skladista + "'" + " AND p.sifra=r.sifra"; if (classSQL.remoteConnectionString == "") { classSQL.CeAdatpter(sql_liste).Fill(dSIzdatnicaStavke, "DTIzdatnicaStavke"); } else { classSQL.NpgAdatpter(sql_liste).Fill(dSIzdatnicaStavke, "DTIzdatnicaStavke"); } DataTable dt = dSIzdatnicaStavke.Tables[0]; decimal iznosBezPoreza = 0; decimal sumIznosBezPoreza = 0; decimal uk = 0; decimal sumUk = 0; decimal nbc = 0; decimal vpc = 0; decimal fakturna_sa_pdv = 0; decimal pdv_iznos = 0; decimal rabat = 0; sumIznosBezPoreza = 0; sumUk = 0; for (int i = 0; i < dt.Rows.Count; i++) { uk = Math.Round(Convert.ToDecimal(dt.Rows[i]["ukupno"].ToString()), 2); nbc = Math.Round(Convert.ToDecimal(dt.Rows[i]["nbc"].ToString()), 2); vpc = Math.Round(Convert.ToDecimal(dt.Rows[i]["vpc"].ToString()), 2); decimal pdv; decimal.TryParse(dt.Rows[i]["pdv"].ToString().Replace(',', '.'), NumberStyles.Any, CultureInfo.InvariantCulture, out pdv); decimal kolicina = Convert.ToDecimal(dt.Rows[i]["kolicina"].ToString()); if (pdv != 0) { pdv_iznos = nbc * (pdv / 100); } fakturna_sa_pdv = nbc + pdv_iznos; iznosBezPoreza = uk - pdv_iznos; //rabat = Convert.ToDouble(dt.Rows[i]["rabat"].ToString()) == 0 ? "" : dt.Rows[i]["rabat"].ToString(); rabat = Convert.ToDecimal(dt.Rows[i]["rabat"]); decimal marza = (vpc - nbc) * kolicina; decimal pdvStavka_cisto = (nbc) * (pdv / 100); decimal pdvVpc = (vpc * kolicina) * (pdv / 100); dt.Rows[i].SetField("marza", marza); dt.Rows[i].SetField("vpc_pdv", pdvVpc); dt.Rows[i].SetField("vpc", vpc * kolicina); dt.Rows[i].SetField("iznosBezPoreza", Math.Round(iznosBezPoreza, 2)); dt.Rows[i].SetField("rabat", rabat); dt.Rows[i].SetField("pdv_iznos", Math.Round(pdv_iznos, 2)); dt.Rows[i].SetField("fakturna_sa_pdv", fakturna_sa_pdv); sumIznosBezPoreza += iznosBezPoreza; sumUk += uk; StopePDVa(Math.Round(pdv, 4), Math.Round(pdvStavka_cisto, 4), Math.Round(nbc, 4), "nbc"); StopePDVa(Math.Round(pdv, 4), Math.Round(pdvVpc, 4), Math.Round(vpc * kolicina, 4), "mpc"); } string id_kupac_grad = ""; string id_kupac = ""; if (dSIzdatnica.Tables[0].Rows.Count > 0) { id_kupac_grad = dSIzdatnica.Tables[0].Rows[0]["kupac_grad_id"].ToString(); id_kupac = dSIzdatnica.Tables[0].Rows[0]["sifra_kupac"].ToString(); } else { MessageBox.Show("Odabrani zahtjev ne postoji.", "Greška", MessageBoxButtons.OK, MessageBoxIcon.Warning); } sql1 = SqlPodaciTvrtke.VratiSql(id_kupac_grad, "", id_kupac); if (classSQL.remoteConnectionString == "") { classSQL.CeAdatpter(sql1).Fill(dSRpodaciTvrtke, "DTRpodaciTvrtke"); } else { classSQL.CeAdatpter(sql1).Fill(dSRpodaciTvrtke, "DTRpodaciTvrtke"); //classSQL.NpgAdatpter(sql1).Fill(dSRpodaciTvrtke, "DTRpodaciTvrtke"); } }
private void SetDS() { string filter = "", sql = ""; if (pregled == true) { filter = "kalkulacija.id_kalkulacija='" + broj_kalkulacije + "'"; sql = @"select coalesce(sum(pn.iznos * replace(ks.kolicina, ',','.')::numeric), 0) as povratna_naknada from povratna_naknada pn left join kalkulacija_stavke ks on pn.sifra = ks.sifra left join kalkulacija k on ks.broj = k.broj and ks.id_skladiste = k.id_skladiste where k.broj = '" + broj_kalkulacije + "' and pn.iznos <> 0;"; } else { filter = "kalkulacija.broj='" + broj_kalkulacije + "' AND kalkulacija.id_skladiste='" + skladiste + "'"; sql = @"select coalesce(sum(pn.iznos * replace(ks.kolicina, ',','.')::numeric), 0) as povratna_naknada from povratna_naknada pn left join kalkulacija_stavke ks on pn.sifra = ks.sifra left join kalkulacija k on ks.broj = k.broj and ks.id_skladiste = k.id_skladiste where k.broj = '" + broj_kalkulacije + "' and k.id_skladiste = '" + skladiste + "' and pn.iznos <> 0;"; } DataSet dsPovratnaNaknada = classSQL.select(sql, "povratna_naknada"); decimal povratna_naknada = 0; if (dsPovratnaNaknada != null && dsPovratnaNaknada.Tables.Count > 0 && dsPovratnaNaknada.Tables[0] != null && dsPovratnaNaknada.Tables[0].Rows.Count > 0) { povratna_naknada = Convert.ToDecimal(dsPovratnaNaknada.Tables[0].Rows[0][0]); } ReportParameter p2 = new ReportParameter("povratna_naknada", povratna_naknada.ToString()); //this.reportViewer1.LocalReport.SetParameters(new ReportParameter[] { p2 }); string sqlTecaj = "SELECT " + " kalkulacija.broj," + " kalkulacija.godina," + " skladiste.skladiste," + " kalkulacija.tecaj," + " valute.ime_valute AS valuta" + " FROM kalkulacija" + " LEFT JOIN skladiste ON kalkulacija.id_skladiste=skladiste.id_skladiste" + " LEFT JOIN valute ON kalkulacija.id_valuta=valute.id_valuta" + " LEFT JOIN partners ON kalkulacija.id_partner=partners.id_partner WHERE " + filter + " "; DataTable dtTecaj = classSQL.select(sqlTecaj, "kalkulacija").Tables[0]; //string double tecaj = 1; if (dtTecaj.Rows.Count > 0) { tecaj = Convert.ToDouble(dtTecaj.Rows[0]["tecaj"].ToString()); } string naziv_fakture = " podaci_tvrtka.naziv_fakture,"; string sql1 = SqlPodaciTvrtke.VratiSql("", naziv_fakture, ""); if (classSQL.remoteConnectionString == "") { classSQL.CeAdatpter(sql1).Fill(dSRpodaciTvrtke, "DTRpodaciTvrtke"); } else { //classSQL.NpgAdatpter(sql1).Fill(dSRpodaciTvrtke, "DTRpodaciTvrtke"); classSQL.CeAdatpter(sql1).Fill(dSRpodaciTvrtke, "DTRpodaciTvrtke"); } string filter1 = ""; if (pregled == true) { filter1 = "kalkulacija_stavke.id_kalkulacija='" + broj_kalkulacije + "'"; } else { filter1 = "kalkulacija_stavke.broj='" + broj_kalkulacije + "' AND kalkulacija_stavke.id_skladiste='" + skladiste + "'"; } string sql_stavke = "SELECT " + " kalkulacija_stavke.sifra," + " kalkulacija_stavke.id_stavka AS id," + " roba.naziv," + " roba.jm AS jmj," + " kalkulacija_stavke.kolicina," + " kalkulacija_stavke.rabat," + " kalkulacija_stavke.fak_cijena," + " kalkulacija_stavke.prijevoz," + " kalkulacija_stavke.carina," + " kalkulacija_stavke.ppmv," + " kalkulacija_stavke.posebni_porez," + " kalkulacija_stavke.marza_postotak as marza," + " kalkulacija_stavke.vpc," + " kalkulacija_stavke.porez AS pdv" + " FROM kalkulacija_stavke" + " LEFT JOIN roba ON kalkulacija_stavke.sifra = roba.sifra" + " WHERE " + filter1 + " ORDER BY CAST(id_stavka AS INT) ASC"; if (classSQL.remoteConnectionString == "") { classSQL.CeAdatpter(sql_stavke).Fill(dSkalkulacija_stavke, "DTkalkDtavke"); } else { classSQL.NpgAdatpter(sql_stavke).Fill(dSkalkulacija_stavke, "DTkalkDtavke"); } DataTable DT = dSkalkulacija_stavke.Tables[0]; double fakIznos = 0; double fak_iznos_stavka = 0; double fakNetto = 0; double osnovica = 0; double fakPdv = 0; double fak_ukupno_stavka = 0; double fakUk = 0; double fak_cijena = 0; double kolicina = 0; double rabat = 0; double rabatStavka = 0; double rabatUk = 0; double mpc = 0; double mpc_uk = 0; double porez = 0; double vpc = 0; double nab_cijena = 0; double posebni_porez = 0; double prijevoz = 0; double carina = 0; double net_cijena = 0; double marza = 0; double marzaIznos = 0; double marzaUk = 0; double nabavna_zadnja = 0; double marza_uk_ = 0; double ppmv = 0; double ppmv_ukp = 0; for (int i = 0; i < DT.Rows.Count; i++) { kolicina = Math.Round(Convert.ToDouble(DT.Rows[i]["kolicina"].ToString()), 3); fak_cijena = Math.Round(Convert.ToDouble(DT.Rows[i]["fak_cijena"].ToString()), 3); rabat = Math.Round(Convert.ToDouble(DT.Rows[i]["rabat"].ToString()), 3); porez = Math.Round(Convert.ToDouble(DT.Rows[i]["pdv"].ToString()), 3); vpc = Math.Round(Convert.ToDouble(DT.Rows[i]["vpc"].ToString()), 3); posebni_porez = Math.Round(Convert.ToDouble(DT.Rows[i]["posebni_porez"].ToString()), 3); prijevoz = Math.Round(Convert.ToDouble(DT.Rows[i]["prijevoz"].ToString()), 4); carina = Math.Round(Convert.ToDouble(DT.Rows[i]["carina"].ToString()), 3); marza = Math.Round(Convert.ToDouble(DT.Rows[i]["marza"].ToString()), 3); ppmv = Math.Round(Convert.ToDouble(DT.Rows[i]["ppmv"].ToString()), 3); if (marza.ToString() == "NaN" || marza.ToString() == "Infinity") { marza = 0; } double vpc_s_kol = vpc * kolicina; double fak_s_kol = fak_cijena * kolicina; nabavna_zadnja = Math.Round((fak_s_kol - (fak_s_kol * (rabat / 100)) + ((prijevoz + carina) * kolicina)), 3); marza_uk_ = Math.Round(nabavna_zadnja * (marza / 100), 3); marzaIznos = Math.Round(marza / 100 * nabavna_zadnja, 3); marzaUk += marzaIznos; rabatStavka = fak_cijena * kolicina * rabat / 100; rabatUk += rabatStavka; mpc = vpc * (1 + porez / 100.0); mpc += ppmv; mpc_uk = mpc * kolicina; ppmv_ukp += (ppmv * kolicina); nab_cijena = kolicina * fak_cijena * (1 - rabat / 100) - posebni_porez + ((prijevoz + carina) * kolicina); if (Util.Korisno.oibTvrtke == "41109922301") { nab_cijena = fak_cijena * (1 - rabat / 100) - posebni_porez + ((prijevoz + carina)); } net_cijena = kolicina * fak_cijena * (1 - rabat / 100); fak_iznos_stavka = kolicina * fak_cijena; fakIznos += fak_iznos_stavka; fakNetto += fak_iznos_stavka * (1 - rabat / 100); fak_ukupno_stavka = vpc * (1 + porez / 100) * kolicina; fakUk += fak_ukupno_stavka; osnovica += fak_ukupno_stavka * 100 / (100 + porez); fakPdv += fak_ukupno_stavka * (1 - 100 / (100 + porez)); //fak_pdv += fak_ukupno_stavka / (1 - porez); DT.Rows[i].SetField("mpc_uk", Math.Round(mpc_uk, 3)); DT.Rows[i].SetField("mpc", Math.Round(mpc, 3)); DT.Rows[i].SetField("rabat", Math.Round(rabat, 3)); DT.Rows[i].SetField("rabat_uk", Math.Round(rabatStavka, 3)); DT.Rows[i].SetField("marza", Math.Round(marza, 3)); DT.Rows[i].SetField("marzaIznos", Math.Round(marza_uk_, 3)); DT.Rows[i].SetField("posebni_porez", posebni_porez); DT.Rows[i].SetField("prijevoz", Math.Round(prijevoz, 4)); DT.Rows[i].SetField("carina", Math.Round(carina, 3)); DT.Rows[i].SetField("kolicina", Math.Round(kolicina, 3)); DT.Rows[i].SetField("fak_cijena", Math.Round(fak_cijena, 3)); DT.Rows[i].SetField("fak_cijena_val", Math.Round(fak_cijena / tecaj, 3)); DT.Rows[i].SetField("net_cijena", Math.Round(net_cijena, 3)); DT.Rows[i].SetField("nab_cijena", Math.Round(nab_cijena, 3)); //DT.Rows[i].SetField("nab_porez", Math.Round(nab_cijena, 3)); } fakIznos = Math.Round(fakIznos, 3); fakNetto = Math.Round(fakNetto, 3); fakPdv = Math.Round(fakPdv, 3); osnovica = Math.Round(osnovica, 3); fakUk = Math.Round((fakUk + ppmv_ukp), 3); rabatUk = Math.Round(rabatUk, 3); marzaUk = Math.Round(marzaUk, 3); string filter2 = ""; if (pregled == true) { filter2 = "kalkulacija.id_kalkulacija='" + broj_kalkulacije + "'"; } else { filter2 = "kalkulacija.broj='" + broj_kalkulacije + "' AND kalkulacija.id_skladiste='" + skladiste + "'"; } string sql_kalk = "SELECT " + " kalkulacija.broj," + " kalkulacija.id_partner," + " kalkulacija.godina," + " 'Kalkulacija' AS naslov," + " skladiste.skladiste," + " kalkulacija.datum," + " partners.ime_tvrtke + ' ' + partners.id_partner AS dobavljac," + " kalkulacija.tecaj AS tecaj," + " kalkulacija.racun," + " kalkulacija.otpremnica," + " CAST(kalkulacija.otpremnica_datum AS date) AS otpremnica_datum," + " kalkulacija.tecaj," + " zaposlenici.ime + ' ' + zaposlenici.prezime AS kalkulirao," + " CAST(kalkulacija.racun_datum AS date) AS racun_datum," + " valute.ime_valute AS valuta," + " '" + fakIznos + "' AS fak_iznos," + " '" + fakNetto + "' AS netto_fak_iznos," + " '" + fakPdv + "' AS pdv," + " '" + rabatUk + "' AS rabatUk," + " '" + marzaUk + "' AS marzaUk," + " '" + osnovica + "' AS osnovica," + " '" + fakUk + "' AS ukupno" + " FROM kalkulacija" + " LEFT JOIN skladiste ON kalkulacija.id_skladiste=skladiste.id_skladiste" + " LEFT JOIN zaposlenici ON kalkulacija.id_zaposlenik=zaposlenici.id_zaposlenik" + " LEFT JOIN valute ON kalkulacija.id_valuta=valute.id_valuta" + " LEFT JOIN partners ON kalkulacija.id_partner=partners.id_partner WHERE " + filter2 + ""; if (classSQL.remoteConnectionString == "") { classSQL.CeAdatpter(sql_kalk).Fill(dSkalkulacija, "DTKalkulacijA"); } else { classSQL.NpgAdatpter(sql_kalk).Fill(dSkalkulacija, "DTKalkulacijA"); } ReportParameter p3 = new ReportParameter("ppmv", ppmv_ukp.ToString("0.00")); this.reportViewer1.LocalReport.SetParameters(new ReportParameter[] { p2, p3 }); }
private void LoadDocument() { string naziv_fakture = " podaci_tvrtka.naziv_fakture,"; string sql1 = SqlPodaciTvrtke.VratiSql("", naziv_fakture, ""); classSQL.CeAdatpter(sql1).Fill(dSRpodaciTvrtke, "DTRpodaciTvrtke"); if (ini.Read("POSTAVKE", "inventura_nabavna") != "") { nbc = ini.Read("POSTAVKE", "inventura_nabavna"); } string where_razlike = ""; switch (samo_razlike) { case "DA": where_razlike = " AND coalesce(inventura_stavke.kolicina_koja_je_bila,0) <> coalesce(CAST(REPLACE(inventura_stavke.kolicina,',','.') as NUMERIC),0)"; break; case null: where_razlike = " AND roba.sifra IN (SELECT inventura_stavke.sifra_robe WHERE inventura_stavke.broj_inventure='" + broj_dokumenta + "' AND (kolicina_koja_je_bila<>'0' OR coalesce(CAST(REPLACE(inventura_stavke.kolicina,',','.') as NUMERIC),0)<>'0'))"; break; case "NE": where_razlike = " AND (roba.sifra IN (SELECT inventura_stavke.sifra_robe WHERE inventura_stavke.broj_inventure='" + broj_dokumenta + "') OR inventura_stavke.kolicina_koja_je_bila <> coalesce(CAST(REPLACE(inventura_stavke.kolicina,',','.') AS DECIMAL),0))"; break; } #region OVDJE PROVJERAVAM DALI POSTOJI DOBRA CIJENA, POREZ, NBC //POSTAVLJAM NABAVNE CIJENE AKO JE NBC=0 DataTable DTnbcError = classSQL.select(@"SELECT * FROM inventura_stavke WHERE nbc='0' AND (CAST(REPLACE(kolicina,',','.') AS NUMERIC)-kolicina_koja_je_bila)<>0 AND inventura_stavke.broj_inventure='" + broj_dokumenta + "';", "nbc").Tables[0]; string sql_update = "BEGIN;"; foreach (DataRow r in DTnbcError.Rows) { decimal _NBC = Util.Korisno.VratiNabavnuCijenu(r["sifra_robe"].ToString(), skladiste); sql_update += "UPDATE inventura_stavke SET nbc='" + Math.Round(_NBC, 4).ToString().Replace(",", ".") + "' WHERE id_stavke='" + r["id_stavke"].ToString() + "';"; } if (sql_update.Length > 8) { sql_update += "COMMIT;"; classSQL.update(sql_update); } //OVDJE KONTROLIRAM POREZ CIJENU string sql_inv = "SELECT id_stavke,sifra_robe,cijena,porez FROM inventura_stavke WHERE (cijena='0' OR cijena IS NULL OR porez='') AND inventura_stavke.broj_inventure='" + broj_dokumenta + "';"; DataTable DTinvProvjera = classSQL.select(sql_inv, "inv").Tables[0]; DataTable DTinvRoba = classSQL.select(@"SELECT sifra,coalesce(vpc,0) as vpc,porez FROM roba_prodaja WHERE sifra IN (SELECT sifra_robe AS sifra FROM inventura_stavke WHERE cijena='0' OR cijena IS NULL OR porez='' AND inventura_stavke.broj_inventure='" + broj_dokumenta + @"') AND id_skladiste='" + skladiste + "'", "roba").Tables[0]; sql_update = "BEGIN;"; decimal cijenaInv = 0, porezInv = 0; foreach (DataRow r in DTinvProvjera.Rows) { DataRow[] rRoba = DTinvRoba.Select("sifra='" + r["sifra_robe"].ToString() + "'"); if (rRoba.Length > 0) { decimal.TryParse(rRoba[0]["vpc"].ToString(), out cijenaInv); decimal.TryParse(rRoba[0]["porez"].ToString(), out porezInv); if (porezInv > 0) { cijenaInv = cijenaInv / (1 / (porezInv / 100)); } } else { cijenaInv = 0; } sql_update += "UPDATE inventura_stavke SET porez='" + Math.Round(porezInv, 3).ToString().Replace(",", ".") + "', cijena='" + Math.Round(cijenaInv, 3).ToString().Replace(",", ".") + "' WHERE id_stavke='" + r["id_stavke"].ToString() + "';"; } // TODO: Test komentar za TODO da vidim dal se pojavi u Task List-u // HACK: Test komentar za HACK da vidim dal se pojavi u Task List-u // NOTE: Test komentar za NOTE da vidim dal se pojavi u Task List-u // UNDONE: Test komentar za UNDONE da vidim dal se pojavi u Task List-u if (sql_update.Length > 8) { sql_update += "COMMIT;"; classSQL.update(sql_update); } #endregion OVDJE PROVJERAVAM DALI POSTOJI DOBRA CIJENA, POREZ, NBC string cijena1 = "inventura_stavke.cijena", cijena8 = "(inventura_stavke.cijena/(1 zbroj CAST(REPLACE(roba_prodaja.porez,',','.') AS numeric)/100))"; if (nbc == "1") { cijena1 = "inventura_stavke.nbc"; cijena8 = "(inventura_stavke.cijena/(1 zbroj CAST(REPLACE(roba_prodaja.porez,',','.') AS numeric)/100))"; } if (ispis_proizvodacka_cijena) { cijena8 = "inventura_stavke.proizvodacka_cijena"; cijena1 = "inventura_stavke.nbc"; } #region UZIMAM VRIJEDNOSTI IZ INVENTURE string sql_liste = string.Format(@"SELECT roba_prodaja.sifra AS sifra, {3} as cijena1, (inventura_stavke.cijena) as rabat1, inventura_stavke.kolicina_koja_je_bila as cijena2, coalesce(CAST(REPLACE(inventura_stavke.kolicina,',','.') as NUMERIC),0) as cijena9, {4} as cijena8, roba.naziv, round(inventura_stavke.proizvodacka_cijena, 2) as proizvodacka_cijena, inventura_stavke.porez FROM roba_prodaja left JOIN inventura_stavke ON roba_prodaja.sifra=inventura_stavke.sifra_robe AND inventura_stavke.broj_inventure = '{0}' LEFT JOIN roba ON roba_prodaja.sifra=roba.sifra WHERE roba_prodaja.id_skladiste = '{1}' AND roba.oduzmi = 'DA'{2};", broj_dokumenta, skladiste, where_razlike, cijena1, cijena8); if (classSQL.remoteConnectionString == "") { classSQL.CeAdatpter(sql_liste).Fill(dSRliste, "DTliste"); } else { classSQL.NpgAdatpter(sql_liste).Fill(dSRliste, "DTliste"); } string sql = string.Format(@"drop table if exists tmpInv; create temp table tmpInv as select broj_inventure::integer as broj, sifra_robe as sifra, round(replace(kolicina, ',', '.')::numeric, 6) as upisana_kolicina, round(kolicina_koja_je_bila, 6) as programska_kolicina, round(replace(porez, ',', '.')::numeric, 2) as pdv, round((cijena / (1 zbroj (round(replace(porez, ',', '.')::numeric, 2) / 100))), 6) as vpc, coalesce(povratna_naknada.iznos, 0) as povratna_naknada from inventura_stavke left join (select distinct sifra, iznos from povratna_naknada) as povratna_naknada on inventura_stavke.sifra_robe = povratna_naknada.sifra where broj_inventure::integer = 1 and round(replace(kolicina, ',', '.')::numeric, 6) <> 0 and round(kolicina_koja_je_bila, 6) <> 0 order by broj, sifra; select coalesce(round(sum(programska_kolicina * povratna_naknada), 2), 0) as naknada_programa, coalesce(round(sum(upisana_kolicina * povratna_naknada), 2), 0) as naknada_inventure, coalesce(round(sum(programska_kolicina * povratna_naknada) - sum(upisana_kolicina * povratna_naknada), 2), 0) as naknada_razlika from tmpInv;"); DataSet dsTemp = classSQL.select(sql, "povratna"); double proizvodacka_cijena_ukupno = 0; for (int i = 0; i < dSRliste.Tables[0].Rows.Count; i++) { double kolicina = 0, proizvodacka_cijena = 0; double.TryParse(dSRliste.Tables[0].Rows[i]["cijena9"].ToString(), out kolicina); double.TryParse(dSRliste.Tables[0].Rows[i]["proizvodacka_cijena"].ToString(), out proizvodacka_cijena); proizvodacka_cijena_ukupno += Math.Round((kolicina * proizvodacka_cijena), 2, MidpointRounding.AwayFromZero); // TODO: tu more izracunati porez double osnovica = 0, iznos = 0, porez = 0; double.TryParse(dSRliste.Tables[0].Rows[i]["porez"].ToString(), out porez); double.TryParse(dSRliste.Tables[0].Rows[i]["cijena8"].ToString(), out osnovica); osnovica = Math.Round(osnovica, 6, MidpointRounding.AwayFromZero); iznos = Math.Round((osnovica * (porez / 100)), 6, MidpointRounding.AwayFromZero); if (kolicina != 0) { //DataRow[] dataROW = DTpdv.Select("stopa = '" + stopa.ToString("0.00") + "'"); DataRow[] stope = (dSstope.Tables[0]).Select(string.Format("stopa='{0}'", porez.ToString("#0.00"))); if (stope.Length == 0) { DataRow stopa = dSstope.Tables[0].NewRow(); stopa["stopa"] = porez.ToString("#0.00"); stopa["osnovica"] = Math.Round((osnovica * kolicina), 2, MidpointRounding.AwayFromZero); stopa["iznos"] = Math.Round((iznos * kolicina), 2, MidpointRounding.AwayFromZero); dSstope.Tables[0].Rows.Add(stopa); } else { double osnovicaOld = 0, iznosOld = 0; double.TryParse(stope[0]["osnovica"].ToString(), out osnovicaOld); double.TryParse(stope[0]["iznos"].ToString(), out iznosOld); stope[0]["osnovica"] = (osnovicaOld + Math.Round((osnovica * kolicina), 2, MidpointRounding.AwayFromZero)); stope[0]["iznos"] = (iznosOld + Math.Round((iznos * kolicina), 2, MidpointRounding.AwayFromZero)); } } } ReportParameter p1 = new ReportParameter("proizvodacka_cijena", proizvodacka_cijena_ukupno.ToString("#,##0.00")); ReportParameter p2 = new ReportParameter("ispis_proizvodacka_cijena", ispis_proizvodacka_cijena.ToString()); ReportParameter p3 = new ReportParameter("naknada_programa", dsTemp.Tables[0].Rows[0]["naknada_programa"].ToString()); ReportParameter p4 = new ReportParameter("naknada_inventure", dsTemp.Tables[0].Rows[0]["naknada_inventure"].ToString()); ReportParameter p5 = new ReportParameter("naknada_razlika", dsTemp.Tables[0].Rows[0]["naknada_razlika"].ToString()); this.reportViewer1.LocalReport.SetParameters(new ReportParameter[] { p1, p2, p3, p4, p5 }); #endregion UZIMAM VRIJEDNOSTI IZ INVENTURE #region OVDJE UZIMAM INVENTURNE VIŠKOVE I MANJKOVE I SPREMAM U DATASET ZA REPORT SetVisakManjakStope(); string query = @"SELECT COALESCE(SUM( (CAST(REPLACE(kolicina,',','.') AS NUMERIC)- kolicina_koja_je_bila)* nbc ),0) AS nbc, COALESCE(SUM( (CAST(REPLACE(kolicina,',','.') AS NUMERIC)- kolicina_koja_je_bila)* (cijena/(1+(CAST(REPLACE(porez,',','.') AS NUMERIC)/100))) ),0) AS vpc, COALESCE(SUM( (CAST(REPLACE(kolicina,',','.') AS NUMERIC)- kolicina_koja_je_bila)* cijena ),0) AS mpc FROM inventura_stavke WHERE broj_inventure='@broj' AND (CAST(REPLACE(kolicina,',','.') AS NUMERIC)-kolicina_koja_je_bila)<0;"; query = query.Replace("@broj", broj_dokumenta).Replace("+", "zbroj"); DataTable DTinvManjak = classSQL.select(query, "inv").Tables[0]; query = @"SELECT COALESCE(SUM( (CAST(REPLACE(kolicina,',','.') AS NUMERIC)- kolicina_koja_je_bila)* nbc ),0) AS nbc, COALESCE(SUM( (CAST(REPLACE(kolicina,',','.') AS NUMERIC)- kolicina_koja_je_bila)* (cijena/(1+(CAST(REPLACE(porez,',','.') AS NUMERIC)/100))) ),0) AS vpc, COALESCE(SUM( (CAST(REPLACE(kolicina,',','.') AS NUMERIC)- kolicina_koja_je_bila)* cijena ),0) AS mpc FROM inventura_stavke WHERE broj_inventure='@broj' AND (CAST(REPLACE(kolicina,',','.') AS NUMERIC)-kolicina_koja_je_bila)>0;"; query = query.Replace("@broj", broj_dokumenta).Replace("+", "zbroj"); DataTable DTinvVisak = classSQL.select(query, "inv").Tables[0]; DataRow ROW = listaUniverzalna.Tables[0].NewRow(); ROW["decimal1"] = DTinvManjak.Rows[0]["nbc"].ToString(); ROW["decimal2"] = DTinvManjak.Rows[0]["vpc"].ToString(); ROW["decimal3"] = DTinvManjak.Rows[0]["mpc"].ToString(); ROW["decimal4"] = DTinvVisak.Rows[0]["nbc"].ToString(); ROW["decimal5"] = DTinvVisak.Rows[0]["vpc"].ToString(); ROW["decimal6"] = DTinvVisak.Rows[0]["mpc"].ToString(); listaUniverzalna.Tables[0].Rows.Add(ROW); //COALESCE((SUM((CAST(REPLACE(kolicina,',','.') AS NUMERIC)*nbc)-(kolicina_koja_je_bila*nbc))),0) AS razlika, query = @"SELECT COALESCE(SUM(kolicina_koja_je_bila*nbc),0) AS skladiste, COALESCE(SUM(CAST(REPLACE(kolicina,',','.') AS NUMERIC)*nbc),0) AS stvarno, sum((REPLACE(kolicina,',','.')::numeric - kolicina_koja_je_bila) * nbc) as razlika, COALESCE(SUM(kolicina_koja_je_bila*(cijena/(1+(CAST(REPLACE(porez,',','.') AS NUMERIC)/100)))),0) AS skladiste_vpc, COALESCE(SUM(CAST(REPLACE(kolicina,',','.') AS NUMERIC)*(cijena/(1+(CAST(REPLACE(porez,',','.') AS NUMERIC)/100)))),0) AS stvarno_vpc, COALESCE((SUM((CAST(REPLACE(kolicina,',','.') AS NUMERIC)*(cijena/(1+(CAST(REPLACE(porez,',','.') AS NUMERIC)/100))))-(kolicina_koja_je_bila*(cijena/(1+(CAST(REPLACE(porez,',','.') AS NUMERIC)/100)))))),0) AS razlika_vpc, COALESCE(SUM(kolicina_koja_je_bila*cijena),0) AS skladiste_mpc, COALESCE(SUM(CAST(REPLACE(kolicina,',','.') AS NUMERIC)*cijena),0) AS stvarno_mpc, COALESCE((SUM((CAST(REPLACE(kolicina,',','.') AS NUMERIC)*cijena)-(kolicina_koja_je_bila*cijena))),0) AS razlika_mpc FROM inventura_stavke WHERE broj_inventure='@broj';"; if (ispis_proizvodacka_cijena) { query = @"SELECT COALESCE(SUM(kolicina_koja_je_bila*inventura_stavke.proizvodacka_cijena),0) AS skladiste, COALESCE(SUM(CAST(REPLACE(kolicina,',','.') AS NUMERIC) * inventura_stavke.proizvodacka_cijena),0) AS stvarno, sum((REPLACE(kolicina,',','.')::numeric - kolicina_koja_je_bila) * inventura_stavke.proizvodacka_cijena) as razlika, COALESCE(SUM(kolicina_koja_je_bila * nbc),0) AS skladiste_vpc, COALESCE(SUM(CAST(REPLACE(kolicina,',','.') AS NUMERIC)*nbc),0) AS stvarno_vpc, sum((REPLACE(kolicina,',','.')::numeric - kolicina_koja_je_bila) * nbc) AS razlika_vpc, COALESCE(SUM(kolicina_koja_je_bila*cijena),0) AS skladiste_mpc, COALESCE(SUM(CAST(REPLACE(kolicina,',','.') AS NUMERIC)*cijena),0) AS stvarno_mpc, COALESCE((SUM((CAST(REPLACE(kolicina,',','.') AS NUMERIC)*cijena)-(kolicina_koja_je_bila*cijena))),0) AS razlika_mpc FROM inventura_stavke WHERE broj_inventure='@broj';"; } query = query.Replace("@broj", broj_dokumenta).Replace("+", "zbroj"); DataTable DTinvSumirano = classSQL.select(query, "inv").Tables[0]; #endregion OVDJE UZIMAM INVENTURNE VIŠKOVE I MANJKOVE I SPREMAM U DATASET ZA REPORT string year = ""; DataTable DT = classSQL.select("SELECT datum FROM inventura WHERE broj_inventure='" + broj_dokumenta + "'", "inventura").Tables[0]; if (DT.Rows.Count > 0) { year = Convert.ToDateTime(DT.Rows[0]["datum"].ToString()).Year.ToString(); } string tbl3 = "MPC"; if (nbc == "1") { tbl3 = "NBC"; } decimal SumSkladiste = 0, SumKartice = 0, SumRazlika = 0, SumSkladisteVpc = 0, SumKarticeVpc = 0, SumRazlikaVpc = 0, SumSkladisteMpc = 0, SumKarticeMpc = 0, SumRazlikaMpc = 0; if (DTinvSumirano.Rows.Count > 0) { decimal.TryParse(DTinvSumirano.Rows[0]["skladiste"].ToString(), out SumSkladiste); decimal.TryParse(DTinvSumirano.Rows[0]["stvarno"].ToString(), out SumKartice); decimal.TryParse(DTinvSumirano.Rows[0]["razlika"].ToString(), out SumRazlika); decimal.TryParse(DTinvSumirano.Rows[0]["skladiste_vpc"].ToString(), out SumSkladisteVpc); decimal.TryParse(DTinvSumirano.Rows[0]["stvarno_vpc"].ToString(), out SumKarticeVpc); decimal.TryParse(DTinvSumirano.Rows[0]["razlika_vpc"].ToString(), out SumRazlikaVpc); decimal.TryParse(DTinvSumirano.Rows[0]["skladiste_mpc"].ToString(), out SumSkladisteMpc); decimal.TryParse(DTinvSumirano.Rows[0]["stvarno_mpc"].ToString(), out SumKarticeMpc); decimal.TryParse(DTinvSumirano.Rows[0]["razlika_mpc"].ToString(), out SumRazlikaMpc); } string sql_liste_string = "SELECT " + " 'Šifra ' AS tbl1," + " 'Naziv' AS tbl2," + " '" + tbl3 + "' AS tbl3," + " 'Kol.Kar' AS tbl4," + " 'Iznos.Kar' AS tbl5," + " 'Kol.inv' AS tbl6," + " 'Iznos inv' AS tbl7," + " 'Razlika' AS tbl8," + " 'Iznos' AS tbl9," + " '" + Math.Round(SumSkladisteVpc, 3).ToString("N2") + "' AS ukupno1," + " '" + Math.Round(SumKarticeVpc, 3).ToString("N2") + "' AS ukupno2," + " '" + Math.Round(SumRazlikaVpc, 3).ToString("N2") + "' AS ukupno3," + " '" + Math.Round(SumSkladiste, 3).ToString("N2") + "' AS ukupno4," + " '" + Math.Round(SumKartice, 3).ToString("N2") + "' AS ukupno5," + " '" + Math.Round(SumRazlika, 3).ToString("N2") + "' AS ukupno6," + " '" + Math.Round(SumSkladisteMpc, 3).ToString("N2") + "' AS ukupno7," + " '" + Math.Round(SumKarticeMpc, 3).ToString("N2") + "' AS ukupno8," + " '" + Math.Round(SumRazlikaMpc, 3).ToString("N2") + "' AS ukupno9," + " '" + Math.Round(SumSkladisteMpc - SumSkladisteVpc, 3).ToString("N2") + "' AS ukupno10," + " '" + Math.Round(SumKarticeMpc - SumKarticeVpc, 3).ToString("N2") + "' AS ukupno11," + " '" + Math.Round(SumRazlikaMpc - SumRazlikaVpc, 3).ToString("N2") + "' AS ukupno12," + " inventura.datum AS datum1," + " inventura.napomena AS komentar," + " 'Skladište: '+skladiste.skladiste AS skladiste," + " zaposlenici.ime + ' ' + zaposlenici.prezime AS string1," + " CAST ('INVENTURA ' AS nvarchar) + CAST (inventura.broj_inventure AS nvarchar) +'/'+ CAST (" + year + " AS nvarchar) AS naslov" + " FROM inventura " + " LEFT JOIN skladiste ON skladiste.id_skladiste=inventura.id_skladiste " + " LEFT JOIN zaposlenici ON zaposlenici.id_zaposlenik=inventura.id_zaposlenik " + " WHERE inventura.broj_inventure ='" + broj_dokumenta + "'"; if (classSQL.remoteConnectionString == "") { classSQL.CeAdatpter(sql_liste_string).Fill(dSRlisteTekst, "DTlisteTekst"); } else { classSQL.NpgAdatpter(sql_liste_string.Replace("nvarchar", "varchar")).Fill(dSRlisteTekst, "DTlisteTekst"); } }
private void odjava() { string sql1 = SqlPodaciTvrtke.VratiSql("", "", ""); classSQL.CeAdatpter(sql1).Fill(dSRpodaciTvrtke, "DTRpodaciTvrtke"); string sql_liste = $@" SELECT odjava_komisione_stavke.sifra, roba.naziv, roba.jm AS naziv2, SUM(CAST(REPLACE(odjava_komisione_stavke.kolicina_prodano,',','.') AS numeric)) AS kolicina, CAST(odjava_komisione_stavke.nbc AS money) AS cijena1, CAST(odjava_komisione_stavke.nbc AS money) * SUM(CAST(REPLACE(odjava_komisione_stavke.kolicina_prodano,',','.') AS numeric)) AS cijena2, CAST(REPLACE(odjava_komisione_stavke.rabat,',','.') AS numeric) AS cijena3, CAST(odjava_komisione_stavke.vpc AS money) AS cijena6 FROM odjava_komisione_stavke LEFT JOIN roba ON roba.sifra=odjava_komisione_stavke.sifra WHERE broj={broj_dokumenta} GROUP BY odjava_komisione_stavke.sifra, roba.naziv, roba.jm, odjava_komisione_stavke.nbc, odjava_komisione_stavke.rabat, odjava_komisione_stavke.vpc"; if (classSQL.remoteConnectionString == "") { classSQL.CeAdatpter(sql_liste).Fill(dSRliste, "DTliste"); } else { classSQL.NpgAdatpter(sql_liste).Fill(dSRliste, "DTliste"); } string sifra; double vpc, mpc, rabat, porez, mpc_ukp = 0, vpc_ukp = 0, kolicina = 0, ukupno = 0, ukupno_vpc = 0, ukupno_mpc = 0; DataTable dt = dSRliste.Tables[0]; DataTable dtRoba; dtRoba = classSQL.select("select id_skladiste from odjava_komisione where broj='" + broj_dokumenta + "'", "roba_prodaja").Tables[0]; string skladisteID = dtRoba.Rows.Count > 0 ? dtRoba.Rows[0][0].ToString() : ""; //treba srediti mpc for (int i = 0; i < dt.Rows.Count; i++) { vpc = Math.Round(Convert.ToDouble(dt.Rows[i]["cijena6"].ToString()), 3); rabat = Math.Round(Convert.ToDouble(dt.Rows[i]["cijena3"].ToString()), 2); kolicina = Math.Round(Convert.ToDouble(dt.Rows[i]["kolicina"].ToString()), 2); sifra = dt.Rows[i]["sifra"].ToString(); dtRoba = classSQL.select("select porez from roba_prodaja where sifra='" + sifra + "'" + " AND id_skladiste='" + skladisteID + "'", "roba_prodaja").Tables[0]; vpc = vpc * (1 - rabat / 100); if (dtRoba.Rows.Count > 0) { porez = Convert.ToDouble(dtRoba.Rows[0][0].ToString()); mpc = vpc * (1 + porez / 100); } else { dtRoba = classSQL.select("select porez from roba where sifra='" + sifra + "'", "roba").Tables[0]; try { porez = Convert.ToDouble(dtRoba.Rows[0][0].ToString()); mpc = vpc * (1 + porez / 100); } catch { porez = 0; mpc = vpc; } } ukupno += (mpc * (1 - rabat / 100)); //mpc *= (1 - rabat / 100); mpc_ukp = (mpc * kolicina); vpc_ukp = (vpc * kolicina); ukupno_vpc += vpc_ukp; ukupno_mpc += mpc_ukp; dt.Rows[i].SetField("cijena4", Math.Round(mpc, 2).ToString("#0.00")); dt.Rows[i].SetField("cijena5", Math.Round(porez).ToString("#0.00")); dt.Rows[i].SetField("cijena6", vpc.ToString("#0.000")); dt.Rows[i].SetField("cijena7", mpc_ukp.ToString("#0.000")); dt.Rows[i].SetField("cijena8", vpc_ukp.ToString("#0.000")); } string year = ""; DataTable DT = classSQL.select("SELECT datum FROM odjava_komisione WHERE broj='" + broj_dokumenta + "'", "odjava_komisione").Tables[0]; if (DT.Rows.Count > 0) { year = Convert.ToDateTime(DT.Rows[0]["datum"].ToString()).Year.ToString(); } string sql_liste_string = "SELECT " + " 'Šifra' AS tbl1," + " 'Naziv' AS tbl2," + " 'JMJ' AS tbl3," + " 'Kol.' AS tbl4," + " 'NBC' AS tbl5," + " 'NBC uk.' AS tbl6," + " 'Rabat%' AS tbl7," + " 'MPC' AS tbl8," + " 'Porez%' AS tbl9," + " 'VPC' AS tbl10," + " odjava_komisione.datum AS datum1," + " odjava_komisione.napomena AS komentar," + " odjava_komisione.od_datuma AS datum2," + " odjava_komisione.do_datuma AS datum3," + " partners.ime_tvrtke AS string2," + " partners.adresa AS string3 ," + " grad.posta + ' ' + grad.grad AS string4 ," + " partners.oib AS string5," + " partners.id_partner AS string6," + " skladiste.skladiste AS skladiste," + " zaposlenici.ime + ' ' + zaposlenici.prezime AS string1," + " CAST ('PREDMET: ODJAVA ROBE BROJ: ' AS nvarchar) + CAST (odjava_komisione.broj AS nvarchar) +'/'+ CAST (" + year + " AS nvarchar) AS naslov" + " FROM odjava_komisione " + " LEFT JOIN skladiste ON skladiste.id_skladiste=odjava_komisione.id_skladiste " + " LEFT JOIN zaposlenici ON zaposlenici.id_zaposlenik=odjava_komisione.id_zaposlenik " + " LEFT JOIN partners ON partners.id_partner=odjava_komisione.id_partner " + " LEFT JOIN grad ON grad.id_grad=partners.id_grad " + " WHERE broj ='" + broj_dokumenta + "'"; if (classSQL.remoteConnectionString == "") { classSQL.CeAdatpter(sql_liste_string).Fill(dSRlisteTekst, "DTlisteTekst"); } else { classSQL.NpgAdatpter(sql_liste_string.Replace("nvarchar", "varchar")).Fill(dSRlisteTekst, "DTlisteTekst"); } dSRlisteTekst.Tables[0].Rows[0].SetField("ukupno10", Math.Round(ukupno, 2).ToString("#0.00")); dSRlisteTekst.Tables[0].Rows[0].SetField("ukupno11", Math.Round(ukupno_vpc).ToString("#0.00")); dSRlisteTekst.Tables[0].Rows[0].SetField("ukupno12", Math.Round(ukupno_mpc).ToString("#0.00")); //dt.Rows[i].SetField("cijena8", vpc_ukp.ToString("#0.000")); }
private void LoadDocument() { string naziv_fakture = " podaci_tvrtka.naziv_fakture,"; string sql1 = SqlPodaciTvrtke.VratiSql("", naziv_fakture, ""); classSQL.CeAdatpter(sql1).Fill(dSRpodaciTvrtke, "DTRpodaciTvrtke"); if (ini.Read("POSTAVKE", "inventura_nabavna") != "") { nbc = ini.Read("POSTAVKE", "inventura_nabavna"); } string where_razlike = ""; if (Visak) { where_razlike = " AND (coalesce(inventura_stavke.kolicina_koja_je_bila,0)-coalesce(CAST(REPLACE(inventura_stavke.kolicina,',','.') as NUMERIC),0))<0 "; } else { where_razlike = " AND (coalesce(inventura_stavke.kolicina_koja_je_bila,0)-coalesce(CAST(REPLACE(inventura_stavke.kolicina,',','.') as NUMERIC),0))>0 "; } #region UZIMAM VRIJEDNOSTI IZ INVENTURE string sql_liste = "SELECT " + " roba_prodaja.sifra AS sifra," + " inventura_stavke.nbc as cijena1, " + " (inventura_stavke.cijena) as rabat1, " + " inventura_stavke.kolicina_koja_je_bila as cijena2" + " ," + " coalesce(CAST(REPLACE(inventura_stavke.kolicina,',','.') as NUMERIC),0) as cijena9 ," + " (inventura_stavke.cijena/(1 zbroj CAST(REPLACE(roba_prodaja.porez,',','.') AS numeric)/100)) as cijena8," + " roba.naziv," + " inventura_stavke.porez " + " FROM roba_prodaja " + " LEFT JOIN inventura_stavke ON roba_prodaja.sifra=inventura_stavke.sifra_robe AND inventura_stavke.broj_inventure='" + Broj + "' " + " LEFT JOIN roba ON roba_prodaja.sifra=roba.sifra " + " WHERE " + " roba_prodaja.id_skladiste='" + Skladiste + "' AND roba.oduzmi='DA' " + where_razlike + ";"; if (classSQL.remoteConnectionString == "") { classSQL.CeAdatpter(sql_liste).Fill(dSRliste, "DTliste"); } else { classSQL.NpgAdatpter(sql_liste).Fill(dSRliste, "DTliste"); } #endregion UZIMAM VRIJEDNOSTI IZ INVENTURE #region OVDJE UZIMAM INVENTURNE VIŠKOVE I MANJKOVE I SPRAMAM U DATASET ZA REPORT string query = @"SELECT COALESCE(SUM( (CAST(REPLACE(kolicina,',','.') AS NUMERIC)- kolicina_koja_je_bila)* nbc ),0) AS nbc, COALESCE(SUM( (CAST(REPLACE(kolicina,',','.') AS NUMERIC)- kolicina_koja_je_bila)* (cijena/(1+(CAST(REPLACE(porez,',','.') AS NUMERIC)/100))) ),0) AS vpc, COALESCE(SUM( (CAST(REPLACE(kolicina,',','.') AS NUMERIC)- kolicina_koja_je_bila)* cijena ),0) AS mpc FROM inventura_stavke WHERE broj_inventure='@broj' AND (CAST(REPLACE(kolicina,',','.') AS NUMERIC)-kolicina_koja_je_bila)<0;"; query = query.Replace("@broj", Broj).Replace("+", "zbroj"); DataTable DTinvManjak = classSQL.select(query, "inv").Tables[0]; query = @"SELECT COALESCE(SUM( (CAST(REPLACE(kolicina,',','.') AS NUMERIC)- kolicina_koja_je_bila)* nbc ),0) AS nbc, COALESCE(SUM( (CAST(REPLACE(kolicina,',','.') AS NUMERIC)- kolicina_koja_je_bila)* (cijena/(1+(CAST(REPLACE(porez,',','.') AS NUMERIC)/100))) ),0) AS vpc, COALESCE(SUM( (CAST(REPLACE(kolicina,',','.') AS NUMERIC)- kolicina_koja_je_bila)* cijena ),0) AS mpc FROM inventura_stavke WHERE broj_inventure='@broj' AND (CAST(REPLACE(kolicina,',','.') AS NUMERIC)-kolicina_koja_je_bila)>0;"; query = query.Replace("@broj", Broj).Replace("+", "zbroj"); DataTable DTinvVisak = classSQL.select(query, "inv").Tables[0]; DataRow ROW = listaUniverzalna.Tables[0].NewRow(); ROW["decimal1"] = DTinvManjak.Rows[0]["nbc"].ToString(); ROW["decimal2"] = DTinvManjak.Rows[0]["vpc"].ToString(); ROW["decimal3"] = DTinvManjak.Rows[0]["mpc"].ToString(); ROW["decimal4"] = DTinvVisak.Rows[0]["nbc"].ToString(); ROW["decimal5"] = DTinvVisak.Rows[0]["vpc"].ToString(); ROW["decimal6"] = DTinvVisak.Rows[0]["mpc"].ToString(); listaUniverzalna.Tables[0].Rows.Add(ROW); query = @"SELECT COALESCE(SUM(kolicina_koja_je_bila*nbc),0) AS skladiste, COALESCE(SUM(CAST(REPLACE(kolicina,',','.') AS NUMERIC)*nbc),0) AS stvarno, COALESCE((SUM((CAST(REPLACE(kolicina,',','.') AS NUMERIC)*nbc)-(kolicina_koja_je_bila*nbc))),0) AS razlika, COALESCE(SUM(kolicina_koja_je_bila*(cijena/(1+(CAST(REPLACE(porez,',','.') AS NUMERIC)/100)))),0) AS skladiste_vpc, COALESCE(SUM(CAST(REPLACE(kolicina,',','.') AS NUMERIC)*(cijena/(1+(CAST(REPLACE(porez,',','.') AS NUMERIC)/100)))),0) AS stvarno_vpc, COALESCE((SUM((CAST(REPLACE(kolicina,',','.') AS NUMERIC)*(cijena/(1+(CAST(REPLACE(porez,',','.') AS NUMERIC)/100))))-(kolicina_koja_je_bila*(cijena/(1+(CAST(REPLACE(porez,',','.') AS NUMERIC)/100)))))),0) AS razlika_vpc, COALESCE(SUM(kolicina_koja_je_bila*cijena),0) AS skladiste_mpc, COALESCE(SUM(CAST(REPLACE(kolicina,',','.') AS NUMERIC)*cijena),0) AS stvarno_mpc, COALESCE((SUM((CAST(REPLACE(kolicina,',','.') AS NUMERIC)*cijena)-(kolicina_koja_je_bila*cijena))),0) AS razlika_mpc FROM inventura_stavke WHERE broj_inventure='@broj';"; query = query.Replace("@broj", Broj).Replace("+", "zbroj"); DataTable DTinvSumirano = classSQL.select(query, "inv").Tables[0]; #endregion OVDJE UZIMAM INVENTURNE VIŠKOVE I MANJKOVE I SPRAMAM U DATASET ZA REPORT string year = ""; DataTable DT = classSQL.select("SELECT datum FROM inventura WHERE broj_inventure='" + Broj + "'", "inventura").Tables[0]; if (DT.Rows.Count > 0) { year = Convert.ToDateTime(DT.Rows[0]["datum"].ToString()).Year.ToString(); } string tbl3 = "Cijena"; if (nbc == "1") { tbl3 = "Nbc"; } decimal SumSkladiste = 0, SumKartice = 0, SumRazlika = 0, SumSkladisteVpc = 0, SumKarticeVpc = 0, SumRazlikaVpc = 0, SumSkladisteMpc = 0, SumKarticeMpc = 0, SumRazlikaMpc = 0; if (DTinvSumirano.Rows.Count > 0) { decimal.TryParse(DTinvSumirano.Rows[0]["skladiste"].ToString(), out SumSkladiste); decimal.TryParse(DTinvSumirano.Rows[0]["stvarno"].ToString(), out SumKartice); decimal.TryParse(DTinvSumirano.Rows[0]["razlika"].ToString(), out SumRazlika); decimal.TryParse(DTinvSumirano.Rows[0]["skladiste_vpc"].ToString(), out SumSkladisteVpc); decimal.TryParse(DTinvSumirano.Rows[0]["stvarno_vpc"].ToString(), out SumKarticeVpc); decimal.TryParse(DTinvSumirano.Rows[0]["razlika_vpc"].ToString(), out SumRazlikaVpc); decimal.TryParse(DTinvSumirano.Rows[0]["skladiste_mpc"].ToString(), out SumSkladisteMpc); decimal.TryParse(DTinvSumirano.Rows[0]["stvarno_mpc"].ToString(), out SumKarticeMpc); decimal.TryParse(DTinvSumirano.Rows[0]["razlika_mpc"].ToString(), out SumRazlikaMpc); } string sql_liste_string = "SELECT " + " 'Šifra ' AS tbl1," + " 'Naziv' AS tbl2," + " '" + tbl3 + "' AS tbl3," + " 'Kol.Kar' AS tbl4," + " 'Iznos.Kar' AS tbl5," + " 'Kol.inv' AS tbl6," + " 'Iznos inv' AS tbl7," + " 'Razlika' AS tbl8," + " 'Iznos' AS tbl9," + " '" + Math.Round(SumSkladisteVpc, 3).ToString("N2") + "' AS ukupno1," + " '" + Math.Round(SumKarticeVpc, 3).ToString("N2") + "' AS ukupno2," + " '" + Math.Round(SumRazlikaVpc, 3).ToString("N2") + "' AS ukupno3," + " '" + Math.Round(SumSkladiste, 3).ToString("N2") + "' AS ukupno4," + " '" + Math.Round(SumKartice, 3).ToString("N2") + "' AS ukupno5," + " '" + Math.Round(SumRazlika, 3).ToString("N2") + "' AS ukupno6," + " '" + Math.Round(SumSkladisteMpc, 3).ToString("N2") + "' AS ukupno7," + " '" + Math.Round(SumKarticeMpc, 3).ToString("N2") + "' AS ukupno8," + " '" + Math.Round(SumRazlikaMpc, 3).ToString("N2") + "' AS ukupno9," + " '" + Math.Round(SumSkladisteMpc - SumSkladisteVpc, 3).ToString("N2") + "' AS ukupno10," + " '" + Math.Round(SumKarticeMpc - SumKarticeVpc, 3).ToString("N2") + "' AS ukupno11," + " '" + Math.Round(SumRazlikaMpc - SumRazlikaVpc, 3).ToString("N2") + "' AS ukupno12," + " inventura.datum AS datum1," + " inventura.napomena AS komentar," + " 'Skladište: '+skladiste.skladiste AS skladiste," + " zaposlenici.ime + ' ' + zaposlenici.prezime AS string1," + " CAST ('INVENTURA ' AS nvarchar) + CAST (inventura.broj_inventure AS nvarchar) +'/'+ CAST (" + year + " AS nvarchar) AS naslov" + " FROM inventura " + " LEFT JOIN skladiste ON skladiste.id_skladiste=inventura.id_skladiste " + " LEFT JOIN zaposlenici ON zaposlenici.id_zaposlenik=inventura.id_zaposlenik " + " WHERE inventura.broj_inventure ='" + Broj + "'"; if (classSQL.remoteConnectionString == "") { classSQL.CeAdatpter(sql_liste_string).Fill(dSRlisteTekst, "DTlisteTekst"); } else { classSQL.NpgAdatpter(sql_liste_string.Replace("nvarchar", "varchar")).Fill(dSRlisteTekst, "DTlisteTekst"); } }
private void SetDS() { string naziv_fakture = " podaci_tvrtka.naziv_fakture,"; string sql1 = SqlPodaciTvrtke.VratiSql("", naziv_fakture, ""); if (classSQL.remoteConnectionString == "") { classSQL.CeAdatpter(sql1).Fill(dSRpodaciTvrtke, "DTRpodaciTvrtke"); } else { classSQL.NpgAdatpter(sql1).Fill(dSRpodaciTvrtke, "DTRpodaciTvrtke"); } string sql2 = "SELECT " + "racuni.broj_racuna AS br_racuna," + "racuni.id_kasa AS blagajna," + "racuni.datum_racuna AS datum," + "racuni.ukupno AS ukupno," + "racuni.ukupno_gotovina AS gotovina," + "racuni.ukupno_kartice AS kartice," + "zaposlenici.ime + ' ' + zaposlenici.prezime AS blagajnik," + "'PROMET KASE PO RAČUNIMA' AS naslov " + " FROM racuni LEFT JOIN zaposlenici ON zaposlenici.id_zaposlenik=racuni.id_blagajnik" + " ORDER BY racuni.datum_racuna"; if (classSQL.remoteConnectionString == "") { classSQL.CeAdatpter(sql2).Fill(dSKasaPromet, "DTkasaPromet"); } else { classSQL.NpgAdatpter(sql2).Fill(dSKasaPromet, "DTkasaPromet"); } DataTable dt = dSKasaPromet.Tables[0]; double uk, got, kart, povrat; for (int i = 0; i < dt.Rows.Count; i++) { uk = Convert.ToDouble(dt.Rows[i]["ukupno"].ToString()); got = Convert.ToDouble(dt.Rows[i]["gotovina"].ToString()); kart = Convert.ToDouble(dt.Rows[i]["kartice"].ToString()); povrat = uk - got - kart; dt.Rows[i].SetField("povrat", povrat); } // string sql3 = "SELECT "+ // " racun_stavke.mpc," + // " racun_stavke.vpc," + // " racun_stavke.rabat," + // " racun_stavke.kolicina," + // " racun_stavke.porez," + // " racuni.gotovina," + // " racuni.kartice" + // " FROM racun_stavke LEFT JOIN racuni ON racuni.broj_racuna=racun_stavke.broj_racuna "+ // " WHERE racuni.datum_racuna >= '" + od_datuma + "' AND racuni.datum_racuna <='" + do_datuma + "'"; // DataTable DTrc = classSQL.select(sql3, "racun_stavke").Tables[0]; // double kolicina_stavka = 0; // double rabat_stavka = 0; // double vpc_stavka = 0; // double porez_stavka = 0; // double mpc_stavka = 0; // double sve_ukupno=0; // double rabat = 0; // double osnovica = 0; // double pdv = 0; // double sve_ukupno1 = 0; // double rabat1 = 0; // double osnovica1 = 0; // double pdv1 = 0; // for (int i = 0; i < DTrc.Rows.Count; i++) // { // kolicina_stavka = Convert.ToDouble(DTrc.Rows[i]["kolicina"].ToString()); // rabat_stavka = Convert.ToDouble(DTrc.Rows[i]["rabat"].ToString()); // vpc_stavka = Convert.ToDouble(DTrc.Rows[i]["vpc"].ToString()); // porez_stavka = Convert.ToDouble(DTrc.Rows[i]["porez"].ToString()); // mpc_stavka = ((vpc_stavka * porez_stavka / 100) + vpc_stavka)*kolicina_stavka; // //izracun gotovina // sve_ukupno = (mpc_stavka - (mpc_stavka * rabat_stavka / 100)) + sve_ukupno; // rabat = (mpc_stavka * rabat_stavka / 100) + rabat; // osnovica = ((mpc_stavka - (mpc_stavka * rabat_stavka / 100)) / (1 + Convert.ToDouble(porez_stavka)/100) + osnovica; // pdv = (mpc_stavka - (mpc_stavka * rabat_stavka / 100)) - ((mpc_stavka - (mpc_stavka * rabat_stavka / 100)) / (1 + Convert.ToDouble(porez_stavka)/100); // //izracun kartica // sve_ukupno1 = (mpc_stavka - (mpc_stavka * rabat_stavka / 100)) + sve_ukupno; // rabat1 = (mpc_stavka * rabat_stavka / 100) + rabat; // osnovica1 = ((mpc_stavka - (mpc_stavka * rabat_stavka / 100)) / (1 + Convert.ToDouble(porez_stavka)/100) + osnovica; // pdv1 = (mpc_stavka - (mpc_stavka * rabat_stavka / 100)) - ((mpc_stavka - (mpc_stavka * rabat_stavka / 100)) / (1 + Convert.ToDouble(porez_stavka)/100); // } }
private void frmListe_Load(object sender, EventArgs e) { var dokumenti = new Dictionary <string, string> { // {" Svi dokumenti","svi"}, { "Računi", "maloprodaja" }, { "Kalkulacija", "kalkulacija" }, { "Izdatnica", "izdatnica" }, { "Primka", "primka" }, { "Fakture", "fakture" }, { "Međuskladišnica iz skl", "iz_skl" }, { "Međuskladišnica u skl", "u_skl" }, { "Otpremnica", "otpremnica" }, { "Otpis robe", "otpis_robe" }, { "Povrat robe", "povrat_robe" }, { "Promjena cijene", "promjena_cijene" }, { "Inventura", "inventura" }, { "Pocetno", "pocetno" }, { "Radni nalog", "radni_nalog_stavke" }, { "Normativi RN", "radni_nalog_stavke_normativi" }, { "Radni nalog kroz uslugu", "radni_nalog_skida_normative_prema_uslugi" } //{"",""}, }.OrderBy(x => x.Key).ToList(); //dokumenti.Add({"Svi dokumenti", "svi"}); dokumenti.Insert(0, new KeyValuePair <string, string>("Svi dokumenti", "svi")); cmbDokumenti.DisplayMember = "Key"; cmbDokumenti.ValueMember = "Value"; cmbDokumenti.DataSource = dokumenti; //cmbDokumenti.DisplayMember = dokumenti.TValue; tdOdDatuma.Value = new DateTime(Util.Korisno.GodinaKojaSeKoristiUbazi, 01, 01, 00, 00, 00); if (Util.Korisno.GodinaKojaSeKoristiUbazi < DateTime.Now.Year) { tdDoDatuma.Value = new DateTime(Util.Korisno.GodinaKojaSeKoristiUbazi, 12, 31, 23, 59, 59); } else if (Util.Korisno.GodinaKojaSeKoristiUbazi == DateTime.Now.Year) { tdDoDatuma.Value = new DateTime(Util.Korisno.GodinaKojaSeKoristiUbazi, DateTime.Now.Month, DateTime.Now.Day, 23, 59, 59); } DataTable DTskl = classSQL.select("SELECT id_skladiste,skladiste FROM skladiste ORDER BY skladiste ASC", "skladiste").Tables[0]; DataRow r = DTskl.NewRow(); //r[0] = "0"; //r[1] = "Sva skladišta"; //DTskl.Rows.Add(r); //cbSkladiste.DataSource = DTskl; //cbSkladiste.DisplayMember = "skladiste"; //cbSkladiste.ValueMember = "id_skladiste"; //cbSkladiste.SelectedValue = "0"; clbSkladiste.DataSource = DTskl; clbSkladiste.DisplayMember = "skladiste"; clbSkladiste.ValueMember = "id_skladiste"; clbSkladiste.SelectedValue = "0"; string sql1 = SqlPodaciTvrtke.VratiSql("", "", ""); classSQL.CeAdatpter(sql1).Fill(dSRpodaciTvrtke, "DTRpodaciTvrtke"); dSRpodaciTvrtke.Tables[0].Rows[0]["naziv_fakture"] = ""; this.reportViewer1.RefreshReport(); //PROVJERAVAM NAVEDENE TABLICE JE DO 2015god DESILO SE DA NEMA VRIJEDNOSTI U KOLONAMA, 2016god MOŽE SE MAKNUTI string query = @"UPDATE inventura_stavke SET porez=(SELECT porez FROM roba WHERE roba.sifra=inventura_stavke.sifra_robe LIMIT 1) WHERE porez='' OR porez IS NULL; UPDATE promjena_cijene_stavke SET kolicina='1' WHERE kolicina='' OR kolicina IS NULL;" ; classSQL.update(query); }
private void meduskladisnica() { string sql1 = SqlPodaciTvrtke.VratiSql("", "", ""); classSQL.CeAdatpter(sql1).Fill(dSRpodaciTvrtke, "DTRpodaciTvrtke"); string sql_liste = "SELECT " + " meduskladisnica_stavke.sifra," + " roba.naziv," + " meduskladisnica_stavke.kolicina AS cijena1," + " roba.jm AS jmj," + " meduskladisnica_stavke.vpc AS cijena3 ," + " meduskladisnica_stavke.mpc AS cijena5," + " meduskladisnica_stavke.pdv+'% / '+ROUND((CAST(meduskladisnica_stavke.vpc AS NUMERIC)*CAST(REPLACE(meduskladisnica_stavke.kolicina,',','.') AS NUMERIC))*(CAST(REPLACE(meduskladisnica_stavke.pdv,',','.') AS NUMERIC))/100,2) AS cijena4," + " ROUND((CAST(meduskladisnica_stavke.vpc AS NUMERIC)*CAST(REPLACE(meduskladisnica_stavke.kolicina,',','.') AS NUMERIC))*(CAST(REPLACE(meduskladisnica_stavke.pdv,',','.') AS NUMERIC))/100,2) AS cijena9," + " CAST(meduskladisnica_stavke.mpc AS numeric) * CAST(REPLACE(meduskladisnica_stavke.kolicina,',','.') AS numeric) AS cijena6 " + " FROM meduskladisnica_stavke" + " LEFT JOIN roba ON roba.sifra=meduskladisnica_stavke.sifra WHERE broj='" + broj_dokumenta + "' AND iz_skladista='" + skladiste + "'"; if (classSQL.remoteConnectionString == "") { classSQL.CeAdatpter(sql_liste).Fill(dSRliste, "DTliste"); } else { classSQL.NpgAdatpter(sql_liste).Fill(dSRliste, "DTliste"); } string year = ""; DataTable DT = classSQL.select("SELECT datum FROM meduskladisnica WHERE broj='" + broj_dokumenta + "'", "meduskladisnica").Tables[0]; if (DT.Rows.Count > 0) { year = Convert.ToDateTime(DT.Rows[0]["datum"].ToString()).Year.ToString(); } string sql_liste_string = "SELECT " + " 'Šifra' AS tbl1," + " 'Naziv' AS tbl2,"; if (Class.Postavke.proizvodnjaMeduskladisnicaPC) { sql_liste_string += " 'Kol' AS tbl4,"; } else { sql_liste_string += " 'Količina' AS tbl4,"; } sql_liste_string += " 'JMJ' AS tbl3," + " 'VPC' AS tbl5," + " 'MPC' AS tbl7," + " 'PDV / Iznos PDV-a' AS tbl6," + " 'Iznos' AS tbl8," + " '0' AS string6," + " meduskladisnica.datum AS datum1," + " meduskladisnica.napomena AS komentar," + " 'Iz skladišta: '+skladiste.skladiste + ' u skladište: ' + T2.skladiste AS skladiste," + " zaposlenici.ime + ' ' + zaposlenici.prezime AS string1," + " CAST ('MEĐUSKLADIŠNICA ' AS nvarchar) + CAST (meduskladisnica.broj AS nvarchar) +'/'+ CAST (" + year + " AS nvarchar) AS naslov" + " FROM meduskladisnica " + " LEFT JOIN skladiste ON skladiste.id_skladiste=meduskladisnica.id_skladiste_od " + " LEFT JOIN skladiste T2 ON T2.id_skladiste = meduskladisnica.id_skladiste_do " + " LEFT JOIN zaposlenici ON zaposlenici.id_zaposlenik=meduskladisnica.id_izradio " + " WHERE meduskladisnica.broj ='" + broj_dokumenta + "' AND meduskladisnica.id_skladiste_od='" + skladiste + "'"; if (classSQL.remoteConnectionString == "") { classSQL.CeAdatpter(sql_liste_string).Fill(dSRlisteTekst, "DTlisteTekst"); } else { classSQL.NpgAdatpter(sql_liste_string.Replace("nvarchar", "varchar")).Fill(dSRlisteTekst, "DTlisteTekst"); } }
private void RobuPreuzeo() { string sql1 = SqlPodaciTvrtke.VratiSql("", "", ""); classSQL.CeAdatpter(sql1).Fill(dSRpodaciTvrtke, "DTRpodaciTvrtke"); string filter = ""; if (sifra_partnera != "") { filter += " AND id_fakturirati='" + sifra_partnera.ToString() + "' "; } if (sifra_preuzeo != "") { filter += " AND id_odrediste='" + sifra_preuzeo.ToString() + "' "; } filter += " AND fakture.date>='" + datumOD.ToString("yyyy-MM-dd H:mm:ss") + "' AND fakture.date<='" + datumDO.ToString("yyyy-MM-dd H:mm:ss") + "' "; if (sort == "F") { sort = "ORDER BY CAST(fakture.broj_fakture AS INT) ASC"; } else { sort = "ORDER BY p.ime_tvrtke ASC ,p.ime ASC"; } string sql = "SELECT p.ime_tvrtke AS naziv2,p.ime,p.prezime,fakture.ukupno_osnovica AS cijena1," + " fakture.ukupno_porez AS cijena2,fakture.ukupno AS cijena3, 'Faktura br: '+fakture.broj_fakture AS jmj, pf.ime_tvrtke AS naziv FROM fakture " + " LEFT JOIN partners p ON p.id_partner=fakture.id_odrediste " + " LEFT JOIN partners pf ON pf.id_partner=fakture.id_fakturirati " + " WHERE fakture.broj_fakture is not null " + filter + sort; classSQL.NpgAdatpter(sql).Fill(dSRliste, "DTliste"); foreach (DataRow row in dSRliste.Tables[0].Rows) { if (row["naziv2"].ToString() == "") { row["naziv2"] = row["ime"] + " " + row["prezime"]; } } //------------------------------------OVAJ DIO RACUNA RABAT------------------------------------------------------------------- DataSet DS = new DataSet(); if (classSQL.remoteConnectionString == "") { classSQL.CeAdatpter("").Fill(DS, "DTliste"); } else { classSQL.NpgAdatpter("").Fill(DS, "DTliste"); } string sql_liste_string = "SELECT 'Preuzeta roba za partnera: " + ime_partnera + "' AS naslov" + ",'Od datuma: " + datumOD.ToString("yyyy-MM-dd H:mm:ss") + " do datuma: " + datumDO.ToString("yyyy-MM-dd H:mm:ss") + " ' AS string1"; if (classSQL.remoteConnectionString == "") { classSQL.CeAdatpter(sql_liste_string).Fill(dSRlisteTekst, "DTlisteTekst"); } else { classSQL.NpgAdatpter(sql_liste_string).Fill(dSRlisteTekst, "DTlisteTekst"); } }
private void Normativ() { string sql1 = SqlPodaciTvrtke.VratiSql("", "", ""); classSQL.CeAdatpter(sql1).Fill(dSRpodaciTvrtke, "DTRpodaciTvrtke"); string sql_liste = "SELECT " + " normativi_stavke.sifra_robe as sifra," + " roba.naziv," + " normativi_stavke.kolicina AS cijena1," + " roba.jm AS jmj," + " roba_prodaja.vpc AS cijena3 ,"; if (Class.Postavke.proizvodnja_normativ_pc) { sql_liste += " roba_prodaja.proizvodacka_cijena AS cijena5,"; } else { sql_liste += " (COALESCE(CAST(roba_prodaja.vpc AS NUMERIC),0)*(COALESCE(CAST(replace(roba_prodaja.porez, ',','.') AS NUMERIC),0) zbroj COALESCE(CAST(roba_prodaja.porez_potrosnja AS NUMERIC),0))/100)zbrojCOALESCE(CAST(roba_prodaja.vpc AS NUMERIC),0) AS cijena5,"; } sql_liste += " skladiste.skladiste AS cijena4, "; if (Class.Postavke.proizvodnja_normativ_pc) { sql_liste += " roba_prodaja.proizvodacka_cijena * REPLACE(normativi_stavke.kolicina,',','.')::numeric AS cijena6 "; } else { sql_liste += " (COALESCE(CAST(roba_prodaja.vpc AS NUMERIC),0)*(COALESCE(CAST(replace(roba_prodaja.porez, ',','.') AS NUMERIC),0)zbrojCOALESCE(CAST(roba_prodaja.porez_potrosnja AS NUMERIC),0))/100)zbrojCOALESCE(CAST(roba_prodaja.vpc AS NUMERIC),0)*COALESCE(CAST(REPLACE(normativi_stavke.kolicina,',','.') AS NUMERIC),0) AS cijena6 "; } sql_liste += " FROM normativi_stavke" + " LEFT JOIN roba ON roba.sifra=normativi_stavke.sifra_robe" + " LEFT JOIN skladiste ON skladiste.id_skladiste=normativi_stavke.id_skladiste" + " LEFT JOIN roba_prodaja ON roba_prodaja.sifra=normativi_stavke.sifra_robe AND roba_prodaja.id_skladiste=normativi_stavke.id_skladiste " + " WHERE broj_normativa='" + broj_dokumenta + "'"; if (classSQL.remoteConnectionString == "") { classSQL.CeAdatpter(sql_liste).Fill(dSRliste, "DTliste"); } else { classSQL.NpgAdatpter(sql_liste).Fill(dSRliste, "DTliste"); } string year = ""; DataTable DT = classSQL.select("SELECT godina_normativa FROM normativi WHERE broj_normativa='" + broj_dokumenta + "'", "normativi").Tables[0]; if (DT.Rows.Count > 0) { year = DT.Rows[0]["godina_normativa"].ToString(); } string sql_liste_string = "SELECT " + " 'Šifra' AS tbl1," + " 'Naziv' AS tbl2," + " 'Količina' AS tbl4," + " 'JMJ' AS tbl3," + " 'VPC' AS tbl5," + (Class.Postavke.proizvodnja_normativ_pc ? " 'PC' AS tbl7," : " 'MPC' AS tbl7,") + " 'Skladište' AS tbl6," + " 'Iznos' AS tbl8," + //" normativi.godina_normativa AS datum1," + " normativi.komentar+'\r\n\r\nŠIFRA OVOG NORMATIVA JE: '+normativi.sifra_artikla+'\r\nNAZIV ARTIKLA: '+ roba.naziv AS komentar," + " zaposlenici.ime + ' ' + zaposlenici.prezime AS string1," + " CAST ('Normativ ' AS nvarchar) + CAST (normativi.broj_normativa AS nvarchar) +'/'+ CAST (" + year + " AS nvarchar) AS naslov" + " FROM normativi " + " LEFT JOIN zaposlenici ON zaposlenici.id_zaposlenik=normativi.id_zaposlenik " + " LEFT JOIN roba ON roba.sifra=normativi.sifra_artikla " + " WHERE normativi.broj_normativa ='" + broj_dokumenta + "'"; if (classSQL.remoteConnectionString == "") { classSQL.CeAdatpter(sql_liste_string).Fill(dSRlisteTekst, "DTlisteTekst"); } else { classSQL.NpgAdatpter(sql_liste_string.Replace("nvarchar", "varchar")).Fill(dSRlisteTekst, "DTlisteTekst"); } }
private void PrometKase() { string sql1 = SqlPodaciTvrtke.VratiSql("", "", ""); classSQL.CeAdatpter(sql1).Fill(dSRpodaciTvrtke, "DTRpodaciTvrtke"); string WHERE = "WHERE ", whereAvans = "WHERE "; string _ducan = "SVI"; string _zaposlenik = "SVI"; string _skladiste = "SVE"; string _kasa = "SVE"; if (blagajnik != null) { WHERE += "racuni.id_blagajnik='" + blagajnik + "' AND "; whereAvans += "a.id_zaposlenik_izradio = '" + blagajnik + "' AND "; try { _zaposlenik = classSQL.select("SELECT ime + ' ' + prezime FROM zaposlenici WHERE id_zaposlenik='" + blagajnik + "'", "zaposlenici").Tables[0].Rows[0][0].ToString(); } catch (Exception) { } } if (ducan != null) { WHERE += "racuni.id_ducan='" + ducan + "' AND "; try { _ducan = classSQL.select("SELECT ime_ducana FROM ducan WHERE id_ducan='" + ducan + "'", "ducan").Tables[0].Rows[0][0].ToString(); } catch (Exception) { } } if (kasa != null) { WHERE += "racuni.id_kasa='" + kasa + "' AND "; try { _kasa = classSQL.select("SELECT ime_blagajne FROM blagajna WHERE id_blagajna='" + kasa + "'", "kasa").Tables[0].Rows[0][0].ToString(); } catch (Exception) { } } WHERE += "racuni.datum_racuna >='" + datumOD.ToString("yyyy-MM-dd HH:mm:ss") + "' AND racuni.datum_racuna <= '" + datumDO.ToString("yyyy-MM-dd HH:mm:ss") + "' "; whereAvans += "a.id_nacin_placanja in (1,2) and a.dat_knj >= '" + datumOD.ToString("yyyy-MM-dd HH:mm:ss") + "' AND a.dat_knj <= '" + datumDO.ToString("yyyy-MM-dd HH:mm:ss") + "' "; // string avansi = ""; // if (Class.Postavke.uzmi_avanse_u_promet_kase_POS) // { // avansi = string.Format(@"union all //select '-1' as sifra_robe, a.ukupno, case when length(a.artikl) > 0 then a.artikl else a.opis end as naziv, //a.osnovica_var as vpc, a.ukupno::money as mpc, replace(p.iznos::character varying(5), '.',',') as porez, //1 as kolicna, '0' as rabat, case when a.id_nacin_placanja = 1 then 'G' else case when a.id_nacin_placanja = 2 then 'K' else case when a.id_nacin_placanja = 3 then 'T' else 'O' end end end as nacin_placanja, //0 as povratna_naknada, ukupno::money as cijena //from avansi as a //left join porezi as p on a.id_pdv = p.id_porez //where a.id_nacin_placanja in (1,2) and a.dat_knj >= '{0}' AND a.dat_knj <= '{1}' //{2}{3}", // datumOD.ToString("yyyy-MM-dd HH:mm:ss"), // datumDO.ToString("yyyy-MM-dd HH:mm:ss"), // blagA, // dobA); // } string sql_liste = @"SELECT SUM(ukupno) AS [cijena1], SUM(ukupno_gotovina-(ukupno_karticezbrojukupno_gotovinazbrojukupno_bon-ukupno)) AS [cijena2], SUM(ukupno_kartice) AS [cijena3], sum(ukupno_bon) as [cijena4] FROM racuni " + WHERE; if (Class.Postavke.uzmi_avanse_u_promet_kase_POS) { sql_liste = string.Format(@"select sum(x.cijena1) as cijena1, sum(x.cijena2) as cijena2, sum(x.cijena3) as cijena3, sum(x.cijena4) as cijena4 from ( SELECT SUM(ukupno)::numeric AS [cijena1], SUM(ukupno_gotovina-(ukupno_karticezbrojukupno_gotovinazbrojukupno_bon-ukupno))::numeric AS [cijena2], SUM(ukupno_kartice)::numeric AS [cijena3], sum(ukupno_bon)::numeric as [cijena4] FROM racuni {0} union all select sum(a.ukupno) as [cijena1], case when a.id_nacin_placanja = 1 then sum(a.ukupno) else 0 end as [cijena2], case when a.id_nacin_placanja = 2 then sum(a.ukupno) else 0 end as [cijena3], case when a.id_nacin_placanja = 3 then 0 else 0 end as [cijena4] from avansi as a {1} group by a.id_nacin_placanja ) x" , WHERE, whereAvans); } if (classSQL.remoteConnectionString == "") { classSQL.CeAdatpter(sql_liste).Fill(dSRliste, "DTliste"); } else { classSQL.NpgAdatpter(sql_liste).Fill(dSRliste, "DTliste"); } //------------------------------------OVAJ DIO RACUNA RABAT------------------------------------------------------------------- DataSet DS = new DataSet(); string sql_liste1 = "SELECT " + "racun_stavke.sifra_robe," + "racun_stavke.mpc," + "racun_stavke.rabat," + "racun_stavke.kolicina" + " FROM racun_stavke " + " LEFT JOIN racuni ON racun_stavke.broj_racuna=racuni.broj_racuna AND racuni.id_ducan=racun_stavke.id_ducan AND racuni.id_kasa=racun_stavke.id_kasa " + WHERE + ""; if (classSQL.remoteConnectionString == "") { classSQL.CeAdatpter(sql_liste1).Fill(DS, "DTliste"); } else { classSQL.NpgAdatpter(sql_liste1).Fill(DS, "DTliste"); } decimal mpc = 0; decimal rabat = 0; decimal kolicina = 0; decimal rabat_iznos = 0; for (int i = 0; i < DS.Tables[0].Rows.Count; i++) { mpc = Convert.ToDecimal(DS.Tables[0].Rows[i]["mpc"].ToString()); rabat = Convert.ToDecimal(DS.Tables[0].Rows[i]["rabat"].ToString()); kolicina = Convert.ToDecimal(DS.Tables[0].Rows[i]["kolicina"].ToString()); rabat_iznos += (mpc * rabat / 100) * kolicina; if (DS.Tables[0].Rows[i]["sifra_robe"].ToString() == "!popustABS") { rabat_iznos -= Convert.ToDecimal(DS.Tables[0].Rows[i]["mpc"].ToString()) * kolicina; } } //------------------------------------OVAJ DIO RACUNA RABAT----------------kraj-------------------------------------- string sql_liste_string = "SELECT " + " 'Način plaćanja ' AS tbl1," + " 'Popust ' AS tbl2," + " 'Iznos ' AS tbl3," + " 'NOVČANICE ' AS string1," + " 'KARTICE ' AS string2," + " 'BONOVI ' AS string9," + " 'Dućan: " + _ducan + "' AS string3," + " 'Kasa: " + _kasa + "' AS string4," + " 'Skladište: " + _skladiste + "' AS string5," + " 'Blagajnik: " + _zaposlenik + "' AS string6," + " 'PROMET KASE PO NAČINIMA PLAĆANJA ' AS naslov," + " 'Rabat ukupno: " + Math.Round(rabat_iznos, 2).ToString("#0.00") + "' AS string3," + " 'Za razdoblje: " + datumOD + " - " + datumDO + "' AS godina" + ""; if (classSQL.remoteConnectionString == "") { classSQL.CeAdatpter(sql_liste_string).Fill(dSRlisteTekst, "DTlisteTekst"); } else { classSQL.NpgAdatpter(sql_liste_string).Fill(dSRlisteTekst, "DTlisteTekst"); } }
private void PrometPoRobiBezSkladista() { string sql1 = SqlPodaciTvrtke.VratiSql("", "", ""); classSQL.CeAdatpter(sql1).Fill(dSRpodaciTvrtke, "DTRpodaciTvrtke"); string skl = ""; if (skladiste != null) { skl = " AND racun_stavke.id_skladiste='" + skladiste + "'"; } string duc = ""; if (ducan != null) { duc = " AND racuni.id_ducan='" + ducan + "'"; } string blag = ""; if (blagajnik != null) { blag = " AND racuni.id_blagajnik='" + blagajnik + "'"; } string art = ""; if (artikl != null) { art = " AND racun_stavke.sifra_robe='" + artikl + "'"; } string Fskl = ""; if (skladiste != null) { Fskl = " AND faktura_stavke.id_skladiste='" + skladiste + "'"; } string Fblag = ""; if (blagajnik != null) { Fblag = " AND fakture.id_zaposlenik='" + blagajnik + "'"; } string Fart = ""; if (artikl != null) { Fart = " AND faktura_stavke.sifra='" + artikl + "'"; } string sql_liste = "SELECT " + " racun_stavke.sifra_robe AS sifra," + " roba.naziv AS naziv ," + " CAST(REPLACE(racun_stavke.kolicina,',','.') AS NUMERIC) AS cijena1," + " 'Račun' AS jmj," + " roba_prodaja.kolicina AS cijena3 ," + " racun_stavke.broj_racuna AS cijena5 ," + " racun_stavke.vpc AS cijena6 ," + //" (CAST(racun_stavke.vpc AS NUMERIC)*(CAST(REPLACE(racun_stavke.porez,',','.') AS NUMERIC)zbrojCAST(REPLACE(racun_stavke.porez_potrosnja,',','.') AS NUMERIC))/100)zbrojCAST(racun_stavke.vpc AS NUMERIC) AS cijena5," + " skladiste.skladiste AS cijena4 " + //" (CAST(racun_stavke.vpc AS NUMERIC)*(CAST(REPLACE(racun_stavke.porez,',','.') AS NUMERIC)zbrojCAST(REPLACE(racun_stavke.porez_potrosnja,',','.') AS NUMERIC))/100)zbrojCAST(racun_stavke.vpc AS NUMERIC)*CAST(REPLACE(racun_stavke.kolicina,',','.') AS NUMERIC) AS cijena6 " + " FROM racun_stavke" + " LEFT JOIN roba ON roba.sifra=racun_stavke.sifra_robe" + " LEFT JOIN skladiste ON skladiste.id_skladiste=racun_stavke.id_skladiste" + " LEFT JOIN racuni ON racuni.broj_racuna=racun_stavke.broj_racuna AND racuni.id_ducan=racun_stavke.id_ducan AND racuni.id_kasa=racun_stavke.id_kasa" + " LEFT JOIN roba_prodaja ON roba_prodaja.sifra=racun_stavke.sifra_robe AND roba_prodaja.id_skladiste=racun_stavke.id_skladiste " + " WHERE racuni.datum_racuna>'" + datumOD + "' AND racuni.datum_racuna<'" + datumDO + "'" + " " + skl + blag + duc + art + ""; if (classSQL.remoteConnectionString == "") { classSQL.CeAdatpter(sql_liste).Fill(dSRliste, "DTliste"); } else { classSQL.NpgAdatpter(sql_liste).Fill(dSRliste, "DTliste"); } string sql_fak = "SELECT " + " faktura_stavke.sifra AS sifra," + " roba.naziv AS naziv ," + " CAST(REPLACE(faktura_stavke.kolicina,',','.') AS NUMERIC) AS cijena1," + " 'Faktura' AS jmj," + " roba_prodaja.kolicina AS cijena3 ," + " faktura_stavke.broj_fakture AS cijena5 ," + " faktura_stavke.vpc AS cijena6 ," + //" (CAST(faktura_stavke.vpc AS NUMERIC)*(CAST(REPLACE(faktura_stavke.porez,',','.') AS NUMERIC)zbrojCAST(REPLACE(faktura_stavke.porez_potrosnja,',','.') AS NUMERIC))/100)zbrojCAST(faktura_stavke.vpc AS NUMERIC) AS cijena5," + " skladiste.skladiste AS cijena4 " + //" (CAST(faktura_stavke.vpc AS NUMERIC)*(CAST(REPLACE(faktura_stavke.porez,',','.') AS NUMERIC)zbrojCAST(REPLACE(faktura_stavke.porez_potrosnja,',','.') AS NUMERIC))/100)zbrojCAST(faktura_stavke.vpc AS NUMERIC)*CAST(REPLACE(faktura_stavke.kolicina,',','.') AS NUMERIC) AS cijena6 " + " FROM faktura_stavke" + " LEFT JOIN roba ON roba.sifra=faktura_stavke.sifra" + " LEFT JOIN skladiste ON skladiste.id_skladiste=faktura_stavke.id_skladiste" + " LEFT JOIN fakture ON fakture.broj_fakture=faktura_stavke.broj_fakture" + " LEFT JOIN roba_prodaja ON roba_prodaja.sifra=faktura_stavke.sifra AND roba_prodaja.id_skladiste=faktura_stavke.id_skladiste " + " WHERE fakture.date>'" + datumOD + "' AND fakture.date<'" + datumDO + "'" + " " + Fskl + Fblag + Fart; if (classSQL.remoteConnectionString == "") { classSQL.CeAdatpter(sql_fak).Fill(dSRliste, "DTliste"); } else { classSQL.NpgAdatpter(sql_fak).Fill(dSRliste, "DTliste"); } string year = ""; //DataTable DT = classSQL.select("SELECT godina_normativa FROM normativi WHERE broj_normativa='" + broj_dokumenta + "'", "normativi").Tables[0]; //if (DT.Rows.Count > 0) // { //year = DT.Rows[0]["godina_normativa"].ToString(); // } string s = ""; if (skladiste != null) { s = "\r\nSkladište: " + skladiste; } string b = ""; if (blagajnik != null) { b = "\r\nBlagajnik: " + blagajnik; } string a = ""; if (artikl != null) { a = "\r\nArtikl: " + artikl; } string sql_liste_string = "SELECT " + " 'Šifra' AS tbl1," + " 'Naziv' AS tbl2," + " 'Dokument' AS tbl3," + " 'Količina' AS tbl4," + " 'Stanje SK' AS tbl5," + " 'Skladište' AS tbl6," + " 'BR.Dok.' AS tbl7," + " 'VPC' AS tbl8," + " 'ne' AS string6," + " '" + s + "' AS skladiste," + " '" + DateTime.Now.ToString("yyyy-MM-dd H:mm:ss") + "' AS datum1," + " CAST ('Promet po robi ' AS nvarchar) AS naslov," + " '\r\nOd datuma:" + datumOD + " - " + datumDO + s + b + a + "' AS komentar" + ""; if (classSQL.remoteConnectionString == "") { classSQL.CeAdatpter(sql_liste_string).Fill(dSRlisteTekst, "DTlisteTekst"); } else { classSQL.NpgAdatpter(sql_liste_string.Replace("nvarchar", "varchar")).Fill(dSRlisteTekst, "DTlisteTekst"); } }
private void otpis() { string naziv_fakture = " podaci_tvrtka.naziv_fakture,"; string sql1 = SqlPodaciTvrtke.VratiSql("", naziv_fakture, ""); classSQL.CeAdatpter(sql1).Fill(dSRpodaciTvrtke, "DTRpodaciTvrtke"); string sql_liste = "SELECT " + " CONCAT(otpis_robe_stavke.sifra, ' ',roba.naziv) AS naziv," + " roba.jm AS naziv2," + " otpis_robe_stavke.kolicina AS kolicina," + " (otpis_robe_stavke.vpc*replace(otpis_robe_stavke.kolicina, ',','.')::numeric) AS cijena7," + " otpis_robe_stavke.pdv AS cijena9," + " otpis_robe_stavke.rabat AS cijena1 ," + " otpis_robe_stavke.nbc AS cijena3," + " (((CAST(otpis_robe_stavke.vpc AS numeric) * CAST(otpis_robe_stavke.pdv AS numeric))/100) zbroj CAST(otpis_robe_stavke.vpc AS numeric))* CAST(otpis_robe_stavke.kolicina AS numeric) AS cijena6," + " CAST(otpis_robe_stavke.nbc AS numeric) * replace(otpis_robe_stavke.kolicina, ',','.')::numeric AS cijena2" + " FROM otpis_robe_stavke" + " LEFT JOIN roba ON roba.sifra=otpis_robe_stavke.sifra WHERE broj='" + broj_dokumenta + "'"; if (classSQL.remoteConnectionString == "") { classSQL.CeAdatpter(sql_liste).Fill(dSRliste, "DTliste"); } else { classSQL.NpgAdatpter(sql_liste).Fill(dSRliste, "DTliste"); } string year = ""; DataTable DT = classSQL.select("SELECT datum FROM otpis_robe WHERE broj='" + broj_dokumenta + "'", "otpis_robe").Tables[0]; if (DT.Rows.Count > 0) { year = Convert.ToDateTime(DT.Rows[0]["datum"].ToString()).Year.ToString(); } string sql_liste_string = "SELECT " + " 'Količina' AS tbl1," + " 'Jmj' AS tbl2," + " 'Nab. cijena' AS tbl3," + " 'Rabat izn.' AS tbl4," + " 'Nab. iznos' AS tbl5," + " 'tb' AS tbl6," + " 'Mpc uk.' AS tbl7," + " 'rbr.' AS tbl8," + " 'Šifra i naziv' AS tbl9, " + " otpis_robe.napomena AS komentar," + " CAST (otpis_robe.broj AS nvarchar) +'/'+ CAST (" + year + " AS nvarchar) AS naslov" + " FROM otpis_robe " + " WHERE broj ='" + broj_dokumenta + "'"; if (classSQL.remoteConnectionString == "") { classSQL.CeAdatpter(sql_liste_string).Fill(dSRlisteTekst, "DTlisteTekst"); } else { classSQL.NpgAdatpter(sql_liste_string.Replace("nvarchar", "varchar")).Fill(dSRlisteTekst, "DTlisteTekst"); } }
private void LoadDocument() { string grad_string = "", skontakt = ""; string sql1 = "SELECT grad,posta, tel, mob, email FROM grad, radni_nalog" + " LEFT JOIN partners ON partners.id_partner=radni_nalog.id_narucioc" + " WHERE radni_nalog.broj_naloga='" + broj_dokumenta + "'" + " AND partners.id_grad=grad.id_grad"; DataTable grad = classSQL.select(sql1, "grad").Tables[0]; if (grad.Rows.Count != 0) { grad_string = grad.Rows[0]["posta"].ToString().Trim() + " " + grad.Rows[0]["grad"].ToString(); skontakt += grad.Rows[0]["tel"].ToString().Trim().Length > 0 ? "Tel: " + grad.Rows[0]["tel"].ToString().Trim() : ""; if (skontakt.Length > 0) { skontakt += Environment.NewLine; } skontakt += grad.Rows[0]["mob"].ToString().Trim().Length > 0 ? "Mob: " + grad.Rows[0]["mob"].ToString().Trim() : ""; if (skontakt.Length > 0) { skontakt += Environment.NewLine; } skontakt += grad.Rows[0]["email"].ToString().Trim().Length > 0 ? "E-mail: " + grad.Rows[0]["email"].ToString().Trim() : ""; } ReportParameter p1 = new ReportParameter("kontakt_podaci", skontakt.ToString()); ReportParameter p2 = new ReportParameter("proizvodnja", Class.Postavke.proizvodnja_normativ_pc.ToString()); this.reportViewer1.LocalReport.SetParameters(new ReportParameter[] { p1, p2 }); sql1 = "SELECT " + " p.broj_naloga AS broj," + " p.napomena AS napomena," + " p.godina_naloga AS godina," + " p.datum_naloga," + " p.datum_primitka," + " p.zavrsna_kartica as datum_zavrsetka," + " partners.ime_tvrtke AS kupac_tvrtka," + " partners.adresa AS kupac_adresa," + " '" + grad_string + "' AS kupac_grad," + " partners.id_grad AS kupac_grad_id," + " partners.id_partner AS sifra_kupac," + " partners.oib AS kupac_oib," + " '' AS Naslov," + " a.ime + ' ' + a.prezime AS izradio," + " case when p.izvrsio is not null and length(p.izvrsio) > 0 then p.izvrsio else b.ime + ' ' + b.prezime end AS izvrsio," + " grad.grad AS mjesto" + " FROM radni_nalog p" + " LEFT JOIN partners ON partners.id_partner=p.id_narucioc" + " LEFT JOIN zaposlenici a ON a.id_zaposlenik=p.id_izradio" + " LEFT JOIN zaposlenici b ON b.id_zaposlenik=p.id_izvrsio" + " LEFT JOIN grad ON grad.id_grad=p.mj_troska" + " WHERE p.broj_naloga='" + broj_dokumenta + "'"; if (classSQL.remoteConnectionString == "") { classSQL.CeAdatpter(sql1).Fill(dSRadniNalog, "DTRRadniNalog"); } else { classSQL.NpgAdatpter(sql1.Replace("nvarchar", "varchar")).Fill(dSRadniNalog, "DTRRadniNalog"); } string sql_liste = "SELECT " + " p.sifra_robe AS sifra," + " p.vpc," + " p.kolicina," + " p.nbc," + " p.porez," + " '0' as iznos_porez," + " r.naziv AS naziv_robe," + " " + broj_dokumenta + " AS broj_naloga," + " r.jm" + " FROM roba r, radni_nalog_stavke p" + " LEFT JOIN radni_nalog ON radni_nalog.broj_naloga=p.broj_naloga" + " WHERE radni_nalog.broj_naloga='" + broj_dokumenta + "'" + " AND p.sifra_robe=r.sifra"; if (classSQL.remoteConnectionString == "") { classSQL.CeAdatpter(sql_liste).Fill(dSRadniNalogStavke, "DTRadniNalogStavke"); } else { classSQL.NpgAdatpter(sql_liste).Fill(dSRadniNalogStavke, "DTRadniNalogStavke"); } DataTable DT = dSRadniNalogStavke.Tables[0]; double vpc, kol, vpcKol, pdv; for (int i = 0; i < DT.Rows.Count; i++) { vpc = Math.Round(Convert.ToDouble(DT.Rows[i]["vpc"].ToString()), 2); kol = Math.Round(Convert.ToDouble(DT.Rows[i]["kolicina"].ToString()), 3); pdv = Math.Round(Convert.ToDouble(DT.Rows[i]["porez"].ToString()), 2); vpcKol = Math.Round((vpc + (vpc * (pdv / 100))) * kol, 2); DT.Rows[i].SetField("iznos_porez", vpcKol); DT.Rows[i].SetField("mpc", Math.Round((vpc + (vpc * (pdv / 100))), 2)); } string id_kupac_grad = ""; string id_kupac = ""; if (dSRadniNalog.Tables[0].Rows.Count > 0) { id_kupac_grad = dSRadniNalog.Tables[0].Rows[0]["kupac_grad_id"].ToString(); id_kupac = dSRadniNalog.Tables[0].Rows[0]["sifra_kupac"].ToString(); } else { MessageBox.Show("Odabrani zahtjev ne postoji.", "Greška", MessageBoxButtons.OK, MessageBoxIcon.Warning); } sql1 = SqlPodaciTvrtke.VratiSql(id_kupac_grad, "", id_kupac); if (classSQL.remoteConnectionString == "") { classSQL.CeAdatpter(sql1).Fill(dSRpodaciTvrtke, "DTRpodaciTvrtke"); } else { classSQL.CeAdatpter(sql1).Fill(dSRpodaciTvrtke, "DTRpodaciTvrtke"); } }
/// <summary> /// Fills report with "Kalkulacije" data /// </summary> private void SetKalkulacija() { string filter = "", sql = ""; if (pregled == true) { filter = "kalkulacija.id_kalkulacija='" + broj_kalkulacije + "'"; sql = @"select coalesce(sum(pn.iznos * replace(ks.kolicina, ',','.')::numeric), 0) as povratna_naknada from povratna_naknada pn left join kalkulacija_stavke ks on pn.sifra = ks.sifra left join kalkulacija k on ks.broj = k.broj and ks.id_skladiste = k.id_skladiste where k.broj = '" + broj_kalkulacije + "' and pn.iznos <> 0;"; } else { filter = "kalkulacija.broj='" + broj_kalkulacije + "' AND kalkulacija.id_skladiste='" + skladiste + "'"; sql = @"select coalesce(sum(pn.iznos * replace(ks.kolicina, ',','.')::numeric), 0) as povratna_naknada from povratna_naknada pn left join kalkulacija_stavke ks on pn.sifra = ks.sifra left join kalkulacija k on ks.broj = k.broj and ks.id_skladiste = k.id_skladiste where k.broj = '" + broj_kalkulacije + "' and k.id_skladiste = '" + skladiste + "' and pn.iznos <> 0;"; } DataSet dsPovratnaNaknada = classSQL.select(sql, "povratna_naknada"); decimal povratna_naknada = 0; if (dsPovratnaNaknada != null && dsPovratnaNaknada.Tables.Count > 0 && dsPovratnaNaknada.Tables[0] != null && dsPovratnaNaknada.Tables[0].Rows.Count > 0) { povratna_naknada = Convert.ToDecimal(dsPovratnaNaknada.Tables[0].Rows[0][0]); } ReportParameter p2 = new ReportParameter("povratna_naknada", povratna_naknada.ToString()); this.reportViewer2.LocalReport.SetParameters(new ReportParameter[] { p2 }); string SustavPdv = @"select * from partners where id_partner = (select id_partner from kalkulacija where broj = '" + broj_kalkulacije + @"' and id_skladiste = '" + skladiste + "')"; DataSet dsPartner = classSQL.select(SustavPdv, "partners"); bool partnerExist = false, uSustavuPdv = false; if (dsPartner != null && dsPartner.Tables.Count > 0 && dsPartner.Tables[0] != null && dsPartner.Tables[0].Rows.Count > 0) { partnerExist = true; uSustavuPdv = Convert.ToBoolean(dsPartner.Tables[0].Rows[0]["uSustavPdv"].ToString()); } string sqlTecaj = @"SELECT kalkulacija.broj, kalkulacija.godina, skladiste.skladiste, kalkulacija.tecaj, kalkulacija.trosak, valute.ime_valute AS valuta FROM kalkulacija LEFT JOIN skladiste ON kalkulacija.id_skladiste=skladiste.id_skladiste LEFT JOIN valute ON kalkulacija.id_valuta=valute.id_valuta LEFT JOIN partners ON kalkulacija.id_partner=partners.id_partner WHERE " + filter + " "; DataTable dtTecaj = classSQL.select(sqlTecaj, "kalkulacija").Tables[0]; double tecaj = 1; decimal trosak = Convert.ToDecimal(dtTecaj.Rows[0]["trosak"].ToString()); if (dtTecaj.Rows.Count > 0) { tecaj = Convert.ToDouble(dtTecaj.Rows[0]["tecaj"].ToString()); } string naziv_fakture = " podaci_tvrtka.naziv_fakture,"; string sql1 = SqlPodaciTvrtke.VratiSql("", naziv_fakture, ""); if (classSQL.remoteConnectionString == "") { classSQL.CeAdatpter(sql1).Fill(dSRpodaciTvrtke, "DTRpodaciTvrtke"); } else { classSQL.CeAdatpter(sql1).Fill(dSRpodaciTvrtke, "DTRpodaciTvrtke"); } DataTable dtPdvNbc = new DataTable(); dtPdvNbc.Columns.Add("stopa"); dtPdvNbc.Columns.Add("iznos"); dtPdvNbc.Columns.Add("osnovica"); string filter1 = ""; if (pregled == true) { filter1 = string.Format("ks.id_kalkulacija = '{0}'", broj_kalkulacije); } else { filter1 = string.Format("ks.broj = '{0}' AND ks.id_skladiste = '{1}'", broj_kalkulacije, skladiste); } string sql_stavke = string.Format(@"SELECT ks.sifra, ks.id_stavka AS id, r.naziv, r.jm AS jmj, ks.kolicina, ks.rabat, ks.fak_cijena, ks.prijevoz, ks.carina, ks.posebni_porez, ks.marza_postotak as marza, ks.vpc, ks.porez AS pdv, pn.iznos as povratna_naknada FROM kalkulacija_stavke ks LEFT JOIN roba r ON cast(ks.sifra as text) = r.sifra LEFT JOIN povratna_naknada pn on ks.sifra = pn.sifra WHERE {0} ORDER BY CAST(id_stavka AS INT) ASC;", filter1); if (classSQL.remoteConnectionString == "") { classSQL.CeAdatpter(sql_stavke).Fill(dSkalkulacija_stavke, "DTkalkDtavke"); } else { classSQL.NpgAdatpter(sql_stavke).Fill(dSkalkulacija_stavke, "DTkalkDtavke"); } DataTable DT = dSkalkulacija_stavke.Tables[0]; double fakIznos = 0; double fak_iznos_stavka = 0; double fakNetto = 0; double osnovica = 0; double fakPdv = 0; double fak_ukupno_stavka = 0; double fakUk = 0; double fak_cijena = 0; double kolicina = 0; double rabat = 0; double rabatStavka = 0; double rabatUk = 0; double mpc = 0; double mpc_uk = 0; double porez = 0; double vpc = 0; double nab_cijena = 0; double posebni_porez = 0; double prijevoz = 0; double carina = 0; double net_cijena = 0; double marza = 0; double marzaIznos = 0; double marzaUk = 0; double nabavna_zadnja = 0; double marza_uk_ = 0; double fak_cijena_S_pdv = 0; double fak_cijena_S_pdv_ukp = 0; double pov_nak = 0; double prijevozSaPdv = 0; decimal trosakBezPdv = 0; decimal trosakPdv = 0; decimal trosakUkupno = 0; // Dohvača podatke ako je firma u sustavu PDV-a DataTable DTpostavke = classSQL.select_settings("SELECT sustav_pdv FROM postavke", "postavke").Tables[0]; int prikaziPdv = 0; for (int i = 0; i < DT.Rows.Count; i++) { kolicina = Math.Round(Convert.ToDouble(DT.Rows[i]["kolicina"].ToString()), 3); fak_cijena = Math.Round(Convert.ToDouble(DT.Rows[i]["fak_cijena"].ToString()), 3); rabat = Math.Round(Convert.ToDouble(DT.Rows[i]["rabat"].ToString()), 2); porez = Math.Round(Convert.ToDouble(DT.Rows[i]["pdv"].ToString()), 3); vpc = Math.Round(Convert.ToDouble(DT.Rows[i]["vpc"].ToString()), 3); posebni_porez = Math.Round(Convert.ToDouble(DT.Rows[i]["posebni_porez"].ToString()), 3); prijevoz = Math.Round(Convert.ToDouble(DT.Rows[i]["prijevoz"].ToString()), 4); carina = Math.Round(Convert.ToDouble(DT.Rows[i]["carina"].ToString()), 3); marza = Math.Round(Convert.ToDouble(DT.Rows[i]["marza"].ToString()), 2); pov_nak = Math.Round(Convert.ToDouble(DT.Rows[i]["povratna_naknada"].ToString()), 3); if (!Class.Postavke.koristi_povratnu_naknadu) { pov_nak = 0; } if (marza.ToString() == "NaN" || marza.ToString() == "Infinity") { marza = 0; } double vpc_s_kol = vpc * kolicina; double fak_s_kol = fak_cijena * kolicina; nabavna_zadnja = Math.Round((fak_s_kol - (fak_s_kol * (rabat / 100)) + ((prijevoz + carina) * kolicina)), 3); marza_uk_ = Math.Round(nabavna_zadnja * (marza / 100), 3); marzaIznos = Math.Round(marza / 100 * nabavna_zadnja, 3); marzaUk += marzaIznos; rabatStavka = Math.Round((fak_cijena * (rabat / 100)), 2) * kolicina; rabatUk += rabatStavka; mpc = vpc * (1 + porez / 100.0) + pov_nak; mpc_uk = Math.Round(mpc, 2) * kolicina; prijevozSaPdv = ((prijevoz + carina) * kolicina) * 1.25; nab_cijena = Math.Round(fak_cijena * (1 - rabat / 100), 2, MidpointRounding.AwayFromZero) * kolicina; fak_cijena_S_pdv = nab_cijena * (1 + (porez / 100)); if ((partnerExist && !uSustavuPdv) || DTpostavke.Rows[0]["sustav_pdv"].ToString() == "0") { fak_cijena_S_pdv = nab_cijena; } fak_cijena_S_pdv_ukp += fak_cijena_S_pdv; net_cijena = kolicina * fak_cijena * (1 - rabat / 100); fak_iznos_stavka = kolicina * fak_cijena; fakIznos += fak_iznos_stavka; fakNetto += Math.Round((fak_cijena * (1 - rabat / 100)), 2, MidpointRounding.AwayFromZero) * kolicina; fak_ukupno_stavka = Math.Round(vpc * (1 + porez / 100), 2) * kolicina; fakUk += fak_ukupno_stavka; osnovica += fak_ukupno_stavka * 100 / (100 + porez); fakPdv += fak_ukupno_stavka * (1 - 100 / (100 + porez)); // Stope double pdvStavka_cisto = nab_cijena * (porez / 100); int firmaSustavPdv = Convert.ToInt32(DTpostavke.Rows[0]["sustav_pdv"].ToString()); if (firmaSustavPdv == 0) { StopePDVa(Math.Round((decimal)porez, 4), 0, Math.Round(((decimal)nab_cijena), 4), true, false); StopePDVa(Math.Round((decimal)porez, 4), 0, Math.Round(((decimal)(vpc * kolicina)), 4), false, false); } else { if (partnerExist && !uSustavuPdv) { StopePDVa(Math.Round((decimal)porez, 4), 0, Math.Round(((decimal)nab_cijena), 4), true, false); StopePDVa(Math.Round((decimal)porez, 4), Math.Round((decimal)(vpc * (porez / 100) * kolicina), 4), Math.Round(((decimal)(vpc * kolicina)), 4), false); } else if (partnerExist && uSustavuPdv) { StopePDVa(Math.Round((decimal)porez, 4), Math.Round((decimal)pdvStavka_cisto, 4), Math.Round(((decimal)nab_cijena), 4), true); StopePDVa(Math.Round((decimal)porez, 4), Math.Round((decimal)(vpc * (porez / 100) * kolicina), 4), Math.Round(((decimal)(vpc * kolicina)), 4), false); prikaziPdv = 1; } } DT.Rows[i].SetField("mpc_uk", Math.Round(mpc_uk, 2, MidpointRounding.ToEven)); DT.Rows[i].SetField("mpc", Math.Round(mpc, 3)); DT.Rows[i].SetField("rabat", Math.Round(rabat, 2)); DT.Rows[i].SetField("rabat_uk", Math.Round(rabatStavka, 2)); DT.Rows[i].SetField("marza", Math.Round(marza, 3)); DT.Rows[i].SetField("marzaIznos", Math.Round(marza_uk_, 3)); DT.Rows[i].SetField("posebni_porez", posebni_porez); DT.Rows[i].SetField("prijevoz", Math.Round(prijevoz, 4)); DT.Rows[i].SetField("carina", Math.Round(carina, 3)); DT.Rows[i].SetField("kolicina", Math.Round(kolicina, 3)); DT.Rows[i].SetField("fak_cijena", Math.Round(fak_cijena, 2)); DT.Rows[i].SetField("fak_cijena_val", Math.Round(fak_cijena / tecaj, 3)); DT.Rows[i].SetField("net_cijena", Math.Round(net_cijena, 3)); DT.Rows[i].SetField("nab_cijena", Math.Round(nab_cijena, 3)); DT.Rows[i].SetField("fak_cijena_S_pdv", Math.Round(fak_cijena_S_pdv, 2)); DT.Rows[i].SetField("trosakBezPdv", Math.Round(trosakBezPdv, 3)); DT.Rows[i].SetField("trosakPdv", Math.Round(trosakPdv, 3)); DT.Rows[i].SetField("trosakUkupno", Math.Round(trosakUkupno, 3)); } fakIznos = Math.Round(fakIznos, 2, MidpointRounding.AwayFromZero); fakNetto = Math.Round(fakNetto, 2, MidpointRounding.AwayFromZero); fakPdv = Math.Round(fakPdv, 3); osnovica = Math.Round(osnovica, 3); fakUk = Math.Round(fakUk, 2); rabatUk = Math.Round(rabatUk, 2); marzaUk = Math.Round(marzaUk, 3); string filter2 = ""; if (pregled == true) { filter2 = "kalkulacija.id_kalkulacija='" + broj_kalkulacije + "';"; } else { filter2 = "kalkulacija.broj='" + broj_kalkulacije + "' AND kalkulacija.id_skladiste='" + skladiste + "';"; } // Trošak kalkulacija if (DTpostavke.Rows[0]["sustav_pdv"].ToString() == "1") { if (uSustavuPdv) { TrosakSaPdv(trosak, out trosakBezPdv, out trosakPdv, out trosakUkupno); } else { TrosakBezPdv(trosak, out trosakBezPdv, out trosakPdv, out trosakUkupno); } } else { TrosakBezPdv(trosak, out trosakBezPdv, out trosakPdv, out trosakUkupno); } if (DTpostavke.Rows[0]["sustav_pdv"].ToString() == "0" || !uSustavuPdv) { fak_cijena_S_pdv_ukp = fakNetto + (double)trosakUkupno; } CheckStope((decimal)fakNetto, trosakBezPdv, trosakPdv); string sql_kalk = $@"SELECT kalkulacija.broj, kalkulacija.id_partner, kalkulacija.godina, 'Kalkulacija' AS naslov, skladiste.skladiste, kalkulacija.datum, partners.ime_tvrtke + ' ' + partners.id_partner AS dobavljac, kalkulacija.tecaj AS tecaj, kalkulacija.racun, kalkulacija.otpremnica, CAST(kalkulacija.otpremnica_datum AS date) AS otpremnica_datum, kalkulacija.tecaj, zaposlenici.ime + ' ' + zaposlenici.prezime AS kalkulirao, {trosakBezPdv.ToString().Replace(',', '.')} AS trosakBezPdv, {trosakPdv.ToString().Replace(',', '.')} AS trosakPdv, {trosakUkupno.ToString().Replace(',', '.')} AS trosakUkupno, {prikaziPdv} AS prikaziPdv, {nbcPdvUkupno.ToString().Replace(',', '.')} AS nbcPdvUkupno, CAST(kalkulacija.racun_datum AS date) AS racun_datum, valute.ime_valute AS valuta, '" + fakIznos + @"' AS fak_iznos, '" + fakNetto + @"' AS netto_fak_iznos, '" + fakPdv + @"' AS pdv, '" + rabatUk + @"' AS rabatUk, '" + marzaUk + @"' AS marzaUk, '" + osnovica + @"' AS osnovica, '" + fakUk + @"' AS ukupno, '" + Math.Round(fak_cijena_S_pdv_ukp, 2) + @"' as fak_cijena_S_pdv, case when partners.uSustavPdv = true then 'Dobavljač u sustavu PDV-a: DA' else 'Dobavljač u sustavu PDV-a: NE' end as sustavPdv FROM kalkulacija LEFT JOIN skladiste ON kalkulacija.id_skladiste=skladiste.id_skladiste LEFT JOIN zaposlenici ON kalkulacija.id_zaposlenik=zaposlenici.id_zaposlenik LEFT JOIN valute ON kalkulacija.id_valuta=valute.id_valuta LEFT JOIN partners ON kalkulacija.id_partner=partners.id_partner WHERE " + filter2; if (classSQL.remoteConnectionString == "") { classSQL.CeAdatpter(sql_kalk).Fill(dSkalkulacija, "DTKalkulacijA"); } else { classSQL.NpgAdatpter(sql_kalk).Fill(dSkalkulacija, "DTKalkulacijA"); } }
private void FillAvansRacun(string broj, string godina, string poslovnica) { PCPOS.classNumberToLetter broj_u_text = new PCPOS.classNumberToLetter(); string usustavu_pdva = "SELECT sustav_pdv FROM postavke"; DataTable DTsust_pdv = classSQL.select_settings(usustavu_pdva, "Sustav PDV").Tables[0]; string sql = string.Format(@"SELECT avans_racun.broj_avansa, avans_racun.dat_dok AS datum, avans_racun.dat_knj as datum_knj, avans_racun.datum_valute, nacin_placanja.naziv_placanja AS placanje, CAST (avans_racun.model AS text) + ' '+ CAST (avans_racun.broj_avansa AS text)+CAST (avans_racun.godina_avansa AS text)+'-'+CAST (avans_racun.broj_avansa AS text) +'¤'+case when avans_racun.storno > 0 then (select ar.broj_avansa||'/'||d.ime_ducana||'/'||ar.godina_avansa from avans_racun ar left join ducan d on d.id_ducan = ar.poslovnica where ar.id = avans_racun.storno) else '' end AS model, avans_racun.opis, avans_racun.ukupno, avans_racun.osnovica10, avans_racun.porez_var as porez, avans_racun.osnovica_var as osnovica, avans_racun.godina_avansa, avans_racun.nult_stp, avans_racun.neoporezivo, avans_racun.jir, avans_racun.zki, avans_racun.storno, concat(CAST(avans_racun.broj_avansa AS text),'/',ducan.ime_ducana,'/',CAST(godina_avansa as text)) AS Naslov, partners.ime_tvrtke AS kupac_tvrtka, partners.adresa AS kupac_adresa, partners.id_grad AS id_kupac_grad, partners.id_partner AS sifra_kupac, ziro_racun.ziroracun AS ziro, zaposlenici.ime + ' ' + zaposlenici.prezime AS izradio, ziro_racun.banka AS banka, '' AS broj_slovima, partners.oib AS kupac_oib, porezi.iznos AS porez_postotak FROM avans_racun LEFT JOIN zacrnjeni_partner as partners ON partners.id_partner=avans_racun.id_partner LEFT JOIN nacin_placanja ON nacin_placanja.id_placanje=avans_racun.id_nacin_placanja LEFT JOIN ziro_racun ON ziro_racun.id_ziroracun=avans_racun.ziro LEFT JOIN zaposlenici ON zaposlenici.id_zaposlenik=avans_racun.id_zaposlenik_izradio LEFT JOIN porezi ON porezi.id_porez=avans_racun.id_pdv left join ducan on ducan.id_ducan = avans_racun.poslovnica WHERE avans_racun.broj_avansa={0} AND avans_racun.godina_avansa={1} and avans_racun.poslovnica = {2};", broj, godina, poslovnica); if (classSQL.remoteConnectionString == "") { classSQL.CeAdatpter(sql).Fill(dSAvans, "DTRAvans"); } else { classSQL.NpgAdatpter(sql.Replace("nvarchar", "varchar")).Fill(dSAvans, "DTRAvans"); } if (dSAvans.Tables[0].Rows.Count > 0) { if (Convert.ToInt32(dSAvans.Tables[0].Rows[0]["storno"].ToString()) > 0) { dSAvans.Tables[0].Rows[0].SetField("storno", "Storno računa za predujam: "); } else { if (DTsust_pdv.Rows[0]["sustav_pdv"].ToString() == "1") { dSAvans.Tables[0].Rows[0].SetField("storno", "Račun za predujam: "); } else { dSAvans.Tables[0].Rows[0].SetField("storno", "Račun za predujam: "); } } } string ukupno = broj_u_text.PretvoriBrojUTekst(dSAvans.Tables[0].Rows[0]["ukupno"].ToString(), ',', "kn", "lp").ToString().ToLower(); dSAvans.Tables[0].Rows[0]["broj_slovima"] = ukupno; string id_kupac_grad = ""; string id_kupac = ""; if (dSAvans.Tables[0].Rows.Count > 0) { id_kupac_grad = dSAvans.Tables[0].Rows[0]["id_kupac_grad"].ToString(); id_kupac = dSAvans.Tables[0].Rows[0]["sifra_kupac"].ToString(); } else { MessageBox.Show("Odabrani zahtjev ne postoji.", "Greška", MessageBoxButtons.OK, MessageBoxIcon.Warning); } string naziv_fakture = " podaci_tvrtka.naziv_fakture,"; string sql1 = SqlPodaciTvrtke.VratiSql(id_kupac_grad, naziv_fakture, id_kupac); if (classSQL.remoteConnectionString == "") { classSQL.CeAdatpter(sql1).Fill(dSRpodaciTvrtke, "DTRpodaciTvrtke"); } else { classSQL.CeAdatpter(sql1).Fill(dSRpodaciTvrtke, "DTRpodaciTvrtke"); } sql = string.Format(@"select artikl from avans_racun where broj_avansa = {0} and poslovnica = {1} and godina_avansa = {2}", broj, poslovnica, godina); string artikl = classSQL.select(sql, "avans_racun").Tables[0].Rows[0]["artikl"].ToString().Trim(); if (artikl.Length == 0) { artikl = "Uplata predujma"; } ReportParameter p2 = new ReportParameter("artikl", artikl); ReportParameter p3 = new ReportParameter("stranaValuta", "1"); this.reportViewer1.LocalReport.EnableExternalImages = true; this.reportViewer1.LocalReport.SetParameters(new ReportParameter[] { p2, p3 }); this.reportViewer1.RefreshReport(); }
private void Otpremnica() { string sql1 = SqlPodaciTvrtke.VratiSql("", "", ""); classSQL.CeAdatpter(sql1).Fill(dSRpodaciTvrtke, "DTRpodaciTvrtke"); string sql_liste = "SELECT " + " otpremnica_stavke.sifra_robe as sifra," + " roba.naziv," + " otpremnica_stavke.kolicina AS cijena1," + " roba.jm AS jmj," + " roba_prodaja.vpc AS cijena3 ," + " (COALESCE(CAST(roba_prodaja.vpc AS NUMERIC),0)*(COALESCE(CAST(replace(roba_prodaja.porez, ',','.') AS NUMERIC),0) zbroj COALESCE(CAST(roba_prodaja.porez_potrosnja AS NUMERIC),0))/100)zbrojCOALESCE(CAST(roba_prodaja.vpc AS NUMERIC),0) AS cijena5," + " skladiste.skladiste AS cijena4, " + " (COALESCE(CAST(roba_prodaja.vpc AS NUMERIC),0)*(COALESCE(CAST(replace(roba_prodaja.porez, ',','.') AS NUMERIC),0)zbrojCOALESCE(CAST(roba_prodaja.porez_potrosnja AS NUMERIC),0))/100)zbrojCOALESCE(CAST(roba_prodaja.vpc AS NUMERIC),0)*COALESCE(CAST(REPLACE(otpremnica_stavke.kolicina,',','.') AS NUMERIC),0) AS cijena6 " + " FROM otpremnice " + " left join otpremnica_stavke on otpremnica_stavke.broj_otpremnice = otpremnice.broj_otpremnice and otpremnica_stavke.id_skladiste = otpremnice.id_skladiste" + " LEFT JOIN roba ON roba.sifra=otpremnica_stavke.sifra_robe" + " LEFT JOIN skladiste ON skladiste.id_skladiste=otpremnica_stavke.id_skladiste" + " LEFT JOIN roba_prodaja ON roba_prodaja.sifra=otpremnica_stavke.sifra_robe AND roba_prodaja.id_skladiste=otpremnica_stavke.id_skladiste " + " WHERE otpremnice.broj_otpremnice='" + broj_dokumenta + "' and otpremnice.id_skladiste = '" + skladiste + "'"; if (classSQL.remoteConnectionString == "") { classSQL.CeAdatpter(sql_liste).Fill(dSRliste, "DTliste"); } else { classSQL.NpgAdatpter(sql_liste).Fill(dSRliste, "DTliste"); } string year = ""; DataTable DT = classSQL.select("SELECT godina_otpremnice FROM otpremnice WHERE broj_otpremnice ='" + broj_dokumenta + "' and id_skladiste = '" + skladiste + "'", "normativi").Tables[0]; if (DT.Rows.Count > 0) { year = DT.Rows[0]["godina_otpremnice"].ToString(); } //DataTable DTnor = classSQL.select("SELECT * FROM normativi WHERE broj_normativa='" + broj_dokumenta + "'", "normativi").Tables[0]; string sql_liste_string = "SELECT " + " 'Šifra' AS tbl1," + " 'Naziv' AS tbl2," + " 'Količina' AS tbl4," + " 'JMJ' AS tbl3," + " 'VPC' AS tbl5," + " 'MPC' AS tbl7," + " 'Skladište' AS tbl6," + " 'Iznos' AS tbl8," + //" normativi.godina_normativa AS datum1," + " otpremnice.napomena AS komentar," + " zaposlenici.ime + ' ' + zaposlenici.prezime AS string1," + " CAST ('Otpremnica ' AS nvarchar) + CAST (otpremnice.broj_otpremnice AS nvarchar) +'/'+ CAST (" + year + " AS nvarchar) AS naslov" + " FROM otpremnice " + " LEFT JOIN zaposlenici ON zaposlenici.id_zaposlenik=otpremnice.id_izradio " + // " LEFT JOIN roba ON roba.sifra=normativi.sifra_artikla " + " WHERE otpremnice.broj_otpremnice='" + broj_dokumenta + "' and otpremnice.id_skladiste = '" + skladiste + "'"; if (classSQL.remoteConnectionString == "") { classSQL.CeAdatpter(sql_liste_string).Fill(dSRlisteTekst, "DTlisteTekst"); } else { classSQL.NpgAdatpter(sql_liste_string.Replace("nvarchar", "varchar")).Fill(dSRlisteTekst, "DTlisteTekst"); } }
private void FillAvans(string broj, string godina) { PCPOS.classNumberToLetter broj_u_text = new PCPOS.classNumberToLetter(); ////MessageBox.Show(broj_slovima.ToLower()); string usustavu_pdva = "SELECT sustav_pdv FROM postavke"; DataTable DTsust_pdv = classSQL.select_settings(usustavu_pdva, "Sustav PDV").Tables[0]; string sql = "SELECT " + " avansi.broj_avansa," + " avansi.dat_dok AS datum," + " avansi.dat_knj AS datum_knj," + " avansi.datum_valute AS datum_valute," + " nacin_placanja.naziv_placanja AS placanje," + " concat(CAST (avansi.model AS text),' ',CAST (avansi.broj_avansa AS text),CAST (avansi.godina_avansa AS text),'-',CAST (avansi.broj_avansa AS text)) AS model," + " avansi.opis," + " avansi.ukupno," + " avansi.osnovica10," + " avansi.porez_var as porez," + " avansi.osnovica_var as osnovica," + " avansi.godina_avansa," + " avansi.nult_stp," + " avansi.neoporezivo," + " avansi.jir," + " avansi.zki," + " avansi.storno," + " concat(CAST (avansi.broj_avansa AS text),CAST ('" + Util.Korisno.VratiDucanIBlagajnuZaIspis(3) + "' AS text)) AS Naslov," + " partners.ime_tvrtke AS kupac_tvrtka," + " partners.adresa AS kupac_adresa," + " partners.id_grad AS id_kupac_grad," + " partners.id_partner AS sifra_kupac," + " ziro_racun.ziroracun AS ziro," + " zaposlenici.ime + ' ' + zaposlenici.prezime AS izradio," + " ziro_racun.banka AS banka," + " '' AS broj_slovima," + " partners.oib AS kupac_oib," + " porezi.iznos AS porez_postotak" + " FROM avansi" + " LEFT JOIN zacrnjeni_partner as partners ON partners.id_partner=avansi.id_partner" + " LEFT JOIN nacin_placanja ON nacin_placanja.id_placanje=avansi.id_nacin_placanja" + " LEFT JOIN ziro_racun ON ziro_racun.id_ziroracun=avansi.ziro" + " LEFT JOIN zaposlenici ON zaposlenici.id_zaposlenik=avansi.id_zaposlenik_izradio" + " LEFT JOIN porezi ON porezi.id_porez=avansi.id_pdv" + " WHERE avansi.broj_avansa='" + broj.Trim() + "'" + " AND avansi.godina_avansa='" + godina.Trim() + "'"; if (classSQL.remoteConnectionString == "") { classSQL.CeAdatpter(sql).Fill(dSAvans, "DTRAvans"); } else { classSQL.NpgAdatpter(sql.Replace("nvarchar", "varchar")).Fill(dSAvans, "DTRAvans"); } string sql_tecaj = string.Format(@"select avansi.id_valuta, avansi.tecaj, valute.ime_valute, valute.sifra, valute.naziv from avansi left join valute on avansi.id_valuta = valute.id_valuta where avansi.broj_avansa = {0} and avansi.godina_avansa::integer = {1};", broj.Trim(), godina.Trim()); decimal tecaj = 1; string stranaValuta = ""; DataSet dsTecaj = classSQL.select(sql_tecaj, "tecaj"); if (dsTecaj != null && dsTecaj.Tables.Count > 0 && dsTecaj.Tables[0] != null && dsTecaj.Tables[0].Rows.Count > 0) { decimal.TryParse(dsTecaj.Tables[0].Rows[0]["tecaj"].ToString(), out tecaj); if (dsTecaj.Tables[0].Rows[0]["sifra"].ToString() == "978") { decimal ukp = 0; decimal.TryParse(dSAvans.Tables[0].Rows[0]["ukupno"].ToString(), out ukp); stranaValuta = "Prema tečaju " + tecaj.ToString() + " ukupna vrijednost iznosi " + Math.Round(ukp / tecaj, 3).ToString("#0.00") + " " + dsTecaj.Tables[0].Rows[0]["naziv"].ToString(); //stranaValuta = string.Format("Iznos u eurima prema tecaju {0} je {1}", tecaj, Math.Round((ukp / tecaj), 2, MidpointRounding.AwayFromZero)); } } if (dSAvans.Tables[0].Rows.Count > 0) { if (dSAvans.Tables[0].Rows[0]["storno"].ToString() == "DA") { dSAvans.Tables[0].Rows[0].SetField("storno", "Storno račun za predujam: "); } else { if (DTsust_pdv.Rows[0]["sustav_pdv"].ToString() == "1") { dSAvans.Tables[0].Rows[0].SetField("storno", "R1 Račun za predujam: "); } else { dSAvans.Tables[0].Rows[0].SetField("storno", "R2 Račun za predujam: "); } } } string ukupno = broj_u_text.PretvoriBrojUTekst(dSAvans.Tables[0].Rows[0]["ukupno"].ToString(), ',', "kn", "lp").ToString().ToLower(); dSAvans.Tables[0].Rows[0]["broj_slovima"] = ukupno; string id_kupac_grad = ""; string id_kupac = ""; if (dSAvans.Tables[0].Rows.Count > 0) { id_kupac_grad = dSAvans.Tables[0].Rows[0]["id_kupac_grad"].ToString(); id_kupac = dSAvans.Tables[0].Rows[0]["sifra_kupac"].ToString(); } else { MessageBox.Show("Odabrani zahtjev ne postoji.", "Greška", MessageBoxButtons.OK, MessageBoxIcon.Warning); } string naziv_fakture = " podaci_tvrtka.naziv_fakture,"; string sql1 = SqlPodaciTvrtke.VratiSql(id_kupac_grad, naziv_fakture, id_kupac); if (classSQL.remoteConnectionString == "") { classSQL.CeAdatpter(sql1).Fill(dSRpodaciTvrtke, "DTRpodaciTvrtke"); } else { classSQL.CeAdatpter(sql1).Fill(dSRpodaciTvrtke, "DTRpodaciTvrtke"); } sql = string.Format(@"select artikl from avansi where broj_avansa = '{0}' and godina_avansa = '{1}';", broj, godina); try { string artikl = classSQL.select(sql, "avans_racun").Tables[0].Rows[0]["artikl"].ToString().Trim(); if (artikl.Length == 0) { artikl = "Uplata predujma"; } ReportParameter p2 = new ReportParameter("artikl", artikl); ReportParameter p4 = new ReportParameter("stranaValuta", stranaValuta); this.reportViewer1.LocalReport.EnableExternalImages = true; this.reportViewer1.LocalReport.SetParameters(new ReportParameter[] { p2, p4 }); } catch (Exception) { } this.reportViewer1.RefreshReport(); }
private void promjenaCijeneKomadno() { string sql1 = SqlPodaciTvrtke.VratiSql("", "", ""); classSQL.CeAdatpter(sql1).Fill(dSRpodaciTvrtke, "DTRpodaciTvrtke"); string sql_liste = "SELECT " + " promjena_cijene_komadno_stavke.sifra," + " roba.naziv," + " promjena_cijene_komadno_stavke.postotak AS jmj," + " promjena_cijene_komadno_stavke.stara_cijena AS cijena1 ," + " promjena_cijene_komadno_stavke.nova_cijena AS cijena3," + " promjena_cijene_komadno_stavke.pdv AS cijena4," + " CAST(promjena_cijene_komadno_stavke.nova_cijena AS money) - CAST(promjena_cijene_komadno_stavke.stara_cijena AS money) AS cijena6," + " CAST(CAST(promjena_cijene_komadno_stavke.nova_cijena AS money) - CAST(promjena_cijene_komadno_stavke.stara_cijena AS money) AS money)" + " - " + " CAST((CAST(promjena_cijene_komadno_stavke.nova_cijena AS money) - CAST(promjena_cijene_komadno_stavke.stara_cijena AS money))" + " / " + " CAST('1.'+promjena_cijene_komadno_stavke.pdv AS numeric) AS money) AS cijena5" + " FROM promjena_cijene_komadno_stavke" + " LEFT JOIN roba ON roba.sifra=promjena_cijene_komadno_stavke.sifra WHERE broj='" + broj_dokumenta + "'"; if (classSQL.remoteConnectionString == "") { classSQL.CeAdatpter(sql_liste).Fill(dSRliste, "DTliste"); } else { classSQL.NpgAdatpter(sql_liste).Fill(dSRliste, "DTliste"); } string year = ""; DataTable DT = classSQL.select("SELECT date FROM promjena_cijene_komadno WHERE broj='" + broj_dokumenta + "'", "promjena_cijene_komadno").Tables[0]; if (DT.Rows.Count > 0) { year = Convert.ToDateTime(DT.Rows[0]["date"].ToString()).Year.ToString(); } string sql_liste_string = "SELECT " + " 'Šifra' AS tbl1," + " 'Naziv' AS tbl2," + " 'Postotak' AS tbl3," + " 'Stara cijena' AS tbl4," + " 'Nova cijena' AS tbl5," + " 'PDV' AS tbl6," + " 'PDV iznos' AS tbl7," + " 'Iznos' AS tbl8," + " promjena_cijene_komadno.date AS datum1," + " promjena_cijene_komadno.napomena AS komentar," + " skladiste.skladiste AS skladiste," + " zaposlenici.ime + ' ' + zaposlenici.prezime AS string1," + " CAST ('ZAPISNIK O PROMJENI CIJENE ' AS nvarchar) + CAST (promjena_cijene_komadno.broj AS nvarchar) +'/'+ CAST (" + year + " AS nvarchar) AS naslov" + " FROM promjena_cijene_komadno " + " LEFT JOIN skladiste ON skladiste.id_skladiste=promjena_cijene_komadno.id_skladiste " + " LEFT JOIN zaposlenici ON zaposlenici.id_zaposlenik=promjena_cijene_komadno.id_izradio " + " WHERE broj ='" + broj_dokumenta + "'"; if (classSQL.remoteConnectionString == "") { classSQL.CeAdatpter(sql_liste_string).Fill(dSRlisteTekst, "DTlisteTekst"); } else { classSQL.NpgAdatpter(sql_liste_string.Replace("nvarchar", "varchar")).Fill(dSRlisteTekst, "DTlisteTekst"); } }
private void povrat_robe() { string naziv_fakture = " podaci_tvrtka.naziv_fakture,"; string sql1 = SqlPodaciTvrtke.VratiSql("", naziv_fakture, ""); classSQL.CeAdatpter(sql1).Fill(dSRpodaciTvrtke, "DTRpodaciTvrtke"); string sql_liste = "SELECT " + " povrat_robe_stavke.sifra + ' ' + roba.naziv As Naziv," + " roba.jm AS naziv2," + " povrat_robe_stavke.kolicina AS kolicina," + " povrat_robe_stavke.pdv AS cijena9," + " povrat_robe_stavke.rabat AS cijena1 ," + " povrat_robe_stavke.nbc AS cijena2," + " (CAST(povrat_robe_stavke.nbc AS numeric) * CAST(REPLACE(povrat_robe_stavke.kolicina,',','.') AS numeric)-" + " ((CAST(povrat_robe_stavke.nbc AS numeric) * CAST(REPLACE(povrat_robe_stavke.kolicina,',','.') AS numeric))*CAST(REPLACE(povrat_robe_stavke.rabat,',','.') AS numeric)/100)) AS cijena3 " + " FROM povrat_robe_stavke" + " LEFT JOIN roba ON roba.sifra=povrat_robe_stavke.sifra WHERE broj='" + broj_dokumenta + "'"; if (classSQL.remoteConnectionString == "") { classSQL.CeAdatpter(sql_liste).Fill(dSRliste, "DTliste"); } else { classSQL.NpgAdatpter(sql_liste).Fill(dSRliste, "DTliste"); } string year = ""; DataTable DT = classSQL.select("SELECT datum FROM povrat_robe WHERE broj='" + broj_dokumenta + "'", "povrat_robe").Tables[0]; if (DT.Rows.Count > 0) { year = Convert.ToDateTime(DT.Rows[0]["datum"].ToString()).Year.ToString(); } string sql_liste_string = "SELECT " + " 'Količina' AS tbl1," + " 'Jmj' AS tbl2," + " 'Nab. cijena' AS tbl3," + " 'Rabat' AS tbl4," + " 'Nab. iznos' AS tbl5," + " 'tb' AS tbl6," + " 'rbr.' AS tbl8," + " 'Šifra i naziv' AS tbl9," + " povrat_robe.datum AS datum1," + " povrat_robe.orginalni_dokument AS string3 ," + " povrat_robe.napomena AS komentar," + " '(' + partners.id_partner + ')' AS string9 ," + " partners.ime_tvrtke AS string2 ," + " partners.adresa AS string3 ," + " grad.posta + ' ' + grad.grad AS string4 ," + " '" + godina + "' +' / '+ '" + broj_dokumenta + "' As string7, " + " partners.oib AS string5," + " partners.id_partner AS string6," + " skladiste.id_skladiste + ' - ' + skladiste.skladiste AS skladiste," + " zaposlenici.ime + ' ' + zaposlenici.prezime AS string1," + " CAST ('POVRATNICA DOBAVLJAČU: ' AS nvarchar) + CAST (povrat_robe.broj AS nvarchar) +'/'+ CAST (" + year + " AS nvarchar) AS naslov" + " FROM povrat_robe " + " LEFT JOIN skladiste ON skladiste.id_skladiste=povrat_robe.id_skladiste " + " LEFT JOIN zaposlenici ON zaposlenici.id_zaposlenik=povrat_robe.id_izradio " + " LEFT JOIN partners ON partners.id_partner=povrat_robe.id_partner " + " LEFT JOIN grad ON grad.id_grad=partners.id_grad " + " WHERE broj ='" + broj_dokumenta + "'"; if (classSQL.remoteConnectionString == "") { classSQL.CeAdatpter(sql_liste_string).Fill(dSRlisteTekst, "DTlisteTekst"); } else { classSQL.NpgAdatpter(sql_liste_string.Replace("nvarchar", "varchar")).Fill(dSRlisteTekst, "DTlisteTekst"); } }