Example #1
0
        public ZlecWykonanieCzynnosci(int permission, Car car, Activity activity)
        {
            InitializeComponent();
            var db          = new AEiI_2020_BD2_Drynda_FlotaEntities();
            var contractors = db.Contractors;

            userPermission     = permission;
            car1               = car;
            activity1          = activity;
            this.Title.Content = "Zleć wykonanie czynności dla samochodu: " + car1.CarModel.make + " " + car1.CarModel.model + " " + car1.Registration + "\n"
                                 + "Usterka: " + activity1.comments;

            foreach (var human in contractors)
            {
                if (!(human.endDate <= DateTime.Now))
                {
                    Kontraktorzy.Items.Add(human.name);
                }
            }
        }
Example #2
0
        private void AddDestination(object sender, RoutedEventArgs e)
        {
            var db = new AEiI_2020_BD2_Drynda_FlotaEntities();
            var CarDestinations = db.CarDestinations;

            if (Zastosowanie.Text.Length > 0)
            {
                CarDestination newDestination = new CarDestination();
                newDestination.name = Zastosowanie.Text;
                CarDestinations.Add(newDestination);
                db.SaveChanges();
                dodajPojazd.Zastosowanie.Items.Add(newDestination.name);
                this.Close();
                MessageBox.Show("Pomyślnie dodano nowe zastosowanie pojazdu.");
            }
            else
            {
                MessageBox.Show("Pole nie może być puste!", "Błąd przy dodawaniu!", MessageBoxButton.OK, MessageBoxImage.Warning);
            }
        }
Example #3
0
        private void ChangeCarSupervisor(object sender, RoutedEventArgs e)
        {
            //Pobieram zaznaczony samochód
            ListViewItem selected = (ListViewItem)carList.SelectedItem;

            if (selected != null)
            {
                ItemList selectedObj = (ItemList)selected.Content;
                int      selectedId  = selectedObj.carId;

                var db   = new AEiI_2020_BD2_Drynda_FlotaEntities();
                var cars = db.Cars;

                //Wysyłam zaznaczony samochód do zmiany opiekuna
                foreach (var car in cars)
                {
                    if (car.id == selectedId)
                    {
                        if (car.saleDate != null)
                        {
                            MessageBox.Show("Nie można zmienić opiekuna sprzedanego samochodu!", "Błąd przy zmianie opiekuna", MessageBoxButton.OK, MessageBoxImage.Warning);
                            return;
                        }
                        ZmianaOpiekuna zmianaOpiekunaView = new ZmianaOpiekuna(car, selectedObj)
                        {
                            Top  = System.Windows.SystemParameters.PrimaryScreenHeight / 2,
                            Left = System.Windows.SystemParameters.PrimaryScreenWidth / 2
                        };
                        zmianaOpiekunaView.ShowDialog();
                        while (zmianaOpiekunaView.IsActive)
                        {
                        }
                        return;
                    }
                }
            }
            else
            {
                MessageBox.Show("Nie wybrano samochodu!", "Komunikat");
            }
        }
Example #4
0
        private void AddModel(object sender, RoutedEventArgs e)
        {
            var db        = new AEiI_2020_BD2_Drynda_FlotaEntities();
            var CarModels = db.CarModels;

            if (Marka.Text.Length > 0 && Model.Text.Length > 0)
            {
                CarModel newModel = new CarModel();
                newModel.make  = Marka.Text;
                newModel.model = Model.Text;
                CarModels.Add(newModel);
                db.SaveChanges();
                dodajPojazd.Model.Items.Add(newModel.make + " " + newModel.model);
                this.Close();
                MessageBox.Show("Pomyślnie dodano nowy model pojazdu.");
            }
            else
            {
                MessageBox.Show("Pola nie mogą być puste!", "Błąd przy dodawaniu!", MessageBoxButton.OK, MessageBoxImage.Warning);
            }
        }
        private void fixed_button(object sender, RoutedEventArgs e)
        {
            Activity selected = (Activity)ListViewActivities.SelectedItem;

            if (selected != null)
            {
                int selectedId = selected.IDusterki;
                var db         = new AEiI_2020_BD2_Drynda_FlotaEntities();
                var activities = db.Activities;
                var cars       = db.Cars;
                foreach (var activity in activities)
                {
                    if (activity.id == selectedId)
                    {
                        if (activity.orderDate != null)
                        {
                            activity.closeDate = DateTime.Now;

                            /*foreach (var car in cars)
                             * {
                             *  if(car.id == car1.id)
                             *  {
                             *      car.Activities.Count = 0;
                             *  }
                             * }*/
                        }
                        else
                        {
                            MessageBox.Show("Jeszcze nie serwisowana!", "Komunikat");
                        }
                    }
                }
                db.SaveChanges();
                loadTable();
            }
            else
            {
                MessageBox.Show("Nie wybrano usterki!", "Komunikat");
            }
        }
        private void initializeList()
        {
            Stopwatch stoper = new Stopwatch();

            stoper.Start();

            items.Clear();
            var db = new AEiI_2020_BD2_Drynda_FlotaEntities();

            var query = from car in db.Cars where car.saleDate == null
                        join supervisor in db.CarSupervisors on car.id equals supervisor.carId into final
                        from f in final.DefaultIfEmpty()
                        where f.endDate == null || f.endDate > DateTime.Today
                        select new
            {
                SupervisorName  = f == null ? "Brak" : f.Person.lastName + " " + f.Person.firstName,
                CarRegistration = car.Registration,
                CarId           = car.id,
            };

            foreach (var car in query)
            {
                ListViewItem OneItem = new ListViewItem();
                OneItem.Content = new CarList {
                    carId = car.CarId, registration = car.CarRegistration, carSupervisor = car.SupervisorName
                };
                items.Add(OneItem);
            }
            Array.Sort(items.ToArray(), CompareCarsByIdAscending);
            carList.ItemsSource = items;

            CollectionView view = (CollectionView)CollectionViewSource.GetDefaultView(carList.ItemsSource);

            view.Filter += UserFilter;

            stoper.Stop();
            //Title.Text = stoper.Elapsed.ToString();
        }
Example #7
0
 private void zglos(object sender, RoutedEventArgs e)
 {
     if (comment.Text.Length == 0)
     {
         MessageBox.Show("Wprowadz opis usterki", "Brak opisu usterki");
         return;
     }
     else
     {
         var db         = new AEiI_2020_BD2_Drynda_FlotaEntities();
         var activities = db.Activities;
         var activity   = new Activity();
         activity.critical   = (bool)krytyczna.IsChecked;
         activity.comments   = comment.Text;
         activity.reportDate = DateTime.Now;
         activity.service    = false;
         activity.carId      = car1.id;
         if (Logowanie.actualUser != null)
         {
             activity.reporterId = Logowanie.actualUser.id;
         }
         else
         {
             activity.reporterId = 47;
         }
         activities.Add(activity);
         db.SaveChanges();
         System.Windows.Window glowneOkno = System.Windows.Application.Current.MainWindow;
         if (whereGo == 1)
         {
             glowneOkno.DataContext = new MojePojazdy();
         }
         else if (whereGo == 2)
         {
             glowneOkno.DataContext = new MojeWypozyczenia();
         }
     }
 }
