Exemple #1
0
        private void btnProcent_Click(object sender, EventArgs e)
        {
            textBox1Focus();
            if (Prevzema)
            {
                return;
            }
            Prevzema = true;
            if (CurrSortiranje.Equals(Sortiranje.ProcentOpagjacki))
            {
                pbProcent.Image = Resources.LightArrowUp;
                CurrSortiranje  = Sortiranje.ProcentRastecki;
            }
            else
            {
                pbProcent.Image = Resources.LightArrowDown;
                pbStara.Image   = Resources.DarkArrowDown;
                pbNova.Image    = Resources.DarkArrowDown;
                pbIme.Image     = Resources.DarkArrowDown;
                CurrSortiranje  = Sortiranje.ProcentOpagjacki;
            }
            Thread oThread = new Thread(new ThreadStart(PrevzemiStavki));

            oThread.Start();
            LoadingSemaphore.Release();
        }
Exemple #2
0
        public void PrevzemiStavki()
        {
            string sql = @"SELECT A.IME_STAVKA AS STAVKA, A.CENA_STAVKA || ' ден.' AS CENA, NVL(A.PROSEK, 0) || ' ком/ден' AS NOV, NVL(B.PROSEK, 0) || ' ком/ден' AS STAR, ROUND((A.PROSEK - B.PROSEK)*100/B.PROSEK, 2) || '%' AS PROCENT_NA_PORAST
                            FROM
	                            (
	                            SELECT S.IME_MENI, S.IME_STAVKA, S.OPIS_STAVKA, S.CENA_STAVKA, VALIDNOST_STAVKA, ROUND(SUM(V.KOLICHINA_STAVKA) / TO_NUMBER(MAX(N.VREME) - MIN(N.VREME) + 1), 1) AS PROSEK
	                            FROM
	                            (
		                            SELECT RESTORAN_ID, IME_MENI, STAVKA_ID, IME_STAVKA, VALIDNOST_STAVKA, OPIS_STAVKA, CENA_STAVKA
		                            FROM 
			                            (
			                            SELECT 
				                            RESTORAN_ID, IME_MENI, STAVKA_ID, IME_STAVKA, VALIDNOST_STAVKA, OPIS_STAVKA, CENA_STAVKA
			                            FROM 
				                            STAVKA
			                            WHERE 
				                            RESTORAN_ID = :RES_ID AND VALIDNOST_STAVKA = 1
			                            )
		                            WHERE 
			                            (RESTORAN_ID, IME_MENI, IME_STAVKA) IN
				                            (
				                            SELECT 
					                            RESTORAN_ID, IME_MENI, IME_STAVKA
				                            FROM 
					                            STAVKA
				                            WHERE RESTORAN_ID = :RES_ID1 AND VALIDNOST_STAVKA = 0
				                            )
		                            ) S
		                            LEFT OUTER JOIN
		                            VKLUCHUVA V
			                            ON 
				                            S.RESTORAN_ID = V.RESTORAN_ID AND S.IME_MENI = V.IME_MENI AND S.STAVKA_ID = V.STAVKA_ID
		                            LEFT OUTER JOIN
		                            NARACHKA N
			                            ON
				                            V.RESTORAN_ID = N.RESTORAN_ID AND V.NARACHKA_ID = N.NARACHKA_ID
		                            GROUP BY
			                            (S.RESTORAN_ID, S.IME_MENI, S.STAVKA_ID, S.IME_STAVKA, S.VALIDNOST_STAVKA, S.OPIS_STAVKA, S.CENA_STAVKA)
	                            ) A
	                            JOIN
	                            (
		                            SELECT IME_MENI, IME_STAVKA, OPIS_STAVKA, AVG(PROSEK) AS PROSEK
		                            FROM
			                            (
			                            SELECT S.IME_MENI, S.IME_STAVKA, S.OPIS_STAVKA, VALIDNOST_STAVKA, ROUND(SUM(V.KOLICHINA_STAVKA) / TO_NUMBER(MAX(N.VREME) - MIN(N.VREME) + 1), 1) AS PROSEK
			                            FROM
			                            (
				                            SELECT RESTORAN_ID, IME_MENI, STAVKA_ID, IME_STAVKA, VALIDNOST_STAVKA, OPIS_STAVKA
				                            FROM 
					                            (
					                            SELECT 
						                            RESTORAN_ID, IME_MENI, STAVKA_ID, IME_STAVKA, VALIDNOST_STAVKA, OPIS_STAVKA
					                            FROM 
						                            STAVKA
					                            WHERE 
						                            RESTORAN_ID = :RES_ID2 AND VALIDNOST_STAVKA = 0
					                            )
				                            WHERE 
					                            (RESTORAN_ID, IME_MENI, IME_STAVKA) IN
						                            (
						                            SELECT 
							                            RESTORAN_ID, IME_MENI, IME_STAVKA
						                            FROM 
							                            STAVKA
						                            WHERE RESTORAN_ID = :RES_ID3 AND VALIDNOST_STAVKA = 0
						                            )
				                            ) S
				                            LEFT OUTER JOIN
				                            VKLUCHUVA V
					                            ON 
						                            S.RESTORAN_ID = V.RESTORAN_ID AND S.IME_MENI = V.IME_MENI AND S.STAVKA_ID = V.STAVKA_ID
				                            LEFT OUTER JOIN
				                            NARACHKA N
					                            ON
						                            V.RESTORAN_ID = N.RESTORAN_ID AND V.NARACHKA_ID = N.NARACHKA_ID
				                            GROUP BY
					                            (S.RESTORAN_ID, S.IME_MENI, S.STAVKA_ID, S.IME_STAVKA, S.VALIDNOST_STAVKA, S.OPIS_STAVKA)
			                            )
		                            GROUP BY (IME_MENI, IME_STAVKA, OPIS_STAVKA)
	                            ) B 
	                            ON
		                            A.IME_STAVKA = B.IME_STAVKA AND A.IME_MENI = B.IME_MENI AND NVL(A.OPIS_STAVKA, 0) = NVL(B.OPIS_STAVKA, 0)"        ;

            if (CurrSortiranje.Equals(Sortiranje.ImeOpagjacki))
            {
                sql += "\nORDER BY STAVKA desc";
            }
            else if (CurrSortiranje.Equals(Sortiranje.ImeRastecki))
            {
                sql += "\nORDER BY STAVKA asc";
            }
            else if (CurrSortiranje.Equals(Sortiranje.ProcentOpagjacki))
            {
                sql += "\nORDER BY ROUND((A.PROSEK - B.PROSEK)*100/B.PROSEK, 2) desc, STAVKA";
            }
            else if (CurrSortiranje.Equals(Sortiranje.ProcentRastecki))
            {
                sql += "\nORDER BY ROUND((A.PROSEK - B.PROSEK)*100/B.PROSEK, 2) asc, STAVKA";
            }
            else if (CurrSortiranje.Equals(Sortiranje.StaraOpagjacki))
            {
                sql += "\nORDER BY NVL(B.PROSEK, 0) desc, STAVKA";
            }
            else if (CurrSortiranje.Equals(Sortiranje.StaraRastecki))
            {
                sql += "\nORDER BY NVL(B.PROSEK, 0) asc, STAVKA";
            }
            else if (CurrSortiranje.Equals(Sortiranje.NovaOpagjacki))
            {
                sql += "\nORDER BY NVL(A.PROSEK, 0) desc, STAVKA";
            }
            else if (CurrSortiranje.Equals(Sortiranje.NovaRastecki))
            {
                sql += "\nORDER BY NVL(A.PROSEK, 0) asc, STAVKA";
            }


            OracleCommand cmd = new OracleCommand(sql, Conn);

            OracleParameter prm = new OracleParameter("RES_ID", OracleDbType.Int32);

            prm.Value = Restoran.RestoranID;
            cmd.Parameters.Add(prm);

            prm       = new OracleParameter("RES_ID1", OracleDbType.Int32);
            prm.Value = Restoran.RestoranID;
            cmd.Parameters.Add(prm);

            prm       = new OracleParameter("RES_ID2", OracleDbType.Int32);
            prm.Value = Restoran.RestoranID;
            cmd.Parameters.Add(prm);

            prm       = new OracleParameter("RES_ID3", OracleDbType.Int32);
            prm.Value = Restoran.RestoranID;
            cmd.Parameters.Add(prm);

            Stavki = new List <StavkaPorast>();
            try
            {
                cmd.CommandType = CommandType.Text;
                OracleDataReader dr = cmd.ExecuteReader();

                while (dr.Read())
                {
                    StavkaPorast st = new StavkaPorast(dr.GetString(0), dr.GetString(3), dr.GetString(2), dr.GetString(1), dr.GetString(4));
                    Stavki.Add(st);
                }
            }
            catch (Exception ex)
            {
                SetText(lblErrorMessage, "Имате проблем со поврзување на конекцијата");
                SetVisible(lblErrorMessage, true);
            }

            LoadingSemaphore.WaitOne();
            PostaviTabela();
        }