Invoice form created from Invoice editor, payments view finished, Tomcat disabled...
authorVásáry Dániel <vasary@elgekko.net>
Mon, 30 Oct 2023 14:32:58 +0000 (15:32 +0100)
committerVásáry Dániel <vasary@elgekko.net>
Mon, 30 Oct 2023 14:32:58 +0000 (15:32 +0100)
24 files changed:
KB.md
TODO.txt
lis-app/pom.xml
lis-app/src/main/java/hu/user/lis/build/Exec.java [new file with mode: 0644]
lis-app/src/test/java/hu/user/lis/workflow/TaxOfficeInvoiceApiIT.java
lis-db/migrations/README
lis-ui/pom.xml
lis-ui/src/main/java/hu/user/lis/ui/data/PaymentsDataModel.java
lis-ui/src/main/java/hu/user/lis/ui/editor/common/Editors.java
lis-ui/src/main/java/hu/user/lis/ui/editor/common/EntityEditorModel.java
lis-ui/src/main/java/hu/user/lis/ui/popup/PopupModel.java [new file with mode: 0644]
lis-ui/src/main/java/hu/user/lis/ui/view/AssignInvoicesViewModel.java
lis-ui/src/main/java/hu/user/lis/ui/view/IndexViewModel.java
lis-ui/src/main/java/hu/user/lis/ui/view/InvoicePaymentViewModel.java
lis-ui/src/main/java/hu/user/lis/ui/view/common/EntityViewModel.java
lis-ui/src/main/resources/web/editor/incoming-invoice-editor.zul
lis-ui/src/main/resources/web/editor/outgoing-invoice-editor.zul
lis-ui/src/main/resources/web/editor/popup-editor.zul [new file with mode: 0644]
lis-ui/src/main/resources/web/form/invoice-form.zul [new file with mode: 0644]
lis-ui/src/main/resources/web/index.zul
lis-ui/src/main/resources/web/invoice-payment.zul
lis-ui/src/main/resources/web/widget/entity-selector.zul
lis-workflow/pom.xml
pom.xml

diff --git a/KB.md b/KB.md
index 43f25b398fe6a83b25cae988cf294833a376fe95..1ae4031e98e87a63572179fc7ef5ab07341e7b89 100644 (file)
--- a/KB.md
+++ b/KB.md
@@ -74,6 +74,7 @@ https://www.zkoss.org/wiki/ZK_Developer%27s_Reference/Theming_and_Styling/Custom
 https://www.zkoss.org/wiki/Small_Talks/2018/November/New_Features_of_ZK_8.6.0#Refresh_Theme_without_Code_Change_-_Compact_Theme
 https://blog.zkoss.org/2013/11/26/online-themeroller-for-zk-7-0/
 https://fontawesomelib.com/releases/4.0.1/list/all/index.html
+https://fontawesome.com/v4/icons/
 
 ##### ZK Wirevariable
 
index 721c62d205fa6cf27264adada5dc80edf699a0ff..17104bd25ab2c0d322580619cf31e5f0f7902efb 100644 (file)
--- a/TODO.txt
+++ b/TODO.txt
@@ -8,7 +8,7 @@
     - számla részletek megejelenítése: határidő, összeg, devizanem
     - mekkora pénzmozgás volt, milyen devizanemben, illetve felvehető új pénzmozgás
     - az űrlapon a csatolt számlakép megjelenítése
-    - mivel tartozhat egy sorszám több számlához is, ezt kezelni kell
+    * mivel tartozhat egy sorszám több számlához is, ezt kezelni kell
 - A "Szállítói követelés követés" funkció a számlák listáját mutatja szűrve, azokat tartalmazza amik még nincsenek kiegyenlítve (külön a bejövö külön a kimenő)
 - munkalap hiba javítása
 * projekt ID-t regexp-el ki kell szedni, ha több van egy listát feldobni
index 21ea56a5dc6526c80d4c1b7fba78c00f2dda3f93..f1cfc2e6e22336018af51fd6a0b7a2f784463934 100644 (file)
     <!--    <packaging>war</packaging>-->
     <build>
         <plugins>
+            <plugin>
+                <groupId>org.codehaus.mojo</groupId>
+                <artifactId>exec-maven-plugin</artifactId>
+                <version>3.1.0</version>
+                <configuration>
+                    <mainClass>hu.user.lis.build.Exec</mainClass>
+                    <arguments>
+                        <argument>First</argument>
+                        <argument>Second</argument>
+                    </arguments>
+                </configuration>
+            </plugin>
             <plugin>
                 <groupId>org.springframework.boot</groupId>
                 <artifactId>spring-boot-maven-plugin</artifactId>
                             <key>value</key>
                         </manifestEntries>
                     </archive>
-                    <!--                    <webResources>-->
-                    <!--                        <resource>-->
-                    <!--                            <directory>../camunda-lib/src/main/resources/</directory>-->
-                    <!--                            <targetPath>WEB-INF/classes</targetPath>-->
-                    <!--                            <includes>-->
-                    <!--                                <include>loanApproval.bpmn</include>-->
-                    <!--                            </includes>-->
-                    <!--                        </resource>-->
-                    <!--                    </webResources>-->
                 </configuration>
             </plugin>
         </plugins>
     </build>
     <dependencies>
-        <dependency>
-            <groupId>org.springframework.boot</groupId>
-            <artifactId>spring-boot-starter-actuator</artifactId>
-            <!--            <exclusions>-->
-            <!--                <exclusion>-->
-            <!--                    <groupId>ch.qos.logback</groupId>-->
-            <!--                    <artifactId>logback-classic</artifactId>-->
-            <!--                </exclusion>-->
-            <!--            </exclusions>-->
-
-        </dependency>
-        <!--        <dependency>-->
-        <!--            <groupId>javax.servlet</groupId>-->
-        <!--            <artifactId>javax.servlet-api</artifactId>-->
-        <!--            <version>4.0.0</version>-->
-        <!--            <scope>provided</scope>-->
-        <!--        </dependency>-->
-        <!--        <dependency>-->
-        <!--            <groupId>org.springframework.boot</groupId>-->
-        <!--            <artifactId>spring-boot-starter</artifactId>-->
-        <!--            <exclusions>-->
-        <!--                <exclusion>-->
-        <!--                    <groupId>org.springframework.boot</groupId>-->
-        <!--                    <artifactId>spring-boot-starter-logging</artifactId>-->
-        <!--                </exclusion>-->
-        <!--            </exclusions>-->
-        <!--        </dependency>-->
         <!--        <dependency>-->
         <!--            <groupId>org.springframework.boot</groupId>-->