Example #8
0
        private void RepurchaseCar(object sender, RoutedEventArgs e)
        {
            //Pobieram zaznaczony samochód
            ListViewItem selected = (ListViewItem)carList.SelectedItem;

            if (selected != null)
            {
                ItemList selectedObj = (ItemList)selected.Content;
                int      selectedId  = selectedObj.carId;
                selectedObj.saleDate = null;

                var db   = new AEiI_2020_BD2_Drynda_FlotaEntities();
                var cars = db.Cars;

                //Usuwam datę sprzedaży
                foreach (var car in cars)
                {
                    if (car.id == selectedId)
                    {
                        if (car.saleDate == null)
                        {
                            MessageBox.Show("Nie można kupić niesprzedanego samochodu!", "Błąd przy zakupie!", MessageBoxButton.OK, MessageBoxImage.Warning);
                            return;
                        }
                        car.saleDate     = null;
                        car.purchaseDate = DateTime.Today;
                        break;
                    }
                }
                db.SaveChanges();
                //Odświeżenie listy
                selected.Background = Brushes.White;
            }
            else
            {
                MessageBox.Show("Nie wybrano samochodu!", "Komunikat");
            }
        }
        private void Statystyki_Wypozyczenia(object sender, RoutedEventArgs e)
        {
            ListViewItem selected = (ListViewItem)ListViewLends.SelectedItem;

            if (selected != null)
            {
                LendList selectedObj = (LendList)selected.Content;
                int      selectedId  = selectedObj.LendId - 1;
                var      db          = new AEiI_2020_BD2_Drynda_FlotaEntities();
                var      lends       = db.Lends;
                Lend     lendChange  = null;


                var lend = (from lendd in db.Lends
                            where lendd.id == selectedId
                            select lendd).FirstOrDefault();

                if (lend != null)
                {
                    lendChange = lend;
                }

                if (lendChange.lendDate > DateTime.Now.Date || lendChange.returnDate <= lendChange.lendDate.Date)
                {
                    MessageBox.Show("Wypożyczenie nie zaczeło się!", "Komunikat");
                }
                else
                {
                    System.Windows.Window glowneOkno = System.Windows.Application.Current.MainWindow;
                    glowneOkno.DataContext = new StatystykiWypozyczenia(lendChange, true);
                }
            }
            else
            {
                MessageBox.Show("Niczego nie wybrano !", "Komunikat");
            }
        }
        private void InitializeList()
        {
            Stopwatch stoper = new Stopwatch();             //todo: usunąć stoper

            stoper.Start();

            items.Clear();
            var db          = new AEiI_2020_BD2_Drynda_FlotaEntities();
            var contractors = db.Contractors;

            foreach (var contractor in contractors)
            {
                ListViewItem list = new ListViewItem();
                list.Content = new ListItem {
                    contractorId = contractor.id, name = contractor.name, startDate = contractor.startSate, endDate = contractor.endDate?.Date
                };
                items.Add(list);
            }
            Array.Sort(items.ToArray(), (ListViewItem a, ListViewItem b) => ((ListItem)a.Content).contractorId.CompareTo(((ListItem)b.Content).contractorId));
            contractorList.ItemsSource = items;

            stoper.Stop();
            //Title.Text = stoper.Elapsed.ToString();
        }
        private void zlec(object sender, RoutedEventArgs e)
        {
            Activity selected = (Activity)ListViewActivities.SelectedItem;

            if (selected != null)
            {
                int selectedId = selected.IDusterki;
                var db         = new AEiI_2020_BD2_Drynda_FlotaEntities();
                var activities = db.Activities;

                foreach (var activity in activities)
                {
                    if (activity.id == selectedId)
                    {
                        System.Windows.Window glowneOkno = System.Windows.Application.Current.MainWindow;
                        glowneOkno.DataContext = new ZlecWykonanieCzynnosci(userPermission, car1, activity);
                    }
                }
            }
            else
            {
                MessageBox.Show("Nie wybrano usterki!", "Komunikat");
            }
        }
        private static CarCost CostInfoAboutCar(Car car, Document doc, DateTime?raportBegin, DateTime?raportEnd, bool write)
        {
            var distance    = 0;
            var fuelCost    = 0.0;
            var serviceCost = 0.0;

            var db = new AEiI_2020_BD2_Drynda_FlotaEntities();

            //KOSZTA PALIWA
            var lends = from Lends in db.Lends
                        where car.id == Lends.carId
                        select Lends;

            if (raportBegin != null)
            {
                lends = lends.Where(x => x.lendDate >= raportBegin);
            }
            if (raportEnd != null)
            {
                lends = lends.Where(x => x.returnDate <= raportEnd);
            }

            foreach (var lend in lends)
            {
                if (lend.endOdometer != null)
                {
                    distance += lend.endOdometer.Value - lend.startOdometer;
                }

                fuelCost += (distance * 4.75) + (0.05 * lend.Car.engineCapacity);
            }

            fuelCost = Math.Round(fuelCost, 2, MidpointRounding.AwayFromZero);

            var fuelCostPerKm = 0.0;

            if (distance != 0)
            {
                fuelCostPerKm = fuelCost / distance;
            }

            fuelCostPerKm = Math.Round(fuelCostPerKm, 2, MidpointRounding.AwayFromZero);
            //KOSZTA PALIWA

            //KOSZTA SERWISU
            var services = from Services in db.Activities
                           where car.id == Services.carId
                           select Services;

            if (raportBegin != null)
            {
                services = services.Where(x => x.reportDate >= raportBegin);
            }
            if (raportEnd != null)
            {
                services = services.Where(x => x.reportDate >= raportBegin);
            }

            foreach (var service in services)
            {
                serviceCost += service.price == null ? 0 : (double)service.price;
            }

            serviceCost = Math.Round(serviceCost, 2, MidpointRounding.AwayFromZero);

            var serviceCostPerKm = 0.0;

            if (distance != 0)
            {
                serviceCostPerKm = serviceCost / distance;
            }

            serviceCostPerKm = Math.Round(serviceCostPerKm, 2, MidpointRounding.AwayFromZero);
            //KOSZTA SERWISU

            if (write)
            {
                //SAMOCHÓD
                doc.Add(new iTextSharp.text.Paragraph(car.id + "   " + car.Registration + "\n\n", Font32));
                //SAMOCHÓD

                //O KOSZTACH
                doc.Add(new iTextSharp.text.Paragraph("Przejechany dystans: " + distance + "\n\n", Font14));
                doc.Add(new iTextSharp.text.Paragraph("Koszta paliwa: " + fuelCost + "\n", Font14));
                doc.Add(new iTextSharp.text.Paragraph("Koszta paliwa / 1km: " + fuelCostPerKm + "\n\n", Font14));
                doc.Add(new iTextSharp.text.Paragraph("Koszta serwisu: " + serviceCost + "\n", Font14));
                doc.Add(new iTextSharp.text.Paragraph("Koszta serwisu / 1km: " + serviceCostPerKm + "\n\n", Font14));
                doc.Add(new iTextSharp.text.Paragraph("Sumaryczne koszta: " + (fuelCost + serviceCost) + "\n", Font14));
                doc.Add(new iTextSharp.text.Paragraph("Sumaryczne koszta / 1km: " + (fuelCostPerKm + serviceCostPerKm) + "\n", Font14));
                //O KOSZTACH

                doc.NewPage();
            }

            CarCost carCost = new CarCost
            {
                fuelCost         = fuelCost,
                serviceCost      = serviceCost,
                fuelCostPerKm    = fuelCostPerKm,
                serviceCostPerKm = serviceCostPerKm
            };

            return(carCost);
        }
Example #13
0
        private void DeleteCar(object sender, RoutedEventArgs e)
        {
            //Pobieram zaznaczony samochód
            ListViewItem selected = (ListViewItem)carList.SelectedItem;

            if (selected != null)
            {
                ItemList         selectedObj = (ItemList)selected.Content;
                int              selectedId  = selectedObj.carId;
                MessageBoxResult result      = MessageBox.Show("Czy na pewno chcesz usunąć pojazd " + selectedObj.registration + "?"
                                                               , "Potwierdź usunięcie", MessageBoxButton.YesNoCancel, MessageBoxImage.Warning);
                if (result != MessageBoxResult.Yes)
                {
                    return;
                }
                //Usuwam zaznaczony samochód z listy

                /*items.Remove((ListViewItem)carList.SelectedItem);
                 * carList.ItemsSource = items;*/

                var db   = new AEiI_2020_BD2_Drynda_FlotaEntities();
                var cars = db.Cars;

                //Usuwam zaznaczony samochód z bazy
                foreach (var car in cars)
                {
                    if (car.id == selectedId)
                    {
                        db.Cars.Remove(car);
                        break;
                    }
                }
                try
                {
                    db.SaveChanges();
                }
                catch (Exception)
                {
                    var reservations = db.Reservations;
                    foreach (var reservation in reservations)
                    {
                        if (reservation.carId == selectedId)
                        {
                            MessageBox.Show("Istnieją rezerwacje powiązane z " + selectedObj.registration
                                            + ", nie można usunąć tego pojazdu?"
                                            , "Błąd przy usuwaniu", MessageBoxButton.OK, MessageBoxImage.Warning);
                            return;
                        }
                    }

                    var lends = db.Lends;
                    foreach (var lend in lends)
                    {
                        if (lend.carId == selectedId)
                        {
                            MessageBox.Show("Istnieją wypożyczenia powiązane z " + selectedObj.registration
                                            + ", nie można usunąć tego pojazdu?"
                                            , "Błąd przy usuwaniu", MessageBoxButton.OK, MessageBoxImage.Warning);
                            return;
                        }
                    }

                    MessageBox.Show("Usunięto samochód", "Informacja");
                    items.Remove(selected);
                    carList.ItemsSource = items;
                    carList.Items.Refresh();
                    db.SaveChanges();
                }
            }
            else
            {
                MessageBox.Show("Nie wybrano samochodu!", "Komunikat");
            }
        }
Example #14
0
        public void ListaRezerwacji()
        {
            Stopwatch stoper = new Stopwatch();

            stoper.Start();

            var db = new AEiI_2020_BD2_Drynda_FlotaEntities();

            var query = from reserv in db.Reservations
                        select new
            {
                ReservationId   = reserv.id,
                Owner           = reserv.Person.lastName + " " + reserv.Person.firstName,
                Vehicle         = reserv.Car.CarModel.make + "/" + reserv.Car.CarModel.model + "/" + reserv.Car.Registration + "\n",
                Private         = reserv.@private,
                Ended           = reserv.ended,
                LendDate        = reserv.lendDate,
                ReturnDate      = reserv.returnDate,
                ReservationDate = reserv.reservationDate
            };


            foreach (var reserv in query)
            {
                ListViewItem OneItem = new ListViewItem();

                string dateTime = reserv.LendDate.ToString();
                string date     = dateTime.Substring(0, 10);

                OneItem.Content = new ReservationList
                {
                    ReservationId    = reserv.ReservationId + 1,
                    Person           = reserv.Owner,
                    ReservationStart = date,
                    ReservationEnd   = reserv.ReturnDate.ToString().Substring(0, 10),
                    ReservationDate  = reserv.ReservationDate.ToString().Substring(0, 10),
                    Vehicle          = reserv.Vehicle
                };

                if (reserv.Private == false && reserv.Ended == true && ZakonczoneBox.IsChecked.Value == true)
                {
                    OneItem.Background = Brushes.OrangeRed; //zakonczone nie prywatne
                    items.Add(OneItem);
                }
                else if (reserv.Private == true && reserv.Ended == true && Zakonczone_i_PrywatneBox.IsChecked.Value == true)
                {
                    OneItem.Background = Brushes.Red; // zakonczone prywante
                    items.Add(OneItem);
                }
                else if (reserv.Private == true && PrywatneBox.IsChecked.Value == true && reserv.Ended == false)
                {
                    OneItem.Background = Brushes.BlueViolet;  //prywatne
                    items.Add(OneItem);
                }
                else if (PozostałeBox.IsChecked.Value == true &&
                         reserv.Ended == false && reserv.Private == false)
                {
                    items.Add(OneItem);
                }
            }
            ListViewReservations.ItemsSource = items;

            stoper.Stop();
            //Title.Text = stoper.Elapsed.ToString();
        }
        private void initializeList()
        {
            var db = new AEiI_2020_BD2_Drynda_FlotaEntities();
            int id = Logowanie.actualUser.id;


            var query = from supervisor in db.CarSupervisors
                        where id == supervisor.personId
                        join car in db.Cars on supervisor.carId equals car.id
                        select new
            {
                carId        = car.id,
                EndDate      = supervisor.endDate == null ? DateTime.MinValue : supervisor.endDate,
                registration = car.Registration,
                onService    = car.onService
            };


            String isCarUsed;
            int    carFaults  = 0;
            var    activities = db.Activities;

            foreach (var car in query)
            {
                if (car.EndDate == DateTime.MinValue)
                {
                    carFaults = 0;
                    foreach (var activity in activities)
                    {
                        if (activity.carId == car.carId)
                        {
                            if (activity.closeDate == null)
                            {
                                carFaults++;
                            }
                        }
                    }
                    ListViewItem OneItem = new ListViewItem();
                    if (car.onService)
                    {
                        isCarUsed = "Nie";
                    }
                    else
                    {
                        isCarUsed = "Tak";
                    }
                    OneItem.Content = new CarList {
                        carId = car.carId, registration = car.registration, fault = carFaults, isUsed = isCarUsed
                    };

                    items.Add(OneItem);
                }
            }
            carList.ItemsSource = items;

            CollectionView view = (CollectionView)CollectionViewSource.GetDefaultView(carList.ItemsSource);

            view.SortDescriptions.Add(new SortDescription("carId", ListSortDirection.Descending));

            view.Filter += UserFilter;
        }
