Prod bugs fixes
authorVásáry Dániel <vasary@elgekko.net>
Mon, 29 Jan 2024 15:35:25 +0000 (16:35 +0100)
committerVásáry Dániel <vasary@elgekko.net>
Mon, 29 Jan 2024 15:35:25 +0000 (16:35 +0100)
12 files changed:
lis-app/src/main/resources/application-dev.yaml
lis-app/src/main/resources/keystore/create-keystore.bat
lis-app/src/main/resources/keystore/lis-keystore.jks
lis-app/src/main/resources/keystore/nav-test.cer [deleted file]
lis-app/src/test/java/hu/user/lis/workflow/RecreateAssignProcessesIT.java [new file with mode: 0644]
lis-app/src/test/java/hu/user/lis/workflow/TaxOfficeInvoiceApiIT.java
lis-app/src/test/resources/application-test.yaml
lis-service/src/main/java/hu/user/lis/service/nav/RestTemplateSSLConfiguration.java
lis-ui/src/main/java/hu/user/lis/ui/editor/ProjectEditorModel.java
lis-ui/src/main/java/hu/user/lis/ui/editor/validator/PartnerFormValidator.java
lis-workflow/src/main/java/hu/user/lis/workflow/invoice/service/WorkflowManagerService.java
runConfigurations/server-dev.run.xml

index 214e1308be10b39c359735b0e4a9bb7d26c947b4..2bd643cdf0659c8314f82edb8bbccf53915d642b 100644 (file)
@@ -50,8 +50,8 @@ logging:
   level:
     org.hibernate.engine.jdbc.spi.SqlExceptionHelper: ERROR
     org.springframework.web.clientRestTemplate: DEBUG
-    logging.level.org.apache.http: TRACE
-    logging.level.httpclient.wire: TRACE
+    org.apache.http: TRACE
+    httpclient.wire: TRACE
 application:
   ui:
     user-name: user
@@ -68,23 +68,12 @@ service:
       store.password: password
     api:
       url: https://api.onlineszamla.nav.gov.hu/invoiceService/v3
-      user: dufwfvhquolizk4
-      password: Pbd6Mnkt9g
-      sign-key: 05-967b-0e5227e11ca44GF1ZEUBSX8F
-      exchange-key: a5c24GF1ZEUBUGIK
-      sender-tax-number: 13799504
-      sender-company: USER RENDSZERHÁZ Informatikai Korlátolt Felelősségű Társaság
+      user: ddoz0z29mmzw2kl
+      password: Salabakt3r
+      sign-key: 78-bfed-07fd8f1685104GC07C82GM3G
+      exchange-key: 1f414GC07C82IBNV
+      sender-tax-number: 13364937
+      sender-company: ELGEKKO MŰHELY SZOLGÁLTATÓ KORLÁTOLT FELELŐSSÉGŰ TÁRSASÁG
       sender-country: HU
       sender-contact: Kovács Géza
