private void PrepisiIzvod(string ulaz)
        {
            int             RedniBroj         = 0;
            string          OOpis             = "";
            string          BrojDok           = "";
            DataTable       prometprepisani   = new DataTable();
            DataTable       rspromet          = new DataTable();
            DataTable       rstStablo         = new DataTable();
            DataTable       rs2               = new DataTable();
            DataTable       rsd               = new DataTable();
            DataTable       rsv               = new DataTable();
            DataTable       rspo              = new DataTable();
            DataTable       rsp               = new DataTable();
            DataTable       rsDokumentaStablo = new DataTable();
            int             pbanka            = 0;
            string          NazivBanke        = "";
            int             BrojIzvoda        = 0;
            int             PKomitent         = 0;
            int             Rr        = 0;
            string          BRD       = "";
            string          str       = "";
            string          pdokument = "";
            string          strParams = "";
            List <string[]> lista     = new List <string[]>();

            char[] separators = { '#' };
            string DatumP     = ulaz.Split(separators)[0];
            string KojiRacun  = ulaz.Split(separators)[1];
            clsObradaOsnovnihSifarnika coos = new clsObradaOsnovnihSifarnika();

            rspromet = db.ReturnDataTable("Select * from BankaView where Replace(NazivRacuna,'-','')='" + coos.FormatirajRacun(KojiRacun) + "'");
            if (rspromet.Rows.Count > 0)
            {
                pbanka     = Convert.ToInt32(rspromet.Rows[0]["ID_BankaView"]);
                NazivBanke = rspromet.Rows[0]["NazivBanke"].ToString();
                PKomitent  = Convert.ToInt32(rspromet.Rows[0]["id_KomitentiView"]);
            }
            else
            {
                MessageBox.Show("Pogrešan broj tekućeg računa!");
                return;
            }

            str  = "SELECT DISTINCT Datum, ID_Blagajna ";
            str += " FROM  IzvodTotali  WHERE ID_Blagajna =" + pbanka.ToString();
            str += " AND  Format(datum,'dd.MM.yy') ='" + DatumP + "' ";

            rspromet = db.ReturnDataTable(str);
            if (rspromet.Rows.Count > 0)
            {
                MessageBox.Show("Već je izvršen prepis izvoda za datum:" + DatumP + " i račun:" + KojiRacun);
                return;
            }
            rspromet.Dispose();



            str      = "Select * from PlacanjaNaplate as pn,Dokumenta as d  ";
            str     += " where  d.ID_Dokumenta=pn.ID_DokumentaView AND ((Isplate>0 and PrenesenoZaPlacanje=1) or Uplate>0 or VrstaSloga='T')";
            str     += " and Format(d.datum,'dd.MM.yy') ='" + DatumP + "' And ID_BankaView=" + pbanka.ToString() + " order by ID_SvrhaPlacanjaView,SvrhaPlacanjaSaIzvoda";
            rspromet = db.ReturnDataTable(str);


            str = db.ReturnString("delete IzvodPrepisi", 0);
            //Jovana 22.06.21
            //prometprepisani = db.ReturnDataTable(" select * from IzvodPrepisi");
            str = "";
            foreach (DataRow row in rspromet.Rows)
            {
                string opis = "";
                strParams  = "";
                strParams  = "@param1=" + row["Datum"].ToString() + "`";
                strParams += "@param2=" + row["ID_BankaView"] + "`";
                strParams += "@param3=" + row["uplate"].ToString().Replace(",", ".") + "`";
                strParams += "@param4=" + row["isplate"].ToString().Replace(",", ".") + "`";
                strParams += "@param5=" + row["OznakaKnjizenja"] + "`";
                strParams += "@param6=" + row["VrstaSloga"] + "`";

                if (Convert.ToInt32(row["ID_PozivNaBroj"]) > 1)
                {
                    str = "Select ID_PDVUlazniJciTotali as Iid  from PDVUlazniJciTotali where ID_RacunZaPlacanje=" + row["ID_PozivNaBroj"].ToString();
                    rsp = db.ReturnDataTable(str);
                    if (rsp.Rows.Count > 0)
                    {
                        row["ID_PozivNaBroj"] = rsp.Rows[0]["iid"];
                    }
                }
                strParams += "@param7=" + row["ID_PozivNaBroj"] + "`";
                strParams += "@param8=" + row["id_KomitentiView"] + "`";
                strParams += "@param9=" + row["ID_SvrhaplacanjaView"] + "`";
                strParams += "@param10=" + row["StariSaldo"].ToString().Replace(",", ".") + "`";
                strParams += "@param11=" + row["NoviSaldo"].ToString().Replace(",", ".") + "`";
                strParams += "@param12=" + row["BrojIzvoda"] + "`";
                strParams += "@param13=" + row["OblikPlacanja"] + "`";
                //Jovana 23.06.21
                //opis = row["opis"].ToString();
                opis = "";
                if (row["SvrhaPlacanjaSaIzvoda"].ToString().ToUpper().IndexOf("DOZ") > -1 ||
                    row["SvrhaPlacanjaSaIzvoda"].ToString().ToUpper().IndexOf("AKREDIT") > -1)
                {
                    if (row["SvrhaPlacanjaSaIzvoda"].ToString().Length > 17)
                    {
                        opis = row["SvrhaPlacanjaSaIzvoda"].ToString().Substring(17);
                    }
                    else
                    {
                        opis = row["SvrhaPlacanjaSaIzvoda"].ToString();
                    }
                }


                if (row["OblikPlacanja"].ToString().Length == 16)
                {
                    opis = row["PozivNaBrojSaIzvoda"].ToString();
                }

                if (Convert.ToInt32(row["ID_Svrhaplacanjaview"]) == 752)
                {
                    opis = row["SvrhaPlacanjaSaIzvoda"].ToString();
                }

                strParams += "@param14=" + opis + "`";
                strParams += "@param15=" + Program.idkadar;


                str  = " Insert into IzvodPrepisi ( ";
                str += " [Datum],[ID_BankaView],[uplate],[isplate],[OznakaKnjizenja],"; //5
                str += "[VrstaSloga],[ID_PozivNaBroj],";                                //2
                str += "[id_KomitentiView],[ID_SvrhaPlacanja],[StariSaldo],";           // 3
                str += "[NoviSaldo],[BrojIzvoda],[OblikPlacanja],[opis],[uuser] ) ";    //5
                str += " values(@param1,@param2,@param3 ,@param4,";
                str += " @param5,@param6,@param7,";
                str += " @param8 ,@param9,@param10,";
                str += " @param11,@param12,@param13 ,@param14,@param15 ) ";
                lista.Add(new string[] { str, strParams });
                /////...
                lista.ToArray();
            }
            string rezultat = db.ReturnSqlTransactionParams(lista);

            lista.Clear();
            if (rezultat != "")
            {
                MessageBox.Show(rezultat); return;
            }

            str  = "";
            str  = " Select NazivBanke,BrojIzvoda  ";
            str += " from IzvodPrepisi as p,BankaView as b Where p.ID_BankaView=b.ID_BankaView And p.VrstaSloga='T' ";
            prometprepisani.Clear();
            prometprepisani = db.ReturnDataTable(str);

            if (prometprepisani.Rows.Count > 0)
            {
                BrojIzvoda = Convert.ToInt32(prometprepisani.Rows[0]["BrojIzvoda"]);
            }
            pdokument         = "Izvod";
            str               = " SELECT * From DokumentaStablo where Naziv = '" + pdokument + "'";
            rsDokumentaStablo = db.ReturnDataTable(str);

            if (rsDokumentaStablo.Rows.Count > 0)
            {
                IdDokumentaStablo = Convert.ToInt32(rsDokumentaStablo.Rows[0]["ID_DokumentaStablo"]);
            }
            else
            {
                MessageBox.Show("Nije registrovan dokument " + pdokument + "!");
                return;
            }
            //  clsXmlPlacanja cx = new clsXmlPlacanja();
            // BrojDok = cx.KreirajBrDokNovi(pdokument, RedniBroj, DatumP, Program.idOrgDeo, Program.idkadar, IdDokumentaStablo);
            if (NazivBanke.ToUpper().Contains("INTESA") == true)
            {
                OOpis = pdokument + " INTESA " + BrojIzvoda.ToString();
            }
            else
            {
                OOpis = pdokument + " " + NazivBanke.Substring(0, NazivBanke.IndexOf(" ")) + " " + BrojIzvoda.ToString();
            }



            //DateTime dt = Convert.ToDateTime(DatumP);
            //string mesec = Convert.ToString(dt.Month);

            //strParams = "";
            //strParams = "@param1=" + RedniBroj + "`";
            //strParams += "@param2=" + Program.idkadar + "`";
            //strParams += "@param3=" + IdDokumentaStablo + "`";
            //strParams += "@param4=" + BrojDok + "`";
            //strParams += "@param5=" + DatumP.ToString() + "`";
            //strParams += "@param6=" + OOpis + "`";
            //strParams += "@param7=" + Program.idOrgDeo + "`";
            //strParams += "@param8=" + "NijeProknjizeno" + "`";
            //strParams += "@param9=" + mesec;



            //str = "insert into Dokumenta(RedniBroj, ID_KadrovskaEvidencija,";
            //str += " ID_DokumentaStablo, BrojDokumenta, Datum, Opis,";
            //str += " ID_OrganizacionaStrukturaView,Proknjizeno,MesecPoreza)";
            //str += " values(@param1,@param2,@param3,@param4,@param5,@param6,@param7,@param8,@param9)";
            //lista.Clear();
            //lista.Add(new string[] { str, strParams });
            //lista.ToArray();
            //rezultat = db.ReturnSqlTransactionParams(lista);
            //if (rezultat != "") { MessageBox.Show(rezultat); return; }
            //lista.Clear();

            //str = "";
            //str = "select id_dokumenta from dokumenta where BrojDokumenta = '" + BrojDok.ToString() + "'";
            //rsd.Clear();
            //rsd = db.ReturnDataTable(str);
            //IdDokView = Convert.ToInt32(rsd.Rows[0]["Id_Dokumenta"]);

            // zaglavlje
            // rs2 = db.ReturnDataTable("SELECT * FROM Izvod Where ID_DokumentaView=1");
            prometprepisani.Clear();
            prometprepisani = db.ReturnDataTable(" Select *  from IzvodPrepisi as p Where  p.VrstaSloga='T' ");

            str       = "";
            strParams = "";

            if (prometprepisani.Rows.Count > 0)
            {
                strParams += "@param1=" + prometprepisani.Rows[0]["StariSaldo"].ToString().Replace(",", ".") + "`";
                strParams += "@param2=" + prometprepisani.Rows[0]["NoviSaldo"].ToString().Replace(",", ".") + "`";
                strParams += "@param3=" + prometprepisani.Rows[0]["isplate"].ToString().Replace(",", ".") + "`";
                strParams += "@param4=" + prometprepisani.Rows[0]["uplate"].ToString().Replace(",", ".") + "`";
                strParams += "@param5=" + prometprepisani.Rows[0]["BrojIzvoda"] + "`";
            }
            else
            {
                // Jovana 23.11.21
                //MessageBox.Show("Niste preuzeli izvod!");
                //return;
            }
            //Jovana 25.06.21 premestila da se dokument ne upisuje u izvod ako ne postoje slogovi
            clsObradaOsnovnihSifarnika cs = new clsObradaOsnovnihSifarnika();

            IdDokumentaStablo = (int)rsDokumentaStablo.Rows[0]["ID_DokumentaStablo"];
            BrojDok           = ""; //// cs.KreirajBrDokNovi(ref RedniBroj, DatumP, (int)rsDokumentaStablo.Rows[0]["ID_DokumentaStablo"], "");
            int IdDokview = cs.UpisiDokument(ref BrojDok, OOpis, IdDokumentaStablo, DatumP);


            //Jovana 21.06.21
            strParams += "@param6=" + IdDokview + "`";
            strParams += "@param7=" + pbanka + "`";
            strParams += "@param8=" + DatumP + "`";
            strParams += "@param9=" + Program.idkadar;



            char[]   izbor  = { '=' };
            string[] izbor2 = strParams.Split(izbor);

            switch (izbor2.Length)
            {
            case 10:

                str  = " INSERT INTO[dbo].[Izvod] ";
                str += "([KumulativnoDuguje],[KumulativnoPotrazuje],[DPDuguje],[DPPotrazuje],[BrojIzvoda],";
                str += "[ID_DokumentaView],[id_Blagajna],[Datum],[uuser])";
                str += " values(@param1,@param2,@param3,@param4,@param5,@param6,@param7,@param8,@param9)";
                break;

            default:
                strParams = "";
                // Jovana 23.11.21
                //strParams += "@param1=" + prometprepisani.Rows[0]["IdDokView"] + "`";
                //strParams += "@param2=" + prometprepisani.Rows[0]["pbanka"] + "`";
                strParams += "@param1=" + IdDokview + "`";
                strParams += "@param2=" + pbanka + "`";
                strParams += "@param3=" + DatumP + "`";
                strParams += "@param4=" + Program.idkadar;
                str        = " INSERT INTO[dbo].[Izvod] ";
                str       += "([ID_DokumentaView],[id_Blagajna],[Datum],[uuser])";
                str       += " values(@param1,@param2,@param3,@param4)";
                break;
            }

            lista.Clear();
            lista.Add(new string[] { str, strParams });
            lista.ToArray();
            rezultat = db.ReturnSqlTransactionParams(lista);
            if (rezultat != "")
            {
                MessageBox.Show(rezultat); return;
            }
            lista.Clear();


            //' kraj zaglavlje
            ///////////////////////
            str  = "";
            str  = " Select p.*  from IzvodPrepisi as p,BankaView as b Where p.ID_BankaView=b.ID_BankaView ";
            str += " And p.VrstaSloga<>'T' and ID_SvrhaPlacanja <> 752";
            prometprepisani.Clear();

            prometprepisani = db.ReturnDataTable(str);
            //str = "SELECT * FROM IzvodStavke where ID_DokumentaView=1 ";
            //rs2.Clear();
            //rs2 = db.ReturnDataTable(str);

            decimal UkupnoNaknada = 0;

            foreach (DataRow row in prometprepisani.Rows)
            {
                strParams  = "";
                strParams += "@param1=" + IdDokview + "`";
                strParams += "@param2=" + row["id_KomitentiView"] + "`";
                strParams += "@param3=" + row["ID_SvrhaPlacanja"] + "`";
                if (Convert.ToInt32(row["OblikPlacanja"]) == 2)
                {
                    strParams += "@param4=5" + "`";
                }
                else
                {
                    strParams += "@param4=" + row["OblikPlacanja"] + "`";
                }
                strParams += "@param5=" + row["opis"] + "`";
                //Jovana 21.06.21 ne znam zasto je ovo postojalo u vb6?
                //if (Convert.ToInt32(row["OblikPlacanja"]) == 16)
                //{ strParams += "@param5=" + row["opis"] + "`"; }


                strParams += "@param6=" + row["ID_PozivNaBroj"] + "`";
                strParams += "@param7=" + row["uplate"].ToString().Replace(",", ".") + "`";
                strParams += "@param8=" + Math.Round(Convert.ToDecimal(row["isplate"]), 2).ToString().Replace(",", ".") + "`";
                strParams += "@param9=" + Program.idkadar;

                str  = "";
                str  = "INSERT INTO[dbo].[IzvodStavke] ";
                str += " ([ID_DokumentaView],[ID_KomitentiView],[ID_ArtikliView],";
                str += " [ID_NacinPlacanja],[Opis],[ID_PozivNaBroj],[Uplate],[Isplate],[uuser])";
                str += " values(@param1,@param2,@param3,@param4,@param5,@param6,@param7,@param8,@param9)";
                lista.Add(new string[] { str, strParams });
                lista.ToArray();
            }
            rezultat = db.ReturnSqlTransactionParams(lista);
            if (rezultat != "")
            {
                MessageBox.Show(rezultat); return;
            }
            lista.Clear();
            ///////
            str = "";

            prometprepisani.Clear();
            str             = " Select p.*  from IzvodPrepisi as p,BankaView as b Where p.ID_BankaView=b.ID_BankaView ";
            str            += "  And p.VrstaSloga<>'T' and ID_SvrhaPlacanja = 752 order by Opis ";
            prometprepisani = db.ReturnDataTable(str);
            string mopis = "";

            UkupnoNaknada = 0;
            foreach (DataRow row in prometprepisani.Rows)
            {
                if (mopis == "")
                {
                    mopis = row["opis"].ToString();
                }
                if (row["opis"].ToString() != mopis)
                {
                    if (UkupnoNaknada > 0)
                    {
                        strParams  = "";
                        strParams += "@param1=" + IdDokview + "`";
                        strParams += "@param2=" + row["PKomitent"] + "`";
                        strParams += "@param3=752" + "`";
                        strParams += "@param4=5" + "`";
                        strParams += "@param5=1" + "`";
                        strParams += "@param6=0" + "`";
                        strParams += "@param7=" + UkupnoNaknada.ToString().Replace(",", ".") + "`";
                        strParams += "@param8=" + Program.idkadar + "`";
                        strParams += "@param9=" + mopis.ToLower() + "`";

                        str  = "INSERT INTO[dbo].[IzvodStavke] ";
                        str += " ([ID_DokumentaView],[id_KomitentiView],[ID_ArtikliView],";
                        str += " [ID_NacinPlacanja],[ID_PozivNaBroj],[Uplate],[Isplate][uuser],[opis])";
                        str += " values(@param1,@param2,@param3,@param4,@param5,@param6,@param7,@param8,@param9)";

                        lista.Clear();
                        lista.Add(new string[] { str, strParams });
                        lista.ToArray();
                        rezultat = db.ReturnSqlTransactionParams(lista);
                        if (rezultat != "")
                        {
                            MessageBox.Show(rezultat); return;
                        }
                        lista.Clear();
                    }
                    mopis         = row["opis"].ToString();
                    UkupnoNaknada = 0;
                }
                UkupnoNaknada = UkupnoNaknada + Convert.ToInt32(row["isplate"]);
            }

            if (UkupnoNaknada > 0)
            {
                strParams  = "";
                strParams += "@param1=" + IdDokview + "`";
                strParams += "@param2=" + PKomitent + "`";
                strParams += "@param3=752" + "`";
                strParams += "@param4=5" + "`";
                strParams += "@param5=1" + "`";
                strParams += "@param6=0" + "`";
                strParams += "@param7=" + UkupnoNaknada.ToString().Replace(",", ".") + "`";
                strParams += "@param8=" + Program.idkadar + "`";
                strParams += "@param9=" + mopis.ToLower() + "`";

                str  = "[IzvodStavke] ";
                str += " ([ID_DokumentaView],[id_KomitentiView],[ID_ArtikliView],";
                str += " [ID_NacinPlacanja],[ID_PozivNaBroj],[Uplate],[Isplate][uuser],[opis])";
                str += " values(@param1,@param2,@param3,@param4,@param5,@param6,@param7,@param8,@param9)";

                lista.Clear();
                lista.Add(new string[] { str, strParams });
                lista.ToArray();
                rezultat = db.ReturnSqlTransactionParams(lista);
                if (rezultat != "")
                {
                    MessageBox.Show(rezultat); return;
                }
                lista.Clear();
            }
            Dictionary <string, string> rezult  = db.ExecuteStoreProcedure("TotaliZaDokument", "NazivDokumenta:Dokumenta", "IdDokument:" + (int)IdDokview);
            Dictionary <string, string> rezult2 = db.ExecuteStoreProcedure("TotaliZaDokument", "NazivDokumenta:" + pdokument, "IdDokument:" + (int)IdDokview);
        }
