From 18e66cb8d62684b3c06dba96fec767d302e1c8f1 Mon Sep 17 00:00:00 2001 From: Caden <63772723+cadencjk@users.noreply.github.com> Date: Fri, 14 Oct 2022 03:17:33 +0800 Subject: [PATCH 1/4] Add ability to check whether person is in debt --- src/main/java/seedu/address/model/person/Money.java | 10 ++++++++++ src/main/java/seedu/address/model/person/Person.java | 9 +++++++++ 2 files changed, 19 insertions(+) diff --git a/src/main/java/seedu/address/model/person/Money.java b/src/main/java/seedu/address/model/person/Money.java index 3c58293cac1..fff865c001f 100644 --- a/src/main/java/seedu/address/model/person/Money.java +++ b/src/main/java/seedu/address/model/person/Money.java @@ -33,6 +33,7 @@ public Money() { /** * Validates whether amount is valid. + * * @param amount the value to be validated * @return true if a given integer is non-negative */ @@ -40,6 +41,15 @@ public static boolean isValidMoney(Integer amount) { return amount >= 0; } + /** + * Validates whether amount is more than zero. + * + * @return true if amount is positive + */ + public boolean isGreaterThanZero() { + return value > 0; + } + @Override public String toString() { return value.toString(); diff --git a/src/main/java/seedu/address/model/person/Person.java b/src/main/java/seedu/address/model/person/Person.java index 4bcf5daac95..df429167af6 100644 --- a/src/main/java/seedu/address/model/person/Person.java +++ b/src/main/java/seedu/address/model/person/Person.java @@ -122,6 +122,15 @@ public boolean isSamePerson(Person otherPerson) { && otherPerson.getPhone().equals(getPhone()); } + /** + * Determines whether the person owes money. + * + * @return true if the person owes money + */ + public boolean owesMoney() { + return moneyOwed.isGreaterThanZero(); + } + /** * Returns true if both persons have the same identity and data fields. * This defines a stronger notion of equality between two persons. From 7068345e24eee3394020d9daa442a04038877278 Mon Sep 17 00:00:00 2001 From: Caden <63772723+cadencjk@users.noreply.github.com> Date: Fri, 14 Oct 2022 03:18:08 +0800 Subject: [PATCH 2/4] Add warning for debtors --- .../java/seedu/address/ui/ScheduleCard.java | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/src/main/java/seedu/address/ui/ScheduleCard.java b/src/main/java/seedu/address/ui/ScheduleCard.java index 085eca89365..a5541ba7086 100644 --- a/src/main/java/seedu/address/ui/ScheduleCard.java +++ b/src/main/java/seedu/address/ui/ScheduleCard.java @@ -13,6 +13,8 @@ public class ScheduleCard extends UiPart { private static final String FXML = "ScheduleListCard.fxml"; + private static final String COLOUR_OF_DEBTOR = "-fx-text-fill: #FF0000;"; + /** * Note: Certain keywords such as "location" and "resources" are reserved keywords in JavaFX. * As a consequence, UI elements' variable names cannot be set to such keywords @@ -42,12 +44,27 @@ public ScheduleCard(Person person, int displayedIndex) { super(FXML); this.person = person; id.setText(displayedIndex + ". "); - name.setText(person.getName().fullName); + setWarningIfOwed(person); phone.setText(person.getPhone().value); address.setText(person.getAddress().value); classTime.setText(person.getAClass().toTimeString()); } + /** + * Sets off warning indication if the person owes money. + * + * @param person to check whether he/she is a debtor + */ + private void setWarningIfOwed(Person person) { + if (person.owesMoney()) { + String nameWithAmount = person.getName().fullName + " - To collect $" + person.getMoneyOwed().value; + name.setText(nameWithAmount); + name.setStyle(COLOUR_OF_DEBTOR); + } else { + name.setText(person.getName().fullName); + } + } + @Override public boolean equals(Object other) { // short circuit if same object From 6e9f1a688c04eb1fad2c130a0fab823a18d13840 Mon Sep 17 00:00:00 2001 From: Caden <63772723+cadencjk@users.noreply.github.com> Date: Fri, 14 Oct 2022 03:38:02 +0800 Subject: [PATCH 3/4] Update testing --- .../java/seedu/address/model/person/MoneyTest.java | 9 +++++++++ .../java/seedu/address/model/person/PersonTest.java | 10 ++++++++++ 2 files changed, 19 insertions(+) diff --git a/src/test/java/seedu/address/model/person/MoneyTest.java b/src/test/java/seedu/address/model/person/MoneyTest.java index 6f0c89398d4..cec856ef9b3 100644 --- a/src/test/java/seedu/address/model/person/MoneyTest.java +++ b/src/test/java/seedu/address/model/person/MoneyTest.java @@ -33,4 +33,13 @@ public void isValidMoneyTest() { assertTrue(Money.isValidMoney(1234)); // multiple digits positive number assertTrue(Money.isValidMoney(0)); // zero } + + @Test + public void isGreaterThanZeroTest() { + Money moneyWithZeroAmount = new Money(0); + assertFalse(moneyWithZeroAmount.isGreaterThanZero()); + + Money moneyWithPositiveAmount = new Money(50); + assertTrue(moneyWithPositiveAmount.isGreaterThanZero()); + } } diff --git a/src/test/java/seedu/address/model/person/PersonTest.java b/src/test/java/seedu/address/model/person/PersonTest.java index 4b6690c0bae..85e0eb31ba4 100644 --- a/src/test/java/seedu/address/model/person/PersonTest.java +++ b/src/test/java/seedu/address/model/person/PersonTest.java @@ -8,6 +8,7 @@ import static seedu.address.logic.commands.CommandTestUtil.VALID_NAME_BOB; import static seedu.address.logic.commands.CommandTestUtil.VALID_PHONE_BOB; import static seedu.address.testutil.TypicalPersons.ALICE; +import static seedu.address.testutil.TypicalPersons.AVA; import static seedu.address.testutil.TypicalPersons.BOB; import org.junit.jupiter.api.Test; @@ -90,4 +91,13 @@ public void execute_setClassSuccess() { assertEquals(person.getAClass().classDateTime, ""); } + @Test + public void owesMoneyTest() { + Person debtor = AVA; + assertTrue(debtor.owesMoney()); + + Person nonDebtor = new PersonBuilder(AVA).withMoneyOwed(0).build(); + assertFalse(nonDebtor.owesMoney()); + } + } From ec5b6ac0e23cefd290cb704b4883f423aa9ad4f8 Mon Sep 17 00:00:00 2001 From: Caden <63772723+cadencjk@users.noreply.github.com> Date: Sun, 16 Oct 2022 11:44:20 +0800 Subject: [PATCH 4/4] Fix style issues --- src/main/java/seedu/address/model/person/Person.java | 6 +++--- src/main/java/seedu/address/ui/ScheduleCard.java | 3 +-- src/test/java/seedu/address/model/person/PersonTest.java | 4 ++-- 3 files changed, 6 insertions(+), 7 deletions(-) diff --git a/src/main/java/seedu/address/model/person/Person.java b/src/main/java/seedu/address/model/person/Person.java index 805647df9b4..73a0a369d9d 100644 --- a/src/main/java/seedu/address/model/person/Person.java +++ b/src/main/java/seedu/address/model/person/Person.java @@ -140,11 +140,11 @@ public boolean isSamePerson(Person otherPerson) { } /** - * Determines whether the person owes money. + * Determines whether the person is owing money. * - * @return true if the person owes money + * @return true if the person is owing money */ - public boolean owesMoney() { + public boolean isOwingMoney() { return moneyOwed.isGreaterThanZero(); } diff --git a/src/main/java/seedu/address/ui/ScheduleCard.java b/src/main/java/seedu/address/ui/ScheduleCard.java index a5541ba7086..4e3874d4149 100644 --- a/src/main/java/seedu/address/ui/ScheduleCard.java +++ b/src/main/java/seedu/address/ui/ScheduleCard.java @@ -12,7 +12,6 @@ public class ScheduleCard extends UiPart { private static final String FXML = "ScheduleListCard.fxml"; - private static final String COLOUR_OF_DEBTOR = "-fx-text-fill: #FF0000;"; /** @@ -56,7 +55,7 @@ public ScheduleCard(Person person, int displayedIndex) { * @param person to check whether he/she is a debtor */ private void setWarningIfOwed(Person person) { - if (person.owesMoney()) { + if (person.isOwingMoney()) { String nameWithAmount = person.getName().fullName + " - To collect $" + person.getMoneyOwed().value; name.setText(nameWithAmount); name.setStyle(COLOUR_OF_DEBTOR); diff --git a/src/test/java/seedu/address/model/person/PersonTest.java b/src/test/java/seedu/address/model/person/PersonTest.java index c054195dac0..f40808c0b76 100644 --- a/src/test/java/seedu/address/model/person/PersonTest.java +++ b/src/test/java/seedu/address/model/person/PersonTest.java @@ -105,10 +105,10 @@ public void execute_setClassSuccess() { @Test public void owesMoneyTest() { Person debtor = AVA; - assertTrue(debtor.owesMoney()); + assertTrue(debtor.isOwingMoney()); Person nonDebtor = new PersonBuilder(AVA).withMoneyOwed(0).build(); - assertFalse(nonDebtor.owesMoney()); + assertFalse(nonDebtor.isOwingMoney()); } }