-      days-range: 34
-#    api:
-#      url: https://api.onlineszamla.nav.gov.hu/invoiceService/v3
-#      user: ddoz0z29mmzw2kl
-#      password: Salabakt3r
-#      sign-key: 78-bfed-07fd8f1685104GC07C82GM3G
-#      exchange-key: 1f414GC07C82IBNV
-#      sender-tax-number: 13364937
-#      sender-company: ELGEKKO MŰHELY SZOLGÁLTATÓ KORLÁTOLT FELELŐSSÉGŰ TÁRSASÁG
-#      sender-country: HU
-#      sender-contact: Kovács Géza
-#      days-range: 34
+      days-range: 34
\ No newline at end of file
index 8f6ba87742284233dec006ae7f22cded03f8edf7..d28327c586aeca67991a3933f9c3cd54241bf959 100644 (file)
@@ -1 +1 @@
-keytool -importcert -keystore lis-keystore.jks -file nav-test.cer -alias nav-test -storepass password
\ No newline at end of file
+keytool -importcert -keystore lis-keystore.jks -file onlineszamla.nav.gov.hu.cer -alias nav -storepass password
index d17ef8f53b625834537485c749cee652f8b2ae3d..5c8c33577099485672e9d9ac51aa6b2e7d9b099c 100644 (file)
Binary files a/lis-app/src/main/resources/keystore/lis-keystore.jks and b/lis-app/src/main/resources/keystore/lis-keystore.jks differ
diff --git a/lis-app/src/main/resources/keystore/nav-test.cer b/lis-app/src/main/resources/keystore/nav-test.cer
deleted file mode 100644 (file)
index 70dd3ca..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIJ3DCCCMSgAwIBAgIOBB4Br1BMT/4xbP+llwowDQYJKoZIhvcNAQELBQAweDEL
-MAkGA1UEBhMCSFUxETAPBgNVBAcMCEJ1ZGFwZXN0MRYwFAYDVQQKDA1NaWNyb3Nl
-YyBMdGQuMR0wGwYDVQQDDBRlLVN6aWdubyBTU0wgQ0EgMjAxNDEfMB0GCSqGSIb3
-DQEJARYQaW5mb0BlLXN6aWduby5odTAeFw0yMjEyMjIxNDExNDZaFw0yNDAxMjIx
-NDExNDZaMIGTMQswCQYDVQQGEwJIVTERMA8GA1UEBwwIQnVkYXBlc3QxJjAkBgNV
-BAoMHU5lbXpldGkgQWTDsy0gw6lzIFbDoW1oaXZhdGFsMSIwIAYDVQQDDBkqLm9u
-bGluZXN6YW1sYS5uYXYuZ292Lmh1MSUwIwYDVQQFExwxLjMuNi4xLjQuMS4yMTUy
-OC4yLjMuMi43MTY4MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAi/fJ
-9quCAtFbb0ykMeVjmoHeJHUSuxRvL5LRoYteZd0MOqhXken+UAOA7asgrve/2trE
-Xyyl72ryMcXjMYTRR31Rub6ZdUDYI9IacBqtVevy2U70kCPBeGlzYJNNohPt/tly
-k6x+5kUC/Yz67h7j/vS9NIjsBmURs9d5WErFlbbky+HLDQQeTSRu/rQGTtrc+XiR
-QLr19AapjLusLpwe5DvKIqWf/C5FlEtZE9dxYAjw87Bz/hMzhfVLvrZ9ee8nZHnG
-rqsEoGLVSZqq6P5jXbIQTiza+Wt3TjvnZIKSfb007jrx8P3kEUD4OOIy7B/xqIH4
-C9S7V7Ec4NH6ENvOkwIDAQABo4IGRjCCBkIwDgYDVR0PAQH/BAQDAgWgMIIBfQYK
-KwYBBAHWeQIEAgSCAW0EggFpAWcAdQBVgdTCFpA2AUrqC5tXPFPwwOQ4eHAlCBcv
-o6odBxPTDAAAAYU6LQcIAAAEAwBGMEQCIG/WPlXr27NgIMAFrEcR+TJbMGMSE8iL
-yVg4EiivCWk+AiAFL+F8NpaZkSIyfH4Fed3udGo4QGTJRLiCeCV+wPe7YgB2ANq2
-v2s/tbYin5vCu1xr6HCRcWy7UYSFNL2kPTBI1/urAAABhTotCaUAAAQDAEcwRQIh
-AKzVCT+R488swExZ7D5afML0qZFbr4M2Iuwb02jGCZ2HAiBbSXf5IlLZFw4Zqx2W
-/Qmt4XmRjpkllZ7RN4hALuTx5wB2ADtTd3U+LbmAToswWwb+QDtn2E/D9Me9AA0t
-cm/h+tQXAAABhTotDwMAAAQDAEcwRQIhAI4gSbNbiP5Y2Xg95R1GpDViYsUBa/Ml
-/+y+X0HM3Y/OAiBkNBDS9I/iU49FaDg8kMpm6/0Rl6jwPD+rHHB5cDkdnzAdBgNV
-HSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwEwggICBgNVHSAEggH5MIIB9TCCAd0G
-DSsGAQQBgagYAgEBgR8wggHKMCYGCCsGAQUFBwIBFhpodHRwOi8vY3AuZS1zemln
-bm8uaHUvYWNwczCBkAYIKwYBBQUHAgIwgYMMgYBPcmdhbml6YXRpb25hbCB2YWxp
-ZGF0aW9uIGNlcnRpZmljYXRlIGZvciB3ZWJzaXRlIGF1dGhlbnRpY2F0aW9uLiBJ
-c3N1ZWQgb24gdGhlIGJhc2lzIG9mIGVJREFTIEFydGljbGUgMjQgcGVyc29uIGlk
-ZW50aWZpY2F0aW9uLjBBBggrBgEFBQcCAjA1DDNUaGUgY2VydGlmaWNhdGUgaXMg
-YXNzb2NpYXRlZCB3aXRoIGFuIG9yZ2FuaXphdGlvbi4wgY4GCCsGAQUFBwICMIGB
-DH9TemVydmV6ZXQtZWxsZW7FkXJ6w7Z0dCB3ZWJvbGRhbC1oaXRlbGVzw610xZEg
-dGFuw7pzw610dsOhbnkuIEtpYWR2YSBheiBlSURBUyAyNC4gY2lrayBzemVyaW50
-aSBzemVtw6lseSBhem9ub3PDrXTDoXMgYWxhcGrDoW4uMDkGCCsGAQUFBwICMC0M
-K0EgdGFuw7pzw610dsOhbnkgc3plcnZlemV0aGV6IGthcGNzb2zDs2Rpay4wCAYG
-BACPegEHMAgGBmeBDAECAjAdBgNVHQ4EFgQUz0iVdI5qKqx+ZglvQ6qqP9D3jU8w
-HwYDVR0jBBgwFoAU3mqwTkOqCEFHdL+lioFUTCDFdSgwPQYDVR0RBDYwNIIXb25s
-aW5lc3phbWxhLm5hdi5nb3YuaHWCGSoub25saW5lc3phbWxhLm5hdi5nb3YuaHUw
-gbAGA1UdHwSBqDCBpTA1oDOgMYYvaHR0cDovL3NzbGNhMjAxNC1jcmwxLmUtc3pp
-Z25vLmh1L3NzbGNhMjAxNC5jcmwwNaAzoDGGL2h0dHA6Ly9zc2xjYTIwMTQtY3Js
-Mi5lLXN6aWduby5odS9zc2xjYTIwMTQuY3JsMDWgM6Axhi9odHRwOi8vc3NsY2Ey
-MDE0LWNybDMuZS1zemlnbm8uaHUvc3NsY2EyMDE0LmNybDCCAVYGCCsGAQUFBwEB
-BIIBSDCCAUQwLgYIKwYBBQUHMAGGImh0dHA6Ly9zc2xjYTIwMTQtb2NzcDEuZS1z
-emlnbm8uaHUwLgYIKwYBBQUHMAGGImh0dHA6Ly9zc2xjYTIwMTQtb2NzcDIuZS1z
-emlnbm8uaHUwLgYIKwYBBQUHMAGGImh0dHA6Ly9zc2xjYTIwMTQtb2NzcDMuZS1z
-emlnbm8uaHUwOgYIKwYBBQUHMAKGLmh0dHA6Ly9zc2xjYTIwMTQtY2ExLmUtc3pp
-Z25vLmh1L3NzbGNhMjAxNC5jcnQwOgYIKwYBBQUHMAKGLmh0dHA6Ly9zc2xjYTIw
-MTQtY2EyLmUtc3ppZ25vLmh1L3NzbGNhMjAxNC5jcnQwOgYIKwYBBQUHMAKGLmh0
-dHA6Ly9zc2xjYTIwMTQtY2EzLmUtc3ppZ25vLmh1L3NzbGNhMjAxNC5jcnQwDQYJ
-KoZIhvcNAQELBQADggEBADr7ees75fBVO36urAOY7MywTpqv0KfASWXQDyiogDmW
-w6hfF1zq8Hw0oSjFm2WkGY78Uyj+upGsa0V7g6O55IaJdBPm6GRtmcp32K4mMqMw
-Pd5ZyTTtOdtN+SeWjyIgGcDxb3gbsQo7kf8Ytn18byXbec7SyBIinbkFdgRd+6En
-hcGOqJpi4Ha8l2udhK7FAcmYncuCis7rl1vn6/XtrknKX8E7SQUm/J9geD9vIeCp
-rQlmIVRnN8cj5Lq1ExOcuQFiJL+bxhu6HfwsMcOoAyswSYejzsiURjHycY7RKY++
-sF+H/QdVf8oBOtgJgyzBHmGs7bIKc0vjRbG9m9I/Nxk=
------END CERTIFICATE-----
diff --git a/lis-app/src/test/java/hu/user/lis/workflow/RecreateAssignProcessesIT.java b/lis-app/src/test/java/hu/user/lis/workflow/RecreateAssignProcessesIT.java
new file mode 100644 (file)
index 0000000..0a8f708
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Copyright (c) $today.year-$today.month-24.
+ * By elGekko
+ */
+
+package hu.user.lis.workflow;
+
+import hu.user.lis.db.InvoiceImport;
+import hu.user.lis.db.repository.InvoiceImportRepository;
+import hu.user.lis.workflow.invoice.service.WorkflowManagerService;
+import lombok.extern.log4j.Log4j2;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.context.annotation.ComponentScan;
+import org.springframework.test.context.ActiveProfiles;
+import org.springframework.test.context.TestPropertySource;
+import org.springframework.test.context.junit4.SpringRunner;
+
+import java.util.List;
+
+
+@Log4j2
+@SpringBootTest
+@RunWith(SpringRunner.class)
+@ActiveProfiles("dev")
+@ComponentScan("hu.user.lis")
+@TestPropertySource("classpath:application-dev.yaml")
+public class RecreateAssignProcessesIT {
+    @Autowired
+    private InvoiceImportRepository invoiceImportRepository;
+
+    @Autowired
+    private WorkflowManagerService workflowManagerService;
+
+    @Test
+    public void recreateAllAssigns() throws InterruptedException {
+        List<InvoiceImport> invoiceImports = invoiceImportRepository.findAll();
+        invoiceImports.forEach(invoiceImport -> {
+            String processInstanceId = workflowManagerService.startAssignIncomingInvoiceProcess(invoiceImport);
+            log.info("Assign process created for invoice: {} -> {}", invoiceImport.getInvoice().getHumanId(), processInstanceId);
+            try {
+                Thread.sleep(1000);
+            } catch (InterruptedException e) {
+                throw new RuntimeException(e);
+            }
+        });
+    }
+}
\ No newline at end of file
index 1c4b588f61ed13910543e11ca5ef700ceec61532..536105fac4d9588ec43bb4cc71995fd34a12551a 100644 (file)
@@ -176,10 +176,11 @@ public class TaxOfficeInvoiceApiIT {
                 if (invoiceList.isPresent()) {
                     for (InvoiceDigestType invoiceDigest : invoiceList.get()) {
                         String invoiceNumber = invoiceDigest.getInvoiceNumber();
+                        log.info("Invoice found: {}", invoiceNumber);
                         String supplierTaxNumber = invoiceDigest.getSupplierTaxNumber();
                         String invoiceXML = taxOfficeInvoiceService.queryInboundInvoiceDataAsString(invoiceNumber, supplierTaxNumber);
                         Optional<InvoiceData> invoiceData = taxOfficeXmlConverter.fromXml(invoiceXML, InvoiceData.class);
-                        invoiceData.ifPresent(invoice -> log.info("Found invoice: {}", invoiceXML));
+                        //invoiceData.ifPresent(invoice -> log.info("Found invoice: {}", invoiceXML));
                     }
                 }
             }
