From e5393bb7de09f6899dd2663ae6a8e66562bdfad0 Mon Sep 17 00:00:00 2001 From: OpenXE <> Date: Wed, 3 Jan 2024 15:45:43 +0100 Subject: [PATCH] verbindlichkeit lock control --- .../mysql/_gen/object.gen.adresse.php | 6 +- www/pages/ajax.php | 2 +- www/pages/content/verbindlichkeit_edit.tpl | 2 +- .../content/verbindlichkeit_minidetail.tpl | 4 +- .../content/verbindlichkeit_positionen.tpl | 10 +- www/pages/verbindlichkeit.php | 145 ++++++++++++++---- 6 files changed, 125 insertions(+), 44 deletions(-) diff --git a/www/objectapi/mysql/_gen/object.gen.adresse.php b/www/objectapi/mysql/_gen/object.gen.adresse.php index 128804f5..086afcd3 100644 --- a/www/objectapi/mysql/_gen/object.gen.adresse.php +++ b/www/objectapi/mysql/_gen/object.gen.adresse.php @@ -327,7 +327,7 @@ $result = $result[0]; $this->webid=$result['webid']; $this->vorname=$result['vorname']; $this->kennung=$result['kennung']; - $this->sachkonto=$result['sachkonto']; + $this->sachkonto=$result['kontorahmen']; $this->freifeld1=$result['freifeld1']; $this->freifeld2=$result['freifeld2']; $this->freifeld3=$result['freifeld3']; @@ -510,7 +510,7 @@ $result = $result[0]; public function Create() { - $sql = "INSERT INTO `adresse` (`id`,`typ`,`marketingsperre`,`trackingsperre`,`rechnungsadresse`,`sprache`,`name`,`abteilung`,`unterabteilung`,`ansprechpartner`,`land`,`strasse`,`ort`,`plz`,`telefon`,`telefax`,`mobil`,`email`,`ustid`,`ust_befreit`,`passwort_gesendet`,`sonstiges`,`adresszusatz`,`kundenfreigabe`,`steuer`,`logdatei`,`kundennummer`,`lieferantennummer`,`mitarbeiternummer`,`konto`,`blz`,`bank`,`inhaber`,`swift`,`iban`,`waehrung`,`paypal`,`paypalinhaber`,`paypalwaehrung`,`projekt`,`partner`,`zahlungsweise`,`zahlungszieltage`,`zahlungszieltageskonto`,`zahlungszielskonto`,`versandart`,`kundennummerlieferant`,`zahlungsweiselieferant`,`zahlungszieltagelieferant`,`zahlungszieltageskontolieferant`,`zahlungszielskontolieferant`,`versandartlieferant`,`geloescht`,`firma`,`webid`,`vorname`,`kennung`,`sachkonto`,`freifeld1`,`freifeld2`,`freifeld3`,`filiale`,`vertrieb`,`innendienst`,`verbandsnummer`,`abweichendeemailab`,`portofrei_aktiv`,`portofreiab`,`infoauftragserfassung`,`mandatsreferenz`,`mandatsreferenzdatum`,`mandatsreferenzaenderung`,`glaeubigeridentnr`,`kreditlimit`,`tour`,`zahlungskonditionen_festschreiben`,`rabatte_festschreiben`,`mlmaktiv`,`mlmvertragsbeginn`,`mlmlizenzgebuehrbis`,`mlmfestsetzenbis`,`mlmfestsetzen`,`mlmmindestpunkte`,`mlmwartekonto`,`abweichende_rechnungsadresse`,`rechnung_vorname`,`rechnung_name`,`rechnung_titel`,`rechnung_typ`,`rechnung_strasse`,`rechnung_ort`,`rechnung_plz`,`rechnung_ansprechpartner`,`rechnung_land`,`rechnung_abteilung`,`rechnung_unterabteilung`,`rechnung_adresszusatz`,`rechnung_telefon`,`rechnung_telefax`,`rechnung_anschreiben`,`rechnung_email`,`geburtstag`,`rolledatum`,`liefersperre`,`liefersperregrund`,`mlmpositionierung`,`steuernummer`,`steuerbefreit`,`mlmmitmwst`,`mlmabrechnung`,`mlmwaehrungauszahlung`,`mlmauszahlungprojekt`,`sponsor`,`geworbenvon`,`logfile`,`kalender_aufgaben`,`verrechnungskontoreisekosten`,`usereditid`,`useredittimestamp`,`rabatt`,`provision`,`rabattinformation`,`rabatt1`,`rabatt2`,`rabatt3`,`rabatt4`,`rabatt5`,`internetseite`,`bonus1`,`bonus1_ab`,`bonus2`,`bonus2_ab`,`bonus3`,`bonus3_ab`,`bonus4`,`bonus4_ab`,`bonus5`,`bonus5_ab`,`bonus6`,`bonus6_ab`,`bonus7`,`bonus7_ab`,`bonus8`,`bonus8_ab`,`bonus9`,`bonus9_ab`,`bonus10`,`bonus10_ab`,`rechnung_periode`,`rechnung_anzahlpapier`,`rechnung_anzahlpapier_abweichend`,`rechnung_permail`,`titel`,`anschreiben`,`nachname`,`arbeitszeitprowoche`,`folgebestaetigungsperre`,`lieferantennummerbeikunde`,`verein_mitglied_seit`,`verein_mitglied_bis`,`verein_mitglied_aktiv`,`verein_spendenbescheinigung`,`freifeld4`,`freifeld5`,`freifeld6`,`freifeld7`,`freifeld8`,`freifeld9`,`freifeld10`,`rechnung_papier`,`angebot_cc`,`auftrag_cc`,`rechnung_cc`,`gutschrift_cc`,`lieferschein_cc`,`bestellung_cc`,`angebot_fax_cc`,`auftrag_fax_cc`,`rechnung_fax_cc`,`gutschrift_fax_cc`,`lieferschein_fax_cc`,`bestellung_fax_cc`,`abperfax`,`abpermail`,`kassiereraktiv`,`kassierernummer`,`kassiererprojekt`,`portofreilieferant_aktiv`,`portofreiablieferant`,`mandatsreferenzart`,`mandatsreferenzwdhart`,`serienbrief`,`kundennummer_buchhaltung`,`lieferantennummer_buchhaltung`,`lead`,`zahlungsweiseabo`,`bundesland`,`mandatsreferenzhinweis`,`geburtstagkalender`,`geburtstagskarte`,`liefersperredatum`,`umsatzsteuer_lieferant`,`lat`,`lng`,`art`,`fromshop`,`freifeld11`,`freifeld12`,`freifeld13`,`freifeld14`,`freifeld15`,`freifeld16`,`freifeld17`,`freifeld18`,`freifeld19`,`freifeld20`,`angebot_email`,`auftrag_email`,`rechnungs_email`,`gutschrift_email`,`lieferschein_email`,`bestellung_email`,`lieferschwellenichtanwenden`,`hinweistextlieferant`,`firmensepa`,`hinweis_einfuegen`,`anzeigesteuerbelege`,`gln`,`rechnung_gln`,`keinealtersabfrage`,`lieferbedingung`,`mlmintranetgesamtestruktur`,`kommissionskonsignationslager`,`zollinformationen`,`bundesstaat`,`rechnung_bundesstaat`) + $sql = "INSERT INTO `adresse` (`id`,`typ`,`marketingsperre`,`trackingsperre`,`rechnungsadresse`,`sprache`,`name`,`abteilung`,`unterabteilung`,`ansprechpartner`,`land`,`strasse`,`ort`,`plz`,`telefon`,`telefax`,`mobil`,`email`,`ustid`,`ust_befreit`,`passwort_gesendet`,`sonstiges`,`adresszusatz`,`kundenfreigabe`,`steuer`,`logdatei`,`kundennummer`,`lieferantennummer`,`mitarbeiternummer`,`konto`,`blz`,`bank`,`inhaber`,`swift`,`iban`,`waehrung`,`paypal`,`paypalinhaber`,`paypalwaehrung`,`projekt`,`partner`,`zahlungsweise`,`zahlungszieltage`,`zahlungszieltageskonto`,`zahlungszielskonto`,`versandart`,`kundennummerlieferant`,`zahlungsweiselieferant`,`zahlungszieltagelieferant`,`zahlungszieltageskontolieferant`,`zahlungszielskontolieferant`,`versandartlieferant`,`geloescht`,`firma`,`webid`,`vorname`,`kennung`,`kontorahmen`,`freifeld1`,`freifeld2`,`freifeld3`,`filiale`,`vertrieb`,`innendienst`,`verbandsnummer`,`abweichendeemailab`,`portofrei_aktiv`,`portofreiab`,`infoauftragserfassung`,`mandatsreferenz`,`mandatsreferenzdatum`,`mandatsreferenzaenderung`,`glaeubigeridentnr`,`kreditlimit`,`tour`,`zahlungskonditionen_festschreiben`,`rabatte_festschreiben`,`mlmaktiv`,`mlmvertragsbeginn`,`mlmlizenzgebuehrbis`,`mlmfestsetzenbis`,`mlmfestsetzen`,`mlmmindestpunkte`,`mlmwartekonto`,`abweichende_rechnungsadresse`,`rechnung_vorname`,`rechnung_name`,`rechnung_titel`,`rechnung_typ`,`rechnung_strasse`,`rechnung_ort`,`rechnung_plz`,`rechnung_ansprechpartner`,`rechnung_land`,`rechnung_abteilung`,`rechnung_unterabteilung`,`rechnung_adresszusatz`,`rechnung_telefon`,`rechnung_telefax`,`rechnung_anschreiben`,`rechnung_email`,`geburtstag`,`rolledatum`,`liefersperre`,`liefersperregrund`,`mlmpositionierung`,`steuernummer`,`steuerbefreit`,`mlmmitmwst`,`mlmabrechnung`,`mlmwaehrungauszahlung`,`mlmauszahlungprojekt`,`sponsor`,`geworbenvon`,`logfile`,`kalender_aufgaben`,`verrechnungskontoreisekosten`,`usereditid`,`useredittimestamp`,`rabatt`,`provision`,`rabattinformation`,`rabatt1`,`rabatt2`,`rabatt3`,`rabatt4`,`rabatt5`,`internetseite`,`bonus1`,`bonus1_ab`,`bonus2`,`bonus2_ab`,`bonus3`,`bonus3_ab`,`bonus4`,`bonus4_ab`,`bonus5`,`bonus5_ab`,`bonus6`,`bonus6_ab`,`bonus7`,`bonus7_ab`,`bonus8`,`bonus8_ab`,`bonus9`,`bonus9_ab`,`bonus10`,`bonus10_ab`,`rechnung_periode`,`rechnung_anzahlpapier`,`rechnung_anzahlpapier_abweichend`,`rechnung_permail`,`titel`,`anschreiben`,`nachname`,`arbeitszeitprowoche`,`folgebestaetigungsperre`,`lieferantennummerbeikunde`,`verein_mitglied_seit`,`verein_mitglied_bis`,`verein_mitglied_aktiv`,`verein_spendenbescheinigung`,`freifeld4`,`freifeld5`,`freifeld6`,`freifeld7`,`freifeld8`,`freifeld9`,`freifeld10`,`rechnung_papier`,`angebot_cc`,`auftrag_cc`,`rechnung_cc`,`gutschrift_cc`,`lieferschein_cc`,`bestellung_cc`,`angebot_fax_cc`,`auftrag_fax_cc`,`rechnung_fax_cc`,`gutschrift_fax_cc`,`lieferschein_fax_cc`,`bestellung_fax_cc`,`abperfax`,`abpermail`,`kassiereraktiv`,`kassierernummer`,`kassiererprojekt`,`portofreilieferant_aktiv`,`portofreiablieferant`,`mandatsreferenzart`,`mandatsreferenzwdhart`,`serienbrief`,`kundennummer_buchhaltung`,`lieferantennummer_buchhaltung`,`lead`,`zahlungsweiseabo`,`bundesland`,`mandatsreferenzhinweis`,`geburtstagkalender`,`geburtstagskarte`,`liefersperredatum`,`umsatzsteuer_lieferant`,`lat`,`lng`,`art`,`fromshop`,`freifeld11`,`freifeld12`,`freifeld13`,`freifeld14`,`freifeld15`,`freifeld16`,`freifeld17`,`freifeld18`,`freifeld19`,`freifeld20`,`angebot_email`,`auftrag_email`,`rechnungs_email`,`gutschrift_email`,`lieferschein_email`,`bestellung_email`,`lieferschwellenichtanwenden`,`hinweistextlieferant`,`firmensepa`,`hinweis_einfuegen`,`anzeigesteuerbelege`,`gln`,`rechnung_gln`,`keinealtersabfrage`,`lieferbedingung`,`mlmintranetgesamtestruktur`,`kommissionskonsignationslager`,`zollinformationen`,`bundesstaat`,`rechnung_bundesstaat`) VALUES(NULL,'{$this->typ}','{$this->marketingsperre}','{$this->trackingsperre}','{$this->rechnungsadresse}','{$this->sprache}','{$this->name}','{$this->abteilung}','{$this->unterabteilung}','{$this->ansprechpartner}','{$this->land}','{$this->strasse}','{$this->ort}','{$this->plz}','{$this->telefon}','{$this->telefax}','{$this->mobil}','{$this->email}','{$this->ustid}','{$this->ust_befreit}','{$this->passwort_gesendet}','{$this->sonstiges}','{$this->adresszusatz}','{$this->kundenfreigabe}','{$this->steuer}','{$this->logdatei}','{$this->kundennummer}','{$this->lieferantennummer}','{$this->mitarbeiternummer}','{$this->konto}','{$this->blz}','{$this->bank}','{$this->inhaber}','{$this->swift}','{$this->iban}','{$this->waehrung}','{$this->paypal}','{$this->paypalinhaber}','{$this->paypalwaehrung}','{$this->projekt}','{$this->partner}','{$this->zahlungsweise}','{$this->zahlungszieltage}','{$this->zahlungszieltageskonto}','{$this->zahlungszielskonto}','{$this->versandart}','{$this->kundennummerlieferant}','{$this->zahlungsweiselieferant}','{$this->zahlungszieltagelieferant}','{$this->zahlungszieltageskontolieferant}','{$this->zahlungszielskontolieferant}','{$this->versandartlieferant}','{$this->geloescht}','{$this->firma}','{$this->webid}','{$this->vorname}','{$this->kennung}','{$this->sachkonto}','{$this->freifeld1}','{$this->freifeld2}','{$this->freifeld3}','{$this->filiale}','{$this->vertrieb}','{$this->innendienst}','{$this->verbandsnummer}','{$this->abweichendeemailab}','{$this->portofrei_aktiv}','{$this->portofreiab}','{$this->infoauftragserfassung}','{$this->mandatsreferenz}','{$this->mandatsreferenzdatum}','{$this->mandatsreferenzaenderung}','{$this->glaeubigeridentnr}','{$this->kreditlimit}','{$this->tour}','{$this->zahlungskonditionen_festschreiben}','{$this->rabatte_festschreiben}','{$this->mlmaktiv}','{$this->mlmvertragsbeginn}','{$this->mlmlizenzgebuehrbis}','{$this->mlmfestsetzenbis}','{$this->mlmfestsetzen}','{$this->mlmmindestpunkte}','{$this->mlmwartekonto}','{$this->abweichende_rechnungsadresse}','{$this->rechnung_vorname}','{$this->rechnung_name}','{$this->rechnung_titel}','{$this->rechnung_typ}','{$this->rechnung_strasse}','{$this->rechnung_ort}','{$this->rechnung_plz}','{$this->rechnung_ansprechpartner}','{$this->rechnung_land}','{$this->rechnung_abteilung}','{$this->rechnung_unterabteilung}','{$this->rechnung_adresszusatz}','{$this->rechnung_telefon}','{$this->rechnung_telefax}','{$this->rechnung_anschreiben}','{$this->rechnung_email}','{$this->geburtstag}','{$this->rolledatum}','{$this->liefersperre}','{$this->liefersperregrund}','{$this->mlmpositionierung}','{$this->steuernummer}','{$this->steuerbefreit}','{$this->mlmmitmwst}','{$this->mlmabrechnung}','{$this->mlmwaehrungauszahlung}','{$this->mlmauszahlungprojekt}','{$this->sponsor}','{$this->geworbenvon}','{$this->logfile}','{$this->kalender_aufgaben}','{$this->verrechnungskontoreisekosten}','{$this->usereditid}','{$this->useredittimestamp}','{$this->rabatt}','{$this->provision}','{$this->rabattinformation}','{$this->rabatt1}','{$this->rabatt2}','{$this->rabatt3}','{$this->rabatt4}','{$this->rabatt5}','{$this->internetseite}','{$this->bonus1}','{$this->bonus1_ab}','{$this->bonus2}','{$this->bonus2_ab}','{$this->bonus3}','{$this->bonus3_ab}','{$this->bonus4}','{$this->bonus4_ab}','{$this->bonus5}','{$this->bonus5_ab}','{$this->bonus6}','{$this->bonus6_ab}','{$this->bonus7}','{$this->bonus7_ab}','{$this->bonus8}','{$this->bonus8_ab}','{$this->bonus9}','{$this->bonus9_ab}','{$this->bonus10}','{$this->bonus10_ab}','{$this->rechnung_periode}','{$this->rechnung_anzahlpapier}','{$this->rechnung_anzahlpapier_abweichend}','{$this->rechnung_permail}','{$this->titel}','{$this->anschreiben}','{$this->nachname}','{$this->arbeitszeitprowoche}','{$this->folgebestaetigungsperre}','{$this->lieferantennummerbeikunde}','{$this->verein_mitglied_seit}','{$this->verein_mitglied_bis}','{$this->verein_mitglied_aktiv}','{$this->verein_spendenbescheinigung}','{$this->freifeld4}','{$this->freifeld5}','{$this->freifeld6}','{$this->freifeld7}','{$this->freifeld8}','{$this->freifeld9}','{$this->freifeld10}','{$this->rechnung_papier}','{$this->angebot_cc}','{$this->auftrag_cc}','{$this->rechnung_cc}','{$this->gutschrift_cc}','{$this->lieferschein_cc}','{$this->bestellung_cc}','{$this->angebot_fax_cc}','{$this->auftrag_fax_cc}','{$this->rechnung_fax_cc}','{$this->gutschrift_fax_cc}','{$this->lieferschein_fax_cc}','{$this->bestellung_fax_cc}','{$this->abperfax}','{$this->abpermail}','{$this->kassiereraktiv}','{$this->kassierernummer}','{$this->kassiererprojekt}','{$this->portofreilieferant_aktiv}','{$this->portofreiablieferant}','{$this->mandatsreferenzart}','{$this->mandatsreferenzwdhart}','{$this->serienbrief}','{$this->kundennummer_buchhaltung}','{$this->lieferantennummer_buchhaltung}','{$this->lead}','{$this->zahlungsweiseabo}','{$this->bundesland}','{$this->mandatsreferenzhinweis}','{$this->geburtstagkalender}','{$this->geburtstagskarte}','{$this->liefersperredatum}','{$this->umsatzsteuer_lieferant}','{$this->lat}','{$this->lng}','{$this->art}','{$this->fromshop}','{$this->freifeld11}','{$this->freifeld12}','{$this->freifeld13}','{$this->freifeld14}','{$this->freifeld15}','{$this->freifeld16}','{$this->freifeld17}','{$this->freifeld18}','{$this->freifeld19}','{$this->freifeld20}','{$this->angebot_email}','{$this->auftrag_email}','{$this->rechnungs_email}','{$this->gutschrift_email}','{$this->lieferschein_email}','{$this->bestellung_email}','{$this->lieferschwellenichtanwenden}','{$this->hinweistextlieferant}','{$this->firmensepa}','{$this->hinweis_einfuegen}','{$this->anzeigesteuerbelege}','{$this->gln}','{$this->rechnung_gln}','{$this->keinealtersabfrage}','{$this->lieferbedingung}','{$this->mlmintranetgesamtestruktur}','{$this->kommissionskonsignationslager}','{$this->zollinformationen}','{$this->bundesstaat}','{$this->rechnung_bundesstaat}')"; $this->app->DB->Insert($sql); @@ -580,7 +580,7 @@ $result = $result[0]; `webid`='{$this->webid}', `vorname`='{$this->vorname}', `kennung`='{$this->kennung}', - `sachkonto`='{$this->sachkonto}', + `kontorahmen`='{$this->sachkonto}', `freifeld1`='{$this->freifeld1}', `freifeld2`='{$this->freifeld2}', `freifeld3`='{$this->freifeld3}', diff --git a/www/pages/ajax.php b/www/pages/ajax.php index ada4211a..8458e29e 100644 --- a/www/pages/ajax.php +++ b/www/pages/ajax.php @@ -2489,7 +2489,7 @@ select a.kundennummer, (SELECT name FROM adresse a2 WHERE a2.kundennummer = a.ku $adresse = $this->app->DB->Select("SELECT id FROM adresse WHERE lieferantennummer = '".$lieferant[0]."' AND lieferantennummer <> '' LIMIT 1"); } $beleg = str_replace('lieferanten','',$filtername); - $arr = $this->app->DB->SelectArr("SELECT CONCAT(id,' ',if(belegnr <> '',belegnr,'ENTWURF'),' ',lieferantennummer,' ',name) as name FROM $beleg WHERE (belegnr <> '') AND (belegnr LIKE '%$term%' OR name LIKE '%$term%' OR lieferantennummer LIKE '$%term%') AND (status = 'versendet' OR status = 'freigegeben') + $arr = $this->app->DB->SelectArr("SELECT CONCAT(belegnr,' ',lieferantennummer,' ',name) as name FROM $beleg WHERE (belegnr <> '') AND (belegnr LIKE '%$term%' OR name LIKE '%$term%' OR lieferantennummer LIKE '$%term%') AND (status = 'versendet' OR status = 'freigegeben') ".($adresse?" AND adresse = '$adresse' ":'')." ".$this->app->erp->ProjektRechte('projekt')." ORDER by belegnr LIMIT 20" ); $carr = !empty($arr)?count($arr):0; diff --git a/www/pages/content/verbindlichkeit_edit.tpl b/www/pages/content/verbindlichkeit_edit.tpl index 2fa56044..45a913b5 100644 --- a/www/pages/content/verbindlichkeit_edit.tpl +++ b/www/pages/content/verbindlichkeit_edit.tpl @@ -1,6 +1,6 @@
diff --git a/www/pages/content/verbindlichkeit_minidetail.tpl b/www/pages/content/verbindlichkeit_minidetail.tpl index 723fd770..141e427d 100644 --- a/www/pages/content/verbindlichkeit_minidetail.tpl +++ b/www/pages/content/verbindlichkeit_minidetail.tpl @@ -8,7 +8,7 @@ color: #636363;border: 1px solid #fff;padding: 0px; margin:0px; } -
+
@@ -53,7 +53,7 @@
Lieferant:
-
+

Artikel

diff --git a/www/pages/content/verbindlichkeit_positionen.tpl b/www/pages/content/verbindlichkeit_positionen.tpl index 9c2d0728..9ad28ab4 100644 --- a/www/pages/content/verbindlichkeit_positionen.tpl +++ b/www/pages/content/verbindlichkeit_positionen.tpl @@ -55,16 +55,16 @@  {|alle markieren|} - + Sachkonto:  - - + + - + Steuersatz:  - + diff --git a/www/pages/verbindlichkeit.php b/www/pages/verbindlichkeit.php index 13c8e0d0..d3e70e5e 100644 --- a/www/pages/verbindlichkeit.php +++ b/www/pages/verbindlichkeit.php @@ -25,7 +25,6 @@ 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"); @@ -532,14 +531,18 @@ class Verbindlichkeit { $input['status'] = 'angelegt'; } + if (!empty($submit)) { + $einkauf_automatik_aus = false; + } + switch($submit) { case 'speichern': // Write to database // Add checks here - $schreibschutz = $this->app->DB->Select("SELECT schreibschutz FROM verbindlichkeit WHERE id =".$id); - if ($schreibschutz) { + $freigabe = $this->app->DB->SelectArr("SELECT rechnungsfreigabe, freigabe FROM verbindlichkeit WHERE id =".$id)[0]; + if ($freigabe['rechnungsfreigabe'] || $freigabe['freigabe']) { $internebemerkung = $input['internebemerkung']; $projekt = $input['projekt']; $kostenstelle = $input['kostenstelle']; @@ -555,7 +558,7 @@ class Verbindlichkeit { $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->DB->Select("SELECT id FROM kostenstellen WHERE nummer = '".$input['kostenstelle']."'"); - $input['projekt'] = $this->app->erp->ReplaceBestellung(true,$input['bestellung'],true); + $input['bestellung'] = $this->app->erp->ReplaceBestellung(true,$input['bestellung'],true); if(empty($input['projekt']) && !empty($input['adresse'])) { $input['projekt'] = $this->app->erp->GetCreateProjekt($input['adresse']); } @@ -608,8 +611,8 @@ class Verbindlichkeit { break; case 'positionen_hinzufuegen': - $freigabeeinkauf = $this->app->DB->Select("SELECT freigabe FROM verbindlichkeit WHERE id =".$id); - if ($freigabeeinkauf) { + $freigabe = $this->app->DB->SelectArr("SELECT rechnungsfreigabe, freigabe FROM verbindlichkeit WHERE id =".$id)[0]; + if ($freigabe['rechnungsfreigabe'] || $freigabe['freigabe']) { break; } @@ -627,6 +630,40 @@ class Verbindlichkeit { continue; } + // Check available number + $sql = " + SELECT + IF( + pd.menge > COALESCE(vp.menge,0), + pd.menge - COALESCE(vp.menge,0), + 0 + ) offen_menge + FROM + paketdistribution pd + LEFT JOIN( + SELECT + paketdistribution, + SUM(menge) AS menge + FROM + verbindlichkeit_position vp + GROUP BY + paketdistribution + ) vp + ON + vp.paketdistribution = pd.id + WHERE pd.id = ".$paketdistribution." + "; + $offen_menge = $this->app->DB->Select($sql); + + if ($offen_menge == 0) { + echo("Abort ".$paketdistribution." ".gettype($offen_menge)); + continue; + } + + if ($menge > $offen_menge) { + $menge = $offen_menge; + } + $preis = $preise[$key]; $umsatzsteuer = $umsatzsteuern[$key]; $ein_artikel = $artikel[$key]; @@ -759,7 +796,6 @@ class Verbindlichkeit { } // Summarize positions - $sql = "SELECT * FROM verbindlichkeit_position WHERE verbindlichkeit = ".$id; $positionen = $this->app->DB->SelectArr($sql); @@ -776,7 +812,6 @@ class Verbindlichkeit { Befreit: umsatzsteuer befreit, steursatz = -1 Individuell: umsatzsteuer leer, steuersatz = wert */ - foreach ($positionen as $position) { $tmpsteuersatz = null; @@ -818,21 +853,22 @@ class Verbindlichkeit { if ($pos_ok) { if (!$verbindlichkeit_from_db['freigabe'] && !$einkauf_automatik_aus) { - $this->app->DB->Update("UPDATE verbindlichkeit SET freigabe = 1 WHERE id = ".$id); - $verbindlichkeit_from_db['freigabe'] = 1; - $this->app->erp->BelegProtokoll("verbindlichkeit",$id,"Verbindlichkeit automatisch freigegeben (Einkauf)"); - $this->app->YUI->Message('success',"Verbindlichkeit automatisch freigegeben (Einkauf)"); + if ($this->verbindlichkeit_freigabeeinkauf($id,"Verbindlichkeit automatisch freigegeben (Einkauf)")) { + $this->app->YUI->Message('success',"Verbindlichkeit automatisch freigegeben (Einkauf)"); + $verbindlichkeit_from_db['freigabe'] = 1; + } else { + $this->app->YUI->Message('warning','Waren-/Leistungsprüfung (Einkauf) nicht abgeschlossen'); + } } $this->app->Tpl->Set('POSITIONENMESSAGE', '
Positionen vollständig
'); } else { - $this->app->Tpl->Set('POSITIONENMESSAGE', '
Positionen nicht vollständig. Bruttobetrag '.$verbindlichkeit_from_db['betrag'].', Summe Positionen (brutto) '.round($betrag_brutto,2).', Summe Positionen (netto) '.round($betrag_netto,2).'
'); + $this->app->Tpl->Set('POSITIONENMESSAGE', '
Positionen nicht vollständig. Bruttobetrag '.$verbindlichkeit_from_db['betrag'].', Summe Positionen (brutto) '.round($betrag_brutto,2).', Differenz '.round(round($betrag_brutto,2)-$verbindlichkeit_from_db['betrag'],2).'
'); if ($verbindlichkeit_from_db['freigabe']) { $this->app->DB->Update("UPDATE verbindlichkeit SET freigabe = 0 WHERE id = ".$id); $verbindlichkeit_from_db['freigabe'] = 0; $this->app->YUI->Message('warning',"Verbindlichkeit rückgesetzt (Einkauf)"); } } - $this->app->Tpl->Set('BETRAGDISABLED', 'disabled'); } /* @@ -846,11 +882,6 @@ class Verbindlichkeit { */ - if ($verbindlichkeit_from_db['rechnungsfreigabe']) { - $this->app->Tpl->Set('SAVEDISABLED','disabled'); - $this->app->Tpl->Set('MESSAGE',"
Diese Verbindlichkeit ist schreibgeschützt und darf daher nicht mehr bearbeitet werden! 
"); - } - if (empty($verbindlichkeit_from_db['adresse'] || $verbindlichkeit_from_db['status'] == 'angelegt')) { $this->app->Tpl->Set('FREIGABEEINKAUFHIDDEN','hidden'); $this->app->Tpl->Set('FREIGABEBUCHHALTUNGHIDDEN','hidden'); @@ -860,6 +891,7 @@ class Verbindlichkeit { if ($verbindlichkeit_from_db['freigabe']) { $this->app->Tpl->Set('FREIGABEEINKAUFHIDDEN','hidden'); $this->app->Tpl->Set('EINKAUFINFOHIDDEN','hidden'); + $this->app->Tpl->Set('SAVEDISABLED','disabled'); $this->app->Tpl->Set('POSITIONHINZUFUEGENHIDDEN','hidden'); } else { $this->app->Tpl->Set('RUECKSETZENEINKAUFHIDDEN','hidden'); @@ -954,7 +986,6 @@ 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')?'1':'0';; $input['zahlungsweise'] = $this->app->Secure->GetPOST('zahlungsweise'); $input['eingangsdatum'] = $this->app->Secure->GetPOST('eingangsdatum'); $input['rechnungsdatum'] = $this->app->Secure->GetPOST('rechnungsdatum'); @@ -1046,22 +1077,50 @@ 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->app->DB->Update("UPDATE verbindlichkeit SET schreibschutz = 1 WHERE id = ".$id); $this->verbindlichkeit_edit(); } - function verbindlichkeit_freigabeeinkauf($id = null) + function verbindlichkeit_freigabeeinkauf($id = null, $text = null) { if (empty($id)) { $id = $this->app->Secure->GetGET('id'); $gotoedit = true; } - $sql = "UPDATE verbindlichkeit SET freigabe = 1, schreibschutz = 1 WHERE id=".$id; + + // Check wareneingang status + + $sql = "SELECT + pa.id + FROM verbindlichkeit_position vp + INNER JOIN paketdistribution pd ON pd.id = vp.paketdistribution + INNER JOIN paketannahme pa ON pa.id = pd.paketannahme + WHERE + verbindlichkeit='$id' + AND + pa.status != 'abgeschlossen' + + "; + + $check = $this->app->DB->SelectArr($sql); + + if (!empty($check)) { + return(false); + } + + $sql = "UPDATE verbindlichkeit SET freigabe = 1 WHERE id=".$id; $this->app->DB->Update($sql); - $this->app->erp->BelegProtokoll("verbindlichkeit",$id,"Verbindlichkeit freigegeben (Einkauf)"); + + if (!$text) { + $text = "Verbindlichkeit freigegeben (Einkauf)"; + } + $this->app->erp->BelegProtokoll("verbindlichkeit",$id,$text); if ($gotoedit) { $this->verbindlichkeit_edit(); } + else { + return(true); + } } function verbindlichkeit_freigabebuchhaltung($id = null) @@ -1070,9 +1129,31 @@ class Verbindlichkeit { $id = $this->app->Secure->GetGET('id'); $gotoedit = true; } - $sql = "UPDATE verbindlichkeit SET rechnungsfreigabe = 1 WHERE freigabe = 1 AND id=".$id; - $this->app->DB->Update($sql); - $this->app->erp->BelegProtokoll("verbindlichkeit",$id,"Verbindlichkeit freigegeben (Buchhaltung)"); + + // Check accounting + $sql = " + SELECT + vp.id + FROM verbindlichkeit_position vp + INNER JOIN artikel art ON art.id = vp.artikel + LEFT JOIN verbindlichkeit v ON v.id = vp.verbindlichkeit + LEFT JOIN adresse adr ON adr.id = v.adresse + LEFT JOIN kontorahmen skv ON skv.id = vp.kontorahmen + LEFT JOIN kontorahmen skart ON skart.id = art.kontorahmen + LEFT JOIN kontorahmen skadr ON skadr.id = adr.kontorahmen + WHERE verbindlichkeit='$id' + AND COALESCE(skv.id,0) = 0 AND COALESCE(skart.id,0) = 0 AND COALESCE(skadr.id,0) = 0 + "; + $check = $this->app->DB->SelectArr($sql); + + if (!empty($check)) { + $this->app->YUI->Message('error','Kontierung unvollständig'); + } else { + $sql = "UPDATE verbindlichkeit SET rechnungsfreigabe = 1 WHERE freigabe = 1 AND id=".$id; + $this->app->DB->Update($sql); + $this->app->erp->BelegProtokoll("verbindlichkeit",$id,"Verbindlichkeit freigegeben (Buchhaltung)"); + } + if ($gotoedit) { $this->verbindlichkeit_edit(); } @@ -1098,7 +1179,7 @@ class Verbindlichkeit { $id = $this->app->Secure->GetGET('id'); $gotoedit = true; } - $sql = "UPDATE verbindlichkeit SET freigabe = 0, schreibschutz = 0 WHERE id=".$id; + $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) { @@ -1134,7 +1215,7 @@ class Verbindlichkeit { } } - function verbindlichkeit_schreibschutz($id = null) +/* function verbindlichkeit_schreibschutz($id = null) { if (empty($id)) { $id = $this->app->Secure->GetGET('id'); @@ -1146,7 +1227,7 @@ class Verbindlichkeit { if ($gotoedit) { $this->verbindlichkeit_edit(); } - } + } */ public function verbindlichkeit_minidetail($parsetarget='',$menu=true) { @@ -1228,10 +1309,10 @@ class Verbindlichkeit { vp.menge, vp.preis, vp.steuersatz, - if (skv.sachkonto <> 0, + if (skv.id <> 0, CONCAT(skv.sachkonto,' ',skv.beschriftung), ( - if (skart.sachkonto <> 0, + if (skart.id <> 0, CONCAT(skart.sachkonto,' ',skart.beschriftung, ' (Artikel)'), CONCAT(skadr.sachkonto,' ',skadr.beschriftung, ' (Adresse)') )