-- // add active to invoice
-- Migration SQL that makes the change goes here.
-ALTER TABLE invoice ADD COLUMN active SMALLINT NOT NULL DEFAULT 0;
-UPDATE invoice SET active=1;
+ALTER TABLE invoice ADD COLUMN status INTEGER NOT NULL DEFAULT 0;
+UPDATE invoice SET status=1;
-- //@UNDO
-- SQL to undo the change goes here.
-ALTER TABLE invoice DROP COLUMN active;
+ALTER TABLE invoice DROP COLUMN status;
CALL SYSPROC.ADMIN_CMD('REORG TABLE invoice');
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
Long id;
+
String humanId;
+
String title;
+
Currency currency;
+
double netAmount;
+
double grossAmount;
+
double vatAmount;
+
Date completionDate;
+
Date createDate;
+
Date paymentDeadline;
+
@Column(nullable = false, insertable = false, updatable = false)
boolean incoming;
- boolean active;
+
+ InvoiceStatus status;
+
boolean paid;
+
boolean planned;
+
byte[] file;
@OneToOne
--- /dev/null
+package hu.user.lis.db;
+
+
+import lombok.Getter;
+
+@Getter
+public enum InvoiceStatus {
+ INACTIVE(0), ACTIVE(1), SUSPENDED(2);
+ final int val;
+
+ InvoiceStatus(int val) {
+ this.val = val;
+ }
+
+
+}
package hu.user.lis.db.repository;
+import hu.user.lis.db.Invoice;
import hu.user.lis.db.InvoiceImport;
import org.springframework.data.jpa.repository.JpaRepository;
// @Query("SELECT * FROM InvoiceImport i WHERE ")
Optional<InvoiceImport> findTopByOrderByInvoiceCreateDate();
+
+ Optional<InvoiceImport> findByInvoice(Invoice selectedEntity);
}
Predicate[] getPredicates(CriteriaBuilder cb, Root<Invoice> root, InvoiceFilter filter) {
List<Predicate> predicates = new ArrayList<>();
- predicates.add(cb.equal(root.get("active"), true));
+ predicates.add(cb.equal(root.get("status"), filter.getStatus()));
if (Objects.nonNull(filter.getPartner())) {
predicates.add(cb.equal(root.get("partner"), filter.getPartner()));
package hu.user.lis.db.repository.filter;
+import hu.user.lis.db.InvoiceStatus;
import hu.user.lis.db.Partner;
import hu.user.lis.db.Project;
import lombok.*;
private boolean paid;
+ private InvoiceStatus status;
+
private Date paymentDeadLineFrom;
private Date paymentDeadLineTo;
public static final String NAV_SETTINGS = "/settings";
public static final String NAV_IMPORT_INVOICES_ASSIGN = "/import-invoices-assign";
public static final String NAV_IMPORT_INVOICES_APPROVE = "/import-invoices-approve";
+ public static final String NAV_IMPORT_INVOICES_SUSPENDED = "/import-invoices-suspended";
public static final String NAV_LOGIN = "/login";
public static final String NAV_LOGOUT = "/logout";
public static final String NAV_ROOT = "/";
Constants.NAV_SERVICE_RECORDS,
Constants.NAV_IMPORT_INVOICES_ASSIGN,
Constants.NAV_IMPORT_INVOICES_APPROVE,
+ Constants.NAV_IMPORT_INVOICES_SUSPENDED,
Constants.NAV_INVOICES,
Constants.NAV_INVOICE_PAYMENT,
Constants.NAV_SETTINGS,
import hu.user.lis.db.IncomingInvoice;
import hu.user.lis.db.Invoice;
+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;
}
public IncomingInvoice createNewIncomingInvoice() {
- return IncomingInvoice.builder().incoming(true).active(true).build();
+ return IncomingInvoice.builder().incoming(true).status(InvoiceStatus.ACTIVE).build();
}
public OutgoingInvoice createNewOutgoingInvoice() {
- return OutgoingInvoice.builder().active(true).build();
+ return OutgoingInvoice.builder().status(InvoiceStatus.ACTIVE).build();
}
public void save(Invoice modifiedEntity) {
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.ui.Constants;
editorWindow.addEventListener("onClose", e -> {
if (Objects.nonNull(e.getData())) {
Map<String, Object> results = (Map<String, Object>) e.getData();
+ Invoice modifiedEntity = (Invoice) results.get("modifiedEntity");
InvoiceImportStatus status = (InvoiceImportStatus) results.get("status");
if (InvoiceImportStatus.APPROVE.equals(status)) {
- Invoice modifiedEntity = (Invoice) results.get("modifiedEntity");
- modifiedEntity.setActive(true);
+ 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
));
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.ui.Constants;
import hu.user.lis.ui.data.AssignInvoicesDataModel;
editorWindow.addEventListener("onClose", e -> {
if (Objects.nonNull(e.getData())) {
Map<String, Object> results = (Map<String, Object>) e.getData();
+ Invoice modifiedEntity = (Invoice) results.get("modifiedEntity");
InvoiceImportStatus status = (InvoiceImportStatus) results.get("status");
if (InvoiceImportStatus.ASSIGN.equals(status)) {
- Invoice modifiedEntity = (Invoice) results.get("modifiedEntity");
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
));
--- /dev/null
+package hu.user.lis.ui.view;
+
+import com.google.common.collect.ImmutableMap;
+import hu.user.lis.db.*;
+import hu.user.lis.db.repository.InvoiceImportRepository;
+import hu.user.lis.db.repository.InvoiceRepository;
+import hu.user.lis.db.repository.filter.InvoiceFilter;
+import hu.user.lis.ui.Constants;
+import hu.user.lis.ui.data.InvoiceDataModel;
+import hu.user.lis.ui.data.InvoicesDataModel;
+import hu.user.lis.ui.data.common.CachedSpringDataModel;
+import hu.user.lis.ui.editor.common.Editors;
+import hu.user.lis.ui.editor.selector.EntitySelectorRouter;
+import hu.user.lis.ui.event.EventBus;
+import hu.user.lis.ui.view.common.EntityViewModel;
+import hu.user.lis.workflow.invoice.service.WorkflowManagerService;
+import lombok.Getter;
+import lombok.extern.log4j.Log4j2;
+import org.zkoss.bind.PropertyChangeEvent;
+import org.zkoss.bind.annotation.*;
+import org.zkoss.zk.ui.Component;
+import org.zkoss.zk.ui.event.Event;
+import org.zkoss.zk.ui.event.EventListener;
+import org.zkoss.zk.ui.select.annotation.WireVariable;
+
+import java.util.Objects;
+import java.util.Optional;
+
+import static hu.user.lis.ui.data.common.CachedDataModel.ASCENDING;
+import static hu.user.lis.ui.data.common.CachedDataModel.NATURAL;
+
+@Log4j2
+public class ImportInvoicesSuspendedViewModel extends EntityViewModel<Invoice> implements EventListener<Event> {
+ @Getter
+ private InvoiceFilter invoiceFilter;
+
+ @WireVariable
+ private EventBus eventBus;
+
+ @Getter
+ @WireVariable
+ private EntitySelectorRouter entitySelectorRouter;
+
+ @Getter
+ @WireVariable
+ private InvoicesDataModel invoicesDataModel;
+
+ @WireVariable
+ private InvoiceDataModel invoiceDataModel;
+
+ @WireVariable
+ private InvoiceImportRepository invoiceImportRepository;
+
+ @WireVariable
+ private WorkflowManagerService workflowManagerService;
+
+ @WireVariable
+ private InvoiceRepository invoiceRepository;
+
+ @Init
+ @Override
+ public void init() {
+ super.init();
+ invoiceFilter = InvoiceFilter.builder()
+ .incoming(true)
+ .status(InvoiceStatus.SUSPENDED)
+ .build();
+
+ eventBus.register(this);
+ eventBus.registerForBinding(this);
+ addColumns(ImmutableMap.of(
+ "partner.humanId", NATURAL,
+ "partner.name", NATURAL,
+ "partner.vatNr", NATURAL,
+ "project.name", NATURAL,
+ "paymentDeadline", ASCENDING,
+ "grossAmount", NATURAL,
+ "currency", NATURAL,
+ "incoming", NATURAL
+ ));
+ refresh();
+ }
+
+ @Override
+ @AfterCompose
+ public void onAfterCompose(@ContextParam(ContextType.VIEW) Component view) {
+ entitySelectorRouter.configureSelector(Partner.class, this, "invoiceFilter.partner");
+ entitySelectorRouter.configureSelector(Project.class, this, "invoiceFilter.project");
+ }
+
+ @Override
+ protected CachedSpringDataModel<Invoice> getDataModel() {
+ return invoicesDataModel;
+ }
+
+ @Override
+ protected String getNavigation() {
+ return Constants.NAV_IMPORT_INVOICES_SUSPENDED;
+ }
+
+ @Command
+ public void refresh() {
+ invoicesDataModel.clearSelection();
+ invoicesDataModel.search(invoiceFilter);
+ }
+
+ @Command
+ public void search() {
+ refresh();
+ }
+
+ @Override
+ public void onEvent(Event evt) throws Exception {
+ if (evt instanceof PropertyChangeEvent) {
+ PropertyChangeEvent propertyEvent = (PropertyChangeEvent) evt;
+// (this.equals(propertyEvent.getBase()) && propertyEvent.getProperty().startsWith("invoiceFilter")))
+ if (invoiceFilter.equals(propertyEvent.getBase())) {
+ log.info("Refresh needed, {} changed", propertyEvent.getProperty());
+
+ refresh();
+ }
+ }
+ }
+
+ @Destroy
+ public void onDestroy() {
+ log.info("Destroy {}", getClass().getSimpleName());
+ eventBus.unregister(this);
+ }
+
+ @Command
+ public void onEdit() {
+ Invoice invoice = getSelectedEntity();
+ if (invoice.isIncoming()) {
+ onEditIncoming();
+ } else {
+ onEditOutgoing();
+ }
+ }
+
+ public void onEditIncoming() {
+ IncomingInvoice selectedIncomingInvoice = (IncomingInvoice) getSelectedEntity();
+ IncomingInvoice entity = invoiceDataModel.clone(selectedIncomingInvoice);
+ Editors.doEdit(Editors.INCOMING_INVOICE, entity, selectedIncomingInvoice, modifiedEntity -> {
+ invoiceDataModel.save(modifiedEntity);
+ refresh();
+ });
+ }
+
+ public void onEditOutgoing() {
+ OutgoingInvoice selectedOutgoingInvoice = (OutgoingInvoice) getSelectedEntity();
+ OutgoingInvoice entity = invoiceDataModel.clone((OutgoingInvoice) getSelectedEntity());
+ Editors.doEdit(Editors.OUTGOING_INVOICE, entity, selectedOutgoingInvoice, modifiedEntity -> {
+ invoiceDataModel.save(modifiedEntity);
+ refresh();
+ });
+ }
+
+ @Command
+ public void onStartAssignment() {
+ Invoice invoice = getSelectedEntity();
+ if (Objects.nonNull(invoice)) {
+ Optional<InvoiceImport> opInvoiceImport = invoiceImportRepository.findByInvoice(invoice);
+ opInvoiceImport.ifPresent(invoiceImport -> {
+ workflowManagerService.startAssignIncomingInvoiceProcess(invoiceImport);
+ invoice.setStatus(InvoiceStatus.INACTIVE);
+ invoiceRepository.save(invoice);
+ refresh();
+ });
+ }
+ }
+}
@Log4j2
public class InvoicesViewModel extends EntityViewModel<Invoice> implements EventListener<Event> {
@Getter
- private final InvoiceFilter invoiceFilter = InvoiceFilter.builder().incoming(true).build();
+ private InvoiceFilter invoiceFilter;
@WireVariable
private EventBus eventBus;
@Override
public void init() {
super.init();
+ invoiceFilter = InvoiceFilter.builder()
+ .incoming(true)
+ .status(InvoiceStatus.ACTIVE)
+ .build();
eventBus.register(this);
eventBus.registerForBinding(this);
addColumns(ImmutableMap.of(
--- /dev/null
+<?component name="entity-selector" inline="true" class="hu.user.lis.ui.editor.widget.EntitySelector"?>
+<zk>
+ <window vflex="true" viewModel="@id('vm') @init('hu.user.lis.ui.view.ImportInvoicesSuspendedViewModel')">
+ <caption label="Számla parkoló"/>
+ <borderlayout>
+ <north hflex="true">
+ <vlayout>
+ <toolbar>
+ <label value="Partner"/>
+ <separator orient="vertical"/>
+ <entity-selector entity="Partner" style="display: inline-block;" width="300px"/>
+ <space bar="true"/>
+ <label value="Projekt"/>
+ <separator orient="vertical"/>
+ <entity-selector entity="Project" style="display: inline-block;" width="300px"/>
+
+ <space bar="true"/>
+ <toolbarbutton label="Iktatás" iconSclass="z-icon-forward"
+ onClick="@command('onStartAssignment')"/>
+
+ </toolbar>
+ </vlayout>
+ </north>
+ <center border="none" hflex="true" vflex="true">
+ <listbox id="invoicesList" vflex="true" model="@load(vm.invoicesDataModel)"
+ autopaging="true" mold="paging" pagingPosition="top" multiple="false"
+ onSelect="@command('onListSelection')">
+ <listhead sizable="true">
+ <listheader label="Sorszám" sort="auto(partner.humanId)" align="left"
+ sortDirection="@load(vm.cols['partner.name'].sortDirection)"/>
+ <listheader label="Partner név" sort="auto(partner.name)" align="left"
+ sortDirection="@load(vm.cols['partner.name'].sortDirection)"/>
+ <listheader label="Partner adószám" sort="auto(partner.vatNr)" align="left"
+ sortDirection="@load(vm.cols['partner.vatNr'].sortDirection)"/>
+ <listheader label="Projekt név" sort="auto(project.name)" align="left"
+ sortDirection="@load(vm.cols['project.name'].sortDirection)"/>
+ <listheader label="Fizetési határidő" sort="auto(paymentDeadline)" align="left"
+ sortDirection="@load(vm.cols['paymentDeadline'].sortDirection)"/>
+ <listheader label="Bruttó összeg" sort="auto(grossAmount)" align="right"
+ style="text-align: center"
+ sortDirection="@load(vm.cols['grossAmount'].sortDirection)"/>
+ <listheader label="Pénznem" sort="auto(currency)" align="left"
+ sortDirection="@load(vm.cols['currency'].sortDirection)"/>
+ <listheader label="Költség/Bevétel" sort="auto(incoming)" align="left"
+ sortDirection="@load(vm.cols['incoming'].sortDirection)"/>
+ </listhead>
+ <template name="model">
+ <listitem>
+ <listcell label="@load(each.humanId)"/>
+ <listcell label="@load(each.partner.name)"/>
+ <listcell label="@load(each.partner.vatNr)"/>
+ <listcell label="@load(each.project.name)"/>
+ <listcell
+ label="@load(each.paymentDeadline) @converter('hu.user.lis.ui.converter.DateToStringConverter')"/>
+ <listcell
+ label="@load(each.grossAmount) @converter('hu.user.lis.ui.converter.DoubleToStringConverter')"/>
+ <listcell label="@load(each.currency)"/>
+ <listcell>
+ <a iconSclass="z-icon-external-link" visible="@load(each.incoming)"/>
+ <a iconSclass="z-icon-sign-in" visible="@load(!each.incoming)"/>
+ </listcell>
+ </listitem>
+ </template>
+ </listbox>
+ </center>
+ </borderlayout>
+ </window>
+</zk>
\ No newline at end of file
label="@bind(vm.approveInvoicesLabel)"
onClick="@command(vm.selectPage('~./import-invoices-approve.zul'))"
sclass="@bind(vm.approveInvoiceMenuClassName)"/>
+ <menuseparator/>
+ <menuitem iconSclass="z-icon-hand-stop-o"
+ label="Számla parkoló"
+ onClick="@command(vm.selectPage('~./import-invoices-suspended.zul'))"/>
</menupopup>
</menu>
<menuseparator/>
<caption label="Számlák"/>
<borderlayout>
<north hflex="true">
- <toolbar>
- <!-- <toolbarbutton label="Hozzáadás" iconSclass="z-icon-plus" onClick="@command('onAdd')"/>-->
- <!-- <toolbarbutton label="Szerkesztés" iconSclass="z-icon-edit" onClick="@command('onEdit')"-->
- <!-- disabled="@load(empty vm.selectedEntity)"/>-->
- <!-- <toolbarbutton label="Törlés" iconSclass="z-icon-remove" onClick="@command('onDelete')"-->
- <!-- disabled="@load(empty vm.selectedEntity)"/>-->
- <label value="Partner"/>
- <separator orient="vertical"/>
- <entity-selector entity="Partner" style="display: inline-block;" width="300px"/>
- <space bar="true"/>
- <label value="Projekt"/>
- <separator orient="vertical"/>
- <entity-selector entity="Project" style="display: inline-block;" width="300px"/>
- <space bar="true"/>
- <toolbarbutton mode="toggle" iconSclass="z-icon-external-link" label="Költség"
- checked="@load(vm.invoiceFilter.incoming)"
- onClick="@command('setIncoming', incoming=true)"/>
- <toolbarbutton mode="toggle" iconSclass="z-icon-sign-in" label="Bevétel"
- checked="@load(!vm.invoiceFilter.incoming)"
- onClick="@command('setIncoming', incoming=false)"/>
- <space bar="true"/>
- <!-- <separator orient="vertical"/>-->
- <label value="Fizetési határidő"/>
- <separator orient="vertical"/>
- <datebox instant="true" format="yyyy. MM. dd."
- value="@bind(vm.invoiceFilter.paymentDeadLineFrom)"/>
- <label value="-"/>
- <datebox instant="true" format="yyyy. MM. dd."
- value="@bind(vm.invoiceFilter.paymentDeadLineTo)"/>
+ <vlayout>
+ <toolbar>
+ <!-- <toolbarbutton label="Hozzáadás" iconSclass="z-icon-plus" onClick="@command('onAdd')"/>-->
+ <!-- <toolbarbutton label="Szerkesztés" iconSclass="z-icon-edit" onClick="@command('onEdit')"-->
+ <!-- disabled="@load(empty vm.selectedEntity)"/>-->
+ <!-- <toolbarbutton label="Törlés" iconSclass="z-icon-remove" onClick="@command('onDelete')"-->
+ <!-- disabled="@load(empty vm.selectedEntity)"/>-->
+ <label value="Partner"/>
+ <separator orient="vertical"/>
+ <entity-selector entity="Partner" style="display: inline-block;" width="300px"/>
+ <space bar="true"/>
+ <label value="Projekt"/>
+ <separator orient="vertical"/>
+ <entity-selector entity="Project" style="display: inline-block;" width="300px"/>
+ <space bar="true"/>
+ <toolbarbutton mode="toggle" iconSclass="z-icon-external-link" label="Költség"
+ checked="@load(vm.invoiceFilter.incoming)"
+ onClick="@command('setIncoming', incoming=true)"/>
+ <toolbarbutton mode="toggle" iconSclass="z-icon-sign-in" label="Bevétel"
+ checked="@load(!vm.invoiceFilter.incoming)"
+ onClick="@command('setIncoming', incoming=false)"/>
+ <space bar="true"/>
+ <!-- <separator orient="vertical"/>-->
+ <label value="Fizetési határidő"/>
+ <separator orient="vertical"/>
+ <datebox instant="true" format="yyyy. MM. dd."
+ value="@bind(vm.invoiceFilter.paymentDeadLineFrom)"/>
+ <label value="-"/>
+ <datebox instant="true" format="yyyy. MM. dd."
+ value="@bind(vm.invoiceFilter.paymentDeadLineTo)"/>
- <space bar="true"/>
- <toolbarbutton mode="toggle" iconSclass="z-icon-credit-card" label="Fizetve"
- checked="@bind(vm.invoiceFilter.paid)"/>
+ <space bar="true"/>
+ <toolbarbutton mode="toggle" iconSclass="z-icon-credit-card" label="Fizetve"
+ checked="@bind(vm.invoiceFilter.paid)"/>
- <!-- <toolbarbutton iconSclass="z-icon-search" label="Szűrés"-->
- <!-- onClick="@command('search')"/>-->
- </toolbar>
+ <!-- <toolbarbutton iconSclass="z-icon-search" label="Szűrés"-->
+ <!-- onClick="@command('search')"/>-->
+ </toolbar>
+ </vlayout>
</north>
<center border="none" hflex="true" vflex="true">
<listbox id="invoicesList" vflex="true" model="@load(vm.invoicesDataModel)"
import hu.user.lis.db.IncomingInvoice;
import hu.user.lis.db.InvoiceImport;
+import hu.user.lis.db.InvoiceStatus;
import hu.user.lis.db.Partner;
import hu.user.lis.db.repository.InvoiceImportRepository;
import hu.user.lis.db.repository.InvoiceRepository;
import java.util.ArrayList;
import java.util.List;
+import java.util.Objects;
import java.util.Optional;
@Log4j2
@Override
@Transactional
public void execute(DelegateExecution delegateExecution) throws Exception {
- String invoiceXml = (String) delegateExecution.getVariable("invoice");
- log.info("Processing invoice {}", invoiceXml);
+ try {
+ String invoiceXml = (String) delegateExecution.getVariable("invoice");
+ log.info("Processing invoice {}", invoiceXml);
+
+ InvoiceImport invoiceImport = createInvoiceImport(invoiceXml);
+ if (Objects.isNull(invoiceImport)) {
+ throw new IllegalStateException("Unsuccessful invoice import!");
+ }
+ workflowManagerService.startAssignIncomingInvoiceProcess(invoiceImport);
+ log.info("Invoice {} {} processed", invoiceImport.getInvoice().getHumanId(),
+ invoiceImport.getInvoice().getPartner().getName());
+ } catch (Exception e) {
+ log.error(e);
+ }
+ }
+
+ private InvoiceImport createInvoiceImport(String invoiceXml) throws Exception {
List<String> projectSuggestions = new ArrayList<>();
IncomingInvoice invoice = incomingInvoiceFetcherService.getInvoiceDataOnline(invoiceXml, projectSuggestions);
+ invoice.setStatus(InvoiceStatus.INACTIVE);
+
Optional<Partner> partnerEntity = partnerRepository.findByVatNr(invoice.getPartner().getVatNr());
if (partnerEntity.isPresent()) {
if (isInvoiceImported(invoice.getHumanId(), partnerEntity.get())) {
log.info("Skipping already imported {} {}, {}", partnerEntity.get().getName(), partnerEntity.get().getVatNr(), invoice.getHumanId());
- return;
+ return null;
}
invoice.setPartner(partnerEntity.get());
} else {
partnerRepository.save(invoice.getPartner());
}
invoiceRepository.save(invoice);
+
InvoiceImport invoiceImport = InvoiceImport.builder()
.invoice(invoice)
.suggestedProjects(projectSuggestions)
.build();
invoiceImportRepository.save(invoiceImport);
- workflowManagerService.startAssignIncomingInvoiceProcess(invoiceImport);
- log.info("Invoice {} {} processed", invoice.getHumanId(), invoice.getPartner().getName());
+ return invoiceImport;
}
private boolean isInvoiceImported(String humanId, Partner partner) {