hidden field für die berechnung hinzugefügt

This commit is contained in:
Karl Burkhart
2012-02-28 15:48:36 +00:00
parent 427531cd68
commit 229494a851
4 changed files with 116 additions and 47 deletions
+53 -20
View File
@@ -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 "</tbody>";
@@ -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 "<tr id ='row_$i'>\n";
echo "<td><a onClick='$removeDetail' title='Bestelldetail löschen'> <img src=\"../skin/images/delete_round.png\" class='cursor'> </a></td>\n";
echo "<td><a href='#' class='down' onClick='verschieben(this);'><img src='../skin/images/arrow-single-down-green.png' class='cursor' ></a></td>\n";
@@ -2349,9 +2381,9 @@ function getDetailRow($i, $bestelldetail_id='', $sort='', $menge='', $ve='', $be
echo "<td><input type='text' size='5' name='ve_$i' id='ve_$i' maxlength='7' value='$ve' onfocus='$checkSave'></td>\n";
echo "<td><input type='text' size='70' name='beschreibung_$i' id='beschreibung_$i' value='$beschreibung' onblur='$checkRow' onfocus='$checkSave'></td>\n";
echo "<td><input type='text' size='15' name='artikelnr_$i' id='artikelnr_$i' maxlength='32' value='$artikelnr' onfocus='$checkSave'></td>\n";
echo "<td><input type='text' size='15' class='number' name='preisprove_$i' id='preisprove_$i' maxlength='15' value='$preisprove' onblur='$checkRow' onChange='calcBrutto($i);' onfocus='$checkSave'></td>\n";
echo "<td><input type='text' size='8' class='number' name='mwst_$i' id='mwst_$i' maxlength='5' value='$mwst' onChange='calcBruttoNetto($i);' onfocus='$checkSave' onblur='checkUst($i)'></td>\n";
echo "<td><input type='text' size='10' class='number' name ='brutto_$i' id='brutto_$i' value='$brutto' onChange ='calcNetto($i);' onfocus='$checkSave'></td>\n";
echo "<td><input type='text' size='15' class='number' name='preisprove_$i' id='preisprove_$i' maxlength='15' value='".sprintf("%01.2f",$preisprove)."' onblur='$checkRow $replaceKomma' onChange='calcBrutto($i);' onfocus='$checkSave'></td>\n";
echo "<td><input type='text' size='8' class='number' name='mwst_$i' id='mwst_$i' maxlength='5' value='$mwst' onChange='calcBruttoNetto($i);' onfocus='$checkSave' onblur='checkUst($i); $replaceKomma'></td>\n";
echo "<td><input type='text' size='10' class='number' name ='brutto_$i' id='brutto_$i' value='$brutto' onChange ='calcNetto($i);' onBlur='$replaceKomma' onfocus='$checkSave'></td>\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 "<td><input type='text' size='10' name='detail_tag_$i' id='detail_tag_$i' value='$help' ></td>";
echo "<td><input type='hidden' size='20' name='bestelldetailid_$i' id='bestelldetailid_$i' value='$bestelldetail_id'></td>";
echo "<td><input type='hidden' size='3' name='sort_$i' id='sort_$i' maxlength='2' value='$sort'></td>\n";
echo "<td><input type='hidden' size='3' name='preis_$i' id='preis_$i' value='$preisprove'></td>\n";
echo "</tr>\n";
}
+61 -25
View File
@@ -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 '<tr id="row_'.$i.'">
<td>
<input type="hidden" name="rechnungsbetrag_id_'.$i.'" value="'.$rechnungsbetrag_id.'">
<input type="text" name="bezeichnung_'.$i.'" value="'.$bezeichnung.'">
</td>
<td nowrap>
<input class="number" type="text" size="12" maxlength="12" id="betrag_'.$i.'" name="betrag_'.$i.'" value="'.$betrag.'" onblur="checkNewRow('.$i.')" onchange="brutto('.$i.'); summe()"> &euro;
<input class="number" type="text" size="12" maxlength="12" id="betrag_'.$i.'" name="betrag_'.$i.'" value="'.$betrag.'" onblur="checkNewRow('.$i.'); replaceKomma('.$i.');" onchange="brutto('.$i.'); summe()"> &euro;
</td>
<td nowrap>
<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.'" onblur="replaceKomma('.$i.');" onchange="bruttonetto('.$i.'); summe(); "> %
</td>
<td nowrap>
<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;
<input class="number" type="text" size="12" maxlength="15" id="brutto_'.$i.'" name="brutto_'.$i.'" value="'.sprintf("%01.2f",$brutto).'" onblur="replaceKomma('.$i.');" onchange="netto('.$i.'); summe();"> &euro;
</td>
<td>
<input type="hidden" id="betragrechnung_'.$i.'" name="betragrechnung_'.$i.'" value="'.$betrag.'">
</td>
</tr>';
}