edit handlers and renderer for delete a booking vehicle
This commit is contained in:
		
							parent
							
								
									8f20a12bc5
								
							
						
					
					
						commit
						31e5eadc73
					
				| 
						 | 
					@ -467,142 +467,70 @@ func (h ApplicationHandler) VehiclesFleetMakeUnavailable(w http.ResponseWriter,
 | 
				
			||||||
	http.Redirect(w, r, fmt.Sprintf("/app/vehicles-management/fleet/%s", vehicleid), http.StatusFound)
 | 
						http.Redirect(w, r, fmt.Sprintf("/app/vehicles-management/fleet/%s", vehicleid), http.StatusFound)
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// func (h *ApplicationHandler) UnbookingVehicles(w http.ResponseWriter, r *http.Request) {
 | 
					//	func (h *ApplicationHandler) UnbookingVehicles(w http.ResponseWriter, r *http.Request) {
 | 
				
			||||||
// 	request := &fleets.GetVehiclesRequest{
 | 
					//		request := &fleets.GetVehiclesRequest{
 | 
				
			||||||
// 		Namespaces: []string{"parcoursmob"},
 | 
					//			Namespaces: []string{"parcoursmob"},
 | 
				
			||||||
// 	}
 | 
					//		}
 | 
				
			||||||
// 	resp, err := h.services.GRPC.Fleets.GetVehicles(context.TODO(), request)
 | 
					//		resp, err := h.services.GRPC.Fleets.GetVehicles(context.TODO(), request)
 | 
				
			||||||
// 	if err != nil {
 | 
					//		if err != nil {
 | 
				
			||||||
// 		fmt.Println(err)
 | 
					//			fmt.Println(err)
 | 
				
			||||||
// 		w.WriteHeader(http.StatusInternalServerError)
 | 
					//			w.WriteHeader(http.StatusInternalServerError)
 | 
				
			||||||
// 	}
 | 
					//		}
 | 
				
			||||||
// 	vehicles := []fleetsstorage.Vehicle{}
 | 
					//		vehicles := []fleetsstorage.Vehicle{}
 | 
				
			||||||
// 	fmt.Println(resp.Vehicles[0].Bookings)
 | 
					//		fmt.Println(resp.Vehicles[0].Bookings)
 | 
				
			||||||
// 	for i, vehicle := range resp.Vehicles {
 | 
					//		for i, vehicle := range resp.Vehicles {
 | 
				
			||||||
// 		if len(resp.Vehicles[i].Bookings) == 0 {
 | 
					//			if len(resp.Vehicles[i].Bookings) == 0 {
 | 
				
			||||||
// 			v := vehicle.ToStorageType()
 | 
					//				v := vehicle.ToStorageType()
 | 
				
			||||||
// 			vehicles = append(vehicles, v)
 | 
					//				vehicles = append(vehicles, v)
 | 
				
			||||||
// 		}
 | 
					//			}
 | 
				
			||||||
// 	}
 | 
					//		}
 | 
				
			||||||
// 	// if len(resp.Vehicle.ToStorageType().Bookings) == 0 {
 | 
					//		// if len(resp.Vehicle.ToStorageType().Bookings) == 0 {
 | 
				
			||||||
// 	// 	h.Renderer.UnbookingVehicles(w, r, resp.Vehicle.ToStorageType())
 | 
					//		// 	h.Renderer.UnbookingVehicles(w, r, resp.Vehicle.ToStorageType())
 | 
				
			||||||
// 	// }
 | 
					//		// }
 | 
				
			||||||
// 	// fmt.Println(resp.Vehicle.ToStorageType().Bookings)
 | 
					//		// fmt.Println(resp.Vehicle.ToStorageType().Bookings)
 | 
				
			||||||
// 	fmt.Println(vehicles)
 | 
					//		fmt.Println(vehicles)
 | 
				
			||||||
// 	h.Renderer.UnbookingVehicles(w, r, vehicles)
 | 
					//		h.Renderer.UnbookingVehicles(w, r, vehicles)
 | 
				
			||||||
// }
 | 
					//	}
 | 
				
			||||||
	func (h *ApplicationHandler) UnbookingVehicle(w http.ResponseWriter, r *http.Request) {
 | 
					func (h *ApplicationHandler) UnbookingVehicle(w http.ResponseWriter, r *http.Request) {
 | 
				
			||||||
		vars := mux.Vars(r)
 | 
						vars := mux.Vars(r)
 | 
				
			||||||
		bookingid := vars["bookingid"]
 | 
						bookingid := vars["bookingid"]
 | 
				
			||||||
	
 | 
						request := &fleets.GetBookingRequest{
 | 
				
			||||||
		booking, err := h.services.GetBooking(bookingid)
 | 
							Bookingid: bookingid,
 | 
				
			||||||
		if err != nil {
 | 
					 | 
				
			||||||
			fmt.Println(err)
 | 
					 | 
				
			||||||
			w.WriteHeader(http.StatusInternalServerError)
 | 
					 | 
				
			||||||
			return
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
	
 | 
					 | 
				
			||||||
		if r.Method == "POST" {
 | 
					 | 
				
			||||||
			r.ParseForm()
 | 
					 | 
				
			||||||
	
 | 
					 | 
				
			||||||
			newbooking, _ := fleets.BookingFromStorageType(&booking)
 | 
					 | 
				
			||||||
	
 | 
					 | 
				
			||||||
			startdate := r.FormValue("startdate")
 | 
					 | 
				
			||||||
			if startdate != "" {
 | 
					 | 
				
			||||||
				newstartdate, _ := time.Parse("2006-01-02", startdate)
 | 
					 | 
				
			||||||
				newbooking.Startdate = timestamppb.New(newstartdate)
 | 
					 | 
				
			||||||
	
 | 
					 | 
				
			||||||
				if newstartdate.Before(newbooking.Unavailablefrom.AsTime()) {
 | 
					 | 
				
			||||||
					newbooking.Unavailablefrom = timestamppb.New(newstartdate)
 | 
					 | 
				
			||||||
				}
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
	
 | 
					 | 
				
			||||||
			enddate := r.FormValue("enddate")
 | 
					 | 
				
			||||||
			if enddate != "" {
 | 
					 | 
				
			||||||
				newenddate, _ := time.Parse("2006-01-02", enddate)
 | 
					 | 
				
			||||||
				newbooking.Enddate = timestamppb.New(newenddate)
 | 
					 | 
				
			||||||
	
 | 
					 | 
				
			||||||
				if newenddate.After(newbooking.Unavailableto.AsTime()) || newenddate.Equal(newbooking.Unavailableto.AsTime()) {
 | 
					 | 
				
			||||||
					newbooking.Unavailableto = timestamppb.New(newenddate.Add(24 * time.Hour))
 | 
					 | 
				
			||||||
				}
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
	
 | 
					 | 
				
			||||||
			unavailablefrom := r.FormValue("unavailablefrom")
 | 
					 | 
				
			||||||
			if unavailablefrom != "" {
 | 
					 | 
				
			||||||
				newunavailablefrom, _ := time.Parse("2006-01-02", unavailablefrom)
 | 
					 | 
				
			||||||
				newbooking.Unavailablefrom = timestamppb.New(newunavailablefrom)
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
	
 | 
					 | 
				
			||||||
			unavailableto := r.FormValue("unavailableto")
 | 
					 | 
				
			||||||
			if unavailableto != "" {
 | 
					 | 
				
			||||||
				newunavailableto, _ := time.Parse("2006-01-02", unavailableto)
 | 
					 | 
				
			||||||
				newbooking.Unavailableto = timestamppb.New(newunavailableto)
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
	
 | 
					 | 
				
			||||||
			request := &fleets.UpdateBookingRequest{
 | 
					 | 
				
			||||||
				Booking: newbooking,
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
	
 | 
					 | 
				
			||||||
			_, err := h.services.GRPC.Fleets.UpdateBooking(context.TODO(), request)
 | 
					 | 
				
			||||||
			if err != nil {
 | 
					 | 
				
			||||||
				fmt.Println(err)
 | 
					 | 
				
			||||||
				w.WriteHeader(http.StatusInternalServerError)
 | 
					 | 
				
			||||||
				return
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
	
 | 
					 | 
				
			||||||
			booking = newbooking.ToStorageType()
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
	
 | 
					 | 
				
			||||||
		beneficiary := mobilityaccountsstorage.Account{}
 | 
					 | 
				
			||||||
	
 | 
					 | 
				
			||||||
		if booking.Driver != "" {
 | 
					 | 
				
			||||||
			beneficiaryrequest := &mobilityaccounts.GetAccountRequest{
 | 
					 | 
				
			||||||
				Id: booking.Driver,
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
	
 | 
					 | 
				
			||||||
			beneficiaryresp, err := h.services.GRPC.MobilityAccounts.GetAccount(context.TODO(), beneficiaryrequest)
 | 
					 | 
				
			||||||
			if err != nil {
 | 
					 | 
				
			||||||
				fmt.Println(err)
 | 
					 | 
				
			||||||
				w.WriteHeader(http.StatusInternalServerError)
 | 
					 | 
				
			||||||
				return
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
	
 | 
					 | 
				
			||||||
			beneficiary = beneficiaryresp.Account.ToStorageType()
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
	
 | 
					 | 
				
			||||||
		grouprequest := &groupsmanagement.GetGroupRequest{
 | 
					 | 
				
			||||||
			Id: booking.Vehicle.Administrators[0],
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
	
 | 
					 | 
				
			||||||
		groupresp, err := h.services.GRPC.GroupsManagement.GetGroup(context.TODO(), grouprequest)
 | 
					 | 
				
			||||||
		if err != nil {
 | 
					 | 
				
			||||||
			fmt.Println(err)
 | 
					 | 
				
			||||||
			w.WriteHeader(http.StatusInternalServerError)
 | 
					 | 
				
			||||||
			return
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
	
 | 
					 | 
				
			||||||
		alternativerequest := &fleets.GetVehiclesRequest{
 | 
					 | 
				
			||||||
			Namespaces:       []string{"parcoursmob"},
 | 
					 | 
				
			||||||
			Types:            []string{booking.Vehicle.Type},
 | 
					 | 
				
			||||||
			Administrators:   booking.Vehicle.Administrators,
 | 
					 | 
				
			||||||
			AvailabilityFrom: timestamppb.New(booking.Startdate),
 | 
					 | 
				
			||||||
			AvailabilityTo:   timestamppb.New(booking.Enddate.Add(24 * time.Hour)),
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
	
 | 
					 | 
				
			||||||
		alternativeresp, err := h.services.GRPC.Fleets.GetVehicles(context.TODO(), alternativerequest)
 | 
					 | 
				
			||||||
		if err != nil {
 | 
					 | 
				
			||||||
			fmt.Println(err)
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
	
 | 
					 | 
				
			||||||
		alternatives := []any{}
 | 
					 | 
				
			||||||
	
 | 
					 | 
				
			||||||
		for _, a := range alternativeresp.Vehicles {
 | 
					 | 
				
			||||||
			alternatives = append(alternatives, a.ToStorageType())
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
	
 | 
					 | 
				
			||||||
		documents := h.filestorage.List(filestorage.PREFIX_BOOKINGS + "/" + bookingid)
 | 
					 | 
				
			||||||
		file_types_map := h.config.GetStringMapString("storage.files.file_types")
 | 
					 | 
				
			||||||
	
 | 
					 | 
				
			||||||
		h.Renderer.UnbookingVehicle(w, r, booking, booking.Vehicle, beneficiary, groupresp.Group.ToStorageType(), documents, file_types_map, alternatives)
 | 
					 | 
				
			||||||
	
 | 
					 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						resp, err := h.services.GRPC.Fleets.GetBooking(context.TODO(), request)
 | 
				
			||||||
 | 
						if err != nil {
 | 
				
			||||||
 | 
							fmt.Println(err)
 | 
				
			||||||
 | 
							w.WriteHeader(http.StatusInternalServerError)
 | 
				
			||||||
 | 
							return
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if r.Method == "POST" {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							request := &fleets.UpdateBookingRequest{
 | 
				
			||||||
 | 
								Booking: &fleets.Booking{
 | 
				
			||||||
 | 
									Id:              resp.Booking.Id,
 | 
				
			||||||
 | 
									Vehicleid:       resp.Booking.Vehicleid,
 | 
				
			||||||
 | 
									Driver:          resp.Booking.Driver,
 | 
				
			||||||
 | 
									Startdate:       resp.Booking.Startdate,
 | 
				
			||||||
 | 
									Enddate:         resp.Booking.Enddate,
 | 
				
			||||||
 | 
									Unavailablefrom: resp.Booking.Unavailablefrom,
 | 
				
			||||||
 | 
									Unavailableto:   resp.Booking.Unavailableto,
 | 
				
			||||||
 | 
									Data:            resp.Booking.Data,
 | 
				
			||||||
 | 
									Deleted:         true,
 | 
				
			||||||
 | 
								},
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							_, err := h.services.GRPC.Fleets.UpdateBooking(context.TODO(), request)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							if err != nil {
 | 
				
			||||||
 | 
								fmt.Println(err)
 | 
				
			||||||
 | 
								w.WriteHeader(http.StatusInternalServerError)
 | 
				
			||||||
 | 
								return
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							http.Redirect(w, r, "/app/vehicles-management/", http.StatusFound)
 | 
				
			||||||
 | 
							return
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						h.Renderer.UnbookingVehicle(w, r, bookingid)
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -79,19 +79,13 @@ func (renderer *Renderer) VehicleManagementBookingDisplay(w http.ResponseWriter,
 | 
				
			||||||
	renderer.Render("vehicles search", w, r, files, state)
 | 
						renderer.Render("vehicles search", w, r, files, state)
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func (renderer *Renderer) UnbookingVehicle(w http.ResponseWriter, r *http.Request, booking any, vehicle any, beneficiary any, group any, documents []filestorage.FileInfo, file_types_map map[string]string, alternative_vehicles []any) {
 | 
					func (renderer *Renderer) UnbookingVehicle(w http.ResponseWriter, r *http.Request, booking string) {
 | 
				
			||||||
	files := renderer.ThemeConfig.GetStringSlice("views.vehicles_management.delete_booking.files")
 | 
						files := renderer.ThemeConfig.GetStringSlice("views.vehicles_management.delete_booking.files")
 | 
				
			||||||
	state := NewState(r, renderer.ThemeConfig, vehiclesmanagementMenu)
 | 
						state := NewState(r, renderer.ThemeConfig, vehiclesmanagementMenu)
 | 
				
			||||||
	state.ViewState = map[string]any{
 | 
						state.ViewState = map[string]any{
 | 
				
			||||||
		"booking":              booking,
 | 
							"booking":              booking,
 | 
				
			||||||
		"vehicle":              vehicle,
 | 
					 | 
				
			||||||
		"beneficiary":          beneficiary,
 | 
					 | 
				
			||||||
		"group":                group,
 | 
					 | 
				
			||||||
		"documents":            documents,
 | 
					 | 
				
			||||||
		"file_types_map":       file_types_map,
 | 
					 | 
				
			||||||
		"alternative_vehicles": alternative_vehicles,
 | 
					 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	renderer.Render("vehicles search", w, r, files, state)
 | 
						renderer.Render("vehicule unbooking", w, r, files, state)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
		Loading…
	
		Reference in New Issue