track account
This commit is contained in:
@@ -59,18 +59,18 @@ public final class TestReservations {
|
|||||||
|
|
||||||
mgr.UpdateAccount(acct);
|
mgr.UpdateAccount(acct);
|
||||||
|
|
||||||
CabinReservation cabin = new CabinReservation(new Address("30 cabin ave", "Carnelian", "CA", "96140"));
|
CabinReservation cabin2 = new CabinReservation(new Address("30 cabin ave", "Carnelian", "CA", "96140"));
|
||||||
cabin.setMailing_address(new Address("30 cabin ave", "Carnelian Bay", "CA", "96140"));
|
cabin2.setMailing_address(new Address("30 cabin ave", "Carnelian Bay", "CA", "96140"));
|
||||||
cabin.setNumberOfBeds(4);
|
cabin2.setNumberOfBeds(4);
|
||||||
cabin.setNumberOfFloors(2);
|
cabin2.setNumberOfFloors(2);
|
||||||
cabin.setNumberOfBedRooms(3);
|
cabin2.setNumberOfBedRooms(3);
|
||||||
cabin.setSquareFeet(806);
|
cabin2.setSquareFeet(806);
|
||||||
cabin.setReservation_start_date(ZonedDateTime.of(2025, 9, 05, 10, 0, 0, 0, ZoneId.of("UTC")));
|
cabin2.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")));
|
cabin2.setReservation_end_date(ZonedDateTime.of(2025, 11, 30, 22, 0, 0, 0, ZoneId.of("UTC")));
|
||||||
mgr.addReservation(acct2, cabin);
|
mgr.addReservation(acct2, cabin2);
|
||||||
mgr.UpdateAccount(acct2);
|
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.setMailing_address(new Address("40 cabin ave", "Carnelian Bay", "CA", "96140"));
|
||||||
cabin.setNumberOfBeds(4);
|
cabin.setNumberOfBeds(4);
|
||||||
cabin.setNumberOfFloors(2);
|
cabin.setNumberOfFloors(2);
|
||||||
|
|||||||
@@ -7,6 +7,8 @@ import java.nio.file.Files;
|
|||||||
import java.nio.file.Path;
|
import java.nio.file.Path;
|
||||||
import java.nio.file.Paths;
|
import java.nio.file.Paths;
|
||||||
|
|
||||||
|
import java.util.Collections;
|
||||||
|
|
||||||
public class Account {
|
public class Account {
|
||||||
private String account_number = "-99";
|
private String account_number = "-99";
|
||||||
private String phone_number;
|
private String phone_number;
|
||||||
@@ -44,24 +46,21 @@ public class Account {
|
|||||||
return sb.toString();
|
return sb.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean add(Reservation rsrv) throws ReservationException {
|
public boolean add(Reservation rsrv) throws DuplicateObjectException {
|
||||||
boolean result = false;
|
boolean result = false;
|
||||||
if (rsrv == null) {
|
if (rsrv == null) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
rsrv.checkValid();
|
|
||||||
result = reservation_list.add(rsrv);
|
result = reservation_list.add(rsrv);
|
||||||
|
|
||||||
if (!result) {
|
|
||||||
throw new DuplicateObjectException("Error Reservation already exists.");
|
|
||||||
}
|
|
||||||
} catch (DuplicateObjectException e) {
|
} catch (DuplicateObjectException e) {
|
||||||
System.out.println(String.format("%s", e.getMessage()));
|
System.out.println(String.format("%s", e.getMessage()));
|
||||||
} catch (ReservationException e) {
|
|
||||||
System.out.println(e.toString());
|
|
||||||
} finally {
|
} finally {
|
||||||
}
|
}
|
||||||
|
if(result){
|
||||||
|
/* add account number to reservation for tracking purposes */
|
||||||
|
rsrv.setAccountNumber( this.account_number );
|
||||||
|
}
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -147,4 +146,9 @@ public class Account {
|
|||||||
this.setMailing_address(acct.mailing_address);
|
this.setMailing_address(acct.mailing_address);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Reservation[] getAllReservations() {
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
throw new UnsupportedOperationException("Unimplemented method 'getAllReservations'");
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -1,7 +1,10 @@
|
|||||||
package lodge.reservationsystem;
|
package lodge.reservationsystem;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
import java.lang.classfile.Superclass;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.Collections;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
public class AccountList extends ArrayList<Account> {
|
public class AccountList extends ArrayList<Account> {
|
||||||
|
|
||||||
@@ -57,4 +60,18 @@ public class AccountList extends ArrayList<Account> {
|
|||||||
}
|
}
|
||||||
return null;
|
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);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ public class AccountReservationList extends ArrayList<Reservation> {
|
|||||||
Reservation rsrv = this.find(reservation.getReservation_number());
|
Reservation rsrv = this.find(reservation.getReservation_number());
|
||||||
if( rsrv != null ){
|
if( rsrv != null ){
|
||||||
result = false;
|
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 {
|
try {
|
||||||
result = reservation.checkValid();
|
result = reservation.checkValid();
|
||||||
|
|||||||
@@ -236,6 +236,9 @@ final class DataRepository {
|
|||||||
case "reservation_end_date":
|
case "reservation_end_date":
|
||||||
rsrv.setReservation_end_date(ZonedDateTime.parse(jsonReader.nextString()));
|
rsrv.setReservation_end_date(ZonedDateTime.parse(jsonReader.nextString()));
|
||||||
break;
|
break;
|
||||||
|
case "account_number":
|
||||||
|
rsrv.setAccountNumber(jsonReader.nextString());
|
||||||
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
System.out.println(name);
|
System.out.println(name);
|
||||||
|
|||||||
@@ -26,7 +26,9 @@ public abstract class Reservation{
|
|||||||
private Integer numberOfFloors;
|
private Integer numberOfFloors;
|
||||||
private Integer squareFeet;
|
private Integer squareFeet;
|
||||||
|
|
||||||
Float price;
|
private Float price;
|
||||||
|
|
||||||
|
protected String accountNumber = null;
|
||||||
|
|
||||||
protected Reservation() {
|
protected Reservation() {
|
||||||
numberOfBeds = 1;
|
numberOfBeds = 1;
|
||||||
@@ -48,6 +50,14 @@ public abstract class Reservation{
|
|||||||
return this.reservation_number;
|
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) {
|
public void setPhysical_address(Address physical_address) {
|
||||||
this.physical_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_status\": \"").append(reservation_status).append("\",");
|
||||||
sb.append("\"reservation_start_date\": \"").append(reservation_start_date).append("\",");
|
sb.append("\"reservation_start_date\": \"").append(reservation_start_date).append("\",");
|
||||||
sb.append("\"reservation_end_date\": \"").append(reservation_end_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("\"physical_address\": ").append(physical_address).append(",");
|
||||||
sb.append("\"mailing_address\": ").append(mailing_address).append(",");
|
sb.append("\"mailing_address\": ").append(mailing_address).append(",");
|
||||||
sb.append("\"kitchen\": \"").append(kitchen).append("\",");
|
sb.append("\"kitchen\": \"").append(kitchen).append("\",");
|
||||||
|
|||||||
@@ -1 +1,36 @@
|
|||||||
{ "Account":{"account_number": "A1450981765","phone_number": "701-456-7890","mailing_address": { "Address":{"street": "10 wilco ave","city": "wilco","state": "WY","zip": "82801"}},"email_address": { "EmailAddress":{"email": "wilco@wyommin.net"}},"reservation_list":[{"HotelReservation":{"reservation_number":"R0123077641"}},{"CabinReservation":{"reservation_number":"R2042828431"}},{"HouseReservation":{"reservation_number":"R0499811708"}}]}}
|
{
|
||||||
|
"Account": {
|
||||||
|
"account_number": "A1450981765",
|
||||||
|
"phone_number": "701-456-7890",
|
||||||
|
"mailing_address": {
|
||||||
|
"Address": {
|
||||||
|
"street": "10 wilco ave",
|
||||||
|
"city": "wilco",
|
||||||
|
"state": "WY",
|
||||||
|
"zip": "82801"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"email_address": {
|
||||||
|
"EmailAddress": {
|
||||||
|
"email": "wilco@wyommin.net"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"reservation_list": [
|
||||||
|
{
|
||||||
|
"HotelReservation": {
|
||||||
|
"reservation_number": "R0123077641"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"CabinReservation": {
|
||||||
|
"reservation_number": "R0535276622"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"HouseReservation": {
|
||||||
|
"reservation_number": "R0499811708"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1 +1,26 @@
|
|||||||
{ "Account":{"account_number": "A2074212339","phone_number": "301-356-3890","mailing_address": { "Address":{"street": "30 Amstadam ave","city": "New York","state": "NY","zip": "12010"}},"email_address": { "EmailAddress":{"email": "newbee952@aol.com"}},"reservation_list":[{"CabinReservation":{"reservation_number":"R2042828431"}}]}}
|
{
|
||||||
|
"Account": {
|
||||||
|
"account_number": "A2074212339",
|
||||||
|
"phone_number": "301-356-3890",
|
||||||
|
"mailing_address": {
|
||||||
|
"Address": {
|
||||||
|
"street": "30 Amstadam ave",
|
||||||
|
"city": "New York",
|
||||||
|
"state": "NY",
|
||||||
|
"zip": "12010"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"email_address": {
|
||||||
|
"EmailAddress": {
|
||||||
|
"email": "newbee952@aol.com"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"reservation_list": [
|
||||||
|
{
|
||||||
|
"CabinReservation": {
|
||||||
|
"reservation_number": "R2042828431"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1 +1 @@
|
|||||||
{ "HotelReservation":{"reservation_type": "HotelReservation","reservation_number": "R0123077641","reservation_status": "Draft","reservation_start_date": "2025-07-05T10:00Z[UTC]","reservation_end_date": "2025-11-30T22:00Z[UTC]","physical_address": { "Address":{"street": "400 hotel ave","city": "Maryland City","state": "CA","zip": "20723"}},"mailing_address": { "Address":{"street": "400 hotel ave","city": "Maryland City","state": "MD","zip": "20723"}},"kitchen": "None","numberOfBeds": "2","numberOfBedRooms": "1","numberOfBathRooms": "1","numberOfFloors": "1","squareFeet": "450","price": "120.0"}}
|
{ "HotelReservation":{"reservation_type": "HotelReservation","reservation_number": "R0123077641","reservation_status": "Draft","reservation_start_date": "2025-07-05T10:00Z[UTC]","reservation_end_date": "2025-11-30T22:00Z[UTC]","account_number": "A1450981765","physical_address": { "Address":{"street": "400 hotel ave","city": "Maryland City","state": "CA","zip": "20723"}},"mailing_address": { "Address":{"street": "400 hotel ave","city": "Maryland City","state": "MD","zip": "20723"}},"kitchen": "Kitchenette","numberOfBeds": "2","numberOfBedRooms": "1","numberOfBathRooms": "1","numberOfFloors": "1","squareFeet": "450","price": "120.0"}}
|
||||||
@@ -1 +1,33 @@
|
|||||||
{ "HouseReservation":{"reservation_type": "HouseReservation","reservation_number": "R0499811708","reservation_status": "Completed","reservation_start_date": "2025-09-05T10:00Z[UTC]","reservation_end_date": "2025-11-30T22:00Z[UTC]","physical_address": { "Address":{"street": "3000 Osage ave","city": "GreenBelt","state": "MD","zip": "20740"}},"mailing_address": { "Address":{"street": "40012 College ave","city": "College Park","state": "MD","zip": "20740"}},"kitchen": "FullKitchen","numberOfBeds": "4","numberOfBedRooms": "3","numberOfBathRooms": "1","numberOfFloors": "3","squareFeet": "1400","price": "11475.0"}}
|
{
|
||||||
|
"HouseReservation": {
|
||||||
|
"reservation_type": "HouseReservation",
|
||||||
|
"reservation_number": "R0499811708",
|
||||||
|
"reservation_status": "Completed",
|
||||||
|
"reservation_start_date": "2025-09-05T10:00Z[UTC]",
|
||||||
|
"reservation_end_date": "2025-11-30T22:00Z[UTC]",
|
||||||
|
"account_number": "A1450981765",
|
||||||
|
"physical_address": {
|
||||||
|
"Address": {
|
||||||
|
"street": "3000 Osage ave",
|
||||||
|
"city": "GreenBelt",
|
||||||
|
"state": "MD",
|
||||||
|
"zip": "20740"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"mailing_address": {
|
||||||
|
"Address": {
|
||||||
|
"street": "40012 College ave",
|
||||||
|
"city": "College Park",
|
||||||
|
"state": "MD",
|
||||||
|
"zip": "20740"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"kitchen": "Kitchenette",
|
||||||
|
"numberOfBeds": "4",
|
||||||
|
"numberOfBedRooms": "3",
|
||||||
|
"numberOfBathRooms": "1",
|
||||||
|
"numberOfFloors": "3",
|
||||||
|
"squareFeet": "1400",
|
||||||
|
"price": "11475.0"
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1 +1,33 @@
|
|||||||
{ "CabinReservation":{"reservation_type": "CabinReservation","reservation_number": "R0535276622","reservation_status": "Draft","reservation_start_date": "2025-09-05T10:00Z[UTC]","reservation_end_date": "2025-11-30T22:00Z[UTC]","physical_address": { "Address":{"street": "40 cabin ave","city": "Carnelian","state": "CA","zip": "96140"}},"mailing_address": { "Address":{"street": "40 cabin ave","city": "Carnelian Bay","state": "CA","zip": "96140"}},"kitchen": "Kitchenette","numberOfBeds": "4","numberOfBedRooms": "3","numberOfBathRooms": "1","numberOfFloors": "2","squareFeet": "806","price": "120.0"}}
|
{
|
||||||
|
"CabinReservation": {
|
||||||
|
"reservation_type": "CabinReservation",
|
||||||
|
"reservation_number": "R0535276622",
|
||||||
|
"reservation_status": "Draft",
|
||||||
|
"reservation_start_date": "2025-09-05T10:00Z[UTC]",
|
||||||
|
"reservation_end_date": "2025-11-30T22:00Z[UTC]",
|
||||||
|
"account_number": "A1450981765",
|
||||||
|
"physical_address": {
|
||||||
|
"Address": {
|
||||||
|
"street": "40 cabin ave",
|
||||||
|
"city": "Carnelian",
|
||||||
|
"state": "CA",
|
||||||
|
"zip": "96140"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"mailing_address": {
|
||||||
|
"Address": {
|
||||||
|
"street": "40 cabin ave",
|
||||||
|
"city": "Carnelian Bay",
|
||||||
|
"state": "CA",
|
||||||
|
"zip": "96140"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"kitchen": "Kitchenette",
|
||||||
|
"numberOfBeds": "4",
|
||||||
|
"numberOfBedRooms": "3",
|
||||||
|
"numberOfBathRooms": "1",
|
||||||
|
"numberOfFloors": "2",
|
||||||
|
"squareFeet": "806",
|
||||||
|
"price": "120.0"
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1 +1 @@
|
|||||||
{ "CabinReservation":{"reservation_type": "CabinReservation","reservation_number": "R2042828431","reservation_status": "Draft","reservation_start_date": "2025-09-05T10:00Z[UTC]","reservation_end_date": "2025-11-30T22:00Z[UTC]","physical_address": { "Address":{"street": "30 cabin ave","city": "Carnelian","state": "CA","zip": "96140"}},"mailing_address": { "Address":{"street": "40 cabin ave","city": "Carnelian Bay","state": "CA","zip": "96140"}},"kitchen": "Kitchenette","numberOfBeds": "4","numberOfBedRooms": "3","numberOfBathRooms": "1","numberOfFloors": "2","squareFeet": "806","price": "120.0"}}
|
{ "CabinReservation":{"reservation_type": "CabinReservation","reservation_number": "R2042828431","reservation_status": "Draft","reservation_start_date": "2025-09-05T10:00Z[UTC]","reservation_end_date": "2025-11-30T22:00Z[UTC]","account_number": "A2074212339","physical_address": { "Address":{"street": "30 cabin ave","city": "Carnelian","state": "CA","zip": "96140"}},"mailing_address": { "Address":{"street": "30 cabin ave","city": "Carnelian Bay","state": "CA","zip": "96140"}},"kitchen": "Kitchenette","numberOfBeds": "4","numberOfBedRooms": "3","numberOfBathRooms": "1","numberOfFloors": "2","squareFeet": "806","price": "120.0"}}
|
||||||
Reference in New Issue
Block a user