private void frmChield_Activated(object sender, EventArgs e)
 {
     if (DokumentJe != null) //Djora 20.05.21
     {
         //tamara 03.2021.  Djora 10.05.21
         //if (exe == "Excel.exe")
         if (Program.Excel != "" && Program.Excel != null)
         {
             //Djora 20.05.21 02.07.21 Ovde netreba da brise mozda malo kasnije
             //Program.Excel = "";
         }
         else
         {
             Boolean           provera = true;
             clsProveraDozvola provdoz = new clsProveraDozvola();
             // Jovana 06.12.21 dodala OrganizacionaStruktura
             if (imestabla == "Artikli" || imestabla == "Komitenti" || imestabla == "OrganizacionaStruktura")
             {
                 if (OOperacija.Text != "PREGLED")
                 {
                     provera = provdoz.ProveriDozvole(imestabla, idstablo.ToString(), Convert.ToString(iddokumenta), DokumentJe);
                 }
             }
             else
             {
                 if (OOperacija.Text != "PREGLED" && sender.ToString() != "Bankom.Imenik, Text: frmChield")
                 {
                     provera = provdoz.ProveriDozvole(imedokumenta, idstablo.ToString(), Convert.ToString(iddokumenta), DokumentJe);
                 }
             }
         }
     }
 }
        public void ObradiNalogAutomatski()
        {
            // UPISIVANJE NALOGA GLAVNE KNJGE U DOKUMENTA
            Form forma = new Form();

            forma       = Program.Parent.ActiveMdiChild;
            BrDokZaKnj  = forma.Controls["lBrDok"].Text.ToString();
            idDokStablo = Convert.ToInt32(forma.Controls["lidstablo"].Text);

            //Jovana 30.06.21
            // Ne moze knjiziti autor dokumenta
            sql = "select uuser from dokumenta where BrojDokumenta =@param0";
            DataTable t = db.ParamsQueryDT(sql, BrDokZaKnj);

            if (t.Rows.Count > 0)
            {
                if (Convert.ToInt32(t.Rows[0]["uuser"]) == Program.idkadar)
                {
                    MessageBox.Show("Knjizenje ne moze vrsiti autor !");
                    return;
                }
            }

            //ODREDJIVANJE Id DOKUMENTA ZA KNJIZENJE i ID_DokumenStablo
            string IdDokZaKnj = forma.Controls["liddok"].Text.ToString();  /////ef.DajVrednostPropertija(forma, "iddokumenta");

            //long IdStabloZaKnjizenje = Convert.ToInt64(ef.DajVrednostPropertija(activeChild, "IDDokStablo"));
            // Jovana 05.10.21 promenila upite na parametarske
            sql = "select id_dokumentaTotali,dokument,ID_DokumentaStablo,Rb,datum from dokumentaTotali WITH(NOLOCK) where id_dokumentaTotali =@param0";
            t   = db.ParamsQueryDT(sql, IdDokZaKnj);
            if (t.Rows.Count == 0)
            {
                return;
            }

            IdStabloZaKnjizenje = Convert.ToInt32(t.Rows[0]["ID_DokumentaStablo"]);
            RedniBrZaKnjizenje  = Convert.ToInt64(t.Rows[0]["RB"]);

            opis = IdStabloZaKnjizenje.ToString() + "-" + RedniBrZaKnjizenje.ToString();

            IdStabloZaKnjizenje = 29;
            NazivDokumenta      = forma.Controls["limedok"].Text; // t.Rows[0]["Dokument"].ToString();
            //strParams =  "@param1='" +NazivDokumenta  + "`";
            sql = "SELECT UlazniIzlazni as NazivKlona from SifarnikDokumenta where Naziv=@param0";

            t = db.ParamsQueryDT(sql, NazivDokumenta);

            NazivKlona = t.Rows[0]["NazivKlona"].ToString();
            dtm        = DateTime.Today; // danasnji dan

            string Datum = forma.Controls.OfType <Field>().FirstOrDefault(n => n.IME == "Datum").Vrednost;

            //datum naloga da je datum dokumenta! ISKORISTITI PODATAK Program.datumk
            if (dtm < Convert.ToDateTime("01.03." + dtm.Year.ToString().Substring(2)) & dtm.Year != Convert.ToDateTime(Datum).Year)
            {
                dtm = Convert.ToDateTime(Datum);
            }

            //PROVERA DA LI JE VEC PROKNJIZEN NEKIM DRUGIM NALOGOM
            sql = " select ID_DokumentaView,ID_OpisTransakcijeView,BrojDokumenta "
                  + " from NalogGlavneKnjigeStavke WITH(NOLOCK),Dokumenta WITH(NOLOCK) "
                  + " where ID_Dokumenta= ID_DokumentaView and ID_DokumentZaKnj = @param0";
            t = db.ParamsQueryDT(sql, IdDokZaKnj);
            if (t.Rows.Count > 0)
            {
                MessageBox.Show("Dokument je vec proknjizen nalogom -> " + t.Rows[0]["BrojDokumenta"]);
                return;
            }
            //PROVERA ZA IZVOD DA LI SE SLAZU UNESENI I DNEVNI PROMET
            if (NazivDokumenta == "Izvod")
            {
                sql = "Select Distinct SumaIsplate,DPDuguje,SumaUplate,DPPotrazuje from IzvodTotali WHERE ID_IzvodTotali=@param0";
                t   = db.ParamsQueryDT(sql, IdDokZaKnj);

                if (t.Rows[0]["SumaIsplate"] != t.Rows[0]["DPDuguje"] || t.Rows[0]["SumaUplate"] != t.Rows[0]["DPPotrazuje"])
                {
                    MessageBox.Show("Ne slazu se dnevni i uneseni promet Izvod se ne moze knjiziti ISPAVITE!!!! ");
                    return;
                }
            }
            //PROVERA ZA NALOGZADORADU DA LI SE SLAZU KOLICINA ZA PAKOVANJE SA ZAPAKOVANIM KOLICINAMA
            if (NazivDokumenta == "LotNalogZaDoradu")
            {
                sql = " Select Distinct SumaKolicina as sk,SumaKolicinaSirovine as sks "
                      + " from LotNalogZaPoluProizvodTotali "
                      + " WHERE ID_LotNalogZaPoluProizvodTotali=@param0";

                t = db.ParamsQueryDT(sql, IdDokZaKnj);

                if (Convert.ToDecimal(t.Rows[0]["sk"]) != Convert.ToDecimal(t.Rows[0]["sks"]))
                {
                    MessageBox.Show("Ne slazu se sume kolicina dokument se ne moze knjiziti ISPAVITE!!!! ");
                    return;
                }
            }

            //DODELJIVANJE Id TRANSAKCIJE(biranje seme knjizenja)
            if (NazivDokumenta == "FinansijskiInterniNalog" || NazivDokumenta == "PDVIzvestajOKnjizenju")
            {
                sql = "select ID_DokumentaView from OpisTransakcije WITH(NOLOCK) where OpisTransakcije not like '%ispravka%' and Tabela = '" + NazivDokumenta + "' order by ID_DokumentaView  ";
            }
            else
            {
                if (NazivKlona == "PreknjizavanjeKonta")
                {
                    // Jovana 05.10.21 bilo je NazivDokumenta.Substring(1, 3)
                    sql = " select ID_DokumentaView from OpisTransakcije  WITH(NOLOCK) where OpisTransakcije not like '%ispravka%' "
                          + " and Tabela ='" + NazivKlona + "' and opistransakcije like'%" + NazivDokumenta.Substring(1, 3) + "%' order by ID_DokumentaView desc ";
                }
                else
                {
                    sql = "select ID_DokumentaView from OpisTransakcije  WITH(NOLOCK) where OpisTransakcije not like '%ispravka%' and Tabela ='" + NazivDokumenta + "' order by ID_DokumentaView desc ";
                }
            }
            t = db.ReturnDataTable(sql);
            if (t.Rows.Count > 0)
            {
                //ID transakcije
                IdTrans = t.Rows[0]["ID_DokumentaView"].ToString();
            }
            else
            {
                sql = " select ID_DokumentaView from OpisTransakcije  WITH(NOLOCK) where OpisTransakcije not like '%ispravka%' "
                      + " and Tabela =@param0 order by ID_DokumentaView desc ";
                t = db.ParamsQueryDT(sql, NazivKlona);
                if (t.Rows.Count > 0)
                {
                    //ID transakcije
                    IdTrans = t.Rows[0]["ID_DokumentaView"].ToString();
                }
                else
                {
                    MessageBox.Show("Nije definisana transakcija za " + NazivDokumenta);
                    return;
                }
            }

            int IdDokView;
            clsObradaOsnovnihSifarnika os = new clsObradaOsnovnihSifarnika();

            // Jovana 03.12.21 -
            //IdDokView = os.UpisiDokument(ref BrojDok, opis, 29, Datum.ToString());
            IdDokView = os.UpisiDokument(ref BrojDok, opis, 29, dtm.ToString());
            //Totali za Dokumenta sa ID_Dokumenta = idDokView   izvrsava se u  FUNKCIJI UpisiDokument

            UpisiUNalog(IdDokView);
            UpisiUStavke(IdDokView, IdDokZaKnj);
            ObradiBB(BrDokZaKnj, IdDokView);
            string Poruka = "";

            //provera ispravnostinaloga
            Poruka = DovrsiObradu(IdDokZaKnj);

//Izvrsenje totala za Dokument koji knjizimo
            db.ExecuteStoreProcedure("TotaliZaDokument", "NazivDokumenta:Dokumenta", "IdDokument:" + IdDokZaKnj);

            if (Poruka.Trim() != "") /// razmisliti
            {
                MessageBox.Show(Poruka);
                deleteGlavnaKnjiga(IdDokZaKnj);
            }
            else
            {
                MessageBox.Show("Za dokument: " + BrDokZaKnj.Trim() + " Broj naloga je: " + (BrojDok).Trim());
            }
            //ivana 7.10.2021.
            clsProveraDozvola pd = new clsProveraDozvola();

            //ivana 11.10.2021. umesto idDokStablo stavila sam IdDokZaKnj
            pd.ProveriDozvole(NazivDokumenta, idDokStablo.ToString(), IdDokZaKnj.ToString(), "D");
        } // kraj obradi nalog automatski
        public void Osvezi(string Operacija, ref long BrojDok)
        {
            DataTable dp = new DataTable();

            if (Operacija == "")
            {
                return;
            }
            if (IdDokView == "0")
            {
                dp = db.ReturnDataTable(UpitZaPregled);
                if (dp.Rows.Count > 0)
                {
                    IdDokView = dp.Rows[0]["IdDokumentZaPregled"].ToString();
                }
            }

            if (((Bankom.frmChield)forma).panel1.Visible == false)
            {
                ((Bankom.frmChield)forma).panel1.Visible = true;
            }

            switch (Operacija)
            {
            case "prvi":
                if (dp.Rows.Count > 0)
                {
                    IdDokView = dp.Rows[0]["IdDokumentZaPregled"].ToString();
                    ((Bankom.frmChield)forma).lblBroj.Text = "1";
                }
                break;

            case "prethodni":
                if (BrojDok < 1)
                {
                    BrojDok += 1;
                    return;
                }
                IdDokView = dp.Rows[Convert.ToInt32(BrojDok) - 1]["IdDokumentZaPregled"].ToString();
                ((Bankom.frmChield)forma).lblBroj.Text = Convert.ToString(BrojDok);
                break;

            case "sledeci":
                if (BrojDok > kk)
                {
                    BrojDok -= 1;
                    return;
                }
                IdDokView = dp.Rows[Convert.ToInt32(BrojDok) - 1]["IdDokumentZaPregled"].ToString();
                ((Bankom.frmChield)forma).lblBroj.Text = Convert.ToString(BrojDok);
                break;

            case "poslednji":
                BrojDok   = kk;
                IdDokView = dp.Rows[Convert.ToInt32(kk - 1)]["IdDokumentZaPregled"].ToString();
                ((Bankom.frmChield)forma).lblBroj.Text = Convert.ToString(kk);
                break;
            }

            cdr.refreshDokumentBody(forma, imedokumenta, IdDokView, dokje);
            cdr.refreshDokumentGrid(forma, imedokumenta, IdDokView, "", "", dokje);


            pd.ProveriDozvole(imedokumenta, Idstablo, IdDokView, dokje);
        }
        public bool Obradi(int IdDokView, ref int ID_DokumentaStablo, ref string Dokument, ref string BrDok)
        {
            bool Obradi = false;

            sql = "select distinct d.Dokument,d.ID_DokumentaStablo,BrDok,datum,Predhodni,ID_Predhodni from dokumentatotali as d WITH(NOLOCK) where  d.id_dokumentatotali=@param0 ";
            DataTable dt = db.ParamsQueryDT(sql, IdDokView);

            if (dt.Rows.Count != 0)
            {
                Dokument           = dt.Rows[0]["Dokument"].ToString();
                ID_DokumentaStablo = Convert.ToInt32(dt.Rows[0]["ID_DokumentaStablo"]);
                BrDok        = dt.Rows[0]["BrDok"].ToString();
                datum        = dt.Rows[0]["datum"].ToString();
                Prethodni    = dt.Rows[0]["Predhodni"].ToString();
                ID_Prethodni = dt.Rows[0]["ID_Predhodni"].ToString();
            }
            // Jovana 21.12.21
            if (ID_Prethodni == "1")
            {
                return(true);
            }

            sql = "select UlazniIzlazni  as NazivKlona,NacinRegistracije,PutanjaZaCuvanje,prikaz,vrsta,OdakleSePreuzima from SifarnikDokumenta where Naziv=@param0";
            DataTable dt1 = db.ParamsQueryDT(sql, Dokument);

            if (dt1.Rows.Count != 0)
            {
                NazivKlona        = dt1.Rows[0]["NazivKlona"].ToString();
                NacinRegistracije = dt1.Rows[0]["NacinRegistracije"].ToString();
                prikaz            = dt1.Rows[0]["prikaz"].ToString().Trim();
                DokumentJe        = dt1.Rows[0]["vrsta"].ToString().Trim();
                OdakleSePreuzima  = dt1.Rows[0]["OdakleSePreuzima"].ToString().Trim();
                PutanjaDokumenta  = dt1.Rows[0]["PutanjaZaCuvanje"].ToString().Trim();
            }
            //jovana 16.04.21 Dokument zamenila sa NazivKlona (ino avansni racun bio motiv)
            sql = "select oorderby as TrebaProvera from recnikpodataka where dokument=@param0 and oorderby>0 and oorderby<5";
            DataTable dt2 = db.ParamsQueryDT(sql, NazivKlona);

            if (dt2.Rows.Count != 0)
            {
                TrebaProvera = dt2.Rows[0]["TrebaProvera"].ToString();
            }

            if (Dokument.Trim() == "")
            {
                return(Obradi);
            }
            // provera dozvola se zove kod otvaranja forme
            clsProveraDozvola cPd = new clsProveraDozvola();

            Obradi = cPd.ProveriDozvole(Dokument, ID_DokumentaStablo.ToString(), IdDokView.ToString(), DokumentJe);

            if (Obradi == false)
            {
                MessageBox.Show("Nije dozvoljen pristup");
                return(Obradi);
            }

            sql = "select NazivJavni from dokumentastablo where id_dokumentastablo=@param0";
            DataTable dt3 = db.ParamsQueryDT(sql, ID_DokumentaStablo);

            if (dt3.Rows.Count != 0)
            {
                Naslov = dt3.Rows[0]["NazivJavni"].ToString();
            }

            if (NacinRegistracije == "B")
            {
                if (Dokument.Contains("OpisTransakcije") == true)
                {
                    return(true);
                }
                sql = "select ID_" + NazivKlona.Trim() + "Totali from " + NazivKlona.Trim() + "Totali where ID_" + NazivKlona.Trim() + "Totali=" + IdDokView;
                DataTable dt4 = db.ReturnDataTable(sql);
                if (dt4.Rows.Count != 0)
                {
                    if (NazivKlona != "PrometUplata")
                    {
                        return(true);
                    }
                }
            }
            if (NacinRegistracije == "W" || NacinRegistracije == "E" || NacinRegistracije == "P")
            {
                ObradaWordExcelPdf OWEP = new ObradaWordExcelPdf();
                //tamara 27.4.2021.
                OWEP.OtvoriDokument(NacinRegistracije, PutanjaDokumenta, BrDok, DokumentJe);
                return(false);
            }
            //tamara 7.5.2021.
            //Obradi = true;

            if (NacinRegistracije == "B" && OdakleSePreuzima.Trim() != "")
            {
                bool otvori = PovlacenjeSaPrethodnika(Dokument, IdDokView);
                //tamara 7.5.2021
                //if (otvori == false)
                //    Obradi = false;
            }

            // Jovana 21.12.21
            Prethodi = true;
            return(Obradi);
        }