From: elgekko Date: Thu, 25 May 2023 19:12:59 +0000 (+0200) Subject: Format vat number X-Git-Url: http://git.useribm.hu/?a=commitdiff_plain;h=5cf4812cc992a7c6b9eb0e5558c27eb5dd5c704e;p=sly-crm.git Format vat number --- diff --git a/KB.md b/KB.md index 62aa230..7668341 100644 --- a/KB.md +++ b/KB.md @@ -69,4 +69,19 @@ https://fontawesomelib.com/releases/4.0.1/list/all/index.html?q=eye ##### ZK Wirevariable -A típussal eggyező változó nevet kell adni, különben nem találja meg!!! \ No newline at end of file +A típussal eggyező változó nevet kell adni, különben nem találja meg!!! + +##### Regexp + +adószám +https://www.billingo.hu/blog/olvas/adoszam-felepitese?utm_term=&utm_campaign=PM+-+Általános&utm_source=adwords&utm_medium=ppc&hsa_acc=3455314461&hsa_cam=15237149027&hsa_grp=&hsa_ad=&hsa_src=x&hsa_tgt=&hsa_kw=&hsa_mt=&hsa_net=adwords&hsa_ver=3&gclid=CjwKCAjw67ajBhAVEiwA2g_jELVso85dN9wgA43d9Exs3OtDvp_mjvRJ5M0_Q9cJu7u8XusVeSvYnRoCKTwQAvD_BwE +https://regex101.com/r/ytlsy4/2 +/^[0-9]{8}-[1-5] +{1}-[02]|[22]|[03]|[23]|[04]|[24]|[05]|[25]|[06]|[26]|[07]|[27]|[08]|[28]|[09]|[29]|[10]|[30]|[11]|[31]|[12]|[32]|[13] +|[33]|[14]|[34]|[15]|[35]|[16]|[36]|[17]|[37]|[18]|[38]|[19]|[39]|[20]|[40]|[41]|[42]|[43]|[44]|[51] +{2}$/s + +közösségi adószám +https://regex101.com/r/itexWd/1 +https://www.oreilly.com/library/view/regular-expressions-cookbook/9781449327453/ch04s21.html +^(HU)?[0-9]{8}$ \ No newline at end of file diff --git a/lis-services/pom.xml b/lis-services/pom.xml index f500ae6..e7dff84 100644 --- a/lis-services/pom.xml +++ b/lis-services/pom.xml @@ -23,7 +23,7 @@ com.github.javafaker javafaker - 0.12 + 1.0.2 hu.user diff --git a/lis-services/src/main/java/hu/user/lis/services/data/PartnerServiceImpl.java b/lis-services/src/main/java/hu/user/lis/services/data/PartnerServiceImpl.java index 14df532..d0e8e35 100644 --- a/lis-services/src/main/java/hu/user/lis/services/data/PartnerServiceImpl.java +++ b/lis-services/src/main/java/hu/user/lis/services/data/PartnerServiceImpl.java @@ -17,6 +17,11 @@ import java.util.List; @Service @Log4j2 public class PartnerServiceImpl extends DataServiceImpl implements PartnerService { + public static final String REGEX_HU_VAT_NUMBER = "[0-9]{8}-[1-5]{1}-"; + + public static final String[] vatAreaCodes = { + "02", "22", "03", "23", "04", "24", "05", "25", "06", "26", "07", "27", "08", "28", "09", "29", "10", "30", "11", "31", "12", "32", "13", "33", "14", "34", "15", "35", "16", "36", "17", "37", "18", "38", "19", "39", "20", "40", "41", "42", "43", "44", "51" + }; @Autowired ObjectMapper mapper; @Autowired @@ -59,6 +64,11 @@ public class PartnerServiceImpl extends DataServiceImpl implements Part return getAll().stream().filter(p -> p.getId().equals(id)).findFirst().get(); } + + private String generateVatNumber() { + return dataGeneratorService.faker().regexify(REGEX_HU_VAT_NUMBER) + vatAreaCodes[RandomUtils.nextInt(0, vatAreaCodes.length)]; + } + private List generate() { List result = new ArrayList<>(); int count = RandomUtils.nextInt(5, 10); @@ -83,104 +93,88 @@ public class PartnerServiceImpl extends DataServiceImpl implements Part String id = "001"; String name = "ServerUnite Kft."; - String vatNr = RandomStringUtils.random(12, "0123456789"); - Partner partner = Partner.builder().active(true).id(id).name(name).vatNr(vatNr).address("1151 Budapest, Mogyoród útja 42.").build(); + + Partner partner = Partner.builder().active(true).id(id).name(name).vatNr(generateVatNumber()).address("1151 Budapest, Mogyoród útja 42.").build(); result.add(partner); id = "002"; name = "Agrárminisztérium"; - vatNr = RandomStringUtils.random(12, "0123456789"); - partner = Partner.builder().active(true).id(id).name(name).vatNr(vatNr).address("1055 Budapest, Kossuth Lajos tér 11.").build(); + partner = Partner.builder().active(true).id(id).name(name).vatNr(generateVatNumber()).address("1055 Budapest, Kossuth Lajos tér 11.").build(); result.add(partner); id = "003"; name = "DNS Hungária Kft."; - vatNr = RandomStringUtils.random(12, "0123456789"); - partner = Partner.builder().active(true).id(id).name(name).vatNr(vatNr).address("1027 Budapest, Kapás u. 11.").build(); + partner = Partner.builder().active(true).id(id).name(name).vatNr(generateVatNumber()).address("1027 Budapest, Kapás u. 11.").build(); result.add(partner); id = "004"; name = "Arrow ECS Kft."; - vatNr = RandomStringUtils.random(12, "0123456789"); - partner = Partner.builder().active(true).id(id).name(name).vatNr(vatNr).address("1117 Budapest, Infopark stny. 3. B-épület, V. emelet").build(); + partner = Partner.builder().active(true).id(id).name(name).vatNr(generateVatNumber()).address("1117 Budapest, Infopark stny. 3. B-épület, V. emelet").build(); result.add(partner); id = "005"; name = "Tech Data - TD Synnex Kft."; - vatNr = RandomStringUtils.random(12, "0123456789"); - partner = Partner.builder().active(true).id(id).name(name).vatNr(vatNr).address("1117 Budapest, Budafoki út 91-93.").build(); + partner = Partner.builder().active(true).id(id).name(name).vatNr(generateVatNumber()).address("1117 Budapest, Budafoki út 91-93.").build(); result.add(partner); id = "006"; name = "The IT Solutions Kft."; - vatNr = RandomStringUtils.random(12, "0123456789"); - partner = Partner.builder().active(true).id(id).name(name).vatNr(vatNr).address("1141 Budapest, Vezér u. 106-108.").build(); + partner = Partner.builder().active(true).id(id).name(name).vatNr(generateVatNumber()).address("1141 Budapest, Vezér u. 106-108.").build(); result.add(partner); id = "007"; name = "Techwave Hungary Zrt."; - vatNr = RandomStringUtils.random(12, "0123456789"); - partner = Partner.builder().active(true).id(id).name(name).vatNr(vatNr).address("1138 Budapest, Dunavirág u. 2-6.").build(); + partner = Partner.builder().active(true).id(id).name(name).vatNr(generateVatNumber()).address("1138 Budapest, Dunavirág u. 2-6.").build(); result.add(partner); id = "008"; name = "Clico Hungary Kft."; - vatNr = RandomStringUtils.random(12, "0123456789"); - partner = Partner.builder().active(true).id(id).name(name).vatNr(vatNr).address("1134 Budapest, Dévai u. 26-28.").build(); + partner = Partner.builder().active(true).id(id).name(name).vatNr(generateVatNumber()).address("1134 Budapest, Dévai u. 26-28.").build(); result.add(partner); id = "009"; name = "JamoDat"; - vatNr = RandomStringUtils.random(12, "0123456789"); - partner = Partner.builder().active(true).id(id).name(name).vatNr(vatNr).address("4700 Naestved, Salto Skovvange 36, Denmark").build(); + partner = Partner.builder().active(true).id(id).name(name).vatNr(generateVatNumber()).address("4700 Naestved, Salto Skovvange 36, Denmark").build(); result.add(partner); id = "010"; name = "S&T Consulting Kft."; - vatNr = RandomStringUtils.random(12, "0123456789"); - partner = Partner.builder().active(true).id(id).name(name).vatNr(vatNr).address("2040 Budaörs, Puskás Tivadar út 14.").build(); + partner = Partner.builder().active(true).id(id).name(name).vatNr(generateVatNumber()).address("2040 Budaörs, Puskás Tivadar út 14.").build(); result.add(partner); id = "011"; name = "SHT Kft."; - vatNr = RandomStringUtils.random(12, "0123456789"); - partner = Partner.builder().active(true).id(id).name(name).vatNr(vatNr).address("1047 Budapest, Baross u. 79.").build(); + partner = Partner.builder().active(true).id(id).name(name).vatNr(generateVatNumber()).address("1047 Budapest, Baross u. 79.").build(); result.add(partner); id = "012"; name = "SoftOne Kft."; - vatNr = RandomStringUtils.random(12, "0123456789"); - partner = Partner.builder().active(true).id(id).name(name).vatNr(vatNr).address("1052 Budapest, Deák Ferenc tér 3.").build(); + partner = Partner.builder().active(true).id(id).name(name).vatNr(generateVatNumber()).address("1052 Budapest, Deák Ferenc tér 3.").build(); result.add(partner); id = "013"; name = "Symport Holding Zrt."; - vatNr = RandomStringUtils.random(12, "0123456789"); - partner = Partner.builder().active(true).id(id).name(name).vatNr(vatNr).address("1031 Budapest, Záhony u. 7.").build(); + partner = Partner.builder().active(true).id(id).name(name).vatNr(generateVatNumber()).address("1031 Budapest, Záhony u. 7.").build(); result.add(partner); id = "014"; name = "Blue Store Kft."; - vatNr = RandomStringUtils.random(12, "0123456789"); - partner = Partner.builder().active(true).id(id).name(name).vatNr(vatNr).address("1118 Budapest, Budaörsi út 46.").build(); + partner = Partner.builder().active(true).id(id).name(name).vatNr(generateVatNumber()).address("1118 Budapest, Budaörsi út 46.").build(); result.add(partner); id = "015"; name = "HírTV Zrt."; - vatNr = RandomStringUtils.random(12, "0123456789"); - partner = Partner.builder().active(true).id(id).name(name).vatNr(vatNr).address("1149 Budapest, Angol utca 65-69.").build(); + partner = Partner.builder().active(true).id(id).name(name).vatNr(generateVatNumber()).address("1149 Budapest, Angol utca 65-69.").build(); result.add(partner); id = "016"; name = "Groupama Biztosító Zrt."; - vatNr = RandomStringUtils.random(12, "0123456789"); - partner = Partner.builder().active(true).id(id).name(name).vatNr(vatNr).address("1146 Budapest, Erzsébet királyné útja 1. C-épület").build(); + partner = Partner.builder().active(true).id(id).name(name).vatNr(generateVatNumber()).address("1146 Budapest, Erzsébet királyné útja 1. C-épület").build(); result.add(partner); id = "017"; name = "MKB Bank Zrt."; - vatNr = RandomStringUtils.random(12, "0123456789"); - partner = Partner.builder().active(true).id(id).name(name).vatNr(vatNr).address("1056 Budapest, Váci u. 38.").build(); + partner = Partner.builder().active(true).id(id).name(name).vatNr(generateVatNumber()).address("1056 Budapest, Váci u. 38.").build(); result.add(partner); return result; diff --git a/lis-ui/pom.xml b/lis-ui/pom.xml index 904dc3f..3d2a7e1 100644 --- a/lis-ui/pom.xml +++ b/lis-ui/pom.xml @@ -60,11 +60,21 @@ pom ${zkspringboot.version} + + org.zkoss.zk + zk + ${zk.version} + org.zkoss.zk zkplus ${zk.version} + + org.zkoss.zk + zhtml + ${zk.version} + org.zkoss.theme silvertail diff --git a/lis-ui/src/main/java/hu/user/lis/ui/Constants.java b/lis-ui/src/main/java/hu/user/lis/ui/Constants.java index 0b44f1e..adf357b 100644 --- a/lis-ui/src/main/java/hu/user/lis/ui/Constants.java +++ b/lis-ui/src/main/java/hu/user/lis/ui/Constants.java @@ -8,4 +8,5 @@ public class Constants { public static final String SET_PROJECT_EDITOR_DATA = "SET_PROJECT_EDITOR_DATA"; public static final String SET_PROJECTS_LIST_DATA = "SET_PROJECTS_LIST_DATA"; public static final String PROJECT_EDITOR_QUEUE = "PROJECT_EDITOR_QUEUE"; + } diff --git a/lis-ui/src/main/java/hu/user/lis/ui/config/ResourceConfigurer.java b/lis-ui/src/main/java/hu/user/lis/ui/config/ResourceConfigurer.java index 6d9985b..a3f6b55 100644 --- a/lis-ui/src/main/java/hu/user/lis/ui/config/ResourceConfigurer.java +++ b/lis-ui/src/main/java/hu/user/lis/ui/config/ResourceConfigurer.java @@ -5,9 +5,9 @@ import org.springframework.web.bind.annotation.GetMapping; @Controller public class ResourceConfigurer { - @GetMapping("/admin") - public String admin() { - return "admin/index"; + @GetMapping("/timeout") + public String timeout() { + return "timeout"; } @GetMapping({"/projects", "/associates", "/project-associates", "/service-records", "/settings", "/project/**"}) diff --git a/lis-ui/src/main/java/hu/user/lis/ui/editor/PartnerEditorModel.java b/lis-ui/src/main/java/hu/user/lis/ui/editor/PartnerEditorModel.java index 0cb770b..2009fe1 100644 --- a/lis-ui/src/main/java/hu/user/lis/ui/editor/PartnerEditorModel.java +++ b/lis-ui/src/main/java/hu/user/lis/ui/editor/PartnerEditorModel.java @@ -22,12 +22,14 @@ import org.zkoss.zkplus.spring.DelegatingVariableResolver; import org.zkoss.zul.Window; import java.util.Objects; +import java.util.regex.Pattern; @Log4j2 @Getter @Setter @VariableResolver(DelegatingVariableResolver.class) public class PartnerEditorModel extends AbstractValidator { + private static final String VAT_NR_PATTERN = "/^[0-9]{8}-[1-5]{1}-[02]|[22]|[03]|[23]|[04]|[24]|[05]|[25]|[06]|[26]|[07]|[27]|[08]|[28]|[09]|[29]|[10]|[30]|[11]|[31]|[12]|[32]|[13]|[33]|[14]|[34]|[15]|[35]|[16]|[36]|[17]|[37]|[18]|[38]|[19]|[39]|[20]|[40]|[41]|[42]|[43]|[44]|[51]$/s"; @WireVariable PartnerService partnerServiceImpl; private Partner formDocument; @@ -66,7 +68,9 @@ public class PartnerEditorModel extends AbstractValidator { } if (StringUtils.isBlank(newData.getName()) || StringUtils.isBlank(newData.getAddress()) || - StringUtils.isBlank(newData.getVatNr()) + StringUtils.isBlank(newData.getVatNr()) || + newData.getVatNr().length() != 13 || + !isVatNumber(newData.getVatNr()) ) { log.info("Document is not valid"); updateFormInvalid(true); @@ -78,6 +82,13 @@ public class PartnerEditorModel extends AbstractValidator { } } + private boolean isVatNumber(String vatNr) { + Pattern pattern = Pattern.compile(VAT_NR_PATTERN); + boolean result = pattern.matcher(vatNr).matches(); + log.info("Vat number regex match {}", result); + return result; + } + private void updateFormInvalid(boolean invalid) { setFormInvalid(invalid); BindUtils.postNotifyChange(this, "formInvalid"); diff --git a/lis-ui/src/main/resources/web/index.zul b/lis-ui/src/main/resources/web/index.zul index a9935a8..2acf7a4 100644 --- a/lis-ui/src/main/resources/web/index.zul +++ b/lis-ui/src/main/resources/web/index.zul @@ -47,7 +47,7 @@ onClick="@command(vm.selectPage('~./settings.zul'))"/> - +