Example #16
0
        public StatystykiPracownika(Person people)
        {
            InitializeComponent();

            changePerson = people;

            if (changePerson.layoffDate <= DateTime.Now) //jeśli pracownik jest zwolniony nie można zmienić danych logownaia
            {
                KierownikPanel.Visibility = Visibility.Hidden;

                KierownikStartPanel.Visibility   = Visibility.Hidden;
                KierownikEndPanel.Visibility     = Visibility.Hidden;
                zmienLoginButton.Visibility      = Visibility.Hidden;
                zmienpassowrdButton.Visibility   = Visibility.Hidden;
                zmienKierownikaButton.Visibility = Visibility.Hidden;
                OpiekunPanel.Visibility          = Visibility.Hidden; //nie może byc opiekunem zwolniony pracownik
                Thickness margin = BylyOpiekunPanel.Margin;
                margin.Top = margin.Top - 20;
                BylyOpiekunPanel.Margin = margin; //przesuwamy w górę panel z byłymi opiekunami
            }
            else
            {
                ScrolllBylyOpiekun.Height = 40;
                BylyOpiekunText.Height    = 40;
                BylyOpiekunPanel.Height   = 40;
            }

            var db = new AEiI_2020_BD2_Drynda_FlotaEntities();

            var worker = (from peoplee in db.People
                          where peoplee.id == changePerson.id
                          select peoplee).FirstOrDefault();

            var workerPermission = (from personPermission in db.PeoplesPermissions
                                    where personPermission.personId == changePerson.id
                                    select personPermission).FirstOrDefault();



            var query2 = from supervisor in db.CarSupervisors
                         where worker.id == supervisor.personId
                         join car in db.Cars on supervisor.carId equals car.id
                         select new
            {
                BeginDate       = supervisor.beginDate == null ? DateTime.MinValue : supervisor.beginDate,
                EndDate         = supervisor.endDate == null ? DateTime.MinValue : supervisor.endDate,
                SaleDate        = car.saleDate == null ? DateTime.MinValue : car.saleDate,
                CarMake         = car.CarModel.make,
                CarModel        = car.CarModel.model,
                CarRegistration = car.Registration,
            };


            var query3 = from lends2 in db.Lends
                         where lends2.personId == worker.id
                         select new
            {
                LendDate          = lends2.lendDate == null ? DateTime.MinValue : lends2.lendDate,
                EngineCar         = lends2.Car.engineCapacity,      // == null ? 0 : lends2.Car.engineCapacity,
                ReservationEnd    = lends2.Reservation.ended,
                ReturnDate        = lends2.returnDate == null ? DateTime.MinValue : lends2.returnDate,
                Private           = lends2.@private,
                StartOdometer     = lends2.startOdometer,
                EndOdometer       = lends2.endOdometer,
                PlannedReturnDate = lends2.plannedReturnDate,
                LendedCar         = lends2.Car
            };

            ImieNazwisko.Text     = worker.firstName + " " + worker.lastName;
            DataZatrudnienia.Text = worker.employmentData.ToString().Substring(0, 10);
            if (worker.layoffDate != null)
            {
                DataZwolnienia.Text = worker.layoffDate.ToString().Substring(0, 10);
            }
            Login.Text = worker.systemLogin;


            //  var carSupervisior = db.CarSupervisors;

            var    lends       = db.Lends;
            var    cars        = db.Cars;
            string textOpiekun = "";
            string bylyOpiekun = "";

            foreach (var personSup in query2)

            {
                if ((personSup.EndDate > DateTime.Today || personSup.EndDate == null || personSup.EndDate == DateTime.MinValue) &&
                    (personSup.SaleDate > DateTime.Today || personSup.SaleDate == null || personSup.SaleDate == DateTime.MinValue))
                {
                    textOpiekun += personSup.CarMake + "/" + personSup.CarModel + "/" + personSup.CarRegistration + "\n";
                }
                else
                {
                    bylyOpiekun += personSup.CarMake + "/" + personSup.CarModel + "/" + personSup.CarRegistration + "\n";
                }
            }

            if (!(changePerson.layoffDate <= DateTime.Now))
            {
                Opiekun.Text = textOpiekun;
            }
            BylyOpiekun.Text = bylyOpiekun;

            Kierownik.Text = "Nie";

            if (workerPermission != null && workerPermission.Permission.name == "Kierownik" &&
                workerPermission.grantDate <= DateTime.Now.Date && (workerPermission.revokeDate > DateTime.Now || workerPermission.revokeDate == null))
            {
                //    KierownikEndPanel.Visibility = Visibility.Visible;
                //   KierownikStartPanel.Visibility = Visibility.Visible;
                Kierownik.Text          = "Tak";
                KierownikDateStart.Text = workerPermission.grantDate.ToString().Substring(0, 10);
                if (workerPermission.revokeDate != null)
                {
                    KierownikDateEnd.Text = workerPermission.revokeDate.ToString().Substring(0, 10);
                }
            }
            else if (workerPermission != null && workerPermission.Permission.name == "Kierownik" && workerPermission.grantDate > DateTime.Now.Date &&
                     workerPermission.grantDate < worker.layoffDate)
            {
                // KierownikEndPanel.Visibility = Visibility.Visible;
                //    KierownikStartPanel.Visibility = Visibility.Visible;

                if (((workerPermission.grantDate - DateTime.Now).Days + 1) == 1)
                {
                    Kierownik.Text = "Za " + ((workerPermission.grantDate - DateTime.Now.Date).Days + 1) + " dzień";
                }
                else
                {
                    Kierownik.Text = "Za " + ((workerPermission.grantDate - DateTime.Now.Date).Days + 1) + " dni";
                }
                KierownikDateStart.Text = workerPermission.grantDate.ToString().Substring(0, 10);
                if (workerPermission.revokeDate != null)
                {
                    KierownikDateEnd.Text = workerPermission.revokeDate.ToString().Substring(0, 10);
                }
            }
            else
            {
                KierownikEndPanel.Visibility   = Visibility.Hidden;
                KierownikStartPanel.Visibility = Visibility.Hidden;
            }
            int zleceniaPrywatne      = 0;
            int przejechaneKm         = 0;
            int zleceniaSluzbowe      = 0;
            int przejechaneKmSluzbowe = 0;


            int dni         = 0;
            int dniSluzbowe = 0;

            var pojazd         = "";
            var pojazdSluzbowy = "";

            double koszty         = 0;
            double kosztySluzbowe = 0;

            foreach (var personLend in query3)
            {
                if (personLend.ReservationEnd == true && personLend.ReturnDate != null) //lend ktore były
                {
                    if (personLend.Private == true)
                    {
                        zleceniaPrywatne++;
                        if (personLend.EndOdometer != null)
                        {
                            przejechaneKm += personLend.EndOdometer.Value - personLend.StartOdometer;
                        }
                        if (personLend.ReturnDate > personLend.LendDate)
                        {
                            TimeSpan t = (DateTime)personLend.ReturnDate - personLend.LendDate;
                            dni += (int)t.TotalDays;
                        }
                        if (przejechaneKm > 0)
                        {
                            koszty = (przejechaneKm * 4.75) + (0.05 * personLend.EngineCar);
                        }
                    }
                    else
                    {
                        zleceniaSluzbowe++;
                        if (personLend.EndOdometer != null)
                        {
                            przejechaneKmSluzbowe += personLend.EndOdometer.Value - personLend.StartOdometer;
                        }
                        if (personLend.ReturnDate > personLend.LendDate)
                        {
                            TimeSpan t = (DateTime)personLend.ReturnDate - personLend.LendDate;
                            dniSluzbowe += (int)t.TotalDays;
                        }
                        if (przejechaneKmSluzbowe > 0)
                        {
                            kosztySluzbowe = (przejechaneKmSluzbowe * 4.75) + (0.05 * personLend.EngineCar);
                        }
                    }
                }

                if (personLend.LendDate <= DateTime.Today && personLend.PlannedReturnDate > DateTime.Today &&
                    (personLend.ReturnDate == null || personLend.ReturnDate == DateTime.MinValue) && personLend.ReservationEnd == false) //aktualny pojazd
                {
                    {
                        if (personLend.Private == true)
                        {
                            pojazd += personLend.LendedCar.CarModel.make + "/" + personLend.LendedCar.CarModel.model + "/" + personLend.LendedCar.Registration + "\n";
                        }
                        else
                        {
                            pojazdSluzbowy += personLend.LendedCar.CarModel.make + "/" + personLend.LendedCar.CarModel.model + "/" + personLend.LendedCar.Registration + "\n";
                        }
                    }
                }
            }

            Pojazd.Text         = pojazd;
            PojazdSluzbowe.Text = pojazdSluzbowy;


            Dni.Text         = dni.ToString() + " dni";
            DniSluzbowe.Text = dniSluzbowe.ToString() + " dni";

            Zlecenia.Text    = zleceniaPrywatne.ToString();
            Przejechane.Text = przejechaneKm.ToString() + " km";


            PrzejechaneSluzobowe.Text = przejechaneKmSluzbowe.ToString() + " km";
            ZleceniaSluzbowe.Text     = zleceniaSluzbowe.ToString();

            Koszty.Text         = koszty.ToString() + " PLN";
            KosztySluzbowe.Text = kosztySluzbowe.ToString() + " PLN";
        }
