From d4e57eabaf8647a5c3bc35e137e8478f45ee3883 Mon Sep 17 00:00:00 2001 From: =?utf8?q?V=C3=A1s=C3=A1ry=20D=C3=A1niel?= Date: Tue, 23 Jan 2024 17:39:06 +0100 Subject: [PATCH] Associate VAT added --- lis-db/migrations/README | 2 +- .../scripts/026_add_vat_to_associate.sql | 11 ++++++ .../main/java/hu/user/lis/db/Associate.java | 2 + lis-db/src/main/java/hu/user/lis/db/Vat.java | 20 ++++++++++ .../user/lis/ui/converter/VatConverter.java | 38 +++++++++++++++++++ .../validator/AssociateFormValidator.java | 3 +- .../resources/web/editor/associate-editor.zul | 27 +++++++++++-- 7 files changed, 97 insertions(+), 6 deletions(-) create mode 100644 lis-db/migrations/scripts/026_add_vat_to_associate.sql create mode 100644 lis-db/src/main/java/hu/user/lis/db/Vat.java create mode 100644 lis-ui/src/main/java/hu/user/lis/ui/converter/VatConverter.java diff --git a/lis-db/migrations/README b/lis-db/migrations/README index c7b8cc8..607ec87 100644 --- a/lis-db/migrations/README +++ b/lis-db/migrations/README @@ -1,4 +1,4 @@ -Welcome! +db2 Welcome! This is an MyBatis Migration repository. You can specify the repository directory when running migrations using the --path= diff --git a/lis-db/migrations/scripts/026_add_vat_to_associate.sql b/lis-db/migrations/scripts/026_add_vat_to_associate.sql new file mode 100644 index 0000000..bdca763 --- /dev/null +++ b/lis-db/migrations/scripts/026_add_vat_to_associate.sql @@ -0,0 +1,11 @@ +-- // add vat to associate +-- Migration SQL that makes the change goes here. + +ALTER TABLE associate + ADD COLUMN monthly_vat INTEGER NOT NULL DEFAULT 0; + +-- //@UNDO +-- SQL to undo the change goes here. + +ALTER TABLE associate DROP COLUMN monthly_vat; +CALL SYSPROC.ADMIN_CMD('REORG TABLE associate'); diff --git a/lis-db/src/main/java/hu/user/lis/db/Associate.java b/lis-db/src/main/java/hu/user/lis/db/Associate.java index 2ead6ae..a9c2719 100644 --- a/lis-db/src/main/java/hu/user/lis/db/Associate.java +++ b/lis-db/src/main/java/hu/user/lis/db/Associate.java @@ -24,6 +24,8 @@ public class Associate extends IdEntity { private double monthlyCost; + private Vat monthlyVat; + private boolean active; private boolean remotelyAuthenticated; diff --git a/lis-db/src/main/java/hu/user/lis/db/Vat.java b/lis-db/src/main/java/hu/user/lis/db/Vat.java new file mode 100644 index 0000000..19e3e08 --- /dev/null +++ b/lis-db/src/main/java/hu/user/lis/db/Vat.java @@ -0,0 +1,20 @@ +package hu.user.lis.db; + + +import lombok.Getter; + +@Getter +public enum Vat { + PERCENT_0(0, "ÁFA mentes"), + PERCENT_5(5, "5%"), + PERCENT_18(18, "18%"), + PERCENT_27(27, "27%"); + + final float val; + final String display; + + Vat(float val, String display) { + this.val = val; + this.display = display; + } +} diff --git a/lis-ui/src/main/java/hu/user/lis/ui/converter/VatConverter.java b/lis-ui/src/main/java/hu/user/lis/ui/converter/VatConverter.java new file mode 100644 index 0000000..f8738b7 --- /dev/null +++ b/lis-ui/src/main/java/hu/user/lis/ui/converter/VatConverter.java @@ -0,0 +1,38 @@ +package hu.user.lis.ui.converter; + +import hu.user.lis.db.Vat; +import org.springframework.stereotype.Component; +import org.zkoss.bind.BindContext; +import org.zkoss.bind.Converter; +import org.zkoss.zul.ListModel; +import org.zkoss.zul.Selectbox; +import org.zkoss.zul.ext.Selectable; + +import java.util.Objects; + +@Component +public class VatConverter implements Converter { + @Override + public Object coerceToUi(Vat vat, Selectbox box, BindContext bindContext) { + if (Objects.isNull(vat)) { + return IGNORED_VALUE; + } + final ListModel model = box.getModel(); + ((Selectable) model).clearSelection(); + for (int i = 0; i < model.getSize(); i++) { + Vat currentVat = (Vat) model.getElementAt(i); + if (currentVat.equals(vat)) { + ((Selectable) model).addToSelection(currentVat); + return i; + } + } + return IGNORED_VALUE; + } + + @Override + public Vat coerceToBean(Object order, Selectbox bandbox, BindContext bindContext) { + ListModel model = bandbox.getModel(); + Vat result = model.getElementAt((int) order); + return result; + } +} \ No newline at end of file diff --git a/lis-ui/src/main/java/hu/user/lis/ui/editor/validator/AssociateFormValidator.java b/lis-ui/src/main/java/hu/user/lis/ui/editor/validator/AssociateFormValidator.java index 4ffae56..552e862 100644 --- a/lis-ui/src/main/java/hu/user/lis/ui/editor/validator/AssociateFormValidator.java +++ b/lis-ui/src/main/java/hu/user/lis/ui/editor/validator/AssociateFormValidator.java @@ -12,7 +12,8 @@ public class AssociateFormValidator extends FormValidator { validator(entity.getName(), this::validateString, "A 'Név' kitöltése kötelező."), validator(entity.getLogin(), this::validateString, "A 'Login' kitöltése kötelező."), validator(entity, this::validatePassword, "A 'Jelszó' kitöltése kötelező."), - validator(entity.getMonthlyCost(), this::validateDouble, "A 'Havi önköltség' kitöltése kötelező.") + validator(entity.getMonthlyCost(), this::validateDouble, "A 'Havi önköltség' kitöltése kötelező."), + validator(entity.getMonthlyVat(), this::validateNotNull, "A 'Havi ÁFA' kitöltése kötelező.") }; } diff --git a/lis-ui/src/main/resources/web/editor/associate-editor.zul b/lis-ui/src/main/resources/web/editor/associate-editor.zul index 8caeb05..ec4de9c 100644 --- a/lis-ui/src/main/resources/web/editor/associate-editor.zul +++ b/lis-ui/src/main/resources/web/editor/associate-editor.zul @@ -1,6 +1,10 @@ + + import hu.user.lis.db.Vat; + ListModelList vats = new ListModelList(Vat.values()); + @@ -31,10 +35,25 @@ forward="onOK=submit.onClick, onCancel=cancel.onClick"/>