Löschen von Rechnungen

Speichern von Rechnungen
Bugfix Rechnungssyncronisation
This commit is contained in:
Andreas Österreicher
2010-11-25 16:56:51 +00:00
parent 8222781967
commit 0a89f06587
4 changed files with 225 additions and 17 deletions
+84 -1
View File
@@ -376,7 +376,7 @@ class wawi_rechnung extends basis_db
return false;
}
$qry = "SELECT * FROM wawi.tbl_rechnungsbetrag WHERe rechnung_id='".addslashes($rechnung_id)."'";
$qry = "SELECT * FROM wawi.tbl_rechnungsbetrag WHERE rechnung_id='".addslashes($rechnung_id)."' ORDER BY rechnungsbetrag_id";
if($result = $this->db_query($qry))
{
@@ -401,4 +401,87 @@ class wawi_rechnung extends basis_db
}
}
/**
*
* Speichert einen Rechnungsbetrag
*/
public function save_betrag()
{
if($this->new)
{
$qry = 'BEGIN;INSERT INTO wawi.tbl_rechnungsbetrag(rechnung_id, mwst, betrag, bezeichnung) VALUES('.
$this->addslashes($this->rechnung_id).','.
$this->addslashes($this->mwst).','.
$this->addslashes($this->betrag).','.
$this->addslashes($this->bezeichnung).');';
}
else
{
$qry = 'UPDATE wawi.tbl_rechnungsbetrag SET'.
' rechnung_id='.$this->addslashes($this->rechnung_id).','.
' mwst='.$this->addslashes($this->mwst).','.
' betrag='.$this->addslashes($this->betrag).','.
' bezeichnung='.$this->addslashes($this->bezeichnung).
" WHERE rechnungsbetrag_id='".addslashes($this->rechnungsbetrag_id)."'";
}
if($this->db_query($qry))
{
if($this->new)
{
$qry = "SELECT currval('wawi.seq_rechnungsbetrag_rechnungsbetrag_id') as id;";
if($result = $this->db_query($qry))
{
if($row = $this->db_fetch_object($result))
{
$this->rechnugnsbetrag_id=$row->id;+
$this->db_query('COMMIT;');
}
else
{
$this->db_query('ROLLBACK');
$this->errormsg = 'Fehler beim Auslesen der Sequence';
return false;
}
}
else
{
$this->errormsg = 'Fehler beim Auslesen der Sequence';
return false;
}
}
}
else
{
$this->errormsg = 'Fehler beim Speichern der Daten';
return false;
}
}
/**
* Loescht einen Eintrag aus der Tabelle rechnungsbetrag
*
* @param $rechnungsbetrag_id
*/
public function delete_betrag($rechnungsbetrag_id)
{
if(!is_numeric($rechnungsbetrag_id) || $rechnungsbetrag_id=='')
{
$this->errormsg = 'ungueltige ID';
return false;
}
$qry = "DELETE FROM wawi.tbl_rechnungsbetrag where rechnungsbetrag_id='".addslashes($rechnungsbetrag_id)."'";
if($this->db_query($qry))
{
return true;
}
else
{
$this->errormsg = 'Fehler beim Löschen der Daten';
return false;
}
}
}
+2 -1
View File
@@ -1344,7 +1344,8 @@ if(!@$db->db_query('SELECT * FROM wawi.tbl_konto LIMIT 1'))
rechnung_id bigint,
mwst numeric(4,2),
betrag numeric(12,2),
bezeichnung text
bezeichnung text,
ext_id integer
);
CREATE SEQUENCE wawi.seq_rechnungsbetrag_rechnungsbetrag_id
+11 -10
View File
@@ -142,16 +142,17 @@ if($result=pg_query($conn_wawi, $qry))
if($row->$mwst!='')
{
$qry = "SELECT * FROM wawi.tbl_rechnungsbetrag
WHERE rechnung_id=".$db->addslashes($row->r_id)." AND mwst=".$db->addslashes($row->$mwst);
WHERE rechnung_id=".$db->addslashes($row->r_id)." AND ext_id='$i'";
if($result_rbetrag = $db->db_query($qry))
{
if($row_rbetrag = $db->db_fetch_object($result_rbetrag))
{
//Update
if($row_rbetrag->betrag!=$row->$betrag)
if($row_rbetrag->betrag!=round($row->$betrag,2))
{
$qry = "UPDATE wawi.tbl_rechnungsbetrag
SET betrag=".$db->addslashes($row->$betrag)."
$qry = "UPDATE wawi.tbl_rechnungsbetrag SET
betrag=".$db->addslashes($row->$betrag)."
mwst=".$db->addslashes($row->$betrag)."
WHERE rechnungsbetrag_id=".$db->addslashes($row_rbetrag->rechnungsbetrag_id);
if($db->db_query($qry))
{
@@ -163,14 +164,14 @@ if($result=pg_query($conn_wawi, $qry))
else
{
//Insert
$qry = "INSERT INTO wawi.tbl_rechnungsbetrag(rechnung_id, mwst, betrag) VALUES(".
$qry = "INSERT INTO wawi.tbl_rechnungsbetrag(rechnung_id, mwst, betrag, ext_id) VALUES(".
$db->addslashes($row->r_id).",".
$db->addslashes($row->$mwst).",".
$db->addslashes($row->$betrag).");";
$db->addslashes($row->$betrag).",'".$i."');";
if($db->db_query($qry))
{
$anzahl_insert++;
$update_log.="\nRechnungsbetrag hinzugefügt Mwst $row->$mwst Betrag $row->$betrag";
$update_log.="\nRechnungsbetrag hinzugefügt Mwst ".$row->$mwst." Betrag ".$row->$betrag;
}
}
}
@@ -225,11 +226,11 @@ if($result=pg_query($conn_wawi, $qry))
.$db->addslashes($datum_obj->formatDatum($row->lupdate)).","
.$db->addslashes($row->updatevon).");";
if($row->mwst1!='')
$qry.="INSERT INTO wawi.tbl_rechnungsbetrag(rechnung_id, mwst, betrag) VALUES(".$db->addslashes($row->r_id).",".$db->addslashes($row->mwst1).",".$db->addslashes($row->betrag1).");";
$qry.="INSERT INTO wawi.tbl_rechnungsbetrag(rechnung_id, mwst, betrag, ext_id) VALUES(".$db->addslashes($row->r_id).",".$db->addslashes($row->mwst1).",".$db->addslashes($row->betrag1).",1);";
if($row->mwst2!='')
$qry.="INSERT INTO wawi.tbl_rechnungsbetrag(rechnung_id, mwst, betrag) VALUES(".$db->addslashes($row->r_id).",".$db->addslashes($row->mwst2).",".$db->addslashes($row->betrag2).");";
$qry.="INSERT INTO wawi.tbl_rechnungsbetrag(rechnung_id, mwst, betrag, ext_id) VALUES(".$db->addslashes($row->r_id).",".$db->addslashes($row->mwst2).",".$db->addslashes($row->betrag2).",2);";
if($row->mwst3!='')
$qry.="INSERT INTO wawi.tbl_rechnungsbetrag(rechnung_id, mwst, betrag) VALUES(".$db->addslashes($row->r_id).",".$db->addslashes($row->mwst3).",".$db->addslashes($row->betrag3).");";
$qry.="INSERT INTO wawi.tbl_rechnungsbetrag(rechnung_id, mwst, betrag, ext_id) VALUES(".$db->addslashes($row->r_id).",".$db->addslashes($row->mwst3).",".$db->addslashes($row->betrag3).",3);";
if($db->db_query($qry))
{
+128 -5
View File
@@ -79,6 +79,11 @@ if(isset($_POST['getBetragRow']) && isset($_POST['id']))
});
}
function conf_del()
{
return confirm('Wollen Sie diese Rechnung wirklich löschen?');
}
function formatItem(row)
{
return row[0] + " <br/>" + row[1];
@@ -139,6 +144,9 @@ $kst->loadArray($rechte->getKostenstelle($berechtigung_kurzbz));
if($aktion == 'suche')
{
if(!$rechte->isBerechtigt('wawi/rechnung',null,'s'))
die('Sie haben keine Berechtigung fuer diese Seite');
if(!isset($_POST['submit']))
{
// Suchmaske anzeigen
@@ -302,7 +310,9 @@ if($aktion == 'suche')
{
//Zeilen der Tabelle ausgeben
echo "<tr>\n";
echo "<td nowrap> <a href= \"rechnung.php?method=update&id=$row->rechnung_id\" title=\"Bearbeiten\"> <img src=\"../skin/images/edit.gif\"> </a><a href=\"rechnung.php?method=delete&id=$row->rechnung_id\" onclick='return conf_del()' title='Löschen'> <img src=\"../skin/images/delete.gif\"></a>";
echo "<td nowrap>
<a href= \"rechnung.php?method=update&id=$row->rechnung_id\" title=\"Bearbeiten\"> <img src=\"../skin/images/edit.gif\"> </a>
<a href=\"rechnung.php?method=delete&id=$row->rechnung_id\" onclick='return conf_del()' title='Löschen'> <img src=\"../skin/images/delete.gif\"></a>";
echo '<td>'.$row->rechnungsnr."</td>\n";
echo '<td>'.$row->bestellung_id."</td>\n";
echo '<td>'.$row->rechnungstyp_kurzbz."</td>\n";
@@ -323,18 +333,124 @@ if($aktion == 'suche')
}
elseif($aktion == 'new')
{
if(!$rechte->isBerechtigt('wawi/rechnung',null,'sui'))
die('Sie haben keine Berechtigung zum Anlegen von Rechnungen');
echo '<h1>Noch nicht implementiert</h1>';
}
elseif($aktion == 'save')
{
echo '<h1>Noch nicht implementiert</h1>';
if(!$rechte->isBerechtigt('wawi/rechnung',null,'su'))
die('Sie haben keine Berechtigung zum Speichern der Rechnungen');
if(isset($_POST['rechnung_id'])
&& isset($_POST['rechnungsnummer'])
&& isset($_POST['buchungstext'])
&& isset($_POST['rechnungsdatum'])
&& isset($_POST['bestellung_id'])
&& isset($_POST['buchungsdatum']))
{
$rechnung_id = $_POST['rechnung_id'];
$rechnungsnummer = $_POST['rechnungsnummer'];
$buchungstext = $_POST['buchungstext'];
$rechnungsdatum = $_POST['rechnungsdatum'];
$bestellung_id = $_POST['bestellung_id'];
$buchungsdatum = $_POST['buchungsdatum'];
foreach($_POST as $key=>$value)
{
if(mb_strstr($key, 'rechnungsbetrag_id_'))
{
$id = mb_substr($key, mb_strlen('rechnungsbetrag_id_'));
$betraege[$id]['id']=$_POST['rechnungsbetrag_id_'.$id];
$betraege[$id]['bezeichnung']=$_POST['bezeichnung_'.$id];
$betraege[$id]['betrag']=$_POST['betrag_'.$id];
$betraege[$id]['mwst']=$_POST['mwst_'.$id];
}
}
$rechnung = new wawi_rechnung();
if(!$rechnung->load($rechnung_id))
die('Rechnung wurde nicht gefunden');
$rechnung->rechnungsnr = $rechnungsnummer;
$rechnung->buchungstext = $buchungstext;
$rechnung->rechnungsdatum = $date->formatDatum($rechnungsdatum);
$rechnung->buchungsdatum = $date->formatDatum($buchungsdatum);
$rechnung->bestellung_id = $bestellung_id;
$rechnung->updateamum = date('Y-m-d H:i:s');
$rechnung->updatevon = $user;
if($rechnung->save())
{
foreach($betraege as $row)
{
if($row['id']=='' && $row['betrag']=='' && $row['mwst']=='' && $row['bezeichnung']=='')
continue;
$rb = new wawi_rechnung();
//Leere Zeilen werden geloescht
if($row['betrag']=='' && $row['mwst']=='' && $row['bezeichnung']=='')
{
$rb->delete_betrag($row['id']);
}
else
{
//Speichern der Zeile
$rb->rechnungsbetrag_id=$row['id'];
$rb->rechnung_id = $rechnung_id;
$rb->betrag = $row['betrag'];
$rb->bezeichnung = $row['bezeichnung'];
$rb->mwst = $row['mwst'];
if($row['id']=='')
$rb->new=true;
else
$rb->new=false;
$rb->save_betrag();
}
}
echo 'Daten wurden gespeichert!';
$_GET['id']=$rechnung_id;
$aktion = 'update';
}
else
{
echo 'Fehler: '.$rechnung->errormsg;
}
}
else
die('Falsche Parameter uebergeben');
}
elseif($aktion=='delete')
{
echo '<h1>Noch nicht implementiert</h1>';
if(!$rechte->isBerechtigt('wawi/rechnung',null,'suid'))
die('Sie haben keine Berechtigung zum Loeschen von Rechnungen');
if(isset($_GET['id']))
{
echo '<h1>Rechnung Löschen</h1>';
$rechnung = new wawi_rechnung();
if($rechnung->delete($_GET['id']))
{
echo 'Rechnung wurde erfolgreich geloescht';
}
else
{
echo '<span class="error">Fehler: '.$rechnung->errormsg.'</span>';
}
echo '<br /><br /><a href="javascript:history.back()">Zurück</a>';
}
}
elseif($aktion=='update')
if($aktion=='update')
{
if(!$rechte->isBerechtigt('wawi/rechnung',null,'su'))
die('Sie haben keine Berechtigung zum Bearbeiten der Rechnungen');
echo '<h1>Rechnung Bearbeiten</h1>';
if(isset($_GET['id']))
{
@@ -378,11 +494,13 @@ elseif($aktion=='update')
</table>';
echo '
<br />
<form action="'.$_SERVER['PHP_SELF'].'?method=save" method="POST">
<input type="hidden" name="rechnung_id" value="'.$rechnung->rechnung_id.'">
<table>
<tr>
<td>Rechnungsnummer</td>
<td>Rechnugnsdatum&nbsp;&nbsp;&nbsp;</td>
<td>Rechnungsdatum&nbsp;&nbsp;&nbsp;</td>
<td>Bestellung</td>
</tr>
<tr>
@@ -397,6 +515,11 @@ elseif($aktion=='update')
<input type="text" name="bestellung_id" size="8" value="'.$rechnung->bestellung_id.'">
</td>
</tr>
<tr>
<td>&nbsp;</td>
<td></td>
<td></td>
</tr>
<tr>
<td valign="top">
Buchungstext<br />