Example #17
0
        public ZmienRezerwacje(Reservation reservationChange)
        {
            InitializeComponent();

            var db           = new AEiI_2020_BD2_Drynda_FlotaEntities();
            var reservations = db.Reservations;

            this.reservationChange = reservationChange;
            PrywatneBox.IsChecked  = reservationChange.@private;

            ReservationDate.SelectedDate = reservationChange.reservationDate;
            ReservationEnd.BlackoutDates.AddDatesInPast();
            ReservationStart.BlackoutDates.AddDatesInPast();

            ReservationEnd.SelectedDate = reservationChange.returnDate;

            if (reservationChange.lendDate < DateTime.Now.Date)
            {
                ReservationStart.IsEnabled = false;
                ReservationStart.BlackoutDates.Clear();
            }
            ReservationStart.SelectedDate = reservationChange.lendDate;

            var query = from person in db.People
                        select new
            {
                Id         = person.id,
                LastName   = person.lastName,
                FirstName  = person.firstName,
                LayoffDate = person.layoffDate
            };


            foreach (var human in query)
            {
                if (human.LayoffDate > DateTime.Now || human.LayoffDate == null) //wyswietlamy tych co jeszcze pracują
                {
                    Pracownicy.Items.Add(human.Id.ToString() + ") " + human.FirstName + " " + human.LastName);
                }
            }
            var query2 = from car in db.Cars
                         where car.onService == false //gdy w serwisie nie wypożyczamy
                         select new
            {
                Id = car.id,
            };

            foreach (var car in query2)
            {
                PojazdID.Items.Add(car.Id.ToString());
            }

            PojazdID.SelectedItem = reservationChange.carId.ToString();
            int index = -1;

            foreach (var human in query)
            {
                if (human.LayoffDate > DateTime.Now || human.LayoffDate == null)
                {
                    index++;
                }
                if (reservationChange.personId == human.Id)
                {
                    break;
                }
            }
            Pracownicy.SelectedIndex = index;
            Dane_Pojzadu();
        }
Example #18
0
        private void Zmien_Dane_Rezerwacji(object sender, RoutedEventArgs e)
        {
            var      db                  = new AEiI_2020_BD2_Drynda_FlotaEntities();
            DateTime?datePersonOut       = null;
            DateTime?actualCarLendDate   = null;
            DateTime?actualCarReturnDate = null;
            Person   personReservation   = null;

            if (Rejestracja.Text == "" || PojemnoscSilnika.Text == "" ||
                Marka.Text == "" || Model.Text == "" || Zastosowanie.Text == "")
            {
                MessageBox.Show("Złe dane pojazdu.", "Komunikat");
                return;
            }

            var worker = (from persons in db.People
                          where (persons.id.ToString() + ") " + persons.firstName + " " + persons.lastName).Equals(Pracownicy.Text)
                          select persons).FirstOrDefault();

            if (worker != null)
            {
                datePersonOut     = worker.layoffDate;
                personReservation = worker;
            }
            bool doReservationCar    = true;
            bool doReservationPerson = true;

            if (datePersonOut != null && ReservationEnd.SelectedDate != null && datePersonOut < ReservationEnd.SelectedDate)
            {
                MessageBox.Show("Wybrany pracownik zostaje zwolniony\nw czasie nowej rezerwacji.", "Komunikat");
            }
            else if (ReservationStart.SelectedDate != null && ReservationEnd.SelectedDate != null &&
                     ReservationEnd.SelectedDate > ReservationStart.SelectedDate //prawdopodobnie zbędna linia, DatePickery chyba przed tym bronią
                     )                                                           //sprawdzanie poprawności danych
            {
                var query = from reserv in db.Reservations
                            where reserv.carId.ToString() == PojazdID.SelectedItem.ToString() && reserv.id != this.reservationChange.id
                            select new
                {
                    Id         = reserv,
                    CarId      = reserv.carId,
                    LendDate   = reserv.lendDate,
                    ReturnDate = reserv.returnDate,
                    Ended      = reserv.ended,
                };

                if (query == null)
                {
                    doReservationCar = true;
                }
                else
                {
                    foreach (var reserv in query)
                    {
                        actualCarLendDate   = reserv.LendDate;
                        actualCarReturnDate = reserv.ReturnDate;

                        if (actualCarReturnDate <= ReservationStart.SelectedDate || (actualCarLendDate >= ReservationEnd.SelectedDate) ||
                            (actualCarLendDate == null && actualCarReturnDate == null) || reserv.Ended == true)
                        {
                            doReservationCar = true;
                        }
                        else
                        {
                            doReservationCar = false;
                            break;
                        }
                    }
                }
                var query2 = from reserv in db.Reservations
                             where reserv.personId.ToString() == personReservation.id.ToString() && reserv.id != this.reservationChange.id
                             select new
                {
                    Id         = reserv,
                    CarId      = reserv.carId,
                    LendDate   = reserv.lendDate,
                    ReturnDate = reserv.returnDate,
                    Ended      = reserv.ended,
                };
                if (query2 == null)
                {
                    doReservationPerson = true;
                }
                else
                {
                    foreach (var reserv in query2)
                    {
                        actualCarLendDate   = reserv.LendDate;
                        actualCarReturnDate = reserv.ReturnDate;

                        if (actualCarReturnDate <= ReservationStart.SelectedDate || (actualCarLendDate >= ReservationEnd.SelectedDate) ||
                            (actualCarLendDate == null && actualCarReturnDate == null) || reserv.Ended == true)
                        {
                            doReservationPerson = true;
                        }
                        else
                        {
                            doReservationPerson = false;
                            break;
                        }
                    }
                }

                if (doReservationCar == true && doReservationPerson == true) //sprawdzanie czy samochod jest zareezrwowany w wybranym czasie lub pracownik ma rezerwacje w tym czasie
                {
                    Reservation reservationChange = null;

                    var reservation = (from reserv in db.Reservations
                                       where reserv.id == this.reservationChange.id
                                       select reserv).FirstOrDefault();

                    if (reservation != null)
                    {
                        reservationChange = reservation;
                    }

                    reservationChange.carId           = Int16.Parse(PojazdID.SelectedItem.ToString());
                    reservationChange.reservationDate = ReservationDate.SelectedDate.Value;
                    reservationChange.lendDate        = ReservationStart.SelectedDate.Value;
                    reservationChange.returnDate      = ReservationEnd.SelectedDate;
                    reservationChange.ended           = false;

                    if (PrywatneBox.IsChecked == true)
                    {
                        reservationChange.@private = true;
                    }
                    else
                    {
                        reservationChange.@private = false;
                    }


                    reservationChange.personId = worker.id;

                    db.SaveChanges();

                    var lend = (from lendd in db.Lends
                                where lendd.reservationId == reservationChange.id
                                select lendd).FirstOrDefault();

                    if (lend != null)
                    {
                        lend.carId             = reservationChange.carId;
                        lend.personId          = reservationChange.personId;
                        lend.lendDate          = reservationChange.lendDate;
                        lend.plannedReturnDate = reservationChange.returnDate;
                        lend.@private          = (bool)reservationChange.@private;
                        lend.comments         += "\nZmiana w dniu " + DateTime.Now.ToShortDateString();
                    }

                    db.SaveChanges();

                    MessageBox.Show("Zmodyfikowano rezerwację.", "Komunikat");
                }
                else
                {
                    if (doReservationCar == false)
                    {
                        MessageBox.Show("Samochód w tym czasie \njest już zarezerwowany!", "Komunikat");
                    }
                    else if (doReservationPerson == false)
                    {
                        MessageBox.Show("Pracownik w tym czasie \njest zajęty!", "Komunikat");
                    }
                    else
                    {
                        MessageBox.Show("Pracownik i samochód w tym czasie \nsą zajęci!", "Komunikat");
                    }
                }
            }
            else
            {
                MessageBox.Show("Błędne dane.", "Komunikat");
            }
        }
        private void Zakoncz_Wypozyczenie(object sender, RoutedEventArgs e)
        {
            ListViewItem selected = (ListViewItem)ListViewLends.SelectedItem;

            if (selected != null)
            {
                LendList selectedObj = (LendList)selected.Content;

                int  selectedId = selectedObj.LendId - 1;
                var  db         = new AEiI_2020_BD2_Drynda_FlotaEntities();
                Lend lendChange = null;

                var lend = (from lendd in db.Lends
                            where lendd.id == selectedId
                            select lendd).FirstOrDefault();

                if (lend != null)
                {
                    lendChange = lend;
                }


                if (lendChange.returnDate <= DateTime.Now || lendChange.Reservation.ended == true)
                {
                    MessageBox.Show("Wypożyczenie się zakończyło!", "Komunikat");
                }
                else if (lendChange.lendDate > DateTime.Now)
                {
                    MessageBox.Show("Wypożyczenie się jeszcze\nnie rozpoczeło!", "Komunikat");
                }

                else
                {
                    DialogResult result = MessageBox.Show("Czy chcesz zakonczyc wypożyczenie ?"
                                                          , "Komunikat", MessageBoxButtons.YesNo);
                    if (result == DialogResult.Yes)
                    {
                        lendChange.returnDate = DateTime.Now.Date;

                        lendChange.comments += "Zakończono przez zakończenie\nwypożyczenia przez pracownika " + Logowanie.actualUser.id + ") " +
                                               Logowanie.actualUser.firstName + " " + Logowanie.actualUser.lastName + " - " + DateTime.Now.ToString() + "\n";
                        //   var reservations = db.Reservations;

                        var reservation = (from reserv in db.Reservations
                                           where lendChange.id == reserv.lendId
                                           select reserv).FirstOrDefault();


                        reservation.ended = true;
                        db.SaveChanges();

                        ListViewLends.ItemsSource = null;
                        items.Clear();
                        UpdateView();
                    }
                    else if (result == DialogResult.No)
                    {
                    }
                }
            }
            else
            {
                MessageBox.Show("Nic nie wybrano !", "Komunikat");
            }
        }
