profile-page.component.ts 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. import {Component} from '@angular/core';
  2. import {UserService} from "../services/user.service";
  3. import {ReservationService} from "../services/reservation.service";
  4. import {BoatService} from "../services/boat.service";
  5. @Component({
  6. selector: 'app-profile-page',
  7. templateUrl: './profile-page.component.html',
  8. styleUrls: ['./profile-page.component.css']
  9. })
  10. export class ProfilePageComponent {
  11. user_info: any;
  12. reservations_info: any[] = [];
  13. bills_info: any[] = [];
  14. // statusOrder = ['Pending', 'Confirmed', 'Active', 'Completed', 'Cancelled'];
  15. compareFn = (a: any, b: any): number => {
  16. // Sort by date
  17. const dateComparison = a.date.localeCompare(b.date);
  18. if (dateComparison !== 0) {
  19. return dateComparison;
  20. }
  21. // Sort by hour
  22. return a.startHour - b.startHour;
  23. };
  24. constructor(private userService: UserService,
  25. private reservationService: ReservationService,
  26. private boatService: BoatService) {
  27. this.userService.getUser(sessionStorage.getItem("username")!).subscribe(
  28. user => {
  29. this.user_info = user
  30. this.reservationService.findReservationsByUserId(user.id!).subscribe(
  31. reservations => {
  32. this.reservations_info = reservations.map(r => {
  33. r.date = new Date(r.date).toISOString().split("T")[0]
  34. return r;
  35. });
  36. this.boatService.getBoats().subscribe(
  37. boats => {
  38. console.log(boats)
  39. this.reservations_info.map(r => {
  40. r.boatId = boats.find(b => b.id == r.boatId)!.name
  41. })
  42. this.reservations_info.sort(this.compareFn)
  43. }
  44. )
  45. console.log(reservations[0])
  46. }
  47. )
  48. })
  49. }
  50. isANumber(value: any): boolean {
  51. return typeof value === 'number'
  52. }
  53. deleteAccount() {
  54. this.userService.deleteUser(this.user_info.id)
  55. this.logout()
  56. }
  57. sendEmail() {
  58. this.userService.pdf(this.user_info.username)
  59. }
  60. confirmReservation(id: number) {
  61. this.reservationService.confirmReservation(id)
  62. console.log(id)
  63. console.log(this.reservations_info)
  64. this.reservations_info.find(r => r.bill.id === id).bill.status = "Confirmed"
  65. }
  66. cancelReservation(id: number) {
  67. this.reservationService.cancelReservation(id)
  68. this.reservations_info.find(r => r.bill.id === id).bill.status = "Cancelled"
  69. }
  70. logout() {
  71. sessionStorage.clear()
  72. window.location.href = "http://localhost:1410/"
  73. }
  74. }