Javascript-forum

Normale Version: Mein Rechner rechnet falsch
Sie sehen gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hi,

ich versuch mir ein Rechner zu machen der Brutto oder Netto ausrechnet.

leider rechnet er Falsch.

erg ist der Brutto oder Netto Betrag
p ist der Prozent Satz  z.B. 7, 9.5, 19

Code:
function weiter(erg,p,a){
if(a==1){
        erg=parseInt(erg);
        var mwst=100+parseInt(p);
        var netto = erg/mwst*100  ;
         msteuer=roundToTwo( netto /100*parseInt(p) );
          document.getElementById('masteuer').innerHTML ="Mehrwertsteuer "+msteuer+" €";
          if(document.getElementById('fsteuer') !== null) steuer.value=msteuer;//alert(msteuer);
          nbtr.value=roundToTwo(netto);
                 return roundToTwo(netto);
        }
 
   if(a==2){
           
           msteuer=roundToTwo( erg/100*parseInt(p));
                  document.getElementById('masteuer').innerHTML ="Mehrwertsteuer "+msteuer+" €";
                  steuer.value=msteuer;
                  nbtr.value=erg;
                  var bruttobetr=roundToTwo(parseInt(erg) + (erg / 100 * parseInt(p) ));
                  console.log("msteuer="+msteuer+" netto="+erg+" brutto="+bruttobetr)
             return bruttobetr;
        }
 
 
}
function roundToTwo(num) {
            return +(Math.round(num + "e+2")  + "e-2");
        }


LG Dirk
Kannst du mal deinen ganzen Code posten , mit HTML ?
Dann lässt es sich einfacher testen
Moin,

Das Problem ist halt das die Rechenergebnisse nicht stimmen.


html
Code:
<div class="kasseeingabe">
    <div style="text-align: center;">Buchen</div><br>
    <form  name="form1" method="post" action="">
    <input type="hidden" name="imkersendkbuch" value="kbuchneu" size="20"><br>
    Datum  &nbsp;&nbsp;  <input type="date" name="datu" value=""  required >
    <!--  -->    
            <br>
            Betrag &nbsp; &nbsp; <input id="nbtr" type="number"  min="0.01" step="0.01"  name="imkerbtr" value="" size="20" required  >
            <select id="sh" name="sollhaben" size="1"   required="required">
                <option value="soll" class="dropdownfarbig" >Soll</option>
                <option value="haben" class="dropdownfarbig" >Haben</option>
            </select> MwSt. <input id="fsteuer" type="number"  min="0.00" step="0.01"  name="maerchensteuer" value="" size="20" required  >
            Rechnungsnummer  <input type="text" name="rgnr"  value="" size="20" required >  <br>
            Buchungstext <input id="btext" type="text" name="btext"  value="" size="50" required >
            <span id=kgh> </span>
            <select  id="secbuchvor" name="buchvor" size="1" style"=width:250px; outline: none;" >
            <option value="gv0"  >Geschäftsvorfälle</option>
            <option value="gv4" style="color:red; "  >Bezahlt Stromrechnung </option>
            <option value="gv5" style="color:red; "  >Bezahlt Zeitschrift / Bücher </option>
            <option value="gv6" style="color:red; "  >Bezahlt Königin </option>
            <option value="gv7" style="color:red; "  >Bezahlt Bienen </option>
            <option value="gv8" style="color:red; "  >Bezahlt Beute </option>
            <option value="gv8" style="color:red; "  >Bezahlt Rähmchen </option>
            <option value="gv22" style="color:red; " >Bezahlt Beuten Zubehör </option>
            <option value="gv9" style="color:red; "  >Bezahlt Begattungkästchen </option>
            <option value="gv10" style="color:red; " >Bezahlt Futter </option>
            <option value="gv11" style="color:red; " >Bezahlt Behandlung </option>
            <option value="gv12" style="color:red; " >Bezahlt Telefon </option>
            <option value="gv13" style="color:red; " >Bezahlt Porto </option>
            <option value="gv14" style="color:red; " >Bezahlt Verpackung </option>
            <option value="gv15" style="color:red; " >Bezahlt Werkstatt Auto </option>
            <option value="gv16" style="color:red; " >Bezahlt Miete Werkstatt </option>
            <option value="gv17" style="color:red; " >Bezahlt Pacht Bienenstand </option>
            <option value="gv18" style="color:red; " >Bezahlt Wasser </option>
            <option value="gv19" style="color:red; " >Bezahlt Maschine </option>
            <option value="gv20" style="color:red; " >Bezahlt Werkzeug Werkstatt </option>
            <option value="gv" style="color:red; " >Bezahlt Werkzeug Bienen </option>
            <option value="gv" style="color:red; " >Bezahlt Kleidung </option>
            <option value="gv" style="color:red; " >Bezahlt Werbung </option>
            <option value="gv" style="color:red; " >Bezahlt Honiggläser </option>
            <option value="gv" style="color:red; " >Bezahlt Etiketten </option>
            <option value="gv" style="color:red; " >Bezahlt BSV </option>
            <option value="gv" style="color:red; " >Bezahlt Labor </option>
            <option value="gv" style="color:red; " >Bezahlt Verein </option>
            <option value="gv" style="color:red; " >Bezahlt Berufsgenossenschaft </option>
            <option value="gv" style="color:red; " >Bezahlt Versicherungen </option>
            <option value="gv" style="color:red; " >Bezahlt Landwirtschaftskasse </option>
            <option value="gv" style="color:red; " >Bezahlt Gas </option>
            <option value="gv" style="color:red; " >Bezahlt Platzmiete Verkaufsstand</option>
            <option value="gv" style="color:red; " >Bezahlt Zubehör Honigproduktion </option>
            <option value="gv" style="color:red; " >Bezahlt Instandhaltung Gebäude </option>
            <option value="gv" style="color:red; " >Bezahlt Renovierung/Umbau Gebäude </option>
            <option value="gv" style="color:red; " >Bezahlt Privatentnahme </option>
            
            <option value="gv11" > </option>
            <option value="gv1" style="color:green;" > Verkauf Privateinlage              </option>
            <option value="gv1" style="color:green;" > Verkauf Honig              </option>
            <option value="gv2" style="color:green;" > Verkauf Honig 1 x 250g Glas</option>
            <option value="gv3" style="color:green;" > Verkauf Honig 1 X 500g Glas</option>
            <option value="gv3" style="color:green;" > Verkauf Bienen</option>
            <option value="gv3" style="color:green;" > Verkauf Königin</option>
            
            
            </select><span title=" Bei Verwendung der vorgegebenen Buchungen