Example #20
0
        private void Generuj_Raport_Rezerwacje(object sender, RoutedEventArgs e)
        {
            var db = new AEiI_2020_BD2_Drynda_FlotaEntities();

            string path = GetPath();

            if (path == "")
            {
                return;
            }

            Font times = new Font(BaseFont.CreateFont(@"C:\Windows\Fonts\Arial.ttf", BaseFont.CP1250, true)); //polskie znaki

            times.Size = 32;
            FileStream fs = new FileStream(path, FileMode.Create, FileAccess.Write, FileShare.None);

            Document  doc    = new Document();
            PdfWriter writer = PdfWriter.GetInstance(doc, fs);

            doc.Open();
            string namePerson = "";
            var    vehicle    = "";

            var query = from reserv in db.Reservations
                        select new
            {
                ReservationId   = reserv.id,
                Owner           = reserv.Person.lastName + " " + reserv.Person.firstName,
                Vehicle         = reserv.Car.CarModel.make + "/" + reserv.Car.CarModel.model + "/" + reserv.Car.Registration + "\n",
                Private         = reserv.@private,
                Ended           = reserv.ended,
                LendDate        = reserv.lendDate,
                ReturnDate      = reserv.returnDate,
                ReservationDate = reserv.reservationDate
            };


            foreach (var reserv in query)
            {
                namePerson = reserv.Owner;
                Chunk c = new Chunk((reserv.ReservationId + 1) + ")\n" + namePerson, times);

                vehicle = reserv.Vehicle;

                if ((Regex.IsMatch(namePerson, personFilter.Text, RegexOptions.IgnoreCase)) &&
                    (Regex.IsMatch(reserv.LendDate.ToShortDateString(), dataStartFilter.Text, RegexOptions.IgnoreCase)) &&
                    (Regex.IsMatch(reserv.ReturnDate.ToString().Substring(0, 10), dataEndFilter.Text, RegexOptions.IgnoreCase)) &&
                    (Regex.IsMatch(reserv.ReservationDate.ToString().Substring(0, 10), dataReservationFilter.Text, RegexOptions.IgnoreCase)) &&
                    Regex.IsMatch(vehicle, carFilter.Text, RegexOptions.IgnoreCase) && Regex.IsMatch((reserv.ReservationId + 1).ToString(), idFilter.Text))
                {
                    if (reserv.Private == false && reserv.Ended == true && ZakonczoneBox.IsChecked.Value == true)
                    {
                        c.SetBackground(BaseColor.ORANGE);
                        times.Size = 26;
                        doc.Add(new iTextSharp.text.Paragraph(c));
                        doc.Add(new iTextSharp.text.Paragraph(("Dzień Rozpoczęcia: " + reserv.LendDate).Substring(0, 29), times));
                        doc.Add(new iTextSharp.text.Paragraph(("Dzień Zakończenia: " + reserv.ReturnDate).Substring(0, 29), times));
                        doc.Add(new iTextSharp.text.Paragraph(("Dzień Rezerwacji: " + reserv.ReservationDate).Substring(0, 29), times));


                        doc.Add(new iTextSharp.text.Paragraph("Pojazd: " + vehicle + "\n", times));
                        times.Size = 32;
                    }
                    else if (reserv.Private == true && reserv.Ended == true && Zakonczone_i_PrywatneBox.IsChecked.Value == true)
                    {
                        c.SetBackground(BaseColor.RED);
                        times.Size = 26;
                        doc.Add(new iTextSharp.text.Paragraph(c));
                        doc.Add(new iTextSharp.text.Paragraph(("Dzień Rozpoczęcia: " + reserv.LendDate).Substring(0, 29), times));
                        doc.Add(new iTextSharp.text.Paragraph(("Dzień Zakończenia: " + reserv.ReturnDate).Substring(0, 29), times));
                        doc.Add(new iTextSharp.text.Paragraph(("Dzień Rezerwacji: " + reserv.ReservationDate).Substring(0, 29), times));

                        doc.Add(new iTextSharp.text.Paragraph("Pojazd: " + vehicle + "\n", times));
                        times.Size = 32;
                    }
                    else if (reserv.Private == true && PrywatneBox.IsChecked.Value == true && reserv.Ended == false)
                    {
                        c.SetBackground(BaseColor.BLUE);
                        times.Size = 26;
                        doc.Add(new iTextSharp.text.Paragraph(c));
                        doc.Add(new iTextSharp.text.Paragraph(("Dzień Rozpoczęcia: " + reserv.LendDate).Substring(0, 29), times));
                        doc.Add(new iTextSharp.text.Paragraph(("Dzień Zakończenia: " + reserv.ReturnDate).Substring(0, 29), times));
                        doc.Add(new iTextSharp.text.Paragraph(("Dzień Rezerwacji: " + reserv.ReservationDate).Substring(0, 29), times));

                        doc.Add(new iTextSharp.text.Paragraph("Pojazd: " + vehicle + "\n", times));
                        times.Size = 32;
                    }
                    else if (PozostałeBox.IsChecked.Value == true && reserv.Ended == false && reserv.Private == false)
                    {
                        times.Size = 26;
                        doc.Add(new iTextSharp.text.Paragraph(c));
                        doc.Add(new iTextSharp.text.Paragraph(("Dzień Rozpoczęcia: " + reserv.LendDate).Substring(0, 29), times));
                        doc.Add(new iTextSharp.text.Paragraph(("Dzień Zakończenia: " + reserv.ReturnDate).Substring(0, 29), times));
                        doc.Add(new iTextSharp.text.Paragraph(("Dzień Rezerwacji: " + reserv.ReservationDate).Substring(0, 29), times));


                        doc.Add(new iTextSharp.text.Paragraph("Pojazd: " + vehicle, times));
                        times.Size = 32;
                    }
                }
            }
            Chunk c1 = new Chunk("");

            doc.Add(c1); //doc nie może być pusty

            doc.Close();
            MessageBox.Show("Raport został wygenerowany.", "Komunikat");
        }
Example #21
0
        private int getPermission(string login, string password)
        {
            var db = new AEiI_2020_BD2_Drynda_FlotaEntities();

            int  permissionLevel = 1; //każdy jest pracownikiem, jak nim nie jest to i tak rzuci zero
            bool kierownikLogin  = false;
            bool opiekunLogin    = false;

            if (login.Length >= 6 && password.Length >= 6)
            {
                Person person = db.People.Where(p => p.systemLogin == login && (p.layoffDate == null || p.layoffDate > DateTime.Now)).SingleOrDefault();
                if (person != null)
                {
                    if (person.passwordHash.SequenceEqual(getHash(password)))                       //sprawdzenie hasła

                    {
                        actualUser = person;

                        var dateNow = DateTime.Now.Date;

                        int kierownikPermissionsCount = db.PeoplesPermissions.Where(pp => pp.personId == person.id && pp.Permission.name == "Kierownik" && pp.grantDate <= dateNow && (pp.revokeDate == null || pp.revokeDate > dateNow)).Count();

                        //liczba uprawnień kierowniczych, powinno być zawsze jedno, bądź zero

                        if (kierownikPermissionsCount > 0)
                        {
                            kierownikLogin = true;
                        }

                        int supervisedCarsCount = db.CarSupervisors.Where(cs => cs.personId == person.id && cs.beginDate <= dateNow && (cs.endDate == null || cs.endDate > dateNow)).Count();
                        if (supervisedCarsCount > 0)
                        {
                            opiekunLogin = true;
                        }

                        MessageBox.Show("Witaj " + person.firstName + " " + person.lastName + " !", "Komunikat");

                        if (opiekunLogin == true && kierownikLogin == false)                         //tylko opiekun
                        {
                            permissionLevel = 2;
                        }
                        else if (kierownikLogin == true && opiekunLogin == false)                         //tylko kierownik
                        {
                            permissionLevel = 3;
                        }
                        else if (kierownikLogin == true && opiekunLogin == true)                         // oby dwa
                        {
                            permissionLevel = 4;
                        }

                        return(permissionLevel);                        //ten permissionLevel mógłby być jakąś elegancką flagą bitową, trzy bity, jeden czy sukces, jeden czy kierownik, jeden czy opiekun
                        //ale piszemy w C#, a nie assemblerze, więc tutaj nikt się w coś takiego nie bawi, int jest ok
                    }
                    else
                    {
                        MessageBox.Show("Błędne dane logowania", "Komunikat");                         //złe hasło
                        return(0);
                    }
                }
            }
            MessageBox.Show("Błędne dane logowania.", "Komunikat");
            return(0);
        }
Example #22
0
        public StatystykiPojazdu(Car car, int userPermission)
        {
            InitializeComponent();

            if (userPermission != 2)
            {
                DataSprzedazy.Visibility = Visibility.Hidden;
            }

            permission             = userPermission;
            car1                   = car;
            Rejestracja.Text       = car.Registration;
            Pojemnosc_silnika.Text = car.engineCapacity.ToString();

            string saleDate     = "";
            string purchaseDate = "";

            if (car.saleDate != null)
            {
                DateTime temp = (DateTime)car.saleDate;
                saleDate = temp.ToShortDateString();
            }
            if (car.purchaseDate != null)
            {
                DateTime temp2 = (DateTime)car.purchaseDate;
                purchaseDate = temp2.ToShortDateString();
            }
            Data_zakupu.Text    = purchaseDate;
            Data_sprzedaży.Text = saleDate;
            Przeglad.Text       = car.inspectionValidUntil.ToShortDateString();

            var db = new AEiI_2020_BD2_Drynda_FlotaEntities();


            var carModel = (from carModell in db.CarModels
                            where carModell.id == car.modelId
                            select carModell).FirstOrDefault();


            if (carModel != null)
            {
                ModelPojazdu.Text = carModel.make + " " + carModel.model;
                Marka.Text        = carModel.make;
                Model.Text        = carModel.model;
            }

            Zastosowanie.Text = car.CarDestination.name;


            CalendarDateRange reservationBlackoutRange = null;

            var reservations = car.Reservations;
            int i            = 0;

            var query = from reserv in car.Reservations
                        select new
            {
                PersonId   = reserv.personId,
                Ended      = reserv.ended,
                LendDate   = reserv.lendDate,
                ReturnDate = reserv.returnDate,
            };

            foreach (var reservation in query)
            {
                if (reservation.Ended == false)
                {
                    if (reservation.PersonId == Logowanie.actualUser.id && permission != 2)
                    {
                        continue;
                    }
                    reservationBlackoutRange = new CalendarDateRange(((DateTime)reservation.LendDate), ((DateTime)reservation.ReturnDate).AddDays(-1));
                    Calendar.BlackoutDates.Insert(i, reservationBlackoutRange);
                    i++;
                }
            }

            var query2 = from lend in car.Lends
                         where lend.endOdometer != null
                         select new
            {
                StartOdometer = lend.startOdometer,
                EndOdometer   = lend.endOdometer,
            };
            int odometerCounter = 0;

            foreach (var lend in query2)
            {
                odometerCounter = (int)lend.EndOdometer - lend.StartOdometer;
            }
            Przebieg.Text = odometerCounter + " km";
        }
