예제 #1
0
 private bool kvalColumnVisible()
 {
     if (takmicenje.FinaleKupa)
     {
         // Za finale kupa se kvalifikanti prikazuju u RezultatiSpravaFinaleKupa
         return(false);
     }
     else
     {
         return(deoTakKod == DeoTakmicenjaKod.Takmicenje1 && ActiveTakmicenje.odvojenoTak3());
     }
 }
예제 #2
0
 private void setItems()
 {
     if (ActiveSprava != Sprava.Preskok)
     {
         spravaGridUserControl1.DataGridViewUserControl
         .setItems <RezultatSprava>(ActiveTakmicenje.getPoredakSprava(deoTakKod, ActiveSprava).getRezultati());
     }
     else
     {
         spravaGridUserControl1.DataGridViewUserControl
         .setItems <RezultatPreskok>(ActiveTakmicenje.getPoredakPreskok(deoTakKod).getRezultati());
     }
     spravaGridUserControl1.DataGridViewUserControl.clearSelection();
 }
예제 #3
0
        private void btnIzracunaj_Click(object sender, EventArgs e)
        {
            string msg;

            if (kvalColumnVisible())
            {
                msg = "Da li zelite da izracunate poredak, kvalifikante i rezerve?";
            }
            else
            {
                msg = "Da li zelite da izracunate poredak?";
            }
            if (!MessageDialogs.queryConfirmation(msg, this.Text))
            {
                return;
            }

            Cursor.Current = Cursors.WaitCursor;
            Cursor.Show();
            ISession session = null;

            try
            {
                using (session = NHibernateHelper.Instance.OpenSession())
                    using (session.BeginTransaction())
                    {
                        CurrentSessionContext.Bind(session);

                        OcenaDAO      ocenaDAO = DAOFactoryFactory.DAOFactory.GetOcenaDAO();
                        IList <Ocena> ocene    = ocenaDAO.FindByDeoTakmicenja(takmicenje.Id, deoTakKod);
                        if (ActiveSprava != Sprava.Preskok)
                        {
                            PoredakSprava p = ActiveTakmicenje.getPoredakSprava(deoTakKod, ActiveSprava);
                            p.create(ActiveTakmicenje, ocene);
                            DAOFactoryFactory.DAOFactory.GetPoredakSpravaDAO().Update(p);
                        }
                        else
                        {
                            PoredakPreskok p = ActiveTakmicenje.getPoredakPreskok(deoTakKod);
                            p.create(ActiveTakmicenje, ocene);
                            DAOFactoryFactory.DAOFactory.GetPoredakPreskokDAO().Update(p);
                        }
                        foreach (Ocena o in ocene)
                        {
                            ocenaDAO.Evict(o);
                        }

                        takmicenje = DAOFactoryFactory.DAOFactory.GetTakmicenjeDAO().FindById(takmicenje.Id);
                        takmicenje.LastModified = DateTime.Now;
                        session.Transaction.Commit();
                    }
            }
            catch (Exception ex)
            {
                if (session != null && session.Transaction != null && session.Transaction.IsActive)
                {
                    session.Transaction.Rollback();
                }
                MessageDialogs.showError(ex.Message, this.Text);
                return;
            }
            finally
            {
                Cursor.Hide();
                Cursor.Current = Cursors.Arrow;
                CurrentSessionContext.Unbind(NHibernateHelper.Instance.SessionFactory);
            }

            setItems();
        }
