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); } } }
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); } }
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"); } }
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(); }
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(); } } }
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); }
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"); } }
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; }
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"; }
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(); }
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"); } }
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"); }
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); }
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"; }
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"); }
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(); }
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"); }