Example #23
0
        private void Dodaj_Zwolnienie(object sender, RoutedEventArgs e)
        {
            if (Kalendarz.SelectedDate != null)
            {
                var db = new AEiI_2020_BD2_Drynda_FlotaEntities();

                var carSupervisior = (from carS in db.CarSupervisors
                                      where carS.personId == personChange.id
                                      select carS).FirstOrDefault();

                if (carSupervisior != null)
                {
                    carSupervisior.endDate = Kalendarz.SelectedDate;
                }

                var person = (from people in db.People
                              where people.id == personChange.id
                              select people).FirstOrDefault();

                if (person != null)
                {
                    person.layoffDate = Kalendarz.SelectedDate;
                }

                var reservation = db.Reservations;
                foreach (var res in reservation)
                {
                    if (res.personId == personChange.id && res.ended == false)
                    {
                        if (res.returnDate > Kalendarz.SelectedDate)
                        {
                            res.ended = true; //zakańczamy rezerwację przy zwolnienu pracownika zostawiamy daty startu i końca
                        }
                    }
                }
                var lends = db.Lends;
                foreach (var lend in lends)
                {
                    if (lend.personId == personChange.id)
                    {
                        lend.returnDate        = Kalendarz.SelectedDate;
                        lend.plannedReturnDate = Kalendarz.SelectedDate;
                        lend.comments          = "Zakończono przez zwolnienie pracownika - " + DateTime.Now.ToString();
                    }
                }
                var permissions = db.PeoplesPermissions;
                foreach (var permission in permissions)
                {
                    if (permission.personId == personChange.id)
                    {
                        permission.revokeDate = Kalendarz.SelectedDate; //zamykamy wszyskie uprawnienia pracownika
                    }
                }
                MessageBox.Show("Ustawiono zwolnienie!", "Komunikat");
                db.SaveChanges();
            }
            else
            {
                MessageBox.Show("Zła data zwolnienia!", "Komunikat");
            }
            this.Close();
        }
        public static void GenerateCostsRaportAboutCarsModel(DateTime?raportBegin, DateTime?raportEnd)
        {
            string path = GetPath();

            if (path == "")
            {
                return;
            }

            FileStream fs     = new FileStream(path, FileMode.Create, FileAccess.Write, FileShare.None);
            Document   doc    = new Document();
            PdfWriter  writer = PdfWriter.GetInstance(doc, fs);

            doc.Open();

            var db = new AEiI_2020_BD2_Drynda_FlotaEntities();

            var carModels = from Models in db.CarModels
                            select Models;

            //Raport na temat np. Toledo, czyli pojedynczych modeli
            foreach (var carModel in carModels)
            {
                var cars = from Cars in db.Cars
                           where Cars.CarModel.model == carModel.model
                           select Cars;

                double modelFuelCost         = 0.0;
                double modelServiceCost      = 0.0;
                double modelFuelCostPerKm    = 0.0;
                double modelServiceCostPerKm = 0.0;

                foreach (var car in cars)
                {
                    CarCost carCost = CostInfoAboutCar(car, doc, raportBegin, raportEnd, false);
                    modelFuelCost         += carCost.fuelCost;
                    modelServiceCost      += carCost.serviceCost;
                    modelFuelCostPerKm    += carCost.fuelCostPerKm;
                    modelServiceCostPerKm += carCost.serviceCostPerKm;
                }

                //ZASTOSOWANIE
                doc.Add(new iTextSharp.text.Paragraph(carModel.model + "\n\n", Font32));
                //ZASTOSOWANIE

                //O KOSZTACH
                var modelFuelCostPerCar = modelFuelCost / cars.Count();
                modelFuelCostPerCar = Math.Round(modelFuelCostPerCar, 2, MidpointRounding.AwayFromZero);
                var modelServiceCostPerCar = modelServiceCost / cars.Count();
                modelServiceCostPerCar = Math.Round(modelServiceCostPerCar, 2, MidpointRounding.AwayFromZero);

                doc.Add(new iTextSharp.text.Paragraph("Samochodów: " + cars.Count() + "\n", Font14));
                doc.Add(new iTextSharp.text.Paragraph("Koszta paliwa: " + modelFuelCost + "\n", Font14));
                doc.Add(new iTextSharp.text.Paragraph("Koszta paliwa / samochoód: " + modelFuelCostPerCar + "\n", Font14));
                doc.Add(new iTextSharp.text.Paragraph("Koszta paliwa / 1km: " + modelFuelCostPerKm + "\n\n", Font14));
                doc.Add(new iTextSharp.text.Paragraph("Koszta serwisu: " + modelServiceCost + "\n", Font14));
                doc.Add(new iTextSharp.text.Paragraph("Koszta serwisu / samochód: " + modelServiceCostPerCar + "\n", Font14));
                doc.Add(new iTextSharp.text.Paragraph("Koszta serwisu / 1km: " + modelServiceCostPerKm + "\n\n", Font14));
                doc.Add(new iTextSharp.text.Paragraph("Sumaryczne koszta: " + (modelFuelCost + modelServiceCost) + "\n", Font14));
                doc.Add(new iTextSharp.text.Paragraph("Sumaryczne koszta/ samochod: " + (modelServiceCostPerCar + modelFuelCostPerCar) + "\n", Font14));
                doc.Add(new iTextSharp.text.Paragraph("Sumaryczne koszta / 1km: " + (modelFuelCostPerKm + modelServiceCostPerKm) + "\n", Font14));
                //O KOSZTACH

                doc.NewPage();
            }

            doc.Close();
            MessageBox.Show("Raport został wygenerowany.", "Komunikat");
        }
Example #25
0
        private void Zmiana_Opiekuna(object sender, RoutedEventArgs e)
        {
            var    db   = new AEiI_2020_BD2_Drynda_FlotaEntities();
            string temp = Opiekunowie.Text;

            if (!temp.Equals(""))
            {
                var carSupervisors = db.CarSupervisors;
                var newSupervisor  = new CarSupervisor();

                var carSupervisorsList = Opiekunowie.Items;
                if (!carSupervisorsList.Contains(temp))
                {
                    MessageBox.Show("Wybrany opiekun nie istnieje!", "Nie można przypisać opiekuna", MessageBoxButton.OK, MessageBoxImage.Warning);
                    return;
                }

                //Szukam dotychczasowego opiekuna i ustawiam mu date konca
                foreach (var carSupervisor in carSupervisors)
                {
                    if (carSupervisor.carId == toChange.id && carSupervisor.endDate == null)
                    {
                        carSupervisor.endDate = DateTime.Today;
                        break;
                    }
                }

                newSupervisor.carId     = toChange.id;
                newSupervisor.beginDate = DateTime.Today;
                newSupervisor.endDate   = null;

                var People = db.People;

                foreach (var human in People)
                {
                    string fullName = human.firstName + " " + human.lastName;
                    if (fullName.Equals(temp))
                    {
                        newSupervisor.Person       = human;
                        itemToChange.carSupervisor = fullName;
                    }
                }

                bool againSupervisor = false;
                foreach (var carSupervisor in carSupervisors)
                {
                    //Sprawdzam czy taki opiekun już istnieje, jeżeli tak, zmieniam jego endDate?
                    if (carSupervisor.personId == newSupervisor.Person.id && carSupervisor.carId == newSupervisor.carId)
                    {
                        carSupervisor.endDate   = null;
                        carSupervisor.beginDate = DateTime.Today;
                        againSupervisor         = true;
                        break;
                    }
                }
                if (!againSupervisor)
                {
                    carSupervisors.Add(newSupervisor);
                }
                db.SaveChanges();
            }
            else
            {
                var carSupervisors = db.CarSupervisors;
                //Szukam dotychczasowego opiekuna i ustawiam mu date konca
                foreach (var carSupervisor in carSupervisors)
                {
                    if (carSupervisor.carId == toChange.id && carSupervisor.endDate == null)
                    {
                        carSupervisor.endDate      = DateTime.Today;
                        itemToChange.carSupervisor = "Brak";
                        break;
                    }
                }
                db.SaveChanges();
            }
            this.Close();
        }
        private static void GeneralInfoAboutCar(Car car, Document doc)
        {
            var db = new AEiI_2020_BD2_Drynda_FlotaEntities();

            //SAMOCHÓD
            doc.Add(new iTextSharp.text.Paragraph(car.id + "   " + car.Registration + "\n", Font32));
            //SAMOCHÓD

            //DATA ZAKUPU I SPRZEDAŻY
            doc.Add(new iTextSharp.text.Paragraph("Data zakupu: " + car.purchaseDate.ToShortDateString(), Font20));
            if (car.saleDate != null)
            {
                doc.Add(new iTextSharp.text.Paragraph("Data sprzedaży: " + car.saleDate, Font20));
            }
            //DATA ZAKUPU I SPRZEDAŻY

            //CZY SPRAWNY
            string onService = car.onService == false ? "Tak" : "Nie";

            doc.Add(new iTextSharp.text.Paragraph("Sprawny? " + onService, Font20));
            //CZY SPRAWNY

            //DANE POJAZDU
            doc.Add(new iTextSharp.text.Chunk("Marka: " + car.CarModel.make + "\n", Font14));
            doc.Add(new iTextSharp.text.Chunk("Model: " + car.CarModel.model + "\n", Font14));
            doc.Add(new iTextSharp.text.Chunk("Pojemność silnika: " + car.engineCapacity + "\n", Font14));
            doc.Add(new iTextSharp.text.Chunk("Zastosowanie: " + car.CarDestination.name + "\n", Font14));
            doc.Add(new iTextSharp.text.Chunk("Przegląd ważny do: " + car.inspectionValidUntil.ToShortDateString() + "\n\n", Font14));
            //DANE POJAZDU

            //HISTORIA OPIEKUNÓW
            var carSupervisors = from carSupervisor in db.CarSupervisors
                                 where carSupervisor.carId == car.id
                                 orderby carSupervisor.beginDate
                                 select new
            {
                carSupervisor.Person,
                BeginDate = carSupervisor.beginDate,
                EndDate   = carSupervisor.endDate
            };

            if (carSupervisors.Count() != 0)
            {
                doc.Add(new iTextSharp.text.Paragraph("Historia opiekunów: ", Font20));
            }
            foreach (var carSupervisor in carSupervisors)
            {
                carSupervisor.BeginDate.ToShortDateString();
                string endDate = "";
                if (carSupervisor.EndDate != null)
                {
                    endDate = carSupervisor.EndDate.ToString();
                }
                doc.Add(new iTextSharp.text.Chunk(carSupervisor.Person.id + " " + carSupervisor.Person.firstName + " "
                                                  + carSupervisor.Person.lastName + ": " + carSupervisor.BeginDate.ToString() + " - "
                                                  + endDate + "\n", Font14));
            }
            //HISTORIA OPIEKUNÓW

            //HISTORIA WYPOŻYCZEŃ
            var carLends = from carLend in db.Lends
                           where carLend.carId == car.id
                           orderby carLend.lendDate
                           select new
            {
                carLend.Person,
                BeginDate = carLend.lendDate,
                EndDate   = carLend.returnDate
            };

            if (carLends.Count() != 0)
            {
                doc.Add(new iTextSharp.text.Paragraph("\nHistoria wypożyczeń: ", Font20));
            }
            foreach (var carLend in carLends)
            {
                carLend.BeginDate.ToShortDateString();
                string endDate = "";
                if (carLend.EndDate != null)
                {
                    endDate = carLend.EndDate.ToString();
                }
                doc.Add(new iTextSharp.text.Chunk(carLend.Person.id + " " + carLend.Person.firstName + " "
                                                  + carLend.Person.lastName + ": " + carLend.BeginDate.ToString() + " - "
                                                  + endDate + "\n", Font14));
            }
            //HISTORIA WYPOŻYCZEŃ

            //HISTORIA AKTYWNOŚCI
            var carActivities = from carActivity in db.Activities
                                where carActivity.carId == car.id
                                orderby carActivity.reportDate
                                select new
            {
                Name      = carActivity.comments,
                BeginDate = carActivity.reportDate,
                EndDate   = carActivity.closeDate
            };

            if (carActivities.Count() != 0)
            {
                doc.Add(new iTextSharp.text.Paragraph("\nHistoria aktywności: ", Font20));
            }
            foreach (var carActivity in carActivities)
            {
                carActivity.BeginDate.ToShortDateString();
                string endDate = "";
                if (carActivity.EndDate != null)
                {
                    endDate = carActivity.EndDate.ToString();
                }
                doc.Add(new iTextSharp.text.Chunk(carActivity.Name + " " + carActivity.BeginDate.ToString() + " - "
                                                  + endDate + "\n", Font14));
            }
            //HISTORIA AKTYWNOŚCI

            doc.NewPage();
        }
        public void ListaWypozyczen()
        {
            Stopwatch stoper = new Stopwatch();

            stoper.Start();

            var db = new AEiI_2020_BD2_Drynda_FlotaEntities();

            var query = from lend in db.Lends
                        select new
            {
                LendId            = lend.id,
                Owner             = lend.Person.lastName + " " + lend.Person.firstName,
                Vehicle           = lend.Car.CarModel.make + "/" + lend.Car.CarModel.model + "/" + lend.Car.Registration + "\n",
                Private           = lend.@private,
                LendDate          = lend.lendDate,
                ReturnDate        = lend.returnDate,
                PlannedReturnDate = lend.plannedReturnDate,
                ReservationDate   = lend.Reservation.reservationDate,
                LendEnded         = lend.Reservation.ended
            };

            foreach (var lend in query)
            {
                ListViewItem OneItem  = new ListViewItem();
                string       date     = "";
                string       dateTime = lend.LendDate.ToString();

                if (dateTime.Length > 0)
                {
                    date = dateTime.Substring(0, 10);
                }

                OneItem.Content = new LendList
                {
                    LendId         = lend.LendId + 1,
                    Person         = lend.Owner,
                    LendStart      = date,
                    LendPlannedEnd = lend.PlannedReturnDate.ToString().Substring(0, 10),
                    LendEnd        = lend.ReturnDate != null?lend.ReturnDate.ToString().Substring(0, 10) : "",
                                         ReservationDate = lend.ReservationDate.ToShortDateString(),
                                         Vehicle         = lend.Vehicle
                };
                bool addItem = false;
                if ((lend.ReturnDate <= DateTime.Now || lend.LendEnded == true) && ZakonczoneBox.IsChecked.Value == true && lend.Private == true) //zakończone
                {
                    OneItem.Background = Brushes.Red;                                                                                             //zakonczone prywatne
                    addItem            = true;
                }
                else if ((lend.ReturnDate <= DateTime.Now || lend.LendEnded == true) && Zakonczone_i_PrywatneBox.IsChecked.Value == true && lend.Private == false) //zakończone
                {
                    OneItem.Background = Brushes.OrangeRed;                                                                                                        //zakonczone nie prywatne
                    addItem            = true;
                }
                else if (lend.Private == true && (lend.ReturnDate > DateTime.Now || lend.ReturnDate == null) && lend.LendEnded == false &&
                         PrywatneBox.IsChecked.Value == true)
                {
                    OneItem.Background = Brushes.BlueViolet;  //prywatne
                    addItem            = true;
                }
                else if (PozostałeBox.IsChecked.Value == true && lend.Private == false && lend.LendEnded == false &&
                         (lend.ReturnDate > DateTime.Now || lend.ReturnDate == null))
                {
                    addItem = true;
                }

                if (RozpoczeteBox.IsChecked.Value == true &&
                    (lend.LendDate > DateTime.Now.Date || lend.ReturnDate <= lend.LendDate.Date))
                {
                    continue;
                }
                if (addItem == true)
                {
                    items.Add(OneItem);
                }
            }
            ListViewLends.ItemsSource = items;

            stoper.Stop();
            //Title.Text = stoper.Elapsed.ToString();
        }
