diff --git a/include/wawi_bestelldetail.class.php b/include/wawi_bestelldetail.class.php index 7e7277e00..5ffe8a4ec 100644 --- a/include/wawi_bestelldetail.class.php +++ b/include/wawi_bestelldetail.class.php @@ -193,7 +193,7 @@ class wawi_bestelldetail extends basis_db $this->errormsg="Ungültiger Preis eingegeben."; return false; } - if(!is_numeric($this->mwst) && $this->mwst != '') + if(!is_numeric($this->mwst) || $this->mwst == '') { $this->errormsg="Ungültige MWSt. eingegeben."; return false; diff --git a/rdf/bestelldetail.rdf.php b/rdf/bestelldetail.rdf.php index 5a376f7f3..2794bb06f 100755 --- a/rdf/bestelldetail.rdf.php +++ b/rdf/bestelldetail.rdf.php @@ -170,7 +170,7 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml") echo " verpackungseinheit]]>\n"; echo " beschreibung]]>\n"; echo " artikelnummer]]>\n"; - echo " preisprove,3,',','.'),"]]>\n"; + echo " preisprove,2,',','.'),"]]>\n"; echo " mwst,2,',','.'),"]]>\n"; $summe_brutto_detail=$row->menge*$row->preisprove/100*($row->mwst+100); $summe_netto_detail=$row->menge*$row->preisprove; diff --git a/wawi/bestellung.php b/wawi/bestellung.php index 83b8643fe..67b4c0965 100644 --- a/wawi/bestellung.php +++ b/wawi/bestellung.php @@ -157,7 +157,7 @@ if(isset($_POST['getDetailRow']) && isset($_POST['id'])) { if(is_numeric($_POST['id'])) { - echo getDetailRow($_POST['id'],'','','','','','','','','',$_POST['bestellung_id'],$_POST['id']); + echo getDetailRow($_POST['id'],'','','','','','','','0','',$_POST['bestellung_id'],$_POST['id']); $test++; exit; } @@ -1016,8 +1016,8 @@ if($_GET['method']=='update') $bestell_detail->verpackungseinheit = $_POST["ve_$i"]; $bestell_detail->beschreibung = $_POST["beschreibung_$i"]; $bestell_detail->artikelnummer = $_POST["artikelnr_$i"]; - $bestell_detail->preisprove = mb_str_replace(',', '.', $_POST["preisprove_$i"]); - $bestell_detail->mwst = $_POST["mwst_$i"]; + $bestell_detail->preisprove = mb_str_replace(',', '.', $_POST["preis_$i"]); + $bestell_detail->mwst = mb_str_replace(',', '.', $_POST["mwst_$i"]); $bestell_detail->updateamum = date('Y-m-d H:i:s'); $bestell_detail->updatevon = $user; $bestell_detail->new = false; @@ -1034,7 +1034,7 @@ if($_GET['method']=='update') $bestell_detail->verpackungseinheit = $_POST["ve_$i"]; $bestell_detail->beschreibung = $_POST["beschreibung_$i"]; $bestell_detail->artikelnummer = $_POST["artikelnr_$i"]; - $bestell_detail->preisprove =mb_str_replace(',', '.', $_POST["preisprove_$i"]); + $bestell_detail->preisprove =mb_str_replace(',', '.', $_POST["preis_$i"]); $bestell_detail->mwst = $_POST["mwst_$i"]; if($_POST["sort_$i"] != '') $bestell_detail->sort = $_POST["sort_$i"]; @@ -1703,7 +1703,7 @@ if($_GET['method']=='update') $i++; } if($bestellung->freigegeben != 't') - getDetailRow($i,null,$i,null,null,null,null,null,null,null,$bestellung->bestellung_id,$i); + getDetailRow($i,null,$i,null,null,null,null,null,'0',null,$bestellung->bestellung_id,$i); $test = $i; echo ""; @@ -1895,7 +1895,10 @@ if($_GET['method']=='update') var brutto=0; var menge = $("#menge_"+id).val(); var betrag = $("#preisprove_"+id).val(); + document.getElementById("preis_"+id).value = betrag; + var betrag = $("#preis_"+id).val(); var mwst = $("#mwst_"+id).val(); + if(mwst =="") mwst = "0"; if(betrag!="" && mwst!="" && menge!="") @@ -1933,9 +1936,10 @@ if($_GET['method']=='update') var netto = brutto/(100+mwst)*100; var netto = netto / menge; - //auf 3 Nachkommastellen runden - - netto = Math.round(netto*1000)/1000; + //nicht runden für hiddenfeld + $("#preis_"+id).val(netto); + netto = Math.round(netto*100)/100; + //netto = str_replace(".",",",netto); $("#preisprove_"+id).val(netto); } summe(); @@ -1943,7 +1947,7 @@ if($_GET['method']=='update') function calcBruttoNetto(id) { - var inetto = $("#preisprove_"+id).val(); + var inetto = $("#preis_"+id).val(); var ibrutto = $("#brutto_"+id).val(); if(inetto=="" || inetto==0 || inetto=="0,00") @@ -1967,7 +1971,7 @@ if($_GET['method']=='update') while(i<=anzahlRows) { var menge =$("#menge_"+i).val(); - var betrag = $("#preisprove_"+i).val(); + var betrag = $("#preis_"+i).val(); var mwst = $("#mwst_"+i).val(); if(mwst =="") mwst = "0"; @@ -1988,7 +1992,7 @@ if($_GET['method']=='update') } i=i+1; } - netto = Math.round(netto*1000)/1000; + netto = Math.round(netto*100)/100; brutto = Math.round(brutto*100)/100; $("#netto").html(netto); $("#brutto").html(brutto); @@ -2054,7 +2058,7 @@ if($_GET['method']=='update') var ve = $("#ve_"+i).val(); var beschreibung = $("#beschreibung_"+i).val(); var artikelnr = $("#artikelnr_"+i).val(); - var preis = $("#preisprove_"+i).val(); + var preis = $("#preis_"+i).val(); preis = preis.replace(",","."); var mwst = $("#mwst_"+i).val(); mwst = mwst.replace(",","."); @@ -2069,7 +2073,7 @@ if($_GET['method']=='update') function(data){ if(isNaN(data)) { - alert("Ungültiger Preis eingetragen."); + alert("Ungültiger Preis eingetragen"); } }); } @@ -2126,6 +2130,24 @@ if($_GET['method']=='update') FelderSperren(false); } + // beim verlassen der textbox ändere . in , + function replaceKomma(rowid) + { + var mwst = $("#mwst_"+rowid).val(); + mwst=str_replace(".",",",mwst); + document.getElementById("mwst_"+rowid).value = mwst; + var preisprove = $("#preisprove_"+rowid).val(); + preisprove =str_replace(".",",",preisprove); + document.getElementById("preisprove_"+rowid).value=preisprove; + var preis = $("#preis_"+rowid).val(); + preis =str_replace(".",",",preis); + document.getElementById("preis_"+rowid).value=preis; + var brutto = $("#brutto_"+rowid).val(); + brutto = str_replace(".",",",brutto); + document.getElementById("brutto_"+rowid).value=brutto; + } + + // ändert sich der fokus der Bestelldetailzeile -> speichern der geänderten function checkSave(rowid) { @@ -2136,14 +2158,22 @@ if($_GET['method']=='update') } } + //wie PHP str_replace(); + var str_replace = function(mysearch, myreplace, mysubject) + { + return mysubject.split(mysearch).join(myreplace); + } + // check USt function checkUst(i) { var mwst = $("#mwst_"+i).val(); - if(mwst > 99 || mwst < 0 || isNaN(mwst) == true) + mwst=str_replace(",",".",mwst); + if(mwst > 99 || mwst < 0 || isNaN(mwst)) { + alert("Ungültige Mehrwertssteuer eingetragen."); - document.getElementById("mwst_"+i).value = "20.00"; + document.getElementById("mwst_"+i).value = "20,00"; calcBruttoNetto(i); } } @@ -2314,6 +2344,7 @@ function getDetailRow($i, $bestelldetail_id='', $sort='', $menge='', $ve='', $be $removeDetail =''; $checkSave = ''; $checkRow = ''; + $replaceKomma=''; $user=get_uid(); $status= new wawi_bestellstatus(); $rechte = new benutzerberechtigung(); @@ -2327,6 +2358,7 @@ function getDetailRow($i, $bestelldetail_id='', $sort='', $menge='', $ve='', $be { $removeDetail = "removeDetail(".$i.");"; $checkSave = "checkSave(".$i.");"; + $replaceKomma = "replaceKomma(".$i.");"; $checkRow = "setTimeout(\"checkNewRow(".$i.",".$bestell_id.")\",100);"; $detailDown = "nunter(".$i.");"; $detailUp = "nauf(".$i.");"; @@ -2335,11 +2367,11 @@ function getDetailRow($i, $bestelldetail_id='', $sort='', $menge='', $ve='', $be if($status->isStatiVorhanden($bestell_id,'Abgeschickt') && ($rechte->isBerechtigt('wawi/bestellung_advanced') || ($rechte->isBerechtigt('wawi/freigabe', null,'suid',$bestellung->kostenstelle_id) && $bestellung->freigegeben == 'f'))) $removeDetail = "removeDetail(".$i.");"; } - $preisprove = sprintf("%01.3f",$preisprove); if($sort == '') $sort = $i; - + $mwst = str_replace('.', ',', $mwst); + echo "\n"; echo " \n"; echo "\n"; @@ -2349,9 +2381,9 @@ function getDetailRow($i, $bestelldetail_id='', $sort='', $menge='', $ve='', $be echo "\n"; echo "\n"; echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; $detail_tag = new tags(); $detail_tag->GetTagsByBestelldetail($bestelldetail_id); $help = $detail_tag->GetStringTags(); @@ -2372,6 +2404,7 @@ function getDetailRow($i, $bestelldetail_id='', $sort='', $menge='', $ve='', $be echo ""; echo ""; echo "\n"; + echo "\n"; echo "\n"; } diff --git a/wawi/rechnung.php b/wawi/rechnung.php index 35f95c2e5..dd87fbed8 100644 --- a/wawi/rechnung.php +++ b/wawi/rechnung.php @@ -410,7 +410,7 @@ elseif($aktion == 'save') $id = mb_substr($key, mb_strlen('rechnungsbetrag_id_')); $betraege[$id]['id']=$_POST['rechnungsbetrag_id_'.$id]; $betraege[$id]['bezeichnung']=$_POST['bezeichnung_'.$id]; - $betraege[$id]['betrag']=mb_str_replace(',','.',$_POST['betrag_'.$id]); + $betraege[$id]['betrag']=mb_str_replace(',','.',$_POST['betragrechnung_'.$id]); $betraege[$id]['mwst']=mb_str_replace(',','.',$_POST['mwst_'.$id]); } } @@ -734,10 +734,9 @@ if($aktion=='update') //Vorhandenen Betraege anzeigen $betraege = new wawi_rechnung(); $betraege->loadBetraege($rechnung->rechnung_id); - $i=0; foreach($betraege->result as $row) - {; + { echo getBetragRow($i, $row->rechnungsbetrag_id, $row->bezeichnung, $row->betrag, $row->mwst); $i++; } @@ -794,7 +793,7 @@ if($aktion=='update') var brutto=0; while(i<=anzahlRows) { - var betrag = $("#betrag_"+i).val(); + var betrag = $("#betragrechnung_"+i).val(); var mwst = $("#mwst_"+i).val(); var brutto_row = $("#brutto_"+i).val(); betrag = betrag.replace(",","."); @@ -821,6 +820,12 @@ if($aktion=='update') $("#brutto").html(brutto); } + //wie PHP str_replace(); + var str_replace = function(mysearch, myreplace, mysubject) + { + return mysubject.split(mysearch).join(myreplace); + } + /** * Berechnet den Nettopreis */ @@ -836,8 +841,8 @@ if($aktion=='update') { // Nettopreis berechnen var netto = brutto/(100+mwst)*100; - netto = Math.round(netto*1000)/1000;; - + document.getElementById("betragrechnung_"+id).value=netto; + netto = Math.round(netto*100)/100;; $("#betrag_"+id).val(netto); } else @@ -849,25 +854,49 @@ if($aktion=='update') */ function brutto(id) { - var netto = $("#betrag_"+id).val(); - var mwst = $("#mwst_"+id).val(); - netto = netto.replace(",","."); + + var brutto=0; + var betrag = $("#betrag_"+id).val(); + document.getElementById("betragrechnung_"+id).value = betrag; + var betrag = $("#betragrechnung_"+id).val(); + var mwst = $("#mwst_"+id).val(); + + if(mwst =="") + mwst = "0"; + if(betrag!="" && mwst!="") + { + betrag = betrag.replace(",","."); mwst = mwst.replace(",","."); - netto = parseFloat(netto); + betrag = parseFloat(betrag); mwst = parseFloat(mwst); - if(!isNaN(netto) && !isNaN(mwst)) - { - // Nettopreis berechnen - var brutto = netto*(100+mwst)/100; - - brutto = Math.floor(brutto*100)/100; - - $("#brutto_"+id).val(brutto); - } - else - $("#brutto_"+id).val(0); + brutto = (brutto + (betrag+(betrag*mwst/100))); + } + brutto = Math.floor(brutto*100)/100; + document.getElementById("brutto_"+id).value = brutto; + + + } + // beim verlassen der textbox ändere . in , + function replaceKomma(rowid) + { + var mwst = $("#mwst_"+rowid).val(); + mwst=str_replace(".",",",mwst); + document.getElementById("mwst_"+rowid).value = mwst; + var betrag = $("#betrag_"+rowid).val(); + betrag =str_replace(".",",",betrag); + document.getElementById("betrag_"+rowid).value=betrag; + var betragrechnung = $("#betragrechnung_"+rowid).val(); + betragrechnung =str_replace(".",",",betragrechnung); + document.getElementById("betragrechnung_"+rowid).value=betragrechnung; + var brutto = $("#brutto_"+rowid).val(); + brutto = str_replace(".",",",brutto); + document.getElementById("brutto_"+rowid).value=brutto; + + } + + $(document).ready(function() { summe(); @@ -919,20 +948,27 @@ if($aktion=='update') */ function getBetragRow($i, $rechnungsbetrag_id='', $bezeichnung='', $betrag='', $mwst='') { - + $brutto = ($betrag+($betrag*$mwst/100)); + if($betrag != '') + $betrag = sprintf("%01.2f",$betrag); + $betrag = mb_str_replace('.', ',', $betrag); + return ' - € + € - % + % - € + € + + + '; }