예제 #4
0
        private void promeniPoredakPreskok()
        {
            RazresiIsteOceneForm form = new RazresiIsteOceneForm(istiRezultati, takmicenje, Sprava.Preskok,
                                                                 ActiveTakmicenje.Propozicije.racunajObaPreskoka(deoTakKod));

            if (form.ShowDialog() != DialogResult.OK)
            {
                return;
            }

            for (int i = 0; i < istiRezultati.Count; ++i)
            {
                istiRezultati[i].Rank = (short)form.Poredak[i];
            }

            PropertyDescriptor[] propDesc = new PropertyDescriptor[] {
                TypeDescriptor.GetProperties(typeof(RezultatPreskok))["Rank"],
                TypeDescriptor.GetProperties(typeof(RezultatPreskok))["PrezimeIme"]
            };
            ListSortDirection[] sortDir = new ListSortDirection[] {
                ListSortDirection.Ascending,
                ListSortDirection.Ascending
            };

            short redBroj = istiRezultati[0].RedBroj;

            istiRezultati.Sort(new SortComparer <RezultatSprava>(propDesc, sortDir));
            foreach (RezultatPreskok r in istiRezultati)
            {
                r.RedBroj = redBroj++;
            }

            ISession session = null;

            try
            {
                using (session = NHibernateHelper.Instance.OpenSession())
                    using (session.BeginTransaction())
                    {
                        CurrentSessionContext.Bind(session);
                        DAOFactoryFactory.DAOFactory.GetPoredakPreskokDAO()
                        .Update(ActiveTakmicenje.getPoredakPreskok(deoTakKod));

                        takmicenje = DAOFactoryFactory.DAOFactory.GetTakmicenjeDAO().FindById(takmicenje.Id);
                        takmicenje.LastModified = DateTime.Now;
                        session.Transaction.Commit();
                    }
            }
            catch (Exception ex)
            {
                if (session != null && session.Transaction != null && session.Transaction.IsActive)
                {
                    session.Transaction.Rollback();
                }
                MessageDialogs.showError(ex.Message, this.Text);
                Close();
                return;
            }
            finally
            {
                CurrentSessionContext.Unbind(NHibernateHelper.Instance.SessionFactory);
            }

            spravaGridUserControl1.DataGridViewUserControl
            .sort <RezultatPreskok>("RedBroj", ListSortDirection.Ascending);
            //spravaGridUserControl1.DataGridViewUserControl.refreshItems();
            spravaGridUserControl1.DataGridViewUserControl.setSelectedItem <RezultatPreskok>(
                istiRezultati[0] as RezultatPreskok);
        }
예제 #5
0
        private void promeniKvalStatus(KvalifikacioniStatus kvalStatus)
        {
            int            selCount = 0;
            RezultatSprava rez;

            if (ActiveSprava != Sprava.Preskok)
            {
                selCount = spravaGridUserControl1.DataGridViewUserControl.getSelectedItems <RezultatSprava>().Count;
                rez      = spravaGridUserControl1.DataGridViewUserControl
                           .getSelectedItem <RezultatSprava>();
            }
            else
            {
                selCount = spravaGridUserControl1.DataGridViewUserControl.getSelectedItems <RezultatPreskok>().Count;
                rez      = spravaGridUserControl1.DataGridViewUserControl
                           .getSelectedItem <RezultatPreskok>();
            }

            if (selCount != 1 || rez.KvalStatus == kvalStatus)
            {
                return;
            }

            string msg = String.Empty;

            if (kvalStatus != KvalifikacioniStatus.None)
            {
                string msgFmt = "Da li zelite da oznacite sa \"{1}\" gimnasticara \"{0}\"?";
                msg = String.Format(msgFmt, rez.Gimnasticar, kvalStatus);
            }
            else
            {
                string msgFmt = "Da li zelite da ponistite oznaku \"{1}\" za gimnasticara \"{0}\"?";
                msg = String.Format(msgFmt, rez.Gimnasticar, rez.KvalStatus);
            }
            if (!MessageDialogs.queryConfirmation(msg, this.Text))
            {
                return;
            }

            ISession session = null;

            try
            {
                using (session = NHibernateHelper.Instance.OpenSession())
                    using (session.BeginTransaction())
                    {
                        CurrentSessionContext.Bind(session);
                        rez.KvalStatus = kvalStatus;
                        if (ActiveSprava != Sprava.Preskok)
                        {
                            DAOFactoryFactory.DAOFactory.GetPoredakSpravaDAO()
                            .Update(ActiveTakmicenje.getPoredakSprava(deoTakKod, ActiveSprava));
                        }
                        else
                        {
                            DAOFactoryFactory.DAOFactory.GetPoredakPreskokDAO()
                            .Update(ActiveTakmicenje.getPoredakPreskok(deoTakKod));
                        }

                        takmicenje = DAOFactoryFactory.DAOFactory.GetTakmicenjeDAO().FindById(takmicenje.Id);
                        takmicenje.LastModified = DateTime.Now;
                        session.Transaction.Commit();
                    }
            }
            catch (Exception ex)
            {
                if (session != null && session.Transaction != null && session.Transaction.IsActive)
                {
                    session.Transaction.Rollback();
                }
                MessageDialogs.showError(ex.Message, this.Text);
                Close();
                return;
            }
            finally
            {
                CurrentSessionContext.Unbind(NHibernateHelper.Instance.SessionFactory);
            }

            spravaGridUserControl1.DataGridViewUserControl.refreshItems();
            if (ActiveSprava != Sprava.Preskok)
            {
                spravaGridUserControl1.DataGridViewUserControl.setSelectedItem <RezultatSprava>(rez);
            }
            else
            {
                spravaGridUserControl1.DataGridViewUserControl.setSelectedItem <RezultatPreskok>(rez as RezultatPreskok);
            }
        }
