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