From 649801b026260864f1dbd3ad6b2cd43bec06b6fa Mon Sep 17 00:00:00 2001 From: RimaAhmed1 Date: Tue, 9 Jun 2026 17:53:36 +0400 Subject: [PATCH] final draft for the cli erp --- .../org/example/fromrima/AdminModule.java | 104 ++++++++++++++---- .../java/org/example/fromrima/CliErp.java | 35 +++++- .../java/org/example/fromrima/Complaint.java | 62 +++++++++++ .../org/example/fromrima/CustomerModule.java | 78 +++++-------- .../org/example/fromrima/StaffModule.java | 85 +++++++++++++- 5 files changed, 288 insertions(+), 76 deletions(-) create mode 100644 src/main/java/org/example/fromrima/Complaint.java diff --git a/src/main/java/org/example/fromrima/AdminModule.java b/src/main/java/org/example/fromrima/AdminModule.java index 3a37102a..a56f4046 100644 --- a/src/main/java/org/example/fromrima/AdminModule.java +++ b/src/main/java/org/example/fromrima/AdminModule.java @@ -4,29 +4,95 @@ import java.util.Scanner; public class AdminModule { - public static void main(String[] args) { - Scanner inputBuffObj = new Scanner(System.in); - ArrayList customerArray = new ArrayList<>(); + public static void adminMenu(Scanner input, ArrayList complaints) { + System.out.print("Enter Admin PIN: "); + int pin = input.nextInt(); + if (pin != 1234) { + System.out.println("Incorrect PIN"); + return; + } while (true) { - System.out.println("-------- Main Menu --------"); - System.out.println(" 1. Customer\n 2. Admin\n 3. Support Staff\n 4. Exit"); - int userInput = inputBuffObj.nextInt(); - - if (userInput == 2) { - System.out.print("Enter Admin PIN: "); - int adminPIN = inputBuffObj.nextInt(); - if (adminPIN == 1234) { - System.out.println(" 1.View all complaints.\n 2.Search complaint by ID.\n 3.Close a complaint."); - if (userInput == 1) { - System.out.println(customerArray); - } else if (userInput == 2) { - + System.out.println("\n--- Admin Menu ---"); + System.out.println("1. View All Complaints"); + System.out.println("2. Search Complaint"); + System.out.println("3. Close Complaint"); + System.out.println("4. Back"); + System.out.println("5. Exit"); + int choice = input.nextInt(); + switch (choice) { + case 1: + if (complaints.isEmpty()) { + System.out.println("No Complaints Found"); } - } else { - System.out.println("InCorrect PIN"); - } + for (Complaint complaint : complaints) { + System.out.println(complaint); + } + break; + case 2: + System.out.print("Enter Complaint ID: "); + int searchId = input.nextInt(); + boolean found = false; + for (Complaint complaint : complaints) { + if (complaint.getComplaintId() == searchId) { + System.out.println(complaint); + found = true; + } + } + if (!found) { + System.out.println("Complaint Not Found"); + } + break; + case 3: + System.out.print("Enter Complaint ID: "); + int closeId = input.nextInt(); + boolean closed = false; + for (Complaint complaint : complaints) { + if (complaint.getComplaintId() == closeId) { + if (complaint.getStatus().equals("CLOSED")) { + System.out.println("Already Closed"); + } else { + complaint.setStatus("CLOSED"); + System.out.println("Complaint Closed"); + } + closed = true; + } + } + if (!closed) { + System.out.println("Complaint Not Found"); + } + break; + case 4: + return; + case 5: + System.out.println("Good Bye"); + System.exit(0); + default: + System.out.println("Invalid Choice"); + } + } + } + public static void assignComplaint(Scanner input, ArrayList complaints) { + System.out.print("Enter Complaint ID: "); + int id = input.nextInt(); + input.nextLine(); + boolean found = false; + for (Complaint complaint : complaints) { + if (complaint.getComplaintId() == id) { + if (complaint.getStatus().equals("CLOSED")) { + System.out.println("Closed Complaint Cannot Be Assigned"); + return; + } + System.out.print("Enter Staff Name: "); + String staffName = input.nextLine(); + complaint.setAssignedStaff(staffName); + System.out.println("Assignment Successful"); + found = true; + break; } } + if (!found) { + System.out.println("Complaint Not Found"); + } } } diff --git a/src/main/java/org/example/fromrima/CliErp.java b/src/main/java/org/example/fromrima/CliErp.java index a0bad88e..3b394eb8 100644 --- a/src/main/java/org/example/fromrima/CliErp.java +++ b/src/main/java/org/example/fromrima/CliErp.java @@ -1,16 +1,39 @@ package org.example.fromrima; +import java.util.ArrayList; import java.util.Scanner; public class CliErp { public static void main(String[] args) { - Scanner inputBuffObj = new Scanner(System.in); + Scanner input = new Scanner(System.in); + ArrayList complaints = new ArrayList<>(); while (true) { - System.out.println("-------- Main Menu --------"); - System.out.println(" 1. Customer\n 2. Admin\n 3. Support Staff\n 4. Exit"); - int userInput = inputBuffObj.nextInt(); - + System.out.println("\n-------- Main Menu --------"); + System.out.println("1. Customer"); + System.out.println("2. Admin"); + System.out.println("3. Support Staff"); + System.out.println("4. Assign Complaint"); + System.out.println("5. Exit"); + int choice = input.nextInt(); + switch (choice) { + case 1: + CustomerModule.customerMenu(input, complaints); + break; + case 2: + AdminModule.adminMenu(input, complaints); + break; + case 3: + StaffModule.staffMenu(input, complaints); + break; + case 4: + AdminModule.assignComplaint(input, complaints); + break; + case 5: + System.out.println("Good Bye"); + System.exit(0); + default: + System.out.println("Invalid Choice"); + } } - } } diff --git a/src/main/java/org/example/fromrima/Complaint.java b/src/main/java/org/example/fromrima/Complaint.java new file mode 100644 index 00000000..9ae1b0f1 --- /dev/null +++ b/src/main/java/org/example/fromrima/Complaint.java @@ -0,0 +1,62 @@ +package org.example.fromrima; + +import java.util.ArrayList; + +public class Complaint { + private int complaintId; + private String description; + private String priority; + private String status; + private String assignedStaff; + private ArrayList comments; + + public Complaint(int complaintId, String description, String priority) { + this.complaintId = complaintId; + this.description = description; + this.priority = priority; + this.status = "OPEN"; + this.assignedStaff = ""; + this.comments = new ArrayList<>(); + } + + public int getComplaintId() { + return complaintId; + } + + public String getDescription() { + return description; + } + + public String getPriority() { + return priority; + } + + public String getStatus() { + return status; + } + + public String getAssignedStaff() { + return assignedStaff; + } + + public ArrayList getComments() { + return comments; + } + + public void setStatus(String status) { + this.status = status; + } + + public void setAssignedStaff(String assignedStaff) { + this.assignedStaff = assignedStaff; + } + + public void addComment(String comment) { + comments.add(comment); + } + + @Override + public String toString() { + return "\nComplaint ID: " + complaintId + "\nDescription: " + description + "\nPriority: " + priority + "\nStatus: " + status + "\nAssigned Staff: " + assignedStaff + "\nComments: " + comments; + } +} diff --git a/src/main/java/org/example/fromrima/CustomerModule.java b/src/main/java/org/example/fromrima/CustomerModule.java index 35990fa0..79e93f94 100644 --- a/src/main/java/org/example/fromrima/CustomerModule.java +++ b/src/main/java/org/example/fromrima/CustomerModule.java @@ -4,57 +4,37 @@ import java.util.Scanner; public class CustomerModule { - public static void main(String[] args) { - Scanner inputBuffObj = new Scanner(System.in); - ArrayList customerArray = new ArrayList<>(); + public static void customerMenu(Scanner input, ArrayList complaints) { while (true) { - System.out.println("-------- Main Menu --------"); - System.out.println(" 1. Customer\n 2. Admin\n 3. Support Staff\n 4. Exit"); - - String userInput = inputBuffObj.nextLine(); - int choice; - try { - choice = Integer.parseInt(userInput); - } catch (NumberFormatException e) { - System.out.println("Invalid input. Please enter a number."); - continue; - } - - if (choice == 1) { - - System.out.print("Enter Complaint ID: "); - int complaintID = inputBuffObj.nextInt(); - inputBuffObj.nextLine(); - System.out.print("Enter Complaint Description: "); - String complaintDescription = inputBuffObj.nextLine(); - - System.out.print("Select Priority [ LOW / MEDIUM (default) / HIGH ] : "); - String complaintPriority = inputBuffObj.nextLine().toUpperCase(); - if (complaintPriority.isEmpty() || (!complaintPriority.equals("LOW") && !complaintPriority.equals("HIGH"))) { - complaintPriority = "MEDIUM"; - } - - - customerArray.add(complaintID + complaintDescription + complaintPriority); - System.out.println("confirmation"); - - } - - if (choice == 2) { - System.out.print("Enter Admin PIN: "); - int adminPIN = inputBuffObj.nextInt(); - if (adminPIN == 1234) { - System.out.println(" 1.View all complaints.\n 2.Search complaint by ID.\n 3.Close a complaint."); - if (choice == 1) { - System.out.println(customerArray); - } else if (choice == 2) { - + System.out.println("\n--- Customer Menu ---"); + System.out.println("1. Create Complaint"); + System.out.println("2. Back"); + System.out.println("3. Exit"); + int choice = input.nextInt(); + input.nextLine(); + switch (choice) { + case 1: + System.out.print("Enter Complaint ID: "); + int id = input.nextInt(); + input.nextLine(); + System.out.print("Enter Description: "); + String description = input.nextLine(); + System.out.print("Priority (LOW/HIGH) or press Enter for MEDIUM: "); + String priority = input.nextLine().toUpperCase(); + if (!priority.equals("LOW") && + !priority.equals("HIGH")) { + priority = "MEDIUM"; } - } else { - System.out.println("InCorrect PIN"); - } - - + complaints.add(new Complaint(id, description, priority)); + System.out.println("Complaint Created Successfully"); + break; + case 2: + return; + case 3: + System.out.println("Good Bye"); + System.exit(0); + default: + System.out.println("Invalid Choice"); } } } diff --git a/src/main/java/org/example/fromrima/StaffModule.java b/src/main/java/org/example/fromrima/StaffModule.java index f1b006e8..b75a2be6 100644 --- a/src/main/java/org/example/fromrima/StaffModule.java +++ b/src/main/java/org/example/fromrima/StaffModule.java @@ -1,7 +1,88 @@ package org.example.fromrima; +import java.util.ArrayList; +import java.util.Scanner; + public class StaffModule { - public static void main(String[] args){ - System.out.println("Staff"); + public static void staffMenu(Scanner input, ArrayList complaints) { + input.nextLine(); + System.out.print("Enter Staff Name: "); + String staffName = input.nextLine(); + while (true) { + System.out.println("\n--- Staff Menu ---"); + System.out.println("1. View My Complaints"); + System.out.println("2. Add Comment"); + System.out.println("3. Close Complaint"); + System.out.println("4. Back"); + System.out.println("5. Exit"); + int choice = input.nextInt(); + input.nextLine(); + switch (choice) { + case 1: + boolean found = false; + for (Complaint complaint : complaints) { + if (complaint.getAssignedStaff().equalsIgnoreCase(staffName)) { + System.out.println(complaint); + found = true; + } + } + if (!found) { + System.out.println("No Complaints Assigned"); + } + break; + case 2: + System.out.print("Enter Complaint ID: "); + int commentId = input.nextInt(); + input.nextLine(); + boolean commentFound = false; + for (Complaint complaint : complaints) { + if (complaint.getComplaintId() == commentId && + complaint.getAssignedStaff().equalsIgnoreCase(staffName)) { + if (complaint.getStatus().equals("CLOSED")) { + System.out.println("Cannot Modify Closed Complaint"); + return; + } + System.out.print("Enter Comment: "); + String comment = input.nextLine(); + complaint.addComment(comment); + System.out.println("Comment Added Successfully"); + commentFound = true; + } + } + if (!commentFound) { + System.out.println("Complaint Not Assigned To You"); + } + break; + case 3: + System.out.print("Enter Complaint ID: "); + int closeId = input.nextInt(); + boolean closeFound = false; + for (Complaint complaint : complaints) { + if (complaint.getComplaintId() == closeId && + complaint.getAssignedStaff() + .equalsIgnoreCase(staffName)) { + if (complaint.getStatus() + .equals("CLOSED")) { + System.out.println("Already Closed"); + } else { + complaint.setStatus("CLOSED"); + System.out.println("Complaint Closed Successfully"); + } + closeFound = true; + } + } + if (!closeFound) { + System.out.println("Complaint Not Assigned To You"); + } + break; + case 4: + return; + case 5: + System.out.println("Good Bye"); + System.exit(0); + default: + System.out.println("Invalid Choice"); + } + } } }