OneCompiler

q11

521

import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;

public class UpdatePickupSchedule {

// Simulated database for parcel details
static Map<String, ParcelDetails> parcelDatabase = new HashMap<>();

public static void main(String[] args) {
    // Prepopulate the database with sample parcel data
    populateSampleData();

    Scanner scanner = new Scanner(System.in);

    System.out.println("Officer: Enter Booking ID to update Pickup and Drop-off Schedule: ");
    String bookingId = scanner.nextLine().trim();

    // Check and display details
    if (bookingId.isEmpty()) {
        System.out.println("Error: Booking ID cannot be empty. Please provide a valid ID.");
    } else if (parcelDatabase.containsKey(bookingId)) {
        ParcelDetails details = parcelDatabase.get(bookingId);
        displayParcelDetails(details);

        // Get new pickup and drop-off times
        System.out.println("\nEnter new Pickup Time (e.g., 10:00 AM): ");
        String newPickupTime = scanner.nextLine().trim();

        System.out.println("Enter new Drop-off Time (e.g., 02:00 PM): ");
        String newDropoffTime = scanner.nextLine().trim();

        if (newPickupTime.isEmpty() || newDropoffTime.isEmpty()) {
            System.out.println("Error: Both Pickup Time and Drop-off Time must be provided.");
        } else {
            // Update the details
            details.setParcelPickupTime(newPickupTime);
            details.setParcelDropoffTime(newDropoffTime);
            System.out.println("Success: Pickup and Drop-off times updated successfully!");
            displayParcelDetails(details);
        }
    } else {
        System.out.println("Error: Booking ID not found in the system. Please verify the ID.");
    }

    scanner.close();
}

// Method to populate sample data
private static void populateSampleData() {
    ParcelDetails parcel1 = new ParcelDetails(
        "BKG12345", "John Doe", "123 Main St, Springfield, USA",
        "Alice Smith", "456 Elm St, Shelbyville, USA", 
        "2024-12-01", "In Transit", "09:00 AM", "01:00 PM"
    );

    ParcelDetails parcel2 = new ParcelDetails(
        "BKG54321", "Jane Doe", "789 Maple Ave, Springfield, USA",
        "Bob Brown", "321 Oak St, Shelbyville, USA", 
        "2024-12-02", "Delivered", "10:00 AM", "03:00 PM"
    );

    parcelDatabase.put(parcel1.getBookingId(), parcel1);
    parcelDatabase.put(parcel2.getBookingId(), parcel2);
}

// Method to display parcel details
private static void displayParcelDetails(ParcelDetails details) {
    System.out.println("\nCurrent Parcel Details:");
    System.out.println("Booking ID: " + details.getBookingId());
    System.out.println("Full Name: " + details.getFullName());
    System.out.println("Sender Address: " + details.getSenderAddress());
    System.out.println("Receiver Name: " + details.getReceiverName());
    System.out.println("Receiver Address: " + details.getReceiverAddress());
    System.out.println("Date of Booking: " + details.getDateOfBooking());
    System.out.println("Parcel Status: " + details.getParcelStatus());
    System.out.println("Pickup Time: " + details.getParcelPickupTime());
    System.out.println("Drop-off Time: " + details.getParcelDropoffTime());
}

}

// Class to represent parcel details
class ParcelDetails {
private String bookingId;
private String fullName;
private String senderAddress;
private String receiverName;
private String receiverAddress;
private String dateOfBooking;
private String parcelStatus;
private String parcelPickupTime;
private String parcelDropoffTime;

// Constructor
public ParcelDetails(String bookingId, String fullName, String senderAddress,
                     String receiverName, String receiverAddress, String dateOfBooking,
                     String parcelStatus, String parcelPickupTime, String parcelDropoffTime) {
    this.bookingId = bookingId;
    this.fullName = fullName;
    this.senderAddress = senderAddress;
    this.receiverName = receiverName;
    this.receiverAddress = receiverAddress;
    this.dateOfBooking = dateOfBooking;
    this.parcelStatus = parcelStatus;
    this.parcelPickupTime = parcelPickupTime;
    this.parcelDropoffTime = parcelDropoffTime;
}

// Getters and Setters
public String getBookingId() { return bookingId; }
public String getFullName() { return fullName; }
public String getSenderAddress() { return senderAddress; }
public String getReceiverName() { return receiverName; }
public String getReceiverAddress() { return receiverAddress; }
public String getDateOfBooking() { return dateOfBooking; }
public String getParcelStatus() { return parcelStatus; }
public String getParcelPickupTime() { return parcelPickupTime; }
public void setParcelPickupTime(String parcelPickupTime) { this.parcelPickupTime = parcelPickupTime; }
public String getParcelDropoffTime() { return parcelDropoffTime; }
public void setParcelDropoffTime(String parcelDropoffTime) { this.parcelDropoffTime = parcelDropoffTime; }

}