diff --git a/www/pages/gutschrift.php b/www/pages/gutschrift.php
index 0fc85785..a64b86b8 100644
--- a/www/pages/gutschrift.php
+++ b/www/pages/gutschrift.php
@@ -620,6 +620,8 @@ class Gutschrift extends GenGutschrift
$tmp3->DisplayNew('PDFARCHIV','Menü','noAction');
}
+ $this->app->Tpl->Add('ZAHLUNGEN',$this->GutschriftZahlung(true));
+
if($parsetarget=='') {
$this->app->Tpl->Output('gutschrift_minidetail.tpl');
$this->app->ExitXentral();
@@ -738,7 +740,7 @@ class Gutschrift extends GenGutschrift
." $waehrung";
}
- $saldo = $this->app->erp->EUR($this->app->erp->GutschriftSaldo($id));
+ $saldo = $this->app->erp->EUR($this->GutschriftSaldo($id));
if($saldo < 0) {
$saldo = "$saldo";
diff --git a/www/pages/rechnung.php b/www/pages/rechnung.php
index 56a59deb..1a251a4d 100644
--- a/www/pages/rechnung.php
+++ b/www/pages/rechnung.php
@@ -889,7 +889,8 @@ class Rechnung extends GenRechnung
}
- $this->app->Tpl->Set('ZAHLUNGEN',"
Erst ab Version Enterprise verfügbar
");
+// $this->app->Tpl->Set('ZAHLUNGEN',"Erst ab Version Enterprise verfügbar
");
+ $this->app->Tpl->Set('ZAHLUNGEN',$this->RechnungZahlung(true));
if (!is_null($gutschrift)) {
@@ -2712,4 +2713,183 @@ class Rechnung extends GenRechnung
return $this->app->DB->GetInsertID();
}
+
+
+ function RechnungZahlung($return=false)
+ {
+ $id = $this->app->Secure->GetGET('id');
+
+ $rechnungArr = $this->app->DB->SelectArr(
+ "SELECT DATE_FORMAT(datum,'%d.%m.%Y') as datum, belegnr, soll, waehrung, rechnungid
+ FROM rechnung WHERE id='$id' LIMIT 1"
+ );
+ $waehrung = empty($rechnungArr)?'EUR':$rechnungArr[0]['waehrung'];
+ if(!$waehrung) {
+ $waehrung = 'EUR';
+ }
+
+ $rechnungid = empty($rechnungArr)?0: $rechnungArr[0]['rechnungid'];
+
+ $auftragid = $rechnungid <= 0?0:$this->app->DB->Select(
+ sprintf(
+ 'SELECT `auftragid` FROM `rechnung` WHERE `id` = %d LIMIT 1',
+ $rechnungid
+ )
+ );
+ $eingang ="Zahlungen |
";
+
+
+ $eingang .="".$rechnungArr[0]['datum']
+ ." | RG ".$rechnungArr[0]['belegnr']
+ ." | ".$this->app->erp->EUR($rechnungArr[0]['soll'])
+ ." $waehrung |
";
+
+ $eingangArr = $this->app->DB->SelectArr(
+ "SELECT ko.bezeichnung as konto, DATE_FORMAT(ke.datum,'%d.%m.%Y') as datum, k.id as kontoauszuege,
+ ke.betrag as betrag, k.id as zeile,k.waehrung
+ FROM kontoauszuege_zahlungseingang ke
+ LEFT JOIN kontoauszuege k ON ke.kontoauszuege=k.id
+ LEFT JOIN konten ko ON k.konto=ko.id
+ WHERE (ke.objekt='rechnung' AND ke.parameter='$id')
+ OR (ke.objekt='auftrag' AND ke.parameter='$auftragid' AND ke.parameter>0)
+ OR (ke.objekt='rechnung' AND ke.parameter='$rechnungid' AND ke.parameter>0)"
+ );
+ $ceingangArr = empty($eingangArr)?0:(!empty($eingangArr)?count($eingangArr):0);
+
+ for($i=0;$i<$ceingangArr;$i++) {
+ $waehrung = 'EUR';
+ if($eingangArr[$i]['waehrung']) {
+ $waehrung = $eingangArr[$i]['waehrung'];
+ }
+ $eingang .="".$eingangArr[$i]['datum']
+ ." | ".$eingangArr[$i]['konto']
+ ." (zur Buchung) | "
+ .$this->app->erp->EUR($eingangArr[$i]['betrag'])
+ ." $waehrung |
";
+ }
+ // rechnungen zu dieser rechnung anzeigen
+
+ $rechnungen = $this->app->DB->SelectArr("SELECT belegnr, DATE_FORMAT(datum,'%d.%m.%Y') as datum,soll FROM rechnung WHERE rechnungid='$id'");
+
+ for($i=0;$i<(!empty($rechnungen)?count($rechnungen):0);$i++)
+ $eingang .="".$rechnungen[$i]['datum']." | GS ".$rechnungen[$i]['belegnr']." | ".$this->app->erp->EUR($rechnungen[$i]['soll'])." EUR |
";
+
+ $ausgang = '';
+ $ausgangArr = $this->app->DB->SelectArr(
+ "SELECT ko.bezeichnung as konto, DATE_FORMAT(ke.datum,'%d.%m.%Y') as datum, ke.betrag as betrag,
+ k.id as zeile,k.waehrung
+ FROM kontoauszuege_zahlungsausgang ke
+ LEFT JOIN kontoauszuege k ON ke.kontoauszuege=k.id
+ LEFT JOIN konten ko ON k.konto=ko.id
+ WHERE (ke.objekt='rechnung' AND ke.parameter='$id')
+ OR (ke.objekt='rechnung' AND ke.parameter='$rechnungid' AND ke.parameter>0)
+ OR (ke.objekt='auftrag' AND ke.parameter='$auftragid' AND ke.parameter>0)"
+ );
+ $cAusgangArr = empty($ausgangArr)?0:(!empty($ausgangArr)?count($ausgangArr):0);
+ for($i=0;$i<$cAusgangArr;$i++) {
+ $waehrung = 'EUR';
+ if($ausgangArr[$i]['waehrung']) {
+ $waehrung = $ausgangArr[$i]['waehrung'];
+ }
+ $ausgang .="".$ausgangArr[$i]['datum']." | "
+ .$ausgangArr[$i]['konto']." (zur Buchung) | "
+ .$this->app->erp->EUR($ausgangArr[$i]['betrag'])
+ ." $waehrung |
";
+ }
+
+ $saldo = $this->app->erp->EUR($this->RechnungSaldo($id));
+
+ if($saldo < 0) {
+ $saldo = "$saldo";
+ }
+ $waehrung = $this->app->DB->Select("SELECT waehrung FROM rechnung WHERE id = '$id' LIMIT 1");
+ if(!$waehrung) {
+ $waehrung = 'EUR';
+ }
+ $ausgang .=" | Saldo | $saldo $waehrung |
";
+
+ if($return) {
+ return "".$eingang." ".$ausgang."
";
+ }
+ }
+
+public function RechnungSaldo($id)
+ {
+ if($id <= 0) {
+ return 0;
+ }
+
+ $rechnungid = $this->app->DB->Select(
+ sprintf(
+ 'SELECT `rechnungid` FROM `rechnung` WHERE `id`= %d LIMIT 1',
+ $id
+ )
+ );
+ $auftragid = $rechnungid <= 0?0:$this->app->DB->Select(
+ sprintf(
+ 'SELECT `auftragid` FROM `rechnung` WHERE `id`=%d LIMIT 1',
+ $rechnungid
+ )
+ );
+
+ $eingangArr = $this->app->DB->SelectArr(
+ sprintf(
+ "SELECT ko.bezeichnung as konto, DATE_FORMAT(ke.datum,'%%d.%%m.%%Y') as datum, k.id as kontoauszuege, ke.betrag as betrag
+ FROM `kontoauszuege_zahlungseingang` AS `ke`
+ LEFT JOIN `kontoauszuege` AS `k` ON ke.kontoauszuege=k.id
+ LEFT JOIN `konten` AS `ko` ON k.konto=ko.id
+ WHERE (ke.objekt='rechnung' AND ke.parameter=%d)
+ OR (ke.objekt='auftrag' AND ke.parameter=%d AND ke.parameter>0)
+ OR (ke.objekt='rechnung' AND ke.parameter=%d AND ke.parameter>0)",
+ $id, $auftragid, $rechnungid
+ )
+ );
+ $einnahmen = 0;
+ if(!empty($eingangArr)) {
+ foreach($eingangArr AS $eingangRow) {
+ $einnahmen += $eingangRow['betrag'];
+ }
+ }
+
+ //$rechnungen = $this->app->DB->SelectArr("SELECT belegnr, DATE_FORMAT(datum,'%d.%m.%Y') as datum,soll FROM rechnung WHERE rechnungid='$id' "); // alt
+ $rechnungen = $this->app->DB->SelectArr(
+ sprintf(
+ "SELECT ro.belegnr, DATE_FORMAT(ro.datum,'%%d.%%m.%%Y') as datum, ro.soll
+ FROM `rechnung` AS `ro`
+ WHERE ro.`id` = %d ",
+ $id
+ )
+ );
+
+ if(!empty($rechnungen)) {
+ foreach($rechnungen as $rechnungRow) {
+ $einnahmen += $rechnungRow['soll'];
+ }
+ }
+
+ $ausgangArr = $this->app->DB->SelectArr(
+ sprintf(
+ "SELECT ko.bezeichnung as konto, DATE_FORMAT(ke.datum,'%%d.%%m') as datum, ke.betrag as betrag
+ FROM kontoauszuege_zahlungsausgang ke
+ LEFT JOIN kontoauszuege k ON ke.kontoauszuege=k.id
+ LEFT JOIN konten ko ON k.konto=ko.id
+ WHERE (ke.objekt='rechnung' AND ke.parameter=%d)
+ OR (ke.objekt='rechnung' AND ke.parameter=%d AND ke.parameter>0)
+ OR (ke.objekt='auftrag' AND ke.parameter=%d AND ke.parameter>0)",
+ $id, $rechnungid, $auftragid
+ )
+ );
+ $ausgaben = 0;
+ if(!empty($ausgangArr)){
+ foreach($ausgangArr as $ausgangRow) {
+ $ausgaben += $ausgangRow['betrg'];
+ }
+ }
+
+ return $einnahmen - $ausgaben;
+ }
+
+
}