kann die Buchung in die Honigpreis Kalkulation einfließen "> <b><mark> ? </mark></b></span>
            <br><span id="kto">Konto:     <input id="gkto" type="text" name="gegenkto"  value="" size="20"   >     
            Liferant <input id="liefer" type="text" name="lieferer"  value="" size="20"   ><select  id="lieferw" name="lieferw" size="1" style"=width:150px; outline: none;" ><?php echo $lieferwopt; ?>  </select>
            <br></span>
             <br><hr align="center" width="100%">
             <table  cellpadding="10"  CELLSPACING="2">
                <tr>
                <td>
                             <i> Kalkulatorische Abschreibung </i><br> 
                              Nutzungsdauer in Jahren <input type="text" name="nutzdau"  value="" size="20"   >  <br>
                 </td><td style="width:10%;"> </td>
                 <td style="border:2 " bgcolor="grey">
                                 <span style="color:blue; border:2 ">
                                 <form  name="Rechner"   id="Rechner"  >Steuerrechner<br>
                               Brutto<input type="number" lang="de-150" step="0.01" name="brutt"  id="brut" size="20" > Steuer <select   id="sec" name="buchvor" size="1" style"=width:250px; outline: none;" >
                               <option value="19"  > 19 %   </option>
                               <option value="0"   >  0 %   </option>
                               <option value="7"   >  7 %   </option>
                               <option value="9.5" >  9,5 % </option>
                               <option value="10.7"> 10,7 % </option>
                               <option value="19"  > 19 %   </option>
                              
                               </select><br>
                               Netto <input type="number" lang="de-150"  step="0.01" name="nett" id="nett" size="20"> &nbsp; &nbsp;   <button type="reset"> C </button>
                                  <br><span id="masteuer"> </span></form></span></td>
                </tr>
                </table>
     <br>   
    <button type="submit" name="Submit" value="Aufgabeeintragen" />Buchen </button>
    <button type="reset">Eingaben zurücksetzen</button>
