Skip to content
Snippets Groups Projects
Commit a146d8ce authored by Robert Goldmann's avatar Robert Goldmann
Browse files

added entity and repository for tags; added methods to add and remove tags...

added entity and repository for tags; added methods to add and remove tags from a payment to PaymentController
parent 806e5b0c
Branches
Tags
No related merge requests found
......@@ -3,9 +3,11 @@ package de.deadlocker8.budgetmaster.controller;
import de.deadlocker8.budgetmaster.entities.CategoryType;
import de.deadlocker8.budgetmaster.entities.Payment;
import de.deadlocker8.budgetmaster.entities.Settings;
import de.deadlocker8.budgetmaster.entities.Tag;
import de.deadlocker8.budgetmaster.repositories.CategoryRepository;
import de.deadlocker8.budgetmaster.repositories.PaymentRepository;
import de.deadlocker8.budgetmaster.repositories.SettingsRepository;
import de.deadlocker8.budgetmaster.repositories.TagRepository;
import de.deadlocker8.budgetmaster.services.HelpersService;
import de.deadlocker8.budgetmaster.validators.PaymentValidator;
import org.joda.time.DateTime;
......@@ -31,6 +33,9 @@ public class PaymentController extends BaseController
@Autowired
private SettingsRepository settingsRepository;
@Autowired
private TagRepository tagRepository;
@Autowired
private HelpersService helpers;
......@@ -39,6 +44,7 @@ public class PaymentController extends BaseController
{
DateTime date = getDateTimeFromCookie(cookieDate);
List<Payment> payments = getPaymentsForMonthAndYear(date.getMonthOfYear(), date.getYear());
model.addAttribute("payments", payments);
model.addAttribute("incomeSum", getIncomeSum(payments));
model.addAttribute("paymentSum", getPaymentSum(payments));
......@@ -162,4 +168,26 @@ public class PaymentController extends BaseController
return DateTime.parse(cookieDate, DateTimeFormat.forPattern("dd.MM.yy").withLocale(getSettings().getLanguage().getLocale()));
}
}
private void addTagToPayment(String name, Payment payment)
{
if(tagRepository.findByName(name) == null)
{
tagRepository.save(new Tag(name));
}
List<Payment> referringPayments = tagRepository.findByName(name).getReferringPayments();
if(referringPayments == null || !referringPayments.contains(payment))
{
payment.getTags().add(tagRepository.findByName(name));
paymentRepository.save(payment);
}
}
private void removeTagFromPayment(String name, Payment payment)
{
Tag currentTag = tagRepository.findByName(name);
currentTag.getReferringPayments().remove(payment);
tagRepository.save(currentTag);
}
}
\ No newline at end of file
......@@ -4,6 +4,8 @@ import org.joda.time.DateTime;
import org.springframework.format.annotation.DateTimeFormat;
import javax.persistence.*;
import java.util.ArrayList;
import java.util.List;
@Entity
public class Payment
......@@ -12,12 +14,18 @@ public class Payment
@GeneratedValue(strategy = GenerationType.AUTO)
private Integer ID;
private Integer amount;
@DateTimeFormat(pattern = "dd.MM.yyyy")
private DateTime date;
@ManyToOne
private Category category;
private String name;
private String description;
@ManyToMany(cascade = CascadeType.ALL)
private List<Tag> tags;
// private RepeatingDefinition repeatingDefinition;
public Payment()
......@@ -84,15 +92,15 @@ public class Payment
this.description = description;
}
// public RepeatingDefinition getRepeatingDefinition()
// {
// return repeatingDefinition;
// }
//
// public void setRepeatingDefinition(RepeatingDefinition repeatingDefinition)
// {
// this.repeatingDefinition = repeatingDefinition;
// }
public List<Tag> getTags()
{
return tags;
}
public void setTags(List<Tag> tags)
{
this.tags = tags;
}
@Override
public String toString()
......@@ -100,11 +108,11 @@ public class Payment
return "Payment{" +
"ID=" + ID +
", amount=" + amount +
", date='" + date + '\'' +
", date=" + date +
", category=" + category +
", name='" + name + '\'' +
", description='" + description + '\'' +
// ", repeatingDefinition=" + repeatingDefinition +
", tags=" + tags +
'}';
}
}
\ No newline at end of file
package de.deadlocker8.budgetmaster.entities;
import javax.persistence.*;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.util.List;
@Entity
public class Tag
{
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Integer ID;
@NotNull
@Size(min=1)
@Column(unique=true)
private String name;
@ManyToMany(mappedBy = "tags", fetch = FetchType.LAZY)
private List<Payment> referringPayments;
public Tag()
{
}
public Tag(String name)
{
this.name = name;
}
public Integer getID()
{
return ID;
}
public void setID(Integer ID)
{
this.ID = ID;
}
public String getName()
{
return name;
}
public void setName(String name)
{
this.name = name;
}
public List<Payment> getReferringPayments()
{
return referringPayments;
}
@Override
public String toString()
{
return "Tag{ID=" + ID + ", name='" + name + '}';
}
}
\ No newline at end of file
package de.deadlocker8.budgetmaster.repositories;
import de.deadlocker8.budgetmaster.entities.Tag;
import org.springframework.data.jpa.repository.JpaRepository;
public interface TagRepository extends JpaRepository<Tag, Integer>
{
Tag findByName(String name);
}
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment