Esempio n. 1
0
        public static List<TrgovanjeMjesecRok> GetTrgovanjeMjesecRokCollection(DataAccessAdapterBase adapter, int godina, TrgovanjeVrstaEnum[] trgovanjeVrstaEnumArray)
        {
            List<TrgovanjeMjesecRok> trgovanjeMjesecListRok = new List<TrgovanjeMjesecRok>();

            EntityCollection<TrgovanjeStavkaEntity> trgovanjeStavkaCollection =
                TrgovanjeStavkaEntity.FetchTrgovanjeStavkaCollection(adapter, godina, ValutaEnum.Kn);

            for (int mjesec = 1; mjesec < 13; mjesec++)
            {
                TrgovanjeMjesecRok trgovanjeMjesecRok = (from ts in trgovanjeStavkaCollection
                                                         where ts.ValutaId == (long)ValutaEnum.Kn && ts.TrgovanjeGlava.Datum.Month == mjesec
                                                         group ts by ts.ValutaId into g
                                                         select new TrgovanjeMjesecRok()
                                                         {
                                                             Valuta = (ValutaEnum)g.Key,
                                                             Godina = godina,
                                                             Mjesec = mjesec,
                                                             PrometUkupno = g.Sum(ts => ts.Promet),
                                                             KamatnaStopaUkupno = g.Sum(ts => ts.Promet * ts.PrometDodatak) / g.Sum(ts => ts.Promet)
                                                         }).SingleOrDefault();

                if (null != trgovanjeMjesecRok)
                {
                    trgovanjeMjesecRok.TrgovanjeRokList = new List<TrgovanjeRok>();
                    foreach (TrgovanjeVrstaEnum trgovanjeVrstaEnum in trgovanjeVrstaEnumArray)
                    {
                        TrgovanjeRok trgovanjeRok = (from ts in trgovanjeStavkaCollection
                                                     where ts.ValutaId == (long)ValutaEnum.Kn &&
                                                     ts.TrgovanjeGlava.Datum.Month == mjesec &&
                                                     ts.TrgovanjeVrstaId == (long)trgovanjeVrstaEnum &&
                                                     ts.Promet > 0
                                                     group ts by ts.ValutaId into g
                                                     select new TrgovanjeRok()
                                                     {
                                                         TrgovanjeVrstaEnum = trgovanjeVrstaEnum,
                                                         Promet = g.Sum(ts => ts.Promet),
                                                         KamatnaStopa = g.Sum(ts => ts.Promet * ts.PrometDodatak) / g.Sum(ts => ts.Promet)
                                                     }).SingleOrDefault();

                        if (null != trgovanjeRok)
                        {
                            trgovanjeMjesecRok.TrgovanjeRokList.Add(trgovanjeRok);
                        }
                    }

                    trgovanjeMjesecListRok.Add(trgovanjeMjesecRok);
                }
            }

            return trgovanjeMjesecListRok;
        }
Esempio n. 2
0
        public static List<TrgovanjeMjesecRokHnb> GetTrgovanjeMjesecRokHnbCollection(DataAccessAdapterBase adapter, int godina, TrgovanjeVrstaEnum[] trgovanjeVrstaEnumArray)
        {
            List<TrgovanjeMjesecRokHnb> trgovanjeMjesecListRok = new List<TrgovanjeMjesecRokHnb>();

            EntityCollection<TrgovanjeStavkaHnbEntity> trgovanjeStavkaHnbCollection =
                TrgovanjeStavkaHnbEntity.FetchTrgovanjeStavkaHnbCollection(adapter, godina);

            for (int mjesec = 1; mjesec < 13; mjesec++)
            {
                IEnumerable<TrgovanjeStavkaHnbEntity> trgovanjeStavkaHnbCollectionForMonth = trgovanjeStavkaHnbCollection.Where(ts => ts.TrgovanjeGlavaHnb.Datum.Month == mjesec);

                decimal prometUkupno = trgovanjeStavkaHnbCollectionForMonth.Sum(ts => ts.IznosMilijuniKn);

                decimal? kamatnaStopa;
                if (0 == prometUkupno)
                {
                    kamatnaStopa = null;
                }
                else
                {
                    kamatnaStopa = trgovanjeStavkaHnbCollectionForMonth.Sum(ts => ts.IznosMilijuniKn * ts.KamatnaStopa) / prometUkupno;
                }

                TrgovanjeMjesecRokHnb trgovanjeMjesecRokHnb = new TrgovanjeMjesecRokHnb()
                                                               {
                                                                   Godina = godina,
                                                                   Mjesec = mjesec,
                                                                   PrometUkupno = prometUkupno,
                                                                   KamatnaStopaUkupno = kamatnaStopa
                                                               };

                if (trgovanjeMjesecRokHnb.PrometUkupno.HasValue &&
                    trgovanjeMjesecRokHnb.KamatnaStopaUkupno.HasValue)
                {
                    trgovanjeMjesecRokHnb.TrgovanjeRokList = new List<TrgovanjeRok>();
                    foreach (TrgovanjeVrstaEnum trgovanjeVrstaEnum in trgovanjeVrstaEnumArray)
                    {
                        IEnumerable<TrgovanjeStavkaHnbEntity> trgovanjeStavkaHnbCollectionForMonthAndVrsta =
                            trgovanjeStavkaHnbCollectionForMonth.Where(ts => ts.TrgovanjeVrstaId == (long)trgovanjeVrstaEnum);

                        decimal prometUkupnoVrsta = trgovanjeStavkaHnbCollectionForMonthAndVrsta.Sum(ts => ts.IznosMilijuniKn);

                        decimal? kamatnaStopaVrsta;
                        if (0 == prometUkupnoVrsta)
                        {
                            kamatnaStopaVrsta = null;
                        }
                        else
                        {
                            kamatnaStopaVrsta = trgovanjeStavkaHnbCollectionForMonthAndVrsta.Sum(ts => ts.IznosMilijuniKn * ts.KamatnaStopa) / prometUkupnoVrsta;
                        }

                        TrgovanjeRok trgovanjeRok = new TrgovanjeRok()
                                                     {
                                                         TrgovanjeVrstaEnum = trgovanjeVrstaEnum,
                                                         Promet = prometUkupnoVrsta,
                                                         KamatnaStopa = kamatnaStopaVrsta
                                                     };

                        if (null != trgovanjeRok)
                        {
                            trgovanjeMjesecRokHnb.TrgovanjeRokList.Add(trgovanjeRok);
                        }
                    }

                    trgovanjeMjesecListRok.Add(trgovanjeMjesecRokHnb);
                }
            }

            return trgovanjeMjesecListRok;
        }