Exemple #1
0
        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");
            }
        }
Exemple #2
0
        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");
            }
        }
Exemple #3
0
        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");
            }
        }
Exemple #4
0
        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;
            }
        }
Exemple #6
0
        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();
        }
Exemple #7
0
        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();
        }
Exemple #9
0
        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();
        }
Exemple #10
0
        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();
        }
Exemple #11
0
        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 });
        }
Exemple #13
0
        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");
            }
        }
Exemple #14
0
        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");
            }
        }
Exemple #16
0
        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);

            //   }
        }
Exemple #17
0
        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);
        }
Exemple #18
0
        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");
            }
        }
Exemple #20
0
        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");
            }
        }
Exemple #21
0
        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");
            }
        }
Exemple #22
0
        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");
            }
        }
Exemple #23
0
        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");
            }
        }
Exemple #24
0
        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");
            }
        }
Exemple #25
0
        /// <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");
            }
        }
Exemple #26
0
        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();
        }
Exemple #27
0
        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");
            }
        }
Exemple #28
0
        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();
        }
Exemple #29
0
        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");
            }
        }
Exemple #30
0
        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");
            }
        }