diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..94a25f7 --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/out/production/cmpt213.assignment1.packagedeliveriestracker/PackageInfo.class b/out/production/cmpt213.assignment1.packagedeliveriestracker/PackageInfo.class index 1c96702..0ffbf36 100644 Binary files a/out/production/cmpt213.assignment1.packagedeliveriestracker/PackageInfo.class and b/out/production/cmpt213.assignment1.packagedeliveriestracker/PackageInfo.class differ diff --git a/out/production/cmpt213.assignment1.packagedeliveriestracker/TextMenu.class b/out/production/cmpt213.assignment1.packagedeliveriestracker/TextMenu.class index 97b7710..2203af1 100644 Binary files a/out/production/cmpt213.assignment1.packagedeliveriestracker/TextMenu.class and b/out/production/cmpt213.assignment1.packagedeliveriestracker/TextMenu.class differ diff --git a/src/PackageInfo.java b/src/PackageInfo.java index e8fee88..4557b55 100644 --- a/src/PackageInfo.java +++ b/src/PackageInfo.java @@ -12,6 +12,19 @@ private String name; private boolean delivered; private LocalDateTime expectedDate; + public PackageInfo(String name, String note, double price, double weight, boolean delivered, LocalDateTime expectedDate) { + this.name =name; + this.note = note; + this.price = price; + this.weight =weight; + this.delivered =delivered; + this.expectedDate = expectedDate; + } + + public String getName() { + return name; + } + @Override public String toString() { DateFormat date = new SimpleDateFormat("yyyy-mm-dd hh:mm"); diff --git a/src/TextMenu.java b/src/TextMenu.java index 4bdb7a4..bc7f7e2 100644 --- a/src/TextMenu.java +++ b/src/TextMenu.java @@ -1,10 +1,14 @@ +import java.net.SocketOption; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.time.DateTimeException; import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; import java.time.format.DateTimeParseException; +import java.time.format.SignStyle; import java.util.ArrayList; import java.util.Calendar; +import java.util.List; import java.util.Scanner; public class TextMenu { @@ -36,8 +40,17 @@ for (int i = 0; i < options.length; i++){ } public void list(ArrayList packageList){ - +if (packageList.size() == 0){ + System.out.println("No packages to show"); +} +else{ + for (int i=0; i < packageList.size(); i++){ + System.out.println("Package #" + i+1); + System.out.println(packageList.get(i).toString()); + } +} } + public void add(ArrayList packageList){ Scanner scan = new Scanner(System.in); String pName; @@ -49,19 +62,52 @@ public void list(ArrayList packageList){ System.out.println("notes:"); String pNotes = scan.nextLine(); boolean checkDate = false; - while (checkDate == false) { - try { + DateTimeFormatter format = DateTimeFormatter.ofPattern("yyyy-mm-dd hh-mm"); + LocalDateTime pDate=LocalDateTime.now(); + + while (checkDate == false){ + //try { System.out.println("enter date as yyyy-mm-dd hh-mm:"); - LocalDateTime pDate = LocalDateTime.parse(scan.nextLine()); - } catch (DateTimeParseException e) { - System.out.println("invalid date format"); - } - checkDate = true; + pDate = LocalDateTime.parse(scan.nextLine(), format); + checkDate = true; + //} + //catch (DateTimeParseException e) { + //System.out.println("invalid date format"); + //} } - } + double pPrice; + do { + System.out.println("enter price:"); + pPrice = scan.nextDouble(); + } + while (pPrice < 0); + double pWeight; + do { + System.out.println("enter weight:"); + pWeight = scan.nextDouble(); + } + while (pWeight <= 0); - public void remove(ArrayList packageList){ + packageList.add(new PackageInfo(pName, pNotes, pPrice, pWeight, false, pDate)); + System.out.println(pName + " has been added to the list!"); + } + public void remove(ArrayList packageList) { + this.list(packageList); + if (packageList.size() == 0){ + return; + } + Scanner scan = new Scanner(System.in); + int n; + do { + System.out.println("enter item number you want to remove (0 to cancel):"); + n = scan.nextInt(); + } + while (n < 0 || n > packageList.size()); + if (n > 0){ + System.out.println(packageList.get(n-1).getName() + " has been removed from the list."); + packageList.remove(n-1); + } } public void overDueList(ArrayList packageList){ @@ -72,7 +118,32 @@ public void list(ArrayList packageList){ } + public ArrayList getUndelivered(List packageList){ + ArrayList undelivered = new ArrayList<>(); + for (PackageInfo package: packageList){ + if (package.getDelivered() == false){ + undelivered.add(package); + } + } +return undelivered; + } + public void markDelivered(ArrayList packageList){ + ArrayList undelivered=getUndelivered(packageList); + if (packageList.size() == 0){ + return; + } + Scanner scan = new Scanner(System.in); + int n; + do { + System.out.println("enter item number you want to mark delivered (0 to cancel):"); + n = scan.nextInt(); + } + while (n < 0 || n > packageList.size()); + if (n > 0){ + System.out.println(packageList.get(n-1).getName() + " has been removed from the list."); + packageList.remove(n-1); + } }