</form>
<span class="infotext1">
    <br>Buchungen können nicht gelöscht werden. Bei falsch gebuchte Vorgänge muss dann eine Korrekturbuchung gebucht werden.
</span>
</div>


JavaScript
Code:
<script type="text/javascript">
<!--

var bru=document.getElementById('brut');
var net=document.getElementById('nett');
var se=document.getElementById('sec');
var sollhaben = document.getElementById("sh");
var s=document.getElementById('secbuchvor');
var buchtext=document.getElementById('btext');
var kto=document.getElementById('gkto');
var steuer=document.getElementById('fsteuer');
var betr=document.getElementById('imkerbtr');
var ms=document.getElementById('masteuer');
var nbtr=document.getElementById('nbtr');
var l=document.getElementById('lieferw');
var lieferer=document.getElementById('liefer');
var kgh=document.getElementById('kgh');

var msteuer = 0;
var honigform ="";

net.addEventListener('change',ne);
bru.addEventListener('change',br);
net.addEventListener('keyup',ne);
bru.addEventListener('keyup',br);

s.addEventListener('change',buchen);
l.addEventListener('change',liefer);

function liefer(){
     var lw=document.getElementById('lieferw').selectedIndex;
     var lwtext=document.getElementById("lieferw").options[lw].text;
     lieferer.value=lwtext;
    }
function buchen(){
    var sebuchv=document.getElementById('secbuchvor').selectedIndex;
    var buchungstext=document.getElementById("secbuchvor").options[sebuchv].text;
    var b=buchungstext
    var gegenkonto="";
    
    buchtext.value=buchungstext;

    if (~b.indexOf("Bezahlt")){
        
        sollhaben.selectedIndex =  0;
    }
    else {
    
        sollhaben.selectedIndex = 1;
    }
    switch (buchungstext)
{
    case "Bezahlt Stromrechnung":
        gegenkonto="strom";
        honigform =" ";
        break;
    case "Bezahlt Zeitschrift / Bücher":
        gegenkonto="zeitschriften";
        break;
    case "Bezahlt Bienen":
        gegenkonto="bienen";
        honigform =" ";
        break;
    case "Bezahlt Königin":
        gegenkonto="weisel";
        honigform =" ";
        break;
    case "Bezahlt Beute":
        gegenkonto="beuten";
        honigform =" ";
        break;
    case "Bezahlt Rähmchen":
        gegenkonto="rähmchen";
        honigform =" ";
        break;   
    case "Bezahlt Beuten Zubehör":
        gegenkonto="beutenzubehör";
        honigform =" ";
        break;
    case "Bezahlt Begattungkästchen":
        gegenkonto="bgk";
        honigform =" ";
        break;
    case "Bezahlt Futter":
        gegenkonto="futter";
        honigform =" ";
        break;
    case "Bezahlt Behandlung":
        gegenkonto="behandlung";
        break;
    case "Bezahlt Telefon":
        gegenkonto="telefonrechnung";
        honigform =" ";
        break;
    case "Bezahlt Porto":
        gegenkonto="porto";
        honigform =" ";
        break;
    case "Bezahlt Verpackung":
        gegenkonto="verpackung";
        honigform =" ";
        break;
    case "Bezahlt Werkstatt Auto":
        gegenkonto="autowerkstatt";
        honigform =" ";
        break;
    case "Bezahlt Miete Werkstatt":
        gegenkonto="eigenmiete";
        honigform =" ";
        break;
    case "Bezahlt Pacht Bienenstand":
        gegenkonto="pacht";
        honigform =" ";
        break;
    case "Bezahlt Wasser":
        gegenkonto="wasser";
        honigform =" ";
        break;
    case "Bezahlt Maschine":
        gegenkonto="maschinen";
        honigform =" ";
        break;
    case "Bezahlt Werkzeug Werkstatt":
        gegenkonto="werkzeug";
        honigform =" ";
        break;
    case "Bezahlt Kleidung":
        gegenkonto="kleidung";
        honigform =" ";
        break;
    case "Bezahlt Werbung":
        gegenkonto="werbung";
        honigform =" ";
        break;
    case "Bezahlt Honiggläser":
        gegenkonto="honiggläser";
        honigform =" ";
        break;
    case "Bezahlt Etiketten":
        gegenkonto="";
       
        break;
    case "Bezahlt BSV":
        gegenkonto="bsv";
        honigform =" ";
        break;
    case "Bezahlt Labor":
        gegenkonto="labor";
        honigform =" ";
        break;
    case "Bezahlt Verein":
        gegenkonto="vereine";
        break;
    case "Bezahlt Berufsgenossenschaft":
        gegenkonto="genossenschaft";
        honigform =" ";
        break;
    case "Bezahlt Versicherungen":
        gegenkonto="versicherungen";
        break;
    case "Bezahlt Landwirtschaftskasse":
        gegenkonto="landwirtschaftskasse";
        honigform =" ";
        break;
    case "Bezahlt Gas":
        gegenkonto="gas";
        break;
    case "Bezahlt Platzmiete Verkaufsstand":
        gegenkonto="miete";
        honigform =" ";
        break;
    case "Verkauf Honig":
        gegenkonto="honig";
honigform =" <input type=\"number\" lang=\"de-150\"  step=\"0.01\" name=\"kilo\" id=\"kilo\" size=\"5\"> Kg";
        break;
    case "Verkauf Honig 1 x 250g Glas":
        gegenkonto="honig";
        honigform =" <input type=\"number\" value=\"0.25\" lang=\"de-150\"  step=\"0.01\" name=\"kilo\" id=\"kilo\" size=\"5\"> Kg ";
        break;
    case "Verkauf Honig 1 X 500g Glas":
        gegenkonto="honig";
        honigform =" <input type=\"number\" value=\"0.5\" lang=\"de-150\"  step=\"0.01\" name=\"kilo\" id=\"kilo\" size=\"5\"> Kg ";
        break;
    case "Verkauf Bienen":
        gegenkonto="bienen";
        honigform =" ";
        break;
    case "Verkauf Königin":
        gegenkonto="königin";
        honigform =" ";
        break;
    case "Bezahlt Zubehör Honigproduktion":
        gegenkonto="Zubehör Honigproduktion";
        honigform =" ";
        break;
    case "Bezahlt Instandhaltung Gebäude":
        gegenkonto="Instandhaltung Gebäude";
        honigform =" ";
        break;
    case "Bezahlt Renovierung/Umbau Gebäude":
        gegenkonto="Renovierung/Umbau Gebäude";
        honigform =" ";
        break;
    case "Bezahlt Privatentnahme":
            gegenkonto="privat";
            honigform =" ";
            break;
    case "Verkauf Privateinlage":
            gegenkonto="privat";
            honigform =" ";
            break;
    default:
        gegenkonto="";
        break;
}
    kto.value=gegenkonto;
    kgh.innerHTML=honigform;
    
}

