|
|
|
@ -1,3 +1,4 @@
|
|
|
|
|
import javax.swing.text.html.HTMLDocument;
|
|
|
|
|
import java.net.SocketOption;
|
|
|
|
|
import java.text.DateFormat;
|
|
|
|
|
import java.text.SimpleDateFormat;
|
|
|
|
@ -6,10 +7,7 @@ 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;
|
|
|
|
|
import java.util.*;
|
|
|
|
|
|
|
|
|
|
public class TextMenu {
|
|
|
|
|
private final String title = "title";
|
|
|
|
@ -31,7 +29,7 @@ public void display(){
|
|
|
|
|
for (int i=0; i<= tag+3; i++){
|
|
|
|
|
System.out.print("#");
|
|
|
|
|
}
|
|
|
|
|
DateFormat today = new SimpleDateFormat("yyyy-mm-dd");
|
|
|
|
|
DateFormat today = new SimpleDateFormat("yyy-MM-dd");
|
|
|
|
|
Calendar cal=Calendar.getInstance();
|
|
|
|
|
System.out.println("\nToday is: " + today.format(cal.getTime()));
|
|
|
|
|
for (int i = 0; i < options.length; i++){
|
|
|
|
@ -62,18 +60,18 @@ else{
|
|
|
|
|
System.out.println("notes:");
|
|
|
|
|
String pNotes = scan.nextLine();
|
|
|
|
|
boolean checkDate = false;
|
|
|
|
|
DateTimeFormatter format = DateTimeFormatter.ofPattern("yyyy-mm-dd hh-mm");
|
|
|
|
|
DateTimeFormatter format = DateTimeFormatter.ofPattern("yyy-MM-dd HH:mm");
|
|
|
|
|
LocalDateTime pDate=LocalDateTime.now();
|
|
|
|
|
|
|
|
|
|
while (checkDate == false){
|
|
|
|
|
//try {
|
|
|
|
|
try {
|
|
|
|
|
System.out.println("enter date as yyyy-mm-dd hh-mm:");
|
|
|
|
|
pDate = LocalDateTime.parse(scan.nextLine(), format);
|
|
|
|
|
checkDate = true;
|
|
|
|
|
//}
|
|
|
|
|
//catch (DateTimeParseException e) {
|
|
|
|
|
//System.out.println("invalid date format");
|
|
|
|
|
//}
|
|
|
|
|
}
|
|
|
|
|
catch (DateTimeParseException e) {
|
|
|
|
|
System.out.println("invalid date format");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
double pPrice;
|
|
|
|
|
do {
|
|
|
|
@ -110,19 +108,50 @@ else{
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public void overDueList(ArrayList<PackageInfo> packageList){
|
|
|
|
|
//due=true returns overdue packages, else upcoming packages
|
|
|
|
|
public ArrayList<PackageInfo> sortList(ArrayList<PackageInfo> pList, boolean due){
|
|
|
|
|
ArrayList<PackageInfo> sortedList = new ArrayList<>();
|
|
|
|
|
LocalDateTime now = LocalDateTime.now();
|
|
|
|
|
DateTimeFormatter format = DateTimeFormatter.ofPattern("yyy-MM-dd HH:mm");
|
|
|
|
|
LocalDateTime today = LocalDateTime.parse(now.format(format));
|
|
|
|
|
for (int i = 0; i < pList.size(); i++) {
|
|
|
|
|
PackageInfo p = pList.get(i);
|
|
|
|
|
if (!p.getDelivered()) {
|
|
|
|
|
if (due && today.isAfter(p.getExpectedDate())) {
|
|
|
|
|
sortedList.add(p);
|
|
|
|
|
}
|
|
|
|
|
else if (!due && today.isBefore(p.getExpectedDate())){
|
|
|
|
|
sortedList.add(p);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
Collections.sort(sortedList);
|
|
|
|
|
return sortedList;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public void overDueList(ArrayList<PackageInfo> packageList){
|
|
|
|
|
ArrayList<PackageInfo> overdue = sortList(packageList, true);
|
|
|
|
|
if (overdue.size() == 0){
|
|
|
|
|
System.out.println("no overdue packages to show");
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
this.list(overdue);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public void upcomingList(ArrayList<PackageInfo> packageList){
|
|
|
|
|
|
|
|
|
|
ArrayList<PackageInfo> upcoming = sortList(packageList, false);
|
|
|
|
|
if (upcoming.size() == 0){
|
|
|
|
|
System.out.println("no upcoming packages to show");
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
this.list(upcoming);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public ArrayList<PackageInfo> getUndelivered(List<PackageInfo> packageList){
|
|
|
|
|
ArrayList<PackageInfo> undelivered = new ArrayList<>();
|
|
|
|
|
for (PackageInfo package: packageList){
|
|
|
|
|
if (package.getDelivered() == false){
|
|
|
|
|
undelivered.add(package);
|
|
|
|
|
for (int i = 0; i < packageList.size(); i++){
|
|
|
|
|
if (packageList.get(i).getDelivered() == false){
|
|
|
|
|
undelivered.add(packageList.get(i));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return undelivered;
|
|
|
|
@ -130,21 +159,23 @@ return undelivered;
|
|
|
|
|
|
|
|
|
|
public void markDelivered(ArrayList<PackageInfo> packageList){
|
|
|
|
|
ArrayList<PackageInfo> undelivered=getUndelivered(packageList);
|
|
|
|
|
if (packageList.size() == 0){
|
|
|
|
|
if (undelivered.size() == 0){
|
|
|
|
|
System.out.println("No undelivered packages to show");
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
this.list(undelivered);
|
|
|
|
|
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());
|
|
|
|
|
while (n < 0 || n > undelivered.size());
|
|
|
|
|
if (n > 0){
|
|
|
|
|
System.out.println(packageList.get(n-1).getName() + " has been removed from the list.");
|
|
|
|
|
packageList.remove(n-1);
|
|
|
|
|
PackageInfo p = undelivered.get(n-1);
|
|
|
|
|
packageList.get(packageList.indexOf(p)).setDelivered(true);
|
|
|
|
|
System.out.println(p.getName() + " has been delivered.");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|