, * Andreas Oesterreicher and * Karl Burkhart . */ require_once('../config/wawi.config.inc.php'); require_once('auth.php'); require_once('../include/firma.class.php'); require_once('../include/organisationseinheit.class.php'); require_once('../include/datum.class.php'); require_once('../include/wawi_konto.class.php'); require_once('../include/wawi_rechnung.class.php'); require_once('../include/wawi_kostenstelle.class.php'); require_once('../include/wawi_bestellung.class.php'); require_once('../include/wawi_zahlungstyp.class.php'); require_once('../include/benutzerberechtigung.class.php'); $aktion =''; if (isset($_GET['method'])) $aktion = $_GET['method']; else $aktion = 'suche'; $ausgabemsg=''; if(isset($_POST['getBetragRow']) && isset($_POST['id'])) { if(is_numeric($_POST['id'])) { echo getBetragRow($_POST['id'], null, null, null, '20'); exit; } else { die('ID ungueltig'); } } ?> WaWi Rechnung getBerechtigungen($user); $kst=new wawi_kostenstelle(); $kst->loadArray($rechte->getKostenstelle($berechtigung_kurzbz), 'bezeichnung'); if($aktion == 'suche') { if(!$rechte->isBerechtigt('wawi/rechnung',null,'s')) die('Sie haben keine Berechtigung fuer diese Seite'); if(!isset($_REQUEST['submit'])) { // Suchmaske anzeigen $oe = new organisationseinheit(); $oe->loadArray($rechte->getOEkurzbz($berechtigung_kurzbz)); $konto = new wawi_konto(); $konto->getAll(); $zahlungstyp = new wawi_zahlungstyp(); $zahlungstyp->getAll(); echo "

Rechnung suchen

\n"; echo "
\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "
Rechnungsdaten
Rechnungsnummer
Rechnungsdatumvon bis
Buchungsdatumvon bis
Betrag
Bestelldaten
Bestellnummer
Erstelldatumvon bis
Bestelldatumvon bis
Organisationseinheit \n"; echo "
Firma \n"; echo " \n"; echo "
Kostenstelle \n"; echo "
Konto \n"; echo "
Zahlungstyp: \n"; echo "
Ohne Transferdatum:
 
\n"; echo "
\n"; } else { // Suchergebnisse anzeigen $rechnungsnr = (isset($_REQUEST['rechnungsnr'])?trim($_REQUEST['rechnungsnr']):''); $bestellnummer = (isset($_REQUEST['bestellnummer'])?trim($_REQUEST['bestellnummer']):''); $rechnungsdatum_von = (isset($_REQUEST['rechnungsdatum_von'])?$_REQUEST['rechnungsdatum_von']:''); $rechnungsdatum_bis = (isset($_REQUEST['rechnungsdatum_bis'])?$_REQUEST['rechnungsdatum_bis']:''); $buchungsdatum_von = (isset($_REQUEST['buchungsdatum_von'])?$_REQUEST['buchungsdatum_von']:''); $buchungsdatum_bis = (isset($_REQUEST['buchungsdatum_bis'])?$_REQUEST['buchungsdatum_bis']:''); $erstelldatum_von = (isset($_REQUEST['erstelldatum_von'])?$_REQUEST['erstelldatum_von']:''); $erstelldatum_bis = (isset($_REQUEST['erstelldatum_bis'])?$_REQUEST['erstelldatum_bis']:''); $bestelldatum_von = (isset($_REQUEST['bestelldatum_von'])?$_REQUEST['bestelldatum_von']:''); $bestelldatum_bis = (isset($_REQUEST['bestelldatum_bis'])?$_REQUEST['bestelldatum_bis']:''); $firma_id = (isset($_REQUEST['firma_id'])?$_REQUEST['firma_id']:''); $oe_kurzbz = (isset($_REQUEST['filter_oe_kurzbz'])?$_REQUEST['filter_oe_kurzbz']:''); $filter_konto = (isset($_REQUEST['filter_konto'])?$_REQUEST['filter_konto']:''); $filter_kostenstelle = (isset($_REQUEST['filter_kostenstelle'])?$_REQUEST['filter_kostenstelle']:''); if(isset($_REQUEST['filter_betrag'])) $filter_betrag = mb_str_replace(',','.',$_REQUEST['filter_betrag']); else $filter_betrag=''; $filter_zahlungstyp = (isset($_REQUEST['filter_zahlungstyp'])?$_REQUEST['filter_zahlungstyp']:''); $ohneTransferdatum = (isset ($_REQUEST['ohneTransferdatum'])?true:false); $rechnung = new wawi_rechnung(); if($rechnungsdatum_von != '') $rechnungsdatum_von = $date->formatDatum($rechnungsdatum_von); if($rechnungsdatum_bis != '') $rechnungsdatum_bis = $date->formatDatum($rechnungsdatum_bis); if($buchungsdatum_von != '') $buchungsdatum_von = $date->formatDatum($buchungsdatum_von); if($buchungsdatum_bis != '') $buchungsdatum_bis = $date->formatDatum($buchungsdatum_bis); if($erstelldatum_von != '') $erstelldatum_von = $date->formatDatum($erstelldatum_von); if($erstelldatum_bis != '') $erstelldatum_bis = $date->formatDatum($erstelldatum_bis); if($bestelldatum_von != '') $bestelldatum_von = $date->formatDatum($bestelldatum_von); if($bestelldatum_bis != '') $bestelldatum_bis = $date->formatDatum($bestelldatum_bis); if($rechnungsdatum_von!==false && $rechnungsdatum_bis!==false && $buchungsdatum_von!==false && $buchungsdatum_bis!==false && $erstelldatum_von!==false && $erstelldatum_bis!==false && $bestelldatum_von!==false && $bestelldatum_bis!==false ) { if($rechnung->getAllSearch($rechnungsnr, $rechnungsdatum_von, $rechnungsdatum_bis, $buchungsdatum_von, $buchungsdatum_bis, $erstelldatum_von, $erstelldatum_bis, $bestelldatum_von, $bestelldatum_bis, $bestellnummer, $firma_id, $oe_kurzbz, $filter_konto, $filter_kostenstelle, $filter_betrag, $filter_zahlungstyp, $ohneTransferdatum)) { $date = new datum(); echo "\n"; echo "\n"; $brutto_gesamt=0; foreach($rechnung->result as $row) { $obj = new wawi_rechnung(); $brutto = $obj->getBrutto($row->rechnung_id); $brutto = round($brutto,2); $brutto_gesamt +=$brutto; //Zeilen der Tabelle ausgeben echo "\n"; echo "\n"; echo '\n"; echo '\n"; echo '\n"; echo '\n"; //echo '\n"; echo '\n"; echo "\n"; } echo '
Rechnungsnr. Bestell_Nr Rechnungsdatum Buchungstext Brutto Letzte Änderung
rechnung_id\" title=\"Bearbeiten\"> rechnung_id\" onclick='return conf_del()' title='Löschen'> "; echo ''.$row->rechnungsnr."'.$row->bestell_nr."'.$date->formatDatum($row->rechnungsdatum, 'd.m.Y')."'.$row->buchungstext."'.number_format($brutto,2,",",".")."'.$freigegeben=($row->freigegeben=='t')?'ja':'nein'."'.$date->formatDatum($row->updateamum,'d.m.Y H:i:s').' '.$row->updatevon ."
Summe '.number_format($brutto_gesamt,2,",",".").'
'; } else echo "Fehler bei der Abfrage!"; } else echo "ungültiges Datumsformat"; } } elseif($aktion == 'new') { if(!$rechte->isBerechtigt('wawi/rechnung',null,'sui')) die('Sie haben keine Berechtigung zum Anlegen von Rechnungen'); echo '

Rechnung Neu

'; echo '
'; echo ''; echo 'Kostenstelle: '; echo ''; echo '
'; } elseif($aktion == 'save') { 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['rechnungstyp_kurzbz']) && 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']; $rechnungstyp_kurzbz = $_POST['rechnungstyp_kurzbz']; 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']=mb_str_replace(',','.',$_POST['betragrechnung_'.$id]); $betraege[$id]['mwst']=mb_str_replace(',','.',$_POST['mwst_'.$id]); } } $rechnung = new wawi_rechnung(); if($rechnung_id!='') { //Update if(!$rechnung->load($rechnung_id)) die('Rechnung wurde nicht gefunden'); if($rechnung->rechnungstyp_kurzbz!=$rechnungstyp_kurzbz) { if($rechnungstyp_kurzbz=='Gutschrift') $rechnung->freigegeben = false; else $rechnung->freigegeben = true; } } else { //Neue Rechnung $rechnung->new = true; $rechnung->insertamum = date('Y-m-d'); $rechnung->insertvon = $user; if($rechnungstyp_kurzbz!='Gutschrift') $rechnung->freigegeben = true; else $rechnung->freigegeben = false; } $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; $rechnung->rechnungstyp_kurzbz = $rechnungstyp_kurzbz; if(isset($_POST['transfer_datum']) && $rechte->isBerechtigt('wawi/rechnung_transfer', null, 'suid')) $rechnung->transfer_datum = $date->formatDatum($_POST['transfer_datum']); 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['bezeichnung']=='') { $rb->delete_betrag($row['id']); } else { //Speichern der Zeile $rb->rechnungsbetrag_id=$row['id']; $rb->rechnung_id = $rechnung->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(); } } $ausgabemsg.='Daten wurden gespeichert!
'; $_GET['id']=$rechnung->rechnung_id; $aktion = 'update'; } else { echo 'Fehler: '.$rechnung->errormsg.'
'; } } else die('Falsche Parameter uebergeben'); } elseif($aktion=='delete') { if(!$rechte->isBerechtigt('wawi/rechnung',null,'suid')) die('Sie haben keine Berechtigung zum Loeschen von Rechnungen'); if(isset($_GET['id'])) { echo '

Rechnung Löschen

'; $rechnung = new wawi_rechnung(); if($rechnung->delete($_GET['id'])) { echo 'Rechnung wurde erfolgreich geloescht'; } else { echo 'Fehler: '.$rechnung->errormsg.''; } echo '

Zurück'; } } if($aktion=='update') { if(!$rechte->isBerechtigt('wawi/rechnung',null,'su')) die('Sie haben keine Berechtigung zum Bearbeiten der Rechnungen'); $rechnung = new wawi_rechnung(); $bestellung = new wawi_bestellung(); $kostenstelle = new wawi_kostenstelle(); $konto = new wawi_konto(); $firma = new firma(); $oe_kurzbz=''; if(isset($_GET['id'])) { echo '
'.$ausgabemsg.'
'; echo '

Rechnung bearbeiten

'; $rechnung_id = $_GET['id']; if(!is_numeric($rechnung_id)) die('RechnungID ist ungueltig'); if(!$rechnung->load($rechnung_id)) die('Rechnung wurde nicht gefunden'); if(!$bestellung->load($rechnung->bestellung_id)) die('Diese Rechnung ist keiner gueltigen Bestellung zugeordnet'); $bestellung_id=$bestellung->bestellung_id; if(!$kostenstelle->load($bestellung->kostenstelle_id)) die('Die Rechnung bzw Bestellung ist keiner gueltigen Kostenstelle zugeordnet'); if(!$konto->load($bestellung->konto_id)) echo 'Die Rechnung bzw Bestellung ist keinem gueltigen Konto zugeordnet!'; if(!$firma->load($bestellung->firma_id)) echo 'Die Rechnung bzw Bestellung ist keiner gueltigen Firma zugeordnet!'; $kostenstelle_id=$bestellung->kostenstelle_id; echo '
Kostenstelle: '.$kostenstelle->bezeichnung.'
Konto: '.$konto->kurzbz.'
Firma: '.$firma->name.'
'; } elseif(isset($_GET['kostenstelle_id'])) { echo '

Rechnung Neu

'; $rechnung_id=''; $bestellung_id=''; $kostenstelle_id = $_GET['kostenstelle_id']; $rechnung->buchungsdatum=date('Y-m-d'); } elseif(isset($_GET['bestellung_id'])) { echo '

Rechnung Neu

'; $bestellung_id=$_GET['bestellung_id']; $rechnung_id=''; if(!$bestellung->load($bestellung_id)) die('Bestellung existiert nicht'); $kostenstelle_id=$bestellung->kostenstelle_id; $rechnung->buchungsdatum=date('Y-m-d'); $rechnung->buchungstext = $bestellung->titel; } else { die('ungueltige parameter'); } echo '
Rechnungsnummer Rechnungsdatum (tt.mm.JJJJ)   Bestellung Typ
 
Buchungstext
Buchungsdatum (tt.mm.JJJJ)


Transferdatum (tt.mm.JJJJ)
'; if(!$rechte->isBerechtigt('wawi/rechnung_transfer',null, 'suid')) { echo $date->formatDatum($rechnung->transfer_datum,'d.m.Y'); } else { echo ' '; } echo '
'; //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++; } //Unten eine Leere Zeile hinzufuegen echo getBetragRow($i, null, null, null, '20'); echo '
Bezeichnung Betrag Netto MwSt Brutto
Summe Netto:
Summe Brutto:
'; if($bestellung_id!='') { $bestellung = new wawi_bestellung(); $bestellung->load($bestellung_id); echo '


alle Rechnungen zu Bestellung ',$bestellung->bestell_nr,' anzeigen'; } } /** * * Liefert eine Zeile zum Eintragen des Betrages * * @param $i Nummer der Zeile * @param $rechnungsbetrag_id ID des rechnungsbetrages (optional) * @param $bezeichnung Bezeichnung des rechnungsbetrages (optional) * @param $betrag Betrag des rechnungsbetrages (optional) * @param $mwst MwSt des rechnungsbetrages (optional) */ 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 ' % '; } ?>