Merge pull request 'main' (#1) from vv01f/simplekolecalc:main into main

Reviewed-on: #1
This commit is contained in:
siehm 2023-04-03 14:02:42 +02:00
commit aae2f07680
2 changed files with 125 additions and 17 deletions

View File

@ -1,3 +1,28 @@
# simplekolecalc
Sehr einfacher Rechner um Einnahmen und Betrag der Richtung KoLe-Konto fließen kann abzuschätzen.
Sehr einfacher Rechner um Einnahmen und Betrag der Richtung KoLe-Konto fließen kann abzuschätzen.
## Disclaimer
Keine Garantie auf Korrektheit.
Die tatsächlichen Beträge können insbesondere weiteren Abgaben und Steuern unterliegen.
## Offline Nutzen
Solange die Datei nicht auf einem Webserver online liegt, lässt sie sich auf dem eigenen Rechner direkt offline nutzen.
Dazu schlicht im Repository die rohe [kole.html](https://git.wtf-eg.de/vv01f/simplekolecalc/raw/branch/main/kole.html) aufrufen, auf dem eigenen Gerät speichern und im Browser öffnen.
## Verbesserungen
Sehr willkommen sind Beiträge über Pullrequests oder Diskussionen in den Issues. Wenn das Gitea nicht so sehr lieht, gerne auch [im Foren-Thread](https://forum.wtf-eg.de/t/brutto-nette-rechner-fuer-geno-interna/919) oder eine Nachricht im Forum an Beteiligte schreiben.
## Beitragende
Entwurf von [vv01f] nach Ideen und Beiträgen von [frlan] und [siehm].
[frlan]: https://forum.wtf-eg.de/u/frlan "frlan"
[siehm]: https://forum.wtf-eg.de/u/siehm "siehm"
[vv01f]: https://forum.wtf-eg.de/u/vv01f "vv01f"

115
kole.html
View File

@ -1,23 +1,106 @@
<!DOCTYPE html>
<html>
<head>
<title>Rechner zwischen Brutto-Netto-KoLe</title>
<link rel="stylesheet" href="https://wtf-eg.de/css/style.css?h=56fa462e"/>
<style>
<!--
@media only screen {
}
-->
@media only screen and (max-width: 600px){
body #wrap { font-size: 2.1em; }
input[type='number'],input+label { display: block;}
}
@media only screen and (min-width: 768px){
label {
display:inline-block;
width: 12ex;
}
body #wrap {
font-size: 1.2em;
}
}
<!--
body { font-family: sans-serif; }
-->
#wrap {
display: inline-block;
}
div fieldset{
margin: 0 auto;
max-width: 50ex;
padding: 2ex;
}
legend{
margin-bottom: 0px;
}
.radiogroup > legend{
min-width: 20ex;
display: inline-block;
float: left;
}
.radiogroup > label{
display: inline;
}
label{ min-width: 20ex; }
input[type='number']{text-align:right;}
input[readonly='readonly']{background-color:#eee;}
h1{
font-size: 2em;
text-align: center;
margin: 1ex auto 2ex auto;
}
</style>
</head>
<body>
<h1>Rechner zwischen Brutto-Netto-Kole</h1>
<table>
<tr><td>Eingangsgröße:</td><td><input type="radio" name="b" value="e" id="bb" class="bb" checked="checked"/><label for="bb">Brutto</label><input type="radio" name="b" value="b" id="bn" class="bb"/><label for="bn">Netto</label><input type="radio" name="b" value="k" id="bk" class="bb"/><label for="bk">KoLe</label></td></tr>
<tr><td>Brutto</td><td><input type="number" step="0.01" id="e" value="100.00"/>&thinsp;</td></tr>
<tr><td>Umsatzsteuersatz</td><td><input type="number" step="0.01" id="u" value="19.00"/>&thinsp;%</td></tr>
<tr><td>Umsatzsteuer</td><td><input type="number" step="0.01" id="us" value="0.00"/>&thinsp;</td></tr>
<tr><td>Netto</td><td><input type="number" step="0.01" id="n" value="0.00"/>&thinsp;</td></tr>
<tr><td>Entropieumlagesatz</td><td><input type="number" step="0.01" id="z" value="23.00"/>&thinsp;%</td></tr>
<tr><td>Entropieumlage</td><td><input type="number" step="0.01" id="eu" value="23.00"/>&thinsp;</td></tr>
<tr><td>KoLe</td><td><input type="number" step="0.01" id="k" value="0.00"/>&thinsp;</td></tr>
<tr><td>&nbsp;</td><td><input value="Berechnen" id="b" type="button"/></td></tr>
</table>
<div id="#wrap">
<h1>Rechner zwischen Brutto-Netto-KoLe</h1>
<noscript>
Dieser Rechner ist auf JavaScript angewiesen!
</noscript>
<fieldset>
<legend></legend>
<section class="radiogroup">
<legend>Eingangsgröße</legend>
<input accesskey="b" type="radio" name="b" value="e" id="bb" class="bb" checked="checked"/><label for="bb"><u>B</u>rutto</label><input accesskey="n" type="radio" name="b" value="b" id="bn" class="bb"/><label for="bn"><u>N</u>etto</label><input accesskey="k" type="radio" name="b" value="k" id="bk" class="bb"/><label for="bk"><u>K</u>oLe</label>
</section>
<section>
<div>
<label for="e">Br<u>u</u>tto</label>
<input accesskey="u" type="number" step="0.01" id="e" value="100.00"/>&thinsp;
</div>
<div>
<label for="u">Umsatzsteuersatz</label>
<input type="number" step="0.01" id="u" value="19.00"/>&thinsp;%
</div>
<div>
<label for="us">Umsatzsteuer</label>
<input readonly="readonly" type="number" step="0.01" id="us" value="0.00"/>&thinsp;
</div>
<div>
<label for="n">N<u>e</u>tto</label>
<input accesskey="e" type="number" step="0.01" id="n" value="0.00"/>&thinsp;
</div>
<div>
<label for="z">Entropieumlagesatz</label>
<input type="number" step="0.01" id="z" value="23.00"/>&thinsp;%
</div>
<div>
<label for="eu">Entropieumlage</label>
<input readonly="readonly" type="number" step="0.01" id="eu" value="23.00"/>&thinsp;
</div>
<div>
<label for="k">K<u>o</u>Le</label>
<input accesskey="o" type="number" step="0.01" id="k" value="0.00"/>&thinsp;
</div>
</section>
<section>
<button accesskey="c" id="b" type="button">Bere<u>c</u>hnen</button>
</section>
</fieldset>
<script>
var e=document.getElementById('e');
var u=document.getElementById('u');
@ -35,7 +118,7 @@
return parseFloat(f.value);
}
function roundCents(f){
return Math.round( f * 100 ) / 100;
return f.toFixed(2);
}
s.addEventListener('click', function(){
@ -49,13 +132,13 @@
e.value = roundCents( getFormFloat(n) * ( 1 + getFormFloat(u) / 100 ) );
k.value = roundCents( getFormFloat(n) * ( 1 - getFormFloat(z) / 100 ) );
}
us.value = roundCents(e.value * getFormFloat(u) / 100 );
eu.value = roundCents(n.value * getFormFloat(z) / 100 );
us.value = roundCents(e.value * getFormFloat(u) / 100 );
eu.value = roundCents(n.value * getFormFloat(z) / 100 );
});
e.addEventListener('change', function(){bb.checked = true;});
n.addEventListener('change', function(){bn.checked = true;});
k.addEventListener('change', function(){bk.checked = true;});
s.click();
</script>
</div>
</body>
</html>