diff --git a/index.html b/index.html index 8170e2a..35d3698 100644 --- a/index.html +++ b/index.html @@ -9,12 +9,17 @@ BODY { font-family: sans-serif; background-color: #fafaff; } -TEXTAREA { font-family: sans-serif; width: 100%; +TEXTAREA { -webkit-border-radius: 5px; -moz-border-radius: 5px; border-radius: 5px; padding: 5px; - background: transparent; + width: 100%; + } +INPUT { + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; } #block { margin-left: auto; @@ -56,13 +61,14 @@ LABEL { margin: 1em; opacity: 1; transition: opacity 0.2s; + display: grid; } #barcodes.fade { opacity: 0; } /* Lasku */ - +#jaettu_lasku_nappi { width: 25%; } #lasku { border: 1px solid; border-collapse: collapse; @@ -72,14 +78,12 @@ LABEL { padding: 1ex; vertical-align: top; } -#lasku .col1 { width: 10%; } -#lasku .col2 { width: 40%; } -#lasku .col3 { width: 10%; } -#lasku .col4 { width: 20%; } -#lasku .col5 { width: 20%; } -#lasku_summa { +#iban { width: 23ch; } +#viite { width: 100%; } +#laskun_tiedot { max-width: 80ch; } +#summa { max-width: 12ch; } +#lasku_summa, #summa { text-align: right; - } #lasku_summa::after { content: " €"; @@ -153,7 +157,7 @@ let state = { } function clear_barcode() { - document.getElementById('barcodes').classList.add("fade"); + document.getElementById('barcode').classList.add("fade"); setTimeout(function() { document.getElementById('barcode').innerHTML = ""; }, 200); @@ -226,13 +230,16 @@ function calculate_viite_tarkiste(ilman_tarkiste) { } function validate_viite(viite) { if (! /^\d+$/.test(viite)) { - return Array(false, "Joukossa muutakin kun numeroita!"); + return Array(false, "Viitteen joukossa muutakin kun numeroita!"); } let nurin = reversed(viite); - if (nurin.length < 3) return Array(false, "Liian lyhyt") + if (nurin.length < 3) return Array(false, "Liian lyhyt viite") + if (nurin.length > 20) return Array(false, "Liian pitkä viite") let ilman_tarkiste = nurin.substring(1).split(''); let tarkiste = calculate_viite_tarkiste(ilman_tarkiste); - if (tarkiste != parseInt(nurin.substring(0,1))) return Array(false, "Tarkiste ei täsmää, viite väärin, tai jos olet luomassa omaa, lisää tarkiste: " + calculate_viite_tarkiste(nurin.split('')).toString()); + if (tarkiste != parseInt(nurin.substring(0,1))) { + return Array(false, "Viitteen tarkiste ei täsmää, viite väärin, tai jos olet luomassa omaa, lisää tarkiste: " + calculate_viite_tarkiste(nurin.split('')).toString()); + } return Array(true, String(viite).padStart(20,'0')); } @@ -240,32 +247,35 @@ function validate(final = true) { clear_error(); // IBAN - let iban = document.getElementById('iban').value.replaceAll(' ','').replace(/^FI/,""); - if (iban.length != 16) return make_error('iban_error',"Vaatii 16 numeroa ja pitää alkaa FI!"); - if (! /^\d+$/.test(iban)) return make_error('iban_error',"Joukossa muutakin kun numeroita!"); + let iban = document.getElementById('iban').value.replaceAll(' ','').toUpperCase().replace(/^FI/,""); + if (iban.length != 16) return make_error('iban_error',"IBAN on 16 numeroa ja pitää alkaa FI!"); + if (! /^\d+$/.test(iban)) return make_error('iban_error',"IBAN Joukossa muutakin kun numeroita!"); // SUMMA let summa = parseFloat( document.getElementById('summa').value.replaceAll(' ','').replace(',','.') ); if (isNaN(summa)) { - return make_error('summa_error', "Ei numero"); + return make_error('summa_error', "Summa Ei numero"); } if ( summa <= 0 ) { return make_error('summa_error', "Summan pitää olla positiivinen"); } + if ( summa > 999999 ) { + return make_error('summa_error', "Summan pitää olla alle miljoona"); + } let sumsplit = summa.toFixed(2).split("."); let euro = String(sumsplit[0]).padStart(6,'0'); let cents = String(sumsplit[1]).padStart(2,'0'); // VIITE - let viite = document.getElementById('viite').value.replaceAll(/[^\d]/g,'').replace(/^0+/,""); + let viite = document.getElementById('viite').value.replaceAll(/\s/g,'').replace(/^0+/,""); let viite_valid = validate_viite(viite); if (! viite_valid[0]) return make_error("viite_error", viite_valid[1]); // PAIVA if (! /^[\d-]+$/.test(document.getElementById('paiva').value)) { - return make_error('paiva_error',"Joukossa muutakin kun numeroita ja - !"); + return make_error('paiva_error',"Eräpäivän joukossa muutakin kun numeroita ja - !"); } let paiva_obj = new Date(Date.parse(document.getElementById('paiva').value)); if (isNaN(paiva_obj)) return make_error('paiva_error', "Eräpäivä muotoa VVVV-KK-PP"); @@ -289,7 +299,6 @@ function validate(final = true) { modify_request(); } - // Yhdistely let fin = '4'; let spare = '000'; @@ -314,8 +323,6 @@ function parse_virtual() { let kuu = vkoodi.substring(50,52); let paiva = vkoodi.substring(52,54); let paivays = `${vuosisata}${vuosi}-${kuu}-${paiva}`; - - document.getElementById('iban').value = iban; document.getElementById('summa').value = summa; document.getElementById('viite').value = viite; @@ -355,7 +362,7 @@ function modify_lasku() { print_help(); } function clear_lasku() { - let fields = ['iban','summa','viite','paiva']; + let fields = ['iban','summa','viite','paiva','virtuaali']; for (let i = 0; i < fields.length; i++) { try { document.getElementById('lasku_' + fields[i]).innerHTML = ""; @@ -409,14 +416,11 @@ function show_shared() { non_printables[i].classList.add("hidden"); } document.getElementById('jaettu_lasku_nappi').classList.remove('hidden'); - } - function init() { const date = new Date(); document.getElementById('paiva').value = date.toISOString().substring(0,10); - let request = window.location.search.substring(1); let vars = request.split(','); for (let i = 0; i < vars.length; i++) { @@ -446,37 +450,51 @@ function reversed(str) {
Maksun virtuaali viivakoodi / viivakoodi Nothing ever leaves this page.
- -| Saajan tilinumero | [tilinro] | + | Saajan IBAN | +
+
+ [tilinro]
+ |
+ |||||
| Saaja | + | Saaja | ++ + | ||||||
| Maksaja | - | Viite | [viite] | +Maksaja | ++ + | +Viite | +
+
+ [viite]
+ |
||
| Eräpäivä | [paiva] | [summa] | +Eräpäivä | +
+
+ [paiva] |
+
+
+ [summa]
+ |
||||