q7
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
public class BookingInvoice {
// Data structure to simulate a database for booking details
static Map<String, BookingDetails> bookingDatabase = new HashMap<>();
public static void main(String[] args) {
// Prepopulate the database with a sample booking for demonstration
populateSampleData();
Scanner scanner = new Scanner(System.in);
System.out.println("Enter Booking ID to fetch the invoice: ");
String bookingId = scanner.nextLine();
// Fetch and display booking details
if (bookingDatabase.containsKey(bookingId)) {
BookingDetails details = bookingDatabase.get(bookingId);
displayInvoice(details);
} else {
System.out.println("Booking ID not found.");
}
scanner.close();
}
// Method to populate sample data
private static void populateSampleData() {
BookingDetails booking = new BookingDetails(
"BKG12345", "Alice Smith", "456 Elm Street, Shelbyville, USA",
"54321", "+1-555-987-6543", 2000, "Books",
"Express", "Yes", "14:00", "18:00",
37.00, "2024-12-04 10:30:15"
);
bookingDatabase.put(booking.getBookingId(), booking);
}
// Method to display invoice details
private static void displayInvoice(BookingDetails details) {
System.out.println("\nInvoice Details:");
System.out.println("Booking ID: " + details.getBookingId());
System.out.println("Receiver Name: " + details.getReceiverName());
System.out.println("Receiver Address: " + details.getReceiverAddress());
System.out.println("Receiver PIN: " + details.getReceiverPin());
System.out.println("Receiver Mobile: " + details.getReceiverMobile());
System.out.println("Parcel Weight (g): " + details.getParcelWeight());
System.out.println("Parcel Contents Description: " + details.getParcelContentsDescription());
System.out.println("Parcel Delivery Type: " + details.getParcelDeliveryType());
System.out.println("Parcel Packing Preference: " + details.getParcelPackingPreference());
System.out.println("Parcel Pickup Time: " + details.getParcelPickupTime());
System.out.println("Parcel Drop-off Time: " + details.getParcelDropoffTime());
System.out.println("Parcel Service Cost: $" + details.getParcelServiceCost());
System.out.println("Parcel Payment Time: " + details.getParcelPaymentTime());
}
}
// Class to represent booking details
class BookingDetails {
private String bookingId;
private String receiverName;
private String receiverAddress;
private String receiverPin;
private String receiverMobile;
private double parcelWeight;
private String parcelContentsDescription;
private String parcelDeliveryType;
private String parcelPackingPreference;
private String parcelPickupTime;
private String parcelDropoffTime;
private double parcelServiceCost;
private String parcelPaymentTime;
// Constructor
public BookingDetails(String bookingId, String receiverName, String receiverAddress,
String receiverPin, String receiverMobile, double parcelWeight,
String parcelContentsDescription, String parcelDeliveryType,
String parcelPackingPreference, String parcelPickupTime,
String parcelDropoffTime, double parcelServiceCost,
String parcelPaymentTime) {
this.bookingId = bookingId;
this.receiverName = receiverName;
this.receiverAddress = receiverAddress;
this.receiverPin = receiverPin;
this.receiverMobile = receiverMobile;
this.parcelWeight = parcelWeight;
this.parcelContentsDescription = parcelContentsDescription;
this.parcelDeliveryType = parcelDeliveryType;
this.parcelPackingPreference = parcelPackingPreference;
this.parcelPickupTime = parcelPickupTime;
this.parcelDropoffTime = parcelDropoffTime;
this.parcelServiceCost = parcelServiceCost;
this.parcelPaymentTime = parcelPaymentTime;
}
// Getters
public String getBookingId() { return bookingId; }
public String getReceiverName() { return receiverName; }
public String getReceiverAddress() { return receiverAddress; }
public String getReceiverPin() { return receiverPin; }
public String getReceiverMobile() { return receiverMobile; }
public double getParcelWeight() { return parcelWeight; }
public String getParcelContentsDescription() { return parcelContentsDescription; }
public String getParcelDeliveryType() { return parcelDeliveryType; }
public String getParcelPackingPreference() { return parcelPackingPreference; }
public String getParcelPickupTime() { return parcelPickupTime; }
public String getParcelDropoffTime() { return parcelDropoffTime; }
public double getParcelServiceCost() { return parcelServiceCost; }
public String getParcelPaymentTime() { return parcelPaymentTime; }
}