track account

This commit is contained in:
2025-09-13 20:33:29 -04:00
parent bb1a0ce906
commit 48c142c573
12 changed files with 185 additions and 26 deletions

View File

@@ -59,18 +59,18 @@ public final class TestReservations {
mgr.UpdateAccount(acct);
CabinReservation cabin = new CabinReservation(new Address("30 cabin ave", "Carnelian", "CA", "96140"));
cabin.setMailing_address(new Address("30 cabin ave", "Carnelian Bay", "CA", "96140"));
cabin.setNumberOfBeds(4);
cabin.setNumberOfFloors(2);
cabin.setNumberOfBedRooms(3);
cabin.setSquareFeet(806);
cabin.setReservation_start_date(ZonedDateTime.of(2025, 9, 05, 10, 0, 0, 0, ZoneId.of("UTC")));
cabin.setReservation_end_date(ZonedDateTime.of(2025, 11, 30, 22, 0, 0, 0, ZoneId.of("UTC")));
mgr.addReservation(acct2, cabin);
CabinReservation cabin2 = new CabinReservation(new Address("30 cabin ave", "Carnelian", "CA", "96140"));
cabin2.setMailing_address(new Address("30 cabin ave", "Carnelian Bay", "CA", "96140"));
cabin2.setNumberOfBeds(4);
cabin2.setNumberOfFloors(2);
cabin2.setNumberOfBedRooms(3);
cabin2.setSquareFeet(806);
cabin2.setReservation_start_date(ZonedDateTime.of(2025, 9, 05, 10, 0, 0, 0, ZoneId.of("UTC")));
cabin2.setReservation_end_date(ZonedDateTime.of(2025, 11, 30, 22, 0, 0, 0, ZoneId.of("UTC")));
mgr.addReservation(acct2, cabin2);
mgr.UpdateAccount(acct2);
cabin = new CabinReservation(new Address("40 cabin ave", "Carnelian", "CA", "96140"));
CabinReservation cabin = new CabinReservation(new Address("40 cabin ave", "Carnelian", "CA", "96140"));
cabin.setMailing_address(new Address("40 cabin ave", "Carnelian Bay", "CA", "96140"));
cabin.setNumberOfBeds(4);
cabin.setNumberOfFloors(2);

View File

@@ -7,6 +7,8 @@ import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.Collections;
public class Account {
private String account_number = "-99";
private String phone_number;
@@ -44,24 +46,21 @@ public class Account {
return sb.toString();
}
public boolean add(Reservation rsrv) throws ReservationException {
public boolean add(Reservation rsrv) throws DuplicateObjectException {
boolean result = false;
if (rsrv == null) {
return false;
}
try {
rsrv.checkValid();
result = reservation_list.add(rsrv);
if (!result) {
throw new DuplicateObjectException("Error Reservation already exists.");
}
} catch (DuplicateObjectException e) {
System.out.println(String.format("%s", e.getMessage()));
} catch (ReservationException e) {
System.out.println(e.toString());
} finally {
}
if(result){
/* add account number to reservation for tracking purposes */
rsrv.setAccountNumber( this.account_number );
}
return result;
}
@@ -147,4 +146,9 @@ public class Account {
this.setMailing_address(acct.mailing_address);
}
public Reservation[] getAllReservations() {
// TODO Auto-generated method stub
throw new UnsupportedOperationException("Unimplemented method 'getAllReservations'");
}
}

View File

@@ -1,7 +1,10 @@
package lodge.reservationsystem;
import java.io.IOException;
import java.lang.classfile.Superclass;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class AccountList extends ArrayList<Account> {
@@ -57,4 +60,18 @@ public class AccountList extends ArrayList<Account> {
}
return null;
}
public List<Account> getList() {
return Collections.unmodifiableList(this);
}
public List<? extends Reservation> getListOfReservations() {
ArrayList<Reservation> readList = new ArrayList<Reservation>();
for (Account acct: this){
for (Reservation rsrv: acct.getAllReservations()){
readList.add(rsrv);
}
}
return Collections.unmodifiableList(readList);
}
}

View File

@@ -14,7 +14,7 @@ public class AccountReservationList extends ArrayList<Reservation> {
Reservation rsrv = this.find(reservation.getReservation_number());
if( rsrv != null ){
result = false;
throw new DuplicateObjectException(String.format("Error Duplicate: Reservation %s", rsrv.getReservation_number()));
throw new DuplicateObjectException(String.format("Error No Dups, Reservation exists: %s.", rsrv.getReservation_number()));
}
try {
result = reservation.checkValid();

View File

@@ -236,6 +236,9 @@ final class DataRepository {
case "reservation_end_date":
rsrv.setReservation_end_date(ZonedDateTime.parse(jsonReader.nextString()));
break;
case "account_number":
rsrv.setAccountNumber(jsonReader.nextString());
break;
default:
System.out.println(name);

View File

@@ -26,7 +26,9 @@ public abstract class Reservation{
private Integer numberOfFloors;
private Integer squareFeet;
Float price;
private Float price;
protected String accountNumber = null;
protected Reservation() {
numberOfBeds = 1;
@@ -48,6 +50,14 @@ public abstract class Reservation{
return this.reservation_number;
}
public String getAccountNumber() {
return this.accountNumber;
}
protected void setAccountNumber(String account_number) {
this.accountNumber = account_number;
}
public void setPhysical_address(Address physical_address) {
this.physical_address = physical_address;
}
@@ -195,6 +205,7 @@ public abstract class Reservation{
sb.append("\"reservation_status\": \"").append(reservation_status).append("\",");
sb.append("\"reservation_start_date\": \"").append(reservation_start_date).append("\",");
sb.append("\"reservation_end_date\": \"").append(reservation_end_date).append("\",");
sb.append("\"account_number\": \"").append(accountNumber).append("\",");
sb.append("\"physical_address\": ").append(physical_address).append(",");
sb.append("\"mailing_address\": ").append(mailing_address).append(",");
sb.append("\"kitchen\": \"").append(kitchen).append("\",");