diff --git a/www/pages/verbindlichkeit.php b/www/pages/verbindlichkeit.php
index ac4de5e3..a0d39f3e 100644
--- a/www/pages/verbindlichkeit.php
+++ b/www/pages/verbindlichkeit.php
@@ -1,7 +1,8 @@
app->ActionHandler("dateien", "verbindlichkeit_dateien");
$this->app->ActionHandler("inlinepdf", "verbindlichkeit_inlinepdf");
$this->app->ActionHandler("positioneneditpopup", "verbindlichkeit_positioneneditpopup");
+ $this->app->ActionHandler("freigabe", "verbindlichkeit_freigabe");
$this->app->DefaultActionHandler("list");
$this->app->ActionHandlerListen($app);
@@ -35,7 +37,7 @@ class Verbindlichkeit {
switch ($name) {
case "verbindlichkeit_list":
$allowed['verbindlichkeit_list'] = array('list');
- $heading = array('','','Belegnr','Adresse', 'Lieferant', 'RE-Nr', 'RE-Datum', 'Betrag (brutto)', 'Währung', 'Ziel','Skontoziel','Skonto','Monitor', 'Menü');
+ $heading = array('','','Belegnr','Adresse', 'Lieferant', 'RE-Nr', 'RE-Datum', 'Betrag (brutto)', 'Währung', 'Ziel','Skontoziel','Skonto','Status','Monitor', 'Menü');
$width = array('1%','1%','10%'); // Fill out manually later
// columns that are aligned right (numbers etc)
@@ -54,6 +56,7 @@ class Verbindlichkeit {
'v.zahlbarbis',
'v.skontobis',
'v.skonto',
+ 'v.status',
'v.status_beleg',
'v.id'
);
@@ -91,6 +94,7 @@ class Verbindlichkeit {
".$app->erp->FormatDate("v.zahlbarbis").",
IF(v.skonto <> 0,".$app->erp->FormatDate("v.skontobis").",''),
IF(v.skonto <> 0,CONCAT(".$app->erp->FormatMenge('v.skonto',0).",'%'),''),
+ v.status,
".$app->YUI->IconsSQLVerbindlichkeit().",
v.id FROM verbindlichkeit v
LEFT JOIN adresse a ON v.adresse = a.id
@@ -159,17 +163,30 @@ class Verbindlichkeit {
if (empty($id)) {
// New item
$id = 'NULL';
+ $input['status'] = 'angelegt';
}
if ($submit != '')
{
- // Write to database
-
+ // Write to database
// Add checks here
+ $status = $this->app->DB->Select("SELECT status FROM verbindlichkeit WHERE id =".$id);
- // $input['projekt'] = $this->app->erp->ReplaceProjekt(true,$input['projekt'],true); // Parameters: Target db?, value, from form?
- $input['adresse'] = $this->app->erp->ReplaceAdresse(true,$input['adresse'],true); // Parameters: Target db?, value, from form?
+ if ($status != 'angelegt' && $id != 'NULL') {
+ $internebemerkung = $input['internebemerkung'];
+ unset($input);
+ $input['internebemerkung'] = $internebemerkung;
+ } else {
+ $input['adresse'] = $this->app->erp->ReplaceAdresse(true,$input['adresse'],true); // Parameters: Target db?, value, from form?
+ $input['rechnungsdatum'] = $this->app->erp->ReplaceDatum(true,$input['rechnungsdatum'],true); // Parameters: Target db?, value, from form?
+ $input['eingangsdatum'] = $this->app->erp->ReplaceDatum(true,$input['eingangsdatum'],true); // Parameters: Target db?, value, from form?
+ $input['skontobis'] = $this->app->erp->ReplaceDatum(true,$input['skontobis'],true); // Parameters: Target db?, value, from form?
+ $input['zahlbarbis'] = $this->app->erp->ReplaceDatum(true,$input['zahlbarbis'],true); // Parameters: Target db?, value, from form?
+ $input['projekt'] = $this->app->erp->ReplaceProjekt(true,$input['projekt'],true);
+ $input['kostenstelle'] = $this->app->erp->ReplaceKostenstelle(true,$input['kostenstelle'],true);
+ $input['sachkonto'] = $this->app->erp->ReplaceKontorahmen(true,$input['sachkonto'],true);
+ }
$columns = "id, ";
$values = "$id, ";
@@ -196,8 +213,9 @@ class Verbindlichkeit {
$this->app->DB->Update($sql);
if ($id == 'NULL') {
+ $id = $this->app->DB->GetInsertID();
$msg = $this->app->erp->base64_url_encode("
Das Element wurde erfolgreich angelegt.
");
- header("Location: index.php?module=verbindlichkeit&action=list&msg=$msg");
+ header("Location: index.php?module=verbindlichkeit&action=edit&id=$id&msg=$msg");
} else {
$this->app->Tpl->Set('MESSAGE', "
Die Einstellungen wurden erfolgreich übernommen.
");
}
@@ -216,6 +234,49 @@ class Verbindlichkeit {
$verbindlichkeit_from_db = $result[0];
}
+ // Summarize positions
+
+ $sql = "SELECT * FROM verbindlichkeit_position WHERE verbindlichkeit = ".$id;
+ $positionen = $this->app->DB->SelectArr($sql);
+
+ if (!empty($positionen)) {
+ $betrag_netto = 0;
+ $betrag_brutto = 0;
+ $steuer_normal = 0;
+ $steuer_ermaessigt = 0;
+
+ /*
+ Normal: umsatzsteuer leer, steuersatz = leer
+ Ermäßigt: umsatzsteuer ermaessigt, steuersatz = -1
+ Befreit: umsatzsteuer befreit, steursatz = -1
+ Individuell: umsatzsteuer leer, steuersatz = wert
+ */
+
+ foreach ($positionen as $position) {
+
+ $tmpsteuersatz = null;
+ $tmpsteuertext = null;
+ $erloes = null;
+
+ // function GetSteuerPosition($typ, $posid,&$tmpsteuersatz = null, &$tmpsteuertext = null, &$erloes = null)
+
+ $this->app->erp->GetSteuerPosition("verbindlichkeit",$position['id'],$tmpsteuersatz,$tmpsteuertext,$erloes);
+
+ $position['steuersatz_berechnet'] = $tmpsteuersatz;
+ $position['steuertext_berechnet'] = $tmpsteuertext;
+ $position['steuererloes_berechnet'] = $erloes;
+
+ $betrag_netto += ($position['menge']*$position['preis']);
+ $betrag_brutto += ($position['menge']*$position['preis'])*(1+($tmpsteuersatz/100));
+
+ }
+
+ $this->app->Tpl->Set('BETRAGNETTO', $betrag_netto);
+ $this->app->Tpl->Set('BETRAGBRUTTO', round($betrag_brutto,2));
+
+ $this->app->Tpl->Set('BETRAGDISABLED', 'disabled');
+
+ }
/*
* Add displayed items later
@@ -228,6 +289,23 @@ class Verbindlichkeit {
*/
+ if ($verbindlichkeit_from_db['status'] != 'angelegt' && $id != 'NULL') {
+ $this->app->Tpl->Set('SAVEDISABLED','disabled');
+ }
+
+ $this->app->Tpl->Set('FREIGABECHECKED', $verbindlichkeit_from_db['freigabe']==1?"checked":"");
+ $this->app->Tpl->Set('RECHNUNGSFREIGABECHECKED', $verbindlichkeit_from_db['rechnungsfreigabe']==1?"checked":"");
+ $this->app->Tpl->Set('BEZAHLTCHECKED', $verbindlichkeit_from_db['bezahlt']==1?"checked":"");
+
+ $this->app->Tpl->Set('RECHNUNGSDATUM',$this->app->erp->ReplaceDatum(false,$verbindlichkeit_from_db['rechnungsdatum'],false));
+ $this->app->YUI->DatePicker("rechnungsdatum");
+ $this->app->Tpl->Set('EINGANGSDATUM',$this->app->erp->ReplaceDatum(false,$verbindlichkeit_from_db['eingangsdatum'],false));
+ $this->app->YUI->DatePicker("eingangsdatum");
+ $this->app->Tpl->Set('SKONTOBIS',$this->app->erp->ReplaceDatum(false,$verbindlichkeit_from_db['skontobis'],false));
+ $this->app->YUI->DatePicker("skontobis");
+ $this->app->Tpl->Set('ZAHLBARBIS',$this->app->erp->ReplaceDatum(false,$verbindlichkeit_from_db['zahlbarbis'],false));
+ $this->app->YUI->DatePicker("zahlbarbis");
+
$this->app->Tpl->Add('KURZUEBERSCHRIFT2', $verbindlichkeit_from_db['adresse_name']." ".$verbindlichkeit_from_db['rechnung']);
$sql = "SELECT " . $this->app->YUI->IconsSQLVerbindlichkeit() . " AS `icons` FROM verbindlichkeit v WHERE id=$id";
@@ -235,6 +313,12 @@ class Verbindlichkeit {
$this->app->Tpl->Add('STATUSICONS', $icons[0]['icons']);
$this->app->YUI->AutoComplete("adresse", "adresse");
+ $this->app->YUI->AutoComplete("projekt", "projektname", 1);
+ $this->app->Tpl->Set('PROJEKT',$this->app->erp->ReplaceProjekt(false,$verbindlichkeit_from_db['projekt'],false));
+ $this->app->YUI->AutoComplete("kostenstelle", "kostenstelle", 1);
+ $this->app->Tpl->Set('KOSTENSTELLE',$this->app->erp->ReplaceKostenstelle(false,$verbindlichkeit_from_db['kostenstelle'],false));
+ $this->app->YUI->AutoComplete("sachkonto","sachkonto_aufwendungen",1);
+ $this->app->Tpl->Set('SACHKONTO',$this->app->erp->ReplaceKontorahmen(false,$verbindlichkeit_from_db['sachkonto'],false));
$waehrungenselect = $this->app->erp->GetSelect($this->app->erp->GetWaehrung(), $verbindlichkeit_from_db['waehrung']);
$this->app->Tpl->Set('WAEHRUNG', $waehrungenselect);
@@ -243,11 +327,17 @@ class Verbindlichkeit {
$this->app->Tpl->Set('ADRESSE', $this->app->erp->ReplaceAdresse(false,$verbindlichkeit_from_db['adresse'],false)); // Convert ID to form display
- $file = urlencode("../../../../index.php?module=verbindlichkeit&action=inlinepdf&id=$id");
- $iframe = "
";
- $this->app->Tpl->Set('INLINEPDF', $iframe);
+ $anzahldateien = $this->app->erp->AnzahlDateien("verbindlichkeit",$id);
+ if ($anzahldateien > 0) {
+ $file = urlencode("../../../../index.php?module=verbindlichkeit&action=inlinepdf&id=$id");
+ $iframe = "
";
+ $this->app->Tpl->Set('INLINEPDF', $iframe);
+ } else {
+ $this->app->Tpl->Set('INLINEPDF', 'Keine Dateien vorhanden.');
+ }
$this->app->Tpl->Parse('PAGE', "verbindlichkeit_edit.tpl");
+
}
/**
@@ -263,12 +353,12 @@ class Verbindlichkeit {
$input['skonto'] = $this->app->Secure->GetPOST('skonto');
$input['skontobis'] = $this->app->Secure->GetPOST('skontobis');
$input['projekt'] = $this->app->Secure->GetPOST('projekt');
- $input['bezahlt'] = $this->app->Secure->GetPOST('bezahlt');
+ $input['bezahlt'] = $this->app->Secure->GetPOST('bezahlt')?'1':'0';;
$input['zahlungsweise'] = $this->app->Secure->GetPOST('zahlungsweise');
$input['eingangsdatum'] = $this->app->Secure->GetPOST('eingangsdatum');
$input['rechnungsdatum'] = $this->app->Secure->GetPOST('rechnungsdatum');
- $input['freigabe'] = $this->app->Secure->GetPOST('freigabe');
- $input['rechnungsfreigabe'] = $this->app->Secure->GetPOST('rechnungsfreigabe');
+ $input['freigabe'] = $this->app->Secure->GetPOST('freigabe')?'1':'0';
+ $input['rechnungsfreigabe'] = $this->app->Secure->GetPOST('rechnungsfreigabe')?'1':'0';
$input['kostenstelle'] = $this->app->Secure->GetPOST('kostenstelle');
$input['sachkonto'] = $this->app->Secure->GetPOST('sachkonto');
$input['internebemerkung'] = $this->app->Secure->GetPOST('internebemerkung');
@@ -283,9 +373,25 @@ class Verbindlichkeit {
} else {
$anzahldateien="";
}
+
+ if ($id != 'NULL') {
+ $this->app->erp->MenuEintrag("index.php?module=verbindlichkeit&action=dateien&id=$id", "Dateien".$anzahldateien);
+ }
+
$this->app->erp->MenuEintrag("index.php?module=verbindlichkeit&action=edit&id=$id", "Details");
$this->app->erp->MenuEintrag("index.php?module=verbindlichkeit&action=list", "Zurück zur Übersicht");
- $this->app->erp->MenuEintrag("index.php?module=verbindlichkeit&action=dateien&id=$id", "Dateien".$anzahldateien);
+
+ $invoiceArr = $this->app->DB->SelectRow("SELECT v.belegnr, a.name, v.status FROM verbindlichkeit v LEFT JOIN adresse a ON v.adresse = a.id WHERE v.id='$id' LIMIT 1");
+ $belegnr = $invoiceArr['belegnr'];
+ $name = $invoiceArr['name'];
+ if($belegnr=='0' || $belegnr=='') {
+ $belegnr ='(Entwurf)';
+ }
+ $this->app->Tpl->Set('KURZUEBERSCHRIFT2',"$name Rechnung $belegnr");
+ $status = $invoiceArr['status'];
+ if ($status==='angelegt') {
+ $this->app->erp->MenuEintrag("index.php?module=verbindlichkeit&action=freigabe&id=$id",'Freigabe');
+ }
}
function verbindlichkeit_dateien()
@@ -402,4 +508,12 @@ class Verbindlichkeit {
$this->app->BuildNavigation=false;
}
+ function verbindlichkeit_freigabe()
+ {
+ $id = $this->app->Secure->GetGET('id');
+ $this->app->erp->BelegFreigabe('verbindlichkeit',$id);
+ $this->verbindlichkeit_edit();
+ }
+
+
}
diff --git a/www/widgets/_gen/widget.gen.verbindlichkeit_position.php b/www/widgets/_gen/widget.gen.verbindlichkeit_position.php
index 8fe52cc0..71b00ae7 100644
--- a/www/widgets/_gen/widget.gen.verbindlichkeit_position.php
+++ b/www/widgets/_gen/widget.gen.verbindlichkeit_position.php
@@ -85,10 +85,7 @@ class WidgetGenverbindlichkeit_position
$this->form->NewField($field);
$this->form->AddMandatory("menge","notempty","Pflichtfeld!","MSGMENGE");
- $field = new HTMLInput("preis","text","","50","","","","","","","","0","","");
- $this->form->NewField($field);
-
- $field = new HTMLInput("waehrung","text","","15","","","","","","","","0","","");
+ $field = new HTMLInput("preis","text","","40","","","","","","","","0","","");
$this->form->NewField($field);
$field = new HTMLSelect("umsatzsteuer",0,"umsatzsteuer","","","0");
diff --git a/www/widgets/templates/_gen/verbindlichkeit_position.tpl b/www/widgets/templates/_gen/verbindlichkeit_position.tpl
index 24c4ac26..a8923644 100644
--- a/www/widgets/templates/_gen/verbindlichkeit_position.tpl
+++ b/www/widgets/templates/_gen/verbindlichkeit_position.tpl
@@ -36,8 +36,8 @@ $('#anderersteuersatz').click(function() { if (!$(this).is(':checked')) {
{|Artikel-Nr|}: | [NUMMER][MSGNUMMER] |
{|Beschreibung|}: | [BESCHREIBUNG][MSGBESCHREIBUNG] |
{|Menge|}: | [MENGE][MSGMENGE] |
-
{|Preis|}: | [PREIS][MSGPREIS] |
-
{|Währung|}: | [WAEHRUNG][MSGWAEHRUNG] [WAEHRUNGSBUTTON] |
+
{|Preis|}: | [PREIS][MSGPREIS][WAEHRUNG] |
+
{|Steuersatz|}: | [UMSATZSTEUER][MSGUMSATZSTEUER]
[ANDERERSTEUERSATZ][MSGANDERERSTEUERSATZ] individuellen Steuersatz verwenden
|
From 8f9ed4d7aeafd6ec7e3881326f442d0d287b5ed4 Mon Sep 17 00:00:00 2001
From: OpenXE <>
Date: Mon, 25 Dec 2023 21:30:58 +0100
Subject: [PATCH 5/6] zwischenstand verbindlichkeit filert, multi-action, forms
---
phpwf/plugins/class.yui.php | 17 +-
www/pages/content/verbindlichkeit_edit.tpl | 28 ++--
www/pages/content/verbindlichkeit_list.tpl | 56 ++++++-
www/pages/verbindlichkeit.php | 173 +++++++++++++++++++--
4 files changed, 233 insertions(+), 41 deletions(-)
diff --git a/phpwf/plugins/class.yui.php b/phpwf/plugins/class.yui.php
index d01d209c..61630ae7 100644
--- a/phpwf/plugins/class.yui.php
+++ b/phpwf/plugins/class.yui.php
@@ -3606,24 +3606,11 @@ class YUI {
$stop_betragbezahlt = "
app->Conf->WFconf['defaulttheme']}/images/vorkassestop.png\" style=\"margin-right:1px\" title=\"Zahlung fehlt\" border=\"0\">";
$gostop_betragbezahlt = "
app->Conf->WFconf['defaulttheme']}/images/vorkassegostop.png\" style=\"margin-right:1px\" title=\"teilweise bezahlt\" border=\"0\">";
- $go_betragbezahlt = "
app->Conf->WFconf['defaulttheme']}/images/vorkassego.png\" style=\"margin-right:1px\" title=\"komplett bezahlt\" border=\"0\">";
+ $go_betragbezahlt = "
app->Conf->WFconf['defaulttheme']}/images/vorkassego.png\" style=\"margin-right:1px\" title=\"bezahlt\" border=\"0\">";
return "CONCAT('
',
if(v.freigabe,'$go_ware','$stop_ware'),
if(v.rechnungsfreigabe,'$go_summe','$stop_summe'),
- IF( v.betragbezahlt = 0 OR (v.betrag > 0 AND v.betragbezahlt < 0),'$stop_betragbezahlt',
- IF(v.betrag > 0 AND (v.betragbezahlt + v.skonto_erhalten) >= v.betrag, '$go_betragbezahlt',
- IF(v.betrag - v.betragbezahlt <= v.betrag-((v.betrag/100.0)*v.skonto),
- '$gostop_betragbezahlt',
- '$go_betragbezahlt'
- )
- )
- ),
- if((
- (SELECT COUNT(ka.id)
- FROM kontoauszuege_zahlungsausgang ka WHERE ka.parameter=v.id AND ka.objekt='verbindlichkeit') +
- (SELECT COUNT(ke.id) FROM kontoauszuege_zahlungseingang ke WHERE ke.parameter=v.id AND ke.objekt='verbindlichkeit')) > 0,
- '$go_zahlung','$stop_zahlung'
- ),
+ if(v.bezahlt,'$go_betragbezahlt','$stop_betragbezahlt'),
' |
')";
}
diff --git a/www/pages/content/verbindlichkeit_edit.tpl b/www/pages/content/verbindlichkeit_edit.tpl
index 005111c2..c99b1428 100644
--- a/www/pages/content/verbindlichkeit_edit.tpl
+++ b/www/pages/content/verbindlichkeit_edit.tpl
@@ -45,7 +45,7 @@
{|Adresse|}:
-
+
|
@@ -74,16 +74,24 @@
- {|Betrag|}:
+ {|Betrag brutto|}:
|
-
+
|
-
+
- {|Betrag netto|}:
+ {|Betrag Positionen brutto|}:
+ |
+
+
+ |
+
+
+
+ {|Betrag Positionen netto|}:
|
@@ -118,7 +126,7 @@
{|Waren-/Leistungsprüfung (Einkauf)|}:
|
-
+ Wird gesetzt wenn Wareneingangspositionen vollständig
|
@@ -126,7 +134,8 @@
{|Rechnungseingangsprüfung (Buchhaltung)|}:
-
+
+
|
@@ -134,9 +143,10 @@
{|Bezahlt|}:
-
+
+
|
-
+
{|Projekt|}:
diff --git a/www/pages/content/verbindlichkeit_list.tpl b/www/pages/content/verbindlichkeit_list.tpl
index 394c103a..6a846aae 100644
--- a/www/pages/content/verbindlichkeit_list.tpl
+++ b/www/pages/content/verbindlichkeit_list.tpl
@@ -4,7 +4,61 @@
[MESSAGE]
- [TAB1]
+
+
+
+
[TAB1NEXT]
+
+
diff --git a/www/pages/verbindlichkeit.php b/www/pages/verbindlichkeit.php
index a0d39f3e..5343876e 100644
--- a/www/pages/verbindlichkeit.php
+++ b/www/pages/verbindlichkeit.php
@@ -24,6 +24,9 @@ class Verbindlichkeit {
$this->app->ActionHandler("inlinepdf", "verbindlichkeit_inlinepdf");
$this->app->ActionHandler("positioneneditpopup", "verbindlichkeit_positioneneditpopup");
$this->app->ActionHandler("freigabe", "verbindlichkeit_freigabe");
+ $this->app->ActionHandler("freigabeeinkauf", "verbindlichkeit_freigabeeinkauf");
+ $this->app->ActionHandler("freigabebuchhaltung", "verbindlichkeit_freigabebuchhaltung");
+ $this->app->ActionHandler("freigabebezahlt", "verbindlichkeit_freigabebezahlt");
$this->app->DefaultActionHandler("list");
$this->app->ActionHandlerListen($app);
@@ -33,7 +36,7 @@ class Verbindlichkeit {
/* Fill out manually later */
}
- static function TableSearch(&$app, $name, $erlaubtevars) {
+ function TableSearch(&$app, $name, $erlaubtevars) {
switch ($name) {
case "verbindlichkeit_list":
$allowed['verbindlichkeit_list'] = array('list');
@@ -105,6 +108,52 @@ class Verbindlichkeit {
$count = "SELECT count(DISTINCT id) FROM verbindlichkeit WHERE $where";
// $groupby = "";
+ // Toggle filters
+ $this->app->Tpl->Add('JQUERYREADY', "$('#wareneingang').click( function() { fnFilterColumn1( 0 ); } );");
+ $this->app->Tpl->Add('JQUERYREADY', "$('#rechnungsfreigabe').click( function() { fnFilterColumn2( 0 ); } );");
+ $this->app->Tpl->Add('JQUERYREADY', "$('#nichtbezahlt').click( function() { fnFilterColumn3( 0 ); } );");
+
+ for ($r = 1;$r <= 3;$r++) {
+ $this->app->Tpl->Add('JAVASCRIPT', '
+ function fnFilterColumn' . $r . ' ( i )
+ {
+ if(oMoreData' . $r . $name . '==1)
+ oMoreData' . $r . $name . ' = 0;
+ else
+ oMoreData' . $r . $name . ' = 1;
+
+ $(\'#' . $name . '\').dataTable().fnFilter(
+ \'\',
+ i,
+ 0,0
+ );
+ }
+ ');
+ }
+
+
+ $more_data1 = $this->app->Secure->GetGET("more_data1");
+ if ($more_data1 == 1) {
+ $where .= " AND v.freigabe <> '1'";
+ } else {
+ }
+
+ $more_data2 = $this->app->Secure->GetGET("more_data2");
+ if ($more_data2 == 1) {
+ $where .= " AND v.rechnungsfreigabe <> '1'";
+ }
+ else {
+ }
+
+ $more_data3 = $this->app->Secure->GetGET("more_data3");
+ if ($more_data3 == 1) {
+ $where .= " AND v.bezahlt <> '1'";
+ }
+ else {
+ }
+ // END Toggle filters
+
+
break;
}
@@ -119,12 +168,55 @@ class Verbindlichkeit {
}
function verbindlichkeit_list() {
+
+ // Process multi action
+ $submit = $this->app->Secure->GetPOST('ausfuehren');
+ if (!empty($submit)) {
+ $auswahl = $this->app->Secure->GetPOST('auswahl');
+ $aktion = $this->app->Secure->GetPOST('sel_aktion');
+
+ $selectedIds = [];
+ if(!empty($auswahl)) {
+ foreach($auswahl as $selectedId) {
+ $selectedId = (int)$selectedId;
+ if($selectedId > 0) {
+ $selectedIds[] = $selectedId;
+ }
+ }
+
+ switch ($aktion) {
+ case 'freigabeeinkauf':
+ echo("freigabeeinkauf");
+ break;
+ case 'freigabebuchhaltung':
+ echo("freigabebuchhaltung");
+ break;
+ case 'bezahlt':
+ echo("bezahlt");
+ break;
+ }
+ }
+ }
+
$this->app->erp->MenuEintrag("index.php?module=verbindlichkeit&action=list", "Übersicht");
$this->app->erp->MenuEintrag("index.php?module=verbindlichkeit&action=create", "Neu anlegen");
$this->app->erp->MenuEintrag("index.php", "Zurück");
$this->app->YUI->TableSearch('TAB1', 'verbindlichkeit_list', "show", "", "", basename(__FILE__), __CLASS__);
+
+ if($this->app->erp->RechteVorhanden('verbindlichkeit', 'freigabeeinkauf')){
+ $this->app->Tpl->Set('MANUELLFREIGABEEINKAUF', '');
+ }
+
+ if($this->app->erp->RechteVorhanden('verbindlichkeit', 'freigabebuchhaltung')){
+ $this->app->Tpl->Set('MANUELLFREIGABEBUCHHALTUNG', '');
+ }
+
+ if($this->app->erp->RechteVorhanden('verbindlichkeit', 'freigabebezahlt')){
+ $this->app->Tpl->Set('ALSBEZAHLTMARKIEREN', '');
+ }
+
$this->app->Tpl->Parse('PAGE', "verbindlichkeit_list.tpl");
}
@@ -175,17 +267,24 @@ class Verbindlichkeit {
if ($status != 'angelegt' && $id != 'NULL') {
$internebemerkung = $input['internebemerkung'];
+ $projekt = $input['projekt'];
+ $kostenstelle = $input['kostenstelle'];
unset($input);
$input['internebemerkung'] = $internebemerkung;
+ $input['projekt'] = $this->app->erp->ReplaceProjekt(true,$projekt,true);
+ $input['kostenstelle'] = $this->app->erp->ReplaceKostenstelle(true,$kostenstelle,true);
} else {
- $input['adresse'] = $this->app->erp->ReplaceAdresse(true,$input['adresse'],true); // Parameters: Target db?, value, from form?
+ $input['adresse'] = $this->app->erp->ReplaceLieferantennummer(true,$input['adresse'],true); // Parameters: Target db?, value, from form?
$input['rechnungsdatum'] = $this->app->erp->ReplaceDatum(true,$input['rechnungsdatum'],true); // Parameters: Target db?, value, from form?
$input['eingangsdatum'] = $this->app->erp->ReplaceDatum(true,$input['eingangsdatum'],true); // Parameters: Target db?, value, from form?
$input['skontobis'] = $this->app->erp->ReplaceDatum(true,$input['skontobis'],true); // Parameters: Target db?, value, from form?
$input['zahlbarbis'] = $this->app->erp->ReplaceDatum(true,$input['zahlbarbis'],true); // Parameters: Target db?, value, from form?
$input['projekt'] = $this->app->erp->ReplaceProjekt(true,$input['projekt'],true);
$input['kostenstelle'] = $this->app->erp->ReplaceKostenstelle(true,$input['kostenstelle'],true);
- $input['sachkonto'] = $this->app->erp->ReplaceKontorahmen(true,$input['sachkonto'],true);
+
+ if(empty($input['projekt']) && !empty($input['adresse'])) {
+ $input['projekt'] = $this->app->erp->GetCreateProjekt($input['adresse']);
+ }
}
$columns = "id, ";
@@ -272,7 +371,7 @@ class Verbindlichkeit {
}
$this->app->Tpl->Set('BETRAGNETTO', $betrag_netto);
- $this->app->Tpl->Set('BETRAGBRUTTO', round($betrag_brutto,2));
+ $this->app->Tpl->Set('BETRAGBRUTTOPOS', round($betrag_brutto,2));
$this->app->Tpl->Set('BETRAGDISABLED', 'disabled');
@@ -293,7 +392,14 @@ class Verbindlichkeit {
$this->app->Tpl->Set('SAVEDISABLED','disabled');
}
- $this->app->Tpl->Set('FREIGABECHECKED', $verbindlichkeit_from_db['freigabe']==1?"checked":"");
+ if ($verbindlichkeit_from_db['status'] == 'angelegt' || $verbindlichkeit_from_db['rechnungsfreigabe']) {
+ $this->app->Tpl->Set('FREIGABEBUCHHALTUNGHIDDEN','hidden');
+ }
+ if ($verbindlichkeit_from_db['status'] == 'angelegt' || $verbindlichkeit_from_db['bezahlt'] == '1') {
+ $this->app->Tpl->Set('FREIGABEBEZAHLTHIDDEN','hidden');
+ }
+
+ $this->app->Tpl->Set('WARENEINGANGCHECKED', $verbindlichkeit_from_db['freigabe']==1?"checked":"");
$this->app->Tpl->Set('RECHNUNGSFREIGABECHECKED', $verbindlichkeit_from_db['rechnungsfreigabe']==1?"checked":"");
$this->app->Tpl->Set('BEZAHLTCHECKED', $verbindlichkeit_from_db['bezahlt']==1?"checked":"");
@@ -306,26 +412,29 @@ class Verbindlichkeit {
$this->app->Tpl->Set('ZAHLBARBIS',$this->app->erp->ReplaceDatum(false,$verbindlichkeit_from_db['zahlbarbis'],false));
$this->app->YUI->DatePicker("zahlbarbis");
- $this->app->Tpl->Add('KURZUEBERSCHRIFT2', $verbindlichkeit_from_db['adresse_name']." ".$verbindlichkeit_from_db['rechnung']);
-
$sql = "SELECT " . $this->app->YUI->IconsSQLVerbindlichkeit() . " AS `icons` FROM verbindlichkeit v WHERE id=$id";
$icons = $this->app->DB->SelectArr($sql);
$this->app->Tpl->Add('STATUSICONS', $icons[0]['icons']);
- $this->app->YUI->AutoComplete("adresse", "adresse");
+ $this->app->YUI->AutoComplete("adresse", "lieferant");
$this->app->YUI->AutoComplete("projekt", "projektname", 1);
$this->app->Tpl->Set('PROJEKT',$this->app->erp->ReplaceProjekt(false,$verbindlichkeit_from_db['projekt'],false));
$this->app->YUI->AutoComplete("kostenstelle", "kostenstelle", 1);
$this->app->Tpl->Set('KOSTENSTELLE',$this->app->erp->ReplaceKostenstelle(false,$verbindlichkeit_from_db['kostenstelle'],false));
- $this->app->YUI->AutoComplete("sachkonto","sachkonto_aufwendungen",1);
- $this->app->Tpl->Set('SACHKONTO',$this->app->erp->ReplaceKontorahmen(false,$verbindlichkeit_from_db['sachkonto'],false));
$waehrungenselect = $this->app->erp->GetSelect($this->app->erp->GetWaehrung(), $verbindlichkeit_from_db['waehrung']);
$this->app->Tpl->Set('WAEHRUNG', $waehrungenselect);
$this->app->Tpl->Set('ADRESSE_ID', $verbindlichkeit_from_db['adresse']);
- $this->app->Tpl->Set('ADRESSE', $this->app->erp->ReplaceAdresse(false,$verbindlichkeit_from_db['adresse'],false)); // Convert ID to form display
+ $this->app->Tpl->Set('ADRESSE', $this->app->erp->ReplaceLieferantennummer(false,$verbindlichkeit_from_db['adresse'],false)); // Convert ID to form display
+
+ if (empty($verbindlichkeit_from_db['adresse'])) {
+ $this->app->Tpl->Set('FREIGABEBUCHHALTUNGHIDDEN','hidden');
+ $this->app->Tpl->Set('FREIGABEBEZAHLTHIDDEN','hidden');
+ }
+
+ $this->app->YUI->CkEditor("internebemerkung");
$anzahldateien = $this->app->erp->AnzahlDateien("verbindlichkeit",$id);
if ($anzahldateien > 0) {
@@ -360,13 +469,15 @@ class Verbindlichkeit {
$input['freigabe'] = $this->app->Secure->GetPOST('freigabe')?'1':'0';
$input['rechnungsfreigabe'] = $this->app->Secure->GetPOST('rechnungsfreigabe')?'1':'0';
$input['kostenstelle'] = $this->app->Secure->GetPOST('kostenstelle');
- $input['sachkonto'] = $this->app->Secure->GetPOST('sachkonto');
$input['internebemerkung'] = $this->app->Secure->GetPOST('internebemerkung');
return $input;
}
function verbindlichkeit_menu($id) {
+ $this->app->erp->MenuEintrag("index.php?module=verbindlichkeit&action=edit&id=$id", "Details");
+ $this->app->erp->MenuEintrag("index.php?module=verbindlichkeit&action=list", "Zurück zur Übersicht");
+
$anzahldateien = $this->app->erp->AnzahlDateien("verbindlichkeit",$id);
if ($anzahldateien > 0) {
$anzahldateien = " (".$anzahldateien.")";
@@ -378,16 +489,13 @@ class Verbindlichkeit {
$this->app->erp->MenuEintrag("index.php?module=verbindlichkeit&action=dateien&id=$id", "Dateien".$anzahldateien);
}
- $this->app->erp->MenuEintrag("index.php?module=verbindlichkeit&action=edit&id=$id", "Details");
- $this->app->erp->MenuEintrag("index.php?module=verbindlichkeit&action=list", "Zurück zur Übersicht");
-
$invoiceArr = $this->app->DB->SelectRow("SELECT v.belegnr, a.name, v.status FROM verbindlichkeit v LEFT JOIN adresse a ON v.adresse = a.id WHERE v.id='$id' LIMIT 1");
$belegnr = $invoiceArr['belegnr'];
$name = $invoiceArr['name'];
if($belegnr=='0' || $belegnr=='') {
$belegnr ='(Entwurf)';
}
- $this->app->Tpl->Set('KURZUEBERSCHRIFT2',"$name Rechnung $belegnr");
+ $this->app->Tpl->Set('KURZUEBERSCHRIFT2',"$name Verbindlichkeit $belegnr");
$status = $invoiceArr['status'];
if ($status==='angelegt') {
$this->app->erp->MenuEintrag("index.php?module=verbindlichkeit&action=freigabe&id=$id",'Freigabe');
@@ -515,5 +623,38 @@ class Verbindlichkeit {
$this->verbindlichkeit_edit();
}
+ function verbindlichkeit_freigabeeinkauf($id)
+ {
+ if (empty($id)) {
+ $id = $this->app->Secure->GetGET('id');
+ }
+ $sql = "UPDATE verbindlichkeit SET freigabe = 1 WHERE id=".$id;
+ $this->app->DB->Update($sql);
+ $this->app->erp->BelegProtokoll("verbindlichkeit",$id,"Verbindlichkeit freigegeben (Einkauf)");
+ $this->verbindlichkeit_edit();
+ }
+
+
+ function verbindlichkeit_freigabebuchhaltung($id)
+ {
+ if (empty($id)) {
+ $id = $this->app->Secure->GetGET('id');
+ }
+ $sql = "UPDATE verbindlichkeit SET rechnungsfreigabe = 1 WHERE id=".$id;
+ $this->app->DB->Update($sql);
+ $this->app->erp->BelegProtokoll("verbindlichkeit",$id,"Verbindlichkeit freigegeben (Buchhaltung)");
+ $this->verbindlichkeit_edit();
+ }
+
+ function verbindlichkeit_freigabebezahlt($id)
+ {
+ if (empty($id)) {
+ $id = $this->app->Secure->GetGET('id');
+ }
+ $sql = "UPDATE verbindlichkeit SET bezahlt = 1 WHERE id=".$id;
+ $this->app->DB->Update($sql);
+ $this->app->erp->BelegProtokoll("verbindlichkeit",$id,"Verbindlichkeit als bezahlt markiert");
+ $this->verbindlichkeit_edit();
+ }
}
From afd60b382bd4d25ac469f8912000dde7d0a9c2bc Mon Sep 17 00:00:00 2001
From: OpenXE <>
Date: Wed, 27 Dec 2023 18:17:30 +0100
Subject: [PATCH 6/6] verbindlichkeit version 1
---
www/pages/ajax.php | 1 +
www/pages/content/verbindlichkeit_edit.tpl | 28 +-
www/pages/content/verbindlichkeit_list.tpl | 8 +
.../content/verbindlichkeit_minidetail.tpl | 240 +++++-----------
www/pages/verbindlichkeit.php | 259 +++++++++++++++---
5 files changed, 326 insertions(+), 210 deletions(-)
diff --git a/www/pages/ajax.php b/www/pages/ajax.php
index 231cfcca..2a8cb88b 100644
--- a/www/pages/ajax.php
+++ b/www/pages/ajax.php
@@ -2448,6 +2448,7 @@ select a.kundennummer, (SELECT name FROM adresse a2 WHERE a2.kundennummer = a.ku
$subwhere = $this->AjaxFilterWhere($termorig,$felder);
$arr = $this->app->DB->SelectArr("SELECT CONCAT(nummer,' ',beschreibung) as name FROM kostenstellen WHERE $subwhere ORDER by nummer");
+
$carr = !empty($arr)?count($arr):0;
for($i = 0; $i < $carr; $i++)
$newarr[] = $arr[$i]['name'];
diff --git a/www/pages/content/verbindlichkeit_edit.tpl b/www/pages/content/verbindlichkeit_edit.tpl
index c99b1428..8e908c75 100644
--- a/www/pages/content/verbindlichkeit_edit.tpl
+++ b/www/pages/content/verbindlichkeit_edit.tpl
@@ -1,7 +1,8 @@
[MESSAGE]
@@ -50,10 +51,10 @@
|
- {|Rechnung|}:
+ {|Rechnungs-Nr.|}:
|
-
+
|
@@ -78,10 +79,10 @@
-
+
|
-
+
{|Betrag Positionen brutto|}:
|
@@ -89,7 +90,7 @@
-
+
{|Betrag Positionen netto|}:
|
@@ -126,7 +127,9 @@
{|Waren-/Leistungsprüfung (Einkauf)|}:
- Wird gesetzt wenn Wareneingangspositionen vollständig
+
+
+
|
@@ -135,7 +138,8 @@
-
+
+
|
@@ -144,7 +148,8 @@
-
+
+
|
@@ -191,8 +196,13 @@
+
+
+ [MINIDETAIL]
+
diff --git a/www/pages/content/verbindlichkeit_list.tpl b/www/pages/content/verbindlichkeit_list.tpl
index 6a846aae..838328d1 100644
--- a/www/pages/content/verbindlichkeit_list.tpl
+++ b/www/pages/content/verbindlichkeit_list.tpl
@@ -30,6 +30,14 @@
+
+
+
+
+
+
+
+
-
-
-
-
-
diff --git a/www/pages/verbindlichkeit.php b/www/pages/verbindlichkeit.php
index 5343876e..a1483ecf 100644
--- a/www/pages/verbindlichkeit.php
+++ b/www/pages/verbindlichkeit.php
@@ -24,9 +24,14 @@ class Verbindlichkeit {
$this->app->ActionHandler("inlinepdf", "verbindlichkeit_inlinepdf");
$this->app->ActionHandler("positioneneditpopup", "verbindlichkeit_positioneneditpopup");
$this->app->ActionHandler("freigabe", "verbindlichkeit_freigabe");
+ $this->app->ActionHandler("schreibschutz", "verbindlichkeit_schreibschutz");
$this->app->ActionHandler("freigabeeinkauf", "verbindlichkeit_freigabeeinkauf");
$this->app->ActionHandler("freigabebuchhaltung", "verbindlichkeit_freigabebuchhaltung");
$this->app->ActionHandler("freigabebezahlt", "verbindlichkeit_freigabebezahlt");
+ $this->app->ActionHandler("ruecksetzeneinkauf", "verbindlichkeit_ruecksetzeneinkauf");
+ $this->app->ActionHandler("ruecksetzenbuchhaltung", "verbindlichkeit_ruecksetzenbuchhaltung");
+ $this->app->ActionHandler("ruecksetzenbezahlt", "verbindlichkeit_ruecksetzenbezahlt");
+ $this->app->ActionHandler("minidetail", "verbindlichkeit_minidetail");
$this->app->DefaultActionHandler("list");
$this->app->ActionHandlerListen($app);
@@ -153,6 +158,22 @@ class Verbindlichkeit {
}
// END Toggle filters
+ $this->app->YUI->DatePicker('zahlbarbis');
+ $filterzahlbarbis = $this->app->YUI->TableSearchFilter($name, 4,'zahlbarbis');
+ if (!empty($filterzahlbarbis)) {
+ $filterzahlbarbis = $this->app->String->Convert($filterzahlbarbis,'%1.%2.%3','%3-%2-%1');
+ $where .= " AND v.zahlbarbis <= '".$filterzahlbarbis."'";
+ }
+
+ $this->app->YUI->DatePicker('skontobis');
+ $filterskontobis = $this->app->YUI->TableSearchFilter($name, 5,'skontobis');
+ if (!empty($filterskontobis)) {
+ $filterskontobis = $this->app->String->Convert($filterskontobis,'%1.%2.%3','%3-%2-%1');
+ $where .= " AND v.skontobis <= '".$filterskontobis."'";
+ }
+
+ $moreinfo = true; // Allow drop down details
+ $menucol = 1; // For moredata
break;
}
@@ -186,13 +207,19 @@ class Verbindlichkeit {
switch ($aktion) {
case 'freigabeeinkauf':
- echo("freigabeeinkauf");
+ foreach ($selectedIds as $id) {
+ $this->verbindlichkeit_freigabeeinkauf($id);
+ }
break;
case 'freigabebuchhaltung':
- echo("freigabebuchhaltung");
+ foreach ($selectedIds as $id) {
+ $this->verbindlichkeit_freigabebuchhaltung($id);
+ }
break;
case 'bezahlt':
- echo("bezahlt");
+ foreach ($selectedIds as $id) {
+ $this->verbindlichkeit_freigabebezahlt($id);
+ }
break;
}
}
@@ -205,6 +232,10 @@ class Verbindlichkeit {
$this->app->YUI->TableSearch('TAB1', 'verbindlichkeit_list', "show", "", "", basename(__FILE__), __CLASS__);
+/*
+
+ Prepared for later use...
+
if($this->app->erp->RechteVorhanden('verbindlichkeit', 'freigabeeinkauf')){
$this->app->Tpl->Set('MANUELLFREIGABEEINKAUF', '
');
}
@@ -216,6 +247,9 @@ class Verbindlichkeit {
if($this->app->erp->RechteVorhanden('verbindlichkeit', 'freigabebezahlt')){
$this->app->Tpl->Set('ALSBEZAHLTMARKIEREN', '
');
}
+*/
+ $this->app->User->SetParameter('table_verbindlichkeit_list_zahlbarbis', '');
+ $this->app->User->SetParameter('table_verbindlichkeit_list_skontobis', '');
$this->app->Tpl->Parse('PAGE', "verbindlichkeit_list.tpl");
}
@@ -223,8 +257,8 @@ class Verbindlichkeit {
public function verbindlichkeit_delete() {
$id = (int) $this->app->Secure->GetGET('id');
- $this->app->DB->Delete("DELETE FROM `verbindlichkeit` WHERE `id` = '{$id}'");
- $this->app->Tpl->Set('MESSAGE', "
Der Eintrag wurde gelöscht.
");
+ $this->app->DB->Delete("UPDATE `verbindlichkeit` SET status='storniert' WHERE `id` = '{$id}'");
+ $this->app->Tpl->Set('MESSAGE', "
Der Eintrag wurde storniert.
");
$this->verbindlichkeit_list();
}
@@ -263,16 +297,16 @@ class Verbindlichkeit {
// Write to database
// Add checks here
- $status = $this->app->DB->Select("SELECT status FROM verbindlichkeit WHERE id =".$id);
+ $schreibschutz = $this->app->DB->Select("SELECT schreibschutz FROM verbindlichkeit WHERE id =".$id);
- if ($status != 'angelegt' && $id != 'NULL') {
+ if ($schreibschutz) {
$internebemerkung = $input['internebemerkung'];
$projekt = $input['projekt'];
$kostenstelle = $input['kostenstelle'];
unset($input);
$input['internebemerkung'] = $internebemerkung;
$input['projekt'] = $this->app->erp->ReplaceProjekt(true,$projekt,true);
- $input['kostenstelle'] = $this->app->erp->ReplaceKostenstelle(true,$kostenstelle,true);
+ $input['kostenstelle'] = $this->app->DB->Select("SELECT id FROM kostenstellen WHERE nummer = '".$kostenstelle."'");
} else {
$input['adresse'] = $this->app->erp->ReplaceLieferantennummer(true,$input['adresse'],true); // Parameters: Target db?, value, from form?
$input['rechnungsdatum'] = $this->app->erp->ReplaceDatum(true,$input['rechnungsdatum'],true); // Parameters: Target db?, value, from form?
@@ -280,8 +314,7 @@ class Verbindlichkeit {
$input['skontobis'] = $this->app->erp->ReplaceDatum(true,$input['skontobis'],true); // Parameters: Target db?, value, from form?
$input['zahlbarbis'] = $this->app->erp->ReplaceDatum(true,$input['zahlbarbis'],true); // Parameters: Target db?, value, from form?
$input['projekt'] = $this->app->erp->ReplaceProjekt(true,$input['projekt'],true);
- $input['kostenstelle'] = $this->app->erp->ReplaceKostenstelle(true,$input['kostenstelle'],true);
-
+ $input['kostenstelle'] = $this->app->DB->Select("SELECT id FROM kostenstellen WHERE nummer = '".$input['kostenstelle']."'");
if(empty($input['projekt']) && !empty($input['adresse'])) {
$input['projekt'] = $this->app->erp->GetCreateProjekt($input['adresse']);
}
@@ -388,15 +421,31 @@ class Verbindlichkeit {
*/
- if ($verbindlichkeit_from_db['status'] != 'angelegt' && $id != 'NULL') {
+ if ($verbindlichkeit_from_db['schreibschutz']) {
$this->app->Tpl->Set('SAVEDISABLED','disabled');
+ $this->app->Tpl->Set('MESSAGE',"
Diese Verbindlichkeit ist schreibgeschützt und darf daher nicht mehr bearbeitet werden!
");
}
- if ($verbindlichkeit_from_db['status'] == 'angelegt' || $verbindlichkeit_from_db['rechnungsfreigabe']) {
+ if (empty($verbindlichkeit_from_db['adresse'] || $verbindlichkeit_from_db['status'] == 'angelegt')) {
+ $this->app->Tpl->Set('FREIGABEEINKAUFHIDDEN','hidden');
+ $this->app->Tpl->Set('FREIGABEBUCHHALTUNGHIDDEN','hidden');
+ $this->app->Tpl->Set('FREIGABEBEZAHLTHIDDEN','hidden');
+ }
+
+ if ($verbindlichkeit_from_db['freigabe']) {
+ $this->app->Tpl->Set('FREIGABEEINKAUFHIDDEN','hidden');
+ } else {
+ $this->app->Tpl->Set('RUECKSETZENEINKAUFHIDDEN','hidden');
+ }
+ if ($verbindlichkeit_from_db['rechnungsfreigabe']) {
$this->app->Tpl->Set('FREIGABEBUCHHALTUNGHIDDEN','hidden');
+ } else {
+ $this->app->Tpl->Set('RUECKSETZENBUCHHALTUNGHIDDEN','hidden');
}
- if ($verbindlichkeit_from_db['status'] == 'angelegt' || $verbindlichkeit_from_db['bezahlt'] == '1') {
+ if ($verbindlichkeit_from_db['bezahlt'] == '1') {
$this->app->Tpl->Set('FREIGABEBEZAHLTHIDDEN','hidden');
+ } else {
+ $this->app->Tpl->Set('RUECKSETZENBEZAHLTHIDDEN','hidden');
}
$this->app->Tpl->Set('WARENEINGANGCHECKED', $verbindlichkeit_from_db['freigabe']==1?"checked":"");
@@ -420,19 +469,14 @@ class Verbindlichkeit {
$this->app->YUI->AutoComplete("projekt", "projektname", 1);
$this->app->Tpl->Set('PROJEKT',$this->app->erp->ReplaceProjekt(false,$verbindlichkeit_from_db['projekt'],false));
$this->app->YUI->AutoComplete("kostenstelle", "kostenstelle", 1);
- $this->app->Tpl->Set('KOSTENSTELLE',$this->app->erp->ReplaceKostenstelle(false,$verbindlichkeit_from_db['kostenstelle'],false));
+ $this->app->Tpl->Set('KOSTENSTELLE',$this->app->DB->SELECT("SELECT nummer FROM kostenstellen WHERE id = '".$verbindlichkeit_from_db['kostenstelle']."'"));
$waehrungenselect = $this->app->erp->GetSelect($this->app->erp->GetWaehrung(), $verbindlichkeit_from_db['waehrung']);
- $this->app->Tpl->Set('WAEHRUNG', $waehrungenselect);
+ $this->app->Tpl->Set('WAEHRUNGSELECT', $waehrungenselect);
$this->app->Tpl->Set('ADRESSE_ID', $verbindlichkeit_from_db['adresse']);
- $this->app->Tpl->Set('ADRESSE', $this->app->erp->ReplaceLieferantennummer(false,$verbindlichkeit_from_db['adresse'],false)); // Convert ID to form display
-
- if (empty($verbindlichkeit_from_db['adresse'])) {
- $this->app->Tpl->Set('FREIGABEBUCHHALTUNGHIDDEN','hidden');
- $this->app->Tpl->Set('FREIGABEBEZAHLTHIDDEN','hidden');
- }
+ $this->app->Tpl->Set('ADRESSE', $this->app->erp->ReplaceLieferantennummer(false,$verbindlichkeit_from_db['adresse'],false)); // Convert ID to form display
$this->app->YUI->CkEditor("internebemerkung");
@@ -445,6 +489,7 @@ class Verbindlichkeit {
$this->app->Tpl->Set('INLINEPDF', 'Keine Dateien vorhanden.');
}
+ $this->verbindlichkeit_minidetail('MINIDETAIL',false);
$this->app->Tpl->Parse('PAGE', "verbindlichkeit_edit.tpl");
}
@@ -489,15 +534,15 @@ class Verbindlichkeit {
$this->app->erp->MenuEintrag("index.php?module=verbindlichkeit&action=dateien&id=$id", "Dateien".$anzahldateien);
}
- $invoiceArr = $this->app->DB->SelectRow("SELECT v.belegnr, a.name, v.status FROM verbindlichkeit v LEFT JOIN adresse a ON v.adresse = a.id WHERE v.id='$id' LIMIT 1");
+ $invoiceArr = $this->app->DB->SelectRow("SELECT v.belegnr, a.name, v.status, schreibschutz FROM verbindlichkeit v LEFT JOIN adresse a ON v.adresse = a.id WHERE v.id='$id' LIMIT 1");
$belegnr = $invoiceArr['belegnr'];
$name = $invoiceArr['name'];
if($belegnr=='0' || $belegnr=='') {
$belegnr ='(Entwurf)';
}
$this->app->Tpl->Set('KURZUEBERSCHRIFT2',"$name Verbindlichkeit $belegnr");
- $status = $invoiceArr['status'];
- if ($status==='angelegt') {
+
+ if ($invoiceArr['status'] === 'angelegt' || $invoiceArr['schreibschutz'] != 1) {
$this->app->erp->MenuEintrag("index.php?module=verbindlichkeit&action=freigabe&id=$id",'Freigabe');
}
}
@@ -620,41 +665,193 @@ class Verbindlichkeit {
{
$id = $this->app->Secure->GetGET('id');
$this->app->erp->BelegFreigabe('verbindlichkeit',$id);
+ $this->app->erp->BelegProtokoll("verbindlichkeit",$id,"Verbindlichkeit freigegeben");
+ $this->app->DB->Update("UPDATE verbindlichkeit SET schreibschutz = 1 WHERE id = ".$id);
$this->verbindlichkeit_edit();
}
- function verbindlichkeit_freigabeeinkauf($id)
+ function verbindlichkeit_freigabeeinkauf($id = null)
{
if (empty($id)) {
$id = $this->app->Secure->GetGET('id');
+ $gotoedit = true;
}
$sql = "UPDATE verbindlichkeit SET freigabe = 1 WHERE id=".$id;
$this->app->DB->Update($sql);
$this->app->erp->BelegProtokoll("verbindlichkeit",$id,"Verbindlichkeit freigegeben (Einkauf)");
- $this->verbindlichkeit_edit();
+ if ($gotoedit) {
+ $this->verbindlichkeit_edit();
+ }
}
-
- function verbindlichkeit_freigabebuchhaltung($id)
+ function verbindlichkeit_freigabebuchhaltung($id = null)
{
if (empty($id)) {
$id = $this->app->Secure->GetGET('id');
+ $gotoedit = true;
}
$sql = "UPDATE verbindlichkeit SET rechnungsfreigabe = 1 WHERE id=".$id;
$this->app->DB->Update($sql);
$this->app->erp->BelegProtokoll("verbindlichkeit",$id,"Verbindlichkeit freigegeben (Buchhaltung)");
- $this->verbindlichkeit_edit();
+ if ($gotoedit) {
+ $this->verbindlichkeit_edit();
+ }
}
- function verbindlichkeit_freigabebezahlt($id)
+ function verbindlichkeit_freigabebezahlt($id = null)
{
if (empty($id)) {
$id = $this->app->Secure->GetGET('id');
+ $gotoedit = true;
}
$sql = "UPDATE verbindlichkeit SET bezahlt = 1 WHERE id=".$id;
$this->app->DB->Update($sql);
$this->app->erp->BelegProtokoll("verbindlichkeit",$id,"Verbindlichkeit als bezahlt markiert");
- $this->verbindlichkeit_edit();
+ if ($gotoedit) {
+ $this->verbindlichkeit_edit();
+ }
+ }
+
+ function verbindlichkeit_ruecksetzeneinkauf($id = null)
+ {
+ if (empty($id)) {
+ $id = $this->app->Secure->GetGET('id');
+ $gotoedit = true;
+ }
+ $sql = "UPDATE verbindlichkeit SET freigabe = 0 WHERE id=".$id;
+ $this->app->DB->Update($sql);
+ $this->app->erp->BelegProtokoll("verbindlichkeit",$id,"Verbindlichkeit rückgesetzt (Einkauf)");
+ if ($gotoedit) {
+ $this->verbindlichkeit_edit();
+ }
}
+ function verbindlichkeit_ruecksetzenbuchhaltung($id = null)
+ {
+ if (empty($id)) {
+ $id = $this->app->Secure->GetGET('id');
+ $gotoedit = true;
+ }
+ $sql = "UPDATE verbindlichkeit SET rechnungsfreigabe = 0 WHERE id=".$id;
+ $this->app->DB->Update($sql);
+ $this->app->erp->BelegProtokoll("verbindlichkeit",$id,"Verbindlichkeit rückgesetzt (Buchhaltung)");
+ if ($gotoedit) {
+ $this->verbindlichkeit_edit();
+ }
+ }
+
+ function verbindlichkeit_ruecksetzenbezahlt($id = null)
+ {
+ if (empty($id)) {
+ $id = $this->app->Secure->GetGET('id');
+ $gotoedit = true;
+ }
+ $sql = "UPDATE verbindlichkeit SET bezahlt = 0 WHERE id=".$id;
+ $this->app->DB->Update($sql);
+ $this->app->erp->BelegProtokoll("verbindlichkeit",$id,"Verbindlichkeit bezahlt rückgesetzt");
+ if ($gotoedit) {
+ $this->verbindlichkeit_edit();
+ }
+ }
+
+ function verbindlichkeit_schreibschutz($id = null)
+ {
+ if (empty($id)) {
+ $id = $this->app->Secure->GetGET('id');
+ $gotoedit = true;
+ }
+ $sql = "UPDATE verbindlichkeit SET schreibschutz = 0 WHERE id=".$id;
+ $this->app->DB->Update($sql);
+ $this->app->erp->BelegProtokoll("verbindlichkeit",$id,"Verbindlichkeit Schreibschutz entfernt");
+ if ($gotoedit) {
+ $this->verbindlichkeit_edit();
+ }
+ }
+
+ public function verbindlichkeit_minidetail($parsetarget='',$menu=true) {
+
+ $id = $this->app->Secure->GetGET('id');
+
+ $result = $this->app->DB->SelectArr("SELECT SQL_CALC_FOUND_ROWS
+ v.id,
+ v.belegnr,
+ v.status_beleg,
+ v.schreibschutz,
+ v.rechnung,
+ ".$this->app->erp->FormatDate('v.zahlbarbis', 'zahlbarbis').",
+ v.betrag,
+ v.umsatzsteuer,
+ v.ustid,
+ v.summenormal,
+ v.summeermaessigt,
+ v.summesatz3,
+ v.summesatz4,
+ v.steuersatzname3,
+ v.steuersatzname4,
+ v.skonto,
+ ".$this->app->erp->FormatDate('v.skontobis', 'skontobis').",
+ v.skontofestsetzen,
+ v.freigabe,
+ v.freigabemitarbeiter,
+ v.bestellung,
+ p.abkuerzung AS projekt,
+ v.teilprojekt,
+ v.auftrag,
+ v.status,
+ v.bezahlt,
+ v.kontoauszuege,
+ v.firma,
+ v.logdatei,
+ v.waehrung,
+ v.zahlungsweise,
+ ".$this->app->erp->FormatDate('v.eingangsdatum', 'eingangsdatum').",
+ ".$this->app->erp->FormatDate('v.rechnungsdatum', 'rechnungsdatum').",
+ v.rechnungsfreigabe,
+ k.nummer as kostenstelle,
+ v.beschreibung,
+ v.sachkonto,
+ v.art,
+ v.verwendungszweck,
+ v.dta_datei,
+ v.frachtkosten,
+ v.internebemerkung,
+ v.ustnormal,
+ v.ustermaessigt,
+ v.uststuer3,
+ v.uststuer4,
+ v.betragbezahlt,
+ v.bezahltam,
+ v.klaerfall,
+ v.klaergrund,
+ v.skonto_erhalten,
+ v.kurs,
+ v.sprache,
+ v.id,
+ CONCAT(a.lieferantennummer,' ',a.name) AS adresse
+ FROM verbindlichkeit v
+ LEFT JOIN adresse a ON a.id = v.adresse
+ LEFT JOIN projekt p ON a.projekt = p.id
+ LEFT JOIN kostenstellen k ON v.kostenstelle = k.id
+ WHERE v.id='$id'");
+
+ foreach ($result[0] as $key => $value) {
+ $this->app->Tpl->Set(strtoupper($key), $value);
+ }
+
+ if (!empty($result[0])) {
+ $verbindlichkeit_from_db = $result[0];
+ }
+
+ $tmp = new EasyTable($this->app);
+ $tmp->Query("SELECT zeit,bearbeiter,grund FROM verbindlichkeit_protokoll WHERE verbindlichkeit='$id' ORDER by zeit DESC",0,"");
+ $tmp->DisplayNew('PROTOKOLL',"Protokoll","noAction");
+
+ if($parsetarget=='')
+ {
+ $this->app->Tpl->Output('verbindlichkeit_minidetail.tpl');
+ $this->app->ExitXentral();
+ }
+ $this->app->Tpl->Parse($parsetarget,'verbindlichkeit_minidetail.tpl');
+ }
+
}