From 7de88ca3b52289727e9aad5d85e575a6fb8874c1 Mon Sep 17 00:00:00 2001 From: OpenXE <> Date: Fri, 21 Apr 2023 14:59:02 +0200 Subject: [PATCH] gutschrift freigabe with our without offsettung against rechnung, with offsetting creates fibu_buchung --- www/lib/class.erpapi.php | 12 ++++++++++++ www/pages/gutschrift.php | 39 ++++++++++++++++++++++++++++----------- 2 files changed, 40 insertions(+), 11 deletions(-) diff --git a/www/lib/class.erpapi.php b/www/lib/class.erpapi.php index b05f03fb..cfc2a612 100644 --- a/www/lib/class.erpapi.php +++ b/www/lib/class.erpapi.php @@ -36046,6 +36046,18 @@ function Firmendaten($field,$projekt="") return(array()); } + /* + * Create a fibu buchung + * using module fibu_buchungen + */ + public function fibu_buchungen_buchen(string $von_typ, int $von_id, string $nach_typ, int $nach_id, $betrag, string $waehrung, $datum, string $internebemerkung) { + $fibu_buchungen = $this->app->loadModule('fibu_buchungen', false); + if($fibu_buchungen !== null && method_exists($fibu_buchungen, 'fibu_buchungen_buchen')) { + return $fibu_buchungen->fibu_buchungen_buchen($von_typ, $von_id, $nach_typ, $nach_id, $betrag, $waehrung, $datum, $internebemerkung); + } + } + + public function ANABREGSNeuberechnen($id,$art,$force=false) { if($id <= 0 || empty($art)) diff --git a/www/pages/gutschrift.php b/www/pages/gutschrift.php index 1f2c4373..4e907a9b 100644 --- a/www/pages/gutschrift.php +++ b/www/pages/gutschrift.php @@ -712,17 +712,32 @@ class Gutschrift extends GenGutschrift $showDefault = true; $this->app->Tpl->Set('TABTEXT','Freigabe'); $this->app->erp->GutschriftNeuberechnen($id); - $this->app->erp->CheckVertrieb($id,'gutschrift'); $this->app->erp->CheckBearbeiter($id,'gutschrift'); $doctype = 'gutschrift'; + + $sql = "SELECT belegnr, rechnungid FROM gutschrift WHERE id='$id' LIMIT 1"; + $result = $this->app->DB->SelectArr($sql); + $belegnr = $result[0]['belegnr']; + $rechnungid = $result[0]['rechnungid']; + $name = $this->app->DB->Select("SELECT a.name FROM gutschrift b LEFT JOIN adresse a ON a.id=b.adresse WHERE b.id='$id' LIMIT 1"); + $summe = $this->app->DB->Select("SELECT soll FROM gutschrift WHERE id='$id' LIMIT 1"); + $waehrung = $this->app->DB->Select("SELECT waehrung FROM gutschrift_position WHERE gutschrift='$id' LIMIT 1"); + if(empty($intern)){ $this->app->erp->RunHook('beleg_freigabe', 4, $doctype, $id, $allowedFrm, $showDefault); } - if($allowedFrm && $freigabe==$id) { - $belegnr = $this->app->DB->Select("SELECT belegnr FROM gutschrift WHERE id='$id' LIMIT 1"); + if($allowedFrm && $freigabe==$id) { + if($belegnr=='') { $this->app->erp->BelegFreigabe('gutschrift',$id); + + // Create fibu_buchung + $gegen_rechnung = $this->app->Secure->GetGET('gegen_rechnung'); + if ($gegen_rechnung && $rechnungid > 0) { + $this->app->erp->fibu_buchungen_buchen('gutschrift', $id, 'rechnung', $rechnungid, -$summe, $waehrung, date("Y-m-d"), 'Verrechnung'); + } + if($intern) { return 1; } @@ -735,15 +750,17 @@ class Gutschrift extends GenGutschrift $msg = $this->app->erp->base64_url_encode("
Die Gutschrift war bereits freigegeben!
"); $this->app->Location->execute("index.php?module=gutschrift&action=edit&id=$id&msg=$msg"); } - if($showDefault){ - $name = $this->app->DB->Select("SELECT a.name FROM gutschrift b LEFT JOIN adresse a ON a.id=b.adresse WHERE b.id='$id' LIMIT 1"); - $summe = $this->app->DB->Select("SELECT soll FROM gutschrift WHERE id='$id' LIMIT 1"); - $waehrung = $this->app->DB->Select("SELECT waehrung FROM gutschrift_position - WHERE gutschrift='$id' LIMIT 1"); - + if($showDefault){ + if ($rechnungid > 0) { + $input_html = "" + .""; + } else { + $input_html = ""; + } $this->app->Tpl->Set('TAB1', "
Soll die Gutschrift an $name im Wert von $summe $waehrung - jetzt freigegeben werden? -
"); + jetzt freigegeben werden? ". + $input_html. + ""); } $this->GutschriftMenu(); $this->app->Tpl->Parse('PAGE','tabview.tpl');