index f026c48a5c53a406ecfd11f96c5e9eab4473a453..093e25e63f77bfb77eec0af6d4835e13749407c1 100644 (file)
@@ -50,8 +50,6 @@ logging:
   level:
     org.hibernate.engine.jdbc.spi.SqlExceptionHelper: ERROR
     org.springframework.web.clientRestTemplate: DEBUG
-    logging.level.org.apache.http: TRACE
-    logging.level.httpclient.wire: TRACE
 application:
   ui:
     user-name: user
@@ -107,3 +105,14 @@ service:
 #      sender-country: HU
 #      sender-contact: Kovács Géza
 #      days-range: 34
+#    api:
+#      url: https://api-test.onlineszamla.nav.gov.hu/invoiceService/v3
+#      user: vkvyibj5xgqpbp0
+#      password: Salabakt3r
+#      sign-key: fe-9d8b-971c878376204BQEWTHH2HI6
+#      exchange-key: 3af24BQEWTHH4TSX
+#      sender-tax-number: 13364937
+#      sender-company: ELGEKKO MŰHELY SZOLGÁLTATÓ KORLÁTOLT FELELŐSSÉGŰ TÁRSASÁG
+#      sender-country: HU
+#      sender-contact: Kovács Géza
+#      days-range: 34
index 57aa73cd89a0b0825171d487377a18730218845a..67c434e504a3ee4675a081fc4d8261975c8d926b 100644 (file)
@@ -14,7 +14,6 @@ import org.springframework.web.client.RestTemplate;
 
 import javax.net.ssl.SSLContext;
 import java.io.IOException;
