private void dobit_po_maloprodajnim() { //datumDO = DateTime.Now; //datumOD = DateTime.Now.AddDays(-365); //BrojFakDO = ""; //BrojFakOD = ""; string naziv_fakture = " podaci_tvrtka.naziv_fakture,"; string sql1 = SqlPodaciTvrtke.VratiSql("", naziv_fakture, ""); classSQL.CeAdatpter(sql1).Fill(dSRpodaciTvrtke, "DTRpodaciTvrtke"); string kriterij = ""; if (prema_rac) { kriterij = " WHERE CAST(racuni.broj_racuna as int) >= '" + BrojFakOD + "' AND CAST(racuni.broj_racuna as int) <= '" + BrojFakDO + "' ORDER BY CAST(racuni.broj_racuna as int) ASC"; } else { kriterij = " WHERE racuni.datum_racuna >= '" + datumOD + "' AND racuni.datum_racuna <= '" + datumDO + "' ORDER BY racuni.datum_racuna ASC"; } string sqlHeder = "SELECT " + " racuni.broj_racuna, " + " racuni.datum_racuna, " + " partners.id_partner," + " partners.ime_tvrtke" + " FROM racuni" + " LEFT JOIN partners ON partners.id_partner=racuni.id_kupac " + kriterij + ""; DataRow DDTrow = dSRlisteTekst.Tables[0].NewRow(); if (BrojFakDO != "") { DDTrow["string3"] = "Od računa :" + " " + BrojFakOD.ToString(); DDTrow["string4"] = "Do računa :" + " " + BrojFakDO.ToString(); } else { DDTrow["string3"] = "Od datuma :" + " " + datumOD.ToString("dd.MM.yyyy"); DDTrow["string4"] = "Do datuma :" + " " + datumDO.ToString("dd.MM.yyyy"); } //if (documenat == "kalk") //{ // DDTrow["string5"] = "Kalkulacije"; //} dSRlisteTekst.Tables[0].Rows.Add(DDTrow); DataTable DTheader = classSQL.select(sqlHeder, "racuni").Tables[0]; DataTable DTstavke; for (int i = 0; i < DTheader.Rows.Count; i++) { string sqlStavka = "SELECT " + " racun_stavke.broj_racuna," + " racun_stavke.vpc," + " racun_stavke.sifra_robe," + " racun_stavke.mpc," + " racun_stavke.porez," + " racun_stavke.nbc," + " racun_stavke.kolicina," + " racun_stavke.rabat " + " FROM racun_stavke" + " WHERE CAST(racun_stavke.broj_racuna as int) ='" + DTheader.Rows[i]["broj_racuna"].ToString() + "'"; DTstavke = classSQL.select(sqlStavka, "racun_stavke").Tables[0]; decimal Bruto = 0; decimal Neto = 0; decimal Dobit = 0; decimal Nabavna = 0; decimal Porez = 0; decimal Rabat_uk = 0; decimal vpc_sa_rab = 0; decimal prer_stopa = 0; for (int y = 0; y < DTstavke.Rows.Count; y++) { string sifra = DTstavke.Rows[y]["sifra_robe"].ToString(); decimal vpc = Convert.ToDecimal(DTstavke.Rows[y]["vpc"].ToString()); decimal nbc = Convert.ToDecimal(classSQL.select("Select nc From roba Where sifra = '" + sifra + "'", "nbc").Tables[0].Rows[0][0].ToString());//Convert.ToDecimal(DTstavke.Rows[y]["nbc"].ToString()); decimal mpc = Convert.ToDecimal(DTstavke.Rows[y]["mpc"].ToString()); decimal pdv = Convert.ToDecimal(DTstavke.Rows[y]["porez"].ToString()); decimal rabat = Convert.ToDecimal(DTstavke.Rows[y]["rabat"].ToString()); decimal kol = Convert.ToDecimal(DTstavke.Rows[y]["kolicina"].ToString()); decimal mpc_rab = (mpc - (mpc * (rabat / 100))); prer_stopa = ((100 * pdv) / (100 + pdv)) / 100; Bruto = (mpc_rab * kol) + Bruto; Neto = (mpc_rab / (1 + (pdv / 100)) * kol) + Neto; Nabavna = (nbc * kol) + Nabavna; Porez = Bruto - Neto; Rabat_uk = ((mpc * (rabat / 100)) * kol) + Rabat_uk; vpc_sa_rab = Rabat_uk / (1 + (pdv / 100)); Dobit = Neto - Nabavna; } string sifrainaziv = ""; if (sifrainaziv == "0" || sifrainaziv == "" || sifrainaziv == null) { sifrainaziv = "PRIVATNI KUPAC"; } else { sifrainaziv = DTheader.Rows[i]["id_partner"].ToString() + " " + DTheader.Rows[i]["ime_tvrtke"].ToString(); } DataRow DTrow = dSRliste.Tables[0].NewRow(); DTrow["datum1"] = Convert.ToDateTime(DTheader.Rows[i]["datum_racuna"].ToString()).ToString("dd-MM-yyyy"); DTrow["sifra"] = DTheader.Rows[i]["broj_racuna"].ToString(); DTrow["naziv"] = sifrainaziv; DTrow["cijena1"] = Bruto.ToString("#0.00"); DTrow["cijena2"] = Neto.ToString("#0.00"); DTrow["cijena3"] = Nabavna.ToString("#0.00"); DTrow["cijena4"] = Porez.ToString("#0.00"); DTrow["cijena5"] = Dobit.ToString("#0.00"); DTrow["cijena6"] = Rabat_uk.ToString("#0.00"); dSRliste.Tables[0].Rows.Add(DTrow); } }
private void ListaKalkulacije() { string naziv_fakture = " podaci_tvrtka.naziv_fakture,"; string sql1 = SqlPodaciTvrtke.VratiSql("", naziv_fakture, ""); classSQL.CeAdatpter(sql1).Fill(dSRpodaciTvrtke, "DTRpodaciTvrtke"); //string Broj_fakture = ""; //DateTime Datum_dokumenta; //DateTime Datum_valute; //string Sifra_i_naziv_partnera = ""; string kriterij = ""; if (prema_rac) { kriterij = " WHERE kalkulacija.broj >= '" + BrojFakOD + "' AND kalkulacija.broj <= '" + BrojFakDO + "' ORDER BY kalkulacija.broj ASC"; } else { kriterij = " WHERE kalkulacija.racun_datum >= '" + datumOD + "' AND kalkulacija.racun_datum <= '" + datumDO + "' ORDER BY kalkulacija.racun_datum ASC"; } string sqlHeder = "SELECT " + " kalkulacija.broj, " + " kalkulacija.id_skladiste, " + " kalkulacija.id_kalkulacija, " + " kalkulacija.racun_datum, " + " partners.id_partner," + " partners.ime_tvrtke" + " FROM kalkulacija" + " LEFT JOIN partners ON partners.id_partner=kalkulacija.id_partner " + kriterij + ""; DataRow DDTrow = dSRlisteTekst.Tables[0].NewRow(); if (BrojFakDO != "") { DDTrow["string3"] = "Od računa :" + " " + BrojFakOD.ToString(); DDTrow["string4"] = "Do računa :" + " " + BrojFakDO.ToString(); } else { DDTrow["string3"] = "Od datuma :" + " " + datumOD.ToString(); DDTrow["string4"] = "Do datuma :" + " " + datumDO.ToString(); } if (documenat == "kalk") { DDTrow["string5"] = "Kalkulacije"; } dSRlisteTekst.Tables[0].Rows.Add(DDTrow); DataTable DTheader = classSQL.select(sqlHeder, "kalkulacija").Tables[0]; DataTable DTstavke; for (int i = 0; i < DTheader.Rows.Count; i++) { string sqlStavka = "SELECT " + " kalkulacija_stavke.broj," + " kalkulacija_stavke.vpc," + " kalkulacija_stavke.porez," + " kalkulacija_stavke.kolicina," + " kalkulacija_stavke.id_skladiste," + " kalkulacija_stavke.rabat, " + " kalkulacija_stavke.marza_postotak, " + " kalkulacija_stavke.fak_cijena, " + " kalkulacija_stavke.carina, " + " kalkulacija_stavke.prijevoz, " + " kalkulacija_stavke.posebni_porez " + " FROM kalkulacija_stavke" + " WHERE kalkulacija_stavke.broj='" + DTheader.Rows[i]["broj"].ToString() + "' AND kalkulacija_stavke.id_skladiste='" + DTheader.Rows[i]["id_skladiste"].ToString() + "'"; DTstavke = classSQL.select(sqlStavka, "kalkulacija_stavke").Tables[0]; decimal Iznos_fakturni_uk = 0; decimal Iznos_nabavni_uk = 0; decimal fakt_cijena_sa_sab = 0; decimal iznos_bez_poreza = 0; decimal iznos_sa_porezom = 0; decimal zavisni = 0; decimal marza = 0; for (int y = 0; y < DTstavke.Rows.Count; y++) { decimal vpc = Convert.ToDecimal(DTstavke.Rows[y]["vpc"].ToString()); decimal pdv = Convert.ToDecimal(DTstavke.Rows[y]["porez"].ToString()); decimal rabat = Convert.ToDecimal(DTstavke.Rows[y]["rabat"].ToString()); decimal kol = Convert.ToDecimal(DTstavke.Rows[y]["kolicina"].ToString()); decimal marza_post = Convert.ToDecimal(DTstavke.Rows[y]["marza_postotak"].ToString()); decimal car = Convert.ToDecimal(DTstavke.Rows[y]["carina"].ToString()); decimal transport = Convert.ToDecimal(DTstavke.Rows[y]["prijevoz"].ToString()); decimal fakt_cijena = Convert.ToDecimal(DTstavke.Rows[y]["fak_cijena"].ToString()); Iznos_fakturni_uk = (fakt_cijena * kol) + Iznos_fakturni_uk; fakt_cijena_sa_sab = fakt_cijena - (fakt_cijena * (rabat / 100)); Iznos_nabavni_uk = ((fakt_cijena_sa_sab * kol) - transport - car) + Iznos_nabavni_uk; iznos_bez_poreza = (vpc * kol) + iznos_bez_poreza; iznos_sa_porezom = ((vpc + (vpc * (pdv / 100))) * kol) + iznos_sa_porezom; zavisni = (car + transport) + zavisni; marza = Math.Round(marza / 100 * fakt_cijena, 2); } DataRow DTrow = dSRliste.Tables[0].NewRow(); DTrow["jmj"] = DTheader.Rows[i]["broj"].ToString(); DTrow["datum2"] = Convert.ToDateTime(DTheader.Rows[i]["racun_datum"].ToString()).ToString("dd-MM-yyyy"); DTrow["sifra"] = DTheader.Rows[i]["id_kalkulacija"].ToString(); DTrow["naziv"] = DTheader.Rows[i]["id_partner"].ToString() + " " + DTheader.Rows[i]["ime_tvrtke"].ToString(); DTrow["cijena1"] = Iznos_fakturni_uk.ToString("#0.00"); DTrow["cijena2"] = Iznos_nabavni_uk.ToString("#0.00"); DTrow["cijena3"] = iznos_bez_poreza.ToString("#0.00"); DTrow["cijena5"] = iznos_sa_porezom.ToString("#0.00"); DTrow["cijena6"] = 0; DTrow["cijena7"] = marza.ToString("#0.00"); DTrow["cijena8"] = zavisni.ToString("#0.00"); dSRliste.Tables[0].Rows.Add(DTrow); } }