Nettobetrag wird 3stellig angezeigt um Rundungsfehler zu vermeiden

This commit is contained in:
Karl Burkhart
2012-02-22 08:43:25 +00:00
parent e63185273d
commit 3371e49f8e
3 changed files with 15 additions and 26 deletions
+1 -1
View File
@@ -170,7 +170,7 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml")
echo " <verpackungseinheit><![CDATA[$row->verpackungseinheit]]></verpackungseinheit>\n"; echo " <verpackungseinheit><![CDATA[$row->verpackungseinheit]]></verpackungseinheit>\n";
echo " <beschreibung><![CDATA[$row->beschreibung]]></beschreibung>\n"; echo " <beschreibung><![CDATA[$row->beschreibung]]></beschreibung>\n";
echo " <artikelnummer><![CDATA[$row->artikelnummer]]></artikelnummer>\n"; echo " <artikelnummer><![CDATA[$row->artikelnummer]]></artikelnummer>\n";
echo " <preisprove><![CDATA[",number_format($row->preisprove,2,',','.'),"]]></preisprove>\n"; echo " <preisprove><![CDATA[",number_format($row->preisprove,3,',','.'),"]]></preisprove>\n";
echo " <mwst><![CDATA[",number_format($row->mwst,2,',','.'),"]]></mwst>\n"; echo " <mwst><![CDATA[",number_format($row->mwst,2,',','.'),"]]></mwst>\n";
$summe_brutto_detail=$row->menge*$row->preisprove/100*($row->mwst+100); $summe_brutto_detail=$row->menge*$row->preisprove/100*($row->mwst+100);
$summe_netto_detail=$row->menge*$row->preisprove; $summe_netto_detail=$row->menge*$row->preisprove;
+9 -9
View File
@@ -1695,7 +1695,9 @@ if($_GET['method']=='update')
$i= 1; $i= 1;
foreach($detail->result as $det) foreach($detail->result as $det)
{ {
$brutto=($det->menge * ($det->preisprove +($det->preisprove * ($det->mwst/100)))); $brutto=($det->menge * ($det->preisprove +($det->preisprove * ($det->mwst/100))));
$brutto = floor( $brutto * 1000) / 1000;
getDetailRow($i, $det->bestelldetail_id, $det->sort, $det->menge, $det->verpackungseinheit, $det->beschreibung, $det->artikelnummer, $det->preisprove, $det->mwst, sprintf("%01.2f",$brutto), $bestellung->bestellung_id, $det->position); getDetailRow($i, $det->bestelldetail_id, $det->sort, $det->menge, $det->verpackungseinheit, $det->beschreibung, $det->artikelnummer, $det->preisprove, $det->mwst, sprintf("%01.2f",$brutto), $bestellung->bestellung_id, $det->position);
$summe+=$brutto; $summe+=$brutto;
$i++; $i++;
@@ -1905,8 +1907,8 @@ if($_GET['method']=='update')
mwst = parseFloat(mwst); mwst = parseFloat(mwst);
brutto = menge * (brutto + (betrag+(betrag*mwst/100))); brutto = menge * (brutto + (betrag+(betrag*mwst/100)));
} }
brutto = Math.round(brutto*100)/100; brutto = Math.floor(brutto*100)/100;
document.getElementById("brutto_"+id).value = brutto.toFixed(2); document.getElementById("brutto_"+id).value = brutto;
summe(); summe();
} }
@@ -1931,9 +1933,9 @@ if($_GET['method']=='update')
var netto = brutto/(100+mwst)*100; var netto = brutto/(100+mwst)*100;
var netto = netto / menge; var netto = netto / menge;
//auf 2 Nachkommastellen runden //auf 3 Nachkommastellen runden
netto = Math.round(netto*100)/100;
netto.toFixed(2); netto = Math.round(netto*1000)/1000;
$("#preisprove_"+id).val(netto); $("#preisprove_"+id).val(netto);
} }
summe(); summe();
@@ -1986,10 +1988,8 @@ if($_GET['method']=='update')
} }
i=i+1; i=i+1;
} }
netto = Math.round(netto*100)/100; netto = Math.round(netto*1000)/1000;
brutto = Math.round(brutto*100)/100; brutto = Math.round(brutto*100)/100;
netto = netto.toFixed(2);
brutto = brutto.toFixed(2);
$("#netto").html(netto); $("#netto").html(netto);
$("#brutto").html(brutto); $("#brutto").html(brutto);
} }
@@ -2335,7 +2335,7 @@ 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'))) 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.");"; $removeDetail = "removeDetail(".$i.");";
} }
$preisprove = sprintf("%01.2f",$preisprove); $preisprove = sprintf("%01.3f",$preisprove);
if($sort == '') if($sort == '')
$sort = $i; $sort = $i;
+5 -16
View File
@@ -737,7 +737,7 @@ if($aktion=='update')
$i=0; $i=0;
foreach($betraege->result as $row) foreach($betraege->result as $row)
{ {;
echo getBetragRow($i, $row->rechnungsbetrag_id, $row->bezeichnung, $row->betrag, $row->mwst); echo getBetragRow($i, $row->rechnungsbetrag_id, $row->bezeichnung, $row->betrag, $row->mwst);
$i++; $i++;
} }
@@ -832,18 +832,11 @@ if($aktion=='update')
mwst = mwst.replace(",","."); mwst = mwst.replace(",",".");
brutto = parseFloat(brutto); brutto = parseFloat(brutto);
mwst = parseFloat(mwst); mwst = parseFloat(mwst);
if(!isNaN(brutto) && !isNaN(mwst)) if(!isNaN(brutto) && !isNaN(mwst))
{ {
// Nettopreis berechnen // Nettopreis berechnen
var netto = brutto/(100+mwst)*100; var netto = brutto/(100+mwst)*100;
netto = Math.round(netto*1000)/1000;;
//auf 2 Nachkommastellen runden
netto = netto*100;
netto = Math.floor(netto);
netto = netto/100;
//netto = Math.round(netto*100)/100;
$("#betrag_"+id).val(netto); $("#betrag_"+id).val(netto);
} }
@@ -862,17 +855,12 @@ if($aktion=='update')
mwst = mwst.replace(",","."); mwst = mwst.replace(",",".");
netto = parseFloat(netto); netto = parseFloat(netto);
mwst = parseFloat(mwst); mwst = parseFloat(mwst);
if(!isNaN(netto) && !isNaN(mwst)) if(!isNaN(netto) && !isNaN(mwst))
{ {
// Nettopreis berechnen // Nettopreis berechnen
var brutto = netto*(100+mwst)/100; var brutto = netto*(100+mwst)/100;
//auf 2 Nachkommastellen runden brutto = Math.floor(brutto*100)/100;
brutto = brutto*100;
brutto = Math.floor(brutto);
brutto = brutto/100;
//brutto = Math.round(brutto*100)/100;
$("#brutto_"+id).val(brutto); $("#brutto_"+id).val(brutto);
} }
@@ -931,6 +919,7 @@ if($aktion=='update')
*/ */
function getBetragRow($i, $rechnungsbetrag_id='', $bezeichnung='', $betrag='', $mwst='') function getBetragRow($i, $rechnungsbetrag_id='', $bezeichnung='', $betrag='', $mwst='')
{ {
return '<tr id="row_'.$i.'"> return '<tr id="row_'.$i.'">
<td> <td>
<input type="hidden" name="rechnungsbetrag_id_'.$i.'" value="'.$rechnungsbetrag_id.'"> <input type="hidden" name="rechnungsbetrag_id_'.$i.'" value="'.$rechnungsbetrag_id.'">
@@ -943,7 +932,7 @@ function getBetragRow($i, $rechnungsbetrag_id='', $bezeichnung='', $betrag='', $
<input class="number" type="text" size="5" maxlength="5" id="mwst_'.$i.'" name="mwst_'.$i.'" value="'.$mwst.'" onchange="bruttonetto('.$i.'); summe(); "> % <input class="number" type="text" size="5" maxlength="5" id="mwst_'.$i.'" name="mwst_'.$i.'" value="'.$mwst.'" onchange="bruttonetto('.$i.'); summe(); "> %
</td> </td>
<td nowrap> <td nowrap>
<input class="number" type="text" size="12" maxlength="15" id="brutto_'.$i.'" name="brutto_'.$i.'" value="'.($betrag*(100+$mwst)/100).'" onchange="netto('.$i.'); summe();"> &euro; <input class="number" type="text" size="12" maxlength="15" id="brutto_'.$i.'" name="brutto_'.$i.'" value="'.sprintf("%01.2f",($betrag*(100+$mwst)/100)).'" onchange="netto('.$i.'); summe();"> &euro;
</td> </td>
</tr>'; </tr>';
} }