function ne(){
  if(net.value!=''){
      var brutto=weiter(net.value,se.value,2);
      var bruttor=brutto.toString().replace(",",".");
  bru.value=bruttor;
 
}
}

function br(){
  if(bru.value!=''){
                           var netto=weiter(bru.value,se.value,1);
                           var nettor=netto.toString().replace(",",".");
                          net.value=nettor;
                          
                           
                        }
}

function weiter(erg,p,a){
if(a==1){
        erg=parseInt(erg);
        var mwst=eval(100+parseInt(p));
        var netto = roundToTwo(erg/mwst*100 ) ;
         msteuer=roundToTwo( netto /100*parseInt(p) );
          document.getElementById('masteuer').innerHTML ="Mehrwertsteuer "+msteuer+" €";
          if(document.getElementById('fsteuer') !== null) steuer.value=msteuer;
          nbtr.value=roundToTwo(netto);
          console.log("mwst="+mwst);
          console.log("erg/mwst="+roundToTwo(erg/mwst ) );
          console.log("netto="+roundToTwo( eval((erg/mwst)*100 )) );
         return roundToTwo(netto);
        }
 
   if(a==2){
           
           msteuer=roundToTwo( erg/100*parseInt(p));
          document.getElementById('masteuer').innerHTML ="Mehrwertsteuer "+msteuer+" €";
          steuer.value=msteuer;
          nbtr.value=erg;
          var bruttobetr=roundToTwo(parseInt(erg) + msteuer);
          console.log("msteuer="+msteuer+" netto="+erg+" brutto="+bruttobetr)
             return bruttobetr;
        }
 
 
}
function roundToTwo(num) {
            return +(Math.round(num + "e+2")  + "e-2");
        }



//-->
</script>



LG Dirk