diff --git a/src/de/deadlocker8/budgetmaster/logic/NormalPayment.java b/src/de/deadlocker8/budgetmaster/logic/NormalPayment.java index 7441eae7f2051e7c8a0d69ba17d6935b4e7fefa4..1f4bf8cff6d1c102858758857b63032d6c777bf4 100644 --- a/src/de/deadlocker8/budgetmaster/logic/NormalPayment.java +++ b/src/de/deadlocker8/budgetmaster/logic/NormalPayment.java @@ -2,14 +2,14 @@ package de.deadlocker8.budgetmaster.logic; public class NormalPayment extends Payment { - public NormalPayment(int ID, int amount, String date, int categoryID, String name) + public NormalPayment(int ID, int amount, String date, int categoryID, String name, String description) { - super(ID, amount, date, categoryID, name); + super(ID, amount, date, categoryID, name, description); } @Override public String toString() { - return "Payment [ID=" + super.getID() + ", amount=" + super.getAmount() + ", date=" + super.getDate() + ", categoryID=" + super.getCategoryID() + ", name=" + super.getName() + "]"; + return "Payment [ID=" + super.getID() + ", amount=" + super.getAmount() + ", date=" + super.getDate() + ", categoryID=" + super.getCategoryID() + ", name=" + super.getName() + ", description=" + super.getDescription() + "]"; } } \ No newline at end of file diff --git a/src/de/deadlocker8/budgetmaster/logic/Payment.java b/src/de/deadlocker8/budgetmaster/logic/Payment.java index 38e72ccab692209e7b26135dae8e7665f7bc98e4..8097353c2780fda914849ee9031330f372e379e3 100644 --- a/src/de/deadlocker8/budgetmaster/logic/Payment.java +++ b/src/de/deadlocker8/budgetmaster/logic/Payment.java @@ -7,14 +7,16 @@ public abstract class Payment private String date; private int categoryID; private String name; + private String description; - public Payment(int ID, int amount, String date, int categoryID, String name) + public Payment(int ID, int amount, String date, int categoryID, String name, String description) { this.ID = ID; this.amount = amount; this.date = date; this.categoryID = categoryID; this.name = name; + this.description = description; } public int getID() @@ -67,6 +69,16 @@ public abstract class Payment this.name = name; } + public String getDescription() + { + return description; + } + + public void setDescription(String description) + { + this.description = description; + } + public boolean isIncome() { return amount > 0; diff --git a/src/de/deadlocker8/budgetmaster/logic/RepeatingPayment.java b/src/de/deadlocker8/budgetmaster/logic/RepeatingPayment.java index 1bc6195f8692dcd027cbc2965e7262c5fd7815fc..c3d2cee8b79e5cd61b539be0a43073a4841fcf28 100644 --- a/src/de/deadlocker8/budgetmaster/logic/RepeatingPayment.java +++ b/src/de/deadlocker8/budgetmaster/logic/RepeatingPayment.java @@ -6,9 +6,9 @@ public class RepeatingPayment extends Payment private String repeatEndDate; private int repeatMonthDay; - public RepeatingPayment(int ID, int amount, String date, int categoryID, String name, int repeatInterval, String repeatEndDate, int repeatMonthDay) + public RepeatingPayment(int ID, int amount, String date, int categoryID, String name, String description, int repeatInterval, String repeatEndDate, int repeatMonthDay) { - super(ID, amount, date, categoryID, name); + super(ID, amount, date, categoryID, name, description); this.repeatInterval = repeatInterval; this.repeatEndDate = repeatEndDate; this.repeatMonthDay = repeatMonthDay; @@ -47,7 +47,7 @@ public class RepeatingPayment extends Payment @Override public String toString() { - return "RepeatingPayment [ID=" + super.getID() + ", amount=" + super.getAmount() + ", date=" + super.getDate() + ", categoryID=" + super.getCategoryID() + ", name=" + super.getName() + ", repeatInterval=" + repeatInterval + ", repeatEndDate=" + repeatEndDate + ", repeatMonthDay=" + repeatMonthDay + "]"; + return "RepeatingPayment [ID=" + super.getID() + ", amount=" + super.getAmount() + ", date=" + super.getDate() + ", categoryID=" + super.getCategoryID() + ", name=" + super.getName() + ", description=" + super.getDescription() + ", repeatInterval=" + repeatInterval + ", repeatEndDate=" + repeatEndDate + ", repeatMonthDay=" + repeatMonthDay + "]"; } @Override diff --git a/src/de/deadlocker8/budgetmaster/logic/RepeatingPaymentEntry.java b/src/de/deadlocker8/budgetmaster/logic/RepeatingPaymentEntry.java index 5527764bd283903271d28884dbde18365fd31e2d..001f213c6cf9cc57eea73b5f8cab8c5c9997c671 100644 --- a/src/de/deadlocker8/budgetmaster/logic/RepeatingPaymentEntry.java +++ b/src/de/deadlocker8/budgetmaster/logic/RepeatingPaymentEntry.java @@ -7,9 +7,9 @@ public class RepeatingPaymentEntry extends Payment private String repeatEndDate; private int repeatMonthDay; - public RepeatingPaymentEntry(int ID, int repeatingPaymentID, String date, int amount, int categoryID, String name, int repeatInterval, String repeatEndDate, int repeatMonthDay) + public RepeatingPaymentEntry(int ID, int repeatingPaymentID, String date, int amount, int categoryID, String name, String description, int repeatInterval, String repeatEndDate, int repeatMonthDay) { - super(ID, amount, date, categoryID, name); + super(ID, amount, date, categoryID, name, description); this.repeatingPaymentID = repeatingPaymentID; this.repeatInterval = repeatInterval; this.repeatEndDate = repeatEndDate; @@ -39,7 +39,7 @@ public class RepeatingPaymentEntry extends Payment @Override public String toString() { - return "RepeatingPaymentEntry [ID=" + super.getID() + ", repeatingPaymentID=" + repeatingPaymentID + ", date=" + super.getDate() + ", amount=" + super.getAmount() + ", categoryID=" + super.getCategoryID() + ", name=" + super.getName() + ", repeatInterval=" + repeatInterval + ", repeatEndDate=" + repeatEndDate + ", repeatMonthDay=" + return "RepeatingPaymentEntry [ID=" + super.getID() + ", repeatingPaymentID=" + repeatingPaymentID + ", date=" + super.getDate() + ", amount=" + super.getAmount() + ", categoryID=" + super.getCategoryID() + ", name=" + super.getName() + ", description=" + super.getDescription() + ", repeatInterval=" + repeatInterval + ", repeatEndDate=" + repeatEndDate + ", repeatMonthDay=" + repeatMonthDay + "]"; } } \ No newline at end of file diff --git a/src/de/deadlocker8/budgetmaster/logic/ServerConnection.java b/src/de/deadlocker8/budgetmaster/logic/ServerConnection.java index 1792a896e1fe7e43e739e90eb4739fffa4744cc3..b6a04d740c68c6fb6e90fed593d980613061aa22 100644 --- a/src/de/deadlocker8/budgetmaster/logic/ServerConnection.java +++ b/src/de/deadlocker8/budgetmaster/logic/ServerConnection.java @@ -87,7 +87,6 @@ public class ServerConnection if(httpsCon.getResponseCode() == HttpsURLConnection.HTTP_OK) { String result = Read.getStringFromInputStream(httpsCon.getInputStream()); - System.out.println(result); return gson.fromJson(result, Category.class); } else @@ -196,7 +195,12 @@ public class ServerConnection public void addNormalPayment(NormalPayment payment) throws Exception { - URL url = new URL(settings.getUrl() + "/payment?secret=" + Helpers.getURLEncodedString(settings.getSecret()) + "&amount=" + payment.getAmount() + "&date=" + payment.getDate() + "&categoryID=" + payment.getCategoryID() + "&name=" + Helpers.getURLEncodedString(payment.getName())); + URL url = new URL(settings.getUrl() + "/payment?secret=" + Helpers.getURLEncodedString(settings.getSecret()) + + "&amount=" + payment.getAmount() + + "&date=" + payment.getDate() + + "&categoryID=" + payment.getCategoryID() + + "&name=" + Helpers.getURLEncodedString(payment.getName()) + + "&description=" + Helpers.getURLEncodedString(payment.getDescription())); HttpsURLConnection httpsCon = (HttpsURLConnection)url.openConnection(); httpsCon.setRequestMethod("POST"); httpsCon.setDoInput(true); @@ -207,7 +211,13 @@ public class ServerConnection public void updateNormalPayment(NormalPayment payment) throws Exception { - URL url = new URL(settings.getUrl() + "/payment?secret=" + settings.getSecret() + "&id=" + payment.getID() + "&amount=" + payment.getAmount() + "&date=" + payment.getDate() + "&categoryID=" + payment.getCategoryID() + "&name=" + Helpers.getURLEncodedString(payment.getName())); + URL url = new URL(settings.getUrl() + "/payment?secret=" + settings.getSecret() + + "&id=" + payment.getID() + + "&amount=" + payment.getAmount() + + "&date=" + payment.getDate() + + "&categoryID=" + payment.getCategoryID() + + "&name=" + Helpers.getURLEncodedString(payment.getName()) + + "&description=" + Helpers.getURLEncodedString(payment.getDescription())); HttpsURLConnection httpsCon = (HttpsURLConnection)url.openConnection(); httpsCon.setRequestMethod("PUT"); httpsCon.setDoInput(true); @@ -225,8 +235,15 @@ public class ServerConnection repeatEndDate = "A"; } - URL url = new URL(settings.getUrl() + "/repeatingpayment?secret=" + Helpers.getURLEncodedString(settings.getSecret()) + "&amount=" + payment.getAmount() + "&date=" + payment.getDate() + "&categoryID=" + payment.getCategoryID() + "&name=" + Helpers.getURLEncodedString(payment.getName()) - + "&repeatInterval=" + payment.getRepeatInterval() + "&repeatEndDate=" + repeatEndDate + "&repeatMonthDay=" + payment.getRepeatMonthDay()); + URL url = new URL(settings.getUrl() + "/repeatingpayment?secret=" + Helpers.getURLEncodedString(settings.getSecret()) + + "&amount=" + payment.getAmount() + + "&date=" + payment.getDate() + + "&categoryID=" + payment.getCategoryID() + + "&name=" + Helpers.getURLEncodedString(payment.getName()) + + "&repeatInterval=" + payment.getRepeatInterval() + + "&repeatEndDate=" + repeatEndDate + + "&repeatMonthDay=" + payment.getRepeatMonthDay() + + "&description=" + Helpers.getURLEncodedString(payment.getDescription())); HttpsURLConnection httpsCon = (HttpsURLConnection)url.openConnection(); httpsCon.setRequestMethod("POST"); httpsCon.setDoInput(true); diff --git a/src/de/deadlocker8/budgetmaster/ui/Controller.java b/src/de/deadlocker8/budgetmaster/ui/Controller.java index c6b59b2e80a6b1f7af5632cb08b3b642b67abef1..c70f4fd819f9fcafa3eade3d5e5b974c086aa11a 100644 --- a/src/de/deadlocker8/budgetmaster/ui/Controller.java +++ b/src/de/deadlocker8/budgetmaster/ui/Controller.java @@ -295,7 +295,7 @@ public class Controller implements Refreshable { int rest = connection.getRestForAllPreviousMonths(currentDate.getYear(), currentDate.getMonthOfYear()); //categoryID 2 = Rest - payments.add(new NormalPayment(-1, rest, currentDate.withDayOfMonth(1).toString("yyyy-MM-dd"), 2, "Übertrag")); + payments.add(new NormalPayment(-1, rest, currentDate.withDayOfMonth(1).toString("yyyy-MM-dd"), 2, "Übertrag", "")); } categoryHandler = new CategoryHandler(connection.getCategories()); diff --git a/src/de/deadlocker8/budgetmaster/ui/NewPaymentController.java b/src/de/deadlocker8/budgetmaster/ui/NewPaymentController.java index 86b7357c0e8e11b66a04c1bb902d2e5abaae5a4f..433905634a0d40161be6e58ff583f32e3dff53bf 100644 --- a/src/de/deadlocker8/budgetmaster/ui/NewPaymentController.java +++ b/src/de/deadlocker8/budgetmaster/ui/NewPaymentController.java @@ -26,6 +26,7 @@ import javafx.scene.control.Label; import javafx.scene.control.RadioButton; import javafx.scene.control.Spinner; import javafx.scene.control.SpinnerValueFactory; +import javafx.scene.control.TextArea; import javafx.scene.control.TextField; import javafx.scene.control.ToggleGroup; import javafx.scene.paint.Color; @@ -49,6 +50,7 @@ public class NewPaymentController @FXML private RadioButton radioButtonPeriod; @FXML private RadioButton radioButtonDay; @FXML private Label labelText1, labelText2, labelText3; + @FXML private TextArea textArea; private Stage stage; private Controller controller; @@ -121,7 +123,14 @@ public class NewPaymentController ArrayList<Category> categories = connection.getCategories(); if(categories != null) { - comboBoxCategory.getItems().addAll(categories); + for(Category currentCategory : categories) + { + if(currentCategory.getID() != 2) + { + comboBoxCategory.getItems().add(currentCategory); + } + } + } } catch(Exception e) @@ -160,6 +169,7 @@ public class NewPaymentController textFieldAmount.setText(Helpers.NUMBER_FORMAT.format(Math.abs(payment.getAmount()/100.0)).replace(".", ",")); comboBoxCategory.setValue(controller.getCategoryHandler().getCategory(payment.getCategoryID())); datePicker.setValue(LocalDate.parse(payment.getDate())); + textArea.setText(payment.getDescription()); if(payment instanceof RepeatingPaymentEntry) { @@ -230,6 +240,13 @@ public class NewPaymentController { amount = -amount; } + + String description = textArea.getText(); + if(description.length() > 150) + { + AlertGenerator.showAlert(AlertType.WARNING, "Warnung", "", "Die Notiz darf maximal 150 Zeichen lang sein.", controller.getIcon(), controller.getStage(), null, false); + return; + } int repeatingInterval = 0; int repeatingDay = 0; @@ -254,13 +271,13 @@ public class NewPaymentController { AlertGenerator.showAlert(AlertType.WARNING, "Warnung", "", "Das Enddatum darf zeitlich nicht vor dem Datum der Zahlung liegen.", controller.getIcon(), controller.getStage(), null, false); return; - } + } if(edit) { try { - RepeatingPayment newPayment = new RepeatingPayment(-1, amount, Helpers.getDateString(date), comboBoxCategory.getValue().getID(), name, repeatingInterval, Helpers.getDateString(datePickerEnddate.getValue()), repeatingDay); + RepeatingPayment newPayment = new RepeatingPayment(-1, amount, Helpers.getDateString(date), comboBoxCategory.getValue().getID(), name, description, repeatingInterval, Helpers.getDateString(datePickerEnddate.getValue()), repeatingDay); ServerConnection connection = new ServerConnection(controller.getSettings()); if(payment instanceof NormalPayment) @@ -281,7 +298,7 @@ public class NewPaymentController } else { - RepeatingPayment newPayment = new RepeatingPayment(-1, amount, Helpers.getDateString(date), comboBoxCategory.getValue().getID(), name, repeatingInterval,Helpers.getDateString(datePickerEnddate.getValue()), repeatingDay); + RepeatingPayment newPayment = new RepeatingPayment(-1, amount, Helpers.getDateString(date), comboBoxCategory.getValue().getID(), name, description, repeatingInterval,Helpers.getDateString(datePickerEnddate.getValue()), repeatingDay); try { ServerConnection connection = new ServerConnection(controller.getSettings()); @@ -298,7 +315,7 @@ public class NewPaymentController { if(edit) { - NormalPayment newPayment = new NormalPayment(payment.getID(), amount, Helpers.getDateString(date), comboBoxCategory.getValue().getID(), name); + NormalPayment newPayment = new NormalPayment(payment.getID(), amount, Helpers.getDateString(date), comboBoxCategory.getValue().getID(), name, description); try { ServerConnection connection = new ServerConnection(controller.getSettings()); @@ -321,7 +338,7 @@ public class NewPaymentController } else { - NormalPayment newPayment = new NormalPayment(-1, amount, Helpers.getDateString(date), comboBoxCategory.getValue().getID(), name); + NormalPayment newPayment = new NormalPayment(-1, amount, Helpers.getDateString(date), comboBoxCategory.getValue().getID(), name, description); try { ServerConnection connection = new ServerConnection(controller.getSettings()); @@ -380,6 +397,4 @@ public class NewPaymentController comboBoxRepeatingDay.setDisable(selected); labelText3.setDisable(selected); } - - } \ No newline at end of file diff --git a/src/de/deadlocker8/budgetmaster/ui/NewPaymentGUI.fxml b/src/de/deadlocker8/budgetmaster/ui/NewPaymentGUI.fxml index 2ea7a4d4dbdc220d59a969c037b3b7b372539c74..9235231a6402291bd989eb171cb5cfe6d0d201aa 100644 --- a/src/de/deadlocker8/budgetmaster/ui/NewPaymentGUI.fxml +++ b/src/de/deadlocker8/budgetmaster/ui/NewPaymentGUI.fxml @@ -9,15 +9,16 @@ <?import javafx.scene.control.RadioButton?> <?import javafx.scene.control.Separator?> <?import javafx.scene.control.Spinner?> +<?import javafx.scene.control.TextArea?> <?import javafx.scene.control.TextField?> <?import javafx.scene.layout.AnchorPane?> <?import javafx.scene.layout.HBox?> <?import javafx.scene.layout.VBox?> <?import javafx.scene.text.Font?> -<AnchorPane prefHeight="356.0" prefWidth="450.0" xmlns="http://javafx.com/javafx/8.0.60" xmlns:fx="http://javafx.com/fxml/1" fx:controller="de.deadlocker8.budgetmaster.ui.NewPaymentController"> +<AnchorPane prefHeight="600.0" prefWidth="450.0" xmlns="http://javafx.com/javafx/8.0.60" xmlns:fx="http://javafx.com/fxml/1" fx:controller="de.deadlocker8.budgetmaster.ui.NewPaymentController"> <children> - <VBox prefHeight="273.0" prefWidth="465.0" spacing="25.0" AnchorPane.bottomAnchor="14.0" AnchorPane.leftAnchor="14.0" AnchorPane.rightAnchor="14.0" AnchorPane.topAnchor="14.0"> + <VBox prefHeight="273.0" prefWidth="465.0" spacing="20.0" AnchorPane.bottomAnchor="14.0" AnchorPane.leftAnchor="14.0" AnchorPane.rightAnchor="14.0" AnchorPane.topAnchor="14.0"> <children> <HBox alignment="CENTER_LEFT" prefHeight="30.0" prefWidth="465.0"> <children> @@ -73,7 +74,26 @@ <DatePicker fx:id="datePicker" maxWidth="1.7976931348623157E308" prefHeight="29.0" HBox.hgrow="ALWAYS" /> </children> </HBox> - <VBox spacing="20.0"> + <HBox alignment="CENTER_LEFT" maxHeight="1.7976931348623157E308" prefWidth="422.0" VBox.vgrow="ALWAYS"> + <children> + <VBox alignment="CENTER_LEFT"> + <children> + <Label prefHeight="29.0" prefWidth="125.0" text="Notiz:"> + <font> + <Font name="System Bold" size="14.0" /> + </font> + </Label> + <Label prefHeight="29.0" prefWidth="125.0" text="(max. 150 Zeichen)"> + <font> + <Font size="11.0" /> + </font> + </Label> + </children> + </VBox> + <TextArea fx:id="textArea" maxWidth="1.7976931348623157E308" prefHeight="37.0" prefWidth="240.0" HBox.hgrow="ALWAYS" /> + </children> + </HBox> + <VBox prefHeight="214.0" prefWidth="422.0" spacing="20.0"> <children> <HBox alignment="CENTER"> <children> diff --git a/src/de/deadlocker8/budgetmaster/ui/PaymentController.java b/src/de/deadlocker8/budgetmaster/ui/PaymentController.java index 69defde608fa9665d63054ff4e7470e4cf49522e..291ea648251df9d0b62faa172097dbb2ec20252c 100644 --- a/src/de/deadlocker8/budgetmaster/ui/PaymentController.java +++ b/src/de/deadlocker8/budgetmaster/ui/PaymentController.java @@ -217,7 +217,7 @@ public class PaymentController implements Refreshable { ServerConnection connection = new ServerConnection(controller.getSettings()); RepeatingPayment oldRepeatingPayment = connection.getRepeatingPayment(payment.getRepeatingPaymentID()); - RepeatingPayment newRepeatingPayment = new RepeatingPayment(payment.getID(), payment.getAmount(), oldRepeatingPayment.getDate(), payment.getCategoryID(), payment.getName(), payment.getRepeatInterval(), payment.getDate(), payment.getRepeatMonthDay()); + RepeatingPayment newRepeatingPayment = new RepeatingPayment(payment.getID(), payment.getAmount(), oldRepeatingPayment.getDate(), payment.getCategoryID(), payment.getName(), payment.getDescription(), payment.getRepeatInterval(), payment.getDate(), payment.getRepeatMonthDay()); connection.deleteRepeatingPayment(payment); connection.addRepeatingPayment(newRepeatingPayment); diff --git a/src/de/deadlocker8/budgetmasterserver/main/DatabaseCreator.java b/src/de/deadlocker8/budgetmasterserver/main/DatabaseCreator.java index 18f8cb2ad37ab1c6db132b0c8dfca68a1e1a4db9..7a512f12e66f69b9d9b4a4a98e7a0794ad959f34 100644 --- a/src/de/deadlocker8/budgetmasterserver/main/DatabaseCreator.java +++ b/src/de/deadlocker8/budgetmasterserver/main/DatabaseCreator.java @@ -112,7 +112,8 @@ public class DatabaseCreator "`Name` varchar(45) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT 'payment name (description)'," + "`CategoryID` int(11) DEFAULT NULL COMMENT 'category ID'," + "`Amount` int(11) DEFAULT NULL COMMENT 'amount in cents'," + - "`Date` date DEFAULT NULL COMMENT 'payment date'" + + "`Date` date DEFAULT NULL COMMENT 'payment date'," + + "`Description` varchar(150) DEFAULT NULL COMMENT 'optional description'" + ") ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;"; String query2 = "ALTER TABLE `payment` ADD PRIMARY KEY (`ID`);"; String query3 = "ALTER TABLE `payment` MODIFY `ID` int(11) NOT NULL AUTO_INCREMENT COMMENT 'ID';"; @@ -193,6 +194,7 @@ public class DatabaseCreator "`CategoryID` int(11) DEFAULT NULL COMMENT 'category ID'," + "`Amount` int(11) DEFAULT NULL COMMENT 'amount in cents'," + "`Date` date DEFAULT NULL COMMENT 'payment date'," + + "`Description` varchar(150) DEFAULT NULL COMMENT 'optional description'," + "`RepeatInterval` int(11) DEFAULT NULL COMMENT 'repeat interval in days'," + "`RepeatEndDate` date DEFAULT NULL COMMENT 'repeat end date'," + "`RepeatMonthDay` int(11) DEFAULT NULL COMMENT 'day in month on which payment repeats'" + diff --git a/src/de/deadlocker8/budgetmasterserver/main/DatabaseHandler.java b/src/de/deadlocker8/budgetmasterserver/main/DatabaseHandler.java index 266ad33db08358eaa25ce89cc61f74eb9f3bc7ab..61b8ee0401aa153b527c1fd2b34190075e333a88 100644 --- a/src/de/deadlocker8/budgetmasterserver/main/DatabaseHandler.java +++ b/src/de/deadlocker8/budgetmasterserver/main/DatabaseHandler.java @@ -263,8 +263,9 @@ public class DatabaseHandler int amount = rs.getInt("amount"); String date = rs.getString("Date"); int categoryID = rs.getInt("CategoryID"); + String description = rs.getString("Description"); - return new NormalPayment(resultID, amount, date, categoryID, name); + return new NormalPayment(resultID, amount, date, categoryID, name, description); } } catch(SQLException e) @@ -306,8 +307,9 @@ public class DatabaseHandler int amount = rs.getInt("amount"); String date = rs.getString("Date"); int categoryID = rs.getInt("CategoryID"); + String description = rs.getString("Description"); - results.add(new NormalPayment(resultID, amount, date, categoryID, name)); + results.add(new NormalPayment(resultID, amount, date, categoryID, name, description)); } } catch(SQLException e) @@ -334,7 +336,7 @@ public class DatabaseHandler public ArrayList<RepeatingPaymentEntry> getRepeatingPayments(int year, int month) { Statement stmt = null; - String query = "SELECT repeating_entry.ID, repeating_entry.RepeatingPaymentID, repeating_entry.Date, repeating_payment.Name, repeating_payment.CategoryID, repeating_payment.Amount, repeating_payment.RepeatInterval, repeating_payment.RepeatEndDate, repeating_payment.RepeatMonthDay FROM repeating_entry, repeating_payment WHERE repeating_entry.RepeatingPaymentID = repeating_payment.ID AND YEAR(repeating_entry.Date) = " + year + " AND MONTH(repeating_entry.Date) = " + month; + String query = "SELECT repeating_entry.ID, repeating_entry.RepeatingPaymentID, repeating_entry.Date, repeating_payment.Name, repeating_payment.CategoryID, repeating_payment.Amount, repeating_payment.RepeatInterval, repeating_payment.RepeatEndDate, repeating_payment.RepeatMonthDay, repeating_payment.Description FROM repeating_entry, repeating_payment WHERE repeating_entry.RepeatingPaymentID = repeating_payment.ID AND YEAR(repeating_entry.Date) = " + year + " AND MONTH(repeating_entry.Date) = " + month; ArrayList<RepeatingPaymentEntry> results = new ArrayList<>(); try @@ -347,6 +349,7 @@ public class DatabaseHandler int resultID = rs.getInt("ID"); int repeatingPaymentID = rs.getInt("repeatingPaymentID"); String name = rs.getString("Name"); + String description = rs.getString("Description"); int amount = rs.getInt("amount"); String date = rs.getString("Date"); int categoryID = rs.getInt("CategoryID"); @@ -354,7 +357,7 @@ public class DatabaseHandler String repeatEndDate = rs.getString("RepeatEndDate"); int repeatMonthDay = rs.getInt("RepeatMonthDay"); - results.add(new RepeatingPaymentEntry(resultID, repeatingPaymentID, date, amount, categoryID, name, repeatInterval, repeatEndDate, repeatMonthDay)); + results.add(new RepeatingPaymentEntry(resultID, repeatingPaymentID, date, amount, categoryID, name, description,repeatInterval, repeatEndDate, repeatMonthDay)); } } catch(SQLException e) @@ -394,13 +397,14 @@ public class DatabaseHandler int resultID = rs.getInt("ID"); String name = rs.getString("Name"); int amount = rs.getInt("amount"); - String date = rs.getString("Date"); + String date = rs.getString("Date"); + String description = rs.getString("Description"); int categoryID = rs.getInt("CategoryID"); int repeatInterval = rs.getInt("RepeatInterval"); String repeatEndDate = rs.getString("RepeatEndDate"); int repeatMonthDay = rs.getInt("RepeatMonthDay"); - results.add(new RepeatingPayment(resultID, amount, date, categoryID, name, repeatInterval, repeatEndDate, repeatMonthDay)); + results.add(new RepeatingPayment(resultID, amount, date, categoryID, name, description, repeatInterval, repeatEndDate, repeatMonthDay)); } } catch(SQLException e) @@ -481,11 +485,12 @@ public class DatabaseHandler String date = rs.getString("Date"); int categoryID = rs.getInt("CategoryID"); String name = rs.getString("Name"); + String description = rs.getString("Description"); int repeatInterval = rs.getInt("repeatInterval"); String repeatEndDate = rs.getString("repeatEndDate"); int repeatMonthDay = rs.getInt("repeatMonthDay"); - result = new RepeatingPayment(id, amount, date, categoryID, name, repeatInterval, repeatEndDate, repeatMonthDay); + result = new RepeatingPayment(id, amount, date, categoryID, name, description, repeatInterval, repeatEndDate, repeatMonthDay); } } catch(SQLException e) @@ -627,10 +632,10 @@ public class DatabaseHandler } } - public void addNormalPayment(int amount, String date, int categoryID, String name) + public void addNormalPayment(int amount, String date, int categoryID, String name, String description) { Statement stmt = null; - String query = "INSERT INTO payment (Amount, Date, CategoryID, Name) VALUES('" + amount + "' , '" + date + "' , '" + categoryID + "' , '" + name + "');"; + String query = "INSERT INTO payment (Amount, Date, CategoryID, Name, Description) VALUES('" + amount + "' , '" + date + "' , '" + categoryID + "' , '" + name + "' , '" + description + "');"; try { stmt = connection.createStatement(); @@ -655,19 +660,18 @@ public class DatabaseHandler } } - public void addRepeatingPayment(int amount, String date, int categoryID, String name, int repeatInterval, String repeatEndDate, int repeatMonthDay) + public void addRepeatingPayment(int amount, String date, int categoryID, String name, String description, int repeatInterval, String repeatEndDate, int repeatMonthDay) { Statement stmt = null; String query; //A is placeholder for empty repeatEndDate if(repeatEndDate.equals("A") || repeatEndDate == null) - { - - query = "INSERT INTO repeating_payment (Amount, Date, CategoryID, Name, RepeatInterval, RepeatEndDate, RepeatMonthDay) VALUES('" + amount + "' , '" + date + "' , '" + categoryID + "' , '" + name + "' , '" + repeatInterval + "' , NULL , '" + repeatMonthDay + "');"; + { + query = "INSERT INTO repeating_payment (Amount, Date, CategoryID, Name, RepeatInterval, RepeatEndDate, RepeatMonthDay, Description) VALUES('" + amount + "' , '" + date + "' , '" + categoryID + "' , '" + name + "' , '" + repeatInterval + "' , NULL , '" + repeatMonthDay + "' , '" + description + "');"; } else { - query = "INSERT INTO repeating_payment (Amount, Date, CategoryID, Name, RepeatInterval, RepeatEndDate, RepeatMonthDay) VALUES('" + amount + "' , '" + date + "' , '" + categoryID + "' , '" + name + "' , '" + repeatInterval + "' , '" + repeatEndDate + "' , '" + repeatMonthDay + "');"; + query = "INSERT INTO repeating_payment (Amount, Date, CategoryID, Name, RepeatInterval, RepeatEndDate, RepeatMonthDay, Description) VALUES('" + amount + "' , '" + date + "' , '" + categoryID + "' , '" + name + "' , '" + repeatInterval + "' , '" + repeatEndDate + "' , '" + repeatMonthDay + "' , '" + description + "');"; } try @@ -754,10 +758,10 @@ public class DatabaseHandler } } - public void updateNormalPayment(int ID, int amount, String date, int categoryID, String name) + public void updateNormalPayment(int ID, int amount, String date, int categoryID, String name, String description) { Statement stmt = null; - String query = "UPDATE payment SET amount = '" + amount + "', date='" + date + "', categoryID='" + categoryID + "', name='" + name + "' WHERE ID = " + ID + ";"; + String query = "UPDATE payment SET amount = '" + amount + "', date='" + date + "', categoryID='" + categoryID + "', name='" + name + "', description='" + description + "' WHERE ID = " + ID + ";"; try { stmt = connection.createStatement(); diff --git a/src/de/deadlocker8/budgetmasterserver/server/payment/normal/PaymentAdd.java b/src/de/deadlocker8/budgetmasterserver/server/payment/normal/PaymentAdd.java index 07fdabe48fea944786f0033cbbacbd7f29f2baa6..7a6bd99a68ba75c9e2a2f1f9d63ee63724359c7d 100644 --- a/src/de/deadlocker8/budgetmasterserver/server/payment/normal/PaymentAdd.java +++ b/src/de/deadlocker8/budgetmasterserver/server/payment/normal/PaymentAdd.java @@ -19,7 +19,11 @@ public class PaymentAdd implements Route @Override public Object handle(Request req, Response res) throws Exception { - if(!req.queryParams().contains("amount") || !req.queryParams().contains("date") || !req.queryParams().contains("categoryID") || !req.queryParams().contains("name")) + if(!req.queryParams().contains("amount") || + !req.queryParams().contains("date") || + !req.queryParams().contains("categoryID") || + !req.queryParams().contains("name") || + !req.queryParams().contains("description")) { halt(400, "Bad Request"); } @@ -34,7 +38,11 @@ public class PaymentAdd implements Route try { - handler.addNormalPayment(amount, req.queryMap("date").value(), categoryID, req.queryMap("name").value()); + handler.addNormalPayment(amount, + req.queryMap("date").value(), + categoryID, + req.queryMap("name").value(), + req.queryMap("description").value()); return ""; } diff --git a/src/de/deadlocker8/budgetmasterserver/server/payment/normal/PaymentUpdate.java b/src/de/deadlocker8/budgetmasterserver/server/payment/normal/PaymentUpdate.java index 36e8368dd55fd1c5bd9a6661bb685981157d1b2c..6eb56285f87f075493cb671996ad1b5f9a54de4c 100644 --- a/src/de/deadlocker8/budgetmasterserver/server/payment/normal/PaymentUpdate.java +++ b/src/de/deadlocker8/budgetmasterserver/server/payment/normal/PaymentUpdate.java @@ -19,7 +19,12 @@ public class PaymentUpdate implements Route @Override public Object handle(Request req, Response res) throws Exception { - if(!req.queryParams().contains("id") ||!req.queryParams().contains("amount") || !req.queryParams().contains("date") || !req.queryParams().contains("categoryID") || !req.queryParams().contains("name")) + if(!req.queryParams().contains("id") || + !req.queryParams().contains("amount") || + !req.queryParams().contains("date") || + !req.queryParams().contains("categoryID") || + !req.queryParams().contains("name") || + !req.queryParams().contains("description")) { halt(400, "Bad Request"); } @@ -41,7 +46,12 @@ public class PaymentUpdate implements Route try { - handler.updateNormalPayment(id, amount, req.queryMap("date").value(), categoryID, req.queryMap("name").value()); + handler.updateNormalPayment(id, + amount, + req.queryMap("date").value(), + categoryID, + req.queryMap("name").value(), + req.queryMap("description").value()); return ""; } diff --git a/src/de/deadlocker8/budgetmasterserver/server/payment/repeating/RepeatingPaymentAdd.java b/src/de/deadlocker8/budgetmasterserver/server/payment/repeating/RepeatingPaymentAdd.java index 9480cb85c99e48bcee789d5c160c99d8f0ecd49b..e55598dcfccac3b03bde656273124e49fca3fbf1 100644 --- a/src/de/deadlocker8/budgetmasterserver/server/payment/repeating/RepeatingPaymentAdd.java +++ b/src/de/deadlocker8/budgetmasterserver/server/payment/repeating/RepeatingPaymentAdd.java @@ -19,7 +19,14 @@ public class RepeatingPaymentAdd implements Route @Override public Object handle(Request req, Response res) throws Exception { - if(!req.queryParams().contains("amount") || !req.queryParams().contains("date") || !req.queryParams().contains("categoryID") || !req.queryParams().contains("name") || !req.queryParams().contains("repeatInterval") || !req.queryParams().contains("repeatEndDate") || !req.queryParams().contains("repeatMonthDay")) + if(!req.queryParams().contains("amount") || + !req.queryParams().contains("date") || + !req.queryParams().contains("categoryID") || + !req.queryParams().contains("name") || + !req.queryParams().contains("repeatInterval") || + !req.queryParams().contains("repeatEndDate") || + !req.queryParams().contains("repeatMonthDay") || + !req.queryParams().contains("description")) { halt(400, "Bad Request"); } @@ -38,7 +45,14 @@ public class RepeatingPaymentAdd implements Route try { - handler.addRepeatingPayment(amount, req.queryMap("date").value(), categoryID, req.queryMap("name").value(), repeatInterval, req.queryMap("repeatEndDate").value(), repeatMonthDay); + handler.addRepeatingPayment(amount, + req.queryMap("date").value(), + categoryID, + req.queryMap("name").value(), + req.queryMap("description").value(), + repeatInterval, + req.queryMap("repeatEndDate").value(), + repeatMonthDay); return ""; }