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);
        }
예제 #2
0
        public void PovlacenjeAvansa(Form forma1, string KojiDok, int ParIdDok)

        {
            int             IdDokAvans = 1;
            string          KojiRacun  = "";
            List <string[]> lista      = new List <string[]>();
            string          strParams  = "";

            SqlCommand cmd = new SqlCommand();

            if (KojiDok == "PDVIzlazniRacunZaUsluge" || KojiDok == "PDVUlazniRacunZaUsluge")
            {
                KojiRacun = "RacunZaUsluge";
            }
            else
            {
                KojiRacun = "Racun";
            }

            //Jovana 25.05.21
            foreach (var pb in forma1.Controls.OfType <Field>())
            {
                if (pb.IME == "Avansi")
                {
                    IdDokAvans = Convert.ToInt32(pb.ID);
                }
            }
            //IdDokAvans = Convert.ToInt32(forma1.Controls.OfType<Field>().FirstOrDefault(n => n.IME == "Avansi").ID);

            if (IdDokAvans == 1)
            {
                strParams  = "";
                strParams += "@param1=" + ParIdDok;

                cmd.CommandType = CommandType.Text;
                str             = "Update " + KojiRacun + "Stavke set IznosAvansa = 0 WHERE ID_dokumentaView = @param1";
                lista.Add(new string[] { str, strParams });            /////...
                lista.ToArray();
                string rezultat = db.ReturnSqlTransactionParams(lista);
                // cmd.CommandText = str;
                //  db.Comanda(cmd);
                //  cmd.Dispose();
                return;
            }
            str  = "delete from " + KojiRacun + "Stavke Where id_ArtikliView= 1 AND ";
            str += "ID_dokumentaView =" + ParIdDok.ToString();

            cmd             = new SqlCommand();
            cmd.CommandType = CommandType.Text;
            cmd.CommandText = str;
            db.Comanda(cmd);
            cmd.Dispose();

            str             = "Select Sum(IznosAvansa) as UpisaniAvansi from ";
            str            += KojiRacun + "Stavke where ID_dokumentaView =" + ParIdDok.ToString();
            cmd             = new SqlCommand();
            cmd.CommandType = CommandType.Text;
            cmd.CommandText = str;
            db.Comanda(cmd);
            cmd.Dispose();

            str  = "Select Sum(IznosAvansa) as UpisaniAvansi from ";
            str += KojiRacun + "Stavke where ID_dokumentaView = " + ParIdDok.ToString();
            DataTable dt = db.ReturnDataTable(str);


            switch (dt.Rows.Count)
            {
            case 0:
                break;

            default:
                UpisiAvans(forma1, KojiDok, KojiRacun, ParIdDok, IdDokAvans, "Update", 0);
                break;
            }
        }