From: Vásáry Dániel Date: Thu, 21 Dec 2023 10:22:35 +0000 (+0100) Subject: EDocument handling completed on import invoice X-Git-Url: http://git.useribm.hu/?a=commitdiff_plain;h=af44691f8ef172bb64e58ad66d6a6fb4f8ca9f49;p=sly-crm.git EDocument handling completed on import invoice --- diff --git a/lis-service/src/main/java/hu/user/lis/service/data/EntityDocumentService.java b/lis-service/src/main/java/hu/user/lis/service/data/EntityDocumentService.java index 4e344a4..74b6e33 100644 --- a/lis-service/src/main/java/hu/user/lis/service/data/EntityDocumentService.java +++ b/lis-service/src/main/java/hu/user/lis/service/data/EntityDocumentService.java @@ -7,6 +7,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.List; +import java.util.Objects; import java.util.stream.Collectors; @Service @@ -17,10 +18,12 @@ public class EntityDocumentService { @Transactional public void executeActions(Long referenceId, List actions) { - List idsToAttach = actions.stream().filter(EntityDocumentAction::isAttach).map(EntityDocumentAction::getDocumentId).collect(Collectors.toList()); - eDocumentRepository.attach(referenceId, idsToAttach); - List idsToRemove = actions.stream().filter(EntityDocumentAction::isDetach).map(EntityDocumentAction::getDocumentId).collect(Collectors.toList()); - eDocumentRepository.deleteAllById(idsToRemove); + if (Objects.nonNull(actions) && !actions.isEmpty()) { + List idsToAttach = actions.stream().filter(EntityDocumentAction::isAttach).map(EntityDocumentAction::getDocumentId).collect(Collectors.toList()); + eDocumentRepository.attach(referenceId, idsToAttach); + List idsToRemove = actions.stream().filter(EntityDocumentAction::isDetach).map(EntityDocumentAction::getDocumentId).collect(Collectors.toList()); + eDocumentRepository.deleteAllById(idsToRemove); + } } } diff --git a/lis-service/src/main/java/hu/user/lis/service/nav/mapper/PartnerMapper.java b/lis-service/src/main/java/hu/user/lis/service/nav/mapper/PartnerMapper.java index a7e6233..e0fba95 100644 --- a/lis-service/src/main/java/hu/user/lis/service/nav/mapper/PartnerMapper.java +++ b/lis-service/src/main/java/hu/user/lis/service/nav/mapper/PartnerMapper.java @@ -12,11 +12,12 @@ import org.mapstruct.MappingTarget; @Mapper(componentModel = "spring") public interface PartnerMapper { String ADDRESS_FORMAT = "%s %s, %s %s %s"; - String VATNR_FORMAT = "%s-%s-%s"; + String VAT_NR_FORMAT = "%s-%s-%s"; @Mapping(target = "id", ignore = true) @Mapping(target = "address", ignore = true) @Mapping(target = "name", source = "supplierName") + @Mapping(target = "shortName", source = "supplierName") @Mapping(target = "vatNr", source = "supplierTaxNumber.vatCode") @Mapping(target = "active", constant = "true") Partner toEntity(SupplierInfoType source); @@ -29,7 +30,7 @@ public interface PartnerMapper { builder.address(address); TaxNumberType supplierTaxNumber = source.getSupplierTaxNumber(); - String vatNr = String.format(VATNR_FORMAT, supplierTaxNumber.getTaxpayerId(), supplierTaxNumber.getVatCode(), + String vatNr = String.format(VAT_NR_FORMAT, supplierTaxNumber.getTaxpayerId(), supplierTaxNumber.getVatCode(), supplierTaxNumber.getCountyCode()); builder.vatNr(vatNr); } 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 bddfd37..a9e3d9d 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 @@ -6,11 +6,17 @@ import hu.user.lis.db.InvoiceStatus; import hu.user.lis.db.OutgoingInvoice; 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; import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; + +import javax.persistence.EntityNotFoundException; +import java.util.List; @Component @Log4j2 @@ -22,11 +28,18 @@ public class InvoiceDataModel { @Autowired InvoiceRepository invoiceRepository; + @Autowired + EntityDocumentService entityDocumentService; + @Autowired EntityDataService incomingInvoiceDataService; @Autowired EntityDataService outgoingInvoiceDataService; + public Invoice findById(Long id) { + return invoiceRepository.findById(id).orElseThrow(EntityNotFoundException::new); + } + public IncomingInvoice clone(IncomingInvoice entity) { return incomingInvoiceDataService.clone(entity); } @@ -45,8 +58,10 @@ public class InvoiceDataModel { return OutgoingInvoice.builder().technicalId(technicalId).status(InvoiceStatus.ACTIVE).build(); } - public void save(Invoice modifiedEntity) { + @Transactional + public void save(Invoice modifiedEntity, List actions) { invoiceRepository.save(modifiedEntity); + entityDocumentService.executeActions(modifiedEntity.getId(), actions); } public void delete(Invoice selectedIncomingInvoice) { diff --git a/lis-ui/src/main/java/hu/user/lis/ui/editor/ImportInvoiceApproveEditorModel.java b/lis-ui/src/main/java/hu/user/lis/ui/editor/ImportInvoiceApproveEditorModel.java index 8e1c4b7..64c591d 100644 --- a/lis-ui/src/main/java/hu/user/lis/ui/editor/ImportInvoiceApproveEditorModel.java +++ b/lis-ui/src/main/java/hu/user/lis/ui/editor/ImportInvoiceApproveEditorModel.java @@ -66,7 +66,7 @@ public class ImportInvoiceApproveEditorModel extends InvoiceEditorModel { } public void handleEntitySaveEvent(SaveEntityEvent event) { - if (!event.isCanceled()) { + if (event.isSave()) { getFormDocument().setPartner(event.getData()); } } @@ -79,7 +79,8 @@ public class ImportInvoiceApproveEditorModel extends InvoiceEditorModel { } else { Events.postEvent(new Event("onClose", target, ImmutableMap.of( "modifiedEntity", getFormDocument(), - "status", status + "status", status, + "actions", getEntityDocumentDataModel().getActions() ))); } } diff --git a/lis-ui/src/main/java/hu/user/lis/ui/editor/ImportInvoiceAssignEditorModel.java b/lis-ui/src/main/java/hu/user/lis/ui/editor/ImportInvoiceAssignEditorModel.java index 3c85196..b0b3aed 100644 --- a/lis-ui/src/main/java/hu/user/lis/ui/editor/ImportInvoiceAssignEditorModel.java +++ b/lis-ui/src/main/java/hu/user/lis/ui/editor/ImportInvoiceAssignEditorModel.java @@ -78,7 +78,7 @@ public class ImportInvoiceAssignEditorModel extends InvoiceEditorModel { } public void handleEntitySaveEvent(SaveEntityEvent event) { - if (!event.isCanceled()) { + if (event.isSave()) { getFormDocument().setPartner(event.getData()); } } @@ -102,7 +102,8 @@ public class ImportInvoiceAssignEditorModel extends InvoiceEditorModel { } else { Events.postEvent(new Event("onClose", target, ImmutableMap.of( "modifiedEntity", getFormDocument(), - "status", status + "status", status, + "actions", getEntityDocumentDataModel().getActions() ))); } } diff --git a/lis-ui/src/main/java/hu/user/lis/ui/editor/InvoiceEditorModel.java b/lis-ui/src/main/java/hu/user/lis/ui/editor/InvoiceEditorModel.java index 8bc0132..e9f9722 100644 --- a/lis-ui/src/main/java/hu/user/lis/ui/editor/InvoiceEditorModel.java +++ b/lis-ui/src/main/java/hu/user/lis/ui/editor/InvoiceEditorModel.java @@ -63,6 +63,11 @@ public class InvoiceEditorModel extends EntityAttachmentEditorModel { return invoiceFormValidator.validate(entity); } + @Override + protected Class getDocumentType() { + return Invoice.class; + } + @Override public void onEvent(Event evt) { if (isEventForCurrentDocument(evt)) { 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 4d642c0..a47a166 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 @@ -189,7 +189,7 @@ public class ProjectEditorModel extends EntityEditorModel { private void incomingAdded(SaveEntityEvent event) { - if (!event.isCanceled()) { + if (event.isSave()) { IncomingInvoice modifiedEntity = event.getData(); getFormDocument().getIncomingInvoices().add(modifiedEntity); selectedIncomingInvoice = modifiedEntity; @@ -201,7 +201,7 @@ public class ProjectEditorModel extends EntityEditorModel { } private void incomingModified(SaveEntityEvent event) { - if (!event.isCanceled()) { + if (event.isSave()) { List incomingInvoices = getFormDocument().getIncomingInvoices(); incomingInvoices.remove(selectedIncomingInvoice); IncomingInvoice modifiedEntity = event.getData(); @@ -244,7 +244,7 @@ public class ProjectEditorModel extends EntityEditorModel { } private void outgoingAdded(SaveEntityEvent event) { - if (!event.isCanceled()) { + if (event.isSave()) { OutgoingInvoice modifiedEntity = event.getData(); getFormDocument().getOutgoingInvoices().add(modifiedEntity); selectedOutgoingInvoice = modifiedEntity; @@ -256,7 +256,7 @@ public class ProjectEditorModel extends EntityEditorModel { } private void outgoingModified(SaveEntityEvent event) { - if (!event.isCanceled()) { + if (event.isSave()) { OutgoingInvoice modifiedEntity = event.getData(); List outgoingInvoices = getFormDocument().getOutgoingInvoices(); outgoingInvoices.remove(selectedOutgoingInvoice); @@ -294,7 +294,7 @@ public class ProjectEditorModel extends EntityEditorModel { } private void treasuryAdded(SaveEntityEvent event) { - if (!event.isCanceled()) { + if (event.isSave()) { Treasury modifiedEntity = event.getData(); getFormDocument().getTreasuries().add(modifiedEntity); selectedTreasury = modifiedEntity; @@ -305,7 +305,7 @@ public class ProjectEditorModel extends EntityEditorModel { } private void treasuryModified(SaveEntityEvent event) { - if (!event.isCanceled()) { + if (event.isSave()) { Treasury modifiedEntity = event.getData(); List treasuries = getFormDocument().getTreasuries(); treasuries.remove(selectedTreasury); diff --git a/lis-ui/src/main/java/hu/user/lis/ui/editor/ServiceRecordEditorModel.java b/lis-ui/src/main/java/hu/user/lis/ui/editor/ServiceRecordEditorModel.java index 81c8860..abed574 100644 --- a/lis-ui/src/main/java/hu/user/lis/ui/editor/ServiceRecordEditorModel.java +++ b/lis-ui/src/main/java/hu/user/lis/ui/editor/ServiceRecordEditorModel.java @@ -107,6 +107,11 @@ public class ServiceRecordEditorModel extends EntityAttachmentEditorModel getDocumentType() { + return ServiceRecord.class; + } + private List getProjectIds(List projectAssociates) { if (Objects.nonNull(projectAssociates)) { return projectAssociates.stream().map(ProjectAssociate::getProjectId).collect(Collectors.toList()); diff --git a/lis-ui/src/main/java/hu/user/lis/ui/editor/TreasuryEditorModel.java b/lis-ui/src/main/java/hu/user/lis/ui/editor/TreasuryEditorModel.java index b8dd97d..741a6cc 100644 --- a/lis-ui/src/main/java/hu/user/lis/ui/editor/TreasuryEditorModel.java +++ b/lis-ui/src/main/java/hu/user/lis/ui/editor/TreasuryEditorModel.java @@ -30,4 +30,9 @@ public class TreasuryEditorModel extends EntityAttachmentEditorModel { return treasuryFormValidator.validate(entity); } + @Override + protected Class getDocumentType() { + return Treasury.class; + } + } diff --git a/lis-ui/src/main/java/hu/user/lis/ui/editor/common/EntityAttachmentEditorModel.java b/lis-ui/src/main/java/hu/user/lis/ui/editor/common/EntityAttachmentEditorModel.java index bc659b5..2f92f77 100644 --- a/lis-ui/src/main/java/hu/user/lis/ui/editor/common/EntityAttachmentEditorModel.java +++ b/lis-ui/src/main/java/hu/user/lis/ui/editor/common/EntityAttachmentEditorModel.java @@ -14,7 +14,6 @@ import org.zkoss.bind.annotation.BindingParam; import org.zkoss.bind.annotation.Command; import org.zkoss.bind.annotation.ContextParam; import org.zkoss.bind.annotation.ContextType; -import org.zkoss.lang.Strings; import org.zkoss.zk.ui.Executions; import org.zkoss.zk.ui.event.Events; import org.zkoss.zk.ui.event.UploadEvent; @@ -23,13 +22,11 @@ import org.zkoss.zul.Messagebox; import org.zkoss.zul.Window; import java.io.Serializable; -import java.lang.reflect.ParameterizedType; -import java.lang.reflect.Type; import java.util.List; @Getter @Log4j2 -public class EntityAttachmentEditorModel extends EntityEditorModel { +public abstract class EntityAttachmentEditorModel extends EntityEditorModel { @WireVariable private EntityDocumentDataModel entityDocumentDataModel; @@ -41,7 +38,7 @@ public class EntityAttachmentEditorModel extends EntityE List actions = (List) Executions.getCurrent().getArg().get("actions"); log.info(actions); - entityDocumentDataModel.refresh((IdEntity) getFormDocument(), getDocumentType(), actions); + entityDocumentDataModel.refresh((IdEntity) getFormDocument(), getDocumentType().getSimpleName(), actions); } @Override @@ -57,7 +54,7 @@ public class EntityAttachmentEditorModel extends EntityE return; } EDocument document = EDocument.builder() - .documentType(getDocumentType()) + .documentType(getDocumentType().getSimpleName()) .file(evt.getMedia().getByteData()) .size(evt.getMedia().getByteData().length) .name(evt.getMedia().getName()) @@ -79,14 +76,7 @@ public class EntityAttachmentEditorModel extends EntityE } } - private String getDocumentType() { - String documentType = Strings.EMPTY; - Type[] actualTypeArguments = ((ParameterizedType) getClass().getGenericSuperclass()).getActualTypeArguments(); - if (actualTypeArguments.length > 0) { - documentType = ((Class) actualTypeArguments[0]).getSimpleName(); - } - return documentType; - } + protected abstract Class getDocumentType(); @Command public void onRemoveFile() { diff --git a/lis-ui/src/main/java/hu/user/lis/ui/event/SaveEntityEvent.java b/lis-ui/src/main/java/hu/user/lis/ui/event/SaveEntityEvent.java index bfe8f8a..395dc9d 100644 --- a/lis-ui/src/main/java/hu/user/lis/ui/event/SaveEntityEvent.java +++ b/lis-ui/src/main/java/hu/user/lis/ui/event/SaveEntityEvent.java @@ -14,8 +14,8 @@ public class SaveEntityEvent extends Event { return (T) super.getData(); } - public boolean isCanceled() { - return this instanceof CancelEntityEditEvent; + public boolean isSave() { + return !(this instanceof CancelEntityEditEvent); } public SaveEntityWithAttachmentEvent withAttachment() { diff --git a/lis-ui/src/main/java/hu/user/lis/ui/view/ApproveInvoicesViewModel.java b/lis-ui/src/main/java/hu/user/lis/ui/view/ApproveInvoicesViewModel.java index d70eb80..a99d893 100644 --- a/lis-ui/src/main/java/hu/user/lis/ui/view/ApproveInvoicesViewModel.java +++ b/lis-ui/src/main/java/hu/user/lis/ui/view/ApproveInvoicesViewModel.java @@ -3,10 +3,11 @@ package hu.user.lis.ui.view; import com.google.common.collect.ImmutableMap; import hu.user.lis.db.Invoice; import hu.user.lis.db.InvoiceStatus; -import hu.user.lis.db.repository.InvoiceRepository; import hu.user.lis.db.repository.PartnerRepository; +import hu.user.lis.service.data.EntityDocumentAction; import hu.user.lis.ui.Constants; import hu.user.lis.ui.data.ApproveInvoicesDataModel; +import hu.user.lis.ui.data.InvoiceDataModel; import hu.user.lis.ui.data.common.CachedSpringDataModel; import hu.user.lis.ui.editor.common.Editors; import hu.user.lis.ui.event.EventBus; @@ -30,6 +31,7 @@ import org.zkoss.zk.ui.select.annotation.WireVariable; import org.zkoss.zkplus.spring.DelegatingVariableResolver; import org.zkoss.zul.Window; +import java.util.List; import java.util.Map; import java.util.Objects; @@ -44,7 +46,7 @@ public class ApproveInvoicesViewModel extends EntityViewModel implem ProcessEventRouter processEventRouter; @WireVariable - InvoiceRepository invoiceRepository; + InvoiceDataModel invoiceDataModel; @WireVariable PartnerRepository partnerRepository; @@ -88,24 +90,23 @@ public class ApproveInvoicesViewModel extends EntityViewModel implem editorWindow.addEventListener("onClose", e -> { if (Objects.nonNull(e.getData())) { Map results = (Map) e.getData(); - Invoice modifiedEntity = (Invoice) results.get("modifiedEntity"); InvoiceImportStatus status = (InvoiceImportStatus) results.get("status"); + if (InvoiceImportStatus.NONE.equals(status)) { + return; + } + Invoice modifiedEntity = (Invoice) results.get("modifiedEntity"); + List actions = (List) results.get("actions"); + if (InvoiceImportStatus.SKIP.equals(status)) { + modifiedEntity.setStatus(InvoiceStatus.SUSPENDED); + } if (InvoiceImportStatus.APPROVE.equals(status)) { modifiedEntity.setStatus(InvoiceStatus.ACTIVE); - invoiceRepository.save(modifiedEntity); - approveInvoicesDataModel.completeTask(getSelectedEntity(), ImmutableMap.of( - "invoiceEntity", modifiedEntity, - "status", status - )); - } else { - if (InvoiceImportStatus.SKIP.equals(status)) { - modifiedEntity.setStatus(InvoiceStatus.SUSPENDED); - invoiceRepository.save(modifiedEntity); - } - approveInvoicesDataModel.completeTask(getSelectedEntity(), ImmutableMap.of( - "status", status - )); } + invoiceDataModel.save(modifiedEntity, actions); + approveInvoicesDataModel.completeTask(getSelectedEntity(), ImmutableMap.of( + "invoiceEntity", modifiedEntity, + "status", status + )); } }); editorWindow.doModal(); diff --git a/lis-ui/src/main/java/hu/user/lis/ui/view/AssignInvoicesViewModel.java b/lis-ui/src/main/java/hu/user/lis/ui/view/AssignInvoicesViewModel.java index 73aab0b..72cf5e4 100644 --- a/lis-ui/src/main/java/hu/user/lis/ui/view/AssignInvoicesViewModel.java +++ b/lis-ui/src/main/java/hu/user/lis/ui/view/AssignInvoicesViewModel.java @@ -3,9 +3,10 @@ package hu.user.lis.ui.view; import com.google.common.collect.ImmutableMap; import hu.user.lis.db.Invoice; import hu.user.lis.db.InvoiceStatus; -import hu.user.lis.db.repository.InvoiceRepository; +import hu.user.lis.service.data.EntityDocumentAction; import hu.user.lis.ui.Constants; import hu.user.lis.ui.data.AssignInvoicesDataModel; +import hu.user.lis.ui.data.InvoiceDataModel; import hu.user.lis.ui.data.common.CachedSpringDataModel; import hu.user.lis.ui.editor.common.Editors; import hu.user.lis.ui.event.EventBus; @@ -26,9 +27,9 @@ import org.zkoss.zk.ui.event.EventListener; import org.zkoss.zk.ui.select.annotation.VariableResolver; import org.zkoss.zk.ui.select.annotation.WireVariable; import org.zkoss.zkplus.spring.DelegatingVariableResolver; +import org.zkoss.zul.Messagebox; import org.zkoss.zul.Window; -import javax.persistence.EntityNotFoundException; import java.util.List; import java.util.Map; import java.util.Objects; @@ -47,7 +48,7 @@ public class AssignInvoicesViewModel extends EntityViewModel impleme WorkflowManagerService workflowManagerService; @WireVariable - InvoiceRepository invoiceRepository; + InvoiceDataModel invoiceDataModel; @WireVariable EventBus eventBus; @@ -83,36 +84,39 @@ public class AssignInvoicesViewModel extends EntityViewModel impleme List projectSuggestions = (List) getSelectedEntity().get("projectSuggestions"); Long invoiceId = (Long) getSelectedEntity().get("invoiceId"); - Invoice entity = invoiceRepository.findById(invoiceId).orElseThrow(EntityNotFoundException::new); - Map args = ImmutableMap.of("formDocument", entity, "projectSuggestions", projectSuggestions); + Invoice entity; + + try { + entity = invoiceDataModel.findById(invoiceId); + } catch (Exception e) { + Messagebox.show(e.getMessage()); + return; + } + Map args = ImmutableMap.of("formDocument", entity, "projectSuggestions", projectSuggestions); Window editorWindow = (Window) Executions.createComponents(Editors.IMPORT_INVOICE_ASSIGN, null, args); editorWindow.addEventListener("onClose", e -> { if (Objects.nonNull(e.getData())) { Map results = (Map) e.getData(); - Invoice modifiedEntity = (Invoice) results.get("modifiedEntity"); InvoiceImportStatus status = (InvoiceImportStatus) results.get("status"); - if (InvoiceImportStatus.ASSIGN.equals(status)) { - invoiceRepository.save(modifiedEntity); - assignInvoicesDataModel.completeTask(getSelectedEntity(), ImmutableMap.of( - "invoiceEntity", modifiedEntity, - "status", status - )); - } else { - if (InvoiceImportStatus.SKIP.equals(status)) { - modifiedEntity.setStatus(InvoiceStatus.SUSPENDED); - invoiceRepository.save(modifiedEntity); - } - assignInvoicesDataModel.completeTask(getSelectedEntity(), ImmutableMap.of( - "status", status - )); + if (InvoiceImportStatus.NONE.equals(status)) { + return; + } + Invoice modifiedEntity = (Invoice) results.get("modifiedEntity"); + List actions = (List) results.get("actions"); + if (InvoiceImportStatus.SKIP.equals(status)) { + modifiedEntity.setStatus(InvoiceStatus.SUSPENDED); } + invoiceDataModel.save(modifiedEntity, actions); + assignInvoicesDataModel.completeTask(getSelectedEntity(), ImmutableMap.of( + "invoiceEntity", modifiedEntity, + "status", status + )); onRefresh(); } }); editorWindow.doModal(); editorWindow.setFocus(true); - } @Override diff --git a/lis-ui/src/main/java/hu/user/lis/ui/view/AssociatesViewModel.java b/lis-ui/src/main/java/hu/user/lis/ui/view/AssociatesViewModel.java index 5714f41..afb5ede 100644 --- a/lis-ui/src/main/java/hu/user/lis/ui/view/AssociatesViewModel.java +++ b/lis-ui/src/main/java/hu/user/lis/ui/view/AssociatesViewModel.java @@ -71,7 +71,7 @@ public class AssociatesViewModel extends FilterActiveViewModel { } private void saveAssociate(SaveEntityEvent event) { - if (!event.isCanceled()) { + if (event.isSave()) { Associate modifiedEntity = event.getData(); associatesDataModel.save(modifiedEntity); refresh(); diff --git a/lis-ui/src/main/java/hu/user/lis/ui/view/ImportInvoicesSuspendedViewModel.java b/lis-ui/src/main/java/hu/user/lis/ui/view/ImportInvoicesSuspendedViewModel.java index 633309b..e7c5132 100644 --- a/lis-ui/src/main/java/hu/user/lis/ui/view/ImportInvoicesSuspendedViewModel.java +++ b/lis-ui/src/main/java/hu/user/lis/ui/view/ImportInvoicesSuspendedViewModel.java @@ -145,27 +145,19 @@ public class ImportInvoicesSuspendedViewModel extends EntityViewModel i public void onEditIncoming() { IncomingInvoice selectedIncomingInvoice = (IncomingInvoice) getSelectedEntity(); IncomingInvoice entity = invoiceDataModel.clone(selectedIncomingInvoice); - Editors.doEdit(Editors.INCOMING_INVOICE, entity, selectedIncomingInvoice, this::saveIncomingInvoice); - } - - private void saveIncomingInvoice(SaveEntityEvent event) { - if (!event.isCanceled()) { - Invoice modifiedEntity = event.getData(); - invoiceDataModel.save(modifiedEntity); - refresh(); - } + Editors.doEdit(Editors.INCOMING_INVOICE, entity, selectedIncomingInvoice, this::saveInvoice); } public void onEditOutgoing() { OutgoingInvoice selectedOutgoingInvoice = (OutgoingInvoice) getSelectedEntity(); OutgoingInvoice entity = invoiceDataModel.clone((OutgoingInvoice) getSelectedEntity()); - Editors.doEdit(Editors.OUTGOING_INVOICE, entity, selectedOutgoingInvoice, this::saveOutgoingInvoice); + Editors.doEdit(Editors.OUTGOING_INVOICE, entity, selectedOutgoingInvoice, this::saveInvoice); } - private void saveOutgoingInvoice(SaveEntityEvent event) { - if (!event.isCanceled()) { + private void saveInvoice(SaveEntityEvent event) { + if (event.isSave()) { Invoice modifiedEntity = event.getData(); - invoiceDataModel.save(modifiedEntity); + invoiceDataModel.save(modifiedEntity, event.withAttachment().getActions()); refresh(); } } diff --git a/lis-ui/src/main/java/hu/user/lis/ui/view/InvoicesViewModel.java b/lis-ui/src/main/java/hu/user/lis/ui/view/InvoicesViewModel.java index 7b3480d..292ec3c 100644 --- a/lis-ui/src/main/java/hu/user/lis/ui/view/InvoicesViewModel.java +++ b/lis-ui/src/main/java/hu/user/lis/ui/view/InvoicesViewModel.java @@ -15,6 +15,7 @@ import hu.user.lis.ui.event.SaveEntityEvent; import hu.user.lis.ui.view.common.EntityViewModel; import lombok.Getter; import lombok.extern.log4j.Log4j2; +import org.springframework.transaction.annotation.Transactional; import org.zkoss.bind.BindUtils; import org.zkoss.bind.PropertyChangeEvent; import org.zkoss.bind.annotation.*; @@ -45,10 +46,6 @@ public class InvoicesViewModel extends EntityViewModel implements Event @WireVariable private InvoiceDataModel invoiceDataModel; -// @Getter -// @WireVariable -// private DateTypeConverter dateTypeConverter; - @Init @Override public void init() { @@ -141,27 +138,20 @@ public class InvoicesViewModel extends EntityViewModel implements Event public void onEditIncoming() { IncomingInvoice selectedIncomingInvoice = (IncomingInvoice) getSelectedEntity(); IncomingInvoice entity = invoiceDataModel.clone(selectedIncomingInvoice); - Editors.doEdit(Editors.INCOMING_INVOICE, entity, selectedIncomingInvoice, this::saveIncomingInvoice); - } - - private void saveIncomingInvoice(SaveEntityEvent event) { - if (!event.isCanceled()) { - Invoice modifiedEntity = event.getData(); - invoiceDataModel.save(modifiedEntity); - refresh(); - } + Editors.doEdit(Editors.INCOMING_INVOICE, entity, selectedIncomingInvoice, this::saveInvoice); } public void onEditOutgoing() { OutgoingInvoice selectedOutgoingInvoice = (OutgoingInvoice) getSelectedEntity(); OutgoingInvoice entity = invoiceDataModel.clone((OutgoingInvoice) getSelectedEntity()); - Editors.doEdit(Editors.OUTGOING_INVOICE, entity, selectedOutgoingInvoice, this::saveOutgoingInvoice); + Editors.doEdit(Editors.OUTGOING_INVOICE, entity, selectedOutgoingInvoice, this::saveInvoice); } - private void saveOutgoingInvoice(SaveEntityEvent event) { - if (!event.isCanceled()) { + @Transactional + public void saveInvoice(SaveEntityEvent event) { + if (event.isSave()) { Invoice modifiedEntity = event.getData(); - invoiceDataModel.save(modifiedEntity); + invoiceDataModel.save(modifiedEntity, event.withAttachment().getActions()); refresh(); } } @@ -172,10 +162,10 @@ public class InvoicesViewModel extends EntityViewModel implements Event } private void attachProject(SaveEntityEvent event) { - if (!event.isCanceled()) { + if (event.isSave()) { Project modifiedEntity = event.getData(); getSelectedEntity().setProject(modifiedEntity); - invoiceDataModel.save(getSelectedEntity()); + invoiceDataModel.save(getSelectedEntity(), null); refresh(); } } diff --git a/lis-ui/src/main/java/hu/user/lis/ui/view/PartnersViewModel.java b/lis-ui/src/main/java/hu/user/lis/ui/view/PartnersViewModel.java index 0b273bc..2218c30 100644 --- a/lis-ui/src/main/java/hu/user/lis/ui/view/PartnersViewModel.java +++ b/lis-ui/src/main/java/hu/user/lis/ui/view/PartnersViewModel.java @@ -70,7 +70,7 @@ public class PartnersViewModel extends FilterActiveViewModel { } private void savePartner(SaveEntityEvent event) { - if (!event.isCanceled()) { + if (event.isSave()) { Partner modifiedEntity = event.getData(); partnersDataModel.save(modifiedEntity); refresh(); diff --git a/lis-ui/src/main/java/hu/user/lis/ui/view/ServiceRecordsViewModel.java b/lis-ui/src/main/java/hu/user/lis/ui/view/ServiceRecordsViewModel.java index 74960aa..c3a0f21 100644 --- a/lis-ui/src/main/java/hu/user/lis/ui/view/ServiceRecordsViewModel.java +++ b/lis-ui/src/main/java/hu/user/lis/ui/view/ServiceRecordsViewModel.java @@ -116,7 +116,7 @@ public class ServiceRecordsViewModel extends EntityViewModel impl } public void saveServiceRecord(SaveEntityEvent event) { - if (!event.isCanceled()) { + if (event.isSave()) { ServiceRecord modifiedEntity = event.getData(); List actions = event.withAttachment().getActions(); modifiedEntity.setSigned(!actions.isEmpty()); diff --git a/lis-ui/src/main/resources/web/editor/import-invoice-approve-editor.zul b/lis-ui/src/main/resources/web/editor/import-invoice-approve-editor.zul index aa8d7ce..3e314d3 100644 --- a/lis-ui/src/main/resources/web/editor/import-invoice-approve-editor.zul +++ b/lis-ui/src/main/resources/web/editor/import-invoice-approve-editor.zul @@ -1,3 +1,4 @@ + @@ -93,21 +94,7 @@ - - - - - - - -
-