예제 #6
0
        private void findIstiRezultati()
        {
            istiRezultati.Clear();
            RezultatSprava rez;

            if (ActiveSprava != Sprava.Preskok)
            {
                rez = spravaGridUserControl1.DataGridViewUserControl
                      .getSelectedItem <RezultatSprava>();
            }
            else
            {
                rez = spravaGridUserControl1.DataGridViewUserControl
                      .getSelectedItem <RezultatPreskok>();
            }
            if (rez == null)
            {
                return;
            }

            if (ActiveSprava != Sprava.Preskok)
            {
                if (rez.Total == null)
                {
                    return;
                }
                foreach (RezultatSprava r in ActiveTakmicenje.getPoredakSprava(deoTakKod, ActiveSprava).getRezultati())
                {
                    if (r.Total == rez.Total)
                    {
                        istiRezultati.Add(r);
                    }
                    else if (istiRezultati.Count == 0)
                    {
                        continue;
                    }
                    else
                    {
                        if (istiRezultati.Count == 1)
                        {
                            istiRezultati.Clear();
                        }
                        else
                        {
                            istiRezultati.Add(r); // dodaj i prvog sledeceg sa razlicitom ocenom
                        }
                        break;
                    }
                }
            }
            else
            {
                RezultatPreskok rp          = (RezultatPreskok)rez;
                bool            obaPreskoka = ActiveTakmicenje.Propozicije.racunajObaPreskoka(deoTakKod);
                if (obaPreskoka && (rp.TotalObeOcene == null) || !obaPreskoka && (rp.Total == null))
                {
                    return;
                }
                foreach (RezultatPreskok r in ActiveTakmicenje.getPoredakPreskok(deoTakKod).getRezultati())
                {
                    if (obaPreskoka && (r.TotalObeOcene == rp.TotalObeOcene) || !obaPreskoka && (r.Total == rp.Total))
                    {
                        istiRezultati.Add(r);
                    }
                    else if (istiRezultati.Count == 0)
                    {
                        continue;
                    }
                    else
                    {
                        if (istiRezultati.Count == 1)
                        {
                            istiRezultati.Clear();
                        }
                        else
                        {
                            istiRezultati.Add(r); // dodaj i prvog sledeceg sa razlicitom ocenom
                        }
                        break;
                    }
                }
            }
        }