-import java.net.MalformedURLException;
 import java.security.KeyManagementException;
 import java.security.KeyStoreException;
 import java.security.NoSuchAlgorithmException;
@@ -31,10 +30,19 @@ public class RestTemplateSSLConfiguration {
 
     @Bean
     public RestTemplate restTemplate() throws KeyManagementException, NoSuchAlgorithmException, KeyStoreException,
-            CertificateException, MalformedURLException, IOException {
+            CertificateException, IOException {
 
         SSLContext sslContext = new SSLContextBuilder()
                 .loadTrustMaterial(trustStore.getURL(), trustStorePassword.toCharArray()).build();
+
+//        TrustStrategy acceptingTrustStrategy = (X509Certificate[] chain, String authType) -> true;
+//        SSLContext sslContext = org.apache.http.ssl.SSLContexts.custom()
+//                .loadTrustMaterial(null, acceptingTrustStrategy)
+//                .build();
+
+//        SSLConnectionSocketFactory sslConFactory = new SSLConnectionSocketFactory(sslContext,
+//                new String[]{"TLSv1.2", "TLSv1.1"}, null,
+//                (hostname, session) -> true);
         SSLConnectionSocketFactory sslConFactory = new SSLConnectionSocketFactory(sslContext);
 
         CloseableHttpClient httpClient = HttpClients.custom().setSSLSocketFactory(sslConFactory).build();
index f18cc45eefd9600a4ae03aa8491bd40f0c8af67a..91b4fdda0fd7d5a7e1352897e291330b50f9da6e 100644 (file)
@@ -15,6 +15,7 @@ import hu.user.lis.ui.event.SaveEntityEvent;
 import lombok.Getter;
 import lombok.Setter;
 import lombok.extern.log4j.Log4j2;
+import org.apache.commons.collections4.CollectionUtils;
 import org.springframework.transaction.annotation.Transactional;
 import org.zkoss.bind.BindUtils;
 import org.zkoss.bind.annotation.*;
@@ -145,15 +146,14 @@ public class ProjectEditorModel extends EntityEditorModel<Project> {
 
     private void updateInvoiceFileChanges(Invoice invoice) {
         List<EntityDocumentAction> actions = invoiceDocumentActions.get(invoice.getTechnicalId());
-        //TODO nem letezo technikai ID miatt itt null jon, pedig nem johetne. File feltoltes bug lehet belole.
-        if (actions != null && !actions.isEmpty()) {
+        if (CollectionUtils.isNotEmpty(actions)) {
             entityDocumentService.executeActions(invoice.getId(), actions);
         }
     }
 
     private void updateTreasuryFileChanges(Treasury treasury) {
         List<EntityDocumentAction> actions = treasuryDocumentActions.get(treasury.getTechnicalId());
-        if (!actions.isEmpty()) {
+        if (CollectionUtils.isNotEmpty(actions)) {
             entityDocumentService.executeActions(treasury.getId(), actions);
         }
     }
@@ -184,10 +184,17 @@ public class ProjectEditorModel extends EntityEditorModel<Project> {
     @Command
     public void onEditIncoming() {
         IncomingInvoice entity = invoiceDataModel.clone(selectedIncomingInvoice);
-        Map<String, Object> extraArg = ImmutableMap.of("actions", invoiceDocumentActions.get(selectedIncomingInvoice.getTechnicalId()));
+        Map<String, Object> extraArg = getDocumentExtraArg(invoiceDocumentActions, selectedIncomingInvoice.getTechnicalId());
         Editors.doEdit(Editors.INCOMING_INVOICE, entity, selectedIncomingInvoice, extraArg, this::incomingModified);
     }
 
+    private Map<String, Object> getDocumentExtraArg(Map<String, List<EntityDocumentAction>> actions, String technicalId) {
+        Map<String, Object> extraArg = new HashMap<>();
+        if (actions.containsKey(technicalId)) {
+            extraArg = ImmutableMap.of("actions", actions.get(technicalId));
+        }
+        return extraArg;
+    }
 
     private void incomingAdded(SaveEntityEvent<IncomingInvoice> event) {
         if (event.isSave()) {
@@ -236,12 +243,8 @@ public class ProjectEditorModel extends EntityEditorModel<Project> {
     @Command
     public void onEditOutgoing() {
         OutgoingInvoice entity = invoiceDataModel.clone(selectedOutgoingInvoice);
-        if (invoiceDocumentActions.containsKey(selectedOutgoingInvoice.getTechnicalId())) {
-            Map<String, Object> extraArg = ImmutableMap.of("actions", invoiceDocumentActions.get(selectedOutgoingInvoice.getTechnicalId()));
-            Editors.doEdit(Editors.OUTGOING_INVOICE, entity, selectedOutgoingInvoice, extraArg, this::outgoingModified);
-        } else {
-            Editors.doEdit(Editors.OUTGOING_INVOICE, entity, selectedOutgoingInvoice, this::outgoingModified);
-        }
+        Map<String, Object> extraArg = getDocumentExtraArg(invoiceDocumentActions, selectedOutgoingInvoice.getTechnicalId());
+        Editors.doEdit(Editors.OUTGOING_INVOICE, entity, selectedOutgoingInvoice, extraArg, this::outgoingModified);
     }
 
     private void outgoingAdded(SaveEntityEvent<OutgoingInvoice> event) {
@@ -291,7 +294,8 @@ public class ProjectEditorModel extends EntityEditorModel<Project> {
     @Command
     public void onEditTreasury() {
         Treasury entity = treasuryDataModel.clone(selectedTreasury);
-        Editors.doEdit(Editors.TREASURY, entity, selectedTreasury, this::treasuryModified);
+        Map<String, Object> extraArg = getDocumentExtraArg(treasuryDocumentActions, selectedTreasury.getTechnicalId());
+        Editors.doEdit(Editors.TREASURY, entity, selectedTreasury, extraArg, this::treasuryModified);
     }
 
     private void treasuryAdded(SaveEntityEvent<Treasury> event) {
@@ -299,6 +303,7 @@ public class ProjectEditorModel extends EntityEditorModel<Project> {
             Treasury modifiedEntity = event.getData();
             getFormDocument().getTreasuries().add(modifiedEntity);
             selectedTreasury = modifiedEntity;
+            treasuryDocumentActions.put(modifiedEntity.getTechnicalId(), event.withAttachment().getActions());
             validate();
             BindUtils.postNotifyChange(this, "selectedTreasury");
             BindUtils.postNotifyChange(getFormDocument(), "treasuries");
@@ -342,6 +347,7 @@ public class ProjectEditorModel extends EntityEditorModel<Project> {
     @Command
     public void onOpenFormPanel(@BindingParam("parentPanel") Component parentPanel) {
         parentPanel.invalidate();
+        parentPanel.getParent().invalidate();
     }
 
     @Command
index 59f46ad45988222b6dc121b5bb2c4065d78d68ed..33517233da6c501121336377a80bbe048045e32a 100644 (file)
@@ -9,11 +9,14 @@ import java.util.regex.Pattern;
 @Component
 public class PartnerFormValidator extends FormValidator<Partner> {
     private static final String VAT_NR_PATTERN = "^\\d{8}-[1-5]-(0[2-9]|[1,3]\\d|20|2[2-9]|4[0-4]|51)$";
+    private static final String SIMPLE_VAT_NR_PATTERN = "^\\d{8}$";
     private Pattern vatNrPattern;
+    private Pattern simpleVatNrPattern;
 
     @PostConstruct
     public void postConstruct() {
         vatNrPattern = Pattern.compile(VAT_NR_PATTERN);
+        simpleVatNrPattern = Pattern.compile(SIMPLE_VAT_NR_PATTERN);
     }
 
     @Override
@@ -21,14 +24,15 @@ public class PartnerFormValidator extends FormValidator<Partner> {
         return new FieldValidation[]{
                 validator(entity.getName(), this::validateString, "A 'Név' kitöltése kötelező."),
                 validator(entity.getShortName(), this::validateString, "A 'Rövid név' kitöltése kötelező."),
-                validator(entity.getVatNr(), this::validateVatNumber, "Az 'Adószám' kitöltése kötelező, formátuma: 12345678-1-01.")
+                validator(entity.getVatNr(), this::validateVatNumber, "Az 'Adószám' kitöltése kötelező, formátuma: 12345678-1-01 vagy 12345678.")
                 //validator(entity.getAddress(), this::validateString, "A 'Cím' kitöltése kötelező."),
         };
     }
 
     private boolean validateVatNumber(Object data) {
         if (data instanceof String) {
-            return vatNrPattern.matcher(String.valueOf(data)).matches();
+            return vatNrPattern.matcher(String.valueOf(data)).matches() ||
+                    simpleVatNrPattern.matcher(String.valueOf(data)).matches();
         }
         return false;
     }
index 36a4303d8f31c9282f30a11b6533e84fdc5a2e4f..d40aa6430778a5c5da86606200d00a28b501540a 100644 (file)
@@ -42,7 +42,7 @@ public class WorkflowManagerService {
         runtimeService.startProcessInstanceByKey(IMPORT_INCOMING_INVOICES);
     }
 
-    public void startAssignIncomingInvoiceProcess(InvoiceImport invoiceImport) {
+    public String startAssignIncomingInvoiceProcess(InvoiceImport invoiceImport) {
         Map<String, Object> params = ImmutableMap.of(
                 "invoiceImportId", invoiceImport.getId(),
                 "invoiceId", invoiceImport.getInvoice().getId(),
@@ -50,7 +50,8 @@ public class WorkflowManagerService {
                 "partnerName", invoiceImport.getInvoice().getPartner().getName(),
                 "projectSuggestions", invoiceImport.getSuggestedProjects()
         );
-        runtimeService.startProcessInstanceByKey(ASSIGN_INCOMING_INVOICES, params);
+        ProcessInstance processInstance = runtimeService.startProcessInstanceByKey(ASSIGN_INCOMING_INVOICES, params);
+        return processInstance.getProcessInstanceId();
     }
 
     public Map<String, Object> getVariables(String id) {
index 8b4535f1ca8f0cdfba34c49fc888b65ffe885909..70b22573c0c2001491ff618cec66fee28565d4c7 100644 (file)
@@ -1,7 +1,6 @@
 <component name="ProjectRunConfigurationManager">
   <configuration default="false" name="server-dev" type="Application" factoryName="Application">
     <option name="ALTERNATIVE_JRE_PATH" value="1.8" />
-    <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="true" />
     <envs>
       <env name="spring.profiles.active" value="dev" />
     </envs>