-        <!--            <artifactId>spring-boot-starter-log4j2</artifactId>-->
+        <!--            <artifactId>spring-boot-starter-actuator</artifactId>-->
         <!--        </dependency>-->
-        <dependency>
-            <groupId>org.springframework.boot</groupId>
-            <artifactId>spring-boot-starter-web</artifactId>
-            <exclusions>
-                <exclusion>
-                    <groupId>org.apache.tomcat.embed</groupId>
-                    <artifactId>tomcat-embed-websocket</artifactId>
-                </exclusion>
-                <exclusion>
-                    <groupId>org.springframework.boot</groupId>
-                    <artifactId>spring-boot-starter-tomcat</artifactId>
-                </exclusion>
-                <!--                <exclusion>-->
-                <!--                    <groupId>org.springframework.boot</groupId>-->
-                <!--                    <artifactId>spring-boot-starter-logging</artifactId>-->
-                <!--                </exclusion>-->
-            </exclusions>
-        </dependency>
-        <dependency>
-            <groupId>org.springframework.boot</groupId>
-            <artifactId>spring-boot-starter-undertow</artifactId>
-        </dependency>
         <dependency>
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-starter-test</artifactId>
diff --git a/lis-app/src/main/java/hu/user/lis/build/Exec.java b/lis-app/src/main/java/hu/user/lis/build/Exec.java
new file mode 100644 (file)
index 0000000..caf7390
--- /dev/null
@@ -0,0 +1,14 @@
+package hu.user.lis.build;
+
+
+import java.util.Arrays;
+
+public class Exec {
+
+    public static void main(String[] args) {
+        System.out.println("Running the main method");
+        if (args.length > 0) {
+            System.out.println("List of arguments: " + Arrays.toString(args));
+        }
+    }
+}
\ No newline at end of file
index 61e5755dc469e0b2e4cc0cf65dd7fd6e163fd2e8..9fa33f97824042ea3eb15c1073d1dc75a65a5519 100644 (file)
@@ -78,6 +78,9 @@ public class TaxOfficeInvoiceApiIT {
         headers.setContentType(MediaType.APPLICATION_XML);
         headers.setAcceptCharset(Collections.singletonList(StandardCharsets.UTF_8));
         headers.setAccept(Collections.singletonList(MediaType.APPLICATION_XML));
+        headers.setIfNoneMatch("*");
+        headers.setIfModifiedSince(ZonedDateTime.now());
+
         HttpEntity<String> request = new HttpEntity<>(taxOfficeXmlConverter.toXml(queryRequest), headers);
         try {
             ResponseEntity<String> response = restTemplate.postForEntity(API_URL + "/queryInvoiceDigest", request, String.class);
index 2851db15231f5d9db6b4bcd90ea7dd2387882063..c942715907c0e21035038f4a39d6279f261a0130 100644 (file)
@@ -48,23 +48,35 @@ Enjoy.
 
 
 DOCKER
+-------
 # docker pull ibmcom/db2
 mkdir -R /data/db2
 chmod -R 777 /data/db2
 docker run -itd --name ibmdb2 --privileged=true -p 50000:50000 -e LICENSE=accept -e DB2INSTANCE=db2admin -e DB2INST1_PASSWORD=password -e DBNAME=lis -e PERSISTENT_HOME=false -v /data/db2:/database ibmcom/db2
-docker logs -f lis
-docker exec -it lis bash
-docker stop lis
-docker remove lis
+docker logs -f ibmdb2
+docker exec -it ibmdb2 bash
+docker stop ibmdb2
+docker remove ibmdb2
+
+Auto restart config fo all containers
+    docker update --restart unless-stopped $(docker ps -aq)
+Check auto restart
+    docker inspect -f "{{ .HostConfig.RestartPolicy }}" $containername
+Stop all
+    docker stop $(docker ps -aq)
+List windows services
+    sc queryex type=service state=all | find /i "SERVICE_NAME:"
+
 
 MIGRATE
+-------
 migrate new create profile --idpattern=000
 migrate up --env=prod
-
 Move data
-----------
-https://community.ibm.com/community/user/datamanagement/discussion/db2-docker-persistent-volume
+    https://community.ibm.com/community/user/datamanagement/discussion/db2-docker-persistent-volume
+
 
 DB2 SQL
+-------
 ALTER TABLE "tableName" ALTER COLUMN "columnName" RESTART WITH <new index value>
 ALTER TABLE org RENAME COLUMN deptnumb TO deptnum
\ No newline at end of file
index 492890d2c489f51a13ea75791c7ebf3f4ed14b4a..3e6bbdfdb1186f6e759c5b4d54f3754b9ccf844c 100644 (file)
         <zk.version>9.6.0</zk.version>
     </properties>
     <dependencies>
-        <dependency>
-            <groupId>org.springframework.boot</groupId>
-            <artifactId>spring-boot-starter-web</artifactId>
-        </dependency>
+        <!--        <dependency>-->
+        <!--            <groupId>org.springframework.boot</groupId>-->
+        <!--            <artifactId>spring-boot-starter-web</artifactId>-->
+        <!--        </dependency>-->
         <dependency>
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-starter-security</artifactId>
index 9f2bb287d3206f9ec1142bdc8fe587d0872b4712..c9bdc38fa6952554914ef6fce9fa40f761de4647 100644 (file)
@@ -12,6 +12,9 @@ import org.springframework.context.annotation.Scope;
 import org.springframework.stereotype.Component;
 import org.zkoss.zul.FieldComparator;
 
+import java.time.LocalDate;
+import java.time.ZoneId;
+import java.util.Date;
 import java.util.List;
 
 @Log4j2
@@ -19,6 +22,8 @@ import java.util.List;
 @Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE)
 public class PaymentsDataModel extends CachedSpringDataModel<Payment> {
 
+    private List<Payment> innerList;
+
     @Autowired
     private PaymentRepository paymentRepository;
 
@@ -27,6 +32,14 @@ public class PaymentsDataModel extends CachedSpringDataModel<Payment> {
 
     private Invoice invoice;
 
+    public void create(Invoice invoice) {
+        Payment entity = Payment.builder()
+                .invoice(invoice)
+                .paymentDate(Date.from(LocalDate.now().atStartOfDay(ZoneId.systemDefault()).toInstant()))
+                .build();
+        paymentRepository.save(entity);
+    }
+
     public void save(Payment modifiedEntity) {
         paymentRepository.save(modifiedEntity);
     }
@@ -37,7 +50,8 @@ public class PaymentsDataModel extends CachedSpringDataModel<Payment> {
 
     @Override
     public List<Payment> getResultSet(int page, int pageSize, FieldComparator sortComparator) {
-        return paymentRepository.findAllByInvoiceOrderByPaymentDateDesc(invoice);
+        innerList = paymentRepository.findAllByInvoiceOrderByPaymentDateDesc(invoice);
+        return innerList;
     }
 
     @Override
@@ -49,4 +63,9 @@ public class PaymentsDataModel extends CachedSpringDataModel<Payment> {
         this.invoice = invoice;
         super.reset();
     }
+
+    @Override
+    public List<Payment> getInnerList() {
+        return innerList;
+    }
 }
index a4a82ce7b23bfeffcb940afd1107becac4315c0b..0803e22f770cd1a0976fbc7af7a46aa195d834f6 100644 (file)
@@ -17,6 +17,7 @@ public class Editors {
     public static final String IMPORT_INVOICE_ASSIGN = "~./editor/import-invoice-assign-editor.zul";
     public static final String IMPORT_INVOICE_APPROVE = "~./editor/import-invoice-approve-editor.zul";
     public static final String PROJECT = "~./editor/project-editor.zul";
+    public static final String POPUP_EDITOR = "~./editor/popup-editor.zul";
 
     public static <E> void doEdit(String page, E entity, EditCompleted<E> editCompleted) {
         doEdit(page, entity, null, editCompleted);
@@ -35,10 +36,10 @@ public class Editors {
             arg = ImmutableMap.of("formDocument", entity, "origDocument", original);
         }
 
-        doEdit(page, arg, editCompleted);
+        doShowEdit(page, arg, editCompleted);
     }
 
-    public static <E> void doEdit(String page, Map<String, Object> arg, EditCompleted<E> editCompleted) {
+    public static <E> void doShowEdit(String page, Map<String, Object> arg, EditCompleted<E> editCompleted) {
         Window editorWindow = (Window) Executions.createComponents(page, null, arg);
         editorWindow.addEventListener("onClose", e -> {
             if (e.getData() != null) {
index f764afd304ea2f7b18d7af9c3276d8c49a070a2d..02d9f8f285f5de7efe5e9586d8619fa290577891 100644 (file)
@@ -52,6 +52,8 @@ public abstract class EntityEditorModel<T extends Serializable> extends Abstract
     @WireVariable
     EntitySelectorRouter entitySelectorRouter;
 
+    private boolean readonlyForm;
+
     @Command
     public void onCloseWindow(@BindingParam("target") Window target, @BindingParam("save") boolean save) {
         if (save) {
@@ -82,7 +84,7 @@ public abstract class EntityEditorModel<T extends Serializable> extends Abstract
         Component target = ctx.getBindContext().getComponent();
         String property = ctx.getProperty().getProperty();
         Object value = ctx.getProperty().getValue();
-        log.info("Validating caused by {} {} {}", target.getId(), property, value);
+//        log.info("Validating caused by {} {} {}", target.getId(), property, value);
         try {
             validate(entityDataService.clone(formDocument, property, value));
         } catch (Exception e) {
diff --git a/lis-ui/src/main/java/hu/user/lis/ui/popup/PopupModel.java b/lis-ui/src/main/java/hu/user/lis/ui/popup/PopupModel.java
new file mode 100644 (file)
index 0000000..1a0d511
--- /dev/null
@@ -0,0 +1,21 @@
+package hu.user.lis.ui.popup;
+
+import lombok.Getter;
+import lombok.Setter;
+import lombok.extern.log4j.Log4j2;
+import org.zkoss.bind.annotation.Command;
+import org.zkoss.zk.ui.select.annotation.VariableResolver;
+
+@Log4j2
+@Getter
+@Setter
+@VariableResolver(org.zkoss.zkplus.spring.DelegatingVariableResolver.class)
+public class PopupModel {
+    private String title = "POPUP";
+
+    private boolean saveEnabled;
+
+    @Command
+    public void onCloseWindow() {
+    }
+}
index 45a4076ae7eba3442aafb50b9cebb50c8432e566..2af175eb162ad3b5b98f425fb6a3dce09c05bd29 100644 (file)
@@ -73,7 +73,7 @@ public class AssignInvoicesViewModel extends EntityViewModel<JSONObject> impleme
         Invoice entity = (Invoice) getSelectedEntity().get("invoiceEntity");
         List<String> projectSuggestions = (List<String>) getSelectedEntity().get("projectSuggestions");
         Map<String, Object> arg = ImmutableMap.of("formDocument", entity, "projectSuggestions", projectSuggestions);
-        Editors.doEdit(Editors.IMPORT_INVOICE_ASSIGN, arg, (EditCompleted<Invoice>) modifiedEntity -> {
+        Editors.doShowEdit(Editors.IMPORT_INVOICE_ASSIGN, arg, (EditCompleted<Invoice>) modifiedEntity -> {
             assignInvoicesDataModel.completeTask(getSelectedEntity(), ImmutableMap.of("invoiceEntity", modifiedEntity));
             onRefresh();
         });
index f25ebaa86cc3b7827de76be5a0474f1839a9feca..2227fc506569faf2b1fe46766088b06e82c5e001 100644 (file)
@@ -22,11 +22,13 @@ import org.zkoss.zk.ui.select.annotation.VariableResolver;
 import org.zkoss.zk.ui.select.annotation.WireVariable;
 import org.zkoss.zk.ui.util.Notification;
 
+import java.util.Map;
+
 
 @Log4j2
-@VariableResolver(org.zkoss.zkplus.spring.DelegatingVariableResolver.class)
 @Getter
 @Setter
+@VariableResolver(org.zkoss.zkplus.spring.DelegatingVariableResolver.class)
 public class IndexViewModel implements EventListener<Event> {
     //    private static final String PARTNERS_LIST = "~./partners.zul";
 
@@ -88,7 +90,7 @@ public class IndexViewModel implements EventListener<Event> {
         eventBus.register(this);
         eventBus.registerForProcessEvent(this);
         String path = sessionSettings.getCurrentPath();
-//        log.info("Current session is {} path {}", sessionSettings.getSessionId(), path);
+        log.info("2. Current session is {} path {}", sessionSettings.getSessionId(), path);
         route(path);
         updateImportInvoiceMenus();
     }
@@ -185,4 +187,14 @@ public class IndexViewModel implements EventListener<Event> {
     public void onInvoiceDues() {
 
     }
+
+    @Command
+    public void onShowPopup() {
+        Map<String, Object> arg = null;
+        Editors.doShowEdit(Editors.POPUP_EDITOR, arg, modifiedEntity -> {
+
+        });
+
+    }
+
 }
index 2f0225a0170df467bfb428e7becd5c4e11c16051..0eb16fbc124adc03004867472fca44a77cc1bfe7 100644 (file)
@@ -14,6 +14,8 @@ import hu.user.lis.ui.view.common.EntityViewModel;
 import lombok.Getter;
 import lombok.Setter;
 import lombok.extern.log4j.Log4j2;
+import org.zkoss.bind.BindUtils;
+import org.zkoss.bind.annotation.BindingParam;
 import org.zkoss.bind.annotation.Command;
 import org.zkoss.bind.annotation.Init;
 import org.zkoss.bind.annotation.NotifyChange;
@@ -35,16 +37,20 @@ public class InvoicePaymentViewModel extends EntityViewModel<Payment> {
     @WireVariable
     EntitySelectorRouter entitySelectorRouter;
 
-    @WireVariable
-    private EventBus eventBus;
+    @Getter
+    @Setter
+    Invoice formDocument;
 
     @Getter
     @Setter
-    private Partner filterPartner;
+    private Payment selectedPayment;
+
+    @WireVariable
+    private EventBus eventBus;
 
     @Getter
     @Setter
-    private Invoice selectedInvoice;
+    private Partner filterPartner;
 
     @Getter
     @Setter
@@ -65,10 +71,15 @@ public class InvoicePaymentViewModel extends EntityViewModel<Payment> {
     @Setter
     private boolean partnerRequired;
 
+    @Getter
+    @Setter
+    private boolean newPaymentDisabled;
+
     @Init
     @Override
     public void init() {
         super.init();
+        setReadonlyForm(true);
 //        addColumns(ImmutableMap.of(
 //                "partner.name", ASCENDING,
 //                "partner.vatNr", NATURAL,
@@ -93,13 +104,13 @@ public class InvoicePaymentViewModel extends EntityViewModel<Payment> {
     @Command
     @NotifyChange("partnerRequired")
     public void search() {
-        paymentsDataModel.clearSelection();
-        paymentsDataModel.clear();
+        log.info("Searching for invoice {}", invoiceNumber);
+        hideEditor();
         if (Objects.isNull(filterPartner)) {
             List<Invoice> invoices = invoiceRepository.findByHumanId(invoiceNumber);
             if (invoices.isEmpty()) {
                 setPartnerRequired(false);
-                Notification.show("Nem található számla: " + invoiceNumber, true);
+                Notification.show("Nem található számla: " + invoiceNumber, null, null, null, 3000, true);
             } else {
                 if (invoices.size() == 1) {
                     setPartnerRequired(false);
@@ -116,7 +127,53 @@ public class InvoicePaymentViewModel extends EntityViewModel<Payment> {
         }
     }
 
+    private void hideEditor() {
+        paymentsDataModel.clearSelection();
+        paymentsDataModel.clear();
+        formDocument = null;
+        BindUtils.postNotifyChange(this, "formDocument");
+    }
+
     private void showEditor(Invoice invoice) {
         paymentsDataModel.search(invoice);
+        formDocument = invoice;
+        getEntitySelectorRouter().configureSelector(Partner.class, getFormDocument(), "partner");
+        paymentsDataModel.search(invoice);
+        BindUtils.postNotifyChange(this, "formDocument");
+    }
+
+    @Command
+    public void onCreatePayment() {
+        if (Objects.nonNull(getFormDocument())) {
+            paymentsDataModel.create(getFormDocument());
+            paymentsDataModel.search(getFormDocument());
+        }
+    }
+
+    @Command
+    @NotifyChange({"newPaymentDisabled", "formDocument"})
+    public void onDeletePayment() {
+        if (Objects.nonNull(selectedPayment)) {
+            paymentsDataModel.delete(selectedPayment);
+            paymentsDataModel.search(getFormDocument());
+            updateInvoiceStatus();
+        }
+    }
+
+    @Command
+    @NotifyChange({"newPaymentDisabled", "formDocument"})
+    public void onPaymentChanged(@BindingParam("entity") Payment entity) {
+        paymentsDataModel.save(entity);
+        updateInvoiceStatus();
+    }
+
+    private void updateInvoiceStatus() {
+        if (Objects.nonNull(getFormDocument())) {
+            double paymentsSum = paymentsDataModel.getInnerList().stream().map(Payment::getNetAmount).reduce(0d, Double::sum);
+            newPaymentDisabled = getFormDocument().getNetAmount() <= paymentsSum;
+            getFormDocument().setPaid(newPaymentDisabled);
+            invoiceRepository.save(getFormDocument());
+        }
+
     }
 }
index dc4b6b1253d2aa7403308213c3df640307ce96e8..14fd5074146ba7fd232b75f28560f722aa212613 100644 (file)
@@ -32,6 +32,10 @@ public abstract class EntityViewModel<T extends Serializable> {
     @WireVariable
     EntityDataService<T> entityDataService;
 
+    @Getter
+    @Setter
+    private boolean readonlyForm;
+
     protected void addColumns(Map<String, String> columns) {
         getDataModel().addColumns(columns);
     }
index 0efede23bd97a1f283834f722d8f509e2649fb0c..817e618713cfdbafd7a15af3279fb3b86af3a43a 100644 (file)
 <?link rel="stylesheet" type="text/css" href="~./static/css/skeleton.css" ?>
 <?link rel="stylesheet" type="text/css" href="~./static/css/webclient.css" ?>
-<?component name="entity-selector" inline="true" class="hu.user.lis.ui.editor.widget.EntitySelector"?>
 <zk>
-    <zscript>
-        import hu.user.lis.db.Currency;
-        ListModelList currencies = new ListModelList(Currency.values());
-    </zscript>
     <window id="invoicePopup" width="50%" height="400px" closable="true"
             maximizable="true" sizable="true" viewModel="@id('vm') @init('hu.user.lis.ui.editor.InvoiceEditorModel')">
         <caption label="Bejövő számla szerkesztés"/>
         <borderlayout>
             <center border="none" vflex="true" hflex="true">
-                <tabbox vflex="true" hflex="true">
-                    <tabs>
-                        <tab label="Adatok" selected="true"/>
-                        <tab label="Számlakép"/>
-                    </tabs>
-                    <tabpanels>
-                        <tabpanel>
-                            <vlayout hflex="true">
-                                <label value="Leírás"/>
-                                <textbox hflex="true" instant="true"
-                                         value="@bind(vm.formDocument.title) @validator(vm)"
-                                         forward="onOK=submit.onClick, onCancel=cancel.onClick"/>
-                                <label value="Partner"/>
-                                <entity-selector entity="Partner"/>
-                                <hlayout>
-                                    <vlayout>
-                                        <label value="Sorszám"/>
-                                        <textbox instant="true" value="@bind(vm.formDocument.humanId) @validator(vm)"
-                                                 forward="onOK=submit.onClick, onCancel=cancel.onClick"/>
-                                    </vlayout>
-                                    <vlayout>
-                                        <label value="Pénznem"/>
-                                        <combobox instant="true" model="${currencies}"
-                                                  selectedItem="@bind(vm.formDocument.currency) @validator(vm)"
-                                                  onChange="@command('onNetAmountChange')"
-                                                  forward="onOK=submit.onClick, onCancel=cancel.onClick"/>
-
-                                    </vlayout>
-                                    <vlayout>
-                                        <label value="Nettó összeg"/>
-                                        <doublebox value="@bind(vm.formDocument.netAmount) @validator(vm)"
-                                                   format="#,###.##" locale="hu" instant="true"
-                                                   onChange="@command('onNetAmountChange')"
-                                                   forward="onOK=submit.onClick, onCancel=cancel.onClick"/>
-                                    </vlayout>
-                                    <vlayout>
-                                        <label value="Bruttó összeg"/>
-                                        <doublebox value="@bind(vm.formDocument.grossAmount) @validator(vm)"
-                                                   format="#,###.##" locale="hu" instant="true"
-                                                   forward="onOK=submit.onClick, onCancel=cancel.onClick"/>
-                                    </vlayout>
-                                    <vlayout>
-                                        <label value="ÁFA"/>
-                                        <doublebox value="@bind(vm.formDocument.vatAmount) @validator(vm)"
-                                                   format="#,###.##" locale="hu" instant="true"
-                                                   forward="onOK=submit.onClick, onCancel=cancel.onClick"/>
-                                    </vlayout>
-                                </hlayout>
-                                <hlayout>
-                                    <vlayout>
-                                        <label value="Kiállítás dátuma"/>
-                                        <datebox instant="true" format="yyyy. MM. dd."
-                                                 value="@bind(vm.formDocument.createDate) @validator(vm)"
-                                                 forward="onOK=submit.onClick, onCancel=cancel.onClick"/>
-                                    </vlayout>
-                                    <vlayout>
-                                        <label value="Teljesítés dátuma"/>
-                                        <datebox instant="true" format="yyyy. MM. dd."
-                                                 value="@bind(vm.formDocument.completionDate) @validator(vm)"
-                                                 forward="onOK=submit.onClick, onCancel=cancel.onClick"/>
-                                    </vlayout>
-                                    <vlayout>
-                                        <label value="Fizetési határidő"/>
-                                        <datebox instant="true" format="yyyy. MM. dd."
-                                                 value="@bind(vm.formDocument.paymentDeadline) @validator(vm)"
-                                                 forward="onOK=submit.onClick, onCancel=cancel.onClick"/>
-                                    </vlayout>
-                                </hlayout>
-                                <label value="Tervezett"/>
-                                <checkbox mold="switch" checked="@bind(vm.formDocument.planned)"/>
-                            </vlayout>
-                        </tabpanel>
-                        <tabpanel>
-                            <borderlayout>
-                                <north flex="true">
-                                    <toolbar>
-                                        <toolbarbutton label="Feltöltés" iconSclass="z-icon-plus" upload="true"
-                                                       onUpload="@command('onUploadFile')"/>
-                                        <toolbarbutton label="Törlés" iconSclass="z-icon-remove"
-                                                       onClick="@command('onRemoveFile')"
-                                                       disabled="@load(empty vm.formDocument.file)"/>
-                                    </toolbar>
-                                </north>
-                                <center border="none" flex="true">
-                                    <iframe hflex="true" vflex="true"
-                                            content="@load(vm.formDocument.file) @converter('hu.user.lis.ui.converter.ByteArrayToAMediaConverter')"/>
-                                </center>
-                            </borderlayout>
-                        </tabpanel>
-                    </tabpanels>
-                </tabbox>
-
+                <include src="~./form/invoice-form.zul"/>
             </center>
             <south border="none" flex="true" style="text-align: right; padding: 10px;">
                 <hlayout>
index f4317e75a663df832da429f42cefb9aaa30afb37..9431becdee7f65535421646af33ccd513fa8b58f 100644 (file)
 <?link rel="stylesheet" type="text/css" href="~./static/css/skeleton.css" ?>
 <?link rel="stylesheet" type="text/css" href="~./static/css/webclient.css" ?>
-<?component name="entity-selector" inline="true" class="hu.user.lis.ui.editor.widget.EntitySelector"?>
 <zk>
-    <zscript>
-        import hu.user.lis.db.Currency;
-        ListModelList currencies = new ListModelList(Currency.values());
-    </zscript>
     <window id="invoicePopup" width="50%" height="400px" closable="true"
             maximizable="true" sizable="true" viewModel="@id('vm') @init('hu.user.lis.ui.editor.InvoiceEditorModel')">
         <caption label="Kimenő számla szerkesztés"/>
         <borderlayout>
             <center border="none" vflex="true" hflex="true">
-                <tabbox vflex="true" hflex="true">
-                    <tabs>
-                        <tab label="Adatok" selected="true"/>
-                        <tab label="Számlakép"/>
-                    </tabs>
-                    <tabpanels>
-                        <tabpanel>
-                            <vlayout hflex="true">
-                                <label value="Leírás"/>
-                                <textbox hflex="true" instant="true"
-                                         value="@bind(vm.formDocument.title) @validator(vm)"
-                                         forward="onOK=submit.onClick, onCancel=cancel.onClick"/>
-                                <label value="Partner"/>
-                                <entity-selector entity="Partner"/>
-                                <hlayout>
-                                    <vlayout>
-                                        <label value="Sorszám"/>
-                                        <textbox instant="true" value="@bind(vm.formDocument.humanId) @validator(vm)"
-                                                 forward="onOK=submit.onClick, onCancel=cancel.onClick"/>
-                                    </vlayout>
-                                    <vlayout>
-                                        <label value="Pénznem"/>
-                                        <combobox instant="true" model="${currencies}"
-                                                  selectedItem="@bind(vm.formDocument.currency) @validator(vm)"
-                                                  onChange="@command('onNetAmountChange')"
-                                                  forward="onOK=submit.onClick, onCancel=cancel.onClick"/>
-
-                                    </vlayout>
-                                    <vlayout>
-                                        <label value="Nettó összeg"/>
-                                        <doublebox value="@bind(vm.formDocument.netAmount) @validator(vm)"
-                                                   format="#,###.##" locale="hu" instant="true"
-                                                   onChange="@command('onNetAmountChange')"
-                                                   forward="onOK=submit.onClick, onCancel=cancel.onClick"/>
-                                    </vlayout>
-                                    <vlayout>
-                                        <label value="Bruttó összeg"/>
-                                        <doublebox value="@bind(vm.formDocument.grossAmount) @validator(vm)"
-                                                   format="#,###.##" locale="hu" instant="true"
-                                                   forward="onOK=submit.onClick, onCancel=cancel.onClick"/>
-                                    </vlayout>
-                                    <vlayout>
-                                        <label value="ÁFA"/>
-                                        <doublebox value="@bind(vm.formDocument.vatAmount) @validator(vm)"
-                                                   format="#,###.##" locale="hu" instant="true"
-                                                   forward="onOK=submit.onClick, onCancel=cancel.onClick"/>
-                                    </vlayout>
-                                </hlayout>
-                                <hlayout>
-                                    <vlayout>
-                                        <label value="Kiállítás dátuma"/>
-                                        <datebox instant="true" format="yyyy. MM. dd."
-                                                 value="@bind(vm.formDocument.createDate) @validator(vm)"
-                                                 forward="onOK=submit.onClick, onCancel=cancel.onClick"/>
-                                    </vlayout>
-                                    <vlayout>
-                                        <label value="Teljesítés dátuma"/>
-                                        <datebox instant="true" format="yyyy. MM. dd."
-                                                 value="@bind(vm.formDocument.completionDate) @validator(vm)"
-                                                 forward="onOK=submit.onClick, onCancel=cancel.onClick"/>
-                                    </vlayout>
-                                    <vlayout>
-                                        <label value="Fizetési határidő"/>
-                                        <datebox instant="true" format="yyyy. MM. dd."
-                                                 value="@bind(vm.formDocument.paymentDeadline) @validator(vm)"
-                                                 forward="onOK=submit.onClick, onCancel=cancel.onClick"/>
-                                    </vlayout>
-                                </hlayout>
-                                <label value="Tervezett"/>
-                                <checkbox mold="switch" checked="@bind(vm.formDocument.planned)"/>
-                            </vlayout>
-                        </tabpanel>
-                        <tabpanel>
-                            <borderlayout>
-                                <north flex="true">
-                                    <toolbar>
-                                        <toolbarbutton label="Feltöltés" iconSclass="z-icon-plus" upload="true"
-                                                       onUpload="@command('onUploadFile')"/>
-                                        <toolbarbutton label="Törlés" iconSclass="z-icon-remove"
-                                                       onClick="@command('onRemoveFile')"
-                                                       disabled="@load(empty vm.formDocument.file)"/>
-                                    </toolbar>
-                                </north>
-                                <center border="none" flex="true">
-                                    <iframe hflex="true" vflex="true"
-                                            content="@load(vm.formDocument.file) @converter('hu.user.lis.ui.converter.ByteArrayToAMediaConverter')"/>
-                                </center>
-                            </borderlayout>
-                        </tabpanel>
-                    </tabpanels>
-                </tabbox>
-
+                <include src="~./form/invoice-form.zul"/>
             </center>
             <south border="none" flex="true" style="text-align: right; padding: 10px;">
                 <hlayout>
diff --git a/lis-ui/src/main/resources/web/editor/popup-editor.zul b/lis-ui/src/main/resources/web/editor/popup-editor.zul
new file mode 100644 (file)
index 0000000..82e351f
--- /dev/null
@@ -0,0 +1,52 @@
+<?link rel="stylesheet" type="text/css" href="~./static/css/skeleton.css" ?>
+<?link rel="stylesheet" type="text/css" href="~./static/css/webclient.css" ?>
+<zk>
+    <window closable="true" maximizable="true" sizable="true"
+            viewModel="@id('vm') @init('hu.user.lis.ui.popup.PopupModel')">
+        <caption label="@load(vm.title)"/>
+        <grid id="grid0" sizedByContent="true">
+            <columns id="columns0" sizable="true">
+                <column id="column0"/>
+                <column id="column1"/>
+            </columns>
+            <rows id="rows0">
+                <row id="row4">
+                    <label id="label9" value="Something"/>
+                    <textbox id="inputBox5" width="100%" mold="rounded"/>
+                </row>
+                <row id="row5">
+                    <label id="label10" value="Another thing"/>
+                    <textbox id="inputBox6" width="100%" mold="rounded"/>
+                </row>
+                <row id="row6">
+                    <label id="label11" value="Yet something more"/>
+                    <textbox id="inputBox7" width="100%" mold="rounded"/>
+                </row>
+            </rows>
+        </grid>
+        <!--        <borderlayout width="500px">-->
+        <!--            <center vflex="min" hflex="1">-->
+        <!--                <hlayout vflex="min" hflex="1">-->
+        <!--                    <vlayout>-->
+        <!--                        <label value="lab1"/>-->
+        <!--                        <label value="lab2"/>-->
+        <!--                    </vlayout>-->
+        <!--                    <vlayout vflex="min" hflex="max">-->
+        <!--                        <textbox hflex="max"/>-->
+        <!--                        <textbox hflex="max"/>-->
+        <!--                    </vlayout>-->
+
+        <!--                </hlayout>-->
+        <!--            </center>-->
+        <!--            <south>-->
+        <!--                <hlayout>-->
+        <!--                    <button id="cancel" label="Bezár"-->
+        <!--                            onClick="@command('onCloseWindow', target=associatePopup, save=false)"/>-->
+        <!--                    <button id="submit" label="Mentés"-->
+        <!--                            onClick="@command('onCloseWindow', target=associatePopup, save=true)"-->
+        <!--                            disabled="@bind(not vm.saveEnabled)"/>-->
+        <!--                </hlayout>-->
+        <!--            </south>-->
+        <!--        </borderlayout>-->
+    </window>
+</zk>
\ No newline at end of file
diff --git a/lis-ui/src/main/resources/web/form/invoice-form.zul b/lis-ui/src/main/resources/web/form/invoice-form.zul
new file mode 100644 (file)
index 0000000..bbbe375
--- /dev/null
@@ -0,0 +1,110 @@
+<?component name="entity-selector" inline="true" class="hu.user.lis.ui.editor.widget.EntitySelector"?>
+<zk>
+    <zscript>
+        import hu.user.lis.db.Currency;
+        ListModelList currencies = new ListModelList(Currency.values());
+    </zscript>
+    <tabbox vflex="true" hflex="true">
+        <tabs>
+            <tab label="Adatok" selected="true"/>
+            <tab label="Számlakép"/>
+        </tabs>
+        <tabpanels>
+            <tabpanel>
+                <vlayout hflex="true">
+                    <label value="Leírás"/>
+                    <textbox hflex="true" instant="true"
+                             value="@bind(vm.formDocument.title) @validator(vm)"
+                             forward="onOK=submit.onClick, onCancel=cancel.onClick"
+                             disabled="@bind(vm.readonlyForm)"/>
+                    <label value="Partner"/>
+                    <entity-selector entity="Partner" readonly="${vm.readonlyForm}"/>
+                    <hlayout>
+                        <vlayout>
+                            <label value="Sorszám"/>
+                            <textbox instant="true" value="@bind(vm.formDocument.humanId) @validator(vm)"
+                                     forward="onOK=submit.onClick, onCancel=cancel.onClick"
+                                     disabled="@bind(vm.readonlyForm)"/>
+                        </vlayout>
+                        <vlayout>
+                            <label value="Pénznem"/>
+                            <combobox instant="true" model="${currencies}"
+                                      selectedItem="@bind(vm.formDocument.currency) @validator(vm)"
+                                      onChange="@command('onNetAmountChange')"
+                                      forward="onOK=submit.onClick, onCancel=cancel.onClick"
+                                      disabled="@bind(vm.readonlyForm)"/>
+
+                        </vlayout>
+                        <vlayout>
+                            <label value="Nettó összeg"/>
+                            <doublebox value="@bind(vm.formDocument.netAmount) @validator(vm)"
+                                       format="#,###.##" locale="hu" instant="true"
+                                       onChange="@command('onNetAmountChange')"
+                                       forward="onOK=submit.onClick, onCancel=cancel.onClick"
+                                       disabled="@bind(vm.readonlyForm)"/>
+                        </vlayout>
+                        <vlayout>
+                            <label value="Bruttó összeg"/>
+                            <doublebox value="@bind(vm.formDocument.grossAmount) @validator(vm)"
+                                       format="#,###.##" locale="hu" instant="true"
+                                       forward="onOK=submit.onClick, onCancel=cancel.onClick"
+                                       disabled="@bind(vm.readonlyForm)"/>
+                        </vlayout>
+                        <vlayout>
+                            <label value="ÁFA"/>
+                            <doublebox value="@bind(vm.formDocument.vatAmount) @validator(vm)"
+                                       format="#,###.##" locale="hu" instant="true"
+                                       forward="onOK=submit.onClick, onCancel=cancel.onClick"
+                                       disabled="@bind(vm.readonlyForm)"/>
+                        </vlayout>
+                    </hlayout>
+                    <hlayout>
+                        <vlayout>
+                            <label value="Kiállítás dátuma"/>
+                            <datebox instant="true" format="yyyy. MM. dd."
+                                     value="@bind(vm.formDocument.createDate) @validator(vm)"
+                                     forward="onOK=submit.onClick, onCancel=cancel.onClick"
+                                     disabled="@bind(vm.readonlyForm)"/>
+                        </vlayout>
+                        <vlayout>
+                            <label value="Teljesítés dátuma"/>
+                            <datebox instant="true" format="yyyy. MM. dd."
+                                     value="@bind(vm.formDocument.completionDate) @validator(vm)"
+                                     forward="onOK=submit.onClick, onCancel=cancel.onClick"
+                                     disabled="@bind(vm.readonlyForm)"/>
+                        </vlayout>
+                        <vlayout>
+                            <label value="Fizetési határidő"/>
+                            <datebox instant="true" format="yyyy. MM. dd."
+                                     value="@bind(vm.formDocument.paymentDeadline) @validator(vm)"
+                                     forward="onOK=submit.onClick, onCancel=cancel.onClick"
+                                     disabled="@bind(vm.readonlyForm)"/>
+                        </vlayout>
+                    </hlayout>
+                    <label value="Tervezett"/>
+                    <checkbox mold="switch" checked="@bind(vm.formDocument.planned)" disabled="@bind(vm.readonlyForm)"/>
+                    <label value="Rendezve"/>
+                    <checkbox mold="switch" checked="@bind(vm.formDocument.paid)" disabled="@bind(vm.readonlyForm)"/>
+                </vlayout>
+            </tabpanel>
+            <tabpanel>
+                <borderlayout>
+                    <north flex="true">
+                        <toolbar>
+                            <toolbarbutton label="Feltöltés" iconSclass="z-icon-plus" upload="true"
+                                           onUpload="@command('onUploadFile')" disabled="@bind(vm.readonlyForm)"/>
+                            <toolbarbutton label="Törlés" iconSclass="z-icon-remove"
+                                           onClick="@command('onRemoveFile')"
+                                           disabled="@load(empty vm.formDocument.file or vm.readonlyForm)"/>
+                        </toolbar>
+                    </north>
+                    <center border="none" flex="true">
+                        <iframe hflex="true" vflex="true"
+                                content="@load(vm.formDocument.file) @converter('hu.user.lis.ui.converter.ByteArrayToAMediaConverter')"/>
+                    </center>
+                </borderlayout>
+            </tabpanel>
+        </tabpanels>
+    </tabbox>
+
+</zk>
\ No newline at end of file
index 4138e6dbd46ae7cbeae04eac647789b0ad4c7f7c..fc94b280879eeeda2d955cf631463aa816bec71c 100644 (file)
@@ -73,6 +73,8 @@
                 <vlayout>
                     <hlayout valign="middle">
                         <menubar autodrop="true" hflex="true">
+                            <!--                            <menuitem label="POPUP" onClick="@command('onShowPopup')"/>-->
+
                             <menuitem iconSclass="z-icon-group" label="Partnerek"
                                       onClick="@command(vm.selectPage('~./partners.zul'))"/>
                             <menuitem iconSclass="z-icon-tasks" label="Projektek"
                             <!--                                      onClick="@command(vm.selectPage('/camunda'))"/>-->
                         </menubar>
                         <hbox hflex="min" pack="right">
-                            <textbox value="@bind(vm.searchPhrase)" onOK="@command('search')" disabled="true"></textbox>
+                            <textbox value="@bind(vm.searchPhrase)" onOK="@command('search')" disabled="true"/>
                             <button iconSclass="z-icon-search"/>
                         </hbox>
                     </hlayout>
index df60d22ee5d6e6ea85b541056cbe4f84cdf18fbe..eeca249c52c4af4f1c1f2ea6cd0d059d6275cd77 100644 (file)
@@ -6,9 +6,7 @@
                 <toolbar>
                     <label value="Számla sorszáma"/>
                     <separator orient="vertical"/>
-                    <textbox value="@bind(vm.invoiceNumber)" onChange="@command('search')"/>
-
-                    <space bar="true"/>
+                    <textbox value="@bind(vm.invoiceNumber)" onChange="@command('search')" onOK="@command('search')"/>
 
                     <label value="Partner" visible="@bind(vm.partnerRequired)"/>
                     <separator orient="vertical" visible="@bind(vm.partnerRequired)"/>
                     </selectbox>
                 </toolbar>
             </north>
-            <center border="none" flex="true">
-                <listbox vflex="true" model="@load(vm.paymentsDataModel)" multiple="false">
-                    <listhead sizable="true">
-                        <listheader label="Dátum" align="left"/>
-                        <listheader label="Nettó összeg" align="right"/>
-                        <listheader label="Bruttó összeg" align="right"/>
-                        <listheader label="ÁFA összeg" align="right"/>
-                    </listhead>
-                    <template name="model">
-                        <listitem>
-                            <listcell label="@load(each.paymentDate)"/>
-                            <listcell label="@load(each.netAmount)"/>
-                            <listcell label="@load(each.grossAmount)"/>
-                            <listcell label="@load(each.vatAmount)"/>
-                        </listitem>
-                    </template>
-                </listbox>
+            <center border="none" hflex="true" vflex="true">
+
+                <hbox hflex="true" vflex="true" visible="@load(vm.formDocument)">
+                    <window title="Számla adatok" hflex="true" vflex="true" border="normal" style="margin: 10px">
+                        <include src="~./form/invoice-form.zul"/>
+                    </window>
+
+                    <splitter/>
+
+                    <window title="Számla kiegyenlítés" hflex="true" vflex="true" border="normal"
+                            style="margin: 10px">
+                        <borderlayout>
+                            <north hflex="true">
+                                <toolbar>
+                                    <toolbarbutton label="Hozzáadás" iconSclass="z-icon-plus"
+                                                   onClick="@command('onCreatePayment')"
+                                                   disabled="@bind(vm.newPaymentDisabled)"/>
+                                    <toolbarbutton label="Törlés" iconSclass="z-icon-remove"
+                                                   onClick="@command('onDeletePayment')"
+                                                   disabled="@load(empty vm.selectedPayment)"/>
+                                </toolbar>
+                            </north>
+                            <center border="none" hflex="true" vflex="true">
+                                <listbox vflex="true" model="@load(vm.paymentsDataModel)"
+                                         autopaging="true" pagingPosition="top" multiple="false"
+                                         selectedItem="@bind(vm.selectedPayment)">
+                                    <listhead sizable="true">
+                                        <listheader label="Dátum" align="left"/>
+                                        <listheader label="Nettó összeg" align="right"/>
+                                        <listheader label="Bruttó összeg" align="right"/>
+                                        <listheader label="ÁFA összeg" align="right"/>
+                                    </listhead>
+                                    <template name="model">
+                                        <listitem>
+                                            <listcell>
+                                                <datebox value="@bind(each.paymentDate)"
+                                                         format="yyyy. MM. dd." inplace="true" width="100%"
+                                                         onChange="@command('onPaymentChanged', entity=each)"/>
+                                            </listcell>
+                                            <listcell>
+                                                <doublebox value="@bind(each.netAmount)"
+                                                           format="#,###.##" locale="hu" inplace="true" width="100%"
+                                                           onChange="@command('onPaymentChanged', entity=each)"/>
+                                            </listcell>
+                                            <listcell>
+                                                <doublebox value="@bind(each.grossAmount)"
+                                                           format="#,###.##" locale="hu" inplace="true" width="100%"
+                                                           onChange="@command('onPaymentChanged', entity=each)"/>
+                                            </listcell>
+                                            <listcell>
+                                                <doublebox value="@bind(each.vatAmount)"
+                                                           format="#,###.##" locale="hu" inplace="true" width="100%"
+                                                           onChange="@command('onPaymentChanged', entity=each)"/>
+                                            </listcell>
+                                        </listitem>
+                                    </template>
+                                </listbox>
+                            </center>
+                        </borderlayout>
+
+                    </window>
+                </hbox>
+
             </center>
         </borderlayout>
     </window>
index ee5aaf75a1e44fa1c69387cbe1be690dd324cdcb..3a965aee57e1502d1573e2cb40991260294bc4bf 100644 (file)
@@ -3,7 +3,7 @@
         <bandbox id="entityBandBox" autodrop="true" hflex="true" mold="rounded"
                  value="@load(vmEntity.selectedEntity) @converter(vmEntity.displayConverter)"
                  onChanging="@command('onEntityBandChanging')" onOpen="@command('onEntityBandOpen')"
-                 forward="onOK=submit.onClick, onCancel=cancel.onClick">
+                 forward="onOK=submit.onClick, onCancel=cancel.onClick" disabled="${readonly}" readonly="${readonly}">
             <attribute c:name="_doKeyDown">
                 <![CDATA[
                             function (evt) {
index eda34dbd333ee64ab125d3d95ecdebe292d35c18..ce39ae14b40ef0fb717e71c19d11b146a2050fbb 100644 (file)
             <groupId>org.camunda.bpm.springboot</groupId>
             <artifactId>camunda-bpm-spring-boot-starter-rest</artifactId>
             <version>${camunda.spring-boot.version}</version>
+            <exclusions>
+                <exclusion>
+                    <groupId>org.springframework.boot</groupId>
+                    <artifactId>spring-boot-starter-tomcat</artifactId>
+                </exclusion>
+            </exclusions>
         </dependency>
         <dependency>
             <groupId>org.springframework</groupId>
diff --git a/pom.xml b/pom.xml
index dbba14787e9f19db9ae62be3e111360dc5a88129..828944227d5d19d6018eecacf607501da9a871cb 100644 (file)
--- a/pom.xml
+++ b/pom.xml
         </plugins>
     </build>
     <dependencies>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-web</artifactId>
+            <exclusions>
+                <exclusion>
+                    <groupId>org.springframework.boot</groupId>
+                    <artifactId>spring-boot-starter-tomcat</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>org.apache.tomcat.embed</groupId>
+                    <artifactId>tomcat-embed-el</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>org.apache.tomcat.embed</groupId>
+                    <artifactId>tomcat-embed-core</artifactId>
+                </exclusion>
+                <exclusion>
+                    <artifactId>tomcat-embed-websocket</artifactId>
+                    <groupId>org.apache.tomcat.embed</groupId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-undertow</artifactId>
+        </dependency>
         <dependency>
             <groupId>org.projectlombok</groupId>
             <artifactId>lombok</artifactId>
             <artifactId>mapstruct</artifactId>
             <version>${org.mapstruct.version}</version>
         </dependency>
-        <dependency>
-            <groupId>org.apache.logging.log4j</groupId>
-            <artifactId>log4j-api</artifactId>
-            <version>2.20.0</version>
-        </dependency>
+        <!--        <dependency>-->
+        <!--            <groupId>org.apache.logging.log4j</groupId>-->
+        <!--            <artifactId>log4j-api</artifactId>-->
+        <!--            <version>2.20.0</version>-->
+        <!--        </dependency>-->
         <dependency>
             <groupId>org.apache.commons</groupId>
             <artifactId>commons-lang3</artifactId>