예제 #7
0
        private void btnPrint_Click(object sender, EventArgs e)
        {
            string nazivIzvestaja = ActiveTakmicenje.getNazivIzvestajaSprava(deoTakKod, takmicenje.FinaleKupa, false);

            HeaderFooterForm form = new HeaderFooterForm(deoTakKod, false, true, true, false, false, false, false);

            if (!Opcije.Instance.HeaderFooterInitialized)
            {
                FormUtil.initHeaderFooterFormFromOpcije(form);

                string mestoDatum = takmicenje.Mesto + "  "
                                    + takmicenje.Datum.ToShortDateString();
                form.Header1Text = ActiveTakmicenje.TakmicenjeDescription.Naziv;
                form.Header2Text = mestoDatum;
                form.Header3Text = ActiveTakmicenje.Kategorija.Naziv;
                form.Header4Text = nazivIzvestaja;
                form.FooterText  = mestoDatum;
            }
            else
            {
                FormUtil.initHeaderFooterFormFromOpcije(form);
                form.Header1Text = ActiveTakmicenje.TakmicenjeDescription.Naziv;
                form.Header3Text = ActiveTakmicenje.Kategorija.Naziv;
                form.Header4Text = nazivIzvestaja;
            }

            if (form.ShowDialog() != DialogResult.OK)
            {
                return;
            }
            FormUtil.initHeaderFooterFromForm(form);
            Opcije.Instance.HeaderFooterInitialized = true;

            Cursor.Current = Cursors.WaitCursor;
            Cursor.Show();
            try
            {
                string documentName;
                if (form.StampajSveSprave)
                {
                    documentName = nazivIzvestaja + " - " + ActiveTakmicenje.Kategorija.Naziv;
                }
                else
                {
                    documentName = nazivIzvestaja + " - " + Sprave.toString(ActiveSprava) + " - "
                                   + ActiveTakmicenje.Kategorija.Naziv;
                }
                bool obaPreskoka = ActiveTakmicenje.Propozicije.racunajObaPreskoka(deoTakKod);

                PreviewDialog p = new PreviewDialog();
                if (form.StampajSveSprave)
                {
                    List <List <RezultatSprava> > rezultatiSprave  = new List <List <RezultatSprava> >();
                    List <RezultatPreskok>        rezultatiPreskok = null;

                    foreach (Sprava s in Sprave.getSprave(ActiveTakmicenje.Gimnastika))
                    {
                        if (s != Sprava.Preskok)
                        {
                            rezultatiSprave.Add(ActiveTakmicenje.getPoredakSprava(deoTakKod, s).getRezultati());
                        }
                        else
                        {
                            rezultatiPreskok = ActiveTakmicenje.getPoredakPreskok(deoTakKod).getRezultati();
                        }
                    }
                    p.setIzvestaj(new SpravaIzvestaj(rezultatiSprave, rezultatiPreskok,
                                                     obaPreskoka, ActiveTakmicenje.Gimnastika, kvalColumnVisible(), documentName, form.BrojSpravaPoStrani,
                                                     form.PrikaziPenalSprave, spravaGridUserControl1.DataGridViewUserControl.DataGridView,
                                                     /*markFirstRows*/ false, /*numRowsToMark*/ 0));
                }
                else
                {
                    if (ActiveSprava != Sprava.Preskok)
                    {
                        // TODO3: Implementiraj oznacavanje osvajaca medalja i za ostale izvestaje (gde treba).
                        // Takodje, uvedi odgovarajucu opciju u dijalogu za stampanje.
                        List <RezultatSprava> rezultati =
                            ActiveTakmicenje.getPoredakSprava(deoTakKod, ActiveSprava).getRezultati();
                        p.setIzvestaj(new SpravaIzvestaj(ActiveSprava, rezultati,
                                                         kvalColumnVisible(), documentName, form.PrikaziPenalSprave,
                                                         spravaGridUserControl1.DataGridViewUserControl.DataGridView,
                                                         /*markFirstRows*/ !kvalColumnVisible(), /*numRowsToMark*/ getNumMedalists(rezultati)));
                    }
                    else
                    {
                        List <RezultatPreskok> rezultati =
                            ActiveTakmicenje.getPoredakPreskok(deoTakKod).getRezultati();
                        p.setIzvestaj(new SpravaIzvestaj(obaPreskoka, rezultati,
                                                         kvalColumnVisible(), documentName, form.PrikaziPenalSprave,
                                                         spravaGridUserControl1.DataGridViewUserControl.DataGridView,
                                                         /*markFirstRows*/ !kvalColumnVisible(),
                                                         /*numRowsToMark*/ getNumMedalists(rezultati)));
                    }
                }

                p.ShowDialog();

                // TODO2: U izvestajima za spravu treba da bude i penalizacija, a
                // slika sprave treba da bude iznad izvestaja. Naziv kolone total
                // treba da bude "Total" (ili "Ukupno").

                // TODO2: U izvestajima treba da postoji i linija za organizatora
                // takmicenja (recimo Gimnasticki savez srbije), i treba da bude
                // prva (u vrhu papira)

                // TODO2: Uvedi opciju da li se zeli stampanje izvestaja sa ili bez
                // linija
            }
            catch (Exception ex)
            {
                MessageDialogs.showError(ex.Message, this.Text);
            }
            finally
            {
                Cursor.Hide();
                Cursor.Current = Cursors.Arrow;
            }
        }
예제 #8
0
        private void btnStampajKvalifikante_Click(object sender, EventArgs e)
        {
            string nazivIzvestaja = "Finale po spravama - kvalifikanti i rezerve";

            HeaderFooterForm form = new HeaderFooterForm(deoTakKod, false, true, false, false, false, false, false);

            if (!Opcije.Instance.HeaderFooterInitialized)
            {
                FormUtil.initHeaderFooterFormFromOpcije(form);

                string mestoDatum = takmicenje.Mesto + "  "
                                    + takmicenje.Datum.ToShortDateString();
                form.Header1Text = ActiveTakmicenje.TakmicenjeDescription.Naziv;
                form.Header2Text = mestoDatum;
                form.Header3Text = ActiveTakmicenje.Kategorija.Naziv;
                form.Header4Text = nazivIzvestaja;
                form.FooterText  = mestoDatum;
                if (takmicenje.Gimnastika == Gimnastika.ZSG)
                {
                    form.BrojSpravaPoStrani = 4;
                }
                else
                {
                    form.BrojSpravaPoStrani = 6;
                }
            }
            else
            {
                FormUtil.initHeaderFooterFormFromOpcije(form);
                form.Header1Text = ActiveTakmicenje.TakmicenjeDescription.Naziv;
                form.Header3Text = ActiveTakmicenje.Kategorija.Naziv;
                form.Header4Text = nazivIzvestaja;
            }

            if (form.ShowDialog() != DialogResult.OK)
            {
                return;
            }
            FormUtil.initHeaderFooterFromForm(form);
            Opcije.Instance.HeaderFooterInitialized = true;

            Cursor.Current = Cursors.WaitCursor;
            Cursor.Show();
            try
            {
                PreviewDialog p = new PreviewDialog();

                string documentName;
                if (form.StampajSveSprave)
                {
                    documentName = nazivIzvestaja + " - " + ActiveTakmicenje.Kategorija.Naziv;
                }
                else
                {
                    documentName = nazivIzvestaja + " - " + Sprave.toString(ActiveSprava) + " - "
                                   + ActiveTakmicenje.Kategorija.Naziv;
                }
                bool obaPresk = ActiveTakmicenje.Propozicije.Tak1PreskokNaOsnovuObaPreskoka;

                if (form.StampajSveSprave)
                {
                    List <List <RezultatSprava> > rezultatiSprave  = new List <List <RezultatSprava> >();
                    List <RezultatPreskok>        rezultatiPreskok = null;

                    foreach (Sprava s in Sprave.getSprave(ActiveTakmicenje.Gimnastika))
                    {
                        if (s != Sprava.Preskok)
                        {
                            rezultatiSprave.Add(ActiveTakmicenje.getPoredakSprava(deoTakKod, s).getKvalifikantiIRezerve());
                        }
                        else
                        {
                            rezultatiPreskok = ActiveTakmicenje.getPoredakPreskok(deoTakKod).getKvalifikantiIRezerve(obaPresk);
                        }
                    }
                    p.setIzvestaj(new KvalifikantiTak3Izvestaj(rezultatiSprave, rezultatiPreskok, obaPresk,
                                                               takmicenje.Gimnastika, documentName, form.BrojSpravaPoStrani,
                                                               spravaGridUserControl1.DataGridViewUserControl.DataGridView));
                }
                else
                {
                    if (ActiveSprava != Sprava.Preskok)
                    {
                        List <RezultatSprava> rezultati =
                            ActiveTakmicenje.getPoredakSprava(deoTakKod, ActiveSprava).getKvalifikantiIRezerve();
                        p.setIzvestaj(new KvalifikantiTak3Izvestaj(rezultati, ActiveSprava, documentName,
                                                                   spravaGridUserControl1.DataGridViewUserControl.DataGridView));
                    }
                    else
                    {
                        List <RezultatPreskok> rezultati =
                            ActiveTakmicenje.getPoredakPreskok(deoTakKod).getKvalifikantiIRezerve(obaPresk);
                        p.setIzvestaj(new KvalifikantiTak3Izvestaj(rezultati, obaPresk, documentName,
                                                                   spravaGridUserControl1.DataGridViewUserControl.DataGridView));
                    }
                }

                p.ShowDialog();
            }
            catch (Exception ex)
            {
                MessageDialogs.showError(ex.Message, this.Text);
            }
            finally
            {
                Cursor.Hide();
                Cursor.Current = Cursors.Arrow;
            }
        }
예제 #9
0
        private void btnPrint_Click(object sender, EventArgs e)
        {
            string nazivIzvestaja = ActiveTakmicenje.getNazivIzvestajaSprava(DeoTakmicenjaKod.Takmicenje1, true, true);

            HeaderFooterForm form = new HeaderFooterForm(DeoTakmicenjaKod.Takmicenje1,
                                                         false, true, false, false, false, false, false);

            if (!Opcije.Instance.HeaderFooterInitialized)
            {
                FormUtil.initHeaderFooterFormFromOpcije(form);

                string mestoDatum = takmicenje.Mesto + "  "
                                    + takmicenje.Datum.ToShortDateString();
                form.Header1Text = ActiveTakmicenje.TakmicenjeDescription.Naziv;
                form.Header2Text = mestoDatum;
                form.Header3Text = ActiveTakmicenje.Kategorija.Naziv;
                form.Header4Text = nazivIzvestaja;
                form.FooterText  = mestoDatum;
            }
            else
            {
                FormUtil.initHeaderFooterFormFromOpcije(form);
                form.Header1Text = ActiveTakmicenje.TakmicenjeDescription.Naziv;
                form.Header3Text = ActiveTakmicenje.Kategorija.Naziv;
                form.Header4Text = nazivIzvestaja;
            }

            if (form.ShowDialog() != DialogResult.OK)
            {
                return;
            }
            FormUtil.initHeaderFooterFromForm(form);
            Opcije.Instance.HeaderFooterInitialized = true;

            Cursor.Current = Cursors.WaitCursor;
            Cursor.Show();
            try
            {
                PreviewDialog p = new PreviewDialog();

                string documentName;
                if (form.StampajSveSprave)
                {
                    documentName = nazivIzvestaja + " - " + ActiveTakmicenje.Kategorija.Naziv;
                }
                else
                {
                    documentName = nazivIzvestaja + " - " + Sprave.toString(ActiveSprava) + " - "
                                   + ActiveTakmicenje.Kategorija.Naziv;
                }
                if (form.StampajSveSprave)
                {
                    List <List <RezultatSpravaFinaleKupa> > rezultatiSprave = new List <List <RezultatSpravaFinaleKupa> >();

                    foreach (Sprava s in Sprave.getSprave(ActiveTakmicenje.Gimnastika))
                    {
                        rezultatiSprave.Add(ActiveTakmicenje.Takmicenje1.getPoredakSpravaFinaleKupa(s).getRezultati());
                    }
                    p.setIzvestaj(new SpravaFinaleKupaIzvestaj(rezultatiSprave, ActiveTakmicenje.Gimnastika,
                                                               kvalColumnVisible(), documentName, form.BrojSpravaPoStrani,
                                                               spravaGridUserControl1.DataGridViewUserControl.DataGridView));
                }
                else
                {
                    List <RezultatSpravaFinaleKupa> rezultati =
                        ActiveTakmicenje.Takmicenje1.getPoredakSpravaFinaleKupa(ActiveSprava).getRezultati();

                    p.setIzvestaj(new SpravaFinaleKupaIzvestaj(ActiveSprava, rezultati,
                                                               kvalColumnVisible(), documentName, spravaGridUserControl1.DataGridViewUserControl.DataGridView));
                }

                p.ShowDialog();
            }
            catch (Exception ex)
            {
                MessageDialogs.showError(ex.Message, this.Text);
            }
            finally
            {
                Cursor.Hide();
                Cursor.Current = Cursors.Arrow;
            }
        }
예제 #10
0
 private bool kvalColumnVisible()
 {
     return(ActiveTakmicenje.odvojenoTak3());
 }