From: Vásáry Dániel Date: Thu, 15 Feb 2024 21:13:00 +0000 (+0100) Subject: Basic project decouple changes X-Git-Url: http://git.useribm.hu/?a=commitdiff_plain;h=dcf6e2579b51b090abd091a0daf928878e2e4e3e;p=sly-crm.git Basic project decouple changes --- diff --git a/lis-app/src/test/java/hu/user/lis/ReflectionsIT.java b/lis-app/src/test/java/hu/user/lis/ReflectionsIT.java index 38c7bc4..728b666 100644 --- a/lis-app/src/test/java/hu/user/lis/ReflectionsIT.java +++ b/lis-app/src/test/java/hu/user/lis/ReflectionsIT.java @@ -7,7 +7,6 @@ package hu.user.lis; import hu.user.lis.db.Associate; import hu.user.lis.db.Project; -import hu.user.lis.db.Treasury; import hu.user.lis.service.data.EntityDataService; import lombok.extern.log4j.Log4j2; import org.apache.commons.lang3.SerializationUtils; @@ -20,12 +19,9 @@ import org.springframework.context.annotation.ComponentScan; import org.springframework.test.context.junit4.SpringRunner; import java.util.Arrays; -import java.util.Collections; import java.util.List; import static org.assertj.core.api.Assertions.assertThat; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertTrue; @Log4j2 @@ -68,46 +64,4 @@ public class ReflectionsIT { Assertions.assertNotEquals(associate, clone); } - @Test - public void testOneToManyMemberChanged() { - Treasury treasury = Treasury.builder() - .id(1L) - .humanId("Test") - .build(); - Project project = Project.builder() - .id(1L) - .treasuries(Collections.singletonList(treasury)) - .build(); - Project clone = SerializationUtils.clone(project); - Treasury cloneTreasury = (Treasury) clone.getTreasuries().toArray()[0]; - cloneTreasury.setId(2L); - assertFalse(entityDataService.areEquals(project, clone)); - } - - @Test - public void testOneToManyMemberOrderEquals() { - Treasury treasury1 = Treasury.builder() - .id(1L) - .humanId("Test1") - .build(); - Treasury treasury2 = Treasury.builder() - .id(2L) - .humanId("Test2") - .build(); - Project project = Project.builder() - .id(1L) - .treasuries(Arrays.asList(treasury1, treasury2)) - .build(); - Project clone = SerializationUtils.clone(project); - Treasury treasury3 = Treasury.builder() - .id(1L) - .humanId("Test1") - .build(); - Treasury treasury4 = Treasury.builder() - .id(2L) - .humanId("Test2") - .build(); - clone.setTreasuries(Arrays.asList(treasury4, treasury3)); - assertTrue(entityDataService.areEquals(project, clone)); - } } diff --git a/lis-app/src/test/java/hu/user/lis/RepositoryIT.java b/lis-app/src/test/java/hu/user/lis/RepositoryIT.java index 6475371..5764995 100644 --- a/lis-app/src/test/java/hu/user/lis/RepositoryIT.java +++ b/lis-app/src/test/java/hu/user/lis/RepositoryIT.java @@ -19,7 +19,6 @@ import org.springframework.test.context.ActiveProfiles; import org.springframework.test.context.TestPropertySource; import org.springframework.test.context.junit4.SpringRunner; -import javax.persistence.EntityNotFoundException; import java.util.Arrays; import java.util.List; @@ -52,6 +51,8 @@ public class RepositoryIT { @Autowired private InvoiceRepository invoiceRepository; + @Autowired + private IncomingInvoiceRepository incomingInvoiceRepository; @Test public void testRepositoryCapabilities() { @@ -68,45 +69,13 @@ public class RepositoryIT { @Test public void listProjects() { List allItems = projectRepository.findAll(); - log.info("Found {} items", allItems.size()); - } - @Test - public void createProjectWithTreasury() { - Project project = projectService.createNew(); - project.setProjectStatus(null); + allItems.forEach(project -> { + List incomingInvoices = incomingInvoiceRepository.findAllByProjectOrderByPos(project); + log.info("Found {} items", incomingInvoices.size()); + }); - Treasury treasury = treasuryService.createNew(); - project.getTreasuries().add(treasury); - projectRepository.save(project); - - Project persistedProject = projectRepository.findById(project.getId()).orElseThrow(EntityNotFoundException::new); - assertEquals(1, persistedProject.getTreasuries().size()); - - projectRepository.deleteAll(); - } - - @Test - public void createProjectWithIncomingInvoice() { - Project project = projectService.createNew(); - project.setProjectStatus(null); - - IncomingInvoice invoice = IncomingInvoice.builder() - .incoming(true) - .planned(true) - .currency(Currency.HUF) - .netAmount(1) - .grossAmount(1) - .vatAmount(0.5) - .build(); - project.getIncomingInvoices().add(invoice); - projectRepository.save(project); - - Project persistedProject = projectRepository.findById(project.getId()).orElseThrow(EntityNotFoundException::new); - assertEquals(1, persistedProject.getIncomingInvoices().size()); - assertEquals(0, persistedProject.getOutgoingInvoices().size()); - - projectRepository.deleteAll(); + log.info("Found {} items", allItems.size()); } @Test diff --git a/lis-db/src/main/java/hu/user/lis/db/Invoice.java b/lis-db/src/main/java/hu/user/lis/db/Invoice.java index 8c5fe92..00990ea 100644 --- a/lis-db/src/main/java/hu/user/lis/db/Invoice.java +++ b/lis-db/src/main/java/hu/user/lis/db/Invoice.java @@ -57,4 +57,5 @@ public class Invoice extends IdEntity { private String technicalId; + private int pos; } diff --git a/lis-db/src/main/java/hu/user/lis/db/Project.java b/lis-db/src/main/java/hu/user/lis/db/Project.java index daab3ae..49d9a22 100644 --- a/lis-db/src/main/java/hu/user/lis/db/Project.java +++ b/lis-db/src/main/java/hu/user/lis/db/Project.java @@ -8,10 +8,10 @@ import lombok.Setter; import lombok.experimental.SuperBuilder; import org.hibernate.annotations.Fetch; import org.hibernate.annotations.FetchMode; -import org.hibernate.annotations.Where; -import javax.persistence.*; -import java.util.List; +import javax.persistence.Entity; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; @Getter @Setter @@ -30,28 +30,28 @@ public class Project extends IdEntity { @JsonIncludeProperties({"id"}) private Partner partner; - @OneToMany(targetEntity = IncomingInvoice.class, cascade = CascadeType.ALL, fetch = FetchType.EAGER) - @JoinColumn(name = "project_id", referencedColumnName = "id") - @Where(clause = "incoming=1") - @Fetch(FetchMode.JOIN) - @OrderColumn(name = "pos") - @JsonIncludeProperties({"id"}) - private List incomingInvoices; - - @OneToMany(targetEntity = OutgoingInvoice.class, cascade = CascadeType.ALL, fetch = FetchType.EAGER) - @JoinColumn(name = "project_id", referencedColumnName = "id") - @Where(clause = "incoming=0") - @Fetch(FetchMode.JOIN) - @OrderColumn(name = "pos") - @JsonIncludeProperties({"id"}) - private List outgoingInvoices; - - @OneToMany(targetEntity = Treasury.class, cascade = CascadeType.ALL, fetch = FetchType.EAGER, orphanRemoval = true) - @JoinColumn(name = "project_id", referencedColumnName = "id") - @Fetch(FetchMode.JOIN) - @OrderColumn(name = "pos") - @JsonIncludeProperties({"id"}) - private List treasuries; +// @OneToMany(targetEntity = IncomingInvoice.class, cascade = CascadeType.ALL, fetch = FetchType.EAGER) +// @JoinColumn(name = "project_id", referencedColumnName = "id") +// @Where(clause = "incoming=1") +// @Fetch(FetchMode.JOIN) +// @OrderColumn(name = "pos") +// @JsonIncludeProperties({"id"}) +// private List incomingInvoices; +// +// @OneToMany(targetEntity = OutgoingInvoice.class, cascade = CascadeType.ALL, fetch = FetchType.EAGER) +// @JoinColumn(name = "project_id", referencedColumnName = "id") +// @Where(clause = "incoming=0") +// @Fetch(FetchMode.JOIN) +// @OrderColumn(name = "pos") +// @JsonIncludeProperties({"id"}) +// private List outgoingInvoices; +// +// @OneToMany(targetEntity = Treasury.class, cascade = CascadeType.ALL, fetch = FetchType.EAGER, orphanRemoval = true) +// @JoinColumn(name = "project_id", referencedColumnName = "id") +// @Fetch(FetchMode.JOIN) +// @OrderColumn(name = "pos") +// @JsonIncludeProperties({"id"}) +// private List treasuries; private String name; diff --git a/lis-db/src/main/java/hu/user/lis/db/Treasury.java b/lis-db/src/main/java/hu/user/lis/db/Treasury.java index a0adcd7..600b6ed 100644 --- a/lis-db/src/main/java/hu/user/lis/db/Treasury.java +++ b/lis-db/src/main/java/hu/user/lis/db/Treasury.java @@ -41,4 +41,5 @@ public class Treasury extends IdEntity { private String technicalId; + private int pos; } diff --git a/lis-db/src/main/java/hu/user/lis/db/repository/IncomingInvoiceRepository.java b/lis-db/src/main/java/hu/user/lis/db/repository/IncomingInvoiceRepository.java new file mode 100644 index 0000000..b9da357 --- /dev/null +++ b/lis-db/src/main/java/hu/user/lis/db/repository/IncomingInvoiceRepository.java @@ -0,0 +1,13 @@ +package hu.user.lis.db.repository; + +import hu.user.lis.db.IncomingInvoice; +import hu.user.lis.db.Project; +import org.springframework.data.jpa.repository.JpaRepository; + +import java.util.List; + +public interface IncomingInvoiceRepository extends JpaRepository { + + List findAllByProjectOrderByPos(Project project); + +} diff --git a/lis-db/src/main/java/hu/user/lis/db/repository/TreasuryRepository.java b/lis-db/src/main/java/hu/user/lis/db/repository/TreasuryRepository.java index 13a16c2..54d64cc 100644 --- a/lis-db/src/main/java/hu/user/lis/db/repository/TreasuryRepository.java +++ b/lis-db/src/main/java/hu/user/lis/db/repository/TreasuryRepository.java @@ -1,8 +1,13 @@ package hu.user.lis.db.repository; +import hu.user.lis.db.Project; import hu.user.lis.db.Treasury; import org.springframework.data.jpa.repository.JpaRepository; +import java.util.List; + public interface TreasuryRepository extends JpaRepository { + List findAllByProjectOrderByPos(Project project); + } diff --git a/lis-service/src/main/java/hu/user/lis/service/api/ProjectApi.java b/lis-service/src/main/java/hu/user/lis/service/api/ProjectApi.java index e1827be..edb3135 100644 --- a/lis-service/src/main/java/hu/user/lis/service/api/ProjectApi.java +++ b/lis-service/src/main/java/hu/user/lis/service/api/ProjectApi.java @@ -1,9 +1,6 @@ package hu.user.lis.service.api; -import hu.user.lis.db.IncomingInvoice; -import hu.user.lis.db.OutgoingInvoice; import hu.user.lis.db.Project; -import hu.user.lis.db.Treasury; import hu.user.lis.db.repository.InvoiceRepository; import hu.user.lis.db.repository.ProjectRepository; import hu.user.lis.db.repository.TreasuryRepository; @@ -14,7 +11,6 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import java.util.List; -import java.util.Objects; @Log4j2 @RestController @@ -41,29 +37,26 @@ public class ProjectApi extends DbApi entities) { - entities.forEach(p -> { - List incomingInvoices = p.getIncomingInvoices(); - if (Objects.nonNull(incomingInvoices)) { - incomingInvoices.forEach(i -> { -// i.setProject(p); - invoiceRepository.save(i); - }); - } - - List outgoingInvoices = p.getOutgoingInvoices(); - if (Objects.nonNull(outgoingInvoices)) { - outgoingInvoices.forEach(i -> { -// i.setProject(p); - invoiceRepository.save(i); - }); - } - - List treasuries = p.getTreasuries(); - treasuries.forEach(t -> { -// t.setProject(p); - treasuryRepository.save(t); - }); - }); +// entities.forEach(p -> { +// List incomingInvoices = p.getIncomingInvoices(); +// if (Objects.nonNull(incomingInvoices)) { +// incomingInvoices.forEach(i -> { +// invoiceRepository.save(i); +// }); +// } +// +// List outgoingInvoices = p.getOutgoingInvoices(); +// if (Objects.nonNull(outgoingInvoices)) { +// outgoingInvoices.forEach(i -> { +// invoiceRepository.save(i); +// }); +// } +// +// List treasuries = p.getTreasuries(); +// treasuries.forEach(t -> { +// treasuryRepository.save(t); +// }); +// }); } } diff --git a/lis-service/src/main/java/hu/user/lis/service/data/ProjectServiceImpl.java b/lis-service/src/main/java/hu/user/lis/service/data/ProjectServiceImpl.java index e6518b3..529c85d 100644 --- a/lis-service/src/main/java/hu/user/lis/service/data/ProjectServiceImpl.java +++ b/lis-service/src/main/java/hu/user/lis/service/data/ProjectServiceImpl.java @@ -64,7 +64,7 @@ public class ProjectServiceImpl extends DataServiceImpl implements Proj .projectStatus(projectStatus) // .incomingInvoices(new HashSet<>()) // .outgoingInvoices(new HashSet<>()) - .treasuries(new ArrayList<>()) +// .treasuries(new ArrayList<>()) .active(true) .build(); } @@ -105,7 +105,7 @@ public class ProjectServiceImpl extends DataServiceImpl implements Proj .partner(partner) // .incomingInvoices(invoiceService.getRandom(true)) // .outgoingInvoices(invoiceService.getRandom(false)) - .treasuries(new ArrayList<>()) +// .treasuries(new ArrayList<>()) .build(); result.add(entity); } diff --git a/lis-service/src/main/java/hu/user/lis/service/dataimport/IncomingInvoiceXlsProcessor.java b/lis-service/src/main/java/hu/user/lis/service/dataimport/IncomingInvoiceXlsProcessor.java index af838e0..c93dc15 100644 --- a/lis-service/src/main/java/hu/user/lis/service/dataimport/IncomingInvoiceXlsProcessor.java +++ b/lis-service/src/main/java/hu/user/lis/service/dataimport/IncomingInvoiceXlsProcessor.java @@ -2,7 +2,6 @@ package hu.user.lis.service.dataimport; import hu.user.lis.db.IncomingInvoice; import hu.user.lis.db.InvoiceStatus; -import hu.user.lis.db.Project; import hu.user.lis.db.repository.InvoiceRepository; import hu.user.lis.db.repository.ProjectRepository; import hu.user.lis.service.dataimport.mapper.InvoiceXlsMapper; @@ -11,7 +10,6 @@ import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; -import java.util.ArrayList; import java.util.Map; import java.util.Objects; @@ -51,14 +49,14 @@ public class IncomingInvoiceXlsProcessor extends XlsProcessor { @Override protected void process(IncomingInvoice entity) { invoiceRepository.save(entity); - Project project = entity.getProject(); - if (Objects.nonNull(project)) { - if (Objects.isNull(project.getIncomingInvoices())) { - project.setIncomingInvoices(new ArrayList<>()); - } - project.getIncomingInvoices().add(entity); - projectRepository.save(project); - } +// Project project = entity.getProject(); +// if (Objects.nonNull(project)) { +// if (Objects.isNull(project.getIncomingInvoices())) { +// project.setIncomingInvoices(new ArrayList<>()); +// } +// project.getIncomingInvoices().add(entity); +// projectRepository.save(project); +// } log.info("Incoming invoice added: {}", entity.getHumanId()); } diff --git a/lis-service/src/main/java/hu/user/lis/service/dataimport/OutgoingInvoiceXlsProcessor.java b/lis-service/src/main/java/hu/user/lis/service/dataimport/OutgoingInvoiceXlsProcessor.java index 94ad14c..007eb74 100644 --- a/lis-service/src/main/java/hu/user/lis/service/dataimport/OutgoingInvoiceXlsProcessor.java +++ b/lis-service/src/main/java/hu/user/lis/service/dataimport/OutgoingInvoiceXlsProcessor.java @@ -2,7 +2,6 @@ package hu.user.lis.service.dataimport; import hu.user.lis.db.InvoiceStatus; import hu.user.lis.db.OutgoingInvoice; -import hu.user.lis.db.Project; import hu.user.lis.db.repository.InvoiceRepository; import hu.user.lis.db.repository.ProjectRepository; import hu.user.lis.service.dataimport.mapper.InvoiceXlsMapper; @@ -11,7 +10,6 @@ import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; -import java.util.ArrayList; import java.util.Map; import java.util.Objects; @@ -50,14 +48,14 @@ public class OutgoingInvoiceXlsProcessor extends XlsProcessor { @Override protected void process(OutgoingInvoice entity) { invoiceRepository.save(entity); - Project project = entity.getProject(); - if (Objects.nonNull(project)) { - if (Objects.isNull(project.getOutgoingInvoices())) { - project.setOutgoingInvoices(new ArrayList<>()); - } - project.getOutgoingInvoices().add(entity); - projectRepository.save(project); - } +// Project project = entity.getProject(); +// if (Objects.nonNull(project)) { +// if (Objects.isNull(project.getOutgoingInvoices())) { +// project.setOutgoingInvoices(new ArrayList<>()); +// } +// project.getOutgoingInvoices().add(entity); +// projectRepository.save(project); +// } log.info("Outgoing invoice added: {}", entity.getHumanId()); } diff --git a/lis-ui/src/main/java/hu/user/lis/ui/data/IncomeMarginsDataModel.java b/lis-ui/src/main/java/hu/user/lis/ui/data/IncomeMarginsDataModel.java index 78c4c20..75eaa93 100644 --- a/lis-ui/src/main/java/hu/user/lis/ui/data/IncomeMarginsDataModel.java +++ b/lis-ui/src/main/java/hu/user/lis/ui/data/IncomeMarginsDataModel.java @@ -15,24 +15,21 @@ import java.util.stream.Collectors; @Log4j2 @Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE) public class IncomeMarginsDataModel extends ArrayList { - public void recalculate(Project project, ServiceRecordsDataModel serviceRecordsDataModel) { + public void recalculate(List incomingInvoices, List outgoingInvoices, List treasuries, ServiceRecordsDataModel serviceRecordsDataModel) { clear(); - Map balances = new HashMap<>(); - List outgoingInvoices = project.getOutgoingInvoices(); + Map balances = new EnumMap<>(Currency.class); if (Objects.nonNull(outgoingInvoices)) { for (Invoice invoice : outgoingInvoices) { addBalance(balances, invoice.getCurrency(), invoice.getNetAmount()); } } - List incomingInvoices = project.getIncomingInvoices(); if (Objects.nonNull(incomingInvoices)) { for (Invoice invoice : incomingInvoices) { substractBalance(balances, invoice.getCurrency(), invoice.getNetAmount()); } } - List treasuries = project.getTreasuries(); if (Objects.nonNull(treasuries)) { for (Treasury treasury : treasuries) { substractBalance(balances, treasury.getSellCurrency(), treasury.getSellAmount()); diff --git a/lis-ui/src/main/java/hu/user/lis/ui/data/InvoiceDataModel.java b/lis-ui/src/main/java/hu/user/lis/ui/data/InvoiceDataModel.java index a9e3d9d..f5bc3c7 100644 --- a/lis-ui/src/main/java/hu/user/lis/ui/data/InvoiceDataModel.java +++ b/lis-ui/src/main/java/hu/user/lis/ui/data/InvoiceDataModel.java @@ -8,7 +8,6 @@ import hu.user.lis.db.repository.InvoiceRepository; import hu.user.lis.service.data.EntityDataService; import hu.user.lis.service.data.EntityDocumentAction; import hu.user.lis.service.data.EntityDocumentService; -import hu.user.lis.service.data.InvoiceService; import lombok.extern.log4j.Log4j2; import org.apache.commons.lang3.RandomStringUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -22,9 +21,6 @@ import java.util.List; @Log4j2 public class InvoiceDataModel { - @Autowired - InvoiceService invoiceService; - @Autowired InvoiceRepository invoiceRepository; diff --git a/lis-ui/src/main/java/hu/user/lis/ui/data/ProjectsDataModel.java b/lis-ui/src/main/java/hu/user/lis/ui/data/ProjectsDataModel.java index 1fbd6e3..278b472 100644 --- a/lis-ui/src/main/java/hu/user/lis/ui/data/ProjectsDataModel.java +++ b/lis-ui/src/main/java/hu/user/lis/ui/data/ProjectsDataModel.java @@ -1,9 +1,9 @@ package hu.user.lis.ui.data; -import hu.user.lis.db.Project; -import hu.user.lis.db.ProjectStatus; +import hu.user.lis.db.*; import hu.user.lis.db.repository.InvoiceRepository; import hu.user.lis.db.repository.ProjectRepository; +import hu.user.lis.db.repository.TreasuryRepository; import hu.user.lis.service.data.EntityDataService; import hu.user.lis.ui.data.common.CachedSpringDataModel; import lombok.extern.log4j.Log4j2; @@ -17,7 +17,6 @@ import org.zkoss.zul.FieldComparator; import javax.persistence.EntityNotFoundException; import java.text.DecimalFormat; import java.time.Year; -import java.util.ArrayList; import java.util.List; import java.util.Objects; @@ -31,6 +30,9 @@ public class ProjectsDataModel extends CachedSpringDataModel { @Autowired InvoiceRepository invoiceRepository; + @Autowired + TreasuryRepository treasuryRepository; + @Autowired ProjectStatusDataModel projectStatusDataModel; @@ -87,9 +89,6 @@ public class ProjectsDataModel extends CachedSpringDataModel { ProjectStatus projectStatus = projectStatusDataModel.getDefault(); return Project.builder() .projectStatus(projectStatus) - .incomingInvoices(new ArrayList<>()) - .outgoingInvoices(new ArrayList<>()) - .treasuries(new ArrayList<>()) .active(true) .build(); } @@ -121,4 +120,17 @@ public class ProjectsDataModel extends CachedSpringDataModel { public void delete(Project selectedEntity) { projectRepository.delete(selectedEntity); } + + + public List getIncomingInvoices(Project project) { + return null; + } + + public List getOutgoingInvoices(Project project) { + return null; + } + + public List getTreasuries(Project project) { + return null; + } } diff --git a/lis-ui/src/main/java/hu/user/lis/ui/editor/ProjectEditorModel.java b/lis-ui/src/main/java/hu/user/lis/ui/editor/ProjectEditorModel.java index 91b4fdd..431ee1d 100644 --- a/lis-ui/src/main/java/hu/user/lis/ui/editor/ProjectEditorModel.java +++ b/lis-ui/src/main/java/hu/user/lis/ui/editor/ProjectEditorModel.java @@ -27,16 +27,18 @@ import org.zkoss.zk.ui.util.Notification; import org.zkoss.zul.Panel; import org.zkoss.zul.Window; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Objects; +import java.util.*; @Log4j2 public class ProjectEditorModel extends EntityEditorModel { private final Map> invoiceDocumentActions = new HashMap<>(); private final Map> treasuryDocumentActions = new HashMap<>(); - + @Getter + private final List incomingInvoices = new ArrayList<>(); + @Getter + private final List outgoingInvoices = new ArrayList<>(); + @Getter + private final List treasuries = new ArrayList<>(); @Getter @Setter @WireVariable @@ -82,7 +84,6 @@ public class ProjectEditorModel extends EntityEditorModel { private String partialAssociateName; @WireVariable private ProjectFormValidator projectFormValidator; - @WireVariable private EntityDocumentService entityDocumentService; @@ -112,11 +113,12 @@ public class ProjectEditorModel extends EntityEditorModel { initAssociates(); serviceRecordsDataModel.search(getFormDocument(), true); getEntitySelectorRouter().configureSelector(Partner.class, getFormDocument(), "partner"); - incomeMarginsDataModel.recalculate(getFormDocument(), serviceRecordsDataModel); + incomeMarginsDataModel.recalculate(incomingInvoices, outgoingInvoices, treasuries, serviceRecordsDataModel); } - private void initDocuments(Object data) { + // @Transactional + public void initDocuments(Object data) { if (Objects.isNull(data)) { setFormDocument(projectsDataModel.createNew()); getFormDocument().setHumanId(projectsDataModel.generateHumanId()); @@ -134,10 +136,9 @@ public class ProjectEditorModel extends EntityEditorModel { public void saveProject(Component notif) { boolean notify = Objects.isNull(getFormDocument().getId()); - Project project = projectsDataModel.save(getFormDocument()); - project.getIncomingInvoices().forEach(this::updateInvoiceFileChanges); - project.getOutgoingInvoices().forEach(this::updateInvoiceFileChanges); - project.getTreasuries().forEach(this::updateTreasuryFileChanges); + incomingInvoices.forEach(this::updateInvoiceFileChanges); + incomingInvoices.forEach(this::updateInvoiceFileChanges); + treasuries.forEach(this::updateTreasuryFileChanges); if (notify) { String msg = String.format("Sikeres projekt létrehozás %s azonosítóval.", getFormDocument().getHumanId()); Notification.show(msg, "info", notif, "after_start", 3000, true); @@ -199,7 +200,7 @@ public class ProjectEditorModel extends EntityEditorModel { private void incomingAdded(SaveEntityEvent event) { if (event.isSave()) { IncomingInvoice modifiedEntity = event.getData(); - getFormDocument().getIncomingInvoices().add(modifiedEntity); + incomingInvoices.add(modifiedEntity); selectedIncomingInvoice = modifiedEntity; invoiceDocumentActions.put(modifiedEntity.getTechnicalId(), event.withAttachment().getActions()); validate(); @@ -210,7 +211,6 @@ public class ProjectEditorModel extends EntityEditorModel { private void incomingModified(SaveEntityEvent event) { if (event.isSave()) { - List incomingInvoices = getFormDocument().getIncomingInvoices(); incomingInvoices.remove(selectedIncomingInvoice); IncomingInvoice modifiedEntity = event.getData(); incomingInvoices.add(modifiedEntity); @@ -226,7 +226,7 @@ public class ProjectEditorModel extends EntityEditorModel { public void onRemoveIncoming() { if (Objects.nonNull(selectedIncomingInvoice)) { invoiceDocumentActions.remove(selectedIncomingInvoice.getTechnicalId()); - getFormDocument().getIncomingInvoices().remove(selectedIncomingInvoice); + incomingInvoices.remove(selectedIncomingInvoice); selectedIncomingInvoice = null; validate(); BindUtils.postNotifyChange(this, "selectedIncomingInvoice"); @@ -250,7 +250,7 @@ public class ProjectEditorModel extends EntityEditorModel { private void outgoingAdded(SaveEntityEvent event) { if (event.isSave()) { OutgoingInvoice modifiedEntity = event.getData(); - getFormDocument().getOutgoingInvoices().add(modifiedEntity); + outgoingInvoices.add(modifiedEntity); selectedOutgoingInvoice = modifiedEntity; invoiceDocumentActions.put(modifiedEntity.getTechnicalId(), event.withAttachment().getActions()); validate(); @@ -262,7 +262,6 @@ public class ProjectEditorModel extends EntityEditorModel { private void outgoingModified(SaveEntityEvent event) { if (event.isSave()) { OutgoingInvoice modifiedEntity = event.getData(); - List outgoingInvoices = getFormDocument().getOutgoingInvoices(); outgoingInvoices.remove(selectedOutgoingInvoice); outgoingInvoices.add(modifiedEntity); selectedOutgoingInvoice = modifiedEntity; @@ -277,7 +276,7 @@ public class ProjectEditorModel extends EntityEditorModel { public void onRemoveOutgoing() { if (Objects.nonNull(selectedOutgoingInvoice)) { invoiceDocumentActions.remove(selectedOutgoingInvoice.getTechnicalId()); - getFormDocument().getOutgoingInvoices().remove(selectedOutgoingInvoice); + outgoingInvoices.remove(selectedOutgoingInvoice); selectedOutgoingInvoice = null; validate(); BindUtils.postNotifyChange(this, "selectedOutgoingInvoice"); @@ -301,7 +300,7 @@ public class ProjectEditorModel extends EntityEditorModel { private void treasuryAdded(SaveEntityEvent event) { if (event.isSave()) { Treasury modifiedEntity = event.getData(); - getFormDocument().getTreasuries().add(modifiedEntity); + treasuries.add(modifiedEntity); selectedTreasury = modifiedEntity; treasuryDocumentActions.put(modifiedEntity.getTechnicalId(), event.withAttachment().getActions()); validate(); @@ -313,7 +312,6 @@ public class ProjectEditorModel extends EntityEditorModel { private void treasuryModified(SaveEntityEvent event) { if (event.isSave()) { Treasury modifiedEntity = event.getData(); - List treasuries = getFormDocument().getTreasuries(); treasuries.remove(selectedTreasury); treasuries.add(modifiedEntity); selectedTreasury = modifiedEntity; @@ -328,7 +326,7 @@ public class ProjectEditorModel extends EntityEditorModel { public void onRemoveTreasury() { if (Objects.nonNull(selectedTreasury)) { treasuryDocumentActions.remove(selectedTreasury.getTechnicalId()); - getFormDocument().getTreasuries().remove(selectedTreasury); + treasuries.remove(selectedTreasury); selectedTreasury = null; validate(); BindUtils.postNotifyChange(this, "selectedTreasury"); @@ -394,6 +392,7 @@ public class ProjectEditorModel extends EntityEditorModel { @Override protected boolean areDifferent(Project entity) { + //TODO incomingInvoices, outgoingInvoices, treasuries ellenorzese !!!! return super.areDifferent(entity) || isAssociatesChanged() || !invoiceDocumentActions.isEmpty() || !treasuryDocumentActions.isEmpty(); } @@ -406,7 +405,7 @@ public class ProjectEditorModel extends EntityEditorModel { @Override public void validate() { super.validate(); - incomeMarginsDataModel.recalculate(getFormDocument(), serviceRecordsDataModel); + incomeMarginsDataModel.recalculate(incomingInvoices, outgoingInvoices, treasuries, serviceRecordsDataModel); } } diff --git a/lis-ui/src/main/resources/web/editor/project/incoming-invoices.zul b/lis-ui/src/main/resources/web/editor/project/incoming-invoices.zul index 375cdb4..ae4f48e 100644 --- a/lis-ui/src/main/resources/web/editor/project/incoming-invoices.zul +++ b/lis-ui/src/main/resources/web/editor/project/incoming-invoices.zul @@ -15,7 +15,7 @@ onClick="@command('onRemoveIncoming')" disabled="@load(empty vm.selectedIncomingInvoice)"/> - diff --git a/lis-ui/src/main/resources/web/editor/project/outgoing-invoices.zul b/lis-ui/src/main/resources/web/editor/project/outgoing-invoices.zul index 2a48afd..32e2f80 100644 --- a/lis-ui/src/main/resources/web/editor/project/outgoing-invoices.zul +++ b/lis-ui/src/main/resources/web/editor/project/outgoing-invoices.zul @@ -15,7 +15,7 @@ onClick="@command('onRemoveOutgoing')" disabled="@load(empty vm.selectedOutgoingInvoice)"/> - diff --git a/lis-ui/src/main/resources/web/editor/project/treasuries.zul b/lis-ui/src/main/resources/web/editor/project/treasuries.zul index 15907f8..0514fd6 100644 --- a/lis-ui/src/main/resources/web/editor/project/treasuries.zul +++ b/lis-ui/src/main/resources/web/editor/project/treasuries.zul @@ -16,7 +16,7 @@ disabled="@load(empty vm.selectedTreasury)"/> -