Example #28
0
        private void Zakoncz_Rezerwacje(object sender, RoutedEventArgs e)
        {
            ListViewItem selected = (ListViewItem)ListViewReservations.SelectedItem;

            if (selected != null)
            {
                ReservationList selectedObj = (ReservationList)selected.Content;

                int selectedId        = selectedObj.ReservationId - 1;
                var reservationPerson = selectedObj.Person;
                var db = new AEiI_2020_BD2_Drynda_FlotaEntities();

                Reservation reservationChange = null;

                var reservation = (from reserv in db.Reservations
                                   where reserv.id == selectedId
                                   select reserv).FirstOrDefault();


                if (reservation != null)
                {
                    reservationChange = reservation;
                }

                if (reservationChange.ended == true)
                {
                    MessageBox.Show("Rezerwacja się zakończyła!", "Komunikat");
                }

                else
                {
                    DialogResult result = MessageBox.Show("Czy chcesz zakonczyc rezerwację " + reservationPerson + "?"
                                                          , "Komunikat", MessageBoxButtons.YesNo);
                    if (result == DialogResult.Yes)
                    {
                        reservationChange.ended = true;
                        var lend = (from lends in db.Lends
                                    where lends.reservationId == reservationChange.id
                                    select lends).FirstOrDefault();


                        if (lend != null)
                        {
                            lend.returnDate = DateTime.Now.Date;
                            if (Logowanie.actualUser != null)
                            {
                                lend.comments += "Zakończono przez zakończenie\nrezerwacji przez Kierownika " + Logowanie.actualUser.id + ") " +
                                                 Logowanie.actualUser.firstName + " " + Logowanie.actualUser.lastName + " - " + DateTime.Now.ToString() + "\n";
                            }
                        }
                        db.SaveChanges();

                        ListViewReservations.ItemsSource = null;
                        items.Clear();
                        UpdateView();
                    }
                    else if (result == DialogResult.No)
                    {
                    }
                }
            }
            else
            {
                MessageBox.Show("Niczego nie wybrano !", "Komunikat");
            }
        }
        private void Dodaj_Rezerwacje(object sender, RoutedEventArgs e)
        {
            int id = Logowanie.actualUser.id;

            var      db                  = new AEiI_2020_BD2_Drynda_FlotaEntities();
            var      reservations        = db.Reservations;
            var      lends               = db.Lends;
            DateTime?datePersonOut       = null;
            DateTime?actualCarLendDate   = null;
            DateTime?actualCarReturnDate = null;
            Person   personReservation   = null;
            var      person              = (from persons in db.People
                                            where persons.id == id
                                            select persons).FirstOrDefault();

            if (person != null)
            {
                datePersonOut     = person.layoffDate;
                personReservation = person;
            }
            bool doReservationCar    = true;
            bool doReservationPerson = true;

            if (ReservationStart != null && ReservationEnd != null && ReservationEnd.SelectedDate > ReservationStart.SelectedDate &&
                (datePersonOut >= ReservationEnd.SelectedDate || datePersonOut == null))     //sprawdzanie poprawności danych
            {
                var query = from reserv in db.Reservations
                            where reserv.carId.ToString() == PojazdID.Text
                            select new
                {
                    Id         = reserv,
                    CarId      = reserv.carId,
                    LendDate   = reserv.lendDate,
                    ReturnDate = reserv.returnDate,
                    Ended      = reserv.ended,
                };


                foreach (var reserv in query)
                {
                    actualCarLendDate   = reserv.LendDate;
                    actualCarReturnDate = reserv.ReturnDate;

                    if (actualCarReturnDate <= ReservationStart.SelectedDate || (actualCarLendDate >= ReservationEnd.SelectedDate) ||
                        (actualCarLendDate == null && actualCarReturnDate == null) || reserv.Ended == true)
                    {
                        doReservationCar = true;
                    }
                    else
                    {
                        doReservationCar = false;
                        break;
                    }
                }
                var query2 = from reserv in db.Reservations
                             where reserv.personId.ToString() == personReservation.id.ToString()
                             select new
                {
                    Id         = reserv,
                    CarId      = reserv.carId,
                    LendDate   = reserv.lendDate,
                    ReturnDate = reserv.returnDate,
                    Ended      = reserv.ended,
                };

                foreach (var reserv in query2)
                {
                    actualCarLendDate   = reserv.LendDate;
                    actualCarReturnDate = reserv.ReturnDate;

                    if (actualCarReturnDate <= ReservationStart.SelectedDate || (actualCarLendDate >= ReservationEnd.SelectedDate) ||
                        (actualCarLendDate == null && actualCarReturnDate == null) || reserv.Ended == true)
                    {
                        doReservationPerson = true;
                    }
                    else
                    {
                        doReservationPerson = false;
                        break;
                    }
                }


                if (doReservationCar == true && doReservationPerson == true) //sprawdzanie czy samochod jest zareezrwowany w wybranym czasie lub pracownik ma rezerwacje w tym czasie
                {
                    var newReservation = new Reservation();
                    var newLend        = new Lend();


                    newReservation.carId           = Int16.Parse(PojazdID.Text);
                    newReservation.reservationDate = ReservationDate.SelectedDate.Value;
                    newReservation.lendDate        = ReservationStart.SelectedDate.Value;
                    newReservation.returnDate      = ReservationEnd.SelectedDate;
                    newReservation.ended           = false;


                    if (PrywatneBox.IsChecked == true)
                    {
                        newReservation.@private = true;
                    }
                    else
                    {
                        newReservation.@private = false;
                    }


                    newReservation.personId = id;


                    reservations.Add(newReservation);
                    db.SaveChanges();

                    newLend.carId             = newReservation.carId;
                    newLend.personId          = newReservation.personId;
                    newLend.lendDate          = newReservation.lendDate;
                    newLend.plannedReturnDate = newReservation.returnDate;
                    newLend.@private          = (bool)newReservation.@private;
                    newLend.reservationId     = newReservation.id;
                    newLend.comments          = "Zainicjowane przez kierownika";
                    lends.Add(newLend);

                    newReservation.lendId = newLend.id;

                    db.SaveChanges();

                    MessageBox.Show("Dodano rezerwację.", "Komunikat");
                }
                else
                {
                    if (doReservationCar == false)
                    {
                        MessageBox.Show("Samochód w tym czasie \njest już zarezerwowany!", "Komunikat");
                    }
                    else if (doReservationPerson == false)
                    {
                        MessageBox.Show("Pracownik w tym czasie \njest zajęty!", "Komunikat");
                    }
                    else
                    {
                        MessageBox.Show("Pracownik i samochód w tym czasie \nsą zajęci!", "Komunikat");
                    }
                }
            }
            else
            {
                if (ReservationEnd == null && datePersonOut < ReservationEnd.SelectedDate)
                {
                    MessageBox.Show("Wybrany pracownik zostaje zwolniony\nw czasie nowej rezerwacji.", "Komunikat");
                }
                else
                {
                    MessageBox.Show("Błędne dane.", "Komunikat");
                }
            }
        }
        private void Generuj_Raport_Rezerwacje(object sender, RoutedEventArgs e)
        {
            var db = new AEiI_2020_BD2_Drynda_FlotaEntities();


            string path = GetPath();

            if (path == "")
            {
                return;
            }

            Font times = new Font(BaseFont.CreateFont(@"C:\Windows\Fonts\Arial.ttf", BaseFont.CP1250, true)); //polskie znaki

            times.Size = 32;
            //FileStream fs = new FileStream(path + "Raport na temat wypożyczeń - " + DateTime.Now.ToShortDateString() + ".pdf", FileMode.Create, FileAccess.Write, FileShare.None);
            FileStream fs = new FileStream(path, FileMode.Create, FileAccess.Write, FileShare.None);

            Document  doc    = new Document();
            PdfWriter writer = PdfWriter.GetInstance(doc, fs);

            doc.Open();
            string namePerson = "";
            var    vehicle    = "";

            var query = from lend in db.Lends
                        select new
            {
                LendId            = lend.id,
                Owner             = lend.Person.lastName + " " + lend.Person.firstName,
                Vehicle           = lend.Car.CarModel.make + "/" + lend.Car.CarModel.model + "/" + lend.Car.Registration + "\n",
                Private           = lend.@private,
                LendDate          = lend.lendDate,
                ReturnDate        = lend.returnDate,
                PlannedReturnDate = lend.plannedReturnDate,
                ReservationDate   = lend.Reservation.reservationDate,
                LendEnded         = lend.Reservation.ended,
                StartOdometer     = lend.startOdometer,
                EndOdometer       = lend.endOdometer,
                StartFuel         = lend.startFuel,
                EndFuel           = lend.endFuel
            };

            foreach (var lend in query)
            {
                Chunk c = new Chunk((lend.LendId + 1) + ")\n" + lend.Owner, times);

                vehicle = lend.Vehicle;

                if ((Regex.IsMatch(namePerson, personFilter.Text, RegexOptions.IgnoreCase)) &&
                    (Regex.IsMatch(lend.LendDate.ToShortDateString(), dateStartFilter.Text, RegexOptions.IgnoreCase)) &&
                    (lend.ReturnDate == null || Regex.IsMatch(lend.ReturnDate.ToString().Substring(0, 10), dateEndFilter.Text, RegexOptions.IgnoreCase)) &&
                    (Regex.IsMatch(lend.ReservationDate.ToString().Substring(0, 10), dateReservationFilter.Text, RegexOptions.IgnoreCase)) &&
                    (Regex.IsMatch(lend.PlannedReturnDate.ToString().Substring(0, 10), datePlannedEndFilter.Text, RegexOptions.IgnoreCase)) &&
                    Regex.IsMatch(vehicle, carFilter.Text, RegexOptions.IgnoreCase) && Regex.IsMatch((lend.LendId + 1).ToString(), idFilter.Text))
                {
                    if (RozpoczeteBox.IsChecked.Value == true && (lend.LendDate >= DateTime.Now.Date || lend.ReturnDate < lend.LendDate.Date))
                    {
                        continue;
                    }

                    if (lend.Private == false && lend.LendEnded == true && ZakonczoneBox.IsChecked.Value == true)
                    {
                        c.SetBackground(BaseColor.ORANGE);
                        times.Size = 26;
                        doc.Add(new iTextSharp.text.Paragraph(c));
                        doc.Add(new iTextSharp.text.Paragraph(("Dzień Rozpoczęcia: " + lend.LendDate).Substring(0, 29), times));
                        doc.Add(new iTextSharp.text.Paragraph(("Planowane Zakończenie: " + lend.PlannedReturnDate).Substring(0, 33), times));
                        if (lend.ReturnDate != null)
                        {
                            doc.Add(new iTextSharp.text.Paragraph(("Dzień Zakończenia: " + lend.ReturnDate).Substring(0, 29), times));
                        }
                        doc.Add(new iTextSharp.text.Paragraph(("Dzień Rezerwacji: " + lend.ReservationDate).Substring(0, 29), times));


                        doc.Add(new iTextSharp.text.Paragraph("Pojazd: " + vehicle + "\n", times));
                        times.Size = 32;
                    }
                    else if (lend.Private == true && lend.LendEnded == true && Zakonczone_i_PrywatneBox.IsChecked.Value == true)
                    {
                        c.SetBackground(BaseColor.RED);
                        times.Size = 26;
                        doc.Add(new iTextSharp.text.Paragraph(c));
                        doc.Add(new iTextSharp.text.Paragraph(("Dzień Rozpoczęcia: " + lend.LendDate).Substring(0, 29), times));
                        doc.Add(new iTextSharp.text.Paragraph(("Planowane Zakończenie: " + lend.PlannedReturnDate).Substring(0, 33), times));
                        if (lend.ReturnDate != null)
                        {
                            doc.Add(new iTextSharp.text.Paragraph(("Dzień Zakończenia: " + lend.ReturnDate).Substring(0, 29), times));
                        }
                        doc.Add(new iTextSharp.text.Paragraph(("Dzień Rezerwacji: " + lend.ReservationDate).Substring(0, 29), times));

                        doc.Add(new iTextSharp.text.Paragraph("Pojazd: " + vehicle + "\n", times));
                        times.Size = 32;
                    }
                    else if (lend.Private == true && PrywatneBox.IsChecked.Value == true && lend.LendEnded == false)
                    {
                        c.SetBackground(BaseColor.BLUE);
                        times.Size = 26;
                        doc.Add(new iTextSharp.text.Paragraph(c));
                        doc.Add(new iTextSharp.text.Paragraph(("Dzień Rozpoczęcia: " + lend.LendDate).Substring(0, 29), times));
                        doc.Add(new iTextSharp.text.Paragraph(("Planowane Zakończenie: " + lend.PlannedReturnDate).Substring(0, 33), times));
                        if (lend.ReturnDate != null)
                        {
                            doc.Add(new iTextSharp.text.Paragraph(("Dzień Zakończenia: " + lend.ReturnDate).Substring(0, 29), times));
                        }
                        doc.Add(new iTextSharp.text.Paragraph(("Dzień Rezerwacji: " + lend.ReservationDate).Substring(0, 29), times));


                        doc.Add(new iTextSharp.text.Paragraph("Pojazd: " + vehicle + "\n", times));
                        times.Size = 32;
                    }
                    else if (PozostałeBox.IsChecked.Value == true && lend.LendEnded == false && lend.Private == false)
                    {
                        times.Size = 26;
                        doc.Add(new iTextSharp.text.Paragraph(c));
                        doc.Add(new iTextSharp.text.Paragraph(("Dzień Rozpoczęcia: " + lend.LendDate).Substring(0, 29), times));
                        doc.Add(new iTextSharp.text.Paragraph(("Planowane Zakończenie: " + lend.PlannedReturnDate).Substring(0, 33), times));
                        if (lend.ReturnDate != null)
                        {
                            doc.Add(new iTextSharp.text.Paragraph(("Dzień Zakończenia: " + lend.ReturnDate).Substring(0, 29), times));
                        }
                        doc.Add(new iTextSharp.text.Paragraph(("Dzień Rezerwacji: " + lend.ReservationDate).Substring(0, 29), times));


                        doc.Add(new iTextSharp.text.Paragraph("Pojazd: " + vehicle + "\n", times));
                        times.Size = 32;
                    }

                    times.Size = 26;
                    if (lend.LendDate > DateTime.Now.Date || lend.ReturnDate <= lend.LendDate.Date)
                    {
                        continue;
                    }
                    doc.Add(new iTextSharp.text.Paragraph("Początek drogomierza (km): " + lend.StartOdometer, times));
                    if (lend.EndOdometer != null)
                    {
                        doc.Add(new iTextSharp.text.Paragraph("Koniec drogomierza (km): " + lend.EndOdometer, times));
                    }
                    doc.Add(new iTextSharp.text.Paragraph("Początek paliwa (litry): " + lend.StartFuel, times));
                    if (lend.EndFuel != null)
                    {
                        doc.Add(new iTextSharp.text.Paragraph("Koniec paliwa (litry): " + lend.EndFuel, times));
                    }
                    times.Size = 32;
                }
            }
            Chunk c1 = new Chunk("");

            doc.Add(c1); //doc nie może być pusty

            doc.Close();
            MessageBox.Show("Raport został wygenerowany.", "Komunikat");
        }