Esempio n. 1
0
        public IList <ILatePaymentModel> GetAllLatePayments()
        {
            var queryResult = new List <ILatePaymentModel>();

            try
            {
                using (var ctx = new DBProjectEntities())
                {
                    IEnumerable <Wynajmy> activeRentals = ctx.Wynajmy.Where(x => x.data_rozpoczecia <DateTime.Now && x.data_zakonczenia> DateTime.Now).ToList();

                    foreach (var rental in activeRentals)
                    {
                        var expectedAmount = 0.0;
                        var totalPayments  = 0.0;

                        var dateDifference = DateTime.Today - rental.data_rozpoczecia;
                        var months         = Math.Round(dateDifference.Value.TotalDays / 30);

                        if ((dateDifference.Value.TotalDays / 30) > 0 &&
                            (dateDifference.Value.TotalDays / 30) < 1)
                        {
                            months = 1;
                        }

                        expectedAmount = months * Convert.ToDouble(rental.cena_miesieczna);

                        var allPaymentsForRental = ctx.Platnosci.Where(x => x.id_wynajmu == rental.id_wynajmu).ToList();

                        totalPayments = allPaymentsForRental.Sum(x => x.cena);

                        if (expectedAmount > totalPayments)
                        {
                            var flat     = ctx.Mieszkania.First(x => x.id_mieszkania == rental.id_mieszkania);
                            var building = ctx.Budynki.First(x => x.id_budynku == flat.id_budynku);
                            var debtor   = ctx.Najemcy.First(x => x.id_najemcy == rental.id_najemcy);

                            string resident  = $"{debtor.imie} {debtor.nazwisko}";
                            string telephone = $"{debtor.nr_telefonu}";
                            string location  = $"{building.adres_budynku}/{flat.numer}";

                            var latePayment = new LatePaymentModel()
                            {
                                Amount  = expectedAmount - totalPayments,
                                Name    = resident,
                                Mobile  = telephone,
                                Address = location
                            };

                            queryResult.Add(latePayment);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
            return(queryResult);
        }
Esempio n. 2
0
        public static LatePaymentModel CheckForDebts(Wynajmy rental)
        {
            var expectedAmount = 0.0;
            var totalPayments  = 0.0;

            var dateDifference = DateTime.Today - rental.data_rozpoczecia;
            var months         = Math.Round(dateDifference.Value.TotalDays / 30);

            if ((dateDifference.Value.TotalDays / 30) > 0 &&
                (dateDifference.Value.TotalDays / 30) < 1)
            {
                months = 1;
            }

            expectedAmount = months * Convert.ToDouble(rental.cena_miesieczna);

            using (var dbContext = new DBProjectEntities())
            {
                var allPaymentsForRental = dbContext.Platnosci.Where(x => x.id_wynajmu == rental.id).ToList();

                totalPayments = allPaymentsForRental.Sum(x => x.cena);

                if (expectedAmount <= totalPayments)
                {
                    return(null);
                }

                var flat     = dbContext.Mieszkania.First(x => x.id == rental.id_mieszkania);
                var building = dbContext.Budynki.First(x => x.id == flat.id_budynku);
                var debtor   = dbContext.Najemcy.First(x => x.id == rental.id_najemcy);

                string resident  = $"{debtor.imie} {debtor.nazwisko}";
                string telephone = $"{debtor.nr_telefonu}";
                string location  = $"{building.adres_budynku}/{flat.numer}";

                var latePayment = new LatePaymentModel
                {
                    Id          = idx,
                    id_najemcy  = debtor.id,
                    kwota       = expectedAmount - totalPayments,
                    imie        = resident,
                    nr_telefonu = telephone,
                    adres       = location
                };
                idx++;
                return(latePayment);
            }
        }
Esempio n. 3
0
 public void Delete([FromBody] LatePaymentModel value)
 {
     new LatePaymentService().Remove(value);
 }
Esempio n. 4
0
 public void Put([FromBody] LatePaymentModel value)
 {
     new LatePaymentService().AddOrUpdate(value);
 }