mirror of
https://github.com/OpenXE-org/OpenXE.git
synced 2024-11-15 04:27:14 +01:00
Zahlungen minidetail and collation of relevant documents as tree
This commit is contained in:
parent
8dd78dfa55
commit
ab91715c20
@ -36016,6 +36016,142 @@ function Firmendaten($field,$projekt="")
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Retrieve the associated documents regarding payments
|
||||
* Gutschrift -> Rechnung -> Auftrag OR Verbindlichkeit
|
||||
* Results array of ids, types, belegnr
|
||||
*/
|
||||
public function GetZahlungenAssociatedDocuments(int $id, string $type) : array {
|
||||
|
||||
$assocs = array(
|
||||
array(
|
||||
'type' => 'auftrag',
|
||||
'below' => 'rechnung',
|
||||
),
|
||||
array(
|
||||
'above' => 'auftrag',
|
||||
'type' => 'rechnung',
|
||||
'below' => 'gutschrift'
|
||||
),
|
||||
array(
|
||||
'above' => 'rechnung',
|
||||
'type' => 'gutschrift'
|
||||
),
|
||||
array(
|
||||
'type' => 'verbindlichkeit'
|
||||
)
|
||||
);
|
||||
|
||||
|
||||
if ($id <= 0) {
|
||||
throw new exception('no id provided');
|
||||
}
|
||||
|
||||
if (!in_array($type, array('rechnung','gutschrift','auftrag','verbindlichkeit'))) {
|
||||
throw new exception('invalid type '.$type);
|
||||
}
|
||||
|
||||
$id = $this->app->Secure->GetGET('id');
|
||||
|
||||
// Go to highest level
|
||||
$above = $assocs[array_search($type,array_column($assocs,'type'))]['above'];
|
||||
while ($above) {
|
||||
$sql = "SELECT ".$above."id as id FROM ".$type." WHERE id = ".$id;
|
||||
$above_id = $this->app->DB->SelectArr($sql)[0];
|
||||
if (!empty($above)) {
|
||||
$type = $above;
|
||||
$id = $above_id['id'];
|
||||
}
|
||||
$above = $assocs[array_search($type,array_column($assocs,'type'))]['above'];
|
||||
}
|
||||
|
||||
// Cascade down and retrieve all documents
|
||||
$result_documents = array();
|
||||
$ids = array($id);
|
||||
$ref = 'id';
|
||||
do {
|
||||
$sql = "SELECT id, '".$type."' AS type, belegnr FROM ".$type." WHERE ".$ref." IN (".implode(",",$ids).")";
|
||||
$result = $this->app->DB->SelectArr($sql);
|
||||
if (!empty($result)) {
|
||||
$result_documents = array_merge($result_documents, $result);
|
||||
$ids = array_column($result,'id');
|
||||
$ref = $type."id";
|
||||
$type = $assocs[array_search($type,array_column($assocs,'type'))]['below'];
|
||||
} else {
|
||||
break;
|
||||
}
|
||||
} while ($type);
|
||||
|
||||
return($result_documents);
|
||||
}
|
||||
|
||||
/*
|
||||
* Calculate the payments of a document (rechnung, gutschrift, auftrag, verbindlichkeit)
|
||||
* Results array of payments with information
|
||||
* Gutschrift -> Rechnungid, Rechnung -> Auftragid
|
||||
*/
|
||||
public function GetZahlungen(int $id, string $type) : array {
|
||||
|
||||
$documents = $this->GetZahlungenAssociatedDocuments($id, $type);
|
||||
|
||||
if (empty($documents)) {
|
||||
return(array());
|
||||
}
|
||||
|
||||
// print_r($documents);
|
||||
|
||||
$zahlungen = array();
|
||||
|
||||
$tables = array(
|
||||
array(
|
||||
'minus' => '',
|
||||
'table' => 'kontoauszuege_zahlungseingang',
|
||||
),
|
||||
array (
|
||||
'minus' => '-',
|
||||
'table' => 'kontoauszuege_zahlungsausgang'
|
||||
)
|
||||
);
|
||||
|
||||
foreach ($documents as $document) {
|
||||
|
||||
foreach ($tables as $table) {
|
||||
|
||||
$sql = "
|
||||
SELECT
|
||||
'".$document['type']."' as `doc_type`,
|
||||
'".$document['id']."' as `doc_id`,
|
||||
'".$document['belegnr']."' as `doc_belegnr`,
|
||||
ko.bezeichnung AS konto,
|
||||
DATE_FORMAT(ke.datum, '%d.%m.%Y') AS datum,
|
||||
k.id AS kontoauszuege,
|
||||
".$table['minus']."ke.betrag AS betrag,
|
||||
k.id AS zeile,
|
||||
k.waehrung
|
||||
FROM
|
||||
".$table['table']." ke
|
||||
LEFT JOIN kontoauszuege k ON
|
||||
ke.kontoauszuege = k.id
|
||||
LEFT JOIN konten ko ON
|
||||
k.konto = ko.id
|
||||
WHERE
|
||||
ke.objekt = '".$document['type']."' AND ke.parameter = '".$document['id']."'
|
||||
";
|
||||
|
||||
$result = $this->app->DB->SelectArr($sql);
|
||||
|
||||
if (!empty($result)) {
|
||||
$zahlungen = array_merge($zahlungen,$result);
|
||||
}
|
||||
}
|
||||
}
|
||||
return($zahlungen);
|
||||
}
|
||||
|
||||
/*
|
||||
* Calculate the payment saldo of a document
|
||||
*/
|
||||
|
||||
public function ANABREGSNeuberechnen($id,$art,$force=false)
|
||||
{
|
||||
if($id <= 0 || empty($art))
|
||||
|
@ -3182,6 +3182,11 @@ class Auftrag extends GenAuftrag
|
||||
);
|
||||
}
|
||||
|
||||
$this->app->Tpl->Add(
|
||||
'ZAHLUNGEN',
|
||||
$this->AuftragZahlung(true)
|
||||
);
|
||||
|
||||
// schaue ob es eine GS zu diesem Auftrag gibt
|
||||
// schaue ob es eine GS zu diesem Auftrag gibt
|
||||
//$gutschriftid = $this->app->DB->Select("SELECT id FROM gutschrift WHERE rechnungid='$rechnungid' LIMIT 1");
|
||||
@ -3409,7 +3414,45 @@ class Auftrag extends GenAuftrag
|
||||
<tr><td><b>Lieferadresse:</b><br><br>$lieferadresse</td></tr></table>";
|
||||
}
|
||||
|
||||
/* Build the html output for minidetail containing the payments
|
||||
* @param bool $return
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
function AuftragZahlung($return=false)
|
||||
{
|
||||
$id = $this->app->Secure->GetGET('id');
|
||||
|
||||
$zahlungen = $this->app->erp->GetZahlungen($id,'auftrag');
|
||||
|
||||
// print_r($zahlungen);
|
||||
|
||||
$result = "";
|
||||
|
||||
foreach ($zahlungen as $zahlung) {
|
||||
$result .= "
|
||||
<tr>
|
||||
<td>
|
||||
".$zahlung['datum']."
|
||||
</td>
|
||||
<td>
|
||||
<a href=\"index.php?module=".$zahlung['doc_type']."&action=edit&id=".$zahlung['doc_id']."\">
|
||||
".ucfirst($zahlung['doc_type'])."
|
||||
".$zahlung['doc_belegnr']."
|
||||
</a>
|
||||
</td>
|
||||
<td>
|
||||
".$zahlung['konto']."
|
||||
</td>
|
||||
<td>
|
||||
<a href=\"index.php?module=konto&action=auszug&id=".$zahlung['kontoauszuege']."\">
|
||||
".$zahlung['betrag']." ".$zahlung['waehrung']."
|
||||
</a>
|
||||
</td>
|
||||
</tr>";
|
||||
}
|
||||
return("<table width=100% border=0 class=auftrag_cell cellpadding=0 cellspacing=0>".$result."</table>");
|
||||
}
|
||||
|
||||
function AuftragZahlungsmail()
|
||||
{
|
||||
|
@ -87,7 +87,7 @@
|
||||
-->
|
||||
|
||||
<div style="background-color:white">
|
||||
<h2 class="greyh2">{|Zahlungseingang|}</h2>
|
||||
<h2 class="greyh2">{|Zahlungen|}</h2>
|
||||
<div style="padding:10px">
|
||||
[ZAHLUNGEN]
|
||||
</div>
|
||||
|
@ -39,7 +39,7 @@
|
||||
</div>
|
||||
|
||||
<div style="background-color:white">
|
||||
<h2 class="greyh2">{|Zahlungseingang|}</h2>
|
||||
<h2 class="greyh2">{|Zahlungen|}</h2>
|
||||
<div style="padding:10px">
|
||||
[ZAHLUNGEN]
|
||||
</div>
|
||||
@ -58,12 +58,6 @@
|
||||
</div>
|
||||
</div>
|
||||
<div style="background-color:white">
|
||||
<h2 class="greyh2">Deckungsbeitrag</h2>
|
||||
<div style="padding:10px">
|
||||
|
||||
<div class="info">Dieses Modul ist erst ab Version Professional verfügbar</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
@ -44,7 +44,7 @@
|
||||
</div>
|
||||
|
||||
<div style="background-color:white">
|
||||
<h2 class="greyh2">Zahlungseingang</h2>
|
||||
<h2 class="greyh2">Zahlungen</h2>
|
||||
<div style="padding:10px">
|
||||
[ZAHLUNGEN]
|
||||
</div>
|
||||
|
@ -650,6 +650,7 @@ class Gutschrift extends GenGutschrift
|
||||
|
||||
|
||||
/**
|
||||
* Build the html output for minidetail containing the payments
|
||||
* @param bool $return
|
||||
*
|
||||
* @return string
|
||||
@ -658,102 +659,35 @@ class Gutschrift extends GenGutschrift
|
||||
{
|
||||
$id = $this->app->Secure->GetGET('id');
|
||||
|
||||
$gutschriftArr = $this->app->DB->SelectArr(
|
||||
"SELECT DATE_FORMAT(datum,'%d.%m.%Y') as datum, belegnr, soll, waehrung, rechnungid
|
||||
FROM gutschrift WHERE id='$id' LIMIT 1"
|
||||
);
|
||||
$waehrung = empty($gutschriftArr)?'EUR':$gutschriftArr[0]['waehrung'];
|
||||
if(!$waehrung) {
|
||||
$waehrung = 'EUR';
|
||||
}
|
||||
|
||||
$rechnungid = empty($gutschriftArr)?0: $gutschriftArr[0]['rechnungid'];
|
||||
|
||||
$auftragid = $rechnungid <= 0?0:$this->app->DB->Select(
|
||||
sprintf(
|
||||
'SELECT `auftragid` FROM `rechnung` WHERE `id` = %d LIMIT 1',
|
||||
$rechnungid
|
||||
)
|
||||
);
|
||||
$eingang ="<tr><td colspan=\"3\"><b>Zahlungen</b></td></tr>";
|
||||
|
||||
|
||||
$eingang .="<tr><td class=auftrag_cell>".$gutschriftArr[0]['datum']
|
||||
."</td><td class=auftrag_cell>GS ".$gutschriftArr[0]['belegnr']
|
||||
."</td><td class=auftrag_cell align=right>".$this->app->erp->EUR($gutschriftArr[0]['soll'])
|
||||
." $waehrung</td></tr>";
|
||||
|
||||
$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='gutschrift' 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 .="<tr><td class=auftrag_cell>".$eingangArr[$i]['datum']
|
||||
."</td><td class=auftrag_cell>".$eingangArr[$i]['konto']
|
||||
." (<a href=\"index.php?module=zahlungseingang&action=editzeile&id="
|
||||
.$eingangArr[$i]['zeile']."\">zur Buchung</a>)</td><td class=auftrag_cell align=right>"
|
||||
.$this->app->erp->EUR($eingangArr[$i]['betrag'])
|
||||
." $waehrung</td></tr>";
|
||||
}
|
||||
// gutschriften zu dieser rechnung anzeigen
|
||||
/*
|
||||
$gutschriften = $this->app->DB->SelectArr("SELECT belegnr, DATE_FORMAT(datum,'%d.%m.%Y') as datum,soll FROM gutschrift WHERE rechnungid='$id'");
|
||||
|
||||
for($i=0;$i<(!empty($gutschriften)?count($gutschriften):0);$i++)
|
||||
$eingang .="<tr><td class=auftrag_cell>".$gutschriften[$i]['datum']."</td><td class=auftrag_cell>GS ".$gutschriften[$i]['belegnr']."</td><td class=auftrag_cell align=right>".$this->app->erp->EUR($gutschriften[$i]['soll'])." EUR</td></tr>";
|
||||
|
||||
*/
|
||||
|
||||
$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='gutschrift' 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 .="<tr><td class=auftrag_cell>".$ausgangArr[$i]['datum']."</td><td class=auftrag_cell>"
|
||||
.$ausgangArr[$i]['konto']." (<a href=\"index.php?module=zahlungseingang&action=editzeile&id="
|
||||
.$ausgangArr[$i]['zeile']."\">zur Buchung</a>)</td><td class=auftrag_cell align=right>"
|
||||
.$this->app->erp->EUR($ausgangArr[$i]['betrag'])
|
||||
." $waehrung</td></tr>";
|
||||
}
|
||||
|
||||
$saldo = $this->app->erp->EUR($this->GutschriftSaldo($id));
|
||||
|
||||
if($saldo < 0) {
|
||||
$saldo = "<b style=\"color:red\">$saldo</b>";
|
||||
}
|
||||
$waehrung = $this->app->DB->Select("SELECT waehrung FROM gutschrift WHERE id = '$id' LIMIT 1");
|
||||
if(!$waehrung) {
|
||||
$waehrung = 'EUR';
|
||||
}
|
||||
$ausgang .="<tr><td class=auftrag_cell></td><td class=auftrag_cell align=right>Saldo</td><td class=auftrag_cell align=right>$saldo $waehrung</td></tr>";
|
||||
|
||||
if($return) {
|
||||
return "<table width=100% border=0 class=auftrag_cell cellpadding=0 cellspacing=0>".$eingang." ".$ausgang."</table>";
|
||||
$zahlungen = $this->app->erp->GetZahlungen($id,'gutschrift');
|
||||
|
||||
// print_r($zahlungen);
|
||||
|
||||
$result = "";
|
||||
|
||||
foreach ($zahlungen as $zahlung) {
|
||||
$result .= "
|
||||
<tr>
|
||||
<td>
|
||||
".$zahlung['datum']."
|
||||
</td>
|
||||
<td>
|
||||
<a href=\"index.php?module=".$zahlung['doc_type']."&action=edit&id=".$zahlung['doc_id']."\">
|
||||
".ucfirst($zahlung['doc_type'])."
|
||||
".$zahlung['doc_belegnr']."
|
||||
</a>
|
||||
</td>
|
||||
<td>
|
||||
".$zahlung['konto']."
|
||||
</td>
|
||||
<td>
|
||||
<a href=\"index.php?module=konto&action=auszug&id=".$zahlung['kontoauszuege']."\">
|
||||
".$zahlung['betrag']." ".$zahlung['waehrung']."
|
||||
</a>
|
||||
</td>
|
||||
</tr>";
|
||||
}
|
||||
return("<table width=100% border=0 class=auftrag_cell cellpadding=0 cellspacing=0>".$result."</table>");
|
||||
}
|
||||
|
||||
|
||||
@ -1251,25 +1185,12 @@ class Gutschrift extends GenGutschrift
|
||||
// $this->app->erp->CommonReadonly();
|
||||
}
|
||||
|
||||
if($schreibschutz=="1")
|
||||
$this->app->erp->CommonReadonly();
|
||||
if($schreibschutz=="1") {
|
||||
$this->app->erp->CommonReadonly();
|
||||
}
|
||||
|
||||
$rechnungid = $this->app->DB->Select("SELECT rechnungid FROM gutschrift WHERE id='$id' LIMIT 1");
|
||||
$rechnungid = $this->app->DB->Select("SELECT id FROM rechnung WHERE id='$rechnungid' AND belegnr!='' LIMIT 1");
|
||||
$alle_gutschriften = $this->app->DB->SelectArr("SELECT id,belegnr FROM gutschrift WHERE rechnungid='$rechnungid' AND rechnungid>0");
|
||||
|
||||
if (!is_null($alle_gutschriften)) {
|
||||
if((!empty($alle_gutschriften)?count($alle_gutschriften):0) > 1)
|
||||
{
|
||||
for($agi=0;$agi<(!empty($alle_gutschriften)?count($alle_gutschriften):0);$agi++)
|
||||
$gutschriften .= "<a href=\"index.php?module=gutschrift&action=edit&id=".$alle_gutschriften[$agi][id]."\" target=\"_blank\">".$alle_gutschriften[$agi][belegnr]."</a> ";
|
||||
$this->app->Tpl->Add('MESSAGE',"<div class=\"warning\">Für die angebene Rechnung gibt es schon folgende Gutschriften: $gutschriften</div>");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// if($status=="versendet")
|
||||
// $this->app->Tpl->Set(MESSAGE,"<div class=\"error\">Diese Gutschrift wurde bereits versendet und darf daher nicht mehr bearbeitet werden!</div>");
|
||||
|
||||
if($status=="")
|
||||
$this->app->DB->Update("UPDATE gutschrift SET status='angelegt' WHERE id='$id' LIMIT 1");
|
||||
|
@ -1583,6 +1583,9 @@ class Rechnung extends GenRechnung
|
||||
$this->app->erp->RechnungNeuberechnen($id);
|
||||
}
|
||||
|
||||
// ALWAYS
|
||||
$this->app->erp->RechnungNeuberechnen($id);
|
||||
|
||||
if($cmd === 'dadown')
|
||||
{
|
||||
$erg['status'] = 0;
|
||||
@ -1767,8 +1770,10 @@ class Rechnung extends GenRechnung
|
||||
$this->app->Tpl->Set('VORKASSE','');
|
||||
}
|
||||
|
||||
// $saldo=$this->app->DB->Select("SELECT ist-skonto_gegeben FROM rechnung WHERE id='$id'");
|
||||
|
||||
$saldo = $this->app->erp->EUR($this->RechnungSaldo($id));
|
||||
|
||||
$saldo=$this->app->DB->Select("SELECT ist-skonto_gegeben FROM rechnung WHERE id='$id'");
|
||||
$this->app->Tpl->Set('LIVEIST',"$saldo");
|
||||
|
||||
if($schreibschutz=="1" && $this->app->erp->RechteVorhanden('rechnung','schreibschutz'))
|
||||
@ -1789,10 +1794,13 @@ class Rechnung extends GenRechnung
|
||||
$this->app->erp->RemoveReadonly('mahnwesenfestsetzen');
|
||||
$this->app->erp->RemoveReadonly('mahnwesen');
|
||||
$this->app->erp->RemoveReadonly('bezahlt_am');
|
||||
/*
|
||||
'ist' should not be edited manually
|
||||
|
||||
$this->app->erp->RemoveReadonly('ist');
|
||||
|
||||
if($this->app->erp->Firmendaten('mahnwesenmitkontoabgleich')!='1' || $this->app->DB->Select("SELECT mahnwesenfestsetzen FROM rechnung WHERE id='$id' LIMIT 1")==1)
|
||||
$this->app->erp->RemoveReadonly('ist');
|
||||
$this->app->erp->RemoveReadonly('ist');*/
|
||||
|
||||
//$auftrag= $this->app->DB->Select("SELECT auftrag FROM rechnung WHERE id='$id' LIMIT 1");
|
||||
|
||||
@ -1805,7 +1813,7 @@ class Rechnung extends GenRechnung
|
||||
{
|
||||
$gutschriften = '';
|
||||
for($agi=0;$agi<$cgutschriften;$agi++)
|
||||
$gutschriften .= "<a href=\"index.php?module=gutschrift&action=edit&id=".$alle_gutschriften[$agi][id]."\" target=\"_blank\">".$alle_gutschriften[$agi][belegnr]."</a> ";
|
||||
$gutschriften .= "<a href=\"index.php?module=gutschrift&action=edit&id=".$alle_gutschriften[$agi]['id']."\" target=\"_blank\">".$alle_gutschriften[$agi]['belegnr']."</a> ";
|
||||
$this->app->Tpl->Add('MESSAGE',"<div class=\"warning\">Für die angebene Rechnung gibt es schon folgende Gutschriften: $gutschriften</div>");
|
||||
}
|
||||
|
||||
@ -1963,6 +1971,7 @@ class Rechnung extends GenRechnung
|
||||
' überein <input type="submit" name="resetextsoll" value="Festgeschriebene Summe zurücksetzen" /></div></form>'
|
||||
);
|
||||
}
|
||||
|
||||
parent::RechnungEdit();
|
||||
if($id > 0 && $this->app->DB->Select(
|
||||
sprintf(
|
||||
@ -2715,104 +2724,45 @@ class Rechnung extends GenRechnung
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Build the html output for minidetail containing the payments
|
||||
* @param bool $return
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
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 ="<tr><td colspan=\"3\"><b>Zahlungen</b></td></tr>";
|
||||
|
||||
|
||||
$eingang .="<tr><td class=auftrag_cell>".$rechnungArr[0]['datum']
|
||||
."</td><td class=auftrag_cell>RG ".$rechnungArr[0]['belegnr']
|
||||
."</td><td class=auftrag_cell align=right>".$this->app->erp->EUR($rechnungArr[0]['soll'])
|
||||
." $waehrung</td></tr>";
|
||||
|
||||
$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 .="<tr><td class=auftrag_cell>".$eingangArr[$i]['datum']
|
||||
."</td><td class=auftrag_cell>".$eingangArr[$i]['konto']
|
||||
." (<a href=\"index.php?module=zahlungseingang&action=editzeile&id="
|
||||
.$eingangArr[$i]['zeile']."\">zur Buchung</a>)</td><td class=auftrag_cell align=right>"
|
||||
.$this->app->erp->EUR($eingangArr[$i]['betrag'])
|
||||
." $waehrung</td></tr>";
|
||||
}
|
||||
// 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 .="<tr><td class=auftrag_cell>".$rechnungen[$i]['datum']."</td><td class=auftrag_cell>GS ".$rechnungen[$i]['belegnr']."</td><td class=auftrag_cell align=right>".$this->app->erp->EUR($rechnungen[$i]['soll'])." EUR</td></tr>";
|
||||
|
||||
$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 .="<tr><td class=auftrag_cell>".$ausgangArr[$i]['datum']."</td><td class=auftrag_cell>"
|
||||
.$ausgangArr[$i]['konto']." (<a href=\"index.php?module=zahlungseingang&action=editzeile&id="
|
||||
.$ausgangArr[$i]['zeile']."\">zur Buchung</a>)</td><td class=auftrag_cell align=right>"
|
||||
.$this->app->erp->EUR($ausgangArr[$i]['betrag'])
|
||||
." $waehrung</td></tr>";
|
||||
}
|
||||
|
||||
$saldo = $this->app->erp->EUR($this->RechnungSaldo($id));
|
||||
|
||||
if($saldo < 0) {
|
||||
$saldo = "<b style=\"color:red\">$saldo</b>";
|
||||
}
|
||||
$waehrung = $this->app->DB->Select("SELECT waehrung FROM rechnung WHERE id = '$id' LIMIT 1");
|
||||
if(!$waehrung) {
|
||||
$waehrung = 'EUR';
|
||||
}
|
||||
$ausgang .="<tr><td class=auftrag_cell></td><td class=auftrag_cell align=right>Saldo</td><td class=auftrag_cell align=right>$saldo $waehrung</td></tr>";
|
||||
|
||||
if($return) {
|
||||
return "<table width=100% border=0 class=auftrag_cell cellpadding=0 cellspacing=0>".$eingang." ".$ausgang."</table>";
|
||||
$zahlungen = $this->app->erp->GetZahlungen($id,'rechnung');
|
||||
|
||||
// print_r($zahlungen);
|
||||
|
||||
$result = "";
|
||||
|
||||
foreach ($zahlungen as $zahlung) {
|
||||
$result .= "
|
||||
<tr>
|
||||
<td>
|
||||
".$zahlung['datum']."
|
||||
</td>
|
||||
<td>
|
||||
<a href=\"index.php?module=".$zahlung['doc_type']."&action=edit&id=".$zahlung['doc_id']."\">
|
||||
".ucfirst($zahlung['doc_type'])."
|
||||
".$zahlung['doc_belegnr']."
|
||||
</a>
|
||||
</td>
|
||||
<td>
|
||||
".$zahlung['konto']."
|
||||
</td>
|
||||
<td>
|
||||
<a href=\"index.php?module=konto&action=auszug&id=".$zahlung['kontoauszuege']."\">
|
||||
".$zahlung['betrag']." ".$zahlung['waehrung']."
|
||||
</a>
|
||||
</td>
|
||||
</tr>";
|
||||
}
|
||||
return("<table width=100% border=0 class=auftrag_cell cellpadding=0 cellspacing=0>".$result."</table>");
|
||||
}
|
||||
|
||||
public function RechnungSaldo($id)
|
||||
@ -2823,7 +2773,7 @@ public function RechnungSaldo($id)
|
||||
|
||||
$rechnungid = $this->app->DB->Select(
|
||||
sprintf(
|
||||
'SELECT `rechnungid` FROM `rechnung` WHERE `id`= %d LIMIT 1',
|
||||
'SELECT `id` FROM `rechnung` WHERE `id`= %d LIMIT 1',
|
||||
$id
|
||||
)
|
||||
);
|
||||
|
Loading…
Reference in New Issue
Block a user