OneCompiler

q7

685

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; }

}