Esempio n. 2
0
        private bool UpisiAvans(Form frm, string ZaDokument, string VrstaRacuna, int RacunID, int AvansID, string PKojaOperacija, int TUD)
        {
            bool      UpisiAvans            = false;
            DataTable rssupisi              = new DataTable();
            DataTable rsavansi              = new DataTable();
            DataTable rsracun               = new DataTable();
            DataTable rsStavke              = new DataTable();
            DataTable rsUkupnoOstatak       = new DataTable();
            string    BrojAvansnogDokumenta = "";
            string    NazivAvansa           = "";
            string    Prefiks               = "";
            int       KojiRed               = 0;
            string    KojaRoba              = "";
            string    KojaUsluga            = "";
            string    str      = "";
            string    sbroj    = "0";
            string    NazivArt = "";
            double    Ostatak  = 0;

            str      = "select Dokument, BrDok as BrojDokumenta ,RB from DokumentaTotali WITH(NOLOCK) where id_dokumentaTotali = " + AvansID.ToString();
            rssupisi = db.ReturnDataTable(str);
            if (rssupisi.Rows.Count == 0)
            {
                UpisiAvans = false;
                str        = "Update " + VrstaRacuna + "Stavke set IznosAvansa = 0 WHERE ID_dokumentaView =" + RacunID.ToString();
                SqlCommand cmd = new SqlCommand();
                cmd.CommandType = CommandType.Text;
                cmd.CommandText = str;
                db.Comanda(cmd);
                cmd.Dispose();


                if (VrstaRacuna.Contains("Usluge") == false)
                {
                    str = "Update " + VrstaRacuna + " set ID_Avansi = 1 WHERE ID_dokumentaView =" + RacunID.ToString();
                }
                else
                {
                    str = "Update " + VrstaRacuna + " set ID_AvansiIzvodi = 1 WHERE ID_dokumentaView =" + RacunID.ToString();
                }
                cmd.CommandType = CommandType.Text;
                cmd.CommandText = str;
                db.Comanda(cmd);
                cmd.Dispose();
                return(true);
            }
            UpisiAvans            = true;
            NazivAvansa           = rssupisi.Rows[0]["Dokument"].ToString();
            BrojAvansnogDokumenta = rssupisi.Rows[0]["BrojDokumenta"].ToString();

            if (ZaDokument.Contains("Ulazni") == false)
            {
                KojaRoba   = ZaDokument + "Totali";
                KojaUsluga = "PDVIzlazniRacunzaUslugeTotali";
            }
            else
            {
                KojaRoba   = "KonacniUlazniRacunTotali";
                KojaUsluga = "PDVUlazniRacunzaUslugeTotali";
            }
            str  = "";
            str  = "SELECT isnull(DERIVEDTBL.NazivPoreza,' ')as NazivPoreza,isnull(SUM(DERIVEDTBL.IznosUplate - ISNULL(DERIVEDTBL_1.IskoristenaRoba,0) -ISNULL(DERIVEDTBL_2.IskoristeneUsluge,0)),0) AS Ostaje ";
            str += " FROM (SELECT DISTINCT  NazivPoreza,";
            str += "SUM(IznosUplatePlacanja) AS IznosUplate ";
            str += " FROM " + NazivAvansa.Trim() + "Totali ";
            str += " WHERE BrDok LIKE '" + BrojAvansnogDokumenta + "%'";
            str += " GROUP BY NazivPoreza) DERIVEDTBL FULL JOIN ";
            str += "(SELECT DISTINCT  NazivPoreza,";
            str += "SUM(IznosAvansa) AS IskoristenaRoba ";
            str += " FROM " + KojaRoba.Trim();
            str += " WHERE Avansi LIKE '" + BrojAvansnogDokumenta + "%' and id_" + KojaRoba.Trim() + " <> " + RacunID.ToString();
            str += " GROUP BY NazivPoreza )DERIVEDTBL_1 ON DERIVEDTBL.NazivPoreza = DERIVEDTBL_1.NazivPoreza FULL JOIN";
            str += "(SELECT DISTINCT  NazivPoreza,";
            str += "SUM(IznosAvansa) AS IskoristeneUsluge ";
            str += " FROM " + KojaUsluga.Trim();
            str += " WHERE Avansi LIKE '" + BrojAvansnogDokumenta + "%' and id_" + KojaUsluga.Trim() + " <> " + RacunID.ToString();
            str += " GROUP BY NazivPoreza ) DERIVEDTBL_2 ON DERIVEDTBL.NazivPoreza = DERIVEDTBL_2.NazivPoreza ";
            str += " GROUP BY DERIVEDTBL.NazivPoreza  ";

            rssupisi = null;
            rssupisi = db.ReturnDataTable(str);

            foreach (DataRow row in rssupisi.Rows)
            {
                if (PKojaOperacija == "Update")
                {
                    Ostatak = Convert.ToDouble(row["Ostaje"]);
                    int IdUpdateReda = -1;

                    IdUpdateReda = ((Bankom.frmChield)frm).idReda;


                    if (VrstaRacuna == "Racun")
                    {
                        str  = " select isnull(sum(RacunStavke.IznosAvansa),0) as SumaIznosAvansa ";
                        str += " from  RacunStavke, " + KojaRoba.Trim().Substring(0, KojaRoba.Trim().Length - 6) + "StavkeView ";
                        str += " where " + KojaRoba.Trim().Substring(0, KojaRoba.Trim().Length - 6) + "StavkeView.id_artikliview  = RacunStavke.id_artikliview";
                        str += " and id_" + KojaRoba.Trim().Substring(0, KojaRoba.Trim().Length - 6) + "StavkeView = RacunStavke.id_dokumentaview";
                        str += " and iid=id_RacunStavke and RacunStavke.id_dokumentaview=" + RacunID.ToString();
                        str += " and RacunStavke.ID_RacunStavke <> " + IdUpdateReda.ToString();
                        str += " and " + KojaRoba.Trim().Substring(0, KojaRoba.Trim().Length - 6) + "StavkeView.PorezIme = '" + Convert.ToString(row["NazivPoreza"]).Trim() + "'";

                        rsUkupnoOstatak = db.ReturnDataTable(str);
                        if (rsUkupnoOstatak.Rows.Count > 0)
                        {
                            if (string.IsNullOrEmpty(rsUkupnoOstatak.Rows[0]["SumaiznosAvansa"].ToString()) == false)
                            {
                                Ostatak = Ostatak - Convert.ToDouble(rsUkupnoOstatak.Rows[0]["SumaiznosAvansa"]);
                            }
                        }


                        sbroj = frm.Controls.OfType <Field>().FirstOrDefault(n => n.IME == "IznosAvansa").Vrednost;
                        Console.WriteLine(Convert.ToDouble(sbroj));
                        if (Ostatak > Convert.ToDouble(sbroj) && Convert.ToDouble(sbroj) != 0.0)
                        {
                            Ostatak = Convert.ToDouble(sbroj);
                        }

                        NazivArt = frm.Controls.OfType <Field>().FirstOrDefault(n => n.IME == "NazivArt").Vrednost;
                        //        ' upisujem novu stavku
                        //'NOVO1


                        if (TUD == 0 && NazivArt != "")
                        {
                            rsracun = db.ReturnDataTable("select max(ID_RacunStavke) as max from RacunStavke where id_dokumentaview=" + RacunID.ToString());
                            if (rsracun.Rows[0]["max"] != null)
                            {
                                KojiRed = Convert.ToInt32(rsracun.Rows[0]["max"]);
                            }
                            else
                            {
                                KojiRed = IdUpdateReda;
                            }
                        }
                        if (IdUpdateReda > 0)
                        {
                            str  = "";
                            str  = "UPDATE RacunStavke set IznosAvansa = " + Ostatak.ToString().Replace(",", ".");
                            str += " from  RacunStavke, " + KojaRoba.Substring(0, KojaRoba.Length - 6) + "StavkeView ";
                            str += " where " + KojaRoba.Substring(0, KojaRoba.Length - 6) + "StavkeView.id_artikliview  = RacunStavke.id_artikliview";
                            str += " and id_" + KojaRoba.Substring(0, KojaRoba.Length - 6) + "StavkeView = RacunStavke.id_dokumentaview";
                            str += " and RacunStavke.id_dokumentaview=" + RacunID.ToString();
                            str += " and RacunStavke.ID_RacunStavke = " + KojiRed.ToString();
                            str += " and (RacunStavke.Kolicina*RacunStavke.ProdajnaCena*(100-RacunStavke.ProcenatRabata)/100)+RacunStavke.PDV >= " + Ostatak.ToString().Replace(",", ".");
                            str += " and " + KojaRoba.Substring(0, KojaRoba.Length - 6) + "StavkeView.PorezIme = '" + row["NazivPoreza"].ToString().Trim() + "'";
                            string rezultet = db.ReturnString(str, 0);
                            //if (rezultet != "") { MessageBox.Show("Greska -UpisiAvansa"); return false; }

                            str      = "UPDATE RacunStavke set IznosAvansa =(RacunStavke.Kolicina*RacunStavke.ProdajnaCena*(100-RacunStavke.ProcenatRabata)/100)+RacunStavke.PDV";
                            str     += " from  RacunStavke, " + KojaRoba.Substring(0, KojaRoba.Length - 6) + "StavkeView ";
                            str     += " where " + KojaRoba.Substring(0, KojaRoba.Length - 6) + "StavkeView.id_artikliview  = RacunStavke.id_artikliview";
                            str     += " and id_" + KojaRoba.Substring(0, KojaRoba.Length - 6) + "StavkeView = RacunStavke.id_dokumentaview";
                            str     += " and RacunStavke.id_dokumentaview=" + RacunID.ToString();
                            str     += " and RacunStavke.ID_RacunStavke = " + KojiRed.ToString();
                            str     += " and (RacunStavke.Kolicina*RacunStavke.ProdajnaCena*(100-RacunStavke.ProcenatRabata)/100)+RacunStavke.PDV < " + Ostatak.ToString().Replace(",", ".");
                            str     += " and " + KojaRoba.Substring(0, KojaRoba.Length - 6) + "StavkeView.PorezIme = '" + row["NazivPoreza"].ToString() + "'";
                            rezultet = db.ReturnString(str, 0);
                            //if (rezultet != "") { MessageBox.Show("Greska -UpisiAvansa"); return false; }
                        }
                        else
                        {
                            //' kod izmene ide po svim stavkama

                            str      = "Select * from RacunStavke, " + KojaRoba.Substring(0, KojaRoba.Length - 6) + "StavkeView ";
                            str     += " where " + KojaRoba.Substring(0, KojaRoba.Length - 6) + "StavkeView.id_artikliview  = RacunStavke.id_artikliview";
                            str     += " and id_" + KojaRoba.Substring(0, KojaRoba.Length - 6) + "StavkeView = RacunStavke.id_dokumentaview";
                            str     += " and Id_DokumentaView = " + RacunID.ToString() + " and RacunStavke.IznosAvansa=0 ";
                            str     += " and " + KojaRoba.Substring(0, KojaRoba.Length - 6) + "StavkeView.PorezIme = '" + row["NazivPoreza"].ToString() + "'";
                            rsStavke = db.ReturnDataTable(str);

                            foreach (DataRow red in rsStavke.Rows)
                            {
                                str  = "UPDATE RacunStavke set IznosAvansa = " + Ostatak.ToString().Replace(",", ".");
                                str += " from RacunStavke where id_RacunStavke= " + red["id_RacunStavke"];
                                str += " and (RacunStavke.Kolicina*RacunStavke.ProdajnaCena*(100-RacunStavke.ProcenatRabata)/100)+RacunStavke.PDV >= " + Ostatak.ToString().Replace(",", ".");
                                string rezultet = db.ReturnString(str, 0);
                                Console.WriteLine(str);

                                str      = "UPDATE RacunStavke set IznosAvansa =(RacunStavke.Kolicina*RacunStavke.ProdajnaCena*(100-RacunStavke.ProcenatRabata)/100)+RacunStavke.PDV";
                                str     += " where id_RacunStavke= " + red["id_RacunStavke"];
                                str     += " and (RacunStavke.Kolicina*RacunStavke.ProdajnaCena*(100-RacunStavke.ProcenatRabata)/100)+RacunStavke.PDV < " + Ostatak.ToString().Replace(",", ".");
                                rezultet = db.ReturnString(str, 0);
                                Console.WriteLine(str);

                                if (Convert.ToInt32(red["Kolicina"]) * Convert.ToInt32(red["ProdajnaCena"]) * (100 - Convert.ToInt32(red["ProcenatRabata"]) / 100) + Convert.ToInt32(red["PDV"]) >= Ostatak)
                                {
                                    Ostatak = 0;
                                }
                                else
                                {
                                    Ostatak = Ostatak - (Convert.ToInt32(red["Kolicina"]) * Convert.ToInt32(red["ProdajnaCena"]) * (100 - Convert.ToInt32(red["ProcenatRabata"]) + Convert.ToInt32(red["PDV"])));
                                }
                            }
                        }
                    }
                    else
                    {
                        str  = "select IsNULL(sum(RacunZaUslugeStavke.IznosAvansa), 0) as SumaIznosAvansa";
                        str += " from RacunZaUslugeStavke, " + KojaUsluga.Substring(0, KojaUsluga.Length - 6) + "StavkeView ";
                        str += " where " + KojaUsluga.Substring(0, KojaUsluga.Length - 6) + "StavkeView.id_artikliview  = RacunZaUslugeStavke.id_artikliview";
                        str += " and id_" + KojaUsluga.Substring(0, KojaUsluga.Length - 6) + "StavkeView = RacunZaUslugeStavke.id_dokumentaview";
                        str += " and RacunZaUslugeStavke.id_dokumentaview=" + RacunID.ToString();
                        str += " and RacunZaUslugeStavke.ID_RacunZaUslugeStavke <> " + IdUpdateReda.ToString();
                        str += " and " + KojaUsluga.Substring(0, KojaUsluga.Length - 6) + "StavkeView.PorezIme = '" + row["NazivPoreza"] + "'";

                        rsUkupnoOstatak = db.ReturnDataTable(str);

                        if (rsUkupnoOstatak.Rows.Count > 0 && rsUkupnoOstatak.Rows[0]["SumaiznosAvansa"] != null)
                        {
                            Ostatak = Ostatak - Convert.ToDouble(rsUkupnoOstatak.Rows[0]["SumaiznosAvansa"]);
                        }

                        sbroj = frm.Controls.OfType <Field>().FirstOrDefault(n => n.IME == "IznosAvansa").Vrednost;

                        if (Ostatak > Convert.ToDouble(sbroj) && Convert.ToDouble(sbroj) != 0.0)
                        {
                            Ostatak = Convert.ToDouble(sbroj);
                        }

                        NazivArt = frm.Controls.OfType <Field>().FirstOrDefault(n => n.IME == "NazivArt").Vrednost;
                        //        ' upisujem novu stavku
                        //'NOVO1


                        if (TUD == 0 && NazivArt != "")
                        {
                            rsracun = db.ReturnDataTable("select max(ID_RacunZaUslugeStavke) as max from RacunZaUslugeStavke where id_dokumentaview=" + RacunID.ToString());
                            if (rsracun.Rows[0]["max"] != null)
                            {
                                KojiRed = Convert.ToInt32(rsracun.Rows[0]["max"]);
                            }
                            else
                            {
                                KojiRed = IdUpdateReda;
                            }
                        }
                        if (IdUpdateReda > 0)
                        {
                            str  = "";
                            str  = "UPDATE RacunZaUslugeStavke set IznosAvansa = " + Ostatak.ToString().Replace(",", ".");
                            str += " from  RacunZaUslugeStavke, " + KojaUsluga.Substring(0, KojaUsluga.Length - 6) + "StavkeView ";
                            str += " where " + KojaUsluga.Substring(0, KojaUsluga.Length - 6) + "StavkeView.id_artikliview  = RacunZaUslugeStavke.id_artikliview";
                            str += " and id_" + KojaUsluga.Substring(0, KojaUsluga.Length - 6) + "StavkeView = RacunZaUslugeStavke.id_dokumentaview";
                            str += " and RacunZaUslugeStavke.id_dokumentaview=" + RacunID.ToString();
                            str += " and RacunZaUslugeStavke.ID_RacunZaUslugeStavke = " + KojiRed.ToString();
                            str += " and (RacunZaUslugeStavke.FakturnaVrednost +" + KojaUsluga.Substring(0, KojaUsluga.Length - 6) + "StavkeView.PDV ) >= " + Ostatak.ToString().Replace(",", ".");
                            str += " and " + KojaUsluga.Substring(0, KojaUsluga.Length - 6) + "StavkeView.PorezIme = '" + row["NazivPoreza"].ToString().Trim() + "'";
                            Console.WriteLine(str);
                            string rezultet = db.ReturnString(str, 0);

                            //if (rezultet != "") { MessageBox.Show("Greska -UpisiAvansa"); return false; }

                            str  = "UPDATE RacunZaUslugeStavke set IznosAvansa =(RacunZaUslugeStavke.FakturnaVrednost +" + KojaUsluga.Substring(0, KojaUsluga.Length - 6) + "StavkeView.PDV) ";
                            str += " from  RacunZaUslugeStavke, " + KojaUsluga.Substring(0, KojaUsluga.Length - 6) + "StavkeView ";
                            str += " where " + KojaUsluga.Substring(0, KojaUsluga.Length - 6) + "StavkeView.id_artikliview  = RacunZaUslugeStavke.id_artikliview";
                            str += " and id_" + KojaUsluga.Substring(0, KojaUsluga.Length - 6) + "StavkeView = RacunZaUslugeStavke.id_dokumentaview";
                            str += " and RacunZaUslugeStavke.id_dokumentaview=" + RacunID.ToString();
                            str += " and RacunZaUslugeStavke.ID_RacunZaUslugeStavke = " + KojiRed.ToString();
                            str += " and (RacunZaUslugeStavke.FakturnaVrednost+ " + KojaUsluga.Substring(0, KojaUsluga.Length - 6) + "StavkeView.PDV ) < " + Ostatak.ToString().Replace(",", ".");
                            str += " and " + KojaUsluga.Substring(0, KojaUsluga.Length - 6) + "StavkeView.PorezIme = '" + row["NazivPoreza"].ToString() + "'";
                            Console.WriteLine(str);
                            rezultet = db.ReturnString(str, 0);
                            //if (rezultet != "") { MessageBox.Show("Greska -UpisiAvansa"); return false; }
                        }
                        else
                        {
                            //' kod izmene ide po svim stavkama

                            str      = "Select * from RacunZaUslugeStavke, " + KojaUsluga.Substring(0, KojaUsluga.Length - 6) + "StavkeView ";
                            str     += " where " + KojaUsluga.Substring(0, KojaUsluga.Length - 6) + "StavkeView.id_artikliview  = RacunZaUslugeStavke.id_artikliview";
                            str     += " and id_" + KojaUsluga.Substring(0, KojaUsluga.Length - 6) + "StavkeView = RacunZaUslugeStavke.id_dokumentaview";
                            str     += " and Id_DokumentaView = " + RacunID.ToString() + " and RacunZaUslugeStavke.IznosAvansa=0 ";
                            str     += " and " + KojaUsluga.Substring(0, KojaUsluga.Length - 6) + "StavkeView.PorezIme = '" + row["NazivPoreza"].ToString() + "'";
                            rsStavke = db.ReturnDataTable(str);

                            foreach (DataRow red in rsStavke.Rows)
                            {
                                str  = "UPDATE RacunZaUslugeStavke set IznosAvansa = " + Ostatak.ToString().Replace(",", ".");
                                str += " from RacunZaUslugeStavke where id_RacunZaUslugeStavke= " + red["id_RacunZaUslugeStavke"];
                                str += " and (RacunZaUslugeStavke.FakturnaVrednost+RacunZaUslugeStavke.PDV ) >= " + Ostatak.ToString().Replace(",", ".");
                                string rezultet = db.ReturnString(str, 0);
                                Console.WriteLine(str);

                                str      = "UPDATE RacunZaUslugeStavke set IznosAvansa =(RacunZaUslugeStavke.FakturnaVrednost + RacunZaUslugeStavke.PDV) ";
                                str     += " where id_RacunZaUslugeStavke= " + red["id_RacunZaUslugeStavke"];
                                str     += " and (RacunZaUslugeStavke.FakturnaVrednost+RacunZaUslugeStavke.PDV ) < " + Ostatak.ToString().Replace(",", ".");
                                rezultet = db.ReturnString(str, 0);
                                Console.WriteLine(str);

                                if (Convert.ToInt32(red["FakturnaVrednost"]) + Convert.ToInt32(red["PDV"]) >= Ostatak)
                                {
                                    Ostatak = 0;
                                }
                                else
                                {
                                    Ostatak = Ostatak - (Convert.ToInt32(red["FakturnaVrednost"]) + Convert.ToInt32(red["PDV"]));
                                }
                            }
                        }
                    }
                }
            }
            return(UpisiAvans);
        }