Ejemplo n.º 1
0
        public static KeyValuePair <DateTime, double> RacunajSaldo(Models.Company komp)
        {
            Double   Zbir1 = 0;
            Double   Zbir2 = 0;
            double   Zbir3 = 0;
            DateTime Vreme = new DateTime(2000, 1, 1);

            //var kom = db.Companies.Include(x => x.Transactions).AsEnumerable().FirstOrDefault(x => x.Active && x.CompanyId == komp.CompanyId); ;
            var kom = komp;

            if (kom.Transactions != null && kom.Transactions.Count > 0)
            {
                var Listica = kom.Transactions.Where(x => x.Active && x.Amount != 0 && (x.TransactionType == PrevodSrb.Naplaćeno || x.TransactionType == PrevodSrb.Naplaćeno_delimično || x.TransactionType == PrevodSrb.Stornirano || x.TransactionType == PrevodSrb.Produkcija)).Select(x => new DatumIznosTransakcije {
                    Iznos = x.Amount, datum = x.TransactionDate, Tip = x.TransactionType
                }).ToList();
                if (Listica.Count > 0)
                {
                    var ProdDatum     = kom.Transactions.Where(x => x.Active && x.TransactionType == PrevodSrb.Produkcija).OrderBy(x => x.TransactionDate).FirstOrDefault().TransactionDate;
                    var PocetakMeseca = new DateTime(DateTime.Now.Year, DateTime.Now.Month, 1);
                    if (ProdDatum < PocetakMeseca)
                    {
                    }
                    ;
                    Zbir1 = Listica.Where(x => (x.Tip == PrevodSrb.Naplaćeno || x.Tip == PrevodSrb.Naplaćeno_delimično)).Sum(x => Abs(x.Iznos));
                    Zbir2 = Listica.Where(x => (x.Tip == PrevodSrb.Stornirano)).Sum(x => - Abs(x.Iznos));
                    var Prvi = Listica.OrderByDescending(x => x.datum).FirstOrDefault();
                    if (Prvi != null)
                    {
                        Vreme = Prvi.datum;
                    }
                    var ListaProdukcije = Listica.Where(x => x.Tip == PrevodSrb.Produkcija).ToList();
                    if (ListaProdukcije.Count > 0)
                    {
                        var ListaDatuma = ListaProdukcije.Select(x => x.datum).ToList();
                        ListaDatuma.Add(DateTime.Now);
                        for (int i = 0; i <= ListaDatuma.Count - 2; i++)
                        {
                            int RazMes = ListaDatuma[i + 1].Month - ListaDatuma[i].Month;
                            if (RazMes > 0)
                            {
                                Zbir3 += -Abs(ListaProdukcije[i].Iznos) * RazMes;
                            }
                        }
                    }
                }
            }



            return(new KeyValuePair <DateTime, double>(Vreme, Zbir1 + Zbir2 + Zbir3));
        }
Ejemplo n.º 2
0
        public static Double RacunajRatu(Models.Company komp)
        {
            double rata = 0;

            try {
                using (ModelEF db = new ModelEF())
                {
                    var prvi = db.Companies.Include(x => x.Transactions).FirstOrDefault(x => x.Active && x.CompanyId == komp.CompanyId);
                    if (prvi != null && prvi.Transactions != null && prvi.Transactions.Count > 0)
                    {
                        var trki = prvi.Transactions.Where(x => x.Active && x.TransactionType == PrevodSrb.Produkcija);
                        if (trki.Count() > 0)
                        {
                            rata = trki.OrderByDescending(x => x.TransactionDate).FirstOrDefault().Amount;
                        }
                    }
                }
            }
            catch { };


            return(rata);
        }