diff --git a/phpwf/plugins/class.yui.php b/phpwf/plugins/class.yui.php index 7d2326fb..7f32d3ad 100644 --- a/phpwf/plugins/class.yui.php +++ b/phpwf/plugins/class.yui.php @@ -4440,19 +4440,21 @@ url:strUrl, success:function(html){strReturn = html;}, async:false $heading[$startindex]="Menü"; $findcols[$startindex]="b.menu"; + if (!is_null($tmpsql)) { $tmpsqlstring = implode(',',$tmpsql); + } if($tmpsqlstring!="")$tmpsqlstring .=","; } + if (!is_null($tmp_or)) { - if(count($tmp_or)>0) - { - $tmp = "AND (".implode(' or ',$tmp_or).")"; - } - - + if(count($tmp_or)>0) + { + $tmp = "AND (".implode(' or ',$tmp_or).")"; + } + } //auftrag if($fauftrag && $this->app->erp->RechteVorhanden('auftrag','list')){ diff --git a/www/lib/class.erpapi.php b/www/lib/class.erpapi.php index c138006a..19f0706a 100644 --- a/www/lib/class.erpapi.php +++ b/www/lib/class.erpapi.php @@ -18022,10 +18022,12 @@ function SendPaypalFromAuftrag($auftrag, $test = false) } // wenn ziel formular - //return $abkuerzung; - if($value == round($value, 2)) { - return number_format((float)$value,2,',',''); - } + if ($value != "") { + //return $abkuerzung; + if($value == round($value, 2)) { + return number_format((float)$value,2,',',''); + } + } return rtrim(str_replace('.',',',$value),'0'); } diff --git a/www/pages/adresse.php b/www/pages/adresse.php index d60691c2..adf895f4 100644 --- a/www/pages/adresse.php +++ b/www/pages/adresse.php @@ -1,6501 +1,6505 @@ -Secure->GetGET('id'); - switch($name) - { - case 'lieferantartikel': - $allowed['adresse'] = array('lieferantartikel'); - - // START EXTRA checkboxen - $app->Tpl->Add('JQUERYREADY', "$('#offen').on('click', function() { fnFilterColumn1( 0 ); } );"); - for ($r = 1;$r < 2;$r++) { - $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 - ); - } - '); - } - - // headings - $heading = array('Nummer', 'Artikel', 'Verkauf', 'LA', 'AB', 'BE', 'Reserv.', 'Fehlende', 'Gesamt', 'aktueller Monate', 'letzter Monat', 'Status', 'Menü'); - $width = array('5%', '40%', '5%', '5%', '5%', '5%', '5%', '5%', '5%', '5%', '5%', '5%', '15%'); - - $findcols = array('nummer', 'name_de', 'verkauf', 'CAST(`lager` as SIGNED)', 'CAST(`offen` as SIGNED)', 'CAST(`bestellung` as SIGNED)', 'CAST(`res` as SIGNED)', 'CAST(`fehlende` as SIGNED)', 'CAST(`gesamt` as SIGNED)', 'CAST(`monat` as SIGNED)', 'CAST(`monat_last` as SIGNED)', 'status', 'id'); - - $searchsql = array('a.name_de', "IFNULL((SELECT e.bestellnummer FROM einkaufspreise e WHERE e.artikel=a.id AND e.adresse='$id' AND e.geloescht!=1 AND e.bestellnummer!='' LIMIT 1),'')", 'a.nummer'); - $menu = "Conf->WFconf['defaulttheme']}/images/edit.svg\" border=\"0\">" . " Conf->WFconf['defaulttheme']}/images/delete.svg\" border=\"0\">" . " Conf->WFconf['defaulttheme']}/images/copy.svg\" border=\"0\">"; - $aktuellermonat = $app->DB->Select("SELECT CONCAT(YEAR(NOW()),'-',MONTH(NOW()))"); - $letztermonat = $app->DB->Select("SELECT CONCAT(YEAR( DATE_SUB( NOW() , INTERVAL 1 MONTH )),'-',DATE_FORMAT( DATE_SUB( NOW() , INTERVAL 1 MONTH ) ,'%m'))"); - $alignright = array(4,5,6,7,8,9,10,11); - // SQL statement - $sql = "SELECT SQL_CALC_FOUND_ROWS a.id, a.nummer as nummer, - - CONCAT(if( (SELECT SUM(ap.menge) FROM auftrag_position ap LEFT JOIN auftrag auf ON auf.id=ap.auftrag WHERE ap.artikel=a.id AND auf.status='freigegeben') > IFNULL((SELECT SUM(l.menge) FROM lager_platz_inhalt l WHERE l.artikel=a.id),0) + IFNULL((SELECT SUM(bp.menge-bp.geliefert) FROM bestellung_position bp LEFT JOIN bestellung b ON b.id=bp.bestellung WHERE bp.artikel=a.id AND b.status='versendet'),0) - - , CONCAT('',a.name_de,''),a.name_de),'
Best-Nr.:',IFNULL((SELECT e.bestellnummer FROM einkaufspreise e WHERE e.artikel=a.id AND e.adresse='$id' AND e.geloescht!=1 AND e.bestellnummer!='' ORDER by e.id DESC LIMIT 1),'-'),'
Letzter EK-Preis: ',IFNULL((SELECT ".$app->erp->FormatPreis("e.preis",2)." FROM einkaufspreise e WHERE e.artikel=a.id AND (e.gueltig_bis > NOW() OR e.gueltig_bis='0000-00-00') AND e.geloescht!=1 AND e.preis >= 0 ORDER by e.id DESC LIMIT 1),''),' ab Menge ',IFNULL((SELECT ".$app->erp->FormatMenge("e.ab_menge")." FROM einkaufspreise e WHERE e.artikel=a.id AND (e.gueltig_bis > NOW() OR e.gueltig_bis='0000-00-00') AND e.geloescht!=1 AND e.preis >= 0 ORDER by e.id DESC LIMIT 1),'')) as name, - - - ifnull((SELECT DATE_FORMAT(MAX(auftrag.datum), '%d.%m.%Y') FROM auftrag LEFT JOIN - auftrag_position ON auftrag.id=auftrag_position.auftrag WHERE auftrag_position.artikel=a.id - ),0) as verkauf, - - - - ifnull(if( (SELECT SUM(ap.menge) FROM auftrag_position ap LEFT JOIN auftrag auf ON auf.id=ap.auftrag WHERE ap.artikel=a.id AND auf.status='freigegeben') > IFNULL((SELECT SUM(l.menge) FROM lager_platz_inhalt l WHERE l.artikel=a.id),0) + IFNULL((SELECT SUM(bp.menge-bp.geliefert) FROM bestellung_position bp LEFT JOIN bestellung b ON b.id=bp.bestellung WHERE bp.artikel=a.id AND b.status='versendet'),0) - , - CONCAT('',if((SELECT SUM(l.menge) FROM lager_platz_inhalt l WHERE l.artikel=a.id) > 0,(SELECT ".$app->erp->FormatMenge("SUM(l.menge)")." FROM lager_platz_inhalt l WHERE l.artikel=a.id),'-'),''), - - if((SELECT SUM(l.menge) FROM lager_platz_inhalt l WHERE l.artikel=a.id) > 0,(SELECT ".$app->erp->FormatMenge("SUM(l.menge)")." FROM lager_platz_inhalt l WHERE l.artikel=a.id),'-')),0) - as lager, - - ifnull((SELECT ".$app->erp->FormatMenge("SUM(ap.menge)")." FROM auftrag_position ap LEFT JOIN auftrag auf ON auf.id=ap.auftrag WHERE ap.artikel=a.id AND auf.status='freigegeben'),0) as offen, - - ifnull((SELECT ".$app->erp->FormatMenge("SUM(bp.menge-bp.geliefert)")." FROM bestellung_position bp LEFT JOIN bestellung b ON b.id=bp.bestellung WHERE bp.artikel=a.id AND b.status='versendet'),0) as bestellung, - - ifnull((if((SELECT SUM(l.menge) FROM lager_reserviert l WHERE l.artikel=a.id) > 0,(SELECT ".$app->erp->FormatMenge("SUM(l.menge)")." FROM lager_reserviert l WHERE l.artikel=a.id),'-')),0) as res, - - ifnull(IF((SELECT SUM(ap.menge) FROM auftrag_position ap LEFT JOIN auftrag auf ON auf.id=ap.auftrag WHERE ap.artikel=a.id AND auf.status='freigegeben') - ( IFNULL((SELECT SUM(l.menge) FROM lager_platz_inhalt l WHERE l.artikel=a.id),0) + IFNULL((SELECT SUM(bp.menge-bp.geliefert) FROM bestellung_position bp LEFT JOIN bestellung b ON b.id=bp.bestellung WHERE bp.artikel=a.id AND b.status='versendet'),0)) > 0,".$app->erp->FormatMenge("(SELECT SUM(ap.menge) FROM auftrag_position ap LEFT JOIN auftrag auf ON auf.id=ap.auftrag WHERE ap.artikel=a.id AND auf.status='freigegeben') - ( IFNULL((SELECT SUM(l.menge) FROM lager_platz_inhalt l WHERE l.artikel=a.id),0) + IFNULL((SELECT SUM(bp.menge-bp.geliefert) FROM bestellung_position bp LEFT JOIN bestellung b ON b.id=bp.bestellung WHERE bp.artikel=a.id AND b.status='versendet'),0))").",'-'),0) as fehlende, - - - - ifnull(if((SELECT SUM(ap.menge) FROM auftrag_position ap WHERE ap.artikel=a.id) > 0, (SELECT ".$app->erp->FormatMenge("SUM(ap.menge)")." FROM auftrag_position ap WHERE ap.artikel=a.id),'-'),0) as gesamt, - ifnull((SELECT ".$app->erp->FormatMenge("SUM(ap.menge)")." FROM auftrag_position ap LEFT JOIN auftrag auf ON auf.id=ap.auftrag WHERE ap.artikel=a.id AND DATE_FORMAT(auf.datum,'%Y-%m')='$aktuellermonat'),0) as monat, - ifnull((SELECT ".$app->erp->FormatMenge("SUM(ap.menge)")." FROM auftrag_position ap LEFT JOIN auftrag auf ON auf.id=ap.auftrag WHERE ap.artikel=a.id AND DATE_FORMAT(auf.datum,'%Y-%m')='$letztermonat'),0) as monat_last, - - ifnull(if( (SELECT SUM(ap.menge) FROM auftrag_position ap LEFT JOIN auftrag auf ON auf.id=ap.auftrag WHERE ap.artikel=a.id AND auf.status='freigegeben') > IFNULL((SELECT SUM(l.menge) FROM lager_platz_inhalt l WHERE l.artikel=a.id),0)+IFNULL((SELECT SUM(bp.menge-bp.geliefert) FROM bestellung_position bp LEFT JOIN bestellung b ON b.id=bp.bestellung WHERE bp.artikel=a.id AND b.status='versendet'),0), 'fehlt','ok'),'') as status, - a.id as menu - FROM artikel a "; - - // START EXTRA more - $more_data1 = $app->Secure->GetGET("more_data1"); - - if ($more_data1 == 1) $subwhere[] = " (((SELECT MAX(auftrag.datum) FROM auftrag LEFT JOIN - auftrag_position ON auftrag.id=auftrag_position.auftrag WHERE auftrag_position.artikel=a.id - ) < DATE_SUB(NOW(),INTERVAL 6 MONTH)) AND (SELECT SUM(l.menge) FROM lager_platz_inhalt l WHERE l.artikel=a.id) > 0 )"; - $csubwhere = isset($subwhere)?count($subwhere):0; - $tmp = ''; - for ($j = 0;$j < $csubwhere;$j++) { - $tmp.= " AND " . $subwhere[$j]; - } - - // fester filter - $where = " (a.adresse='$id' OR a.id IN(SELECT artikel FROM einkaufspreise WHERE adresse='$id' AND (gueltig_bis>CURRENT_DATE() OR gueltig_bis='0000-00-00'))) AND a.geloescht!=1 $tmp"; - $count = "SELECT COUNT(a.id) FROM artikel a WHERE $where"; - - break; - case 'adressealleabos': - $allowed['adresse'] = array('artikel'); - $heading = array('Bezeichnung', 'Nummer', 'Start am', 'Abgerechnet bis', 'Enddatum', 'Preis','Rabatt', 'Währung', 'Menge', 'Art', 'Dokument','Gruppe / Reihenfolge', 'Menü'); - $width = array('10%', '6%', '10%', '10%', '10%', '6%','3%', '4%', '2%', '5%', '5%','15%', '8%'); - - $findcols = array('aa.bezeichnung', 'ar.nummer', "if(aa.startdatum!='0000-00-00',DATE_FORMAT(aa.startdatum,'%d.%m.%Y') ,if(aa.angelegtam='0000-00-00','-',DATE_FORMAT(aa.angelegtam,'%d.%m.%Y')))", "if(aa.abgerechnetbis='0000-00-00','-',aa.abgerechnetbis)", "if(aa.enddatum='0000-00-00','-',aa.enddatum)", 'aa.preis','aa.rabatt', 'aa.waehrung', 'aa.menge', - "if(aa.wiederholend=1 OR aa.preisart='monat' OR aa.preisart='jahr' OR aa.preisart='monatx' OR aa.preisart='wochen',aa.preisart, - if(aa.preisart = '30tage', - '30 Tage', - if(aa.preisart = '360tage', '360 Tage', 'einmalig') - ) - )", - 'aa.dokument',"CONCAT(IFNULL(ag.beschreibung,''),aa.sort)", 'id'); - $searchsql = array('aa.bezeichnung', 'ar.nummer', "if(aa.startdatum!='0000-00-00',DATE_FORMAT(aa.startdatum,'%d.%m.%Y') ,if(aa.angelegtam='0000-00-00','-',DATE_FORMAT(aa.angelegtam,'%d.%m.%Y')))", "if(aa.abgerechnetbis='0000-00-00','-',DATE_FORMAT(aa.abgerechnetbis,'%d.%m.%Y'))", "if(aa.enddatum='0000-00-00','-',DATE_FORMAT(aa.enddatum,'%d.%m.%Y'))", $app->erp->FormatPreis("aa.preis"),'aa.rabatt', 'aa.waehrung', $app->erp->FormatMenge("aa.menge"), - "if(aa.wiederholend=1 OR aa.preisart='monat' OR aa.preisart='jahr' OR aa.preisart='monatx' OR aa.preisart='wochen',aa.preisart, - if(aa.preisart = '30tage', - '30 Tage', - if(aa.preisart = '360tage', '360 Tage', 'einmalig') - ) - )", - 'ag.beschreibung', 'aa.dokument'); - - $numbercols = array(5,8); - $datecols = array(3,4); - $alignright = array(6,7,8,9); - $defaultorder = 12; - $defaultorderdesc = 0; - - $nurAktive = $app->YUI->TableSearchFilter($name, 5, 'nur_aktive_abos', '0', 0, 'checkbox'); - $subwhere = ''; - if($nurAktive){ - $subwhere = " AND (aa.enddatum = '0000-00-00' OR aa.enddatum >= CURDATE())"; - } - - $id = $app->Secure->GetGET('id'); - - $menu = ""; - $menu .= ""; - $menu .= ""; - $menu .= ""; - $menu .= "
"; - $menu .= "Conf->WFconf['defaulttheme']}/images/edit.svg\"> "; - $menu .= "Conf->WFconf['defaulttheme']}/images/delete.svg\"> "; - $menu .= "
"; - - $where = " aa.adresse='$id'".$subwhere; - - $sql = "SELECT SQL_CALC_FOUND_ROWS aa.id, aa.bezeichnung, ar.nummer, if(aa.startdatum!='0000-00-00',DATE_FORMAT(aa.startdatum,'%d.%m.%Y') ,if(aa.angelegtam='0000-00-00','-',DATE_FORMAT(aa.angelegtam,'%d.%m.%Y'))) as 'angelegtam', if(aa.abgerechnetbis='0000-00-00','-',DATE_FORMAT(aa.abgerechnetbis,'%d.%m.%Y')) as 'abgerechnetbis', - if(aa.enddatum='0000-00-00','-',DATE_FORMAT(aa.enddatum,'%d.%m.%Y')) as enddatum, - ".$app->erp->FormatPreis("aa.preis")." as preis, aa.rabatt, aa.waehrung, ".$app->erp->FormatMenge("aa.menge")." as menge, - if( - aa.wiederholend=1 OR aa.preisart='monat' OR aa.preisart='jahr' OR aa.preisart='monatx' OR aa.preisart='wochen', - aa.preisart, - if(aa.preisart = '30tage', - '30 Tage', - if(aa.preisart = '360tage', '360 Tage', 'einmalig') - ) - ), - aa.dokument,CONCAT(IFNULL(ag.beschreibung,'-'), ' / ', if(ag.id > 0,' ',''),aa.sort, ''), aa.id as id - FROM abrechnungsartikel aa LEFT JOIN artikel ar ON ar.id=aa.artikel LEFT JOIN user u ON u.id=aa.angelegtvon LEFT JOIN adresse au ON au.id=u.adresse - LEFT JOIN abrechnungsartikel_gruppe ag ON aa.gruppe=ag.id"; - $count = "SELECT COUNT(aa.id) FROM abrechnungsartikel aa LEFT JOIN artikel ar ON ar.id = aa.artikel LEFT JOIN user u ON u.id = aa.angelegtvon LEFT JOIN adresse au ON au.id = u.adresse WHERE $where"; - - break; - case 'adressealleabossort': - $allowed['adresse'] = array('artikel'); - $heading = array('Bezeichnung', 'Nummer', 'Preis','Gruppe', 'Reihenfolge', 'Menü'); - $width = array('10%', '10%', '10%', '10%', '10%', '8%'); - - $findcols = array('aa.bezeichnung', 'ar.nummer', 'preis','ag.beschreibung','aa.sort', 'id'); - $searchsql = array('aa.bezeichnung', 'ar.nummer', 'preis','ag.beschreibung'); - - $alignright = array(6); - $defaultorder = 4; - $defaultorderdesc = 0; - - $id = $app->Secure->GetGET('id'); - - $menu = ""; - $menu .= ""; - $menu .= ""; - $menu .= ""; - $menu .= "
"; - $menu .= "Conf->WFconf['defaulttheme']}/images/up.png\">"; - $menu .= "Conf->WFconf['defaulttheme']}/images/down.png\">"; - $menu .= "
"; - - $where = " aa.adresse='$id'"; - - $orderby = "ORDER BY aa.gruppe ASC, aa.sort ASC"; - - $sql = "SELECT SQL_CALC_FOUND_ROWS aa.id, - aa.bezeichnung, - ar.nummer, - ".$app->erp->FormatPreis("aa.preis")." as preis, - IFNULL(ag.beschreibung,'-') as gruppe, - aa.sort, - aa.id as id - FROM abrechnungsartikel aa LEFT JOIN artikel ar ON ar.id=aa.artikel LEFT JOIN user u ON u.id=aa.angelegtvon LEFT JOIN adresse au ON au.id=u.adresse - LEFT JOIN abrechnungsartikel_gruppe ag ON aa.gruppe=ag.id"; - $count = "SELECT COUNT(aa.id) FROM abrechnungsartikel aa LEFT JOIN artikel ar ON ar.id = aa.artikel LEFT JOIN user u ON u.id = aa.angelegtvon LEFT JOIN adresse au ON au.id = u.adresse WHERE $where"; - - break; - case 'abrechnungsartikel_gruppe': - $allowed['adresse'] = array('artikel'); - $heading = array('Bezeichnung','Reihenfolge','Ansprechpartner','Rechnung','Ziel-Projekt', 'Menü'); - $width = array('30%','5%', '30%','10%','15%', '8%'); - - $findcols = array('ag.beschreibung','ag.sort', 'ag.ansprechpartner', "if(ag.extrarechnung=0,'Gemeinsame Rechnung', if(ag.extrarechnung=1,'Eigene Rechnung', if(ag.extrarechnung=2, 'Sammelrechnung', '-')))",'p.abkuerzung', 'ag.id'); - $searchsql = array('ag.beschreibung','ag.sort', 'ag.ansprechpartner', "if(ag.extrarechnung=0,'Gemeinsame Rechnung', if(ag.extrarechnung=1,'Eigene Rechnung', if(ag.extrarechnung=2, 'Sammelrechnung', '-')))",'p.abkuerzung'); - - $defaultorder = 1; - $defaultorderdesc = 0; - - $id = $app->Secure->GetGET('id'); - - $menu = ""; - $menu .= ""; - $menu .= ""; - $menu .= ""; - $menu .= ""; - $menu .= "
"; - $menu .= ""; - $menu .= "Conf->WFconf['defaulttheme']}/images/edit.svg\">"; - $menu .= ""; - $menu .= ""; - $menu .= ""; - $menu .= "Conf->WFconf['defaulttheme']}/images/delete.svg\">"; - $menu .= ""; - $menu .= "
"; - - $where = " ag.adresse='$id' "; - - $sql = "SELECT SQL_CALC_FOUND_ROWS ag.id, ag.beschreibung,if(ag.sort<=0,'-',ag.sort),ag.ansprechpartner,if(ag.extrarechnung=0,'Gemeinsame Rechnung', if(ag.extrarechnung=1,'Eigene Rechnung', if(ag.extrarechnung=2, 'Sammelrechnung', '-'))), p.abkuerzung, ag.id FROM abrechnungsartikel_gruppe ag - LEFT JOIN projekt p ON p.id=ag.projekt"; - - $count = "SELECT COUNT(ag.id) FROM abrechnungsartikel_gruppe ag WHERE $where"; - - - break; - case 'abosammelrechnungen': - $allowed['adresse'] = array('artikel'); - $heading = array('Bezeichnung', 'abweichende Rechnungsadresse', 'Ziel-Projekt', 'Menü'); - $width = array('30%', '30%', '30%', '1%'); - - $findcols = array('abs.bezeichnung', 'a.name', 'p.abkuerzung', 'abs.id'); - $searchsql = array('abs.bezeichnung', 'a.name', 'p.abkuerzung'); - - $defaultorder = 1; - $defaultorderdesc = 0; - - $id = $app->Secure->GetGET('id'); - - $menu = ""; - $menu .= ""; - $menu .= ""; - $menu .= ""; - $menu .= "
"; - $menu .= ''; - $menu .= "Conf->WFconf['defaulttheme']}/images/edit.svg\">"; - $menu .= " "; - $menu .= ''; - $menu .= "Conf->WFconf['defaulttheme']}/images/delete.svg\">"; - $menu .= ""; - $menu .= "
"; - - $where = " abs.adresse='$id' "; - - $sql = "SELECT SQL_CALC_FOUND_ROWS abs.id, abs.bezeichnung, a.name, p.abkuerzung, abs.id FROM adresse_abosammelrechnungen abs LEFT JOIN adresse a ON abs.abweichende_rechnungsadresse = a.id LEFT JOIN projekt p ON abs.projekt = p.id"; - - $count = "SELECT COUNT(abs.id) FROM adresse_abosammelrechnungen abs WHERE $where"; - break; - - case 'abrechnungsartikel': - $allowed['adresse'] = array('artikel'); - $heading = array('Artikel', 'Nummer', 'Ab', 'Preis','Waehrung', 'Projekt', 'Startdatum', 'Menge', 'Aktion'); - $width = array('20%', '10%', '2%', '8%', '5%','1%', '10%', '10%', '10%'); - $findcols = array('a.name_de', 'a.nummer', 'ab', 'v.preis','v.waehrung','projekt', 'lieferdatum', 'menge', 'v.id'); - $searchsql = array('a.name_de', 'a.nummer'); - $id = $app->Secure->GetGET('id'); - $alignright=array(4,5); - $menu = '
'; - $sql = "SELECT SQL_CALC_FOUND_ROWS a.id,CONCAT(a.name_de,' ',if(v.adresse='$id','(Kundensp. Preis)',''), if(v.gruppe > 0,CONCAT('(Gruppenpreis ',g.name,' ',g.kennziffer,')'),'')), CONCAT('',a.nummer,''), ".$app->erp->FormatMenge("v.ab_menge")." AS ab, ".$app->erp->FormatPreis("v.preis").",v.waehrung, p.abkuerzung as projekt, - CONCAT('
') AS lieferdatum, - CONCAT('
') AS menge, - v.id - FROM artikel AS a - LEFT JOIN verkaufspreise AS v ON v.artikel=a.id - LEFT JOIN projekt AS p ON p.id=v.projekt LEFT JOIN gruppen g ON g.id=v.gruppe"; - $where = " v.ab_menge>0 AND a.geloescht!=1 AND (v.gueltig_bis ='0000-00-00' OR v.gueltig_bis >= DATE_FORMAT(NOW(),'%Y-%m-%d')) AND (v.adresse='$id' or v.adresse<=0) "; - $count = "SELECT COUNT(a.id) FROM artikel AS a - LEFT JOIN verkaufspreise AS v ON v.artikel=a.id - LEFT JOIN projekt AS p ON p.id=v.projekt - WHERE $where"; - break; - case 'adresse_ansprechpartnergruppen': - //$doctype = str_replace('belegeinauslagern_bewegungen_','',$name); - $id = $app->Secure->GetGET('id'); - $lid = $app->YUI->TableSearchFilter($name, 1, 'filterlid'); - $allowed['adresse'] = array('ansprechpartner'); - $heading = array('','Gruppe','Kategorie',''); - $width = array('1%','49%','49','1%'); - $findcols = array('ag.aktiv','gr.name','gk.bezeichnung','gr.id'); - $searchsql = array('gr.name','gk.bezeichnung'); - $defaultorder = 2; - $defaultorderdesc = 0; - $disabled = ""; - //if(!$lid)$disabled = "disabled "; - $sql= "SELECT SQL_CALC_FOUND_ROWS gr.id , - concat(' 0,' checked ','')),' />') as auswahl, - gr.name, gk.bezeichnung, gr.id - FROM gruppen gr - LEFT JOIN ansprechpartner_gruppen ag ON gr.id = ag.gruppe and ag.ansprechpartner = '$lid' - LEFT JOIN gruppen_kategorien gk ON gr.kategorie = gk.id - "; - $where = " gr.art != 'preisgruppe' "; - $maxrows = 50; - $disablebuttons = true; - break; - - case 'adresse_ustprf': - $allowed['adresse'] = array('ustprf'); - - $heading = array('Datum', 'Firma', 'Straße', 'PLZ', 'Ort', 'Land', 'Brief', 'Status', 'Menü'); - $width = array('8%', '25%', '25%', '5%', '10%', '5%', '3%', '5%', '1%'); - - $findcols = array('u.datum', 'u.name', 'u.strasse', 'u.plz', 'u.ort', 'u.land', "if(u.briefbestellt != '0000-00-00', 'ja', '-')", "IF(u.status = 'gueltigmarkieren', 'gültig markiert', status)", 'u.id'); - $searchsql = array("DATE_FORMAT(u.datum, '%d.%m.%Y')", 'u.name', 'u.strasse', 'u.plz', 'u.ort', 'u.land', 'u.briefbestellt', "IF(u.status = 'gueltigmarkieren', 'gültig markiert', status)"); - - $defaultorder = 1; - $defaultorderdesc = 0; - - $menu = ''; - $menu .= ''; - $menu .= ''; - $menu .= ''; - $menu .= '
'; - $menu .= ''; - $menu .= "Conf->WFconf['defaulttheme']}/images/edit.svg\" border=\"0\">"; - $menu .= ' '; - $menu .= ''; - $menu .= "Conf->WFconf['defaulttheme']}/images/delete.svg\" border=\"0\">"; - $menu .= ''; - $menu .= '
'; - - $adressid = $app->Secure->GetGET('id'); - - $where = " u.id > 0 AND u.adresse = '$adressid'"; - - $sql = "SELECT SQL_CALC_FOUND_ROWS u.id, DATE_FORMAT(u.datum, '%d.%m.%Y'), u.name, u.strasse, u.plz, u.ort, u.land, if(u.briefbestellt != '0000-00-00', 'ja', '-'), IF(u.status = 'gueltigmarkieren', 'gültig markiert', IF(u.status = 'online', 'erfolgreich geprüft', u.status)), u.id FROM ustprf u"; - - $count = "SELECT COUNT(u.id) FROM ustprf u WHERE $where"; - break; - - case 'adresse_ustprf_protokoll': - $allowed['adresse'] = array('ustprf'); - - $heading = array('Datum / Zeit', 'Bemerkung', 'Bearbeiter', ''); - $width = array('18%', '56%', '25%', '1%'); - - $findcols = array('u.zeit', 'u.bemerkung', 'u.bearbeiter', 'u.id'); - $searchsql = array("DATE_FORMAT(u.zeit, '%d.%m.%Y %H:%i:%s')", 'u.bemerkung', 'u.bearbeiter'); - - $defaultorder = 1; - $defaultorderdesc = 1; - - //$ustprfid = 0; - $ustprfid = $app->Secure->GetGET('more_data1'); - - $where = " u.ustprf_id = '$ustprfid'"; - - $sql = "SELECT SQL_CALC_FOUND_ROWS u.id, DATE_FORMAT(u.zeit, '%d.%m.%Y %H:%i:%s'), IF(u.daten != '', CONCAT(u.bemerkung, '
', u.daten,''), u.bemerkung), u.bearbeiter, u.id FROM ustprf_protokoll u"; - - $count = "SELECT COUNT(u.id) FROM ustprf_protokoll u WHERE $where"; - } - - $erg = []; - foreach($erlaubtevars as $k => $v) { - if(isset($$v)){ - $erg[$v] = $$v; - } - } - return $erg; - } - - /** - * Adresse constructor. - * - * @param Application $app - * @param bool $intern - */ - public function __construct($app, $intern = false) { - $this->app=$app; - if($intern){ - return; - } - - $this->app->ActionHandlerInit($this); - - $this->app->ActionHandler("create","AdresseCreate"); - $this->app->ActionHandler("edit","AdresseEdit"); - $this->app->ActionHandler("getid","AdresseGetid"); - $this->app->ActionHandler("open","AdresseOpen"); - $this->app->ActionHandler("list","AdresseList"); - $this->app->ActionHandler("suche","AdresseSuche"); - $this->app->ActionHandler("delete","AdresseDelete"); - $this->app->ActionHandler("ustprf","AdresseUstprf"); - $this->app->ActionHandler("lieferantvorlage","AdresseLieferantvorlage"); - $this->app->ActionHandler("kundevorlage","AdresseKundevorlage"); - $this->app->ActionHandler("zeiterfassung","AdresseZeiterfassung"); - $this->app->ActionHandler("abrechnungzeit","AdresseAbrechnungzeit"); - $this->app->ActionHandler("abrechnungzeitabgeschlossen","AdresseAbrechnungzeitabgeschlossen"); - $this->app->ActionHandler("abrechnungzeitdelete","AdresseAbrechnungzeitdelete"); - $this->app->ActionHandler("pdf","AdresseStammblatt"); - - $this->app->ActionHandler("lieferadresse","AdresseLieferadresse"); - $this->app->ActionHandler("lieferadresseneditpopup","AdresseLieferadressenEditPopup"); - $this->app->ActionHandler("ansprechpartner","AdresseAnsprechpartner"); - $this->app->ActionHandler("ansprechpartnereditpopup","AdresseAnsprechpartnerEditPopup"); - $this->app->ActionHandler("ansprechpartnerpopup","AdresseAnsprechpartnerPopup"); - - $this->app->ActionHandler("accounts","AdresseAccounts"); - - - $this->app->ActionHandler("adressestammdatenpopup","AdresseStammdatenLieferadressePopup"); - $this->app->ActionHandler("ansprechpartnerlieferadressepopup","AdresseAnsprechpartnerLieferadressePopup"); - $this->app->ActionHandler("lieferadressepopup","AdresseLieferadressePopup"); - $this->app->ActionHandler("ustpopup","AdresseUSTPopup"); - $this->app->ActionHandler("rollen","AdresseRollen"); - $this->app->ActionHandler("gruppen","AdresseGruppen"); - $this->app->ActionHandler("kontakthistorie","AdresseKontakthistorie"); - $this->app->ActionHandler("kontakthistorieeditpopup","AdresseKontakthistorieEditPopup"); - $this->app->ActionHandler("rolecreate","AdresseRolleAnlegen"); - $this->app->ActionHandler("rolledatum","AdresseRolleDatum"); - $this->app->ActionHandler("roledel","AdresseRolleLoeschen"); - $this->app->ActionHandler("addposition","AdresseAddPosition"); - $this->app->ActionHandler("suchmaske","AdresseSuchmaske"); - $this->app->ActionHandler("dateien","AdresseDateien"); - $this->app->ActionHandler("brief","AdresseBrief"); - $this->app->ActionHandler("briefdelete","AdresseBriefDelete"); - $this->app->ActionHandler("briefpdf","AdresseBriefPDF"); - $this->app->ActionHandler("briefeditpopup","AdresseBriefEditPopup"); - - $this->app->ActionHandler("saverolle", "AdresserolleSave"); - - $this->app->ActionHandler("brieferstellen","AdresseBriefErstellen"); - $this->app->ActionHandler("briefpreview","AdresseBriefPreview"); - $this->app->ActionHandler("briefbearbeiten","AdresseBriefBearbeiten"); - $this->app->ActionHandler("briefkorrpdf", "AdresseKorrBriefPdf"); - $this->app->ActionHandler("briefkorrdelete", "AdresseKorrBriefDelete"); - $this->app->ActionHandler("briefdrucken", "AdresseBriefDrucken"); - - - $this->app->ActionHandler("email","AdresseEmail"); - $this->app->ActionHandler("belege","AdresseBelege"); - $this->app->ActionHandler("positioneneditpopup","AdresseArtikelEditPopup"); - $this->app->ActionHandler("emaileditpopup","AdresseEmailEditPopup"); - $this->app->ActionHandler("artikel","AdresseArtikelPosition"); - $this->app->ActionHandler("lieferantartikel","AdresseLieferantArtikel"); - $this->app->ActionHandler("kundeartikel","AdresseKundeArtikel"); - $this->app->ActionHandler("delartikel","DelArtikel"); - $this->app->ActionHandler("upartikel","UpArtikel"); - $this->app->ActionHandler("downartikel","DownArtikel"); - - $this->app->ActionHandler("rolledelete","AdresseRolleDelete"); - $this->app->ActionHandler("artikeleditpopup","AdresseArtikelEditPopup"); - $this->app->ActionHandler("kontakthistorie","AdresseKontaktHistorie"); - $this->app->ActionHandler("offenebestellungen","AdresseOffeneBestellungen"); - $this->app->ActionHandler("verbindlichkeiten","AdresseVerbindlichkeiten"); - $this->app->ActionHandler("adressebestellungmarkieren","AdresseBestellungMarkiert"); - $this->app->ActionHandler("autocomplete","AdresseAutoComplete"); - - $this->app->ActionHandler("lohn","AdresseLohnStundensatzUebersicht"); - $this->app->ActionHandler("stundensatz","AdresseStundensatz"); - $this->app->ActionHandler("stundensatzedit","AdresseStundensatzEdit"); - $this->app->ActionHandler("stundensatzdelete","AdresseStundensatzDelete"); - $this->app->ActionHandler("createdokument","AdresseCreateDokument"); - $this->app->ActionHandler("newkontakt","AdresseNewKontakt"); - $this->app->ActionHandler("delkontakt","AdresseDelKontakt"); - $this->app->ActionHandler("minidetail","AdresseMiniDetailZeit"); - $this->app->ActionHandler("minidetailadr","AdresseMiniDetailAdr"); - $this->app->ActionHandler("minidetailbrief","AdresseMiniDetailBrief"); - $this->app->ActionHandler("korreseditpopup","AdresseKorressEditPopup"); - $this->app->ActionHandler("sepamandat","AdresseSEPAMandat"); - - $this->app->ActionHandler("verein","AdresseVerein"); - - $this->app->ActionHandler("removeemailanhang","Adresseremoveemailanhang"); - $this->app->ActionHandler("downloaddatei", "AdresseDownloadDatei"); - - - $this->app->ActionHandler("minidetaillieferadressen","AdresseMinidetailLieferadressen"); - $this->app->ActionHandler("minidetailansprechpartner","AdresseMinidetailAnsprechpartner"); - - $id = $this->app->Secure->GetGET('id'); - //$nummer = $this->app->Secure->GetPOST("nummer"); - - //if($nummer=="") - //$name = $this->app->DB->Select("SELECT CONCAT(name,'  ', - if($id > 0){ - $nummer = $this->app->DB->Select("SELECT CONCAT( - if(kundennummer!='',CONCAT('Kunde: ',kundennummer),''), - if(lieferantennummer!='',CONCAT(' Lieferant: ',lieferantennummer),'')) FROM adresse WHERE id='$id' AND geloescht=0 LIMIT 1"); - }else{ - $nummer = ''; - } - - - if(is_numeric($id)){ - $name = $this->app->DB->Select("SELECT name FROM adresse WHERE id='$id' AND geloescht=0 LIMIT 1"); - } - - // else - // $name = $nummer; - - if(!empty($name)){ - $this->app->Tpl->SetText('UEBERSCHRIFT', 'Adresse von: ' . $name); - } - else{ - $this->app->Tpl->SetText('UEBERSCHRIFT', 'Adressen'); - } - - $this->app->Tpl->SetText('KURZUEBERSCHRIFT','Adressen'); - if(isset($name) && isset($nummer) && $name!='' && $nummer!=''){ - $this->app->Tpl->SetText('KURZUEBERSCHRIFT2', "$name ($nummer)"); - } - else{ - $this->app->Tpl->SetText('KURZUEBERSCHRIFT2', !empty($name) ? $name : ''); - } - - if(isset($name)){ - $this->app->Tpl->SetText('ANZEIGENUMMER',$name); - } - if(isset($nummer)){ - $this->app->Tpl->SetText('ANZEIGENAMEDE',' '.$nummer); - } - - $this->app->Tpl->Set('FARBE','[FARBE1]'); - - $this->app->erp->CheckColumn('email', 'varchar(255)', 'adresse_accounts', 'NOT NULL'); - $this->app->erp->CheckColumn('notiz', 'text', 'adresse_accounts', 'NOT NULL'); - - $this->app->erp->Headlines('Adressen'); - - $this->app->ActionHandlerListen($app); - } - - public function Install() - { - $this->app->erp->RegisterHook('supersearch_detail', 'adresse', 'AdresseSupersearchDetail'); - } - - /** - * @param \Xentral\Widgets\SuperSearch\Query\DetailQuery $detailQuery - * @param \Xentral\Widgets\SuperSearch\Result\ResultDetail $detailResult - * - * @return void - */ - public function AdresseSupersearchDetail($detailQuery, $detailResult) - { - if ($detailQuery->getGroupKey() !== 'addresses') { - return; - } - - $adresseId = $detailQuery->getItemIdentifier(); - $sql = sprintf( - "SELECT a.id, a.name, a.ansprechpartner, a.kundennummer, a.lieferantennummer FROM `adresse` AS `a` WHERE a.id = '%s' LIMIT 1", - $this->app->DB->real_escape_string($adresseId) - ); - $adresse = $this->app->DB->SelectRow($sql); - if (empty($adresse)) { - return; - } - - $title = $adresse['name']; - if (!empty($adresse['ansprechpartner'])) { - $title .= ' ' . $adresse['ansprechpartner']; - } - if (!empty($adresse['kundennummer'])) { - $title .= ' Kunde ' . $adresse['kundennummer'] . ''; - } - if (!empty($adresse['lieferantennummer'])) { - $title .= ' Lieferant ' . $adresse['lieferantennummer'] . ''; - } - $detailResult->setTitle($title); - $detailResult->addButton('Adresse Details', sprintf('index.php?module=adresse&action=edit&id=%s', $adresse['id'])); - $detailResult->setMiniDetailUrl(sprintf('index.php?module=adresse&action=minidetailadr&id=%s', $adresse['id'])); - } - - - - public function AdresseDownloadDatei() - { - $id = (int)$this->app->Secure->GetGET('id'); - if($this->app->DB->Select("SELECT id FROM datei_stichwoerter where datei = '$id' AND subjekt like 'anhang' and objekt like 'dokument' LIMIT 1")) - { - $this->app->erp->SendDatei($id); - } else { - header("Content-Disposition: attachment; filename=\"Fehler.txt\""); - } - $this->app->ExitXentral(); - } - - public function Adresseremoveemailanhang() - { - $res['status'] = false; - $datei = (int)$this->app->Secure->GetGET('id'); - if($datei) - { - $checkstichwort = $this->app->DB->Select("SELECT datei FROM datei_stichwoerter WHERE datei = '$datei' AND subjekt like 'anhang' and objekt like 'dokument' LIMIT 1"); - if($checkstichwort) - { - $this->app->DB->Delete("DELETE FROM datei_version WHERE datei='$datei'"); - $this->app->DB->Delete("DELETE FROM datei_stichwoerter WHERE datei='$datei'"); - $this->app->DB->Update("UPDATE datei SET geloescht=1 WHERE id='$datei'"); - $res['status'] = true; - } - } - echo json_encode($res); - $this->app->ExitXentral(); - } - - public function AdresseMiniDetailBrief($parsetarget = '', $menu = true) - { - $doppelteids = $this->app->Secure->GetGET('id'); - $ids = preg_split('/\-/',$doppelteids); - if(count($ids) > 1) - { - $typ = (int)$ids[0]; - $id = (int)$ids[1]; - switch($typ) - { - case '1': - - $this->AdresseBriefPreview('dokumente',$id,false); - break; - case '2': - - $this->AdresseBriefPreview('dokumente_send',$id,false); - break; - - case '5': - - $this->AdresseBriefPreview('wiedervorlage',$id,false); - break; - case '6': - $this->AdresseBriefPreview('kalender',$id,false); - break; - - } - - } - $this->app->ExitXentral(); - } - - public function AdresseKorressEditPopup() - { - // nach page inhalt des dialogs ausgeben - if (class_exists('WidgetDokumente')){ - $widget = new WidgetDokumente($this->app,'PAGE'); - //$sid = $this->app->DB->Select("SELECT adresse FROM abrechnungsartikel WHERE id='$id' LIMIT 1"); - //$widget->form->SpecialActionAfterExecute("close_refresh", - // "index.php?module=adresse&action=artikel&id=$sid"); - $widget->Edit(); - $this->app->BuildNavigation=false; - } - } - - public function AdresseMiniDetailAdr($parsetarget = '', $menu = true) - { - $id = (int)$this->app->Secure->GetGET('id'); - $adr = $this->app->DB->SelectRow("SELECT adr.*, DATE_FORMAT(adr.mandatsreferenzdatum, '%e.%m.%Y') AS mandatsreferenzdatumd FROM adresse AS adr WHERE adr.id = ".$id." limit 1"); - if(!empty($adr)) - { - $this->app->Tpl->Set('EMAIL',$adr['email']); - $this->app->Tpl->Set('MOBIL',$adr['mobil']); - $this->app->Tpl->Set('MARKETINGSPERRE',($adr['marketingsperre']==1?"JA":"NEIN")); - $this->app->Tpl->Set('TELEFAX',$adr['telefax']); - $this->app->Tpl->Set('TELEFON',$adr['telefon']); - $this->app->Tpl->Set('ORT',$adr['ort']); - $this->app->Tpl->Set('LAND',$adr['land']); - $this->app->Tpl->Set('PLZ',$adr['plz']); - $this->app->Tpl->Set('STRASSE',$adr['strasse']); - $this->app->Tpl->Set('ANSPRECHPARTNERNAME',$adr['ansprechpartner']); - - $this->app->Tpl->Set('ZAHLUNGSWEISE',$adr['zahlungsweise']); - $this->app->Tpl->Set('ZAHLUNGSZIELTAGE',$adr['zahlungszieltage']); - $this->app->Tpl->Set('ZAHLUNGSZIELTAGESKONTO',$adr['zahlungszieltage']); - $this->app->Tpl->Set('ZAHLUNGSZIELTAGESKONTO',$adr['zahlungszieltageskonto']); - $this->app->Tpl->Set('ZAHLUNGSZIELSKONTO',$adr['zahlungszielskonto']); - $this->app->Tpl->Set('KUNDENNUMMERLIEFERANT',$adr['kundennummerlieferant']); - $this->app->Tpl->Set('ZAHLUNGSWEISELIEFERANT',$adr['zahlungsweiselieferant']); - $this->app->Tpl->Set('ZAHLUNGSZIELTAGELIEFERANT',$adr['zahlungszieltagelieferant']); - $this->app->Tpl->Set('ZAHLUNGSZIELTAGESKONTOLIEFERANT',$adr['zahlungszieltagelieferant']); - $this->app->Tpl->Set('ZAHLUNGSZIELTAGESKONTOLIEFERANT',$adr['zahlungszieltageskontolieferant']); - $this->app->Tpl->Set('ZAHLUNGSZIELSKONTOLIEFERANT',$adr['zahlungszielskontolieferant']); - $this->app->Tpl->Set('VERSANDARTLIEFERANT', $adr['versandartlieferant']); - - - $this->app->Tpl->Set('INHABER',$adr['inhaber']); - $this->app->Tpl->Set('BANK',$adr['bank']); - $this->app->Tpl->Set('SWIFT',$adr['swift']); - $this->app->Tpl->Set('IBAN',$adr['iban']); - $this->app->Tpl->Set('MANDATREFERENZ',$adr['mandatsreferenz']); - $this->app->Tpl->Set('ZAHLUNGSZIELSKONTOLIEFERANT',$adr['zahlungszielskontolieferant']); - $this->app->Tpl->Set('MANDATREFERENZART',$adr['mandatsreferenzart']); - $this->app->Tpl->Set('MANDATSREFERENZDHART',$adr['mandatsreferenzdhart']); - $this->app->Tpl->Set('MANDATSREFERENZDATUM',$adr['mandatsreferenzdatumd']); - $this->app->Tpl->Set('MANDATSREFERENZAENDERUNG',($adr['mandatsreferenzaenderung']?'ja':'nein')); - $this->app->Tpl->Set('WAEHRUNG',$adr['waehrung']); - - $table = new EasyTable($this->app); - $table->Query("SELECT a.name, a.bereich, a.email, a.telefon, a.telefax, a.mobil FROM ansprechpartner a WHERE adresse='$id' AND a.name!='Neuer Datensatz' ORDER by id DESC"); - $table->DisplayNew('ANSPRECHPARTNER','Mobil','noAction'); - - $table = new EasyTable($this->app); - $table->Query("SELECT a.subjekt as Rolle, - if(a.objekt='','ALLE',a.objekt) as Zuordnung, - if(a.objekt='Projekt',if(a.parameter='','ALLE',p.abkuerzung),CONCAT(g.name,' ',g.kennziffer)) as auswahl, - DATE_FORMAT(a.von,'%d.%m.%Y') as seit, if(a.bis='0000-00-00','aktuell',DATE_FORMAT(a.bis,'%d.%m.%Y')) as bis - FROM adresse_rolle a LEFT JOIN projekt p ON a.parameter=p.id - LEFT JOIN gruppen g ON g.id=a.parameter - WHERE a.adresse='$id'"); - $table->DisplayNew('ROLLEN','Bis','noAction'); - - - $table2 = new EasyTable($this->app); - $table2->Query("SELECT if(l.standardlieferadresse,CONCAT('',l.name,' (Standardlieferadresse)'),l.name) as name2, l.strasse, - l.land, l.plz, l.ort, l.telefon,l.email FROM lieferadressen l where l.adresse='". $id . "' AND l.name!='Neuer Datensatz'" ); - $table2->DisplayNew('LIEFERANTEN','Email','noAction'); - - $table3 = new EasyTable($this->app); - $table3->Query($this->GetAddressCrmSql($id, 15)); - $table3->DisplayNew('CRMDATEIEN','PDF','noAction'); - } - if($parsetarget=='') - { - $this->app->Tpl->Output('adresse_minidetail.tpl'); - $this->app->ExitXentral(); - } - $this->app->Tpl->Parse($parsetarget,'adresse_minidetail.tpl'); - } - - - public function AdresseStammblatt() - { - $id = $this->app->Secure->GetGET('id'); - $projekt = ''; - if(class_exists('AdressstammblattPDFCustom')) - { - $Brief = new AdressstammblattPDFCustom($this->app,$projekt); - }else{ - $Brief = new AdressstammblattPDF($this->app,$projekt); - } - - $Brief->GetAdressstammblatt($id); - $Brief->displayDocument(); - $this->app->ExitXentral(); - } - - - - function AdresseMiniDetailZeit() { - - $id = $this->app->Secure->GetGET('id'); - - - if(strpos($_SERVER['HTTP_REFERER'],'action=brief')!==false) { - - $data = explode('||', $id); - /* - echo '
';
-         print_r($data);
-         echo '
'; - */ - - if (isset($data[1])) { - - $query = ''; - - switch ($data[1]) { - case 'dokumente': - $query .= ' - SELECT - von as personVon, - content as content, - DATE_FORMAT(datum, "%d.%m.%Y") as datum - FROM - dokumente - WHERE - id = ' . $data[0] . ' - '; - break; - case 'dokumente_send': - $query .= ' - SELECT - bearbeiter as personVon, - text as content, - DATE_FORMAT(zeit, "%d.%m.%Y") as datum - FROM - dokumente_send - WHERE - id = ' . $data[0] . ' - '; - break; - case 'ticket_nachricht': - $query .= ' - SELECT - verfasser as personVon, - text as content, - DATE_FORMAT(zeit, "%d.%m.%Y") as datum - FROM - ticket_nachricht - WHERE - id = ' . $data[0] . ' - '; - break; - case 'emailbackup_mails': - $query .= ' - SELECT - sender as personVon, - if(action_html!="",action_html,action) as content, - DATE_FORMAT(empfang, "%d.%m.%Y") as datum - FROM - emailbackup_mails - WHERE - id = ' . $data[0] . ' - '; - break; - default: - $this->app->ExitXentral(); - break; - } - - $res = $this->app->DB->SelectRow($query); - - if ($res) { - - echo ''; - - echo ''; - echo ''; - echo ''; - echo ''; - - echo ''; - echo ''; - echo ''; - echo ''; - - echo ''; - echo ''; - echo ''; - echo ''; - - echo '
Datum:' . $res['datum'] . '
Von:' . $res['personVon'] . '
Text:' . nl2br($res['content']) . '
'; - - } - - /* - echo '
';
-           print_r($query);
-           print_r($res);
-           echo '
'; - */ - - - } - - - //echo $id; - - } else { - - - $tmp = $this->app->DB->SelectArr("SELECT * FROM zeiterfassung WHERE id='$id'"); - $tmp = $tmp[0]; - $teilprojekt = $this->app->DB->Select("SELECT aufgabe FROM arbeitspaket WHERE id='".$tmp[arbeitspaket]."'"); - - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - echo '
Ort:'.$tmp['ort'].'
Tätigkeit:'.$tmp['aufgabe'].'
Beschreibung:'.nl2br($tmp['beschreibung']).'
Teilprojekt:'.$teilprojekt.'
Kostenstelle:'.$tmp['kostenstelle'].'
Verrechnungsart:'.$tmp['verrechnungsart'].'
'; - - } - - $this->app->ExitXentral(); - } - - function AdresseAbrechnungzeitabgeschlossen() - { - $sid = $this->app->Secure->GetPOST('sid'); - $id = $this->app->Secure->GetGET('id'); - if($sid > 0){ - $this->app->DB->Update("UPDATE zeiterfassung SET ist_abgerechnet='1', abgerechnet='1' WHERE id='$sid' AND adresse_abrechnung='$id' LIMIT 1"); - } - $this->AdresseAbrechnungzeit(); - } - - - function AdresseAbrechnungzeitdelete() - { - $sid = $this->app->Secure->GetGET('sid'); - $id = $this->app->Secure->GetGET('id'); - if($sid > 0){ - $this->app->DB->Delete("DELETE FROM zeiterfassung WHERE id='$sid' AND adresse_abrechnung='$id' LIMIT 1"); - } - $this->AdresseAbrechnungzeit(); - } - - - - function AdresseZeiterfassung() - { - $this->AdresseMenu(); - $this->app->Tpl->Add('OFFENE','
'); - $this->app->YUI->TableSearch('OFFENE','zeiterfassungmitarbeiter'); - - $id = $this->app->Secure->GetGET('id'); - - $back=$this->app->erp->base64_url_encode("index.php?module=adresse&action=abrechnungzeit&id=$id"); - - $this->app->Tpl->Set('BACK',$back); - $this->app->Tpl->Set('ID',$id); - - $this->app->Tpl->Parse('PAGE','adresse_zeiterfassung.tpl'); - } - - - - function AdresseAbrechnungzeit() - { - $this->AdresseMenu(); - $this->app->Tpl->Set('VERS','Professional'); - $this->app->Tpl->Set('MODUL','Professional'); - $this->app->Tpl->Parse('PAGE', 'only_version.tpl'); - } - - - function AdresseCreateDokument() - { - $id = $this->app->Secure->GetGET('id'); - $cmd = $this->app->Secure->GetGET('cmd'); - - $relocation = true; - - switch($cmd) - { - case 'auftrag': $newid = $this->app->erp->CreateAuftrag($id); $this->app->erp->LoadAuftragStandardwerte($newid,$id); break; - case 'angebot': $newid = $this->app->erp->CreateAngebot($id); $this->app->erp->LoadAngebotStandardwerte($newid,$id); break; - case 'rechnung': $newid = $this->app->erp->CreateRechnung($id); $this->app->erp->LoadRechnungStandardwerte($newid,$id); break; - case 'lieferschein': $newid = $this->app->erp->CreateLieferschein($id); $this->app->erp->LoadLieferscheinStandardwerte($newid,$id); break; - case 'gutschrift': $newid = $this->app->erp->CreateGutschrift($id); $this->app->erp->LoadGutschriftStandardwerte($newid,$id); break; - case 'bestellung': $newid = $this->app->erp->CreateBestellung($id); $this->app->erp->LoadBestellungStandardwerte($newid,$id);break; - default: $relocation = false; - } - - if($relocation) - { - $this->app->Location->execute("index.php?module=$cmd&action=edit&id=$newid"); - } - - } - - function AdresseLohnStundensatzUebersicht() - { - $this->AdresseMenu(); - - if(method_exists($this->app->erp,'GetTmpMessageOut')) - { - $this->app->Tpl->Set('MESSAGE',$this->app->erp->GetTmpMessageOut()); - }else{ - $msg = $this->app->erp->base64_url_decode($this->app->Secure->GetGET("msg")); - if($msg!='') { - $this->app->Tpl->Set('MESSAGE', $msg); - } - } - $this->AdresseLohn(); - $this->AdresseStundensatz(); - - $this->app->Tpl->Parse('PAGE','adresse_lohn.tpl'); - } - - function AdresseLohn() - { - $id = $this->app->Secure->GetGET('id'); - if(is_numeric($id)) - { - $this->app->YUI->TableSearch('TAB1','adresselohn'); - }else{ - $this->app->Tpl->Set('MESSAGE', '
Mitarbeiter-ID konnte nicht gefunden werden.
'); - } - - } - - function AdresseStundensatz($id) - { - $id = $this->app->Secure->GetGET('id'); - - if(is_numeric($id)) - { - $stundensatz = $this->app->Secure->GetPOST('Stundensatz_StandardStundensatz'); - $submit = $this->app->Secure->GetPOST('Stundensatz_Submit'); - - // Speichere neuen Stundensatz - if($submit!='') - { - $this->app->DB->Insert("INSERT INTO stundensatz (adresse, satz, typ, projekt, datum) VALUES ('$id', '$stundensatz', 'Standard', '0', NOW())"); - $this->app->Tpl->Set('MESSAGE', '
Der neue Standard-Stundensatz wurde übernommen.
'); - } - - // Hole neuesten Stundensatz - $standard = $this->app->DB->Select("SELECT satz - FROM stundensatz - WHERE typ='standard' - AND adresse='$id' - ORDER BY datum DESC LIMIT 1"); - $this->app->Tpl->Set('STANDARDSTUNDENSATZ', $standard); - - // Fülle Projekt-Tabelle - $this->app->YUI->TableSearch('TAB2',"adressestundensatz"); - }else - $this->app->Tpl->Set('MESSAGE', "
Mitarbeiter-ID konnte nicht gefunden werden.
"); - } - - function AdresseStundensatzEdit() - { - $this->AdresseMenu(); - - $user = $this->app->Secure->GetGET('user'); - $id = $this->app->Secure->GetGET('id'); - $projekt = $this->app->Secure->GetGET('projekt'); - - $satz = $this->app->Secure->GetPOST('Stundensatz_Angepasst'); - $adapt = $this->app->Secure->GetPOST('Stundensatz_Adapt'); - $cancel = $this->app->Secure->GetPOST('Stundensatz_Angepasst_Cancel'); - $submit = $this->app->Secure->GetPOST('Stundensatz_Angepasst_Submit'); - - - if($cancel!='') - { - $this->app->Location->execute("index.php?module=adresse&action=lohn&id=$user"); - } - - - // Hole neuesten Standard-Stundensatz - $standard = $this->app->DB->Select("SELECT satz - FROM stundensatz - WHERE typ='standard' - AND adresse='$user' - ORDER BY datum DESC LIMIT 1"); - - if(is_numeric($id)) - { - // Stundensatz existiert bereits, hole Daten - $stundensatz = $this->app->DB->SelectArr("SELECT * FROM stundensatz WHERE id='$id' LIMIT 1"); - $this->app->Tpl->Set('STUNDENSATZANGEPASST', $stundensatz[0][satz]); - - if($submit!='') - { - $projekt = $this->app->DB->Select("SELECT projekt FROM stundensatz WHERE id='$id' LIMIT 1"); - - if($adapt!=''){ - $this->app->DB->Update("UPDATE stundensatz SET satz='$satz' WHERE adresse='$user' AND projekt='$projekt'"); - } - - $this->app->DB->Insert("INSERT INTO stundensatz (adresse, satz, typ, projekt, datum) - VALUES ('$user', '$satz', 'Angepasst', '$projekt', NOW())"); - $this->app->Location->execute("index.php?module=adresse&action=lohn&id=$user&msg=$msg"); - } - - - $this->app->Tpl->Set('MODE', 'Stundensatz editieren'); - }else - { - // Stundensatz existiert noch nicht - $this->app->Tpl->Set('STUNDENSATZANGEPASST', $standard); - $this->app->Tpl->Set('ADAPTDISABLED', 'DISABLED'); - - if($submit!='') - { - // Schreibe neuen Satz - $this->app->DB->Insert("INSERT INTO stundensatz (adresse, satz, typ, projekt, datum) - VALUES ('$user', '$satz', 'Angepasst', '$projekt', NOW())"); - - $msg = $this->app->erp->base64_url_encode('
Der Stundensatz wurde erfolgreich gespeichert.
'); - $this->app->Location->execute("index.php?module=adresse&action=lohn&id=$user&msg=$msg"); - } - - $this->app->Tpl->Set('MODE', 'Stundensatz erstellen'); - } - - $this->app->Tpl->Parse('PAGE', 'adresse_stundensatz_edit.tpl'); - } - - function AdresseStundensatzDelete() - { - $user = $this->app->Secure->GetGET('user'); - $id = $this->app->Secure->GetGET('id'); - - if(is_numeric($id)){ - $this->app->DB->Delete("DELETE FROM stundensatz WHERE id='$id' LIMIT 1"); - } - else{ - $msg = $this->app->erp->base64_url_encode('
Stundensatz-ID konnte nicht gefunden werden. Standard-Stundensätze können nicht gelöscht werden.
'); - } - - $this->app->Location->execute("index.php?module=adresse&action=lohn&id=$user&msg=$msg"); - } - - - - function AdresseAutoComplete() - { - - $table = $this->app->Secure->GetGET('table'); - $filter = $this->app->Secure->GetGET('filter'); - $name = $this->app->Secure->GetGET('name'); - $query = $this->app->Secure->GetGET('query'); - $colsstring = $this->app->erp->base64_url_decode($this->app->Secure->GetGET('colsstring')); - $returncol= $this->app->erp->base64_url_decode($this->app->Secure->GetGET('returncol')); - if($table==''){ - $table = $name; - } - - if($filter==='kunde'){ - $filter = "LEFT JOIN adresse_rolle ON adresse_rolle.adresse=adresse.id WHERE adresse_rolle.subjekt='Kunde' AND adresse.kundennummer!=0 AND adresse.geloescht=0 AND adresse.name LIKE '%$query%'"; - } - elseif($filter==='mitarbeiter'){ - $filter = "LEFT JOIN adresse_rolle ON adresse_rolle.adresse=adresse.id WHERE (adresse_rolle.subjekt='Mitarbeiter' OR adresse_rolle.subjekt='Externer Mitarbeiter') AND adresse.mitarbeiternummer!=0 AND adresse.geloescht=0 - AND adresse.name LIKE '%$query%'"; - } - elseif($filter==='lieferant'){ - $filter = "LEFT JOIN adresse_rolle ON adresse_rolle.adresse=adresse.id WHERE adresse_rolle.subjekt='Lieferant' AND adresse.geloescht=0 AND adresse.name LIKE '%$query%'"; - }elseif($filter==='kunde_auftrag'){ - $filter = "LEFT JOIN adresse_rolle ON adresse_rolle.adresse=adresse.id LEFT JOIN auftrag ON auftrag.adresse=adresse.id WHERE adresse_rolle.subjekt='Kunde' AND ((auftrag.status='freigegeben' OR auftrag.status='storniert') OR (auftrag.vorkasse_ok=0 AND (auftrag.zahlungsweise='paypal' OR auftrag.zahlungsweise='vorkasse' OR auftrag.zahlungsweise='kreditkarte'))) AND adresse.geloescht=0 - AND adresse.name LIKE '%$query%'"; - }elseif($filter==='kunde_rechnung'){ - $filter = "LEFT JOIN adresse_rolle ON adresse_rolle.adresse=adresse.id LEFT JOIN rechnung ON rechnung.adresse=adresse.id WHERE adresse_rolle.subjekt='Kunde' AND rechnung.ist < rechnung.soll AND adresse.geloescht=0 AND adresse.name LIKE '%$query%'"; - }elseif($filter==='kunde_gutschrift'){ - $filter = "LEFT JOIN adresse_rolle ON adresse_rolle.adresse=adresse.id LEFT JOIN gutschrift ON gutschrift.adresse=adresse.id WHERE adresse_rolle.subjekt='Kunde' AND adresse.geloescht=0 AND adresse.name LIKE '%$query%'"; - }elseif($table==='artikel'){ - $filter = "WHERE name_de LIKE '%$query%'"; - }elseif(($filter=='' || $filter==='adresse') && $name==='adresse'){ - $filter = "WHERE adresse.geloescht=0 AND adresse.name LIKE '%$query%'"; - } - $arr = $this->app->DB->SelectArr("SELECT DISTINCT $colsstring, $returncol FROM $table $filter ORDER by 1 LIMIT 10"); - // echo "SELECT DISTINCT $colsstring, $returncol FROM $table $filter ORDER by 1"; - - $cols = explode(',',$colsstring); - foreach($arr as $key=>$value){ - //$tpl_end .= '{id:"'.$value[$returncol].'", cola:"'.$value[$cols[0]].'", colb:"'.$value[$cols[1]].'", colc:"'.$value[$cols[2]].'"},'; - echo $value[$returncol].'!*!'.$value[$cols[0]].' '.$value[$cols[1]].' '.$value[$cols[2]]."\n"; - //echo $value[$cols[0]].' '.$value[$cols[1]].' '.$value[$cols[2]]."\n"; - //echo $value[$cols[0]]."\n"; - } - - $this->app->ExitXentral(); - } - - - function AdresseDateien() - { - $id = $this->app->Secure->GetGET('id'); - $this->AdresseMenu(); - $this->app->Tpl->Add('UEBERSCHRIFT',' (Dateien)'); - $this->app->YUI->DateiUpload('PAGE','Adressen',$id); - } - - - function AdresseDelete() - { - $id = (int)$this->app->Secure->GetGET('id'); - - $checkuser = $this->app->DB->Select("SELECT count(id) FROM user WHERE adresse='$id'"); - $checkkassierer = $this->app->DB->Select("SELECT count(id) FROM pos_kassierer WHERE adresse='$id'"); - $checkabo = $this->app->DB->Select("SELECT COUNT(id) FROM abrechnungsartikel WHERE adresse = '$id'"); - - if($id > 0){ - $msg = ''; - if($checkuser > 0){ - $msg .= $this->app->erp->base64_url_encode("
Die Adresse ist noch mit einem Benutzer verlinkt und kann daher nicht gelöscht werden.
"); - }else if($checkkassierer){ - $msg .= $this->app->erp->base64_url_encode("
Die Adresse ist noch mit einem Kassierer verlinkt und kann daher nicht gelöscht werden.
"); - }else if($checkabo > 0){ - $msg .= $this->app->erp->base64_url_encode("
Die Adresse ist noch mit Abos verlinkt und kann daher nicht gelöscht werden.
"); - }else { - $this->app->DB->Update("UPDATE adresse SET geloescht='1',kundennummer=CONCAT('DEL-',kundennummer), lieferantennummer=CONCAT('DEL-',lieferantennummer), - mitarbeiternummer=CONCAT('DEL-',mitarbeiternummer) WHERE id='$id' LIMIT 1"); - - $this->app->DB->Update("DELETE FROM ansprechpartner WHERE adresse='$id'"); - $this->app->DB->Update("DELETE FROM lieferadressen WHERE adresse='$id'"); - $this->app->DB->Update("DELETE FROM adresse_rolle WHERE adresse='$id'"); - $this->app->DB->Update("DELETE FROM dokumente WHERE adresse='$id'"); - $this->app->DB->Update("DELETE FROM dokumente_send WHERE adresse='$id'"); - - $this->app->erp->ObjektProtokoll("adresse",$id,"adresse_delete","Adresse geloescht: $id"); - $this->app->erp->RunHook('address_delete', 1, $id); - - $msg = $this->app->erp->base64_url_encode("
Die Adresse wurde gelöscht!
"); - } - } - $this->app->Location->execute('index.php?module=adresse&action=list&msg='.$msg); - } - - - function AdresseRolleDatum() - { - $id = $this->app->Secure->GetGET('id'); - $sid = $this->app->Secure->GetPOST('sid'); - $von = $this->app->Secure->GetGET('von'); - $bis = $this->app->Secure->GetGET('bis'); - $von = $this->app->String->Convert($von,'%1.%2.%3','%3-%2-%1'); - $bis = $this->app->String->Convert($bis,'%1.%2.%3','%3-%2-%1'); - - $this->app->DB->Delete("UPDATE adresse_rolle SET von='$von', bis='$bis' WHERE id='$sid' AND adresse='$id' LIMIT 1"); - - $gruppe = $this->app->DB->Select("SELECT parameter FROM adresse_rolle WHERE id='$sid' AND adresse='$id' LIMIT 1"); - - if($gruppe > 0) - { - if($von!='--' && $bis!='--') - { - $this->app->DB->Update("UPDATE auftrag SET gruppe='$gruppe' WHERE datum<='$bis' AND datum >='$von' AND adresse='$id'"); - $this->app->DB->Update("UPDATE rechnung SET gruppe='$gruppe' WHERE datum<='$bis' AND datum >='$von' AND adresse='$id'"); - $this->app->DB->Update("UPDATE gutschrift SET gruppe='$gruppe' WHERE datum<='$bis' AND datum >='$von' AND adresse='$id'"); - } else if($von!='--' && $bis=='--') - { - $this->app->DB->Update("UPDATE auftrag SET gruppe='$gruppe' WHERE datum>='$von' AND adresse='$id'"); - $this->app->DB->Update("UPDATE rechnung SET gruppe='$gruppe' WHERE datum>='$von' AND adresse='$id'"); - $this->app->DB->Update("UPDATE gutschrift SET gruppe='$gruppe' WHERE datum>='$von' AND adresse='$id'"); - } - } - - $this->AdresseRollen(); - } - - - function AdresseGruppen() - { - $this->AdresseMenu(); - - $id = (int)$this->app->Secure->GetGET('id'); - $gid=(int)$this->app->Secure->GetPOST('gid'); - $value=(int)$this->app->Secure->GetPOST('value'); - - if($gid>0) - { - if($value=='1'){ - $this->app->erp->AddRolleZuAdresse($id, 'Mitglied', 'von','Gruppe', $gid); - }else{ - $this->app->DB->Delete("UPDATE adresse_rolle SET bis=DATE_SUB(NOW(),INTERVAL 1 DAY) WHERE parameter='$gid' AND adresse='$id' - AND (subjekt='Mitglied' OR subjekt='Kunde') AND objekt='Gruppe' AND bis = '0000-00-00'"); - } - $this->app->erp->RunHook('adresse_gruppen_change', 3, $id, $gid, $value); - $this->app->ExitXentral(); - } - - $this->app->YUI->TableSearch('TAB1','adresse_gruppen'); - - $this->app->Tpl->Parse('PAGE','adresse_gruppen.tpl'); - } - - - function AdresseRolleDelete() - { - $id = $this->app->Secure->GetGET('id'); - $sid = $this->app->Secure->GetGET('sid'); - if($sid > 0){ - $this->app->DB->Delete("DELETE FROM adresse_rolle WHERE id='$sid' AND adresse='$id' LIMIT 1"); - } - // $this->app->Secure->POST['rolleanlegen'] = "true"; - //$this->AdresseEdit(); - $this->AdresseRollen(); - //$this->app->Tpl->Set(AKTIV_TAB3,"selected"); - } - - function AdresseCreate() - { - $cmd = $this->app->Secure->GetGET('cmd'); - if($cmd === 'duplicate'){ - $error = false; - - $name = trim($this->app->Secure->GetPOST('name')); - $street = trim($this->app->Secure->GetPOST('street')); - $zipcode = trim($this->app->Secure->GetPOST('zipcode')); - $place = trim($this->app->Secure->GetPOST('place')); - - $where = ''; - - if($name !== ''){ - $where .= " name = '$name' AND"; - } - if($street !== ''){ - $where .= " strasse = '$street' AND"; - } - if($zipcode !== ''){ - $where .= " plz = '$zipcode' AND"; - } - if($place !== ''){ - $where .= " ort = '$place' AND"; - } - - if($where !== ''){ - $where = rtrim($where, 'AND'); - - $addressId = $this->app->DB->Select("SELECT id FROM adresse WHERE ".$where." LIMIT 1"); - if($addressId != '' && $addressId > 0){ - $error = true; - } - } - - header('Content-Type: application/json'); - echo json_encode($error); - $this->app->ExitXentral(); - } - - $this->app->ModuleScriptCache->IncludeJavascriptFiles('address', ['./classes/Modules/Address/www/js/address_create.js']); - - $this->app->erp->Headlines('Adresse anlegen'); - $this->app->Tpl->Set('TOPHEADING','Adresse anlegen'); - - $this->app->erp->MenuEintrag('index.php?module=adresse&action=list','Zurück zur Übersicht'); - - - parent::AdresseCreate(); - } - - - function AdresseSuche() - { - $this->app->erp->MenuEintrag('index.php?module=adresse&action=list','Übersicht'); - $this->app->erp->MenuEintrag('index.php?module=adresse&action=create','Neue Adresse anlegen'); - - $this->app->YUI->TableSearch('TAB1','adresse_suche'); - $this->app->Tpl->Parse('PAGE','adresse_suche.tpl'); - } - - function AdresseMenuList() - { - $this->app->erp->MenuEintrag('index.php?module=adresse&action=list','Übersicht'); - $this->app->erp->MenuEintrag('index.php?module=adresse&action=create','Neue Adresse anlegen'); - $this->app->erp->RunMenuHook('adresselist'); - } - - - function AdresseList() - { - $parameter = $this->app->User->GetParameter('table_filter_adresse'); - $parameter = json_decode($parameter, true); - - $this->AdresseMenuList(); - $zahlungsweisetext = null; - $zahlungsweisentabelle = $this->app->DB->SelectArr("SELECT type,bezeichnung FROM `zahlungsweisen` WHERE aktiv = 1 AND type <> '' AND bezeichnung <> ''"); - if($zahlungsweisentabelle) - { - foreach($zahlungsweisentabelle as $v) - { - $zahlungsweisetext[$v['type']] = $v['bezeichunng']; - } - } - - $zahlungsweisen_ = $this->app->DB->SelectArr(' - SELECT - zahlungsweise, zahlungsweiselieferant - FROM - adresse WHERE ifnull(geloescht, 0) = 0 AND (zahlungsweise <> \'\' OR zahlungsweiselieferant <> \'\') - GROUP BY - zahlungsweise, zahlungsweiselieferant - '); - $zahlungsweisen = null; - if($zahlungsweisen_) - { - foreach($zahlungsweisen_ as $v) - { - if($v['zahlungsweise'] != '' && (!is_array($zahlungsweisen) || !in_array($v['zahlungsweise'], $zahlungsweisen))){ - $zahlungsweisen[] = $v['zahlungsweise']; - } - if($v['zahlungsweiselieferant'] != '' && (!is_array($zahlungsweisen) || !in_array($v['zahlungsweiselieferant'],$zahlungsweisen))){ - $zahlungsweisen[] = $v['zahlungsweiselieferant']; - } - } - if($zahlungsweisen){ - sort($zahlungsweisen); - } - } - - - $zahlungsweiseStr = ''; - if ($zahlungsweisen) { - foreach ($zahlungsweisen as $zahlungsweise) { - $zahlungsweiseStr .= ''; - } - } - - $rollen = $this->app->DB->SelectArr(' - SELECT - * - FROM - adresse_rolle - GROUP BY - subjekt - '); - - $rollenStr = ''; - if ($rollen) { - foreach ($rollen as $rolle) { - $rollenStr .= ''; - } - } - - $gruppen = $this->app->DB->SelectArr("SELECT * FROM gruppen gr WHERE (art = 'gruppe' or art = 'preisgruppe') AND (projekt = 0 OR (1 ".$this->app->erp->ProjektRechte('gr.projekt')."))"); - - $gruppenStr = ''; - if ($gruppen) { - foreach ($gruppen as $gruppe) { - $gruppenStr .= ''; - } - } - - $laender = $this->app->erp->GetSelectLaenderliste(); - $laenderStr = ''; - foreach ($laender as $landKey => $land) { - $laenderStr .= ''; - } - - if( $this->app->erp->ModulVorhanden('verband') ) { - $verbandsnummer = ''; - $verbandsnummer .= ''; - $verbandsnummer .= 'Verbandsnummer:'; - $verbandsnummer .= ''; - $verbandsnummer .= ''; - $this->app->Tpl->Add('VERBANDSNUMMER',$verbandsnummer); - } - - $this->app->YUI->AutoComplete('projekt', 'projektname', 1); - $this->app->YUI->AutoComplete('name', 'adressename', 1); - $this->app->YUI->AutoComplete('kundennummer', 'kunde', 1); - $this->app->YUI->AutoComplete('vertrieb','adressegruppevertriebbearbeiter', 0, '&typ=vertrieb'); - $this->app->YUI->AutoComplete('innendienst','adressegruppevertriebbearbeiter', 0, '&typ=bearbeiter'); - $this->app->Tpl->Add('ZAHLUNGSWEISEN',$zahlungsweiseStr); - $this->app->Tpl->Add('ROLLEN',$rollenStr); - $this->app->Tpl->Add('GRUPPEN',$gruppenStr); - $this->app->Tpl->Add('LAENDER',$laenderStr); - $this->app->Tpl->Parse('TAB1','adresse_table_filter.tpl'); - - $this->app->YUI->TableSearch('TAB1','adressetabelle'); - if($this->app->erp->Firmendaten('schnellsuche')){ - $this->app->YUI->EnterSearch('SCHNELLSUCHE', 'adressetabelle'); - } - $this->app->Tpl->Parse('PAGE','adresseuebersicht.tpl'); - } - - - function AdresseMenu() - { - $id = $this->app->Secure->GetGET('id'); - - $nummer = $this->app->DB->Select("SELECT CONCAT( - if(kundennummer!='',CONCAT('Kunde: ',kundennummer),''), - if(lieferantennummer!='',CONCAT(' Lieferant: ',lieferantennummer),'')) FROM adresse WHERE id='$id' AND geloescht=0 LIMIT 1"); - - if(is_numeric($id)){ - $name = $this->app->DB->Select("SELECT name FROM adresse WHERE id='$id' AND geloescht=0 LIMIT 1"); - } - - if(isset($name) && $name!=''){ - $this->app->Tpl->SetText('UEBERSCHRIFT', 'Adresse von: ' . $name); - } - else{ - $this->app->Tpl->SetText('UEBERSCHRIFT', 'Adressen'); - } - - $this->app->Tpl->SetText('KURZUEBERSCHRIFT','Adressen'); - if(isset($name) && isset($nummer) && $name!='' && $nummer!=''){ - $this->app->Tpl->SetText('KURZUEBERSCHRIFT2', "$name ($nummer)"); - } - else{ - $this->app->Tpl->SetText('KURZUEBERSCHRIFT2', !empty($name) ? $name : ''); - } - - if(isset($name)){ - $this->app->Tpl->SetText('ANZEIGENUMMER',$name); - } - if(isset($nummer)){ - $this->app->Tpl->SetText('ANZEIGENAMEDE',' '.$nummer); - } - - $cmd = $this->app->Secure->GetPOST('cmd'); - - if($cmd==='crm') - { - $this->app->erp->MenuEintrag('index.php?module=crm&action=list','Zurück zur Übersicht'); - } - - $this->app->erp->MenuEintrag('index.php?module=adresse&action=create','Neue Adresse anlegen'); - - $this->app->erp->MenuEintrag("index.php?module=adresse&action=edit&id=$id",'Details'); - - $anzahldateien = $this->app->erp->AnzahlDateien('Adressen',$id); - if($anzahldateien > 0) { - $anzahldateien = ' ('.$anzahldateien.')'; - } else { - $anzahldateien=''; - } - - $this->app->erp->MenuEintrag("index.php?module=adresse&action=dateien&id=$id",'Dateien'.$anzahldateien); - - $count = ' - SELECT - SUM(anzahl) - FROM - ( - - ( - SELECT - COUNT(id) as anzahl - FROM - dokumente - WHERE - adresse_to = ' . (int)$id . ' - ) - - UNION ALL - - ( - SELECT - COUNT(id) as anzahl - FROM - dokumente_send - WHERE - adresse = ' . (int)$id . ' - )'; - if(1){//$this->app->erp->RechteVorhanden('ticket','list')){ - $count .= ' - UNION ALL - - ( - SELECT - COUNT(ticket.id) as anzahl - FROM - ticket - LEFT JOIN ticket_nachricht ON ticket.schluessel = ticket_nachricht.ticket - WHERE - ticket.adresse = ' . (int)$id . ' - )'; - } - - $count .= ' - UNION ALL - - ( - SELECT - COUNT(k.id) as anzahl - FROM - kalender_event k - LEFT JOIN adresse a2 ON k.adresseintern = a2.id - LEFT JOIN projekt p ON p.id=k.projekt - WHERE - k.adresse = ' . (int)$id . ' - - )'; - - - if($this->app->erp->RechteVorhanden('wiedervorlage','list')){ - $count .= ' - UNION ALL - - ( - SELECT - COUNT(id) as anzahl - FROM - wiedervorlage - WHERE - wiedervorlage.adresse = ' . (int)$id . ' - - )'; - } - $count .= ' - ) a - '; - - $anzahlcrm = 0; - if($id > 0){ - $anzahlcrm = $this->app->DB->Select($count); - } - - if($anzahlcrm > 0){ - $this->app->erp->MenuEintrag("index.php?module=adresse&action=brief&id=$id", "CRM ($anzahlcrm)"); - } - else{ - $this->app->erp->MenuEintrag("index.php?module=adresse&action=brief&id=$id", 'CRM'); - } - - if($this->app->erp->Version()!=='stock'){ - $this->app->erp->MenuEintrag("index.php?module=adresse&action=rollen&id=$id", 'Rollen'); - } - - $this->app->erp->MenuEintrag("index.php?module=adresse&action=gruppen&id=$id",'Gruppen'); - - - - if($this->app->erp->RechteVorhanden('verein','list') && $this->app->erp->Firmendaten('modul_verein')=='1'){ - $this->app->erp->MenuEintrag("index.php?module=adresse&action=verein&id=$id", 'Verein'); - } - - - // Ist Benutzer ein Mitarbeiter? - if(is_numeric($id)){ - $mitarbeiter = $this->app->DB->Select("SELECT id FROM adresse_rolle WHERE adresse='$id' AND subjekt='Mitarbeiter' LIMIT 1"); - } - if(is_numeric($mitarbeiter)) - { - //$this->app->erp->MenuEintrag("index.php?module=adresse&action=lohn&id=$id","Lohn"); - $this->app->erp->MenuEintrag("index.php?module=adresse&action=zeiterfassung&id=$id",'Zeit'); - } - - - $anzahlansp = $this->app->DB->Select("SELECT COUNT(id) FROM ansprechpartner WHERE adresse='$id'"); - if($anzahlansp>0) { - $anzahlansp = ' ('.$anzahlansp.')'; - } else { - $anzahlansp=''; - } - - $anzahllief = $this->app->DB->Select("SELECT COUNT(id) FROM lieferadressen WHERE adresse='$id'"); - if($anzahllief>0) { - $anzahllief = ' ('.$anzahllief.')'; - } else { - $anzahllief=''; - } - - $anzahlacc = $this->app->DB->Select("SELECT COUNT(id) FROM adresse_accounts WHERE adresse='$id'"); - if($anzahlacc>0) { - $anzahlacc = ' ('.$anzahlacc.')'; - } else { - $anzahlacc=''; - } - - $this->app->erp->MenuEintrag("index.php?module=adresse&action=ansprechpartner&id=$id",'Ansprechpart.'.$anzahlansp); - $this->app->erp->MenuEintrag("index.php?module=adresse&action=lieferadresse&id=$id",'Lieferadressen'.$anzahllief); - $this->app->erp->MenuEintrag("index.php?module=adresse&action=accounts&id=$id",'Accounts'.$anzahlacc); - - - if($this->app->erp->IsAdresseSubjekt($id,'Kunde')){ - $this->app->erp->MenuEintrag("index.php?module=adresse&action=belege&id=$id", 'Belege'); - } - - if($this->app->erp->Version()!=='stock'){ - $this->app->erp->MenuEintrag("index.php?module=adresse&action=kundeartikel&id=$id", 'Artikel'); - } - - if($this->app->erp->IsAdresseSubjekt($id,'Kunde')) - { - $this->app->erp->MenuEintrag("index.php?module=adresse&action=abrechnungzeit&id=$id",'Zeitkonto'); - if($this->app->erp->ModulVorhanden('rechnungslauf')) - { - $anzahlabos = $this->app->DB->Select("SELECT COUNT(id) FROM abrechnungsartikel WHERE adresse='$id' AND (enddatum = '0000-00-00' OR enddatum >= NOW())"); - if($anzahlabos>0){ - $this->app->erp->MenuEintrag("index.php?module=adresse&action=artikel&id=$id", "Abos ($anzahlabos)"); - } - else{ - $this->app->erp->MenuEintrag("index.php?module=adresse&action=artikel&id=$id", 'Abos '); - } - } - //$this->app->erp->MenuEintrag("index.php?module=adresse&action=ustprf&id=$id","USt"); - } - - if($this->app->erp->IsAdresseSubjekt($id,'Lieferant')) - { - $this->app->erp->MenuEintrag("index.php?module=adresse&action=lieferantartikel&id=$id",'Lieferprogramm'); - $this->app->erp->MenuEintrag("index.php?module=adresse&action=offenebestellungen&id=$id",'Bestellungen'); - $this->app->erp->MenuEintrag("index.php?module=adresse&action=verbindlichkeiten&id=$id",'Verbindlichkeiten'); - } - - - $this->app->erp->MenuEintrag("index.php?module=adresse&action=ustprf&id=$id",'Ust-ID Prf.'); - - $this->app->erp->RunMenuHook('adresse'); - } - - function AdresseKontaktHistorie() - { - $this->AdresseMenu(); - $this->app->Tpl->Add('UEBERSCHRIFT',' (Kontakthistorie)'); - $this->app->Tpl->Set('SUBSUBHEADING','Adressen'); - $id = $this->app->Secure->GetGET('id'); - - // neues arbeitspaket - $widget = new WidgetAnsprechpartner($this->app,'TAB2'); - $widget->form->SpecialActionAfterExecute('none', - "index.php?module=adresse&action=ansprechpartner&id=$id"); - $widget->Create(); - - - //Formula ansprechpartner - $table = new EasyTable($this->app); - $table->Query("SELECT name, bereich, telefon, email,id FROM ansprechpartner WHERE adresse='$id'"); - $table->DisplayNew('INHALT', "Bearbeiten"); - - // easy table mit arbeitspaketen YUI als template - $this->app->Tpl->Parse('TAB1','rahmen70.tpl'); - $this->app->Tpl->Set('AKTIV_TAB1','selected'); - $this->app->Tpl->Parse('PAGE','ansprechpartneruebersicht.tpl'); - } - - function AdresseKontaktHistorieEditPopup() - { - $frame = $this->app->Secure->GetGET('frame'); - $id = $this->app->Secure->GetGET('id'); - - if($frame=='false') - { - // hier nur fenster größe anpassen - $this->app->YUI->IframeDialog(600,320); - } else { - // nach page inhalt des dialogs ausgeben - $widget = new WidgetAnsprechpartner($this->app,'PAGE'); - $adresse = $this->app->DB->Select("SELECT adresse FROM ansprechpartner WHERE id='$id' LIMIT 1"); - $widget->form->SpecialActionAfterExecute('close_refresh', - "index.php?module=adresse&action=ansprechpartner&id=$adresse"); - - $widget->Edit(); - $this->app->BuildNavigation=false; - } - } - - - - - function AdresseRolle() - { - - - } - - function AdresseNummern($id) - { - $tmp_data_adresse= $this->app->DB->SelectRow("SELECT * FROM adresse WHERE id='$id' AND geloescht=0 LIMIT 1"); - if(is_numeric($id)) { - $kundennummer = $tmp_data_adresse['kundennummer']; - $lieferantennummer = $tmp_data_adresse['lieferantennummer']; - $mitarbeiternummer= $tmp_data_adresse['mitarbeiternummer']; - $projekt= $tmp_data_adresse['projekt']; - } - - - if($kundennummer=='0' || $kundennummer==''){ - // pruefe ob rolle kunden vorhanden - if(is_numeric($id)){ - $check = $this->app->DB->Select("SELECT adresse FROM adresse_rolle WHERE adresse='$id' AND subjekt='Kunde' LIMIT 1"); - } - if(!empty($check)) - { - $kundennummer = $this->app->erp->GetNextKundennummer($projekt,$tmp_data_adresse); - $this->app->erp->ObjektProtokoll('adresse',$id,'adresse_next_kundennummer',"Kundennummer erhalten: $kundennummer"); - - $this->app->DB->Update("UPDATE adresse SET kundennummer='$kundennummer' WHERE id='$id' AND (kundennummer='0' OR kundennummer='') LIMIT 1"); - } else{ - $kundennummer = 'noch keine'; - } - } - - if($lieferantennummer=='0'){ - if(is_numeric($id)){ - $check = $this->app->DB->Select("SELECT adresse FROM adresse_rolle WHERE adresse='$id' AND subjekt='Lieferant' LIMIT 1"); - }else { - $check = ''; - } - if($check!='') - { - $lieferantennummer= $this->app->erp->GetNextLieferantennummer($projekt,$tmp_data_adresse); - $this->app->erp->ObjektProtokoll('adresse',$id,'adresse_next_lieferantennummer',"Lieferantennummer erhalten: $lieferantennummer"); - if(is_numeric($id)){ - $this->app->DB->Update("UPDATE adresse SET lieferantennummer='$lieferantennummer' WHERE id='$id' AND (lieferantennummer='0' OR lieferantennummer='') LIMIT 1"); - } - } else{ - $lieferantennummer = 'noch keine'; - } - } - - if($mitarbeiternummer=='0'){ - if(is_numeric($id)){ - $check = $this->app->DB->Select("SELECT adresse FROM adresse_rolle WHERE adresse='$id' AND (subjekt='Mitarbeiter' OR subjekt='Externer Mitarbeiter') LIMIT 1"); - }else{ - $check = ''; - } - if($check!='') - { - $mitarbeiternummer= $this->app->erp->GetNextMitarbeiternummer($projekt,$tmp_data_adresse); - $this->app->erp->ObjektProtokoll('adresse',$id,'adresse_next_mitarbeiternummer',"Mitarbeiternummer erhalten: $mitarbeiternummer"); - if(is_numeric($id)){ - $this->app->DB->Update("UPDATE adresse SET mitarbeiternummer='$mitarbeiternummer' WHERE id='$id' AND (mitarbeiternummer='0' OR mitarbeiternummer='') LIMIT 1"); - } - - } else{ - $mitarbeiternummer = 'noch keine'; - } - } - } - - - function AdresseDelKontakt() - { - $id = $this->app->Secure->GetGET('id'); - $lid = $this->app->Secure->GetGET('lid'); - if($lid > 0){ - $this->app->DB->Delete("DELETE FROM adresse_kontakte WHERE id='$lid' LIMIT 1"); - } - - $this->app->Location->execute("index.php?module=adresse&action=edit&id=$id"); - } - - - - function AdresseNewKontakt() - { - $bezeichnung = $this->app->Secure->GetGET('bezeichnung'); - $kontakt = $this->app->Secure->GetGET('kontakt'); - $id = $this->app->Secure->GetGET('id'); - - //INSERT - $this->app->DB->Insert("INSERT INTO adresse_kontakte (id,adresse,bezeichnung,kontakt) VALUES ('','$id','$bezeichnung','$kontakt')"); - - $this->app->Location->execute("index.php?module=adresse&action=edit&id=$id"); - } - - function AdresseOpen() - { - - $kundennummer=$this->app->Secure->GetGET('kundennummer'); - $projekt=$this->app->Secure->GetGET('projekt'); - - if($projekt!='') - { - $projektid = $this->app->DB->Select("SELECT id FROM projekt WHERE abkuerzung='$projekt' LIMIT 1"); - $id = $this->app->DB->Select("SELECT id FROM adresse WHERE projekt='$projektid' AND kundennummer='$kundennummer' LIMIT 1"); - } else { - $id = $this->app->DB->Select("SELECT id FROM adresse WHERE kundennummer='$kundennummer' LIMIT 1"); - } - - $cmd=$this->app->Secure->GetPOST('cmd'); - if($cmd=="") $cmd = $this->app->Secure->GetGET('cmd'); - $this->app->Location->execute('index.php?module=adresse&action='.$cmd.'&id='.$id); - } - - - function AdresseGetid() - { - - $kundennummer=$this->app->Secure->GetGET('kundennummer'); - $projekt=$this->app->Secure->GetGET('projekt'); - - if($projekt!='') - { - $projektid = $this->app->DB->Select("SELECT id FROM projekt WHERE abkuerzung='$projekt' LIMIT 1"); - $id = $this->app->DB->Select("SELECT id FROM adresse WHERE projekt='$projektid' AND kundennummer='$kundennummer' LIMIT 1"); - } else { - $id = $this->app->DB->Select("SELECT id FROM adresse WHERE kundennummer='$kundennummer' LIMIT 1"); - } - - echo $id; - $this->app->ExitXentral(); - } - - - function AdresseEdit() - { - $id = $this->app->Secure->GetGET('id'); - $projekt = $this->app->DB->Select("SELECT projekt FROM adresse WHERE id = '$id' LIMIT 1"); - - $shopid = (int)$this->app->Secure->GetGET('shop'); - $export = (int)$this->app->Secure->GetGET('export'); - $shops = $this->app->DB->SelectArr("SELECT id, bezeichnung, modulename, shoptyp FROM shopexport WHERE projekt = '$projekt' AND demomodus <> 1 AND aktiv = 1 AND adressupdate = 1"); - - if($shopid > 0){ - foreach ($shops as $shop){ - if((int)$shop['id'] === $shopid){ - if($export){ - $erg = $this->app->remote->RemoteCommand($shopid, 'sendadresse', $id); - if(isset($erg['meldung']) && (!isset($erg['fehler']) || !$erg['fehler'])) - { - $msg = $this->app->erp->base64_url_encode('
'.$erg['meldung'].'
'); - }elseif(isset($erg['fehler']) && $erg['fehler']) - { - $msg = $this->app->erp->base64_url_encode('
Es ist ein Fehler aufgetreten: '.$erg['fehler'].'!
'); - }else{ - $msg = $this->app->erp->base64_url_encode('
Fehlerhafte Online-Shopkonfiguration
'); - } - }else{ - $erg = $this->app->remote->RemoteCommand($shopid, 'getadresse', $id); - if(isset($erg['meldung']) && (!isset($erg['fehler']) || !$erg['fehler'])) - { - $msg = $this->app->erp->base64_url_encode('
'.$erg['meldung'].'
'); - }elseif(isset($erg['fehler']) && $erg['fehler']) - { - $msg = $this->app->erp->base64_url_encode('
Es ist ein Fehler aufgetreten: '.$erg['fehler'].'!
'); - }else{ - $msg = $this->app->erp->base64_url_encode('
Fehlerhafte Online-Shopkonfiguration
'); - } - } - $this->app->Location->execute('index.php?module=adresse&action=edit&id='.$id.'&msg='.$msg); - break; - } - } - } - - - if($this->app->erp->DisableModul('adresse',$id)) - { - //$this->app->erp->MenuEintrag("index.php?module=auftrag&action=list","Zurück zur Übersicht"); - $this->AdresseMenu(); - return; - } - - $this->app->YUI->SaveReally(); - - $adresse_kontakte = $this->app->Secure->GetPOST('adresse_kontakte'); - if(!empty($adresse_kontakte) && count($adresse_kontakte) > 0) { - foreach($adresse_kontakte as $key=>$value) - $this->app->DB->Update("UPDATE adresse_kontakte SET kontakt='$value' WHERE id='$key' LIMIT 1"); - } - $telefon = ''; - $mobil = ''; - $email = ''; - $internetseite = ''; - if(is_numeric($id)) { - $adressarr = $this->app->DB->SelectRow("SELECT * FROM adresse WHERE id='$id' AND geloescht=0 LIMIT 1"); - if(!empty($adressarr)){ - $kundennummer = $adressarr['kundennummer'];//$this->app->DB->Select("SELECT kundennummer FROM adresse WHERE id='$id' AND geloescht=0 LIMIT 1"); - $lieferantennummer = $adressarr['lieferantennummer'];//$this->app->DB->Select("SELECT lieferantennummer FROM adresse WHERE id='$id' AND geloescht=0 LIMIT 1"); - $mitarbeiternummer = $adressarr['mitarbeiternummer'];//$this->app->DB->Select("SELECT mitarbeiternummer FROM adresse WHERE id='$id' AND geloescht=0 LIMIT 1"); - $logfile = $adressarr['adresse'];//$this->app->DB->Select("SELECT logfile FROM adresse WHERE id='$id' AND geloescht=0 LIMIT 1"); - $telefon = $adressarr['telefon']; - $mobil = $adressarr['mobil']; - $email = $adressarr['email']; - $internetseite = $adressarr['internetseite']; - }else{ - $kundennummer = ''; - $lieferantennummer = ''; - $mitarbeiternummer = ''; - $logfile = ''; - } - $logfile = str_replace(';',"\r\n",$logfile); - $this->app->Tpl->Set('LOGFILE',""); - } - - $sipuid = false; - $isPlaceTelAvailable = $this->app->erp->RechteVorhanden('placetel','call') - && !empty($sipuid = $this->app->erp->GetPlacetelSipuid()); - $isSipgateAvailable = $this->app->erp->RechteVorhanden('sipgate','call') - && !empty($this->app->erp->GetKonfiguration('sipgate_api_user')); - if($isSipgateAvailable || $isPlaceTelAvailable) { - $phoneModule = $isPlaceTelAvailable ? 'placetel' : 'sipgate'; - $this->app->Tpl->Set('JSPLACETEL',' - function call(id, dummy) - { - $.ajax({ - url: \'index.php?module=' . $phoneModule . '&action=call&id=\'+id, - type: \'POST\', - dataType: \'json\', - data: {}, - success: function(data) { - if(data) - { - - } - } - }); - - } - '); - } - //$telefon= $this->app->DB->Select("SELECT telefon FROM adresse WHERE id='$id' AND geloescht=0 LIMIT 1"); - if($telefon!='') - { - $telefon = str_replace('/','',$telefon); - $telefon = str_replace(' ','',$telefon); - if($isPlaceTelAvailable || $isSipgateAvailable) - { - $this->app->Tpl->Set('TELEFONBUTTON',"app->Conf->WFconf['defaulttheme']."/images/phone.png\" class=\"iconininput\" alt=\"anrufen\" />"); - }else{ - $this->app->Tpl->Set('TELEFONBUTTON',"app->Conf->WFconf['defaulttheme']."/images/phone.png\" class=\"iconininput\" alt=\"anrufen\" />"); - } - } - //$mobil= $this->app->DB->Select("SELECT mobil FROM adresse WHERE id='$id' AND geloescht=0 LIMIT 1"); - if($mobil!='') - { - $mobil = str_replace('/','',$mobil); - $mobil = str_replace(' ','',$mobil); - if($isPlaceTelAvailable || $isSipgateAvailable) - { - $this->app->Tpl->Set('MOBILBUTTON',"app->Conf->WFconf['defaulttheme']."/images/phone.png\" class=\"iconininput\" alt=\"anrufen\" />"); - }else{ - $this->app->Tpl->Set('MOBILBUTTON',"app->Conf->WFconf['defaulttheme']."/images/phone.png\" class=\"iconininput\" alt=\"anrufen\" />"); - } - } - - //$email = $this->app->DB->Select("SELECT email FROM adresse WHERE id='$id' AND geloescht=0 LIMIT 1"); - if($email != '') - { - $email = str_ireplace("mailto:",'',$email); - $this->app->Tpl->Set('EMAILBUTTON',"app->Conf->WFconf['defaulttheme']."/images/mail2.png\" alt=\"Email schreiben\" class=\"iconininput\" />"); - } - - //$internetseite = $this->app->DB->Select("SELECT internetseite FROM adresse WHERE id='$id' AND geloescht=0 LIMIT 1"); - if($internetseite != '') - { - if(stripos($internetseite,'http') === false)$internetseite = 'http://'.$internetseite; - $this->app->Tpl->Set('INTERNETBUTTON',"app->Conf->WFconf['defaulttheme']."/images/web.png\" class=\"iconininput\" alt=\"Internetseite besuchen\" />"); - } - - //Weitere Kontakte - $buttons_kontakte = " - - x"; -} - - -$this->app->Tpl->Set('BUTTON_KONTAKTE',"$table_kontakte$buttons_kontakte"); - - - - -$things = array('angebot','auftrag','rechnung','lieferschein','gutschrift'); -$buttons_kunde = ''; -foreach($things as $key=>$value) { - $buttons_kunde .= ' - '; -} - -$things = array('bestellung'); -$buttons_lieferant = ''; -foreach($things as $key=>$value) { - $buttons_lieferant .= ' - '; -} - - - - if($kundennummer !='') { - $buttons = $buttons_kunde; - } - if($lieferantennummer !='') { - $buttons .= $buttons_lieferant; - } - - if(1){//$buttons !=""){ - $this->app->Tpl->Set('BUTTONS','
Neu Anlegen -
'.$buttons.'
-
'); - - $this->app->Tpl->Set('BUTTONS2','AdresseAnschriftString($id)).'\')" value="Adresse in Zwischenspeicher"> - '); - } - -if(is_numeric($id)){ - $anzahl_rollen = $this->app->DB->Select("SELECT SUM(id) FROM adresse_rolle WHERE adresse='$id'"); -} - -$anzahl_lead = !empty($adressarr['lead'])?$adressarr['lead']:0;// $this->app->DB->Select("SELECT lead FROM adresse WHERE id='$id'"); -$anzahl_rollen += $anzahl_lead; - - -if($anzahl_rollen<1) -{ - - if($this->app->erp->Version()==='stock') - { - $lieferant_checked = 'checked'; - $kunde_checked = ''; - } else { - $lieferant_checked = ''; - $kunde_checked = 'checked'; - } - - if($this->app->erp->RechteVorhanden("crm","list")) - $leadbox = " "; - - if($this->app->erp->RechteVorhanden("adresse","rollen")) - { - $this->app->Tpl->Set('MESSAGEROLLE'," -
Die Adresse hat noch keine Rolle. Soll eine Rolle anlegt werden: -   -   -   - $leadbox - -
"); - } -} - -if($anzahl_rollen==1 && $anzahl_lead==1) -{ -$this->app->Tpl->Set('MESSAGEROLLE','
Diese Adresse ist ein potentieller Neukunde (Lead).
'); - -} - -// aktiviere tab 1 -$this->app->Tpl->Set('AKTIV_ADRESSE','selected'); -$this->AdresseNummern($id); -if($kundennummer==0) { - $kundennummer = 'keine Kundennummer vorhanden'; -} -if($lieferantennummer==0){ - $lieferantennummer = 'keine Lieferantennummer vorhanden'; -} -if($mitarbeiternummer==0){ - $mitarbeiternummer = 'keine Mitarbeiternummer vorhanden'; -} - - -$this->app->Tpl->Set('KUNDENNUMMERANZEIGE',$kundennummer); -$this->app->Tpl->Set('LIEFERANTENNUMMERANZEIGE',$lieferantennummer); -$this->app->Tpl->Set('MITARBEITERNUMMERANZEIGE',$mitarbeiternummer); - -$this->AdresseMenu(); -$this->app->Tpl->Set('TABLE_ADRESSE_KONTAKTHISTORIE','TDB'); -$this->app->Tpl->Set('TABLE_ADRESSE_ROLLEN','TDB'); - -$this->app->Tpl->Set('TABLE_ADRESSE_USTID','TDB'); - - -$this->app->Tpl->Set('SUBSUBHEADING','Rolle anlegen'); -if($this->app->Secure->GetPOST('rolleanlegen')!=''){ - $this->app->Tpl->Set('AKTIV_TAB3', 'selected'); -} -else{ - $this->app->Tpl->Set('AKTIV_TAB1', 'selected'); -} - -$abweichende_rechnungsadresse= $this->app->DB->Select("SELECT abweichende_rechnungsadresse FROM adresse WHERE id='$id' LIMIT 1"); -$this->app->Tpl->Set('ABWEICHENDERECHNUNGSADRESSESTYLE','none'); -if($abweichende_rechnungsadresse=='1') { - $this->app->Tpl->Set('ABWEICHENDERECHNUNGSADRESSESTYLE',''); -} - -$liefersperre= $this->app->DB->Select("SELECT liefersperre FROM adresse WHERE id='$id' LIMIT 1"); -if($liefersperre=='1') -{ - $this->app->Tpl->Add('MESSAGE',"
Achtung! Bei dieser Adresse ist die Liefersperre gesetzt!
"); -} -parent::AdresseEdit(); -$this->app->erp->MessageHandlerStandardForm(); - -} - -function AdresseRollen() -{ - $this->AdresseMenu(); - - $id = $this->app->Secure->GetGET('id'); - $reload = $this->app->Secure->GetGET('reload'); - $submitrolle = $this->app->Secure->GetPOST('submitrolle'); - - $this->AdresseRolleEdit(); - - $projekt = $this->app->DB->Select("SELECT projekt FROM adresse WHERE id='$id' LIMIT 1"); - - if($submitrolle!='') - { - - if($this->app->Secure->GetPOST('kunde')=='1'){ - $this->app->erp->AddRolleZuAdresse($id, 'Kunde', 'von', 'Projekt', $projekt); - } - if($this->app->Secure->GetPOST('mitarbeiter')=='1'){ - $this->app->erp->AddRolleZuAdresse($id, 'Mitarbeiter', 'von', 'Projekt', $projekt); - } - if($this->app->Secure->GetPOST('lieferant')=='1'){ - $this->app->erp->AddRolleZuAdresse($id, 'Lieferant', 'von', 'Projekt', $projekt); - } - if($this->app->Secure->GetPOST('lead')=='1'){ - $this->app->DB->Update("UPDATE adresse SET `lead`=1 WHERE id='$id' LIMIT 1"); - } - } - - $this->AdresseNummern($id); - - if($submitrolle!='') - { - $this->app->Location->execute("index.php?module=adresse&action=edit&id=$id"); - } - - if($this->app->Secure->GetPOST('rolleanlegen')!='') - { - $subjekt = $this->app->Secure->GetPOST('subjekt'); - $objekt = $this->app->Secure->GetPOST('objekt'); - if($objekt==='Projekt') - { - $projekt = $this->app->Secure->GetPOST('parameter'); - $parameter = $this->app->DB->Select("SELECT id FROM projekt WHERE abkuerzung='$projekt' AND abkuerzung <> '' LIMIT 1"); - } else { - $gruppe= $this->app->Secure->GetPOST('gruppe'); - $parameter = $this->app->DB->Select("SELECT id FROM gruppen WHERE CONCAT(name,' ',kennziffer)='$gruppe' LIMIT 1"); - } - - if(!($objekt==='Gruppe' && $parameter <=0)) - { - $this->app->erp->AddRolleZuAdresse($id, $subjekt, "von", $objekt, $parameter); - } - else { - $msg = $this->app->erp->base64_url_encode("
Rolle nicht gespeichert! Bitte geben Sie eine Gruppe an!
"); - $this->app->Location->execute("index.php?module=adresse&action=rollen&id=$id&msg=$msg"); - } - } - - $this->app->YUI->AutoComplete('parameter','projektname',1); - $this->app->YUI->AutoComplete('gruppe','gruppe'); - - $subjekt= $this->app->erp->GetAdressSubject(); - $this->app->Tpl->Set('ROLLE_SELECT',$this->app->erp->GetSelect($subjekt,'')); - - $this->app->Tpl->Parse('TAB1','adresse_rolle.tpl'); - if($this->app->Secure->GetPOST('rolleanlegen')!='' || $reload=='true') - { - $this->app->Location->execute("index.php?module=adresse&action=rollen&id=$id"); - } - - - $this->app->Tpl->Set('SUBSUBHEADING','Rollen der Adresse'); - $this->app->Tpl->Set('TABTEXT','Rollen'); - - $table = new EasyTable($this->app); - $table->Query("SELECT a.subjekt as Rolle, - if(a.objekt='','ALLE',a.objekt) as Zuordnung, - if(a.objekt='Projekt',if(a.parameter='','ALLE',p.abkuerzung),CONCAT(g.name,' ',g.kennziffer)) as auswahl, - DATE_FORMAT(a.von,'%d.%m.%Y') as seit, if(a.bis='0000-00-00','aktuell',DATE_FORMAT(a.bis,'%d.%m.%Y')) as bis, a.id - FROM adresse_rolle a LEFT JOIN projekt p ON a.parameter=p.id - LEFT JOIN gruppen g ON g.id=a.parameter - WHERE a.adresse='$id'"); - - $table->DisplayNew('TAB1NEXT', " -  "); - - //app->YUI->DatePicker('von_datum'); - $this->app->YUI->DatePicker('bis_datum'); -} - - -function AdresseRolleEdit() -{ - if($this->app->Secure->GetGET('cmd')==='get'){ - - $id = (int)$this->app->Secure->GetPOST('id'); - - $data = $this->app->DB->SelectRow("SELECT id as id, DATE_FORMAT(von,'%d.%m.%Y') as von_datum, DATE_FORMAT(bis,'%d.%m.%Y') as bis_datum FROM adresse_rolle WHERE id = \"$id\" LIMIT 1"); - - echo json_encode($data); - $this->app->ExitXentral(); - } -} - -function AdresserolleSave() -{ - $id = (int)$this->app->Secure->GetPOST('id'); - $von_datum = $this->app->Secure->GetPOST('von_datum'); - $bis_datum = $this->app->Secure->GetPOST('bis_datum'); - - $id = $this->app->DB->Select("SELECT id FROM adresse_rolle ar WHERE id = \"$id\""); - - $von_datuml = strlen(trim($von_datum)); - $bis_datuml = strlen(trim($bis_datum)); - - $von_datum = $this->app->String->Convert($von_datum,'%3.%2.%1','%1-%2-%3'); - $bis_datum = $this->app->String->Convert($bis_datum,'%3.%2.%1','%1-%2-%3'); - $fehler = ''; - if($id != '' && trim($von_datum) != '' && trim($bis_datum) != '' && $von_datuml >= 8 && $von_datuml <= 10 && $bis_datuml >= 8 && $bis_datuml <= 10 && $von_datum != '0000-00-00'){ - $this->app->DB->Update("UPDATE adresse_rolle SET von = \"$von_datum\", bis = \"$bis_datum\" WHERE id = \"$id\""); - }else{ - if($von_datum == '0000-00-00'){ - $fehler .= 'Bitte ein gültiges von Datum angeben'; - } - if($von_datuml < 8 || $von_datuml > 10 || $bis_datuml < 8 || $bis_datuml > 10){ - $fehler .= 'Bitte ein gültiges Datum angeben'; - } - echo json_encode(array('status'=>0,'statusText'=>$fehler)); - $this->app->ExitXentral(); - } - - echo json_encode(array('status'=>1)); - $this->app->ExitXentral(); -} - - -function AdresseUSTPopup() -{ - $frame = $this->app->Secure->GetGET('frame'); - if($frame=='false') - { - // hier nur fenster größe anpassen - $this->app->YUI->IframeDialog(650,530); - } else { - $this->AdresseUstprf(); - $this->app->BuildNavigation=false; - } -} - - - -function AdresseUstprf() -{ - $this->AdresseMenu(); - $id = $this->app->Secure->GetGET("id"); - - $this->app->Tpl->Set("MESSAGE","
Hinweis: Dies ist ein Beta-Feature. Bitte prüfen Sie die Daten und melden uns per Ticket-System, wenn etwas bei Ihnen nicht stimmt.
"); - - $this->app->YUI->DateiPopup('DATEIENPOPUP','adresseustprf','#e_id',array( - 'openbuttontarget'=>'DATEIBUTTON' - ,'frompopup'=>'editUstprf','afteropen'=>'AFTERPOPUPOPEN' - )); - - $laender = $this->app->erp->GetSelectLaenderliste(); - $laenderstr = ''; - - foreach($laender as $key => $value){ - if($key != "0" && $land == $key){ - $laenderstr .= ''; - }else{ - $laenderstr .= ''; - } - } - - $this->app->Tpl->Add("LAENDER", $laenderstr); - - $this->app->Tpl->Set("ADRESSID", $id); - - $this->app->YUI->CkEditor("e_mailtext", "belege"); - - $this->app->YUI->TableSearch('TAB1','adresse_ustprf', 'show','','',basename(__FILE__), __CLASS__); - $this->app->YUI->TableSearch('PROTOKOLLTABELLE','adresse_ustprf_protokoll','show','','',basename(__FILE__), __CLASS__); - - - $cmd = $this->app->Secure->GetGET('cmd'); - $ustprfid = (int)$this->app->Secure->GetPOST('ustprfid'); - $adressid = (int)$this->app->Secure->GetPOST('adressid'); - $name = trim($this->app->Secure->GetPOST('name')); - $ustid = trim($this->app->Secure->GetPOST('ustid')); - $plz = trim($this->app->Secure->GetPOST('plz')); - $ort = trim($this->app->Secure->GetPOST('ort')); - $strasse = trim($this->app->Secure->GetPOST('strasse')); - $land = trim($this->app->Secure->GetPOST('land')); - - $ustid = str_replace(' ', '', $ustid); - - $url = html_entity_decode($name." ".$ort." ".$land, ENT_QUOTES | ENT_XML1); - - $ownvatok = false; - - include_once(dirname(__DIR__).'/lib/class.ustid.php'); - - switch($cmd) - { - case "startwerte": - $abwreadresse = $this->app->DB->Select("SELECT abweichende_rechnungsadresse FROM adresse WHERE id = '$adressid' LIMIT 1"); - - if($abwreadresse == 1){ - $data = $this->app->DB->SelectRow("SELECT id, kundennummer AS nummer, rechnung_name AS name, rechnung_land AS land, ustid, rechnung_ort AS ort, rechnung_plz AS plz, rechnung_strasse AS strasse FROM adresse WHERE id = '$adressid' LIMIT 1"); - } else{ - $data = $this->app->DB->SelectRow("SELECT id, kundennummer AS nummer, land, name, ustid, ort, plz, strasse FROM adresse WHERE id = '$adressid' LIMIT 1"); - } - - if($data){ - $data['name'] = html_entity_decode($data['name'], ENT_QUOTES | ENT_XML1); - $url = html_entity_decode($data['name'])." ".$data['ort']." ".$data['land']; - - $data['ustid'] = str_replace(' ', '', $data['ustid']); - - $data['uststatus']="angelegt"; - $data['status']=1; - } - $this->app->DB->Insert("INSERT INTO ustprf (adresse, ustid, name, ort, plz, strasse, land,status,datum) VALUES ('$adressid', '".$data['ustid']."', - '".$this->app->DB->real_escape_string($data['name'])."', '".$this->app->DB->real_escape_string($data['ort'])."', '".$data['plz']."', - '".$this->app->DB->real_escape_string($data['strasse'])."', '".$data['land']."','angelegt',NOW())"); - - - $ustprfid = $this->app->DB->GetInsertID(); - $data['ustprfid'] = $ustprfid; - - $protokoll = "Neue Prüfung angelegt"; - - break; - case "stammdaten": - $this->app->DB->Update("UPDATE adresse SET name = '$name', ustid = '$ustid', plz = '$plz', ort = '$ort', strasse = '$strasse', land = '$land' WHERE id = '$adressid'"); - $this->app->DB->Update("UPDATE ustprf SET ustid = '$ustid', name = '$name', ort = '$ort', plz = '$plz', strasse = '$strasse', land = '$land' WHERE id = '$ustprfid'"); - $data['status']=1; - $data['statusText']="Stammdaten wurden aktualisiert"; - $protokoll = $data['statusText']; - $adressdaten = $name." | ".$ort." | ".$plz." | ".$strasse." | ".$land." | ".$ustid; - break; - case "online": - case "brief": - $ustland = substr($ustid, 0, 2); - if($ustland!=""){ - $ustlaender = $this->app->erp->GetUSTEU(true); - if(!in_array($ustland, $ustlaender)){ - $data['status']=0; - $data['statusText']="Dieses Land ist für die Prüfung nicht verfügbar.\nEs können nur Abfragen über Firmen in der EU durchgeführt werden."; - break; - } - } - - $this->app->DB->Update("UPDATE ustprf SET ustid='".$ustid."', name='".$name."', - ort='".$ort."', plz='".$plz."', strasse='".$strasse."', land='".$land."' WHERE id='".$ustprfid."'"); - - $adressdaten = $name." | ".$ort." | ".$plz." | ".$strasse." | ".$land." | ".$ustid; - - $UstStatus = $this->app->erp->CheckUst($this->app->erp->Firmendaten("steuernummer"), $ustid ,$name,$ort,$strasse,$plz,($cmd=="brief"?"ja":"nein")); - - if(is_array($UstStatus) && !is_numeric($UstStatus)){ - //$tmp = new USTID(); - $msg = $UstStatus['ERROR_MSG']; - - if(($UstStatus['ERROR_CODE']==200 || $UstStatus['ERROR_CODE']==222) && (($UstStatus['ERG_NAME']=="A" && $UstStatus['ERG_PLZ']=="A" && $UstStatus['ERG_ORT']=="A" && $UstStatus['ERG_STR']=="A") || $cmd=="brief")){ - $data['status']=1; - if($cmd=="brief") { - $this->app->DB->Update("UPDATE ustprf SET status='$cmd',datum_brief=NOW(),briefbestellt=NOW() WHERE id='$ustprfid'"); - $data['statusText']="Schriftliche Mitteilung des BZSt wurde angefordert!"; - }else{ - $this->app->DB->Update("UPDATE ustprf SET status='$cmd',datum_online=NOW() WHERE id='$ustprfid'"); - $data['statusText']=$msg; - } - }else if($UstStatus['ERROR_CODE']==200 || $UstStatus['ERROR_CODE']==222){ - $data['status']=0; - - $this->app->DB->Update("UPDATE ustprf SET status='teilweise',datum_online=NOW() WHERE id='$ustprfid'"); - if($UstStatus['ERG_NAME']=="B") $tmpmsg .= "\nName stimmt nicht mit BZSt Eintrag überein! "; - if($UstStatus['ERG_PLZ']=="B") $tmpmsg .= "\nPLZ stimmt nicht mit BZSt Eintrag überein! "; - if($UstStatus['ERG_ORT']=="B") $tmpmsg .= "\nOrt stimmt nicht mit BZSt Eintrag überein! "; - if($UstStatus['ERG_STR']=="B") $tmpmsg .= "\nStrasse stimmt nicht mit BZSt Eintrag überein! "; - - if($UstStatus['ERG_NAME']=="C") $tmpmsg .= "\nName wurde vom BZSt nicht angefragt! "; - if($UstStatus['ERG_PLZ']=="C") $tmpmsg .= "\nPLZ wurde vom BZSt nicht angefragt! "; - if($UstStatus['ERG_ORT']=="C") $tmpmsg .= "\nOrt wurde vom BZSt nicht angefragt! "; - if($UstStatus['ERG_STR']=="C") $tmpmsg .= "\nStrasse wurde vom BZSt nicht angefragt! "; - - if($UstStatus['ERG_NAME']=="D") $tmpmsg .= "\nName wird vom EU-Mitgliedsstaat nicht mitgeteilt! "; - if($UstStatus['ERG_PLZ']=="D") $tmpmsg .= "\nPLZ wird vom EU-Mitgliedsstaat nicht mitgeteilt! "; - if($UstStatus['ERG_ORT']=="D") $tmpmsg .= "\nOrt wird vom EU-Mitgliedsstaat nicht mitgeteilt! "; - if($UstStatus['ERG_STR']=="D") $tmpmsg .= "\nStrasse wird vom EU-Mitgliedsstaat nicht mitgeteilt! "; - - $data['ustprfid'] = $ustprfid; - $data['adressdaten'] = $adressdaten; - $data['error_code'] = $UstStatus['ERROR_CODE']; - $data['statusText']=trim($tmpmsg); - }else{ - $data['status']=0; - $this->app->DB->Update("UPDATE ustprf SET status='fehlgeschlagen',datum_online=NOW() WHERE id='$ustprfid'"); - if($UstStatus['ERROR_CODE'] != ''){ - $data['statusText']=$msg.' (Code: '.$UstStatus['ERROR_CODE'].')'; - }else{ - $data['statusText'] = $msg.' (Code: Der Server des Bundeszentralamtes für Steuern ist derzeit nicht erreichbar.\nBitte probieren Sie es zu einem späteren Zeitpunkt noch einmal.)'; - } - } - $protokoll = $data['statusText']; - } - - - $data['uststatus'] = $this->app->DB->Select("SELECT status FROM ustprf WHERE id='$ustprfid'"); - $data['datum_online'] = $this->app->DB->Select("SELECT DATE_FORMAT(datum_online,'%d.%m.%Y') as datum_online FROM ustprf WHERE id='$ustprfid'"); - $data['datum_brief'] = $this->app->DB->Select("SELECT DATE_FORMAT(datum_brief,'%d.%m.%Y') as datum_brief FROM ustprf WHERE id='$ustprfid'"); - - if($data['datum_online'] == '00.00.0000'){ - $data['datum_online'] = '-'; - } - - if($data['datum_brief'] == '00.00.0000'){ - $data['datum_brief'] = '-'; - } - break; - case "delete": - if($ustprfid > 0){ - $this->app->DB->Delete("DELETE FROM ustprf WHERE id='" . $ustprfid . "'"); - $this->app->DB->Delete("DELETE FROM ustprf_protokoll WHERE ustprf_id='" . $ustprfid . "'"); - $data['status'] = 1; - } - break; - - - case "get": - $data = $this->app->DB->SelectRow("SELECT *,id as ustprfid, status as uststatus,DATE_FORMAT(datum_online,'%d.%m.%Y') as datum_online,DATE_FORMAT(datum_brief,'%d.%m.%Y') as datum_brief FROM ustprf WHERE id='".$ustprfid."'"); - - $url = html_entity_decode($data['name'])." ".$data['ort']." ".$data['land']; - - if($data['datum_online'] == '00.00.0000'){ - $data['datum_online'] = '-'; - } - - if($data['datum_brief'] == '00.00.0000'){ - $data['datum_brief'] = '-'; - } - - $data['status']=1; - break; - - case "gueltigmarkieren": - if($ustprfid > 0){ - $this->app->DB->Update("UPDATE ustprf SET status='$cmd',datum_online=NOW() WHERE id='$ustprfid'"); - $protokoll = "Manuell als gültig markiert."; - $adressdaten = $name." | ".$ort." | ".$plz." | ".$strasse." | ".$land." | ".$ustid; - $data['status'] = 1; - $data['uststatus'] = $this->app->DB->Select("SELECT status FROM ustprf WHERE id='$ustprfid'"); - $data['datum_online'] = $this->app->DB->Select("SELECT DATE_FORMAT(datum_online,'%d.%m.%Y') as datum_online FROM ustprf WHERE id='$ustprfid'"); - }else{ - $data['status'] = 0; - $data['statusText'] = 'Keine gültige Ustprf-ID'; - } - break; - } - - if($ustprfid > 0 && $protokoll!='' && $cmd!=='delete') - { - $this->app->DB->Insert("INSERT INTO ustprf_protokoll (ustprf_id, zeit, bemerkung, bearbeiter,logdatei, daten) VALUES ('".$ustprfid."',NOW(), - '$protokoll', '".$this->app->User->GetName()."',NOW(), '".$adressdaten."')"); - } - - if($cmd!='') - { - $data['url'] = "http://www.google.de/search?q=$url&ie=utf-8&oe=utf-8&aq=t&rls=com.ubuntu:de:official&client=firefox-a"; - echo json_encode($data); - $this->app->ExitXentral(); - } - - $this->app->Tpl->Parse('PAGE',"adresse_ustprf.tpl"); -} - -function AdresseProtokoll($lid) -{ - if($lid!=""){ - $table = new EasyTable($this->app); - - $table->Query("SELECT DATE_FORMAT(zeit, '%d.%m.%Y %H:%i') AS Datum, bemerkung,bearbeiter FROM ustprf_protokoll WHERE ustprf_id='$lid' ORDER BY zeit DESC", 0, "noAction"); - - $table->DisplayNew('PROTOKOLL',"", "noAction"); - - } -} - - -function AdresseVerbindlichkeiten() -{ - $this->AdresseMenu(); - - $this->app->Tpl->Parse('PAGE',"adresse_verbindlichkeiten.tpl"); -} - -function AdresseKundeArtikel() -{ - $parameter = $this->app->User->GetParameter('table_filter_adressekundeartikel'); - $parameter = json_decode($parameter, true); - - $cmd = $this->app->Secure->GetGET('cmd'); - if($cmd==='edit') { - $id = (int)$this->app->Secure->GetPOST('id'); - $art = (int)$this->app->Secure->GetPOST('art'); - $tabelle = ""; - - if($art == 1){ - $tabelle = "auftrag"; - }elseif($art == 2){ - $tabelle = "rechnung"; - }elseif($art == 3){ - $tabelle = "gutschrift"; - }elseif($art == 4){ - $tabelle = "angebot"; - }elseif($art == 5){ - $tabelle = "lieferschein"; - }elseif($art == 6){ - $tabelle = "produktion"; - } - - $data = $this->app->DB->SelectRow("SELECT id, internerkommentar FROM ".$tabelle."_position WHERE id = '$id' LIMIT 1"); - - if($data){ - $data['art'] = $tabelle; - - }else{ - $data['id'] = 0; - $data['internerkommentar'] = 0; - $data['art'] = ''; - } - echo json_encode($data); - $this->app->ExitXentral(); - - } - if($cmd==='save'){ - $id = $this->app->Secure->GetPOST('id'); - $internerkommentar = $this->app->Secure->GetPOST('internerkommentar'); - $art = $this->app->Secure->GetPOST('art'); - - $error = ''; - - if($error == ''){ - if($id > 0){ - $this->app->DB->Update("UPDATE ".$art."_position SET internerkommentar = '$internerkommentar' WHERE id = '$id'"); - echo json_encode(array('status'=>1)); - $this->app->ExitXentral(); - } - }else{ - echo json_encode(array('status'=>0,'statusText'=>$error)); - $this->app->ExitXentral(); - } - } - - - if($this->app->Secure->GetPOST('speichern')) - { - $internerkommentar = $this->app->Secure->GetPOST('internerkommentar'); - $rechnung_position = (int)$this->app->Secure->GetPOST('rechnung_position'); - if($rechnung_position) - { - $rechnung = $this->app->DB->Select("SELECT rechnung FROM rechnung_position WHERE id = '$rechnung_position' LIMIT 1"); - if($rechnung) - { - $id = (int)$this->app->Secure->GetGET('id'); - if($id && $this->app->DB->Select("SELECT adresse FROM rechnung WHERE id = '$rechnung' AND adresse = '$id' LIMIT 1")) - { - $this->app->DB->Update("UPDATE rechnung_position SET internerkommentar = '$internerkommentar' WHERE id = '$rechnung_position' LIMIT 1"); - } - } - } - } - $this->AdresseMenu(); - $this->app->Tpl->Parse('TAB1','adresse_kundeartikel_table_filter.tpl'); - $this->app->YUI->TableSearch('TAB1','adresseartikel'); - - $this->app->YUI->TableSearch('TAB7','adresse_artikel_gekaufte', 'show','','',basename(__FILE__), __CLASS__); - - $this->app->Tpl->Parse('PAGE','adresse_artikel.tpl'); -} - -public function AdresseLieferantArtikel() -{ - $this->AdresseMenu(); - - $this->app->YUI->TableSearch('TAB1','lieferantartikel', 'show','','',basename(__FILE__), __CLASS__); - $this->app->Tpl->Parse('PAGE','adresse_lieferprogramm.tpl'); -} - -function AdresseBestellungMarkiert() -{ - $id = $this->app->Secure->GetGET('id'); - $sid = $this->app->Secure->GetPOST('sid'); - if($sid > 0){ - $geliefert = $this->app->DB->Select("SELECT geliefert FROM bestellung_position WHERE id='$sid' LIMIT 1"); - $menge = $this->app->DB->Select("SELECT menge FROM bestellung_position WHERE id='$sid' LIMIT 1"); - $tmp = $menge - $geliefert; - if($tmp < 0){ - $tmp = 0; - } - $this->app->DB->Update("UPDATE bestellung_position SET abgeschlossen='1', mengemanuellgeliefertaktiviert='$tmp', geliefert='$menge',manuellgeliefertbearbeiter='" . $this->app->User->GetName() . "' WHERE id='$sid' LIMIT 1"); - } - echo json_encode(array('status'=>1)); - $this->app->ExitXentral(); -} - - -function AdresseOffeneBestellungen() -{ - $id = $this->app->Secure->GetGET('id'); - $this->app->Tpl->Set('ID',$id); - - $this->AdresseMenu(); - - $this->app->Tpl->Set('UEBERSCHRIFT1','Bestellungen'); - - $this->app->YUI->TableSearch('TAB1', 'adressebestellungen'); - - $this->app->Tpl->Set('TAB1SELECT','selected'); - $this->app->Tpl->Set('EXTEND',''); - $this->app->Tpl->Set('INHALT',''); - - $this->app->YUI->TableSearch('TAB2', 'adressebestellungen_artikel'); - $this->app->Tpl->Parse('PAGE', 'adressebestellung.tpl'); -} - -function AdresseAccounts() -{ - $this->AdresseMenu(); - $id = $this->app->Secure->GetGET('id'); - $lid = $this->app->Secure->GetGET("lid"); - $cmd = $this->app->Secure->GetGET('cmd'); - - $iframe = $this->app->Secure->GetGET("iframe"); - - - if($cmd === "save"){ - $bearbeitungsid = (int)$this->app->Secure->GetPOST('id'); - $bezeichnung = trim($this->app->Secure->GetPOST('bezeichnung')); - $benutzername = trim($this->app->Secure->GetPOST('benutzername')); - $passwort = trim($this->app->Secure->GetPOST('passwort')); - $art = trim($this->app->Secure->GetPOST('art')); - $url = trim($this->app->Secure->GetPOST('url')); - $email = trim($this->app->Secure->GetPOST('email')); - $notiz = trim($this->app->Secure->GetPOST('notiz')); - $gueltigab = trim($this->app->Secure->GetPOST('gueltigab')); - $gueltigbis = trim($this->app->Secure->GetPOST('gueltigbis')); - $aktiv = $this->app->Secure->GetPOST('aktiv'); - $adressid = (int)$this->app->Secure->GetPOST('adressid'); - - $error = ""; - - if($bezeichnung == ""){ - $error .= "Bitte Bezeichnung ausfüllen\n"; - } - - if($gueltigab == "" || $gueltigab == "0000-00-00"){ - $gueltigab = "0000-00-00"; - }else{ - $gueltigab = date('Y-m-d',strtotime($gueltigab)); - } - - if($gueltigbis == "" || $gueltigbis == "0000-00-00"){ - $gueltigbis = "0000-00-00"; - }else{ - $gueltigbis = date('Y-m-d',strtotime($gueltigbis)); - } - - if($error == ''){ - if($bearbeitungsid){ - $this->app->DB->Update("UPDATE adresse_accounts SET bezeichnung = '$bezeichnung', benutzername = '$benutzername', passwort = '$passwort', art = '$art', url = '$url', email = '$email', notiz = '$notiz', gueltig_ab = '$gueltigab', gueltig_bis = '$gueltigbis', aktiv = '$aktiv' WHERE id = '$bearbeitungsid'"); - - echo json_encode(array('status'=>1)); - $this->app->ExitXentral(); - } - $this->app->DB->Insert("INSERT INTO adresse_accounts (bezeichnung, benutzername, passwort, art, url, email, notiz, gueltig_ab, gueltig_bis, aktiv, adresse) VALUES ('$bezeichnung', '$benutzername', '$passwort', '$art', '$url', '$email', '$notiz', '$gueltigab', '$gueltigbis', '$aktiv', '$adressid')"); - echo json_encode(array('status'=>1)); - $this->app->ExitXentral(); - } - echo json_encode(array('status'=>0,'statusText'=>$error)); - $this->app->ExitXentral(); - - - - } - if($cmd === 'edit'){ - - $bearbeitungsid = (int)$this->app->Secure->GetPOST('id'); - - $data = $this->app->DB->SelectRow("SELECT id, bezeichnung, benutzername, passwort, art, url, email, notiz, gueltig_ab, gueltig_bis, aktiv FROM adresse_accounts WHERE id = '$bearbeitungsid' LIMIT 1"); - - if($data){ - if($data['gueltig_ab'] == "0000-00-00"){ - $data['gueltig_ab'] = ""; - }else{ - $data['gueltig_ab'] = date('d.m.Y',strtotime($data['gueltig_ab'])); - } - if($data['gueltig_bis'] == "0000-00-00"){ - $data['gueltig_bis'] = ""; - }else{ - $data['gueltig_bis'] = date('d.m.Y',strtotime($data['gueltig_bis'])); - } - }else{ - $data['id'] = 0; - $data['bezeichnung'] = ''; - $data['benutzername'] = ''; - $data['passwort'] = ''; - $data['art'] = ''; - $data['url'] = ''; - $data['email'] = ''; - $data['notiz'] = ''; - $data['gueltig_ab'] = ''; - $data['gueltig_bis'] = ''; - $data['aktiv'] = 0; - } - echo json_encode($data); - $this->app->ExitXentral(); - - } - if($cmd === 'delete'){ - $loeschid = (int) $this->app->Secure->GetPOST('eid'); - $this->app->DB->Update("DELETE FROM adresse_accounts WHERE id = '$loeschid' LIMIT 1"); - - echo json_encode(array('status'=>1)); - $this->app->ExitXentral(); - } - - - - - if($iframe=="true") - $this->app->BuildNavigation=false; - - if($delete==1) - { - $this->app->DB->Delete("DELETE FROM adresse_accounts WHERE id='$lid' AND adresse='$id' LIMIT 1"); - $this->app->Location->execute("index.php?module=adresse&action=accounts$add_cmd&id=$id&iframe=$iframe"); - } - - $this->app->YUI->AutoComplete("e_art", "accountart"); - $this->app->YUI->CkEditor("e_notiz","basic",array('height'=>'11em', 'width'=>'35em')); - $this->app->YUI->DatePicker('e_gueltigab'); - $this->app->YUI->DatePicker('e_gueltigbis'); - - - //Formula lieferadresse - // easy table mit arbeitspaketen YUI als template - $this->app->YUI->TableSearch('TAB1',"adresse_accounts"); - //$this->app->Tpl->Parse('TAB1',"rahmen70.tpl"); - $this->app->Tpl->Set('AKTIV_TAB1',"selected"); - - if($iframe=="true") - $this->app->Tpl->Parse('PAGE',"adresse_accounts_uebersicht_popup.tpl"); - else - $this->app->Tpl->Parse('PAGE',"adresse_accounts_uebersicht.tpl"); - -} - - -function AdresseAnsprechpartnerPopup() -{ - $frame = $this->app->Secure->GetGET("frame"); - $id = $this->app->Secure->GetGET('id'); - $cmd= $this->app->Secure->GetPOST('cmd'); - - if($cmd=="alslieferadresse") - $als_lieferadresse=true; - else - $als_lieferadresse=false; - - - $this->AdresseAnsprechpartner($als_lieferadresse); - $this->app->BuildNavigation=false; -} - -function AdresseAnsprechpartnerLieferadressePopup() -{ - $frame = $this->app->Secure->GetGET("frame"); - $id = $this->app->Secure->GetGET('id'); - - $this->AdresseAnsprechpartner(true); - $this->app->BuildNavigation=false; -} - -function AdresseStammdatenLieferadressePopup() -{ - $frame = $this->app->Secure->GetGET("frame"); - $id = $this->app->Secure->GetGET('id'); - - $this->AdresseStammdaten(true); - $this->app->BuildNavigation=false; -} - - - -function AdresseStammdaten($als_lieferadresse=false) -{ - $this->AdresseMenu(); - $id = $this->app->Secure->GetGET('id'); - $lid = $this->app->Secure->GetGET("lid"); - $delete = $this->app->Secure->GetGET("delete"); - $create= $this->app->Secure->GetGET("create"); - $cmd= $this->app->Secure->GetPOST('cmd'); - - $als_verzollungsadresse = false; - $als_ansprechpartner = false; - if($cmd=="alslieferadresse") - { - $this->app->Tpl->Set('STARTDISABLEANREDE',""); - $als_lieferadresse=true; - $add_cmd = "&cmd=alslieferadresse"; - }elseif($cmd == "alsverzollungadresse") - { - $this->app->Tpl->Set('STARTDISABLEANREDE',""); - $als_verzollungsadresse=true; - $add_cmd = "&cmd=alsverzollungadresse"; - } elseif($cmd == "alsansprechpartner") - { - $this->app->Tpl->Set('STARTDISABLEANREDE',""); - $als_ansprechpartner=true; - $add_cmd = "&cmd=alsansprechpartner"; - } - - - $iframe = $this->app->Secure->GetGET("iframe"); - - if($iframe=="true") - $this->app->BuildNavigation=false; - - // neues arbeitspaket - - if($iframe=="true") { - if($als_lieferadresse) - { - $einfuegen = "
"; - }elseif($als_verzollungsadresse) - { - $einfuegen = ""; - }elseif($als_ansprechpartner) - { - $einfuegen = ""; - } - else - $einfuegen = ""; - } - //Formula lieferadresse - // easy table mit arbeitspaketen YUI als template - if($als_lieferadresse) - { - $this->app->YUI->TableSearch('TAB1',"adresse_stammdatenlieferadresselist"); - }elseif($als_verzollungsadresse) - { - $this->app->YUI->TableSearch('TAB1',"adresse_stammdatenverzollungadresselist"); - } - else - $this->app->YUI->TableSearch('TAB1',"adresse_ansprechpartnerlist"); //TODO fehlt - //$this->app->Tpl->Parse('TAB1',"rahmen70.tpl"); - $this->app->Tpl->Set('AKTIV_TAB1',"selected"); - - if($iframe=="true") - $this->app->Tpl->Parse('PAGE',"ansprechpartneruebersicht_popup.tpl"); - else - $this->app->Tpl->Parse('PAGE',"ansprechpartneruebersicht.tpl"); -} - - -function AdresseAnsprechpartner($als_lieferadresse=false) -{ - - $id = $this->app->DB->real_escape_string($this->app->Secure->GetGET('id')); - $lid = $this->app->DB->real_escape_string($this->app->Secure->GetGET('lid')); - - if($this->app->Secure->GetGET('cmd')==='changegr') { - $gruppe = (int)$this->app->Secure->GetPOST('gruppe'); - $wert = $this->app->Secure->GetPOST('wert')?1:0; - if($id && $lid && $gruppe) - { - $check = $this->app->DB->Select("SELECT id FROM ansprechpartner_gruppen WHERE gruppe = '$gruppe' AND ansprechpartner = '$lid' LIMIT 1"); - if($check) - { - $this->app->DB->Update("UPDATE ansprechpartner_gruppen SET aktiv = '$wert' WHERE id = '$check' LIMIT 1"); - }elseif($wert){ - $this->app->DB->Insert("INSERT INTO ansprechpartner_gruppen (gruppe, ansprechpartner, aktiv) VALUES ('$gruppe', '$lid', 1)"); - } - } - echo json_decode(array('status'=>1)); - $this->app->ExitXentral(); - } - - $delete = $this->app->Secure->GetGET("delete"); - $create= $this->app->Secure->GetGET("create"); - $cmd = $this->app->Secure->GetGET('cmd'); - - //$ansprechpartnerspeichern = ""; - $ansprechpartnerspeichern = $this->app->Secure->GetPOST('ansprechpartnerspeichern'); - if($ansprechpartnerspeichern != ""){ - $cmd = "save"; - } - - switch ($cmd) { - case 'get': - - $data = $this->app->DB->SelectRow("SELECT * FROM ansprechpartner WHERE id = '$lid'"); - $data['geburtstag'] = $this->app->String->Convert($data['geburtstag'],"%1-%2-%3","%3.%2.%1"); - echo json_encode($data); - $this->app->ExitXentral(); - break; - case 'save': - $lid = $this->app->Secure->GetPOST('lid'); - $typ = $this->app->Secure->GetPOST('typ'); - $land = $this->app->Secure->GetPOST('land'); - $name = $this->app->Secure->GetPOST('name'); - $titel = $this->app->Secure->GetPOST('titel'); - $bereich = $this->app->Secure->GetPOST('bereich'); - $abteilung = $this->app->Secure->GetPOST('abteilung'); - $unterabteilung = $this->app->Secure->GetPOST('unterabteilung'); - $adresszusatz = $this->app->Secure->GetPOST('adresszusatz'); - $anschreiben = $this->app->Secure->GetPOST('anschreiben'); - $vorname = $this->app->Secure->GetPOST('vorname'); - $geburtstag = $this->app->String->Convert($this->app->Secure->GetPOST('geburtstag'),"%3.%2.%1","%1-%2-%3"); - $geburtstagkalender = $this->app->Secure->GetPOST('geburtstagkalender'); - $geburtstagskarte = $this->app->Secure->GetPOST('geburtstagskarte'); - $marketingsperre = $this->app->Secure->GetPOST('marketingsperre'); - $strasse = $this->app->Secure->GetPOST('strasse'); - $plz = $this->app->Secure->GetPOST('plz'); - $ort = $this->app->Secure->GetPOST('ort'); - $email = $this->app->Secure->GetPOST('email'); - $telefon = $this->app->Secure->GetPOST('telefon'); - $telefax = $this->app->Secure->GetPOST('telefax'); - $mobil = $this->app->Secure->GetPOST('mobil'); - $sonstiges = $this->app->Secure->GetPOST('sonstiges'); - $internebemerkung = $this->app->Secure->GetPOST('interne_bemerkung'); - - $error = ""; - - if(trim($name) == ""){ - $error .= "Bitte Name ausfüllen"."\n"; - } - - if($error == ""){ - if($lid == '0'){ - //Neuen Eintrag anlegen - $this->app->DB->Insert("INSERT INTO ansprechpartner (typ, name, bereich, abteilung, unterabteilung, land, strasse, ort, plz, telefon, telefax, email, sonstiges, adresszusatz, adresse, logdatei, mobil, titel, anschreiben, ansprechpartner_land, vorname, geburtstag, geburtstagkalender, geburtstagskarte, marketingsperre, interne_bemerkung) VALUES ('$typ', '$name', '$bereich','$abteilung','$unterabteilung','$land','$strasse','$ort','$plz','$telefon','$telefax', '$email', '$sonstiges', '$adresszusatz','$id',NOW(),'$mobil','$titel','$anschreiben','$land','$vorname','$geburtstag', '$geburtstagkalender', '$geburtstagskarte', '$marketingsperre', '$internebemerkung')"); - $lid = $this->app->DB->GetInsertID(); - if (!empty($lid)) { - $this->app->erp->RunHook('contact_person_created', 1, $lid); - } - $gruppen = $this->app->DB->real_escape_string($this->app->Secure->GetPOST('gruppen')); - $gruppenarray = explode("|", $gruppen); - - for ($i=0; $i < count($gruppenarray) ; $i++) { - if($gruppenarray[$i] != ''){ - $gruppenid = substr($gruppenarray[$i], 3); - $this->app->DB->Insert("INSERT INTO ansprechpartner_gruppen (ansprechpartner, gruppe, aktiv) VALUES ('$lid', '".$gruppenid."', '1')"); - } - } - if($ansprechpartnerspeichern == ""){ - echo json_encode(array('status'=>1)); - $this->app->ExitXentral(); - } - }else{ - //Alten Eintrag updaten - $this->app->DB->Update("UPDATE ansprechpartner SET typ ='$typ', name = '$name', bereich = '$bereich', abteilung = '$abteilung', unterabteilung = '$unterabteilung', land = '$land', strasse = '$strasse', ort = '$ort', plz = '$plz', telefon = '$telefon', telefax = '$telefax', email = '$email', sonstiges = '$sonstiges', adresszusatz = '$adresszusatz', mobil = '$mobil', titel = '$titel', anschreiben = '$anschreiben', land = '$land', vorname = '$vorname', geburtstag = '$geburtstag', geburtstagkalender = '$geburtstagkalender', geburtstagskarte = '$geburtstagskarte', marketingsperre = '$marketingsperre', interne_bemerkung = '$internebemerkung' WHERE id = '$lid'"); - $this->app->erp->RunHook('contact_person_updated', 1, $lid); - if($ansprechpartnerspeichern == ''){ - echo json_encode(array('status'=>1)); - $this->app->ExitXentral(); - } - } - }else{ - if($ansprechpartnerspeichern == ''){ - echo json_encode(array('status'=>0,'statusText'=>$error)); - $this->app->ExitXentral(); - } - } - - break; - case 'change': - $lid = $this->app->DB->real_escape_string($this->app->Secure->GetPOST('lid')); - $wert = $this->app->DB->real_escape_string($this->app->Secure->GetPOST('wert')); - $gruppe = $this->app->DB->real_escape_string($this->app->Secure->GetPOST('gruppe')); - if($lid != 0){ - $vorhanden = $this->app->DB->Select("SELECT id FROM ansprechpartner_gruppen WHERE ansprechpartner = '$lid' AND gruppe = '$gruppe'"); - if($vorhanden){ - $this->app->DB->Update("UPDATE ansprechpartner_gruppen SET aktiv = $wert WHERE ansprechpartner = '$lid' AND gruppe = '$gruppe'"); - }else{ - $this->app->DB->Insert("INSERT INTO ansprechpartner_gruppen (ansprechpartner, gruppe, aktiv) VALUES ('$lid', '$gruppe', '$wert')"); - } - } - echo json_encode('success'); - $this->app->ExitXentral(); - break; - case 'delete': - $lid = $this->app->DB->real_escape_string($this->app->Secure->GetGET('lid')); - $this->app->erp->RunHook('contact_person_deleted', 1, $lid); - $this->app->DB->Delete("DELETE FROM ansprechpartner WHERE id = '$lid'"); - echo json_encode('success'); - $this->app->ExitXentral(); - break; - default: - break; - } - - - if($cmd=="alslieferadresse") - { - $this->app->Tpl->Set('STARTDISABLEANREDE',""); - $als_lieferadresse=true; - $add_cmd = "&cmd=alslieferadresse"; - } - - $iframe = $this->app->Secure->GetGET("iframe"); - - if($iframe=="true") - $this->app->BuildNavigation=false; - - - if($delete==1) - { - $this->app->erp->RunHook('contact_person_deleted', 1, $lid); - $this->app->DB->Delete("DELETE FROM ansprechpartner WHERE id='$lid' AND adresse='$id' LIMIT 1"); - $this->app->Location->execute("index.php?module=adresse&action=ansprechpartner$add_cmd&id=$id&iframe=$iframe"); - } - $this->AdresseMenu(); - if($iframe != "true") - { - /* - $gruppen = $this->app->DB->SelectArr("SELECT ag.aktiv as agaktiv, gr.* FROM gruppen gr LEFT JOIN ansprechpartner_gruppen ag ON gr.id = ag.gruppe and ag.ansprechpartner = '$lid' WHERE art != 'preisgruppe'"); - if($gruppen) - { - $this->app->Tpl->Add('GRUPPEN',''); - - foreach($gruppen as $gruppe) - { - $this->app->Tpl->Add('GRUPPEN',''); - } - $this->app->Tpl->Add('GRUPPEN','
'.$gruppe['name'].'
'); - }*/ - - $this->app->YUI->TableSearch('GRUPPEN','adresse_ansprechpartnergruppen', "show","","",basename(__FILE__), __CLASS__); - $this->app->Tpl->Add('GRUPPEN','
- - '); - - $this->app->Tpl->Set('ID',$id); - $this->app->Tpl->Set('LID',$lid); - } else { - $this->app->Tpl->Set('GRUPPEAUSBLENDENSTART',""); - } - - $this->app->YUI->DatePicker("geburtstag"); - - - // neues arbeitspaket - /* - $widget = new WidgetAnsprechpartner($this->app,'TAB1'); - $widget->form->SpecialActionAfterExecute("none", - "index.php?module=adresse&action=ansprechpartner&id=$id&iframe=".$iframe.$add_cmd); - if($lid > 0) - { - - - $this->app->Tpl->Set('BUTTON',' - - '); - - $widget->form->SpecialActionAfterExecute("none", - "index.php?module=adresse&action=ansprechpartner&id=$id&iframe=".$iframe.$add_cmd); - $widget->Edit(); - } - else - { - $widget->Create(); - }*/ - - if($iframe=="true") { - if($als_lieferadresse) - $einfuegen = ""; - else - $einfuegen = ""; - } - //Formula lieferadresse - // easy table mit arbeitspaketen YUI als template - /*if($als_lieferadresse) - { - $this->app->Tpl->Add("TAB1","
Filter auf alle Ansprechpartner zugreifen
"); - $this->app->YUI->TableSearch('TAB1',"adresse_ansprechpartnerlieferadresselist"); - } - else*/ - $this->app->YUI->TableSearch('TAB1',"adresse_ansprechpartnerlist"); - //$this->app->Tpl->Parse('TAB1',"rahmen70.tpl"); - $this->app->Tpl->Set('AKTIV_TAB1',"selected"); - - $this->app->Tpl->Set('ADRESSID',$id); - - $adresstypen = $this->app->DB->SelectArr("SELECT type, bezeichnung FROM adresse_typ WHERE aktiv = 1 AND geloescht = 0".$this->app->erp->ProjektRechte()); - - $laender = $this->app->erp->GetSelectLaenderliste(); - - if($lid > 0){ - $adresseland = $this->app->DB->Select("SELECT land FROM ansprechpartner WHERE id = '$lid' LIMIT 1"); - }else{ - $adresseland = $this->app->DB->Select("SELECT land FROM adresse WHERE id = '$id' LIMIT 1"); - } - - if($adresseland == ""){ - $this->app->erp->Firmendaten('land'); - } - - - if($adresstypen != ""){ - $lieferadressetyp = ""; - foreach($adresstypen as $key=>$value){ - $lieferadressetyp .= ''; - } - } - - if($laender != ""){ - $lieferadresselaender = ""; - foreach ($laender as $landKey => $land) { - $lieferadresselaender .= ''; - } - } - - if($iframe=="true"){ - $this->app->Tpl->Set("ANSPRECHPARTNERTYP", $lieferadressetyp); - } - - $this->app->Tpl->Add("LANDSELECTED", $adresseland); - $this->app->Tpl->Add("ANSPRECHPARTNERLAENDER", $lieferadresselaender); - - - $this->app->YUI->CkEditor("interne_bemerkung", "basic"); - - - if($iframe=="true") - $this->app->Tpl->Parse('PAGE',"ansprechpartneruebersicht_popup.tpl"); - else - $this->app->Tpl->Parse('PAGE',"ansprechpartneruebersicht.tpl"); -} - -function AdresseAnsprechpartnerEditPopup() -{ - $frame = $this->app->Secure->GetGET("frame"); - $id = $this->app->Secure->GetGET('id'); - - if($frame=="false") - { - // hier nur fenster größe anpassen - $this->app->YUI->IframeDialog(600,320); - } else { - // nach page inhalt des dialogs ausgeben - $widget = new WidgetAnsprechpartner($this->app,'PAGE'); - $adresse = $this->app->DB->Select("SELECT adresse FROM ansprechpartner WHERE id='$id' LIMIT 1"); - $widget->form->SpecialActionAfterExecute("close_refresh", - "index.php?module=adresse&action=ansprechpartner&id=$adresse"); - - $widget->Edit(); - $this->app->BuildNavigation=false; - } -} - - - - -function AdresseLieferadressePopup() -{ - $frame = $this->app->Secure->GetGET("frame"); - $id = $this->app->Secure->GetGET('id'); - $this->AdresseLieferadresse(); - $this->app->BuildNavigation=false; -} - - -function AdresseLieferadresse() -{ - $this->AdresseMenu(); - $id = $this->app->DB->real_escape_string($this->app->Secure->GetGET('id')); - $lid = $this->app->DB->real_escape_string($this->app->Secure->GetGET('lid')); - - $delete = $this->app->Secure->GetGET("delete"); - $create = $this->app->Secure->GetGET("create"); - $module = $this->app->Secure->GetGET("module"); - $action = $this->app->Secure->GetGET("action"); - $iframe = $this->app->Secure->GetGET("iframe"); - - $cmd = $this->app->Secure->GetGET('cmd'); - - $lieferadressespeichern = $this->app->Secure->GetPOST('lieferadressespeichern'); - - if($lieferadressespeichern != ""){ - $cmd = "save"; - } - - switch ($cmd) { - case 'get': - $data = $this->app->DB->SelectRow("SELECT * FROM lieferadressen WHERE id = '$lid'"); - echo json_encode($data); - $this->app->ExitXentral(); - break; - case 'save': - $lid = $this->app->DB->real_escape_string($this->app->Secure->GetPOST('lid')); - $typ = $this->app->DB->real_escape_string($this->app->Secure->GetPOST('typ')); - $name = $this->app->DB->real_escape_string($this->app->Secure->GetPOST('name')); - $abteilung = $this->app->DB->real_escape_string($this->app->Secure->GetPOST('abteilung')); - $unterabteilung = $this->app->DB->real_escape_string($this->app->Secure->GetPOST('unterabteilung')); - $land = $this->app->DB->real_escape_string($this->app->Secure->GetPOST('land')); - $strasse = $this->app->DB->real_escape_string($this->app->Secure->GetPOST('strasse')); - $ort = $this->app->DB->real_escape_string($this->app->Secure->GetPOST('ort')); - $plz = $this->app->DB->real_escape_string($this->app->Secure->GetPOST('plz')); - $telefon = $this->app->DB->real_escape_string($this->app->Secure->GetPOST('telefon')); - $email = $this->app->DB->real_escape_string($this->app->Secure->GetPOST('email')); - $adresszusatz = $this->app->DB->real_escape_string($this->app->Secure->GetPOST('adresszusatz')); - $standardlieferadresse = $this->app->DB->real_escape_string($this->app->Secure->GetPOST('standardlieferadresse')); - $gln = $this->app->DB->real_escape_string($this->app->Secure->GetPOST('gln')); - $ustid = $this->app->DB->real_escape_string($this->app->Secure->GetPOST('ustid')); - $lieferbedingung = $this->app->DB->real_escape_string($this->app->Secure->GetPOST('lieferbedingung')); - $ust_befreit = $this->app->DB->real_escape_string($this->app->Secure->GetPOST('ust_befreit')); - $internebemerkung = $this->app->DB->real_escape_string($this->app->Secure->GetPOST('interne_bemerkung')); - $hinweis = $this->app->DB->real_escape_string($this->app->Secure->GetPOST('hinweis')); - - $error = ""; - - if(trim($name) == ""){ - $error .= "Bitte Name ausfüllen"."\n"; - } - - if($standardlieferadresse == 1){ - $this->app->DB->Update("UPDATE lieferadressen SET standardlieferadresse = 0 WHERE adresse='$id'"); - } - - if($lieferadressespeichern != ''){ - if($error != ''){ - $this->app->Tpl->Add("MESSAGE", "
$error
"); - }else{ - if($lid == '0'){ - //Neuen Eintrag anlegen - $this->app->DB->Insert("INSERT INTO lieferadressen (typ,name,abteilung,unterabteilung,land,strasse,ort,plz,adresse,telefon,email,adresszusatz,logdatei,standardlieferadresse,gln,ustid,lieferbedingung,ust_befreit,interne_bemerkung,hinweis) VALUES ('$typ','$name','$abteilung','$unterabteilung','$land','$strasse','$ort','$plz','$id','$telefon','$email','$adresszusatz',NOW(),'$standardlieferadresse','$gln','$ustid','$lieferbedingung','$ust_befreit','$internebemerkung','$hinweis')"); - }else{ - //Alten Eintrag updaten - $this->app->DB->Update("UPDATE lieferadressen SET typ='$typ',name='$name',abteilung='$abteilung',unterabteilung='$unterabteilung',land='$land', strasse='$strasse',ort='$ort',plz='$plz',telefon='$telefon',email='$email',adresszusatz='$adresszusatz',standardlieferadresse='$standardlieferadresse',gln='$gln',ustid='$ustid',lieferbedingung='$lieferbedingung',ust_befreit='$ust_befreit',interne_bemerkung = '$internebemerkung',hinweis='$hinweis' WHERE id = '$lid'"); - } - } - }else{ - if($error == ''){ - if($lid == '0'){ - //Neuen Eintrag anlegen - $this->app->DB->Insert("INSERT INTO lieferadressen (typ,name,abteilung,unterabteilung,land,strasse,ort,plz,adresse,telefon,email,adresszusatz,logdatei,standardlieferadresse,gln,ustid,lieferbedingung,ust_befreit,interne_bemerkung,hinweis) VALUES ('$typ','$name','$abteilung','$unterabteilung','$land','$strasse','$ort','$plz','$id','$telefon','$email','$adresszusatz',NOW(),'$standardlieferadresse','$gln','$ustid','$lieferbedingung','$ust_befreit','$internebemerkung','$hinweis')"); - echo json_encode(array('status'=>1)); - $this->app->ExitXentral(); - } - //Alten Eintrag updaten - $this->app->DB->Update("UPDATE lieferadressen SET typ='$typ',name='$name',abteilung='$abteilung',unterabteilung='$unterabteilung',land='$land', strasse='$strasse',ort='$ort',plz='$plz',telefon='$telefon',email='$email',adresszusatz='$adresszusatz',standardlieferadresse='$standardlieferadresse',gln='$gln',ustid='$ustid',lieferbedingung='$lieferbedingung',ust_befreit='$ust_befreit',interne_bemerkung = '$internebemerkung',hinweis='$hinweis' WHERE id = '$lid'"); - echo json_encode(array('status'=>1)); - $this->app->ExitXentral(); - - } - echo json_encode(array('status'=>0,'statusText'=>$error)); - $this->app->ExitXentral(); - - } - - - break; - case 'delete': - $lid = $this->app->DB->real_escape_string($this->app->Secure->GetGET('lid')); - $this->app->DB->Delete("DELETE FROM lieferadressen WHERE id = '$lid'"); - echo json_encode("success"); - $this->app->ExitXentral(); - break; - default: - break; - } - - - if($iframe=="true"){ - $this->app->BuildNavigation = false; - } - - if($iframe=="true") { - $einfuegen = ""; - } - - $this->app->Tpl->Set('ADRESSID',$id); - - $adresstypen = $this->app->DB->SelectArr("SELECT type, bezeichnung FROM adresse_typ WHERE aktiv = 1 AND geloescht = 0".$this->app->erp->ProjektRechte()); - - $laender = $this->app->erp->GetSelectLaenderliste(); - - if($lid > 0){ - $adresseland = $this->app->DB->Select("SELECT land FROM lieferadressen WHERE id = '$lid' LIMIT 1"); - }else{ - $adresseland = $this->app->DB->Select("SELECT land FROM adresse WHERE id = '$id' LIMIT 1"); - } - - if($adresseland == ""){ - $this->app->erp->Firmendaten('land'); - } - - if($adresstypen != ""){ - $lieferadressetyp = ""; - foreach($adresstypen as $key=>$value){ - $lieferadressetyp .= ''; - } - } - - if($laender != ""){ - $lieferadresselaender = ""; - foreach ($laender as $landKey => $land) { - $lieferadresselaender .= ''; - } - } - - if($iframe=="true"){ - $this->app->Tpl->Set("LIEFERADRESSETYP", $lieferadressetyp); - } - $this->app->Tpl->Add("LANDSELECTED", $adresseland); - $this->app->Tpl->Add("LIEFERADRESSELAENDER", $lieferadresselaender); - - - $this->app->YUI->AutoComplete("lieferbedingung", "lieferbedingungen"); - $this->app->YUI->CkEditor("interne_bemerkung", "basic"); - $this->app->YUI->CkEditor("hinweis", "basic"); - - - $this->app->Tpl->Add("TAB1", - - '
-
-
{|Filter|}
- -
-
'); - - - $this->app->YUI->TableSearch('TAB1',"adresse_lieferadressenlist"); - // $this->app->Tpl->Parse('TAB1',"rahmen70.tpl"); - $this->app->Tpl->Set('AKTIV_TAB1',"selected"); - - if($iframe=="true"){ - $this->app->Tpl->Parse('PAGE', "lieferadressenuebersicht_popup.tpl"); - } - else{ - $this->app->Tpl->Parse('PAGE', "lieferadressenuebersicht.tpl"); - } -} - -function AdresseLieferadressenEditPopup() -{ - $frame = $this->app->Secure->GetGET("frame"); - $id = $this->app->Secure->GetGET('id'); - - if($frame=="false") - { - // hier nur fenster größe anpassen - $this->app->YUI->IframeDialog(600,320); - } else { - // nach page inhalt des dialogs ausgeben - $widget = new WidgetLieferadressen($this->app,'PAGE'); - $adresse = $this->app->DB->Select("SELECT adresse FROM lieferadressen WHERE id='$id' LIMIT 1"); - $widget->form->SpecialActionAfterExecute("close_refresh", "index.php?module=adresse&action=lieferadresse&id=$adresse"); - - $widget->Edit(); - $this->app->BuildNavigation=false; - } -} - -function DruckerSelect($selected='') { - if($selected=='') { - $selected = $this->app->DB->Select("SELECT standarddrucker FROM user WHERE id='".$this->app->User->GetID()."' LIMIT 1"); - } - - $drucker = $this->app->DB->SelectArr("SELECT id, name FROM drucker WHERE firma='".$this->app->User->GetFirma()."' AND aktiv='1'"); - if(empty($drucker)) { - return ''; - } - $out = ''; - foreach($drucker as $dr) { - $mark = ''; - if($dr['id']==$selected) { - $mark='selected'; - } - $out .=""; - } - return $out; -} - -function AdresseBriefDrucken() { - - $id = $this->app->Secure->GetGET('id'); - $type = $this->app->Secure->GetGET('type'); - - if($type === 'kalender') { - $dokument = $this->app->DB->SelectRow( - sprintf( - "SELECT - *, DATE_FORMAT(von, '%%d.%%m.%%Y') as datumvon, DATE_FORMAT(bis, '%%d.%%m.%%Y') as datumbis, - DATE_FORMAT(von, '%%H:%%i') as zeitvon, DATE_FORMAT(bis, '%%H:%%i') as zeitbis - FROM kalender_event - WHERE id = %d", - $id - ) - ); - } - elseif($type === 'wiedervorlage') { - $dokument = $this->app->DB->SelectRow( - sprintf( - "SELECT *, - DATE_FORMAT(datum_angelegt, '%%d.%%m.%%Y') as datum_angelegt, - DATE_FORMAT(datum_erinnerung, '%%d.%%m.%%Y') as datum_erinnerung, - DATE_FORMAT(zeit_angelegt, '%%H:%%i') as zeit_angelegt, - DATE_FORMAT(zeit_erinnerung, '%%H:%%i') as zeit_erinnerung - FROM wiedervorlage - WHERE id = %d", - $id - ) - ); - } - else{ - $dokument = $this->app->DB->SelectRow( - sprintf( - "SELECT *, DATE_FORMAT(datum, '%%d.%%m.%%Y') as datum - FROM dokumente - WHERE id = %d", - $id - ) - ); - } - - if (empty($dokument)) { - echo 'Korrespondenz noch nicht gespeichert.'; - $this->app->ExitXentral(); - } - - $adresse = $this->app->DB->SelectRow( - sprintf( - 'SELECT * - FROM adresse - WHERE - id = %d', - ($type !== 'kalender' && $type !== 'wiedervorlage')?$dokument['adresse_to']:$dokument['adresse'] - ) - ); - - if ($this->app->erp->Firmendaten('modul_mlm')) { - $sponsor = $this->app->DB->SelectRow( - sprintf( - 'SELECT * - FROM adresse - WHERE id = %d' , $adresse['sponsor'] - ) - ); - if ($sponsor) { - $sponsor = $sponsor['kundennummer'] . ' ' . $sponsor['name']; - } - else { - $sponsor = 'Kein Sponsor'; - } - - $table = ''; - $table .= ''; - $table .= 'Vertragsbeginn:'; - $table .= ' ' . $adresse['mlmvertragsbeginn'] . ''; - $table .= 'Sponsor:'; - $table .= ' ' . $sponsor . ''; - $table .= ''; - - $this->app->Tpl->Add('SPONSOR',$table); - } - - - $this->app->Tpl->Add('KUNDENNUMMER',$adresse['kundennummer']); - $this->app->Tpl->Add('ANREDE', ucfirst($adresse['typ'])); - $this->app->Tpl->Add('NAME',$adresse['name']); - $this->app->Tpl->Add('ANSPRECHPARTNER',$dokument['ansprechpartner']); - $this->app->Tpl->Add('TELEFON',$adresse['telefon']); - $this->app->Tpl->Add('TELEFAX',$adresse['telefax']); - $this->app->Tpl->Add('TITEL',$adresse['titel']); - $this->app->Tpl->Add('ANSCHREIBEN',$adresse['anschreiben']); - $this->app->Tpl->Add('ABTEILUNG',$adresse['abteilung']); - $this->app->Tpl->Add('EMAIL',$adresse['email']); - $this->app->Tpl->Add('UNTERABTEILUNG',$adresse['unterabteilung']); - $this->app->Tpl->Add('MOBIL',$adresse['mobil']); - $this->app->Tpl->Add('ADRESSZUSATZ',$adresse['adresszusatz']); - $this->app->Tpl->Add('INTERNETSEITE',$adresse['internetseite']); - $this->app->Tpl->Add('STRASSE',$adresse['strasse']); - - if ($adresse['kundenfreigabe'] == 1) { - $this->app->Tpl->Add('KUNDENFREIGABE','Ja'); - } else { - $this->app->Tpl->Add('KUNDENFREIGABE','Nein'); - } - - $this->app->Tpl->Add('PLZORT',$adresse['plz'] . ' ' . $adresse['ort']); - - if ($adresse['abweichende_rechnungsadresse'] == 1) { - $this->app->Tpl->Add('ABWEICHENDE_RECHNUNGSADRESSE','Ja'); - } else { - $this->app->Tpl->Add('ABWEICHENDE_RECHNUNGSADRESSE','Nein'); - } - - $this->app->Tpl->Add('LAND',$adresse['land']); - if($type !== 'kalender' && $type !== 'wiedervorlage'){ - $this->app->Tpl->Add('DATUMTEXT','Datum:'); - $this->app->Tpl->Add('UHRZEITTEXT','Uhrzeit:'); - $this->app->Tpl->Add('DATUM',$dokument['datum']); - $this->app->Tpl->Add('UHRZEIT',$dokument['uhrzeit']); - $this->app->Tpl->Add('BETREFF',$dokument['betreff']); - $this->app->Tpl->Add('BEARBEITER',$dokument['bearbeiter']); - $this->app->Tpl->Add('TEXT',nl2br($dokument['content'])); - }elseif($type === 'kalender'){ - $this->app->Tpl->Add('DATUMTEXT','von:'); - $this->app->Tpl->Add('UHRZEITTEXT','bis:'); - $this->app->Tpl->Add('DATUM',$dokument['datumvon'].' '.$dokument['zeitvon']); - $this->app->Tpl->Add('UHRZEIT',$dokument['datumbis'].' '.$dokument['zeitbis']); - $this->app->Tpl->Add('BETREFF',$dokument['bezeichnung']); - $this->app->Tpl->Add('BEARBEITER',$this->app->DB->Select("SELECT name FROM adresse WHERE id = '".$dokument['angelegtvon']."' LIMIT 1")); - $this->app->Tpl->Add('TEXT',nl2br($dokument['beschreibung'])); - }elseif($type === 'wiedervorlage') - { - $this->app->Tpl->Add('DATUMTEXT','angelegt:'); - $this->app->Tpl->Add('UHRZEITTEXT','Erinnerung:'); - $this->app->Tpl->Add('DATUM',$dokument['datum_angelegt'].' '.$dokument['zeit_angelegt']); - $this->app->Tpl->Add('UHRZEIT',$dokument['datum_erinnerung'].' '.$dokument['zeit_erinnerung']); - $this->app->Tpl->Add('BETREFF',$dokument['bezeichnung']); - $this->app->Tpl->Add('BEARBEITER',$this->app->DB->Select("SELECT name FROM adresse WHERE id = '".$dokument['bearbeiter']."' LIMIT 1")); - $this->app->Tpl->Add('TEXT',nl2br($dokument['beschreibung'])); - } - - $this->app->Tpl->Output('adresse_brief_druck.tpl'); - - $this->app->ExitXentral(); -} - -function AdresseBriefErstellen() { - - //$this->AdresseMenu(); - - $id = $this->app->Secure->GetGET('id'); - $type = $this->app->Secure->GetGET('type'); - - $adresse = $this->app->DB->SelectRow( - sprintf( - 'SELECT * - FROM adresse - WHERE id = %d' , $id - ) - ); - $this->app->Tpl->Add('EMPFAENGER',$adresse['name']); - //$kundennummer = $this->app->DB->Select("SELECT kundennummer from adresse where id = ".(int)$id).""; - //$this->app->Tpl->Add(BEARBEITER,$kundennummer." ".$this->app->DB->Select("SELECT name from adresse where id = ".(int)$id)); - $this->app->Tpl->Add('ADRESSE',$adresse['kundennummer']." ".$adresse['name']); - $this->app->Tpl->Add('MITARBEITER',$this->app->DB->Select("SELECT mitarbeiternummer from adresse where id = ".$this->app->User->GetAdresse()." limit 1")." ".$this->app->User->GetName()); - $this->app->Tpl->Add('BEARBEITER',$this->app->DB->Select("SELECT mitarbeiternummer from adresse where id = ".$this->app->User->GetAdresse()." limit 1")." ".$this->app->User->GetName()); - $this->app->Tpl->Add('BEARBEITEROHNENUMMER',$this->app->User->GetName()); - //$this->app->BuildNavigation=false; - - $this->app->YUI->DatePicker("datum"); - $this->app->Tpl->Add('DATUM', date('d.m.Y')); - $this->app->Tpl->Add('UHRZEIT', date('H:i')); - $this->app->Tpl->Add('DATUMBIS', date('d.m.Y')); - $this->app->Tpl->Add('UHRZEITBIS', date('H:i')); - $this->app->Tpl->Add('DATUM_ERINNERUNG',date("d.m.Y",strtotime ("+1 day"))); - $this->app->Tpl->Add('UHRZEIT_ERINNERUNG', date('H:i')); - - - if ($type) { - switch ($type) { - case 'wiedervorlage': - $this->app->YUI->DatePicker("datum_erinnerung"); - if($this->app->erp->Firmendaten("briefhtml")=="1") - { - $this->app->YUI->CkEditor("content","internal", array('resize_dir'=>'both'), 'JQUERY2'); - } - for($i=0;$i<=100;$i += 10) - { - $this->app->Tpl->Add("CHANCE",""); - } - - $template = 'adresse_brief_wiedervorlage.tpl'; - break; - break; - case 'kalender': - $this->app->YUI->DatePicker("datum"); - $this->app->YUI->DatePicker("datumbis"); - $this->app->YUI->TimePicker("uhrzeit"); - $this->app->YUI->TimePicker("uhrzeitbis"); - $template = 'adresse_brief_kalender.tpl'; - if($this->app->erp->Firmendaten("briefhtml")=="1") - { - $this->app->YUI->CkEditor("content","internal", array('resize_dir'=>'both'), 'JQUERY2'); - } - break; - break; - case 'brief': - - $this->app->Tpl->Add('SENDER', $this->app->User->GetName()); - $this->app->Tpl->Add('STRASSE',$adresse['strasse']); - $this->app->Tpl->Add('PLZ',$adresse['plz']); - $this->app->Tpl->Add('ORT',$adresse['ort']); - $this->app->Tpl->Add('INTERNEBEZEICHNUNG',$adresse['internebezeichnung']); - - $laender = $this->app->erp->GetSelectLaenderliste(); - $laenderStr = ''; - foreach ($laender as $landKey => $land) { - $laenderStr .= ''; - } - - $this->app->Tpl->Add('LAND',$laenderStr); - - $this->app->Tpl->Set('DRUCKERSELECT', $this->DruckerSelect()); - if($this->app->erp->Firmendaten("briefhtml")=="1") - { - $this->app->YUI->CkEditor("content","internal", array('resize_dir'=>'both'), 'JQUERY2'); - } - - $template = 'adresse_brief_brief.tpl'; - break; - case 'email': - - $this->app->YUI->AutoComplete("email_an","emailname"); - $this->app->YUI->AutoCompleteAdd("email_cc","emailname"); - $this->app->YUI->AutoCompleteAdd("email_bcc","emailname"); - - $this->app->Tpl->Set('EMAIL_SENDER', $this->app->erp->GetSelectEmailMitName()); - if (!empty($adresse['email'])) { - $this->app->Tpl->Add('EMAIL_AN',str_replace('"','"',$adresse['name']) . ' <' . $adresse['email'] . '>'); - } - $anhaenge = ''; - $anhaenge .= 'Datei:'; -// $anhaenge .= 'Datei 2:'; -// $anhaenge .= 'Datei 3:'; - - - $this->app->Tpl->Add('ANHAENGEHERAUFLADEN', $anhaenge); - $anhaenge = 'Keine Anhänge vorhanden'; - $this->app->Tpl->Add('ANHAENGE', $anhaenge); - if($this->app->erp->Firmendaten("briefhtml")=="1") - { - $this->app->YUI->CkEditor("content","internal", array('resize_dir'=>'both'), 'JQUERY2'); - } - // $this->app->Tpl->Parse('PAGE',"adresse_brief_email.tpl"); - $template = 'adresse_brief_email.tpl'; - break; - case 'telefon': - // $this->app->Tpl->Parse('PAGE',"adresse_brief_telefon.tpl"); - if($this->app->erp->Firmendaten("briefhtml")=="1") - { - $this->app->YUI->CkEditor("content","internal", array('resize_dir'=>'both'), 'JQUERY2'); - } - $template = 'adresse_brief_telefon.tpl'; - break; - case 'notiz': - // $this->app->Tpl->Parse('PAGE',"adresse_brief_notiz.tpl"); - if($this->app->erp->Firmendaten("briefhtml")=="1") - { - $this->app->YUI->CkEditor("content","internal", array('resize_dir'=>'both'), 'JQUERY2'); - } - $template = 'adresse_brief_notiz.tpl'; - break; - default: - // $this->app->Tpl->Parse('PAGE',"adresse_brief_email.tpl"); - if($this->app->erp->Firmendaten("briefhtml")=="1") - { - $this->app->YUI->CkEditor("content","internal", array('resize_dir'=>'both'), 'JQUERY2'); - } - $template = 'adresse_brief_email.tpl'; - break; - } - } else { - $this->app->Tpl->Add('EMAIL',$adresse['email']); - // $this->app->Tpl->Parse('PAGE',"adresse_brief_email.tpl"); - if($this->app->erp->Firmendaten("briefhtml")=="1") - { - $this->app->YUI->CkEditor("content","internal", array('resize_dir'=>'both'), 'JQUERY2'); - } - $template = 'adresse_brief_email.tpl'; - } - - $this->app->Tpl->Output($template); - $this->app->ExitXentral(); - - /* - $this->app->BuildNavigation=false; - $this->app->Tpl->Set('INHALT',""); - $this->app->Tpl->Parse('PAGE',"adresse_brief_email.tpl"); - */ - - -} - - -function AdresseBriefCreatePDF($dokumentId, $display=true) { - - $data = $this->app->DB->SelectRow( - sprintf( - 'SELECT * - FROM dokumente - WHERE id = %d', - $dokumentId - ) - ); - - $data['firma'] = $this->app->DB->Select(' - SELECT - MAX(id) - FROM - firma - LIMIT 1 - '); - - $data['firma'] = $this->app->DB->Select(' - SELECT - absender - FROM - firmendaten - WHERE - id = ' . $data['firma'] . ' - '); - - $korrespondenz = new KorrespondenzPDF($this->app,$data['projekt']); - $korrespondenz->SetBetreff($this->app->erp->ReadyForPDF($data['betreff'])); - - $korrespondenz->SetDetail('Datum', $this->app->String->Convert($data['datum'],"%1-%2-%3","%3.%2.%1")); - $korrespondenz->SetDetail('Bearbeiter', $this->app->erp->ReadyForPDF($data['von'])); - - $korrespondenz->setRecipient( - array( - $this->app->erp->ReadyForPDF($data['an']), - $this->app->erp->ReadyForPDF($data['ansprechpartner']), - '', - $this->app->erp->ReadyForPDF($data['adresse']), - $data['plz'], - $this->app->erp->ReadyForPDF($data['ort']), - $data['land'] - ) - ); - - if(strpos($data['betreff'],'{') !== false) { - $data['betreff'] = $this->app->erp->ParseUserVars('adresse', $data['adresse_to'], $data['betreff']); - } - if(strpos($data['content'],'{') !== false) { - $data['content'] = $this->app->erp->ParseUserVars('adresse', $data['adresse_to'], $data['content']); - } - - $korrespondenz->setLetterDetails( - array( - $this->app->erp->ReadyForPDF($data['betreff']), - str_replace('\r\n',"\n\n",$this->app->erp->ReadyForPDF($data['content'])) - ) - ); - $korrespondenz->setAbsender($data['firma']); - - $korrespondenz->Create(); - - if($display) { - $korrespondenz->displayDocument(); - } else { - return $korrespondenz->displayTMP(); - } -} - -function AdresseBriefSaveDocument() { - - $data = array(); - $data['user'] = ''; - $data['datum'] = $this->app->Secure->GetPOST('datum'); - $data['von'] = $this->app->Secure->GetPOST('von'); - $data['firma'] = $this->app->Secure->GetPOST('firma'); - $data['ansprechpartner'] = $this->app->Secure->GetPOST('ansprechpartner'); - $data['an'] = $this->app->Secure->GetPOST('an'); - $data['email_an'] = $this->app->Secure->GetPOST('email_an'); - $data['email_cc'] = $this->app->Secure->GetPOST('email_cc'); - $data['email_bcc'] = $this->app->Secure->GetPOST('email_bcc'); - $data['firma_an'] = $this->app->Secure->GetPOST('firma_an'); - $data['adresse'] = $this->app->Secure->GetPOST('adresse'); - $data['plz'] = $this->app->Secure->GetPOST('plz'); - $data['ort'] = $this->app->Secure->GetPOST('ort'); - $data['internebezeichnung'] = $this->app->Secure->GetPOST('internebezeichnung'); - $data['land'] = $this->app->Secure->GetPOST('land'); - $data['betreff'] = $this->app->Secure->GetPOST('betreff'); - $data['content'] = $this->app->Secure->GetPOST('content'); - $data['signatur'] = $this->app->Secure->GetPOST('signatur'); - $data['send_as'] = $this->app->Secure->GetPOST('send_as'); - $data['email'] = $this->app->Secure->GetPOST('email'); - $data['printer'] = $this->app->Secure->GetPOST('printer'); - $data['fax'] = $this->app->Secure->GetPOST('fax'); - $data['user'] = $this->app->Secure->GetGET('id'); - $data['signatur'] = $this->app->Secure->GetPOST('signatur'); - $data['eintragId'] = $this->app->Secure->GetPOST('eintragId'); - $data['projekt'] = $this->app->Secure->GetPOST('projekt'); - - $data['projekt'] = explode(' ',$data['projekt']); - if($data['projekt'][0] !="") - $data['projekt'] = $this->app->DB->Select("SELECT id FROM projekt WHERE abkuerzung='".$data['projekt'][0]."' AND abkuerzung!='' LIMIT 1"); - - $data['uhrzeit'] = $this->app->Secure->GetPOST('uhrzeit'); - if (!$data['uhrzeit']) { - $data['uhrzeit'] = date('H:i:s'); - } - - $data['bearbeiter'] = $this->app->Secure->GetPOST('bearbeiter'); - - if (!empty($data['signatur'])) { - $data['signatur'] = 1; - } else { - $data['signatur'] = 0; - } - - if (!$data['datum']) { - $data['datum'] = date('d.m.Y'); - } - - $data['typ'] = $this->app->Secure->GetPOST('type'); - if (!$data['typ']) { - $data['typ'] = 'brieffax'; - } - - $adresse = $this->app->User->GetAdresse(); - $datum = $this->app->String->Convert($data['datum'],"%1.%2.%3","%3-%2-%1"); - - if (isset($data['eintragId']) && !empty($data['eintragId'])) { - - $this->app->DB->Insert(' - UPDATE - dokumente - SET - adresse_from = "' . $adresse . '", - adresse_to = "' . $data['user'] . '", - typ = "' . $data['typ'] . '", - von = "' . $data['von'] . '", - firma = "' . $data['firma'] . '", - ansprechpartner = "' . $data['ansprechpartner'] . '", - internebezeichnung = "' . $data['internebezeichnung'] . '", - an = "' . $data['an'] . '", - email_an = "' . $data['email_an'] . '", - email_cc = "' . $data['email_cc'] . '", - email_bcc = "' . $data['email_bcc'] . '", - firma_an = "' . $data['firma_an'] . '", - adresse = "' . $data['adresse'] . '", - plz = "' . $data['plz'] . '", - ort = "' . $data['ort'] . '", - land = "' . $data['land'] . '", - datum = "' . $datum . '", - betreff = "' . $data['betreff'] . '", - content = "' . $data['content'] . '", - signatur = "' . $data['signatur'] . '", - send_as = "' . $data['send_as'] . '", - email = "' . $data['email'] . '", - printer = "' . $data['printer'] . '", - fax = "' . $data['fax'] . '", - created = NOW(), - uhrzeit = "' . $data['uhrzeit'] . '", - projekt = "' . $data['projekt'] . '", - bearbeiter = "' . $data['bearbeiter'] . '" - WHERE - id = ' . $data['eintragId'] . ' - '); - - $returnId = $data['eintragId']; - - } else { - - $returnId = $this->app->erp->DokumentCreate($data,$adresse); - } - - if($returnId && $data['typ'] == 'email') - { - if(isset($_FILES['upload']) && is_array($_FILES['upload'])) - { - foreach($_FILES['upload']['tmp_name'] as $key => $file) - { - if($file != "") - { - $fileid = $this->app->erp->CreateDatei($_FILES['upload']['name'][$key], $_FILES['upload']['name'][$key], "", "", $_FILES['upload']['tmp_name'][$key], $this->app->User->GetName()); - // stichwoerter hinzufuegen - $this->app->erp->AddDateiStichwort($fileid, "anhang", "dokument", $returnId); - } - } - } - $this->app->Tpl->Add('AJAXBRIEF', " - $.ajax({ - url: 'index.php', - data: { - module: 'adresse', - action: 'briefbearbeiten', - typ : 'email', - id: ".$returnId." - }, - beforeSend: function() { - App.loading.open(); - }, - success: function(data) { - - $('.alleAnzeigen').show(); - - $('.adresse_brief_anlegen').css({ - width: $('.adresse_brief_tabelle').width() - }); - - - $('.adresse_brief_tabelle').find('fieldset').hide(); - $('.adresse_brief_tabelle').find('.adresse_brief_tabelle_view').hide(); - - $('.adresse_brief_anlegen') - .html(data) - .show(); - - fnFilterColumn8(0); - App.loading.close(); - } - }); - "); - } - - return $returnId; - -} - - -function AdresseBriefPreview($type = '', $id = '', $json = true) { - - if(!$type)$type = $this->app->Secure->GetGET('type'); - if(!$id)$id = $this->app->Secure->GetGET('id'); - - $query = ''; - if ($type) { - switch ($type) { - case 'dokumente': - $query .= ' - SELECT - id, - DATE_FORMAT(datum, "%d.%m.%Y") as datum, - betreff, - content - FROM - dokumente - WHERE - id = ' . $id . ' - '; - break; - case 'dokumente_send': - $query .= ' - SELECT - id, - DATE_FORMAT(zeit, "%d.%m.%Y") as datum, - betreff, - text as content - FROM - dokumente_send - WHERE - id = ' . $id . ' - '; - break; - case 'wiedervorlage': - $query .= ' - SELECT - id, - DATE_FORMAT(datum_angelegt, "%d.%m.%Y") as datum, - DATE_FORMAT(datum_erinnerung, "%d.%m.%Y") as datum_erinnerung, - DATE_FORMAT(zeit_angelegt,"%H:%i") as zeit_angelegt, - zeit_erinnerung, - bezeichnung as betreff, - beschreibung as content - FROM - wiedervorlage - WHERE - id = ' . $id . ' - '; - break; - case 'kalender': - $query .= ' - SELECT - id, - DATE_FORMAT(von, "%d.%m.%Y") as datum, - DATE_FORMAT(bis, "%d.%m.%Y") as datumbis, - DATE_FORMAT(von, "%H:%i:%s") as uhrzeit, - DATE_FORMAT(bis, "%H:%i:%s") as uhrzeitbis, - allDay, - public, - adresseintern, - bezeichnung as betreff, - beschreibung as content - FROM - kalender_event - WHERE - id = ' . $id . ' - '; - break; - } - - } - - $res = $this->app->DB->SelectRow($query); - if ($res) { -/* - if (isset($res['content'])) { - $res['content'] = '

'.nl2br($res['content']); - } -*/ - } - if(isset($res['datum']) && !$tickets) - { - if($type=="kalender" || $type=="dokumente_send") - $res['content'] = $res['content']; - else - $res['content'] = 'Angelegt am: '.$res['datum'].(isset($res['zeit_angelegt'])?' '.$res['zeit_angelegt']:'')."
".$res['content']; - } - - if($json) - { - echo json_encode($res); - } else { - //$ausg = "

".$res['datum'].' '.$res['betreff']."

".nl2br($res['content']); - //if($res['content']=="") $res['content']="Kein Inhalt vorhanden"; - - if($this->app->erp->isHTML($res['content'])) - $ausg = $res['content']; - else - $ausg = nl2br($res['content']); - echo $ausg; - } - $this->app->ExitXentral(); - -} - -function AdresseBriefBearbeiten() { - $id = $this->app->Secure->GetGET('id'); - $type = $this->app->Secure->GetGET('type'); - $typ = $this->app->Secure->GetGET('typ'); - - if($typ === 'kalender') - { - $query = ' - SELECT - id, - DATE_FORMAT(von, "%d.%m.%Y") as datum, - DATE_FORMAT(bis, "%d.%m.%Y") as datumbis, - DATE_FORMAT(von, "%H:%i") as uhrzeit, - DATE_FORMAT(bis, "%H:%i") as uhrzeitbis, - allDay, - public, - adresse, - ansprechpartner_id, - angelegtvon, - adresseintern, - bezeichnung, - beschreibung - FROM - kalender_event - WHERE - id = ' . $id . ' - '; - }elseif($typ === 'wiedervorlage') - { - $query = 'SELECT * from wiedervorlage where id = '.(int)$id; - }else{ - - $query = ' - SELECT - d.id, - d.typ, - d.von, - d.firma, - d.an, - d.email_an, - d.email_cc, - d.email_bcc, - d.ansprechpartner, - d.internebezeichnung, - d.adresse, - d.plz, - d.ort, - d.land, - DATE_FORMAT(d.datum, "%d.%m.%Y") as datum, - d.betreff, - d.content, - d.bearbeiter, - DATE_FORMAT(d.uhrzeit,"%H:%i") as uhrzeit, - CONCAT(p.abkuerzung," ",p.name) as projekt - FROM - dokumente d - LEFT JOIN projekt p ON p.id=d.projekt - WHERE - d.id = ' . $id . ' - '; - } - $dokument = $this->app->DB->SelectRow($query); - - if($typ === 'kalender') - { - $this->app->YUI->DateiPopup('DATEIENBUTTON', 'kalender_event', $dokument['id']); - $template = 'adresse_brief_kalender.tpl'; - if($this->app->erp->Firmendaten("briefhtml")=="1") - { - $this->app->YUI->CkEditor("content","internal", null, 'JQUERY2'); - } - $bearbeiternummer = $this->app->DB->Select("SELECT mitarbeiternummer from adresse where id = ".$dokument['angelegtvon']." limit 1"); - $adressdaten = $this->app->DB->SelectRow("SELECT name, kundennummer, lieferantennummer from adresse where id = ".$dokument['adresse']." limit 1"); - - if($dokument['ansprechpartner_id'] != "" && $dokument['ansprechpartner_id'] > 0){ - $ansprechpartnerId = $this->app->DB->Select("SELECT id FROM ansprechpartner WHERE id = '" . $dokument['ansprechpartner_id'] . "' LIMIT 1"); - if($ansprechpartnerId != "" && $ansprechpartnerId > 0){ - $ansprechpartnerName = $this->app->DB->Select("SELECT name FROM ansprechpartner WHERE id = '$ansprechpartnerId' LIMIT 1"); - $ansprechpartner = $ansprechpartnerId . ' ' . $ansprechpartnerName; - $ansprechpartner .= ' (' . $adressdaten['name'] . ', Kdr: ' . $adressdaten['kundennummer'] . ' '; - if($adressdaten['lieferantennummer'] != ''){ - $ansprechpartner .= 'Liefr: ' . $adressdaten['lieferantennummer']; - } - $ansprechpartner .= ')'; - $dokument['ansprechpartner'] = $ansprechpartner; - } - } - - $datum = $dokument['datum']; - $datumbis = $dokument['datumbis']; - $this->app->Tpl->Add('UHRZEIT',$dokument['uhrzeit']); - $this->app->Tpl->Add('UHRZEITBIS',$dokument['uhrzeitbis']); - $this->app->Tpl->Add('DATUM',$datum); - $this->app->Tpl->Add('DATUMBIS',$datumbis); - if($dokument['allDay'])$this->app->Tpl->Set('ALLDAY',' checked="checked" '); - if($dokument['public'])$this->app->Tpl->Set('PUBLIC',' checked="checked" '); - $this->app->Tpl->Add('ADRESSEINTERN',$this->app->DB->Select("SELECT CONCAT(id,' ',name) from adresse where id = ".$dokument['adresseintern']." limit 1")); - $this->app->Tpl->Add('CONTENT',$dokument['beschreibung']); - $this->app->Tpl->Add('BETREFF',$dokument['bezeichnung']); - $this->app->Tpl->Add('BEARBEITER',$bearbeiternummer?$bearbeiternummer.' '.$this->app->DB->Select("SELECT name from adresse where id = ".$dokument['angelegtvon']." limit 1"):''); - $this->app->Tpl->Add('ANSPRECHPARTNER',$dokument['ansprechpartner']); - $check = $this->app->DB->SelectArr("SELECT * FROM layoutvorlagen WHERE kategorie like 'Besuchsbericht' order by name"); - if($check) - { - $this->app->Tpl->Set('LAYOUTBUTTON',''); - } - - } - elseif($typ == 'wiedervorlage') - { - if($this->app->erp->Firmendaten("briefhtml")=="1") - { - $this->app->YUI->CkEditor("content","internal",null, 'JQUERY2'); - } - $this->app->YUI->DateiPopup('DATEIENBUTTON', 'wiedervorlage', $dokument['id']); - $template = 'adresse_brief_wiedervorlage.tpl'; - $mitarbeiternummer = $this->app->DB->Select("SELECT mitarbeiternummer from adresse where id = ".$dokument['adresse_mitarbeiter']." limit 1"); - $bearbeiternummer = $this->app->DB->Select("SELECT mitarbeiternummer from adresse where id = ".$dokument['bearbeiter']." limit 1"); - $kundennummer = $this->app->DB->Select("SELECT kundennummer from adresse where id = ".$dokument['adresse']." limit 1"); - $adressdaten = $this->app->DB->SelectRow("SELECT name, kundennummer, lieferantennummer from adresse where id = ".$dokument['adresse']." limit 1"); - - if($dokument['ansprechpartner_id'] != "" && $dokument['ansprechpartner_id'] > 0){ - $ansprechpartnerId = $this->app->DB->Select("SELECT id FROM ansprechpartner WHERE id = '" . $dokument['ansprechpartner_id'] . "' LIMIT 1"); - if($ansprechpartnerId != "" && $ansprechpartnerId > 0){ - $ansprechpartnerName = $this->app->DB->Select("SELECT name FROM ansprechpartner WHERE id = '$ansprechpartnerId' LIMIT 1"); - $ansprechpartner = $ansprechpartnerId . ' ' . $ansprechpartnerName; - $ansprechpartner .= ' (' . $adressdaten['name'] . ', Kdr: ' . $adressdaten['kundennummer'] . ' '; - if($adressdaten['lieferantennummer'] != ''){ - $ansprechpartner .= 'Liefr: ' . $adressdaten['lieferantennummer']; - } - $ansprechpartner .= ')'; - $dokument['ansprechpartner'] = $ansprechpartner; - } - } - - $dokument['datum_angelegt'] = $this->app->String->Convert($dokument['datum_angelegt'],"%1-%2-%3","%3.%2.%1"); - $dokument['datum_erinnerung'] = $this->app->String->Convert($dokument['datum_erinnerung'],"%1-%2-%3","%3.%2.%1"); - $this->app->Tpl->Add('DATUM',$dokument['datum_angelegt']); - $this->app->Tpl->Add('UHRZEIT',$dokument['zeit_angelegt']); - $this->app->Tpl->Add('BEARBEITER',$bearbeiternummer?$bearbeiternummer.' '.$this->app->DB->Select("SELECT name from adresse where id = ".$dokument['bearbeiter']." limit 1"):''); - $this->app->Tpl->Add('BETREFF',$dokument['bezeichnung']); - $this->app->Tpl->Add('MITARBEITER',$mitarbeiternummer?$mitarbeiternummer.' '.$this->app->DB->Select("SELECT name from adresse where id = ".$dokument['adresse_mitarbeiter']." limit 1"):''); - $this->app->Tpl->Add('ADRESSE',$kundennummer?$kundennummer.' '.$this->app->DB->Select("SELECT name from adresse where id = ".$dokument['adresse']." limit 1"):''); - $this->app->Tpl->Add('CONTENT',$dokument['beschreibung']); - $this->app->Tpl->Add('DATUM_ERINNERUNG',$dokument['datum_erinnerung']); - $this->app->Tpl->Add('UHRZEIT_ERINNERUNG',$dokument['zeit_erinnerung']); - if($dokument['abgeschlossen'])$this->app->Tpl->Add('ABGESCHLOSSEN',' checked="checked" '); - if($dokument['prio'])$this->app->Tpl->Add('PRIO',' checked="checked" '); - - $this->app->Tpl->Set('STAGES',$this->app->DB->Select("SELECT CONCAT(id,' ',kurzbezeichnung,' (',name,')') FROM wiedervorlage_stages WHERE id='".$dokument['stages']."' LIMIT 1")); - $this->app->Tpl->Add('BETRAG',number_format($dokument['betrag'],2,",",".")); - for($i=0;$i<=100;$i += 10) - { - $this->app->Tpl->Add("CHANCE",""); - } - - $this->app->Tpl->Add('PROJEKT',$this->app->DB->Select("SELECT CONCAT(abkuerzung,' ',name) FROM projekt WHERE id='".$dokument['projekt']."' LIMIT 1")); - $this->app->Tpl->Add('ANSPRECHPARTNER',$dokument['ansprechpartner']); - - }else { - switch($dokument['typ']) { - case 'brief': - if($this->app->erp->Firmendaten("briefhtml")=="1") - { - $this->app->YUI->CkEditor("content","belege", null, 'JQUERY2'); - } - $this->app->YUI->DateiPopup('DATEIENBUTTON', 'dokumente', $dokument['id']); - $template = 'adresse_brief_brief.tpl'; - break; - case 'email': - - - $anhaenge = ''; - $anhaenge .= 'Datei:'; -// $anhaenge .= 'Datei 2:'; -// $anhaenge .= 'Datei 3:'; - - $this->app->Tpl->Add('ANHAENGEHERAUFLADEN', $anhaenge); - $anhaenge = ""; - - $anhaengedb = $this->app->DB->SelectArr("SELECT ds.id, ds.datei, d.titel FROM datei_stichwoerter ds INNER JOIN datei d on ds.datei = d.id WHERE ds.parameter = '$id' AND ds.objekt = 'dokument' AND ds.subjekt = 'anhang' and d.geloescht <> 1"); - if($anhaengedb) - { - foreach($anhaengedb as $anhang) - { - $anhaenge .= ''.$anhang['titel'].''; - } - } else { - $anhaenge .= 'Keine Anhänge vorhanden'; - } - - $this->app->Tpl->Add('ANHAENGE', $anhaenge); - - if($this->app->erp->Firmendaten("briefhtml")=="1") - { - $this->app->YUI->CkEditor("content","internal", null, 'JQUERY2'); - } - $this->app->YUI->DateiPopup('DATEIENBUTTON', 'dokumente', $dokument['id']); - $template = 'adresse_brief_email.tpl'; - break; - case 'telefon': - if($this->app->erp->Firmendaten("briefhtml")=="1") - { - $this->app->YUI->CkEditor("content","internal", null, 'JQUERY2'); - } - $this->app->YUI->DateiPopup('DATEIENBUTTON', 'dokumente', $dokument['id']); - $template = 'adresse_brief_telefon.tpl'; - break; - case 'notiz': - if($this->app->erp->Firmendaten("briefhtml")=="1") - { - $this->app->YUI->CkEditor("content","internal", null, 'JQUERY2'); - } - $this->app->YUI->DateiPopup('DATEIENBUTTON', 'dokumente', $dokument['id']); - $template = 'adresse_brief_notiz.tpl'; - break; - default: - if($this->app->erp->Firmendaten("briefhtml")=="1") - { - $this->app->YUI->CkEditor("content","internal", null, 'JQUERY2'); - } - $template = 'adresse_brief_brief.tpl'; - break; - } - $this->app->Tpl->Add('EMAIL_SENDER', $this->app->erp->GetSelectEmailMitName($dokument['von'])); - $this->app->Tpl->Add('EMPFAENGER',$dokument['an']); - $this->app->Tpl->Add('SENDER',$dokument['von']); - $this->app->Tpl->Add('ANSPRECHPARTNER',$dokument['ansprechpartner']); - $this->app->Tpl->Add('DATUM',$dokument['datum']); - $this->app->Tpl->Add('STRASSE',$dokument['adresse']); - $this->app->Tpl->Add('PLZ',$dokument['plz']); - $this->app->Tpl->Add('ORT',$dokument['ort']); - - $this->app->Tpl->Add('BEARBEITER',$dokument['bearbeiter']); - $this->app->Tpl->Add('UHRZEIT',$dokument['uhrzeit']); - - // $this->app->Tpl->Add(LAND,$dokument['land']); - - $laender = $this->app->erp->GetSelectLaenderliste(); - $laenderStr = ''; - foreach ($laender as $landKey => $land) { - $laenderStr .= ''; - } - - $this->app->Tpl->Add('LAND',$laenderStr); - - $this->app->Tpl->Add('BETREFF',$dokument['betreff']); - $this->app->Tpl->Add('INTERNEBEZEICHNUNG',$dokument['internebezeichnung']); - $this->app->Tpl->Add('CONTENT',$dokument['content']); - - $this->app->Tpl->Add('PROJEKT',$dokument['projekt']); - - $this->app->Tpl->Add('EMAIL_AN',$dokument['email_an']); - $this->app->Tpl->Add('EMAIL_CC',$dokument['email_cc']); - $this->app->Tpl->Add('EMAIL_BCC',$dokument['email_bcc']); - } - - - - $this->app->Tpl->Add('EINTRAGID',$dokument['id']); - - $this->app->Tpl->Add('DRUCKERSELECT', $this->DruckerSelect()); - - $this->app->Tpl->Output($template); - - $this->app->ExitXentral(); - -} - -function AdresseKorrBriefPdf() { - - $id = $this->app->Secure->GetGET('id'); - $this->AdresseBriefCreatePDF($id, true); - $this->app->ExitXentral(); -} - -function AdresseKorrBriefDelete() { - - $typ = $this->app->Secure->GetGET('typ'); - $id = $this->app->Secure->GetGET('id'); - if(strtolower($typ) === 'kalender') - { - $this->app->DB->Delete("DELETE FROM kalender_user where event = '$id'"); - $this->app->DB->Delete(' - DELETE FROM - kalender_event - WHERE - id = "' . $id . '" - '); - }elseif(strtolower($typ) === 'wiedervorlage') - { - $this->app->DB->Delete(' - DELETE FROM - wiedervorlage - WHERE - id = ' . $id . ' - '); - - - }else{ - $this->app->DB->Delete(' - DELETE FROM - dokumente - WHERE - id = ' . $id . ' - '); - - - } - - $json['status'] = 0; - $json['statusText'] = 'Email konnte nicht gesendet werden.'; - echo json_encode($json); - $this->app->ExitXentral(); -} - - -function AdresseBriefSaveKalender() -{ - $data = array(); - $data['id'] = $this->app->Secure->GetPOST('eintragId'); - $data['adresse'] = $this->app->Secure->GetGET('id'); - $data['adresseintern'] = $this->app->Secure->GetPOST('adresseintern'); - $data['bezeichnung'] = $this->app->Secure->GetPOST('betreff'); - $data['beschreibung'] = $this->app->Secure->GetPOST('content'); - - $data['projekt'] = $this->app->Secure->GetPOST("projekt"); - $data['projekt'] = explode(' ',$data['projekt']); - $data['projekt'] = $this->app->DB->Select("SELECT id FROM projekt WHERE abkuerzung='".$data['projekt'][0]."' AND abkuerzung!='' LIMIT 1"); - - $data['angelegtvon'] = (int)$this->app->DB->Select("SELECT id from adresse where mitarbeiternummer = '" .(int)$this->app->Secure->GetPOST('angelegtvon')."'"); - - $tmp = trim($data['adresseintern']); - $rest = explode(" ",$tmp); - $data['adresseintern'] = $rest[0]; - - - $data['von'] = $this->app->String->Convert($_POST['datum'],"%1.%2.%3","%3-%2-%1"); - $uhrzeit = $_POST['uhrzeit']?$_POST['uhrzeit']:'0:00'; - if(!$uhrzeit)$uhrzeit = '0:00'; - $data['von'] = $data['von'].' '.$uhrzeit; - $data['bis'] = $this->app->String->Convert($_POST['datumbis'],"%1.%2.%3","%3-%2-%1"); - $uhrzeitbis = $_POST['uhrzeitbis']?$_POST['uhrzeitbis']:'0:00'; - if(!$uhrzeitbis)$uhrzeitbis = '0:00'; - $data['bis'] = $data['bis'].' '.$uhrzeitbis; - - $data['allDay'] = $this->app->Secure->GetPOST("allDay")?1:0; - $data['public'] = $this->app->Secure->GetPOST("public")?1:0; - - $data['ansprechpartner_id'] = $this->app->Secure->GetPOST("ansprechpartner"); - if($data['ansprechpartner_id'] != ""){ - $ansprechpartner = explode(" ", $data['ansprechpartner_id']); - $ansprechpartnerId = $ansprechpartner[0]; - $ansprechpartnerId = $this->app->DB->Select("SELECT id FROM ansprechpartner WHERE id = '$ansprechpartnerId' LIMIT 1"); - if($ansprechpartnerId === '' || $ansprechpartnerId <= 0){ - $ansprechpartnerId = 0; - } - }else{ - $ansprechpartnerId = 0; - } - $data['ansprechpartner_id'] = $ansprechpartnerId; - - - if($data['von'] && $data['bezeichnung']) - { - - $id = 0; - if($data['id']) - { - $id = $this->app->DB->Select("SELECT id from kalender_event where id = ".(int)$data['id']." Limit 1"); - } - if($id) - { - $sql = 'UPDATE kalender_event set '; - $first = true; - foreach($data as $k => $v) - { - if($k != 'id') - { - if(!$first)$sql .= ', '; - $first = false; - $sql .= $k." = '".$v."'"; - - } - - } - $sql .= " where id = ".$id; - - if($this->app->DB->Update($sql)){ - $calendarActionType = 'modified'; - $this->app->erp->RunHook('kalender_event_hook', 2, $id, $calendarActionType); - return $id; - }; - return false; - } else { - - $sql = "INSERT INTO kalender_event ("; - $first = true; - foreach($data as $k => $v) - { - if($k != 'id') - { - if(!$first)$sql .= ', '; - $first = false; - $sql .= $k; - } - } - $sql .= ") values ("; - $first = true; - foreach($data as $k => $v) - { - if($k != 'id') - { - if(!$first)$sql .= ', '; - $first = false; - $sql .= "'".$v."'"; - } - } - $sql .= ")"; - - if($this->app->DB->Insert($sql)){ - $result = $this->app->DB->GetInsertID(); - - $calendarActionType = 'added'; - $this->app->erp->RunHook('kalender_event_hook', 2, $result, $calendarActionType); - - $this->app->DB->Insert("INSERT INTO kalender_user (id,event,userid) VALUES ('','$result','".$this->app->User->GetID()."')"); - return $result; - } - return false; - } - - - - } else { - - } - return false; -} - - -function AdresseBriefSaveWiedervorlage() -{ - $data = array(); - $data['id'] = $this->app->Secure->GetPOST('eintragId'); - $data['adresse'] = $this->app->Secure->GetGET('id'); - $bearbeiterdaten = explode(" ",$this->app->Secure->GetPOST('bearbeiter')); - $data['bearbeiter'] = (int)$this->app->DB->Select("SELECT id from adresse where mitarbeiternummer = '".$bearbeiterdaten[0]."'"); - $mitarbeiterdaten = explode(" ",$this->app->Secure->GetPOST('adresse_mitarbeiter')); - $data['adresse_mitarbeiter'] = (int)$this->app->DB->Select("SELECT id from adresse where mitarbeiternummer = '".$mitarbeiterdaten[0]."'"); - $data['bezeichnung'] = $this->app->Secure->GetPOST('betreff'); - $data['beschreibung'] = $this->app->Secure->GetPOST('content'); - $data['stages'] = $this->app->Secure->GetPOST('stages'); - $data['betrag'] = $this->app->Secure->GetPOST('betrag'); - $data['chance'] = $this->app->Secure->GetPOST('chance'); - - - $data['datum_erinnerung'] = $_POST['datumerinnerung']; - $data['zeit_erinnerung'] = $_POST['uhrzeiterinnerung']?$_POST['uhrzeiterinnerung']:'0:00'; - if(!$data['datum_erinnerung'])$data['datum_erinnerung'] = '0:00'; - $data['module'] = $this->app->Secure->GetGET("module"); - $data['action'] = $this->app->Secure->GetGET("action"); - $data['abgeschlossen'] = (int)$this->app->Secure->GetPOST("abgeschlossen"); - $data['prio'] = (int)$this->app->Secure->GetPOST("prio"); - $data['projekt'] = $this->app->Secure->GetPOST("projekt"); - if (!empty($data['projekt'])) { - $data['projekt'] = explode(' ',$data['projekt']); - $data['projekt'] = (int)$this->app->DB->Select("SELECT id FROM projekt WHERE abkuerzung='".$data['projekt'][0]."' AND abkuerzung!='' LIMIT 1"); - } else { - // Kein Projekt gewählt - $projekt = (int)$this->app->DB->Select("SELECT f.standardprojekt FROM `firma` AS f WHERE f.id='".$this->app->User->GetFirma()."' LIMIT 1"); - $projekt_bevorzugt = (int)$this->app->DB->Select("SELECT u.projekt_bevorzugen FROM `user` AS u WHERE u.id='".$this->app->User->GetID()."' LIMIT 1"); - if($projekt_bevorzugt === 1){ - $projekt = (int)$this->app->DB->Select("SELECT projekt FROM user WHERE id='".$this->app->User->GetID()."' LIMIT 1"); - } - $data['projekt'] = $projekt; - } - - $data['stages'] = explode(' ',$data['stages']); - $data['stages'] = $data['stages'][0]; - $data['betrag'] = str_replace(',','.',$data['betrag']); - - $data['ansprechpartner_id'] = $this->app->Secure->GetPOST("ansprechpartner"); - if($data['ansprechpartner_id'] != ""){ - $ansprechpartner = explode(" ", $data['ansprechpartner_id']); - $ansprechpartnerId = $ansprechpartner[0]; - $ansprechpartnerId = $this->app->DB->Select("SELECT id FROM ansprechpartner WHERE id = '$ansprechpartnerId' LIMIT 1"); - if($ansprechpartnerId === '' || $ansprechpartnerId <= 0){ - $ansprechpartnerId = 0; - } - }else{ - $ansprechpartnerId = 0; - } - $data['ansprechpartner_id'] = $ansprechpartnerId; - - $data['datum_erinnerung'] = $this->app->String->Convert($data['datum_erinnerung'],"%1.%2.%3","%3-%2-%1"); - if($data['datum_erinnerung'] && $data['zeit_erinnerung'] && $data['bezeichnung']) - { - - $id = 0; - if($data['id']) - { - $id = $this->app->DB->Select("SELECT id from wiedervorlage where id = ".(int)$data['id']." Limit 1"); - } - if($id) - { - $sql = 'UPDATE wiedervorlage set '; - $first = true; - foreach($data as $k => $v) - { - if($k != 'id') - { - if(!$first)$sql .= ', '; - $first = false; - $sql .= $k." = '".$v."'"; - - } - - } - $sql .= " where id = ".$id; - - if($this->app->DB->Update($sql))return $id; - return false; - } else { - - $data['datum_angelegt'] = $this->app->Secure->GetPOST('datum'); - $data['zeit_angelegt'] = $this->app->Secure->GetPOST('uhrzeit'); - $data['datum_angelegt'] = $this->app->String->Convert($data['datum_angelegt'],"%1.%2.%3","%3-%2-%1"); - - $sql = "INSERT INTO wiedervorlage ("; - $first = true; - foreach($data as $k => $v) - { - if($k != 'id') - { - if(!$first)$sql .= ', '; - $first = false; - $sql .= $k; - } - } - $sql .= ") values ("; - $first = true; - foreach($data as $k => $v) - { - if($k != 'id') - { - if(!$first)$sql .= ', '; - $first = false; - $sql .= "'".$v."'"; - } - } - $sql .= ")"; - - if($this->app->DB->Insert($sql))return $this->app->DB->GetInsertID(); - return false; - } - - - - } else { - - } - return false; - -} - -function AdresseBrief() { - if($this->app->Secure->GetGET('cmd') == 'layoutoeffnen') - { - $layout = $this->app->Secure->GetGET('layout'); - $id = $this->app->Secure->GetGET('id'); - $query = ' - SELECT - ke.id, - DATE_FORMAT(ke.von, "%d.%m.%Y") as datum, - DATE_FORMAT(ke.bis, "%d.%m.%Y") as datumbis, - DATE_FORMAT(ke.von, "%H:%i") as uhrzeit, - DATE_FORMAT(ke.bis, "%H:%i") as uhrzeitbis, - ke.allDay, - ke.public, - ke.adresse, - ke.angelegtvon, - ke.adresseintern, - ke.bezeichnung, - ke.beschreibung, - a.telefon as telefonmitarbeiter, - a.name as vertriebmitarbeiter, - a.email as emailmitarbeiter, - a2.name as bearbeiter - FROM - kalender_event ke - LEFT JOIN adresse a ON a.id=ke.adresseintern - LEFT JOIN adresse a2 ON a2.id=ke.angelegtvon - WHERE - ke.id = ' . $id . ' - '; - $kalenderevent = $this->app->DB->SelectRow($query); - - $data = array(); - - if($kalenderevent) - { - foreach($kalenderevent as $key => $value) - { - $data[strtoupper($key)] = $value; - } - } - $adressen = $this->app->DB->SelectRow("SELECT * FROM adresse WHERE id = '".$kalenderevent['adresse']."'"); - if($adressen) - { - foreach($adressen as $key => $value) - { - $data['ADRESSE_'.strtoupper($key)] = $value; - } - } - if(class_exists('LayoutvorlagenPDF')) - { - $pdf = new LayoutvorlagenPDF($this->app); - $pdf->SetLanguage('deutsch'); - $layout = $this->app->DB->SelectRow('SELECT * FROM layoutvorlagen WHERE id = ' . $layout); - - $layoutpositionen = $this->app->DB->SelectArr('SELECT * FROM layoutvorlagen_positionen WHERE layoutvorlage = ' . $layout['id']); - if($pdf->GetLayoutvorlage($layout['id'],$data)) { - $pdf->filename = 'Besuchsbericht'.($adressen['kundennummer']?'_'.$adressen['kundennummer']:'').'.pdf'; - $pdf->displayDocument($name); - } - } - $this->app->ExitXentral(); - } - $this->app->YUI->AutoComplete("ansprechpartner","ansprechpartner","","&adresse=$id"); - $this->app->YUI->AutoComplete("projekt","projektname",1); - $this->app->YUI->TagEditor('internebezeichnung', array('width'=>370)); - - $pType = $this->app->Secure->GetPOST('type'); - $do = $this->app->Secure->GetPOST('do'); - - $json = array(); - - $json['status'] = 0; - $json['statusText'] = ''; - - if (isset($pType) && !empty($pType)) { - - $newId = 0; - if($pType !== 'wiedervorlage' && $pType !== 'kalender') - { - $newId = $this->AdresseBriefSaveDocument(); - } else { - if($pType === 'kalender') - { - $newId = $this->AdresseBriefSaveKalender(); - }else{ - $newId = $this->AdresseBriefSaveWiedervorlage(); - } - } - - if ($newId > 0) { - $json['status'] = 1; - $json['statusText'] = 'Das Dokument wurde gespeichert.'; - $json['statusId'] = $newId; - if ($pType === 'notiz') { - $this->app->erp->RunHook('address_note_created', 1, $newId); - } - } - - if($pType !== 'email' || !$this->app->Secure->GetPOST('save')) - { - if (isset($do) && !empty($do)) { - - switch ($do) { - case 'PDF': - - $json['id'] = $newId; - $json['responseType'] = 'PDF'; - $json['statusText'] = 'PDF wurde erstellt.'; - - $this->app->DB->Update(' - UPDATE - dokumente - SET - sent = 1 - WHERE - id ='.$newId.' - '); - - - break; - case 'DRUCKEN': - $drucker = $this->app->Secure->GetPOST('drucker'); - - $this->app->erp->BriefpapierHintergrundDisable($drucker); - - $tmpBrief = $this->AdresseBriefCreatePDF($newId, false); - $this->app->printer->Drucken($drucker, $tmpBrief); - - $this->app->DB->Update(' - UPDATE - dokumente - SET - sent = 1 - WHERE - id ='.$newId.' - '); - - - unlink($tmpBrief); - $json['statusText'] = 'Dokument wird gedruckt.'; - $json['responseType'] = 'TEXT'; - - break; - case 'EMAIL': - - $data = $this->app->DB->SelectRow(' - SELECT - * - FROM - dokumente - WHERE - id = ' . $newId . ' - '); - - // TODO MK korrekte cc und bcc holen - $cc = $this->app->erp->get_emails($data['email_cc']); - $bcc = $this->app->erp->get_emails($data['email_bcc']); - - //TODO MK email_an und to richtig extrahieren - //$email_string = 'Benedikt Sauter '; - $tmp_an = trim($data['email_an']); - list($data['to'], $data['email_an']) = explode(' <', trim($data['email_an'], '> ')); - list($data['von'], $data['email']) = explode(' <', trim($data['von'], '> ')); - - if($data['email_an']=="") { - $data['email_an'] = $tmp_an; - $data['to'] = $tmp_an; - } - - //$this->app->erp->LogFile("BCC $bcc CC $cc"); - - $dateien = array(); - foreach($_POST as $pk => $pv) - { - $pka = explode('_',$pk); - if($pka[0] === 'datei' && isset($pka[1]) && $pka[1] && is_numeric($pka[1])) - { - $dateiname = $this->app->erp->GetDateiName($pka[1]); - if($dateiname) - { - $dateiinhalt = $this->app->erp->GetDatei($pka[1]); - - if($handle = fopen ($this->app->erp->GetTMP().$dateiname, "wb")) - { - fwrite($handle, $dateiinhalt); - fclose($handle); - $dateien[] = $this->app->erp->GetTMP().$dateiname; - } - } - } - } - - if(strpos($data['betreff'],'{') !== false) { - $data['betreff'] = $this->app->erp->ParseUserVars('adresse', $data['adresse_to'], $data['betreff']); - } - if(strpos($data['content'],'{') !== false) { - $data['content'] = $this->app->erp->ParseUserVars('adresse', $data['adresse_to'], $data['content']); - } - - $mailSend = $this->app->erp->MailSend( - $data['email'], - $data['von'], - $data['email_an'], - $data['to'], - $data['betreff'], - $data['content'], - $dateien, - $projekt,true,$cc,$bcc - ); - - if($dateien && is_array($dateien)) - { - foreach($dateien as $datei)unlink($datei); - } - - if($mailSend =='1') { - $json['status'] = 1; - $json['type'] = 'email'; - $json['statusText'] = 'Email wurde gesendet.'; - $this->app->DB->Update(' - UPDATE - dokumente - SET - sent = 1, - send_as = "email" - WHERE - id = ' . $data['id'] . ' - '); - } else { - $json['status'] = 0; - $json['statusText'] = 'Email konnte nicht gesendet werden. ('.$this->app->erp->mail_error.')'; - } - - break; - - default: - break; - } - - } - - echo json_encode($json); - $this->app->ExitXentral(); - } - } - - $id = $this->app->Secure->GetGET('id'); - - $this->AdresseMenu(); - - - $this->app->User->SetParameter('adresse_brief_adresseId', $id); - - $count = 0; - $count += $this->app->DB->Select('SELECT count(id) FROM dokumente WHERE adresse_to = ' . $id); - $count += $this->app->DB->Select('SELECT count(id) FROM dokumente_send WHERE adresse = ' . $id); - $count += $this->app->DB->Select('SELECT count(id) FROM wiedervorlage WHERE adresse = ' . $id); - $count += $this->app->DB->Select('SELECT count(id) FROM kalender_event WHERE adresse = '.$id); - - if ($count > 0) { - $this->app->YUI->TableSearch('TABELLE', 'adresse_brief'); - $this->app->Tpl->Set('TABELLEFLAG', 0); - } else { - $this->app->Tpl->Set('TABELLE', '
Es sind noch keine Einträge vorhanden.
'); - $this->app->Tpl->Set('TABELLEFLAG', 1); - } - - if(!$this->app->erp->RechteVorhanden('wiedervorlage','list')) - { - $this->app->Tpl->Set('VORWIEDERVORLAGE',''); - } -/* - if(!$this->app->erp->RechteVorhanden('ticket','offene')) - { - $this->app->Tpl->Set('VORTICKETS',''); - } -*/ - - - $cmd = $this->app->Secure->GetPOST('cmd'); - if($cmd=="crm") - $this->app->Tpl->Parse('CRMTABELLE',"adresse_crm_tabelle.tpl"); - - - $this->app->Tpl->Parse('TAB1',"adresse_brief.tpl"); - $this->app->Tpl->Parse('PAGE',"tabview.tpl"); - $befehl = $this->app->User->GetParameter('adresse_brief_befehl'); - if($befehl) - { - $this->app->User->SetParameter('adresse_brief_befehl',''); - $this->app->Tpl->Add('PAGE',' - - '); - } - - // Wenn GET-Parameter "telefon_notiz_erstellen" gesetzt ist, direkt Anlegen-Dialog öffnen - $telefonNotizErstellen = (int)$this->app->Secure->GetGET('telefon_notiz_erstellen'); - if ($telefonNotizErstellen === 1) { - $this->app->Tpl->Add('PAGE',' - - '); - } -} - - - -function AdresseBriefEditPopup() -{ - $frame = $this->app->Secure->GetGET("frame"); - $id= $this->app->Secure->GetGET('id'); - $sid= $this->app->Secure->GetPOST('sid'); - - if($frame=="false") - { - // hier nur fenster größe anpassen - $this->app->YUI->IframeDialog(800,650,"index.php?module=adresse&action=briefeditpopup&id=$id&sid=$sid"); - } else { - - $adresse = $id; - - $typ = $this->app->DB->Select("SELECT dokument FROM dokumente_send WHERE id='$sid' LIMIT 1"); - //$parameter = $this->app->DB->Select("SELECT parameter FROM dokumente_send WHERE id='$sid' LIMIT 1"); - $parameter = $sid; - - //echo "typ = $typ ".$parameter; - - $this->app->erp->DokumentMask('PAGE',$typ,$parameter,$adresse,'',true); - - $this->app->BuildNavigation=false; - } -} - - -function AdresseBriefDelete() -{ - $sid = $this->app->Secure->GetPOST('sid'); - $id = $this->app->Secure->GetGET('id'); - - $this->app->DB->Update("UPDATE dokumente_send SET geloescht=1 WHERE id='$sid' LIMIT 1"); - - $this->AdresseBrief(); -} - -function AdresseBriefPDF() -{ - $sid = $this->app->Secure->GetGET('sid'); // 30.03.19 von POST zu GET BS - $id = $this->app->Secure->GetGET('id'); - - //$Brief = new Geschaeftsbrief(&$this->app,$sid); - $projekt = $this->app->DB->Select("SELECT projekt FROM dokumente WHERE id='$sid'"); - $Brief = new BriefPDF($this->app,$projekt); - $Brief->GetBrief($sid); - $Brief->displayDocument(); - - $this->AdresseBrief(); -} - - -function AdresseBelege() -{ - $cmd = $this->app->Secure->GetPOST('cmd'); - $id = $this->app->Secure->GetGET('id'); - $von = $this->app->User->GetParameter("adresse_belege_von"); - $bis = $this->app->User->GetParameter("adresse_belege_bis"); - - if($cmd == 'kundensaldodatumsrelevant'){ - $von = $this->app->Secure->GetGET("von"); - $bis = $this->app->Secure->GetGET("bis"); - } - $von = date_format(date_create_from_format('d.m.Y', $von), 'Y-m-d'); - $bis = date_format(date_create_from_format('d.m.Y', $bis), 'Y-m-d'); - - $rechnungt = $this->app->DB->Select("SELECT SUM(soll-ist) FROM rechnung WHERE status != 'angelegt' AND zahlungsstatus != 'bezahlt' AND adresse = '$id' AND datum >= '$von' AND datum <= '$bis'"); - //$gutschriftt = $this->app->DB->Select("SELECT SUM(soll-ist) FROM gutschrift WHERE status != 'angelegt' AND (manuell_vorabbezahlt != '0000-00-00' OR manuell_vorabbezahlt IS NOT NULL) AND adresse = '$id' AND datum >= '$von' AND datum <= '$bis'"); - $gutschriftt = $this->app->DB->Select("SELECT SUM(soll-ist) FROM gutschrift WHERE status != 'angelegt' AND (manuell_vorabbezahlt = '0000-00-00' OR manuell_vorabbezahlt IS NULL) AND zahlungsstatus != 'bezahlt' AND rechnungid = 0 AND adresse = '$adresse' AND datum >= '$von' AND datum <= '$bis'"); - $verbindlichkeitt = $this->app->DB->Select("SELECT SUM(betrag-betragbezahlt) FROM verbindlichkeit WHERE status = 'offen' AND adresse = '$id' AND rechnungsdatum >= '$von' AND rechnungsdatum <= '$bis'"); - $kundensaldot = $rechnungt - $gutschriftt - $verbindlichkeitt; - $kundensaldot = round($kundensaldot, 2); - - if($kundensaldot > 0){ - $kundensaldot = "-".number_format($kundensaldot,2,',','.').""; - }else if($kundensaldot == 0){ - $kundensaldot = "0,00"; - }else{ - $kundensaldot = number_format($kundensaldot,2,',','.'); - } - if($cmd === 'kundensaldodatumsrelevant'){ - echo json_encode($kundensaldot); - $this->app->ExitXentral(); - } - $this->AdresseMenu(); - - $kreditlimit = $this->app->DB->Select("SELECT kreditlimit FROM adresse WHERE id='$id' LIMIT 1"); - // $saldo = $this->app->erp->SaldoAdresse($id); - - $kreditlimit_frei = $kreditlimit - $saldo; - - if($kreditlimit <=0) { - $kreditlimit="kein Limit"; - $kreditlimit_frei = "kein Limit"; - } else $kreditlimit = number_format($kreditlimit,2,',','.'); - - $this->app->Tpl->Set('KREDITLIMIT',$kreditlimit); - $this->app->Tpl->Set('KREDITLIMITFREI',$kreditlimit_frei); - - - //$this->app->Tpl->Set('UMSATZ',number_format($this->app->erp->UmsatzAdresseAuftragJahr($id),2,',','.')); - $this->app->Tpl->Set('UMSATZ',number_format($this->app->erp->UmsatzAdresseRechnungJahr($id),2,',','.')); - - /* $saldo = round($saldo,2); - - if($saldo > 0) - $saldo = "-".number_format($saldo,2,',','.').""; - else if ($saldo==0) $saldo="0,00"; - else $saldo = number_format($saldo,2,',','.'); -*/ -// $this->app->Tpl->Set('SALDO',$saldo); - - - $kundensaldo = $this->app->erp->KundenSaldo($id); - - if($kundensaldo > 0){ - $kundensaldo = "-".number_format($kundensaldo,2,',','.').""; - }else if($kundensaldo == 0){ - $kundensaldo = "0,00"; - }else{ - $kundensaldo = number_format($kundensaldo,2,',','.'); - } - - $this->app->Tpl->Set('KUNDENSALDO', $kundensaldo); - $this->app->Tpl->Set('KUNDENSALDODATUMSRELEVANT', $kundensaldot); - - if($this->app->erp->IsAdresseSubjekt($id,"Lieferant")){ - $this->app->Tpl->Set('MITTEBESTELLUNG', - - '
  • - - -
  • -
  • - - -
  • '); - - - - } - - $this->app->Tpl->Set('ID',$id); - - $this->app->YUI->DatePicker("von"); - $this->app->YUI->DatePicker("bis"); - - $this->app->YUI->AutoSaveUserParameter("von","adresse_belege_von"); - $this->app->YUI->AutoSaveUserParameter("bis","adresse_belege_bis"); - - $this->app->YUI->TableSearch('TAB1',"adressebelege"); - //$this->app->YUI->TableSearch('TAB2',"adresse_auftrag"); - //$this->app->YUI->TableSearch('TAB3',"adresse_rechnung"); - //$this->app->YUI->TableSearch('TAB4',"adresse_gutschrift"); - //$this->app->YUI->TableSearch('TAB5',"adresse_lieferschein"); - - $this->app->Tpl->Parse('PAGE',"adresse_belege.tpl"); -} - - - -function AdresseEmail() -{ - $this->AdresseMenu(); - - - // NEU füllen - $widget = new WidgetEmail($this->app,'TAB2'); - $widget->Create(); - - // UEBERSICHT füllen - $this->app->Tpl->Set('HEADING',"Adresse"); - $this->app->Tpl->Set('SUBHEADING',"Email schreiben"); - $adresse = $this->app->User->GetAdresse(); - - //Offene Aufgaben - $table = new EasyTable($this->app); - $table->Query("SELECT betreff, id FROM email"); - $table->DisplayNew('INHALT', "Bearbeiten"); - $this->app->Tpl->Parse('TAB1',"rahmen.tpl"); - - // PARSE - $this->app->Tpl->Set('AKTIV_TAB1',"selected"); - - $this->app->Tpl->Parse('PAGE',"emailuebersicht.tpl"); - -} - - - -function AdresseEmailEditPopup() -{ - $frame = $this->app->Secure->GetGET("frame"); - if($frame=="false") - { - // hier nur fenster größe anpassen - $this->app->YUI->IframeDialog(510,610); - } else { - // nach page inhalt des dialogs ausgeben - $widget = new WidgetEmail($this->app,'PAGE'); - $widget->Edit(); - $this->app->BuildNavigation=false; - } -} - - - - -function AdresseSuchmaske() -{ - $typ=$this->app->Secure->GetGET("typ"); - - $this->app->Tpl->Set('HEADING',"Suchmaske für Adressen"); - $table = new EasyTable($this->app); - switch($typ) { - case "auftragrechnung": - $table->Query("SELECT typ,name, ort, plz, strasse, abteilung, unterabteilung, ustid, email, adresszusatz, id as kundeadressid, id FROM adresse WHERE geloescht=0 - order by name"); - break; - case "auftraglieferschein": - $table->Query("SELECT typ as liefertyp, name as liefername, ort as lieferort, plz as lieferplz, strasse as lieferstrasse, abteilung as lieferabteilung, unterabteilung - as lieferunterabteilung, adresszusatz as lieferadresszusatz, id as lieferadressid FROM adresse WHERE geloescht=0 order by name"); - break; - default: - $table->Query("SELECT typ,name, ort, plz, strasse, abteilung, unterabteilung, ustid, email, adresszusatz, id as kundeadressid, id FROM adresse WHERE geloescht=0 order by name"); - } - - $table->DisplayWithDelivery('PAGE'); - - $this->app->BuildNavigation=false; -} - - - -function AdresseKundevorlage() -{ - $this->AdresseMenu(); - $id = $this->app->Secure->GetGET('id'); - // prufe ob es schon einen eintrag gibt - $check = $this->app->DB->Select("SELECT id FROM kundevorlage WHERE adresse='$id' LIMIT 1"); - if( !($check > 0 && is_numeric($check))) - { - $this->app->DB->Insert("INSERT INTO kundevorlage (id,adresse) VALUES ('','$id')"); - } - - $check = $this->app->DB->Select("SELECT id FROM kundevorlage WHERE adresse='$id' LIMIT 1"); - $this->app->Secure->GET['id']=$check; - $this->app->Tpl->Set('AKTIV_TAB1',"selected"); - $widget = new WidgetKundevorlage($this->app,'PAGE'); - $widget->Edit(); - $this->app->Secure->GET['id']=$id; -} - -function AdresseAddPosition() -{ - $sid = $this->app->Secure->GetPOST('sid'); - $id = $this->app->Secure->GetGET('id'); - $menge = $this->app->Secure->GetGET("menge"); - $datum = $this->app->Secure->GetGET("datum"); - $datum = $this->app->String->Convert($datum,"%1.%2.%3","%3-%2-%1"); - $tmpid = $this->app->erp->AddAdressePosition($id, $sid,$menge,$datum); - - $art = $this->app->Secure->GetGET("art"); - - if(!$this->app->erp->CheckDateValidate($datum)) $datum=date('Y-m-d'); - - if($art==='abo'){ - $this->app->DB->Update("UPDATE abrechnungsartikel SET wiederholend=1,startdatum='$datum',zahlzyklus=1 WHERE id='$tmpid' LIMIT 1"); - } - else if ($art==='einmalig'){ - $this->app->DB->Update("UPDATE abrechnungsartikel SET wiederholend=0,preisart='einmalig' WHERE id='$tmpid' LIMIT 1"); - } - - $this->app->DB->Update("UPDATE abrechnungsartikel SET angelegtvon='".$this->app->User->GetID()."',angelegtam=NOW() WHERE id='$tmpid' LIMIT 1"); - - $this->app->Location->execute("index.php?module=adresse&action=artikel&id=$id"); -} - -function AdresseLieferantvorlage() -{ - - //zahlungsweise zahlungszieltage zahlungszieltageskonto zahlungszielskonto versandart - //zahlungsweiselieferant zahlungszieltagelieferant zahlungszieltageskontolieferant zahlungszielskontolieferant versandartlieferant - $arr = $this->app->DB->SelectArr("SELECT id,kundennummerlieferant FROM adresse WHERE lieferantennummer >0"); - - foreach($arr as $key=>$value) - { - if($value['kundennummerlieferant']=="") - { - $id = $value['id']; - $kundennummer = $this->app->DB->Select("SELECT kundennummer FROM lieferantvorlage WHERE adresse='$id' LIMIT 1"); - $zahlungsweiselieferant = $this->app->DB->Select("SELECT zahlungsweise FROM lieferantvorlage WHERE adresse='$id' LIMIT 1"); - $zahlungszieltagelieferant = $this->app->DB->Select("SELECT zahlungszieltage FROM lieferantvorlage WHERE adresse='$id' LIMIT 1"); - $zahlungszieltageskontolieferant = $this->app->DB->Select("SELECT zahlungszielskonto FROM lieferantvorlage WHERE adresse='$id' LIMIT 1"); - $versandartlieferant = $this->app->DB->Select("SELECT versandart FROM lieferantvorlage WHERE adresse='$id' LIMIT 1"); - - if($kundennummer !="") - { - echo "UPDATE adresse SET kundennummerlieferant='$kundennummer',zahlungsweiselieferant='$zahlungsweiselieferant', - zahlungszieltagelieferant='$zahlungszieltagelieferant',zahlungszieltageskontolieferant='$zahlungszieltageskontolieferant', - versandartlieferant='$versandartlieferant' WHERE id='$id';"; - } - } - - } - - - $this->AdresseMenu(); - $id = $this->app->Secure->GetGET('id'); - // prufe ob es schon einen eintrag gibt - $check = $this->app->DB->Select("SELECT id FROM lieferantvorlage WHERE adresse='$id' LIMIT 1"); - if( !($check > 0 && is_numeric($check))) - { - $this->app->DB->Insert("INSERT INTO lieferantvorlage (id,adresse) VALUES ('','$id')"); - } - - $check = $this->app->DB->Select("SELECT id FROM lieferantvorlage WHERE adresse='$id' LIMIT 1"); - $this->app->Secure->GET['id']=$check; - $this->app->Tpl->Set('AKTIV_TAB1',"selected"); - $widget = new WidgetLieferantvorlage($this->app,'PAGE'); - $widget->Edit(); - $this->app->Secure->GET['id']=$id; -} - - /** - * @param int $addressId - * - * @return float - */ -public function getAboMonthSum($addressId) { - if(empty($addressId)) { - return 0.00; - } - $sum = (float)$this->app->DB->Select( - sprintf( - "SELECT SUM( - abo.menge * abo.preis * (1 - rabatt / 100) - * - IF( - abo.preisart = 'jahr' OR abo.preisart = '360tage', - IF(abo.zahlzyklus <= 1, 1/12,1 / (abo.zahlzyklus * 12)), - IF( - abo.preisart = 'wochen', - IF(abo.zahlzyklus <= 1, 7 / 30, 1 / (abo.zahlzyklus * 30 / 7)) , - IF(abo.preisart = 'einmalig', - 0, - IF(abo.preisart = 'monat' OR abo.preisart = '30tage', - 1, - IF(abo.zahlzyklus <= 1, 1, 1/ (abo.zahlzyklus)) - ) - ) - ) - ) - ) - FROM abrechnungsartikel AS abo - WHERE abo.adresse = %d - AND (abo.startdatum <= CURDATE() OR IFNULL(abo.startdatum,'0000-00-00') = '0000-00-00') - AND (abo.enddatum >= CURDATE() OR IFNULL(abo.enddatum,'0000-00-00') = '0000-00-00')", - $addressId - ) - ); - - return $sum; -} - - -function AdresseArtikelPosition($withmenu = true) -{ - if($withmenu) { - $this->AdresseMenu(); - } - $id = $this->app->Secure->GetGET('id'); - /* neu anlegen formular */ - $artikelart = $this->app->Secure->GetPOST("artikelart"); - $bezeichnung = $this->app->Secure->GetPOST("bezeichnung"); - $beschreibung = $this->app->Secure->GetPOST("beschreibung"); - $vpe = $this->app->Secure->GetPOST("vpe"); - $umsatzsteuerklasse = $this->app->Secure->GetPOST("umsatzsteuerklasse"); - $waehrung = $this->app->Secure->GetPOST("waehrung"); - $projekt= $this->app->Secure->GetPOST("projekt"); - $preis = $this->app->Secure->GetPOST("preis"); - $preis = str_replace(',','.',$preis); - $menge = $this->app->Secure->GetPOST("menge"); - $menge = str_replace(',','.',$menge); - $art = $this->app->Secure->GetPOST("art"); - $lieferdatum = $this->app->Secure->GetPOST("lieferdatum"); - $zahlzyklus = $this->app->Secure->GetPOST("zahlzyklus"); - $wiederholend= $this->app->Secure->GetPOST("wiederholend"); - $startdatum= $this->app->Secure->GetPOST("startdatum"); - - if($lieferdatum=="") $lieferdatum=date("d.m.Y"); - - $cmd= $this->app->Secure->GetGET('cmd'); - - switch($cmd) - { - - case "getArtikelData": - $id= $this->app->Secure->GetPOST("artikel"); - $adresse = $this->app->Secure->GetPOST("adresse"); - $artikel = $this->app->DB->SelectArr("SELECT * FROM artikel WHERE nummer='$id' AND nummer!='' LIMIT 1"); - $artikel[0]['nettopreis'] = $this->app->erp->GetVerkaufspreis($artikel[0]['id'],1,$adresse); - echo json_encode($artikel[0]); - $this->app->ExitXentral(); - break; - - case "getAboartikel": - $id= $this->app->Secure->GetPOST('id'); - $adresse = $this->app->Secure->GetPOST("adresse"); - $artikel = $this->app->DB->SelectArr("SELECT aba.*, a.nummer FROM abrechnungsartikel aba inner JOIN artikel a ON (a.id = aba.artikel) WHERE aba.id='$id' AND aba.adresse='$adresse' LIMIT 1"); - $AboGruppen_tmp = $this->app->DB->SelectArr("SELECT id,beschreibung FROM abrechnungsartikel_gruppe where (adresse = '$adresse' OR adresse = 0) ORDER BY sort"); - if(is_array($AboGruppen_tmp)) { - $AboGruppen = ''; - }else{ - $AboGruppen = ''; - } - foreach($AboGruppen_tmp as $value){ - if($value['id'] == $artikel[0]['gruppe']){ - $selected = " selected=\"selected\""; - }else{ - $selected=''; - } - $AboGruppen .= ''; - } - - if(is_array($artikel[0])) { - $artikel[0]['startdatum'] = $this->app->String->Convert($artikel[0]['startdatum'], "%3-%2-%1", "%1.%2.%3"); - $artikel[0]['lieferdatum'] = $this->app->String->Convert($artikel[0]['lieferdatum'], "%3-%2-%1", "%1.%2.%3"); - $artikel[0]['abgerechnetbis'] = $this->app->String->Convert($artikel[0]['abgerechnetbis'], "%3-%2-%1", "%1.%2.%3"); - $artikel[0]['abgrechnetam'] = $this->app->String->Convert($artikel[0]['abgrechnetam'], "%3-%2-%1", "%1.%2.%3"); - $artikel[0]['enddatum'] = $this->app->String->Convert($artikel[0]['enddatum'], "%3-%2-%1", "%1.%2.%3"); - $artikel[0]['gruppen'] = $AboGruppen; - echo json_encode($artikel[0]); - }else{ - $basis['startdatum'] = date("d.m.Y"); - $basis['lieferdatum'] = "00.00.0000"; - $basis['abgerechnetbis'] = "00.00.0000"; - $basis['abgrechnetam'] = "00.00.0000"; - $basis['enddatum'] = "00.00.0000"; - $basis['preisart'] = "monat"; - $basis['preis'] = '0.00'; - $basis['menge'] = '0.00'; - $basis['status'] = "1"; - $basis['dokument'] = "rechnung"; - $basis['gruppen'] = $AboGruppen; - echo json_encode($basis); - } - $this->app->ExitXentral(); - break; - - - case "moveAboArtikel": - $id= $this->app->Secure->GetPOST('id'); - $direction = $this->app->Secure->GetPOST("direction"); - // wir schauen erstmal ob der Eintrag in einer Gruppe ist, und holen dann alle Artikel dieser gruppe - $artikel_list = $this->app->DB->SelectArr("SELECT id FROM abrechnungsartikel where gruppe=(Select gruppe from abrechnungsartikel where id='$id') order by sort asc"); - $counter=0; - foreach ($artikel_list as $value){ - if($value['id'] == $id){ - $moveItem = $counter; - }else{ - $counter++; - } - $artikel[] = $value['id']; - } - - if($direction === 'down'){ - $neuArtikelSortierung = $this->down($artikel,$moveItem); - } else{ - $neuArtikelSortierung = $this->up($artikel,$moveItem); - } - - foreach ($neuArtikelSortierung as $key => $value){ - //$neuePos=0; - $neuePos = $key+1; - $update = $this->app->DB->Update("UPDATE abrechnungsartikel set sort='$neuePos' where id='$value'"); - } - echo json_encode(array( - 'status' => 1 - )); - $this->app->ExitXentral(); - break; - case "saveAboartikel": - $id= $this->app->Secure->GetPOST('id'); - $adresse = $this->app->Secure->GetPOST("adresse"); - $artikel = $this->app->Secure->GetPOST("artikel"); - $artikelid = $this->app->Secure->GetPOST("artikelid"); - $artikelueberschreiben = $this->app->Secure->GetPOST("artikelueberschreiben"); - $artikelneuanlage = $this->app->Secure->GetPOST("artikelneuanlage"); - $preisart= $this->app->Secure->GetPOST("preisart"); - $rabatt= $this->app->Secure->GetPOST("rabatt"); - $dokument= $this->app->Secure->GetPOST("dokument"); - $gruppe= $this->app->Secure->GetPOST("gruppe"); - $sort= $this->app->Secure->GetPOST("sort"); - $startdatum= $this->app->String->Convert($this->app->Secure->GetPOST("startdatum"),"%1.%2.%3","%3-%2-%1"); - $enddatum= $this->app->String->Convert($this->app->Secure->GetPOST("enddatum"),"%1.%2.%3","%3-%2-%1"); - $abgerechnetbis= $this->app->String->Convert($this->app->Secure->GetPOST("abgerechnetbis"),"%1.%2.%3","%3-%2-%1"); - $abgrechnetam= $this->app->String->Convert($this->app->Secure->GetPOST("abgrechnetam"),"%1.%2.%3","%3-%2-%1"); - $bemerkung= $this->app->Secure->GetPOST("bemerkung"); - $experte= $this->app->Secure->GetPOST("experte"); - $bezeichnung= $this->app->Secure->GetPOST("bezeichnung"); - $beschreibungersetzten= $this->app->Secure->GetPOST("beschreibungersetzten"); - - $beschreibung= $this->app->Secure->GetPOST("beschreibung"); - - if(!$this->app->erp->CheckDateValidate($startdatum)) $startdatum=date('Y-m-d'); - - // prüfen ob ein neuer Artikel gesetzt ist - if($artikelneuanlage == '1'){ - $tmp_id = explode(" ",$artikel); - $tmp_id = $tmp_id[0]; - - $artikeltmp = $this->app->DB->SelectArr("SELECT id,name_de,anabregs_text FROM artikel WHERE nummer='$tmp_id' LIMIT 1"); - $artikeltmp[0]['waehrung'] = $this->app->DB->Select("SELECT waehrung FROM adresse WHERE id = '".$adresse."'"); - - if($artikeltmp[0]['waehrung'] == ''){ - $waehrung = "EUR"; - } - else { - $waehrung=$artikeltmp[0]['waehrung']; - } - - $anzahlGruppe = $this->app->DB->Select("SELECT count(gruppe) FROM abrechnungsartikel WHERE gruppe='$gruppe' AND adresse='$adresse'"); - - if($sort == ''){$sort=$anzahlGruppe +1;} - - $this->app->DB->Insert("INSERT INTO abrechnungsartikel ( - id,artikel,bezeichnung,beschreibung,menge,preis, preisart,rabatt, dokument, sort,lieferdatum, steuerklasse, status,projekt,wiederholend,zahlzyklus,adresse,startdatum,enddatum,gruppe,experte,waehrung,abgerechnetbis, abgrechnetam,bemerkung, beschreibungersetzten) - VALUES ( - '', - '{$artikeltmp[0]['id']}', - '$bezeichnung', - '$beschreibung', - '$menge', - '$preis', - '$preisart', - '$rabatt', - '$dokument', - '$sort', - '$lieferdatum', - '$umsatzsteuerklasse', - 'angelegt', - '$projekt', - '$wiederholend', - '$zahlzyklus', - '$adresse', - '$startdatum', - '$enddatum', - '$gruppe', - '$experte', - '$waehrung', - '$abgerechnetbis', - '$abgrechnetam', - '$bemerkung', - '$beschreibungersetzten' - )"); - }else{ - $this->app->DB->Update("UPDATE abrechnungsartikel SET - artikel='$artikelid', - bezeichnung='$bezeichnung', - beschreibung = '$beschreibung', - menge = '$menge', - preis = '$preis', - preisart = '$preisart', - rabatt = '$rabatt', - dokument = '$dokument', - gruppe = '$gruppe', - sort = '$sort', - startdatum = '$startdatum', - zahlzyklus = '$zahlzyklus', - enddatum = '$enddatum', - abgerechnetbis = '$abgerechnetbis', - abgrechnetam = '$abgrechnetam', - bemerkung = '$bemerkung', - experte = '$experte', - beschreibungersetzten = '$beschreibungersetzten' - - WHERE id='$id' LIMIT 1"); - } - echo json_encode(array( - 'status' => 1 - )); - $this->app->ExitXentral(); - break; - - - case 'savegruppe': - $sid= $this->app->Secure->GetPOST('id'); - $ansprechpartner= $this->app->Secure->GetPOST('ansprechpartner'); - $beschreibung= $this->app->Secure->GetPOST('beschreibung'); - $beschreibung2= $this->app->Secure->GetPOST('beschreibung2'); - $rabatt = $this->app->Secure->GetPOST('rabatt'); - - if($rabatt != ""){ - $rabatt = str_replace(',','.',$rabatt); - } - - $rechnung= $this->app->Secure->GetPOST('rechnung'); - //if($rechnung!="1") $rechnung=0; - - $gruppensumme= $this->app->Secure->GetPOST('gruppensumme'); - if($gruppensumme!='1') { - $gruppensumme=0; - } - - $rechnungadresse= $this->app->Secure->GetPOST('rechnungadresse'); - $rechnungadresse = explode(' ',$rechnungadresse); - $rechnungadresse = $rechnungadresse[0]; - $rechnungadresse = $this->app->DB->Select("SELECT id FROM adresse WHERE kundennummer='$rechnungadresse' AND kundennummer!='' LIMIT 1"); - - if($rechnungadresse <=0) $rechnungadresse = 0; - - $sort= $this->app->Secure->GetPOST('sort'); - - $projekt= $this->app->Secure->GetPOST('projekt'); - $projekt = explode(' ',$projekt); - $projekt = $projekt[0]; - $projekt = $this->app->DB->Select("SELECT id FROM projekt WHERE abkuerzung='$projekt' AND abkuerzung!='' LIMIT 1"); - - $sammelrechnung = trim($this->app->Secure->GetPOST('sammelrechnung')); - if($sammelrechnung != ''){ - $sammelrechnung = explode(' ', $sammelrechnung); - $sammelrechnung = $sammelrechnung[0]; - $sammelrechnung = $this->app->DB->Select("SELECT id FROM adresse_abosammelrechnungen WHERE id = '$sammelrechnung' LIMIT 1"); - }else{ - $sammelrechnung = 0; - } - - - if($sid > 0) - { - $this->app->DB->Update("UPDATE abrechnungsartikel_gruppe SET beschreibung='$beschreibung',beschreibung2='$beschreibung2',rabatt = '$rabatt',ansprechpartner='$ansprechpartner',extrarechnung='$rechnung',projekt='$projekt',sort='$sort',gruppensumme='$gruppensumme',rechnungadresse='$rechnungadresse',sammelrechnung='$sammelrechnung' WHERE id='$sid' LIMIT 1"); - } else { - $this->app->DB->Insert("INSERT INTO abrechnungsartikel_gruppe (id,beschreibung,beschreibung2,rabatt,ansprechpartner,extrarechnung,projekt,adresse,sort,gruppensumme,rechnungadresse,sammelrechnung) - VALUES ('','$beschreibung','$beschreibung2','$rabatt','$ansprechpartner','$rechnung','$projekt','$id','$sort','$gruppensumme','$rechnungadresse','$sammelrechnung') "); - } - echo json_encode(array( - 'status' => 1 - )); - $this->app->ExitXentral(); - break; - - case 'getgruppe': - $sid= $this->app->Secure->GetPOST('id'); - $tmp = $this->app->DB->SelectRow("SELECT * FROM abrechnungsartikel_gruppe WHERE id='$sid' LIMIT 1"); - $tmp['status']=1; - if($tmp['projekt'] > 0){ - $tmp['projekt'] = $this->app->DB->Select("SELECT CONCAT(abkuerzung,' ',name) FROM projekt WHERE id='" . $tmp['projekt'] . "' LIMIT 1"); - } - else{ - $tmp['projekt'] = ''; - } - - if($tmp['rechnungadresse'] > 0){ - $tmp['rechnungadresse'] = $this->app->DB->Select("SELECT CONCAT(kundennummer,' ',name,if(ort!='',CONCAT(' (',ort,')'),'')) FROM adresse WHERE id='" . $tmp['rechnungadresse'] . "' LIMIT 1"); - } - else{ - $tmp['rechnungadresse'] = ''; - } - - if($tmp['sammelrechnung'] > 0){ - $tmp['sammelrechnung'] = $this->app->DB->Select("SELECT CONCAT(id, ' ', bezeichnung) FROM adresse_abosammelrechnungen WHERE id = '" . $tmp['sammelrechnung'] . "' LIMIT 1"); - } - else{ - $tmp['sammelrechnung'] = ''; - } - - $tmp['rabatt'] = str_replace('.',',',$tmp['rabatt']); - - - echo json_encode($tmp); - $this->app->ExitXentral(); - break; - - case 'deletegruppe': - $sid= $this->app->Secure->GetPOST('id'); - $this->app->DB->Update("UPDATE `abrechnungsartikel` SET `gruppe`=0 WHERE `gruppe`='$sid'"); - $this->app->DB->Update("UPDATE `subscription_cycle_autosubscription` SET `subscription_group_id`=0 WHERE `subscription_group_id`='$sid'"); - $this->app->DB->Delete("DELETE FROM `abrechnungsartikel_gruppe` WHERE `id`='$sid' LIMIT 1"); - $tmp['status']=1; - $tmp['statusText']='Gruppe gelöscht'; - echo json_encode($tmp); - $this->app->ExitXentral(); - break; - - } - - - $anlegen_artikelneu = $this->app->Secure->GetPOST('anlegen_artikelneu'); - - - if($anlegen_artikelneu!='') - { - - if($bezeichnung!='' && $menge!='' && $preis!='') - { - - $neue_nummer = $this->app->erp->NeueArtikelNummer($artikelart,$this->app->User->GetFirma(),$projekt); - - // anlegen als artikel - $this->app->DB->Insert("INSERT INTO artikel (id,typ,nummer,projekt,name_de,umsatzsteuer,adresse,firma) - VALUES ('','$artikelart','$neue_nummer','$projekt','$bezeichnung','$umsatzsteuerklasse','$lieferant','".$this->app->User->GetFirma()."')"); - - $artikel_id = $this->app->DB->GetInsertID(); - // einkaufspreis anlegen - - $this->app->DB->Insert("INSERT INTO verkaufspreise (id,artikel,adresse,objekt,projekt,preis,ab_menge,angelegt_am,bearbeiter) - VALUES ('','$artikel_id','$id','Standard','$projekt','$preis','$menge',NOW(),'".$this->app->User->GetName()."')"); - - $lieferdatum = $this->app->String->Convert($lieferdatum,'%1.%2.%3','%3-%2-%1'); - $startdatum= $this->app->String->Convert($startdatum,'%1.%2.%3','%3-%2-%1'); - - if($art==='abo') { - $wiederholend=1; - } else { - $wiederholend=0; - } - - if(!$this->app->erp->CheckDateValidate($startdatum)) $startdatum=date('Y-m-d'); - $this->app->DB->Insert("INSERT INTO abrechnungsartikel (id,artikel,bezeichnung,nummer,menge,preis, sort,lieferdatum, steuerklasse, status,projekt,wiederholend,zahlzyklus,adresse,startdatum) - VALUES ('','$artikel_id','$bezeichnung','$neue_nummer','$menge','$preis','$sort','$lieferdatum','$umsatzsteuerklasse','angelegt','$projekt','$wiederholend','$zahlzyklus','$id','$startdatum')"); - - $this->app->Location->execute("index.php?module=adresse&action=artikel&id=$id"); - } - $this->app->Tpl->Set('NEUMESSAGE',"
    Bestellnummer, bezeichnung, Menge und Preis sind Pflichtfelder!
    "); - } - - $ajaxbuchen = $this->app->Secure->GetPOST('ajaxbuchen'); - if($ajaxbuchen!='') - { - $artikel = $this->app->Secure->GetPOST('artikel'); - $nummer = $this->app->Secure->GetPOST('nummer'); - $projekt = $this->app->Secure->GetPOST('projekt'); - $projekt = $this->app->DB->Select("SELECT id FROM projekt WHERE abkuerzung='$projekt' LIMIT 1"); - $sort = $this->app->DB->Select("SELECT MAX(sort) FROM angebot_position WHERE auftrag='$id' LIMIT 1"); - $sort = $sort + 1; - $artikel_id = $this->app->DB->Select("SELECT id FROM artikel WHERE nummer='$nummer' LIMIT 1"); - $bezeichnung = $artikel; - $neue_nummer = $nummer; - $waehrung = 'EUR'; - $umsatzsteuerklasse = $this->app->DB->Select("SELECT umsatzsteuerklasse FROM artikel WHERE nummer='$nummer' LIMIT 1"); - $vpe = 'einzeln'; - - // $this->app->DB->Insert("INSERT INTO angebot_position (id,angebot,artikel,bezeichnung,nummer,menge,preis, waehrung, sort,lieferdatum, umsatzsteuer, status,projekt,vpe) - // VALUES ('','$id','$artikel_id','$bezeichnung','$neue_nummer','$menge','$preis','$waehrung','$sort','$lieferdatum','$umsatzsteuerklasse','angelegt','$projekt','$vpe')"); - } - - $cmd = $this->app->Secure->GetGET('cmd'); - if($cmd === 'smlsave'){ - - $smlid = (int)$this->app->Secure->GetPOST('id'); - $bezeichnung = trim($this->app->Secure->GetPOST('bezeichnung')); - $smlrabatt = trim($this->app->Secure->GetPOST('smlrabatt')); - $abweichende_rechnungsadresse = trim($this->app->Secure->GetPOST('abwrechnungsadresse')); - $projekt = trim($this->app->Secure->GetPOST('projekt')); - $adressid = trim($this->app->Secure->GetPOST('aid')); - - $error = ''; - - if($bezeichnung == ''){ - $error .= "Bitte Bezeichnung ausfüllen\n"; - } - - if($smlrabatt != ''){ - $smlrabatt = str_replace(',','.',$smlrabatt); - } - - if($abweichende_rechnungsadresse != ''){ - $abwrg = explode(' ', $abweichende_rechnungsadresse); - $abwrgid = $abwrg[0]; - - $abwrgid = $this->app->DB->Select("SELECT id FROM adresse WHERE id = '$abwrgid' LIMIT 1"); - if($abwrgid != ''){ - }else{ - $error .= 'Bitte gültige abweichende Rechnungsadresse ausfüllen'."\n"; - } - } - - if($projekt != ''){ - $projektid = $this->app->DB->Select("SELECT id FROM projekt WHERE abkuerzung = '$projekt' LIMIT 1"); - if($projektid != ''){ - }else{ - $error .= 'Bitte gültiges Projekt ausfüllen'."\n"; - } - } - - if($adressid != ''){ - $adressid = $this->app->DB->Select("SELECT id FROM adresse WHERE id = '$adressid' LIMIT 1"); - if($adressid != ''){ - }else{ - $error .= 'Keine gültige Adresse'."\n"; - } - } - - if($error == ''){ - if($smlid){ - $this->app->DB->Update("UPDATE adresse_abosammelrechnungen SET bezeichnung = '$bezeichnung', rabatt = '$smlrabatt', abweichende_rechnungsadresse = '$abwrgid', projekt = '$projektid' WHERE id = '$smlid'"); - - echo json_encode(array('status'=>1)); - $this->app->ExitXentral(); - } - $this->app->DB->Insert("INSERT INTO adresse_abosammelrechnungen (bezeichnung, rabatt, abweichende_rechnungsadresse, projekt, adresse) VALUES ('$bezeichnung', '$smlrabatt', '$abwrgid', '$projektid', '$adressid')"); - echo json_encode(array('status'=>1)); - $this->app->ExitXentral(); - } - echo json_encode(array('status'=>0,'statusText'=>$error)); - $this->app->ExitXentral(); - } - if($cmd === 'smledit'){ - $smlid = (int)$this->app->Secure->GetPOST('id'); - - $data = $this->app->DB->SelectRow("SELECT abs.id, abs.bezeichnung, abs.rabatt, abs.abweichende_rechnungsadresse, abs.projekt FROM adresse_abosammelrechnungen as abs WHERE abs.id = '$smlid' LIMIT 1"); - - if($data){ - if($data['abweichende_rechnungsadresse'] == 0){ - $data['abweichende_rechnungsadresse'] = ''; - }else{ - if($data['abweichende_rechnungsadresse'] != ''){ - $abwadressid = $this->app->DB->Select("SELECT id FROM adresse WHERE id = '".$data['abweichende_rechnungsadresse']."' LIMIT 1"); - if($abwadressid != ""){ - $abwadressname = $this->app->DB->Select("SELECT name FROM adresse WHERE id = '$abwadressid' LIMIT 1"); - if($abwadressname != ""){ - $abwkundennr = $this->app->DB->Select("SELECT kundennummer FROM adresse WHERE id = '$abwadressid' LIMIT 1"); - $abwlieferantennr = $this->app->DB->Select("SELECT lieferantennummer FROM adresse WHERE id = '$abwadressid' LIMIT 1"); - - $restadresse = ''; - $restadresse .= '(Kdr: '.$abwkundennr.' '; - - if($abwlieferantennr != ''){ - $restadresse .= 'Liefr: '.$abwlieferantennr; - } - - $restadresse .= ')'; - - $data['abweichende_rechnungsadresse'] = $abwadressid.' '.$abwadressname." ".$restadresse; - - } - } - } - } - - - if($data['projekt'] == 0){ - $data['projekt'] = ''; - }else{ - if($data['projekt'] > 0){ - $projektabkuerzung = $this->app->DB->Select("SELECT abkuerzung FROM projekt WHERE id = '".$data['projekt']."' LIMIT 1"); - if($projektabkuerzung != ''){ - $data['projekt'] = $projektabkuerzung; - }else{ - $data['projekt'] = ''; - } - } - } - - if($data['rabatt'] != ''){ - $data['rabatt'] = str_replace('.', ',', $data['rabatt']); - } - - }else{ - $data['id'] = 0; - $data['bezeichnung'] = ''; - $data['rabatt'] = ''; - $data['abweichende_rechnungsadresse'] = ''; - $data['projekt'] = ''; - } - - echo json_encode($data); - $this->app->ExitXentral(); - - - } - if($cmd === "smldelete"){ - $smlid = (int) $this->app->Secure->GetPOST('id'); - $this->app->DB->Update("DELETE FROM adresse_abosammelrechnungen WHERE id = '$smlid'"); - - echo json_encode(array('status'=>1)); - $this->app->ExitXentral(); - } - - - - if(1) - { - $this->app->Tpl->Set('ARTIKELART',$this->app->erp->GetSelect($this->app->erp->GetArtikelart(),$artikelart)); - $this->app->Tpl->Set('VPE',$this->app->erp->GetSelect($this->app->erp->GetVPE(),$vpe)); - $this->app->Tpl->Set('WAEHRUNG',$this->app->erp->GetSelect($this->app->erp->GetWaehrung(),$vpe)); - $this->app->Tpl->Set('UMSATZSTEUERKLASSE',$this->app->erp->GetSelect($this->app->erp->GetUmsatzsteuerklasse(),$umsatzsteuerklasse)); - $this->app->Tpl->Set('PROJEKT',$this->app->erp->GetProjektSelect($projekt)); - $this->app->Tpl->Set('PREIS',$preis); - $this->app->Tpl->Set('MENGE',$menge); - $this->app->Tpl->Set('LIEFERDATUM',$lieferdatum); - $this->app->Tpl->Set('ZAHLZYKLUS',$zahlzyklus); - $this->app->Tpl->Set('BEZEICHNUNG',$bezeichung); - - $this->app->Tpl->Set('SUBSUBHEADING','Neuen Artikel anlegen'); - // $this->app->Tpl->Parse('INHALT',"aboabrechnungsartikel_artikelneu.tpl"); - // $this->app->Tpl->Set(EXTEND,""); - $this->app->Tpl->Parse('UEBERSICHT','rahmen70.tpl'); - $this->app->Tpl->Set('EXTEND',''); - $this->app->Tpl->Set('INHALT',''); - $this->app->YUI->DatePicker('startdatum'); - $this->app->YUI->DatePicker('enddatum'); - $this->app->YUI->DatePicker('abgerechnetbis'); - $this->app->YUI->CkEditor('beschreibung','belege'); - $this->app->YUI->CkEditor('editbeschreibung2','belege',array('height'=>'100')); - - /* ende neu anlegen formular */ - /* ende neu anlegen formular */ - // child table einfuegen - - //Wurde mit LiveTabelle ersetzt - /*$menu = array(//"up"=>"upartikel", - // "down"=>"downartikel", - //"add"=>"addstueckliste", - "edit"=>"positioneneditpopup", - "del"=>"delartikel"); - // wiederholende artikel - $sql = "SELECT aa.bezeichnung,art.nummer, au.name as bearbeiter, if(aa.angelegtam='0000-00-00','-',DATE_FORMAT(aa.angelegtam,'%d.%m.%Y')) as 'angelegt am', if(aa.abgerechnetbis='0000-00-00','-',DATE_FORMAT(aa.abgerechnetbis,'%d.%m.%Y')) as 'abgerechnet bis', - if(aa.enddatum='0000-00-00','-',DATE_FORMAT(aa.enddatum,'%d.%m.%Y')) as enddatum, - aa.preis as preis, aa.waehrung, aa.menge as menge, if(aa.wiederholend=1 OR aa.preisart='monat' OR aa.preisart='jahr' OR aa.preisart='monatx','wdh','einmalig') as art, aa.dokument,aa.id as id - FROM abrechnungsartikel aa LEFT JOIN artikel art ON art.id=aa.artikel LEFT JOIN user u ON u.id=aa.angelegtvon LEFT JOIN adresse au ON au.id=u.adresse - WHERE aa.adresse='$id'"; - - $this->app->YUI->SortList('TAB1',$this,$menu,$sql,false);*/ - - // $this->app->YUI->TableSearch('TAB1',"adresse_abo"); - - - $this->app->YUI->AutoComplete('e_projekt', 'projektname', 1); - $this->app->YUI->AutoComplete('e_abwrechnungsadresse', 'adresse'); - $this->app->YUI->AutoComplete('editsammelrechnung','abosammelrechnungen','',"&adresse=$id"); - - - $this->app->Tpl->Set('ADRESSE',$id); - $this->app->YUI->TableSearch('TAB1', 'adressealleabos', 'show','','',basename(__FILE__), __CLASS__); - $this->app->YUI->TableSearch('SORTPOPUP', 'adressealleabossort', 'show','','',basename(__FILE__), __CLASS__); - $this->app->YUI->TableSearch('TAB2','abrechnungsartikel_gruppe', 'show','','',basename(__FILE__), __CLASS__); - $this->app->YUI->TableSearch('TAB3','abrechnungsartikel', 'show','','',basename(__FILE__), __CLASS__); - $this->app->YUI->TableSearch('TAB4', 'abosammelrechnungen', 'show','','',basename(__FILE__), __CLASS__); - - - $this->app->YUI->AutoComplete('editansprechpartner','ansprechpartner','',"&adresse=$id"); - $this->app->Tpl->Set('MONATLICH', number_format($this->getAboMonthSum($id),2,',','.')); - $this->app->Tpl->Parse('PAGE','adresse_abo.tpl'); - } -} - - -function AdresseSEPAMandat() -{ - $projekt = ''; - $id = $this->app->Secure->GetGET('id'); - - if(class_exists('SepaMandatCustom')) - { - $pdf = new SepaMandatCustom($this->app,$projekt); - }else{ - $pdf = new SepaMandat($this->app,$projekt); - } - - - - $data = $this->app->DB->SelectArr("SELECT name,strasse, ansprechpartner,ort,plz,land,email,kundennummer, inhaber, bank, swift, iban,firmensepa,mandatsreferenzart,mandatsreferenz FROM adresse WHERE id='$id' LIMIT 1"); - $pdf->firmensepa=$data[0]['firmensepa']; - $pdf->mandatsreferenzart=$data[0]['mandatsreferenzart']; - - - $musterlinie = '_____________________________________'; - - $pdf->firma=$this->app->erp->ReadyForPDF($data[0]['name']); - if($pdf->firma=='') { - $pdf->firma = $musterlinie; - } - $pdf->name=$this->app->erp->ReadyForPDF($data[0]['ansprechpartner']); - if($pdf->name=='') { - $pdf->name=$musterlinie; - } - $pdf->strasse=$this->app->erp->ReadyForPDF($data[0]['strasse']); - if($pdf->strasse=='') { - $pdf->strasse=$musterlinie; - } - $pdf->plzOrt=$this->app->erp->ReadyForPDF($data[0]['land']).'-'.$this->app->erp->ReadyForPDF($data[0]['plz'])." ".$this->app->erp->ReadyForPDF($data[0]['ort']); - if($pdf->plzOrt=='-' || $pdf->plzOrt=='- ') { - $pdf->plzOrt=$musterlinie; - } - $pdf->email=$this->app->erp->ReadyForPDF($data[0]['email']); - if($pdf->email=='') { - $pdf->email=$musterlinie; - } - - $pdf->kundenNr=$this->app->erp->ReadyForPDF($data[0]['kundennummer']); - //$pdf->benutzername="info@embedded-projects.net"; - - $pdf->glID=$this->app->erp->Firmendaten('sepaglaeubigerid'); - - if($data[0]['mandatsreferenz']==''){ - $pdf->mandatsRef = $this->app->erp->ReadyForPDF($data[0]['kundennummer']); - } - else{ - $pdf->mandatsRef = $data[0]['mandatsreferenz']; - } - - $pdf->swift=$data[0]['swift']; - if($pdf->swift=='') { - $pdf->swift='_____________________________________'; - } - $pdf->iban=$data[0]['iban']; - if($pdf->iban=='') { - $pdf->iban='_____________________________________'; - } - $pdf->bank=$data[0]['bank']; - if($pdf->bank=='') { - $pdf->bank='_____________________________________'; - } - - $pdf->ermaechText='Ich ermaechtige die '.$this->app->erp->GetFirmaName().", Zahlungen von meinem Konto mittels Lastschrift einzuziehen. Zugleich weise ich mein Kreditinstitut an, die von der ".$this->app->erp->GetFirmaName()." ".$this->app->erp->Firmendaten("strasse")." ".$this->app->erp->Firmendaten("plz")." ".$this->app->erp->Firmendaten('ort').' auf mein Konto gezogenen Lastschriften einzuloesen.'; - - if($pdf->firmensepa!='1') - { - $pdf->hinweis='Hinweis: Ich kann (Wir können) innerhalb von acht Wochen, beginnend mit dem Belastungsdatum, die Erstattung des belasteten Betrages verlangen. Es gelten dabei die mit meinem (unserem) Kreditinstitut vereinbarten Bedingungen.'; - } else { - $pdf->hinweis='Hinweis: Dieses Lastschriftmandat dient nur dem Einzug von Lastschriften, die auf Konten von Unternehmen gezogen sind. Ich / Wir sind nicht berechtigt, nach der erfolgten Einlösung eine Erstattung des belasteten Betrags zu verlangen. Ich bin / Wir sind berechtigt, mein / unser Kreditinstitut bis zum Fälligkeitstag anzuweisen, Lastschriften nicht einzulösen.'; - } - - $pdf->render(); - - $name = $this->app->erp->UmlauteEntfernen($this->app->erp->ReadyForPDF($data[0]['name'])); - $name = str_replace(' ','',$name); - $name = str_replace(',','',$name); - $name = str_replace('.','',$name); - $kundennummer = $data[0]['kundennummer']; - - $filename = $tmp.date('Ymd').'_'.$kundennummer.'_'.$name.'_SEPAMANDAT.pdf'; - $pdf->Output($filename,'D'); - $this->app->ExitXentral(); -} - -function AdresseArtikel() -{ - $this->AdresseMenu(); - $id = $this->app->Secure->GetGET('id'); - - // neues arbeitspaket - //$widget = new WidgetAbrechnungsartikel(&$this->app,'TAB2'); - //$widget->Create(); - - - // child table einfuegen - - $menu = array('up'=>'upartikel', - 'down'=>'downartikel', - //"add"=>"addstueckliste", - 'edit'=>'artikeleditpopup', - 'del'=>'delartikel'); - - // wiederholende artikel - $this->app->Tpl->Set('SUBSUBHEADING','wiederholende Artikel'); - $sql = "SELECT aa.bezeichnung, DATE_FORMAT(aa.abgerechnetbis,'%d.%m.%Y') as abgerechnet, - aa.preis as preis, aa.waehrung, aa.menge as menge, aa.id as id - FROM abrechnungsartikel aa - WHERE aa.adresse='$id' AND aa.wiederholend=1"; - $this->app->YUI->SortList('INHALT',$this,$menu,$sql,false); - $this->app->Tpl->Parse('TAB1','rahmen70.tpl'); - $this->app->Tpl->Set('INHALT',''); - - - // einmalige artikel - $this->app->Tpl->Set('SUBSUBHEADING','einmalige Artikel'); - $sql = "SELECT aa.bezeichnung, DATE_FORMAT(aa.abgerechnetbis,'%d.%m.%Y') as abgerechnet, - aa.preis as preis, aa.waehrung, aa.menge as menge, aa.id as id - FROM abrechnungsartikel aa - WHERE aa.adresse='$id' AND aa.wiederholend=0 AND aa.abgerechnet=0"; - $this->app->YUI->SortList('INHALT',$this,$menu,$sql,false); - $this->app->Tpl->Parse('TAB1','rahmen70.tpl'); - - $this->app->Tpl->Set('AKTIV_TAB1','selected'); - $this->app->Tpl->Parse('PAGE','artikeluebersicht.tpl'); -} - -function AdresseArtikelEditPopup() -{ - $id = $this->app->Secure->GetGET('id'); - - // nach page inhalt des dialogs ausgeben - $widget = new WidgetAbrechnungsartikel($this->app,'PAGE'); - $sid = $this->app->DB->Select("SELECT adresse FROM abrechnungsartikel WHERE id='$id' LIMIT 1"); - $widget->form->SpecialActionAfterExecute('close_refresh', - "index.php?module=adresse&action=artikel&id=$sid"); - $widget->Edit(); - $this->app->BuildNavigation=false; -} - -function UpArtikel() -{ - $this->app->YUI->SortListEvent('up','abrechnungsartikel','adresse'); - $this->AdresseArtikel(); -} - -function DownArtikel() -{ - $this->app->YUI->SortListEvent('down','abrechnungsartikel','adresse'); - $this->AdresseArtikel(); -} - - -function DelArtikel() -{ - $this->app->YUI->SortListEvent('del','abrechnungsartikel','adresse'); - $this->AdresseArtikelPosition(); -} - -function AdresseVerein() -{ - $id = $this->app->Secure->GetGET('id'); - $submit = $this->app->Secure->GetPOST('submit'); - $this->AdresseMenu(); - - $data['verein_mitglied_seit'] = $this->app->Secure->GetPOST('verein_mitglied_seit'); - $data['verein_mitglied_bis'] = $this->app->Secure->GetPOST('verein_mitglied_bis'); - $data['verein_spendenbescheinigung'] = $this->app->Secure->GetPOST('verein_spendenbescheinigung'); - $data['verein_mitglied_aktiv'] = $this->app->Secure->GetPOST('verein_mitglied_aktiv'); - - if($data['verein_spendenbescheinigung']!='1') { - $data['verein_spendenbescheinigung']=0; - } - if($data['verein_mitglied_aktiv']!='1') { - $data['verein_mitglied_aktiv']=0; - } - - $data['verein_mitglied_seit'] = $this->app->String->Convert($data['verein_mitglied_seit'],"%1.%2.%3","%3-%2-%1"); - $data['verein_mitglied_bis'] = $this->app->String->Convert($data['verein_mitglied_bis'],"%1.%2.%3","%3-%2-%1"); - - $this->app->YUI->DatePicker('verein_mitglied_seit'); - $this->app->YUI->DatePicker('verein_mitglied_bis'); - - if($submit!='') - { - $this->app->DB->Update("UPDATE adresse SET - verein_mitglied_seit='".$data['verein_mitglied_seit']."', - verein_mitglied_bis='".$data['verein_mitglied_bis']."', - verein_spendenbescheinigung='".$data['verein_spendenbescheinigung']."', - verein_mitglied_aktiv='".$data['verein_mitglied_aktiv']."' - WHERE id='$id'"); - } - - - $data = $this->app->DB->SelectRow("SELECT * FROM adresse WHERE id='$id'"); - - if($data['verein_spendenbescheinigung']=='1') { - $this->app->Tpl->Set('VEREIN_SPENDENBESCHEINIGUNG','checked'); - } - if($data['verein_mitglied_aktiv']=='1') { - $this->app->Tpl->Set('VEREIN_MITGLIED_AKTIV','checked'); - } - $this->app->Tpl->Set('VEREIN_MITGLIED_SEIT',str_replace('..','',$this->app->String->Convert($data['verein_mitglied_seit'],"%3-%2-%1","%1.%2.%3"))); - $this->app->Tpl->Set('VEREIN_MITGLIED_BIS',str_replace('..','',$this->app->String->Convert($data['verein_mitglied_bis'],"%3-%2-%1","%1.%2.%3"))); - - $this->app->Tpl->Parse('PAGE','adresse_verein.tpl'); -} - - function AdresseMinidetailLieferadressen(){ - $id = $this->app->Secure->GetGET('id'); - - $interne_bemerkung = $this->app->DB->Select("SELECT interne_bemerkung FROM lieferadressen WHERE id = '$id' AND interne_bemerkung != '' LIMIT 1"); - $hinweis = $this->app->DB->Select("SELECT hinweis FROM lieferadressen WHERE id = '$id' AND interne_bemerkung != '' LIMIT 1"); - - $this->app->Tpl->Set('TABELLE', ""); - - if($interne_bemerkung != ''){ - $this->app->Tpl->Add('TABELLE',""); - }else{ - $this->app->Tpl->Add('TABELLE', ""); - } - - $this->app->Tpl->Add('TABELLE', "
    Interne Bemerkung
    ".$interne_bemerkung."
    Keine Daten vorhanden!
    "); - if($hinweis != ''){ - $this->app->Tpl->Add('TABELLE',""); - }else{ - $this->app->Tpl->Add('TABELLE', ""); - } - - $this->app->Tpl->Add('TABELLE', '
    Lieferhinweis
    ".$hinweis."
    Keine Daten vorhanden!
    '); - - $this->app->Tpl->Output('adresse_lieferadressen_minidetail.tpl'); - $this->app->ExitXentral(); - } - - function AdresseMinidetailAnsprechpartner(){ - $id = $this->app->Secure->GetGET('id'); - - $interne_bemerkung = $this->app->DB->Select("SELECT interne_bemerkung FROM ansprechpartner WHERE id = '$id' AND interne_bemerkung != '' LIMIT 1"); - if($interne_bemerkung != ""){ - $this->app->Tpl->Set("TABELLE", "
    Interne Bemerkung
    ".$interne_bemerkung."
    "); - }else{ - $this->app->Tpl->Set("TABELLE", "
    Keine Daten vorhanden!
    "); - } - - $this->app->Tpl->Output("adresse_lieferadressen_minidetail.tpl"); - $this->app->ExitXentral(); - } - - - function down($a,$x) { - if( count($a)-1 > $x ) { - $b = array_slice($a,0,$x,true); - $b[] = $a[$x+1]; - $b[] = $a[$x]; - $b += array_slice($a,$x+2,count($a),true); - return($b); - } - return $a; - } - - function up($a,$x) { - if( $x > 0 && $x < count($a) ) { - $b = array_slice($a,0,($x-1),true); - $b[] = $a[$x]; - $b[] = $a[$x-1]; - $b += array_slice($a,($x+1),count($a),true); - return($b); - } - return $a; - } - - public function AdresseAnschriftString($id,$ansprechpartner=false) - { - $type = 'adresse'; - if($ansprechpartner){ - $type = 'ansprechpartner'; - } - - $vorlage = $this->app->erp->Firmendaten('reihenfolge_zwischenspeicher'); - $tmp=''; - if($vorlage!='') - { - if($type==='ansprechpartner') - { - $data = $this->app->DB->SelectArr( - sprintf( - 'SELECT a.* ,t.bezeichnung as typbezeichnung - FROM adresse a - LEFT JOIN adresse_typ t on t.type=a.typ - WHERE a.id=%d - LIMIT 1', - (int)$id - ) - ); - $data[0]['name'] = $this->app->DB->Select( - sprintf( - "SELECT name FROM adresse WHERE id=%d LIMIT 1", - (int)$data[0]['adresse'] - ) - ); - } else { - $data = $this->app->DB->SelectArr("SELECT * FROM adresse WHERE id='$id' LIMIT 1"); - } - if(!empty($data)) - { - foreach($data[0] as $feld=>$value) - { - $vorlage = str_replace('{ADRESSE_'.strtoupper($feld).'}',$value,$vorlage); - } - $vorlage = preg_replace('/^\h*\v+/m', '', $vorlage); - $vorlage = str_replace("\r\n", "\\n", $vorlage); - $tmp = $vorlage; - } - } else { - if($id > 0) - { - if($type==='ansprechpartner') - { - $result = $this->app->DB->SelectArr( - sprintf( - 'SELECT *,name as ansprechpartner,ansprechpartner_land as land - FROM ansprechpartner WHERE id=%d LIMIT 1', - (int)$id - ) - ); - $result[0]['name'] = $this->app->DB->Select( - sprintf( - 'SELECT name FROM adresse WHERE id=%d LIMIT 1', - $result[0]['adresse'] - ) - ); - } else { - $result = $this->app->DB->SelectArr( - sprintf('SELECT * FROM adresse WHERE id=%d LIMIT 1', - $id - ) - ); - } - - if($result[0]['name']!="") $tmp .= $result[0]['name']."\\n"; - if($result[0]['ansprechpartner']!="") $tmp .= $result[0]['ansprechpartner']."\\n"; - if($result[0]['abteilung']!="") $tmp .= $result[0]['abteilung']."\\n"; - if($result[0]['unterabteilung']!="") $tmp .= $result[0]['unterabteilung']."\\n"; - if($result[0]['adresszusatz']!="") $tmp .= $result[0]['adresszusatz']."\\n"; - if($result[0]['strasse']!="") $tmp .= $result[0]['strasse']."\\n"; - $tmp .= $result[0]['land']."-".$result[0]['plz']." ".$result[0]['ort']; - } - } - return $this->app->erp->ReadyForPDF($tmp); - } - - /** - * @param int $id - * - * @return int - */ - public function CopyAdresse($id){ - $this->app->DB->MysqlCopyRow('adresse','id',$id); - $idNew = $this->app->DB->GetInsertID(); - //$roles = $this->app->DB->SelectArr("SELECT * FROM adresse_rolle WHERE adresse = '$id'"); - $this->app->DB->Insert("INSERT INTO adresse_rolle (adresse, projekt, subjekt, praedikat, objekt, parameter, von, bis) - SELECT $idNew, projekt, subjekt, praedikat, objekt, parameter, von, bis FROM adresse_rolle WHERE adresse = '$id'"); - - return $idNew; - } - - /** - * @param int $adresseId AdressID - * @param int $maxResults SQL-Limit; Maximale Anzahl der Ergebnisse - * - * @return string - */ - protected function GetAddressCrmSql($adresseId, $maxResults = 20) - { - $adresseId = (int)$adresseId; - $limit = (int)$maxResults; - - $sql = ' - SELECT - DATE_FORMAT(a.datum, "%d.%m.%Y %H:%i") AS datum, - if(ifnull(a.internebezeichnung,\'\') = \'\', a.title, concat(a.title,\'
    \',a.internebezeichnung,\'\')) AS bezeichnung, - a.ansprechpartner, - a.abkuerzung AS projekt, - a.bearbeiter, - a.art, - a.gesendet, - a.pdf - FROM - ( - ( - SELECT - d.id, - CONCAT(DATE_FORMAT(d.datum, "%Y-%m-%d"), " ", IF(d.uhrzeit IS NULL OR DATE_FORMAT(d.uhrzeit, "%H:%i")="00:00", "", DATE_FORMAT(d.uhrzeit, "%H:%i")) ) as datum, - d.betreff as title,if(d.typ = \'email\',if(d.ansprechpartner <> \'\',d.ansprechpartner,d.email_an),d.ansprechpartner) as ansprechpartner, - p.abkuerzung as abkuerzung, - if(bearbeiter!="",bearbeiter,a2.name) as bearbeiter, - CONCAT(UCASE(LEFT(d.typ, 1)), SUBSTRING(d.typ, 2)) as art, - CONCAT(IF(d.sent = 1, "JA", "NEIN"),"") as gesendet, - "" as pdf, - concat("1","-",d.id) as did, - d.content as suchtext, - d.internebezeichnung - FROM - dokumente d - LEFT JOIN projekt p ON p.id=d.projekt - LEFT JOIN adresse a2 ON a2.id=adresse_from - WHERE - adresse_to = ' . $adresseId . ' - ) - - UNION ALL - ( - SELECT - ds.id, - CONCAT(DATE_FORMAT(ds.zeit, "%Y-%m-%d")," ", IF(DATE_FORMAT(ds.zeit, "%H:%i")="00:00", "", DATE_FORMAT(ds.zeit, "%H:%i"))) as datum, - ds.betreff as title,ds.ansprechpartner , - p.abkuerzung as abkuerzung, - ds.bearbeiter as bearbeiter, - CONCAT(UCASE(LEFT(ds.dokument, 1)), SUBSTRING(ds.dokument, 2),"index.php?module=",ds.dokument,"&action=edit&id=",ds.parameter,"") as art, - CONCAT(IF(ds.versendet = 1, "JA", "NEIN"),"") as gesendet, - concat("app->Conf->WFconf['defaulttheme'] . '/images/pdf.svg>") as pdf, - concat("2","-",ds.id) as did, - ds.text as suchtext, - ifnull(d1.internebezeichnung, - ifnull(d2.internebezeichnung, - ifnull(d3.internebezeichnung, - ifnull(d4.internebezeichnung, - ifnull(d5.internebezeichnung, - ifnull(d6.internebezeichnung, - \'\')))))) as internebezeichnung - FROM - dokumente_send ds - LEFT JOIN lieferschein d1 ON ds.parameter = d1.id AND ds.dokument = \'lieferschein\' - LEFT JOIN auftrag d2 ON ds.parameter = d2.id AND ds.dokument = \'auftrag\' - LEFT JOIN rechnung d3 ON ds.parameter = d3.id AND ds.dokument = \'rechnung\' - LEFT JOIN gutschrift d4 ON ds.parameter = d4.id AND ds.dokument = \'gutschrift\' - LEFT JOIN angebot d5 ON ds.parameter = d5.id AND ds.dokument = \'angebot\' - LEFT JOIN bestellung d6 ON ds.parameter = d6.id AND ds.dokument = \'bestellung\' - LEFT JOIN projekt p ON p.id=ds.projekt - WHERE - ds.adresse = ' . $adresseId . ' - ) - - UNION ALL - ( - SELECT - k.id, - CONCAT(DATE_FORMAT(k.von, "%Y-%m-%d")," ", IF(DATE_FORMAT(k.von, "%H:%i")="00:00", "", DATE_FORMAT(k.von, "%H:%i"))) as datum, - k.bezeichnung COLLATE utf8_general_ci as title,\'\' as ansprechpartner, - p.abkuerzung as abkuerzung, - a2.name COLLATE utf8_general_ci as bearbeiter, - "Kalender" as art, - CONCAT("") as gesendet, - "" as pdf, - concat("6","-",k.id) as did, - k.beschreibung COLLATE utf8_general_ci as suchtext, - \'\' as internebezeichnung - FROM - kalender_event k - LEFT JOIN adresse a2 ON k.adresseintern = a2.id - LEFT JOIN projekt p ON p.id=k.projekt - WHERE - k.adresse = ' . $adresseId . ' - ) - '; - - - - if($this->app->erp->RechteVorhanden('wiedervorlage', 'list')){ - if($this->app->erp->GetKonfiguration('adresse_crm_collateerror') && method_exists($this->app->YUI, 'ConvertLatin1UTF')){ - $sql .= ' - UNION ALL - ( - SELECT - w.id, - CONCAT(DATE_FORMAT(datum_erinnerung, "%Y-%m-%d"), " ", IF(zeit_erinnerung IS NULL OR DATE_FORMAT(zeit_erinnerung, "%H:%i")="00:00", "", DATE_FORMAT(zeit_erinnerung, "%H:%i")) ) as datum, - ' . $this->app->YUI->ConvertLatin1UTF('w.bezeichnung') . ' as title,\'\' as ansprechpartner, - ' . $this->app->YUI->ConvertLatin1UTF('p.abkuerzung') . ' as abkuerzung, - adr.name COLLATE utf8_general_ci as bearbeiter, - CONCAT("Wiedervorlage") as art, - CONCAT("") as gesendet, - "" as pdf, - concat("5","-",w.id) as did, - ' . $this->app->YUI->ConvertLatin1UTF('w.beschreibung') . ' as suchtext, - \'\' as internebezeichnung - FROM - wiedervorlage w left join adresse adr on w.bearbeiter = adr.id - LEFT JOIN projekt p ON p.id=w.projekt - WHERE - w.adresse = ' . $adresseId . ' - )'; - }else{ - $sql .= ' - UNION ALL - ( - SELECT - w.id, - CONCAT(DATE_FORMAT(datum_erinnerung, "%Y-%m-%d"), " ", IF(zeit_erinnerung IS NULL OR DATE_FORMAT(zeit_erinnerung, "%H:%i")="00:00", "", DATE_FORMAT(zeit_erinnerung, "%H:%i")) ) as datum, - w.bezeichnung COLLATE utf8_general_ci as title,\'\' as ansprechpartner, - p.abkuerzung COLLATE utf8_general_ci as abkuerzung, - adr.name COLLATE utf8_general_ci as bearbeiter, - CONCAT("Wiedervorlage") as art, - CONCAT("") as gesendet, - "" as pdf, - concat("5","-",w.id) as did, - w.beschreibung COLLATE utf8_general_ci as suchtext, - \'\' as internebezeichnung - FROM - wiedervorlage w left join adresse adr on w.bearbeiter = adr.id - LEFT JOIN projekt p ON p.id=w.projekt - WHERE - w.adresse = ' . $adresseId . ' - )'; - } - } - $sql .= ') AS a '; - $sql .= 'ORDER BY a.datum DESC '; - $sql .= 'LIMIT 0, ' . $maxResults; - - return $sql; - } -} - +Secure->GetGET('id'); + switch($name) + { + case 'lieferantartikel': + $allowed['adresse'] = array('lieferantartikel'); + + // START EXTRA checkboxen + $app->Tpl->Add('JQUERYREADY', "$('#offen').on('click', function() { fnFilterColumn1( 0 ); } );"); + for ($r = 1;$r < 2;$r++) { + $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 + ); + } + '); + } + + // headings + $heading = array('Nummer', 'Artikel', 'Verkauf', 'LA', 'AB', 'BE', 'Reserv.', 'Fehlende', 'Gesamt', 'aktueller Monate', 'letzter Monat', 'Status', 'Menü'); + $width = array('5%', '40%', '5%', '5%', '5%', '5%', '5%', '5%', '5%', '5%', '5%', '5%', '15%'); + + $findcols = array('nummer', 'name_de', 'verkauf', 'CAST(`lager` as SIGNED)', 'CAST(`offen` as SIGNED)', 'CAST(`bestellung` as SIGNED)', 'CAST(`res` as SIGNED)', 'CAST(`fehlende` as SIGNED)', 'CAST(`gesamt` as SIGNED)', 'CAST(`monat` as SIGNED)', 'CAST(`monat_last` as SIGNED)', 'status', 'id'); + + $searchsql = array('a.name_de', "IFNULL((SELECT e.bestellnummer FROM einkaufspreise e WHERE e.artikel=a.id AND e.adresse='$id' AND e.geloescht!=1 AND e.bestellnummer!='' LIMIT 1),'')", 'a.nummer'); + $menu = "Conf->WFconf['defaulttheme']}/images/edit.svg\" border=\"0\">" . " Conf->WFconf['defaulttheme']}/images/delete.svg\" border=\"0\">" . " Conf->WFconf['defaulttheme']}/images/copy.svg\" border=\"0\">"; + $aktuellermonat = $app->DB->Select("SELECT CONCAT(YEAR(NOW()),'-',MONTH(NOW()))"); + $letztermonat = $app->DB->Select("SELECT CONCAT(YEAR( DATE_SUB( NOW() , INTERVAL 1 MONTH )),'-',DATE_FORMAT( DATE_SUB( NOW() , INTERVAL 1 MONTH ) ,'%m'))"); + $alignright = array(4,5,6,7,8,9,10,11); + // SQL statement + $sql = "SELECT SQL_CALC_FOUND_ROWS a.id, a.nummer as nummer, + + CONCAT(if( (SELECT SUM(ap.menge) FROM auftrag_position ap LEFT JOIN auftrag auf ON auf.id=ap.auftrag WHERE ap.artikel=a.id AND auf.status='freigegeben') > IFNULL((SELECT SUM(l.menge) FROM lager_platz_inhalt l WHERE l.artikel=a.id),0) + IFNULL((SELECT SUM(bp.menge-bp.geliefert) FROM bestellung_position bp LEFT JOIN bestellung b ON b.id=bp.bestellung WHERE bp.artikel=a.id AND b.status='versendet'),0) + + , CONCAT('',a.name_de,''),a.name_de),'
    Best-Nr.:',IFNULL((SELECT e.bestellnummer FROM einkaufspreise e WHERE e.artikel=a.id AND e.adresse='$id' AND e.geloescht!=1 AND e.bestellnummer!='' ORDER by e.id DESC LIMIT 1),'-'),'
    Letzter EK-Preis: ',IFNULL((SELECT ".$app->erp->FormatPreis("e.preis",2)." FROM einkaufspreise e WHERE e.artikel=a.id AND (e.gueltig_bis > NOW() OR e.gueltig_bis='0000-00-00') AND e.geloescht!=1 AND e.preis >= 0 ORDER by e.id DESC LIMIT 1),''),' ab Menge ',IFNULL((SELECT ".$app->erp->FormatMenge("e.ab_menge")." FROM einkaufspreise e WHERE e.artikel=a.id AND (e.gueltig_bis > NOW() OR e.gueltig_bis='0000-00-00') AND e.geloescht!=1 AND e.preis >= 0 ORDER by e.id DESC LIMIT 1),'')) as name, + + + ifnull((SELECT DATE_FORMAT(MAX(auftrag.datum), '%d.%m.%Y') FROM auftrag LEFT JOIN + auftrag_position ON auftrag.id=auftrag_position.auftrag WHERE auftrag_position.artikel=a.id + ),0) as verkauf, + + + + ifnull(if( (SELECT SUM(ap.menge) FROM auftrag_position ap LEFT JOIN auftrag auf ON auf.id=ap.auftrag WHERE ap.artikel=a.id AND auf.status='freigegeben') > IFNULL((SELECT SUM(l.menge) FROM lager_platz_inhalt l WHERE l.artikel=a.id),0) + IFNULL((SELECT SUM(bp.menge-bp.geliefert) FROM bestellung_position bp LEFT JOIN bestellung b ON b.id=bp.bestellung WHERE bp.artikel=a.id AND b.status='versendet'),0) + , + CONCAT('',if((SELECT SUM(l.menge) FROM lager_platz_inhalt l WHERE l.artikel=a.id) > 0,(SELECT ".$app->erp->FormatMenge("SUM(l.menge)")." FROM lager_platz_inhalt l WHERE l.artikel=a.id),'-'),''), + + if((SELECT SUM(l.menge) FROM lager_platz_inhalt l WHERE l.artikel=a.id) > 0,(SELECT ".$app->erp->FormatMenge("SUM(l.menge)")." FROM lager_platz_inhalt l WHERE l.artikel=a.id),'-')),0) + as lager, + + ifnull((SELECT ".$app->erp->FormatMenge("SUM(ap.menge)")." FROM auftrag_position ap LEFT JOIN auftrag auf ON auf.id=ap.auftrag WHERE ap.artikel=a.id AND auf.status='freigegeben'),0) as offen, + + ifnull((SELECT ".$app->erp->FormatMenge("SUM(bp.menge-bp.geliefert)")." FROM bestellung_position bp LEFT JOIN bestellung b ON b.id=bp.bestellung WHERE bp.artikel=a.id AND b.status='versendet'),0) as bestellung, + + ifnull((if((SELECT SUM(l.menge) FROM lager_reserviert l WHERE l.artikel=a.id) > 0,(SELECT ".$app->erp->FormatMenge("SUM(l.menge)")." FROM lager_reserviert l WHERE l.artikel=a.id),'-')),0) as res, + + ifnull(IF((SELECT SUM(ap.menge) FROM auftrag_position ap LEFT JOIN auftrag auf ON auf.id=ap.auftrag WHERE ap.artikel=a.id AND auf.status='freigegeben') - ( IFNULL((SELECT SUM(l.menge) FROM lager_platz_inhalt l WHERE l.artikel=a.id),0) + IFNULL((SELECT SUM(bp.menge-bp.geliefert) FROM bestellung_position bp LEFT JOIN bestellung b ON b.id=bp.bestellung WHERE bp.artikel=a.id AND b.status='versendet'),0)) > 0,".$app->erp->FormatMenge("(SELECT SUM(ap.menge) FROM auftrag_position ap LEFT JOIN auftrag auf ON auf.id=ap.auftrag WHERE ap.artikel=a.id AND auf.status='freigegeben') - ( IFNULL((SELECT SUM(l.menge) FROM lager_platz_inhalt l WHERE l.artikel=a.id),0) + IFNULL((SELECT SUM(bp.menge-bp.geliefert) FROM bestellung_position bp LEFT JOIN bestellung b ON b.id=bp.bestellung WHERE bp.artikel=a.id AND b.status='versendet'),0))").",'-'),0) as fehlende, + + + + ifnull(if((SELECT SUM(ap.menge) FROM auftrag_position ap WHERE ap.artikel=a.id) > 0, (SELECT ".$app->erp->FormatMenge("SUM(ap.menge)")." FROM auftrag_position ap WHERE ap.artikel=a.id),'-'),0) as gesamt, + ifnull((SELECT ".$app->erp->FormatMenge("SUM(ap.menge)")." FROM auftrag_position ap LEFT JOIN auftrag auf ON auf.id=ap.auftrag WHERE ap.artikel=a.id AND DATE_FORMAT(auf.datum,'%Y-%m')='$aktuellermonat'),0) as monat, + ifnull((SELECT ".$app->erp->FormatMenge("SUM(ap.menge)")." FROM auftrag_position ap LEFT JOIN auftrag auf ON auf.id=ap.auftrag WHERE ap.artikel=a.id AND DATE_FORMAT(auf.datum,'%Y-%m')='$letztermonat'),0) as monat_last, + + ifnull(if( (SELECT SUM(ap.menge) FROM auftrag_position ap LEFT JOIN auftrag auf ON auf.id=ap.auftrag WHERE ap.artikel=a.id AND auf.status='freigegeben') > IFNULL((SELECT SUM(l.menge) FROM lager_platz_inhalt l WHERE l.artikel=a.id),0)+IFNULL((SELECT SUM(bp.menge-bp.geliefert) FROM bestellung_position bp LEFT JOIN bestellung b ON b.id=bp.bestellung WHERE bp.artikel=a.id AND b.status='versendet'),0), 'fehlt','ok'),'') as status, + a.id as menu + FROM artikel a "; + + // START EXTRA more + $more_data1 = $app->Secure->GetGET("more_data1"); + + if ($more_data1 == 1) $subwhere[] = " (((SELECT MAX(auftrag.datum) FROM auftrag LEFT JOIN + auftrag_position ON auftrag.id=auftrag_position.auftrag WHERE auftrag_position.artikel=a.id + ) < DATE_SUB(NOW(),INTERVAL 6 MONTH)) AND (SELECT SUM(l.menge) FROM lager_platz_inhalt l WHERE l.artikel=a.id) > 0 )"; + $csubwhere = isset($subwhere)?count($subwhere):0; + $tmp = ''; + for ($j = 0;$j < $csubwhere;$j++) { + $tmp.= " AND " . $subwhere[$j]; + } + + // fester filter + $where = " (a.adresse='$id' OR a.id IN(SELECT artikel FROM einkaufspreise WHERE adresse='$id' AND (gueltig_bis>CURRENT_DATE() OR gueltig_bis='0000-00-00'))) AND a.geloescht!=1 $tmp"; + $count = "SELECT COUNT(a.id) FROM artikel a WHERE $where"; + + break; + case 'adressealleabos': + $allowed['adresse'] = array('artikel'); + $heading = array('Bezeichnung', 'Nummer', 'Start am', 'Abgerechnet bis', 'Enddatum', 'Preis','Rabatt', 'Währung', 'Menge', 'Art', 'Dokument','Gruppe / Reihenfolge', 'Menü'); + $width = array('10%', '6%', '10%', '10%', '10%', '6%','3%', '4%', '2%', '5%', '5%','15%', '8%'); + + $findcols = array('aa.bezeichnung', 'ar.nummer', "if(aa.startdatum!='0000-00-00',DATE_FORMAT(aa.startdatum,'%d.%m.%Y') ,if(aa.angelegtam='0000-00-00','-',DATE_FORMAT(aa.angelegtam,'%d.%m.%Y')))", "if(aa.abgerechnetbis='0000-00-00','-',aa.abgerechnetbis)", "if(aa.enddatum='0000-00-00','-',aa.enddatum)", 'aa.preis','aa.rabatt', 'aa.waehrung', 'aa.menge', + "if(aa.wiederholend=1 OR aa.preisart='monat' OR aa.preisart='jahr' OR aa.preisart='monatx' OR aa.preisart='wochen',aa.preisart, + if(aa.preisart = '30tage', + '30 Tage', + if(aa.preisart = '360tage', '360 Tage', 'einmalig') + ) + )", + 'aa.dokument',"CONCAT(IFNULL(ag.beschreibung,''),aa.sort)", 'id'); + $searchsql = array('aa.bezeichnung', 'ar.nummer', "if(aa.startdatum!='0000-00-00',DATE_FORMAT(aa.startdatum,'%d.%m.%Y') ,if(aa.angelegtam='0000-00-00','-',DATE_FORMAT(aa.angelegtam,'%d.%m.%Y')))", "if(aa.abgerechnetbis='0000-00-00','-',DATE_FORMAT(aa.abgerechnetbis,'%d.%m.%Y'))", "if(aa.enddatum='0000-00-00','-',DATE_FORMAT(aa.enddatum,'%d.%m.%Y'))", $app->erp->FormatPreis("aa.preis"),'aa.rabatt', 'aa.waehrung', $app->erp->FormatMenge("aa.menge"), + "if(aa.wiederholend=1 OR aa.preisart='monat' OR aa.preisart='jahr' OR aa.preisart='monatx' OR aa.preisart='wochen',aa.preisart, + if(aa.preisart = '30tage', + '30 Tage', + if(aa.preisart = '360tage', '360 Tage', 'einmalig') + ) + )", + 'ag.beschreibung', 'aa.dokument'); + + $numbercols = array(5,8); + $datecols = array(3,4); + $alignright = array(6,7,8,9); + $defaultorder = 12; + $defaultorderdesc = 0; + + $nurAktive = $app->YUI->TableSearchFilter($name, 5, 'nur_aktive_abos', '0', 0, 'checkbox'); + $subwhere = ''; + if($nurAktive){ + $subwhere = " AND (aa.enddatum = '0000-00-00' OR aa.enddatum >= CURDATE())"; + } + + $id = $app->Secure->GetGET('id'); + + $menu = ""; + $menu .= ""; + $menu .= ""; + $menu .= ""; + $menu .= "
    "; + $menu .= "Conf->WFconf['defaulttheme']}/images/edit.svg\"> "; + $menu .= "Conf->WFconf['defaulttheme']}/images/delete.svg\"> "; + $menu .= "
    "; + + $where = " aa.adresse='$id'".$subwhere; + + $sql = "SELECT SQL_CALC_FOUND_ROWS aa.id, aa.bezeichnung, ar.nummer, if(aa.startdatum!='0000-00-00',DATE_FORMAT(aa.startdatum,'%d.%m.%Y') ,if(aa.angelegtam='0000-00-00','-',DATE_FORMAT(aa.angelegtam,'%d.%m.%Y'))) as 'angelegtam', if(aa.abgerechnetbis='0000-00-00','-',DATE_FORMAT(aa.abgerechnetbis,'%d.%m.%Y')) as 'abgerechnetbis', + if(aa.enddatum='0000-00-00','-',DATE_FORMAT(aa.enddatum,'%d.%m.%Y')) as enddatum, + ".$app->erp->FormatPreis("aa.preis")." as preis, aa.rabatt, aa.waehrung, ".$app->erp->FormatMenge("aa.menge")." as menge, + if( + aa.wiederholend=1 OR aa.preisart='monat' OR aa.preisart='jahr' OR aa.preisart='monatx' OR aa.preisart='wochen', + aa.preisart, + if(aa.preisart = '30tage', + '30 Tage', + if(aa.preisart = '360tage', '360 Tage', 'einmalig') + ) + ), + aa.dokument,CONCAT(IFNULL(ag.beschreibung,'-'), ' / ', if(ag.id > 0,' ',''),aa.sort, ''), aa.id as id + FROM abrechnungsartikel aa LEFT JOIN artikel ar ON ar.id=aa.artikel LEFT JOIN user u ON u.id=aa.angelegtvon LEFT JOIN adresse au ON au.id=u.adresse + LEFT JOIN abrechnungsartikel_gruppe ag ON aa.gruppe=ag.id"; + $count = "SELECT COUNT(aa.id) FROM abrechnungsartikel aa LEFT JOIN artikel ar ON ar.id = aa.artikel LEFT JOIN user u ON u.id = aa.angelegtvon LEFT JOIN adresse au ON au.id = u.adresse WHERE $where"; + + break; + case 'adressealleabossort': + $allowed['adresse'] = array('artikel'); + $heading = array('Bezeichnung', 'Nummer', 'Preis','Gruppe', 'Reihenfolge', 'Menü'); + $width = array('10%', '10%', '10%', '10%', '10%', '8%'); + + $findcols = array('aa.bezeichnung', 'ar.nummer', 'preis','ag.beschreibung','aa.sort', 'id'); + $searchsql = array('aa.bezeichnung', 'ar.nummer', 'preis','ag.beschreibung'); + + $alignright = array(6); + $defaultorder = 4; + $defaultorderdesc = 0; + + $id = $app->Secure->GetGET('id'); + + $menu = ""; + $menu .= ""; + $menu .= ""; + $menu .= ""; + $menu .= "
    "; + $menu .= "Conf->WFconf['defaulttheme']}/images/up.png\">"; + $menu .= "Conf->WFconf['defaulttheme']}/images/down.png\">"; + $menu .= "
    "; + + $where = " aa.adresse='$id'"; + + $orderby = "ORDER BY aa.gruppe ASC, aa.sort ASC"; + + $sql = "SELECT SQL_CALC_FOUND_ROWS aa.id, + aa.bezeichnung, + ar.nummer, + ".$app->erp->FormatPreis("aa.preis")." as preis, + IFNULL(ag.beschreibung,'-') as gruppe, + aa.sort, + aa.id as id + FROM abrechnungsartikel aa LEFT JOIN artikel ar ON ar.id=aa.artikel LEFT JOIN user u ON u.id=aa.angelegtvon LEFT JOIN adresse au ON au.id=u.adresse + LEFT JOIN abrechnungsartikel_gruppe ag ON aa.gruppe=ag.id"; + $count = "SELECT COUNT(aa.id) FROM abrechnungsartikel aa LEFT JOIN artikel ar ON ar.id = aa.artikel LEFT JOIN user u ON u.id = aa.angelegtvon LEFT JOIN adresse au ON au.id = u.adresse WHERE $where"; + + break; + case 'abrechnungsartikel_gruppe': + $allowed['adresse'] = array('artikel'); + $heading = array('Bezeichnung','Reihenfolge','Ansprechpartner','Rechnung','Ziel-Projekt', 'Menü'); + $width = array('30%','5%', '30%','10%','15%', '8%'); + + $findcols = array('ag.beschreibung','ag.sort', 'ag.ansprechpartner', "if(ag.extrarechnung=0,'Gemeinsame Rechnung', if(ag.extrarechnung=1,'Eigene Rechnung', if(ag.extrarechnung=2, 'Sammelrechnung', '-')))",'p.abkuerzung', 'ag.id'); + $searchsql = array('ag.beschreibung','ag.sort', 'ag.ansprechpartner', "if(ag.extrarechnung=0,'Gemeinsame Rechnung', if(ag.extrarechnung=1,'Eigene Rechnung', if(ag.extrarechnung=2, 'Sammelrechnung', '-')))",'p.abkuerzung'); + + $defaultorder = 1; + $defaultorderdesc = 0; + + $id = $app->Secure->GetGET('id'); + + $menu = ""; + $menu .= ""; + $menu .= ""; + $menu .= ""; + $menu .= ""; + $menu .= "
    "; + $menu .= ""; + $menu .= "Conf->WFconf['defaulttheme']}/images/edit.svg\">"; + $menu .= ""; + $menu .= ""; + $menu .= ""; + $menu .= "Conf->WFconf['defaulttheme']}/images/delete.svg\">"; + $menu .= ""; + $menu .= "
    "; + + $where = " ag.adresse='$id' "; + + $sql = "SELECT SQL_CALC_FOUND_ROWS ag.id, ag.beschreibung,if(ag.sort<=0,'-',ag.sort),ag.ansprechpartner,if(ag.extrarechnung=0,'Gemeinsame Rechnung', if(ag.extrarechnung=1,'Eigene Rechnung', if(ag.extrarechnung=2, 'Sammelrechnung', '-'))), p.abkuerzung, ag.id FROM abrechnungsartikel_gruppe ag + LEFT JOIN projekt p ON p.id=ag.projekt"; + + $count = "SELECT COUNT(ag.id) FROM abrechnungsartikel_gruppe ag WHERE $where"; + + + break; + case 'abosammelrechnungen': + $allowed['adresse'] = array('artikel'); + $heading = array('Bezeichnung', 'abweichende Rechnungsadresse', 'Ziel-Projekt', 'Menü'); + $width = array('30%', '30%', '30%', '1%'); + + $findcols = array('abs.bezeichnung', 'a.name', 'p.abkuerzung', 'abs.id'); + $searchsql = array('abs.bezeichnung', 'a.name', 'p.abkuerzung'); + + $defaultorder = 1; + $defaultorderdesc = 0; + + $id = $app->Secure->GetGET('id'); + + $menu = ""; + $menu .= ""; + $menu .= ""; + $menu .= ""; + $menu .= "
    "; + $menu .= ''; + $menu .= "Conf->WFconf['defaulttheme']}/images/edit.svg\">"; + $menu .= " "; + $menu .= ''; + $menu .= "Conf->WFconf['defaulttheme']}/images/delete.svg\">"; + $menu .= ""; + $menu .= "
    "; + + $where = " abs.adresse='$id' "; + + $sql = "SELECT SQL_CALC_FOUND_ROWS abs.id, abs.bezeichnung, a.name, p.abkuerzung, abs.id FROM adresse_abosammelrechnungen abs LEFT JOIN adresse a ON abs.abweichende_rechnungsadresse = a.id LEFT JOIN projekt p ON abs.projekt = p.id"; + + $count = "SELECT COUNT(abs.id) FROM adresse_abosammelrechnungen abs WHERE $where"; + break; + + case 'abrechnungsartikel': + $allowed['adresse'] = array('artikel'); + $heading = array('Artikel', 'Nummer', 'Ab', 'Preis','Waehrung', 'Projekt', 'Startdatum', 'Menge', 'Aktion'); + $width = array('20%', '10%', '2%', '8%', '5%','1%', '10%', '10%', '10%'); + $findcols = array('a.name_de', 'a.nummer', 'ab', 'v.preis','v.waehrung','projekt', 'lieferdatum', 'menge', 'v.id'); + $searchsql = array('a.name_de', 'a.nummer'); + $id = $app->Secure->GetGET('id'); + $alignright=array(4,5); + $menu = '
    '; + $sql = "SELECT SQL_CALC_FOUND_ROWS a.id,CONCAT(a.name_de,' ',if(v.adresse='$id','(Kundensp. Preis)',''), if(v.gruppe > 0,CONCAT('(Gruppenpreis ',g.name,' ',g.kennziffer,')'),'')), CONCAT('',a.nummer,''), ".$app->erp->FormatMenge("v.ab_menge")." AS ab, ".$app->erp->FormatPreis("v.preis").",v.waehrung, p.abkuerzung as projekt, + CONCAT('
    ') AS lieferdatum, + CONCAT('
    ') AS menge, + v.id + FROM artikel AS a + LEFT JOIN verkaufspreise AS v ON v.artikel=a.id + LEFT JOIN projekt AS p ON p.id=v.projekt LEFT JOIN gruppen g ON g.id=v.gruppe"; + $where = " v.ab_menge>0 AND a.geloescht!=1 AND (v.gueltig_bis ='0000-00-00' OR v.gueltig_bis >= DATE_FORMAT(NOW(),'%Y-%m-%d')) AND (v.adresse='$id' or v.adresse<=0) "; + $count = "SELECT COUNT(a.id) FROM artikel AS a + LEFT JOIN verkaufspreise AS v ON v.artikel=a.id + LEFT JOIN projekt AS p ON p.id=v.projekt + WHERE $where"; + break; + case 'adresse_ansprechpartnergruppen': + //$doctype = str_replace('belegeinauslagern_bewegungen_','',$name); + $id = $app->Secure->GetGET('id'); + $lid = $app->YUI->TableSearchFilter($name, 1, 'filterlid'); + $allowed['adresse'] = array('ansprechpartner'); + $heading = array('','Gruppe','Kategorie',''); + $width = array('1%','49%','49','1%'); + $findcols = array('ag.aktiv','gr.name','gk.bezeichnung','gr.id'); + $searchsql = array('gr.name','gk.bezeichnung'); + $defaultorder = 2; + $defaultorderdesc = 0; + $disabled = ""; + //if(!$lid)$disabled = "disabled "; + $sql= "SELECT SQL_CALC_FOUND_ROWS gr.id , + concat(' 0,' checked ','')),' />') as auswahl, + gr.name, gk.bezeichnung, gr.id + FROM gruppen gr + LEFT JOIN ansprechpartner_gruppen ag ON gr.id = ag.gruppe and ag.ansprechpartner = '$lid' + LEFT JOIN gruppen_kategorien gk ON gr.kategorie = gk.id + "; + $where = " gr.art != 'preisgruppe' "; + $maxrows = 50; + $disablebuttons = true; + break; + + case 'adresse_ustprf': + $allowed['adresse'] = array('ustprf'); + + $heading = array('Datum', 'Firma', 'Straße', 'PLZ', 'Ort', 'Land', 'Brief', 'Status', 'Menü'); + $width = array('8%', '25%', '25%', '5%', '10%', '5%', '3%', '5%', '1%'); + + $findcols = array('u.datum', 'u.name', 'u.strasse', 'u.plz', 'u.ort', 'u.land', "if(u.briefbestellt != '0000-00-00', 'ja', '-')", "IF(u.status = 'gueltigmarkieren', 'gültig markiert', status)", 'u.id'); + $searchsql = array("DATE_FORMAT(u.datum, '%d.%m.%Y')", 'u.name', 'u.strasse', 'u.plz', 'u.ort', 'u.land', 'u.briefbestellt', "IF(u.status = 'gueltigmarkieren', 'gültig markiert', status)"); + + $defaultorder = 1; + $defaultorderdesc = 0; + + $menu = ''; + $menu .= ''; + $menu .= ''; + $menu .= ''; + $menu .= '
    '; + $menu .= ''; + $menu .= "Conf->WFconf['defaulttheme']}/images/edit.svg\" border=\"0\">"; + $menu .= ' '; + $menu .= ''; + $menu .= "Conf->WFconf['defaulttheme']}/images/delete.svg\" border=\"0\">"; + $menu .= ''; + $menu .= '
    '; + + $adressid = $app->Secure->GetGET('id'); + + $where = " u.id > 0 AND u.adresse = '$adressid'"; + + $sql = "SELECT SQL_CALC_FOUND_ROWS u.id, DATE_FORMAT(u.datum, '%d.%m.%Y'), u.name, u.strasse, u.plz, u.ort, u.land, if(u.briefbestellt != '0000-00-00', 'ja', '-'), IF(u.status = 'gueltigmarkieren', 'gültig markiert', IF(u.status = 'online', 'erfolgreich geprüft', u.status)), u.id FROM ustprf u"; + + $count = "SELECT COUNT(u.id) FROM ustprf u WHERE $where"; + break; + + case 'adresse_ustprf_protokoll': + $allowed['adresse'] = array('ustprf'); + + $heading = array('Datum / Zeit', 'Bemerkung', 'Bearbeiter', ''); + $width = array('18%', '56%', '25%', '1%'); + + $findcols = array('u.zeit', 'u.bemerkung', 'u.bearbeiter', 'u.id'); + $searchsql = array("DATE_FORMAT(u.zeit, '%d.%m.%Y %H:%i:%s')", 'u.bemerkung', 'u.bearbeiter'); + + $defaultorder = 1; + $defaultorderdesc = 1; + + //$ustprfid = 0; + $ustprfid = $app->Secure->GetGET('more_data1'); + + $where = " u.ustprf_id = '$ustprfid'"; + + $sql = "SELECT SQL_CALC_FOUND_ROWS u.id, DATE_FORMAT(u.zeit, '%d.%m.%Y %H:%i:%s'), IF(u.daten != '', CONCAT(u.bemerkung, '
    ', u.daten,''), u.bemerkung), u.bearbeiter, u.id FROM ustprf_protokoll u"; + + $count = "SELECT COUNT(u.id) FROM ustprf_protokoll u WHERE $where"; + } + + $erg = []; + foreach($erlaubtevars as $k => $v) { + if(isset($$v)){ + $erg[$v] = $$v; + } + } + return $erg; + } + + /** + * Adresse constructor. + * + * @param Application $app + * @param bool $intern + */ + public function __construct($app, $intern = false) { + $this->app=$app; + if($intern){ + return; + } + + $this->app->ActionHandlerInit($this); + + $this->app->ActionHandler("create","AdresseCreate"); + $this->app->ActionHandler("edit","AdresseEdit"); + $this->app->ActionHandler("getid","AdresseGetid"); + $this->app->ActionHandler("open","AdresseOpen"); + $this->app->ActionHandler("list","AdresseList"); + $this->app->ActionHandler("suche","AdresseSuche"); + $this->app->ActionHandler("delete","AdresseDelete"); + $this->app->ActionHandler("ustprf","AdresseUstprf"); + $this->app->ActionHandler("lieferantvorlage","AdresseLieferantvorlage"); + $this->app->ActionHandler("kundevorlage","AdresseKundevorlage"); + $this->app->ActionHandler("zeiterfassung","AdresseZeiterfassung"); + $this->app->ActionHandler("abrechnungzeit","AdresseAbrechnungzeit"); + $this->app->ActionHandler("abrechnungzeitabgeschlossen","AdresseAbrechnungzeitabgeschlossen"); + $this->app->ActionHandler("abrechnungzeitdelete","AdresseAbrechnungzeitdelete"); + $this->app->ActionHandler("pdf","AdresseStammblatt"); + + $this->app->ActionHandler("lieferadresse","AdresseLieferadresse"); + $this->app->ActionHandler("lieferadresseneditpopup","AdresseLieferadressenEditPopup"); + $this->app->ActionHandler("ansprechpartner","AdresseAnsprechpartner"); + $this->app->ActionHandler("ansprechpartnereditpopup","AdresseAnsprechpartnerEditPopup"); + $this->app->ActionHandler("ansprechpartnerpopup","AdresseAnsprechpartnerPopup"); + + $this->app->ActionHandler("accounts","AdresseAccounts"); + + + $this->app->ActionHandler("adressestammdatenpopup","AdresseStammdatenLieferadressePopup"); + $this->app->ActionHandler("ansprechpartnerlieferadressepopup","AdresseAnsprechpartnerLieferadressePopup"); + $this->app->ActionHandler("lieferadressepopup","AdresseLieferadressePopup"); + $this->app->ActionHandler("ustpopup","AdresseUSTPopup"); + $this->app->ActionHandler("rollen","AdresseRollen"); + $this->app->ActionHandler("gruppen","AdresseGruppen"); + $this->app->ActionHandler("kontakthistorie","AdresseKontakthistorie"); + $this->app->ActionHandler("kontakthistorieeditpopup","AdresseKontakthistorieEditPopup"); + $this->app->ActionHandler("rolecreate","AdresseRolleAnlegen"); + $this->app->ActionHandler("rolledatum","AdresseRolleDatum"); + $this->app->ActionHandler("roledel","AdresseRolleLoeschen"); + $this->app->ActionHandler("addposition","AdresseAddPosition"); + $this->app->ActionHandler("suchmaske","AdresseSuchmaske"); + $this->app->ActionHandler("dateien","AdresseDateien"); + $this->app->ActionHandler("brief","AdresseBrief"); + $this->app->ActionHandler("briefdelete","AdresseBriefDelete"); + $this->app->ActionHandler("briefpdf","AdresseBriefPDF"); + $this->app->ActionHandler("briefeditpopup","AdresseBriefEditPopup"); + + $this->app->ActionHandler("saverolle", "AdresserolleSave"); + + $this->app->ActionHandler("brieferstellen","AdresseBriefErstellen"); + $this->app->ActionHandler("briefpreview","AdresseBriefPreview"); + $this->app->ActionHandler("briefbearbeiten","AdresseBriefBearbeiten"); + $this->app->ActionHandler("briefkorrpdf", "AdresseKorrBriefPdf"); + $this->app->ActionHandler("briefkorrdelete", "AdresseKorrBriefDelete"); + $this->app->ActionHandler("briefdrucken", "AdresseBriefDrucken"); + + + $this->app->ActionHandler("email","AdresseEmail"); + $this->app->ActionHandler("belege","AdresseBelege"); + $this->app->ActionHandler("positioneneditpopup","AdresseArtikelEditPopup"); + $this->app->ActionHandler("emaileditpopup","AdresseEmailEditPopup"); + $this->app->ActionHandler("artikel","AdresseArtikelPosition"); + $this->app->ActionHandler("lieferantartikel","AdresseLieferantArtikel"); + $this->app->ActionHandler("kundeartikel","AdresseKundeArtikel"); + $this->app->ActionHandler("delartikel","DelArtikel"); + $this->app->ActionHandler("upartikel","UpArtikel"); + $this->app->ActionHandler("downartikel","DownArtikel"); + + $this->app->ActionHandler("rolledelete","AdresseRolleDelete"); + $this->app->ActionHandler("artikeleditpopup","AdresseArtikelEditPopup"); + $this->app->ActionHandler("kontakthistorie","AdresseKontaktHistorie"); + $this->app->ActionHandler("offenebestellungen","AdresseOffeneBestellungen"); + $this->app->ActionHandler("verbindlichkeiten","AdresseVerbindlichkeiten"); + $this->app->ActionHandler("adressebestellungmarkieren","AdresseBestellungMarkiert"); + $this->app->ActionHandler("autocomplete","AdresseAutoComplete"); + + $this->app->ActionHandler("lohn","AdresseLohnStundensatzUebersicht"); + $this->app->ActionHandler("stundensatz","AdresseStundensatz"); + $this->app->ActionHandler("stundensatzedit","AdresseStundensatzEdit"); + $this->app->ActionHandler("stundensatzdelete","AdresseStundensatzDelete"); + $this->app->ActionHandler("createdokument","AdresseCreateDokument"); + $this->app->ActionHandler("newkontakt","AdresseNewKontakt"); + $this->app->ActionHandler("delkontakt","AdresseDelKontakt"); + $this->app->ActionHandler("minidetail","AdresseMiniDetailZeit"); + $this->app->ActionHandler("minidetailadr","AdresseMiniDetailAdr"); + $this->app->ActionHandler("minidetailbrief","AdresseMiniDetailBrief"); + $this->app->ActionHandler("korreseditpopup","AdresseKorressEditPopup"); + $this->app->ActionHandler("sepamandat","AdresseSEPAMandat"); + + $this->app->ActionHandler("verein","AdresseVerein"); + + $this->app->ActionHandler("removeemailanhang","Adresseremoveemailanhang"); + $this->app->ActionHandler("downloaddatei", "AdresseDownloadDatei"); + + + $this->app->ActionHandler("minidetaillieferadressen","AdresseMinidetailLieferadressen"); + $this->app->ActionHandler("minidetailansprechpartner","AdresseMinidetailAnsprechpartner"); + + $id = $this->app->Secure->GetGET('id'); + //$nummer = $this->app->Secure->GetPOST("nummer"); + + //if($nummer=="") + //$name = $this->app->DB->Select("SELECT CONCAT(name,'  ', + if($id > 0){ + $nummer = $this->app->DB->Select("SELECT CONCAT( + if(kundennummer!='',CONCAT('Kunde: ',kundennummer),''), + if(lieferantennummer!='',CONCAT(' Lieferant: ',lieferantennummer),'')) FROM adresse WHERE id='$id' AND geloescht=0 LIMIT 1"); + }else{ + $nummer = ''; + } + + + if(is_numeric($id)){ + $name = $this->app->DB->Select("SELECT name FROM adresse WHERE id='$id' AND geloescht=0 LIMIT 1"); + } + + // else + // $name = $nummer; + + if(!empty($name)){ + $this->app->Tpl->SetText('UEBERSCHRIFT', 'Adresse von: ' . $name); + } + else{ + $this->app->Tpl->SetText('UEBERSCHRIFT', 'Adressen'); + } + + $this->app->Tpl->SetText('KURZUEBERSCHRIFT','Adressen'); + if(isset($name) && isset($nummer) && $name!='' && $nummer!=''){ + $this->app->Tpl->SetText('KURZUEBERSCHRIFT2', "$name ($nummer)"); + } + else{ + $this->app->Tpl->SetText('KURZUEBERSCHRIFT2', !empty($name) ? $name : ''); + } + + if(isset($name)){ + $this->app->Tpl->SetText('ANZEIGENUMMER',$name); + } + if(isset($nummer)){ + $this->app->Tpl->SetText('ANZEIGENAMEDE',' '.$nummer); + } + + $this->app->Tpl->Set('FARBE','[FARBE1]'); + + $this->app->erp->CheckColumn('email', 'varchar(255)', 'adresse_accounts', 'NOT NULL'); + $this->app->erp->CheckColumn('notiz', 'text', 'adresse_accounts', 'NOT NULL'); + + $this->app->erp->Headlines('Adressen'); + + $this->app->ActionHandlerListen($app); + } + + public function Install() + { + $this->app->erp->RegisterHook('supersearch_detail', 'adresse', 'AdresseSupersearchDetail'); + } + + /** + * @param \Xentral\Widgets\SuperSearch\Query\DetailQuery $detailQuery + * @param \Xentral\Widgets\SuperSearch\Result\ResultDetail $detailResult + * + * @return void + */ + public function AdresseSupersearchDetail($detailQuery, $detailResult) + { + if ($detailQuery->getGroupKey() !== 'addresses') { + return; + } + + $adresseId = $detailQuery->getItemIdentifier(); + $sql = sprintf( + "SELECT a.id, a.name, a.ansprechpartner, a.kundennummer, a.lieferantennummer FROM `adresse` AS `a` WHERE a.id = '%s' LIMIT 1", + $this->app->DB->real_escape_string($adresseId) + ); + $adresse = $this->app->DB->SelectRow($sql); + if (empty($adresse)) { + return; + } + + $title = $adresse['name']; + if (!empty($adresse['ansprechpartner'])) { + $title .= ' ' . $adresse['ansprechpartner']; + } + if (!empty($adresse['kundennummer'])) { + $title .= ' Kunde ' . $adresse['kundennummer'] . ''; + } + if (!empty($adresse['lieferantennummer'])) { + $title .= ' Lieferant ' . $adresse['lieferantennummer'] . ''; + } + $detailResult->setTitle($title); + $detailResult->addButton('Adresse Details', sprintf('index.php?module=adresse&action=edit&id=%s', $adresse['id'])); + $detailResult->setMiniDetailUrl(sprintf('index.php?module=adresse&action=minidetailadr&id=%s', $adresse['id'])); + } + + + + public function AdresseDownloadDatei() + { + $id = (int)$this->app->Secure->GetGET('id'); + if($this->app->DB->Select("SELECT id FROM datei_stichwoerter where datei = '$id' AND subjekt like 'anhang' and objekt like 'dokument' LIMIT 1")) + { + $this->app->erp->SendDatei($id); + } else { + header("Content-Disposition: attachment; filename=\"Fehler.txt\""); + } + $this->app->ExitXentral(); + } + + public function Adresseremoveemailanhang() + { + $res['status'] = false; + $datei = (int)$this->app->Secure->GetGET('id'); + if($datei) + { + $checkstichwort = $this->app->DB->Select("SELECT datei FROM datei_stichwoerter WHERE datei = '$datei' AND subjekt like 'anhang' and objekt like 'dokument' LIMIT 1"); + if($checkstichwort) + { + $this->app->DB->Delete("DELETE FROM datei_version WHERE datei='$datei'"); + $this->app->DB->Delete("DELETE FROM datei_stichwoerter WHERE datei='$datei'"); + $this->app->DB->Update("UPDATE datei SET geloescht=1 WHERE id='$datei'"); + $res['status'] = true; + } + } + echo json_encode($res); + $this->app->ExitXentral(); + } + + public function AdresseMiniDetailBrief($parsetarget = '', $menu = true) + { + $doppelteids = $this->app->Secure->GetGET('id'); + $ids = preg_split('/\-/',$doppelteids); + if(count($ids) > 1) + { + $typ = (int)$ids[0]; + $id = (int)$ids[1]; + switch($typ) + { + case '1': + + $this->AdresseBriefPreview('dokumente',$id,false); + break; + case '2': + + $this->AdresseBriefPreview('dokumente_send',$id,false); + break; + + case '5': + + $this->AdresseBriefPreview('wiedervorlage',$id,false); + break; + case '6': + $this->AdresseBriefPreview('kalender',$id,false); + break; + + } + + } + $this->app->ExitXentral(); + } + + public function AdresseKorressEditPopup() + { + // nach page inhalt des dialogs ausgeben + if (class_exists('WidgetDokumente')){ + $widget = new WidgetDokumente($this->app,'PAGE'); + //$sid = $this->app->DB->Select("SELECT adresse FROM abrechnungsartikel WHERE id='$id' LIMIT 1"); + //$widget->form->SpecialActionAfterExecute("close_refresh", + // "index.php?module=adresse&action=artikel&id=$sid"); + $widget->Edit(); + $this->app->BuildNavigation=false; + } + } + + public function AdresseMiniDetailAdr($parsetarget = '', $menu = true) + { + $id = (int)$this->app->Secure->GetGET('id'); + $adr = $this->app->DB->SelectRow("SELECT adr.*, DATE_FORMAT(adr.mandatsreferenzdatum, '%e.%m.%Y') AS mandatsreferenzdatumd FROM adresse AS adr WHERE adr.id = ".$id." limit 1"); + if(!empty($adr)) + { + $this->app->Tpl->Set('EMAIL',$adr['email']); + $this->app->Tpl->Set('MOBIL',$adr['mobil']); + $this->app->Tpl->Set('MARKETINGSPERRE',($adr['marketingsperre']==1?"JA":"NEIN")); + $this->app->Tpl->Set('TELEFAX',$adr['telefax']); + $this->app->Tpl->Set('TELEFON',$adr['telefon']); + $this->app->Tpl->Set('ORT',$adr['ort']); + $this->app->Tpl->Set('LAND',$adr['land']); + $this->app->Tpl->Set('PLZ',$adr['plz']); + $this->app->Tpl->Set('STRASSE',$adr['strasse']); + $this->app->Tpl->Set('ANSPRECHPARTNERNAME',$adr['ansprechpartner']); + + $this->app->Tpl->Set('ZAHLUNGSWEISE',$adr['zahlungsweise']); + $this->app->Tpl->Set('ZAHLUNGSZIELTAGE',$adr['zahlungszieltage']); + $this->app->Tpl->Set('ZAHLUNGSZIELTAGESKONTO',$adr['zahlungszieltage']); + $this->app->Tpl->Set('ZAHLUNGSZIELTAGESKONTO',$adr['zahlungszieltageskonto']); + $this->app->Tpl->Set('ZAHLUNGSZIELSKONTO',$adr['zahlungszielskonto']); + $this->app->Tpl->Set('KUNDENNUMMERLIEFERANT',$adr['kundennummerlieferant']); + $this->app->Tpl->Set('ZAHLUNGSWEISELIEFERANT',$adr['zahlungsweiselieferant']); + $this->app->Tpl->Set('ZAHLUNGSZIELTAGELIEFERANT',$adr['zahlungszieltagelieferant']); + $this->app->Tpl->Set('ZAHLUNGSZIELTAGESKONTOLIEFERANT',$adr['zahlungszieltagelieferant']); + $this->app->Tpl->Set('ZAHLUNGSZIELTAGESKONTOLIEFERANT',$adr['zahlungszieltageskontolieferant']); + $this->app->Tpl->Set('ZAHLUNGSZIELSKONTOLIEFERANT',$adr['zahlungszielskontolieferant']); + $this->app->Tpl->Set('VERSANDARTLIEFERANT', $adr['versandartlieferant']); + + + $this->app->Tpl->Set('INHABER',$adr['inhaber']); + $this->app->Tpl->Set('BANK',$adr['bank']); + $this->app->Tpl->Set('SWIFT',$adr['swift']); + $this->app->Tpl->Set('IBAN',$adr['iban']); + $this->app->Tpl->Set('MANDATREFERENZ',$adr['mandatsreferenz']); + $this->app->Tpl->Set('ZAHLUNGSZIELSKONTOLIEFERANT',$adr['zahlungszielskontolieferant']); + $this->app->Tpl->Set('MANDATREFERENZART',$adr['mandatsreferenzart']); + $this->app->Tpl->Set('MANDATSREFERENZDHART',$adr['mandatsreferenzdhart']); + $this->app->Tpl->Set('MANDATSREFERENZDATUM',$adr['mandatsreferenzdatumd']); + $this->app->Tpl->Set('MANDATSREFERENZAENDERUNG',($adr['mandatsreferenzaenderung']?'ja':'nein')); + $this->app->Tpl->Set('WAEHRUNG',$adr['waehrung']); + + $table = new EasyTable($this->app); + $table->Query("SELECT a.name, a.bereich, a.email, a.telefon, a.telefax, a.mobil FROM ansprechpartner a WHERE adresse='$id' AND a.name!='Neuer Datensatz' ORDER by id DESC"); + $table->DisplayNew('ANSPRECHPARTNER','Mobil','noAction'); + + $table = new EasyTable($this->app); + $table->Query("SELECT a.subjekt as Rolle, + if(a.objekt='','ALLE',a.objekt) as Zuordnung, + if(a.objekt='Projekt',if(a.parameter='','ALLE',p.abkuerzung),CONCAT(g.name,' ',g.kennziffer)) as auswahl, + DATE_FORMAT(a.von,'%d.%m.%Y') as seit, if(a.bis='0000-00-00','aktuell',DATE_FORMAT(a.bis,'%d.%m.%Y')) as bis + FROM adresse_rolle a LEFT JOIN projekt p ON a.parameter=p.id + LEFT JOIN gruppen g ON g.id=a.parameter + WHERE a.adresse='$id'"); + $table->DisplayNew('ROLLEN','Bis','noAction'); + + + $table2 = new EasyTable($this->app); + $table2->Query("SELECT if(l.standardlieferadresse,CONCAT('',l.name,' (Standardlieferadresse)'),l.name) as name2, l.strasse, + l.land, l.plz, l.ort, l.telefon,l.email FROM lieferadressen l where l.adresse='". $id . "' AND l.name!='Neuer Datensatz'" ); + $table2->DisplayNew('LIEFERANTEN','Email','noAction'); + + $table3 = new EasyTable($this->app); + $table3->Query($this->GetAddressCrmSql($id, 15)); + $table3->DisplayNew('CRMDATEIEN','PDF','noAction'); + } + if($parsetarget=='') + { + $this->app->Tpl->Output('adresse_minidetail.tpl'); + $this->app->ExitXentral(); + } + $this->app->Tpl->Parse($parsetarget,'adresse_minidetail.tpl'); + } + + + public function AdresseStammblatt() + { + $id = $this->app->Secure->GetGET('id'); + $projekt = ''; + if(class_exists('AdressstammblattPDFCustom')) + { + $Brief = new AdressstammblattPDFCustom($this->app,$projekt); + }else{ + $Brief = new AdressstammblattPDF($this->app,$projekt); + } + + $Brief->GetAdressstammblatt($id); + $Brief->displayDocument(); + $this->app->ExitXentral(); + } + + + + function AdresseMiniDetailZeit() { + + $id = $this->app->Secure->GetGET('id'); + + + if(strpos($_SERVER['HTTP_REFERER'],'action=brief')!==false) { + + $data = explode('||', $id); + /* + echo '
    ';
    +         print_r($data);
    +         echo '
    '; + */ + + if (isset($data[1])) { + + $query = ''; + + switch ($data[1]) { + case 'dokumente': + $query .= ' + SELECT + von as personVon, + content as content, + DATE_FORMAT(datum, "%d.%m.%Y") as datum + FROM + dokumente + WHERE + id = ' . $data[0] . ' + '; + break; + case 'dokumente_send': + $query .= ' + SELECT + bearbeiter as personVon, + text as content, + DATE_FORMAT(zeit, "%d.%m.%Y") as datum + FROM + dokumente_send + WHERE + id = ' . $data[0] . ' + '; + break; + case 'ticket_nachricht': + $query .= ' + SELECT + verfasser as personVon, + text as content, + DATE_FORMAT(zeit, "%d.%m.%Y") as datum + FROM + ticket_nachricht + WHERE + id = ' . $data[0] . ' + '; + break; + case 'emailbackup_mails': + $query .= ' + SELECT + sender as personVon, + if(action_html!="",action_html,action) as content, + DATE_FORMAT(empfang, "%d.%m.%Y") as datum + FROM + emailbackup_mails + WHERE + id = ' . $data[0] . ' + '; + break; + default: + $this->app->ExitXentral(); + break; + } + + $res = $this->app->DB->SelectRow($query); + + if ($res) { + + echo ''; + + echo ''; + echo ''; + echo ''; + echo ''; + + echo ''; + echo ''; + echo ''; + echo ''; + + echo ''; + echo ''; + echo ''; + echo ''; + + echo '
    Datum:' . $res['datum'] . '
    Von:' . $res['personVon'] . '
    Text:' . nl2br($res['content']) . '
    '; + + } + + /* + echo '
    ';
    +           print_r($query);
    +           print_r($res);
    +           echo '
    '; + */ + + + } + + + //echo $id; + + } else { + + + $tmp = $this->app->DB->SelectArr("SELECT * FROM zeiterfassung WHERE id='$id'"); + $tmp = $tmp[0]; + $teilprojekt = $this->app->DB->Select("SELECT aufgabe FROM arbeitspaket WHERE id='".$tmp[arbeitspaket]."'"); + + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo '
    Ort:'.$tmp['ort'].'
    Tätigkeit:'.$tmp['aufgabe'].'
    Beschreibung:'.nl2br($tmp['beschreibung']).'
    Teilprojekt:'.$teilprojekt.'
    Kostenstelle:'.$tmp['kostenstelle'].'
    Verrechnungsart:'.$tmp['verrechnungsart'].'
    '; + + } + + $this->app->ExitXentral(); + } + + function AdresseAbrechnungzeitabgeschlossen() + { + $sid = $this->app->Secure->GetPOST('sid'); + $id = $this->app->Secure->GetGET('id'); + if($sid > 0){ + $this->app->DB->Update("UPDATE zeiterfassung SET ist_abgerechnet='1', abgerechnet='1' WHERE id='$sid' AND adresse_abrechnung='$id' LIMIT 1"); + } + $this->AdresseAbrechnungzeit(); + } + + + function AdresseAbrechnungzeitdelete() + { + $sid = $this->app->Secure->GetGET('sid'); + $id = $this->app->Secure->GetGET('id'); + if($sid > 0){ + $this->app->DB->Delete("DELETE FROM zeiterfassung WHERE id='$sid' AND adresse_abrechnung='$id' LIMIT 1"); + } + $this->AdresseAbrechnungzeit(); + } + + + + function AdresseZeiterfassung() + { + $this->AdresseMenu(); + $this->app->Tpl->Add('OFFENE','
    '); + $this->app->YUI->TableSearch('OFFENE','zeiterfassungmitarbeiter'); + + $id = $this->app->Secure->GetGET('id'); + + $back=$this->app->erp->base64_url_encode("index.php?module=adresse&action=abrechnungzeit&id=$id"); + + $this->app->Tpl->Set('BACK',$back); + $this->app->Tpl->Set('ID',$id); + + $this->app->Tpl->Parse('PAGE','adresse_zeiterfassung.tpl'); + } + + + + function AdresseAbrechnungzeit() + { + $this->AdresseMenu(); + $this->app->Tpl->Set('VERS','Professional'); + $this->app->Tpl->Set('MODUL','Professional'); + $this->app->Tpl->Parse('PAGE', 'only_version.tpl'); + } + + + function AdresseCreateDokument() + { + $id = $this->app->Secure->GetGET('id'); + $cmd = $this->app->Secure->GetGET('cmd'); + + $relocation = true; + + switch($cmd) + { + case 'auftrag': $newid = $this->app->erp->CreateAuftrag($id); $this->app->erp->LoadAuftragStandardwerte($newid,$id); break; + case 'angebot': $newid = $this->app->erp->CreateAngebot($id); $this->app->erp->LoadAngebotStandardwerte($newid,$id); break; + case 'rechnung': $newid = $this->app->erp->CreateRechnung($id); $this->app->erp->LoadRechnungStandardwerte($newid,$id); break; + case 'lieferschein': $newid = $this->app->erp->CreateLieferschein($id); $this->app->erp->LoadLieferscheinStandardwerte($newid,$id); break; + case 'gutschrift': $newid = $this->app->erp->CreateGutschrift($id); $this->app->erp->LoadGutschriftStandardwerte($newid,$id); break; + case 'bestellung': $newid = $this->app->erp->CreateBestellung($id); $this->app->erp->LoadBestellungStandardwerte($newid,$id);break; + default: $relocation = false; + } + + if($relocation) + { + $this->app->Location->execute("index.php?module=$cmd&action=edit&id=$newid"); + } + + } + + function AdresseLohnStundensatzUebersicht() + { + $this->AdresseMenu(); + + if(method_exists($this->app->erp,'GetTmpMessageOut')) + { + $this->app->Tpl->Set('MESSAGE',$this->app->erp->GetTmpMessageOut()); + }else{ + $msg = $this->app->erp->base64_url_decode($this->app->Secure->GetGET("msg")); + if($msg!='') { + $this->app->Tpl->Set('MESSAGE', $msg); + } + } + $this->AdresseLohn(); + $this->AdresseStundensatz(); + + $this->app->Tpl->Parse('PAGE','adresse_lohn.tpl'); + } + + function AdresseLohn() + { + $id = $this->app->Secure->GetGET('id'); + if(is_numeric($id)) + { + $this->app->YUI->TableSearch('TAB1','adresselohn'); + }else{ + $this->app->Tpl->Set('MESSAGE', '
    Mitarbeiter-ID konnte nicht gefunden werden.
    '); + } + + } + + function AdresseStundensatz($id) + { + $id = $this->app->Secure->GetGET('id'); + + if(is_numeric($id)) + { + $stundensatz = $this->app->Secure->GetPOST('Stundensatz_StandardStundensatz'); + $submit = $this->app->Secure->GetPOST('Stundensatz_Submit'); + + // Speichere neuen Stundensatz + if($submit!='') + { + $this->app->DB->Insert("INSERT INTO stundensatz (adresse, satz, typ, projekt, datum) VALUES ('$id', '$stundensatz', 'Standard', '0', NOW())"); + $this->app->Tpl->Set('MESSAGE', '
    Der neue Standard-Stundensatz wurde übernommen.
    '); + } + + // Hole neuesten Stundensatz + $standard = $this->app->DB->Select("SELECT satz + FROM stundensatz + WHERE typ='standard' + AND adresse='$id' + ORDER BY datum DESC LIMIT 1"); + $this->app->Tpl->Set('STANDARDSTUNDENSATZ', $standard); + + // Fülle Projekt-Tabelle + $this->app->YUI->TableSearch('TAB2',"adressestundensatz"); + }else + $this->app->Tpl->Set('MESSAGE', "
    Mitarbeiter-ID konnte nicht gefunden werden.
    "); + } + + function AdresseStundensatzEdit() + { + $this->AdresseMenu(); + + $user = $this->app->Secure->GetGET('user'); + $id = $this->app->Secure->GetGET('id'); + $projekt = $this->app->Secure->GetGET('projekt'); + + $satz = $this->app->Secure->GetPOST('Stundensatz_Angepasst'); + $adapt = $this->app->Secure->GetPOST('Stundensatz_Adapt'); + $cancel = $this->app->Secure->GetPOST('Stundensatz_Angepasst_Cancel'); + $submit = $this->app->Secure->GetPOST('Stundensatz_Angepasst_Submit'); + + + if($cancel!='') + { + $this->app->Location->execute("index.php?module=adresse&action=lohn&id=$user"); + } + + + // Hole neuesten Standard-Stundensatz + $standard = $this->app->DB->Select("SELECT satz + FROM stundensatz + WHERE typ='standard' + AND adresse='$user' + ORDER BY datum DESC LIMIT 1"); + + if(is_numeric($id)) + { + // Stundensatz existiert bereits, hole Daten + $stundensatz = $this->app->DB->SelectArr("SELECT * FROM stundensatz WHERE id='$id' LIMIT 1"); + $this->app->Tpl->Set('STUNDENSATZANGEPASST', $stundensatz[0][satz]); + + if($submit!='') + { + $projekt = $this->app->DB->Select("SELECT projekt FROM stundensatz WHERE id='$id' LIMIT 1"); + + if($adapt!=''){ + $this->app->DB->Update("UPDATE stundensatz SET satz='$satz' WHERE adresse='$user' AND projekt='$projekt'"); + } + + $this->app->DB->Insert("INSERT INTO stundensatz (adresse, satz, typ, projekt, datum) + VALUES ('$user', '$satz', 'Angepasst', '$projekt', NOW())"); + $this->app->Location->execute("index.php?module=adresse&action=lohn&id=$user&msg=$msg"); + } + + + $this->app->Tpl->Set('MODE', 'Stundensatz editieren'); + }else + { + // Stundensatz existiert noch nicht + $this->app->Tpl->Set('STUNDENSATZANGEPASST', $standard); + $this->app->Tpl->Set('ADAPTDISABLED', 'DISABLED'); + + if($submit!='') + { + // Schreibe neuen Satz + $this->app->DB->Insert("INSERT INTO stundensatz (adresse, satz, typ, projekt, datum) + VALUES ('$user', '$satz', 'Angepasst', '$projekt', NOW())"); + + $msg = $this->app->erp->base64_url_encode('
    Der Stundensatz wurde erfolgreich gespeichert.
    '); + $this->app->Location->execute("index.php?module=adresse&action=lohn&id=$user&msg=$msg"); + } + + $this->app->Tpl->Set('MODE', 'Stundensatz erstellen'); + } + + $this->app->Tpl->Parse('PAGE', 'adresse_stundensatz_edit.tpl'); + } + + function AdresseStundensatzDelete() + { + $user = $this->app->Secure->GetGET('user'); + $id = $this->app->Secure->GetGET('id'); + + if(is_numeric($id)){ + $this->app->DB->Delete("DELETE FROM stundensatz WHERE id='$id' LIMIT 1"); + } + else{ + $msg = $this->app->erp->base64_url_encode('
    Stundensatz-ID konnte nicht gefunden werden. Standard-Stundensätze können nicht gelöscht werden.
    '); + } + + $this->app->Location->execute("index.php?module=adresse&action=lohn&id=$user&msg=$msg"); + } + + + + function AdresseAutoComplete() + { + + $table = $this->app->Secure->GetGET('table'); + $filter = $this->app->Secure->GetGET('filter'); + $name = $this->app->Secure->GetGET('name'); + $query = $this->app->Secure->GetGET('query'); + $colsstring = $this->app->erp->base64_url_decode($this->app->Secure->GetGET('colsstring')); + $returncol= $this->app->erp->base64_url_decode($this->app->Secure->GetGET('returncol')); + if($table==''){ + $table = $name; + } + + if($filter==='kunde'){ + $filter = "LEFT JOIN adresse_rolle ON adresse_rolle.adresse=adresse.id WHERE adresse_rolle.subjekt='Kunde' AND adresse.kundennummer!=0 AND adresse.geloescht=0 AND adresse.name LIKE '%$query%'"; + } + elseif($filter==='mitarbeiter'){ + $filter = "LEFT JOIN adresse_rolle ON adresse_rolle.adresse=adresse.id WHERE (adresse_rolle.subjekt='Mitarbeiter' OR adresse_rolle.subjekt='Externer Mitarbeiter') AND adresse.mitarbeiternummer!=0 AND adresse.geloescht=0 + AND adresse.name LIKE '%$query%'"; + } + elseif($filter==='lieferant'){ + $filter = "LEFT JOIN adresse_rolle ON adresse_rolle.adresse=adresse.id WHERE adresse_rolle.subjekt='Lieferant' AND adresse.geloescht=0 AND adresse.name LIKE '%$query%'"; + }elseif($filter==='kunde_auftrag'){ + $filter = "LEFT JOIN adresse_rolle ON adresse_rolle.adresse=adresse.id LEFT JOIN auftrag ON auftrag.adresse=adresse.id WHERE adresse_rolle.subjekt='Kunde' AND ((auftrag.status='freigegeben' OR auftrag.status='storniert') OR (auftrag.vorkasse_ok=0 AND (auftrag.zahlungsweise='paypal' OR auftrag.zahlungsweise='vorkasse' OR auftrag.zahlungsweise='kreditkarte'))) AND adresse.geloescht=0 + AND adresse.name LIKE '%$query%'"; + }elseif($filter==='kunde_rechnung'){ + $filter = "LEFT JOIN adresse_rolle ON adresse_rolle.adresse=adresse.id LEFT JOIN rechnung ON rechnung.adresse=adresse.id WHERE adresse_rolle.subjekt='Kunde' AND rechnung.ist < rechnung.soll AND adresse.geloescht=0 AND adresse.name LIKE '%$query%'"; + }elseif($filter==='kunde_gutschrift'){ + $filter = "LEFT JOIN adresse_rolle ON adresse_rolle.adresse=adresse.id LEFT JOIN gutschrift ON gutschrift.adresse=adresse.id WHERE adresse_rolle.subjekt='Kunde' AND adresse.geloescht=0 AND adresse.name LIKE '%$query%'"; + }elseif($table==='artikel'){ + $filter = "WHERE name_de LIKE '%$query%'"; + }elseif(($filter=='' || $filter==='adresse') && $name==='adresse'){ + $filter = "WHERE adresse.geloescht=0 AND adresse.name LIKE '%$query%'"; + } + $arr = $this->app->DB->SelectArr("SELECT DISTINCT $colsstring, $returncol FROM $table $filter ORDER by 1 LIMIT 10"); + // echo "SELECT DISTINCT $colsstring, $returncol FROM $table $filter ORDER by 1"; + + $cols = explode(',',$colsstring); + foreach($arr as $key=>$value){ + //$tpl_end .= '{id:"'.$value[$returncol].'", cola:"'.$value[$cols[0]].'", colb:"'.$value[$cols[1]].'", colc:"'.$value[$cols[2]].'"},'; + echo $value[$returncol].'!*!'.$value[$cols[0]].' '.$value[$cols[1]].' '.$value[$cols[2]]."\n"; + //echo $value[$cols[0]].' '.$value[$cols[1]].' '.$value[$cols[2]]."\n"; + //echo $value[$cols[0]]."\n"; + } + + $this->app->ExitXentral(); + } + + + function AdresseDateien() + { + $id = $this->app->Secure->GetGET('id'); + $this->AdresseMenu(); + $this->app->Tpl->Add('UEBERSCHRIFT',' (Dateien)'); + $this->app->YUI->DateiUpload('PAGE','Adressen',$id); + } + + + function AdresseDelete() + { + $id = (int)$this->app->Secure->GetGET('id'); + + $checkuser = $this->app->DB->Select("SELECT count(id) FROM user WHERE adresse='$id'"); + $checkkassierer = $this->app->DB->Select("SELECT count(id) FROM pos_kassierer WHERE adresse='$id'"); + $checkabo = $this->app->DB->Select("SELECT COUNT(id) FROM abrechnungsartikel WHERE adresse = '$id'"); + + if($id > 0){ + $msg = ''; + if($checkuser > 0){ + $msg .= $this->app->erp->base64_url_encode("
    Die Adresse ist noch mit einem Benutzer verlinkt und kann daher nicht gelöscht werden.
    "); + }else if($checkkassierer){ + $msg .= $this->app->erp->base64_url_encode("
    Die Adresse ist noch mit einem Kassierer verlinkt und kann daher nicht gelöscht werden.
    "); + }else if($checkabo > 0){ + $msg .= $this->app->erp->base64_url_encode("
    Die Adresse ist noch mit Abos verlinkt und kann daher nicht gelöscht werden.
    "); + }else { + $this->app->DB->Update("UPDATE adresse SET geloescht='1',kundennummer=CONCAT('DEL-',kundennummer), lieferantennummer=CONCAT('DEL-',lieferantennummer), + mitarbeiternummer=CONCAT('DEL-',mitarbeiternummer) WHERE id='$id' LIMIT 1"); + + $this->app->DB->Update("DELETE FROM ansprechpartner WHERE adresse='$id'"); + $this->app->DB->Update("DELETE FROM lieferadressen WHERE adresse='$id'"); + $this->app->DB->Update("DELETE FROM adresse_rolle WHERE adresse='$id'"); + $this->app->DB->Update("DELETE FROM dokumente WHERE adresse='$id'"); + $this->app->DB->Update("DELETE FROM dokumente_send WHERE adresse='$id'"); + + $this->app->erp->ObjektProtokoll("adresse",$id,"adresse_delete","Adresse geloescht: $id"); + $this->app->erp->RunHook('address_delete', 1, $id); + + $msg = $this->app->erp->base64_url_encode("
    Die Adresse wurde gelöscht!
    "); + } + } + $this->app->Location->execute('index.php?module=adresse&action=list&msg='.$msg); + } + + + function AdresseRolleDatum() + { + $id = $this->app->Secure->GetGET('id'); + $sid = $this->app->Secure->GetPOST('sid'); + $von = $this->app->Secure->GetGET('von'); + $bis = $this->app->Secure->GetGET('bis'); + $von = $this->app->String->Convert($von,'%1.%2.%3','%3-%2-%1'); + $bis = $this->app->String->Convert($bis,'%1.%2.%3','%3-%2-%1'); + + $this->app->DB->Delete("UPDATE adresse_rolle SET von='$von', bis='$bis' WHERE id='$sid' AND adresse='$id' LIMIT 1"); + + $gruppe = $this->app->DB->Select("SELECT parameter FROM adresse_rolle WHERE id='$sid' AND adresse='$id' LIMIT 1"); + + if($gruppe > 0) + { + if($von!='--' && $bis!='--') + { + $this->app->DB->Update("UPDATE auftrag SET gruppe='$gruppe' WHERE datum<='$bis' AND datum >='$von' AND adresse='$id'"); + $this->app->DB->Update("UPDATE rechnung SET gruppe='$gruppe' WHERE datum<='$bis' AND datum >='$von' AND adresse='$id'"); + $this->app->DB->Update("UPDATE gutschrift SET gruppe='$gruppe' WHERE datum<='$bis' AND datum >='$von' AND adresse='$id'"); + } else if($von!='--' && $bis=='--') + { + $this->app->DB->Update("UPDATE auftrag SET gruppe='$gruppe' WHERE datum>='$von' AND adresse='$id'"); + $this->app->DB->Update("UPDATE rechnung SET gruppe='$gruppe' WHERE datum>='$von' AND adresse='$id'"); + $this->app->DB->Update("UPDATE gutschrift SET gruppe='$gruppe' WHERE datum>='$von' AND adresse='$id'"); + } + } + + $this->AdresseRollen(); + } + + + function AdresseGruppen() + { + $this->AdresseMenu(); + + $id = (int)$this->app->Secure->GetGET('id'); + $gid=(int)$this->app->Secure->GetPOST('gid'); + $value=(int)$this->app->Secure->GetPOST('value'); + + if($gid>0) + { + if($value=='1'){ + $this->app->erp->AddRolleZuAdresse($id, 'Mitglied', 'von','Gruppe', $gid); + }else{ + $this->app->DB->Delete("UPDATE adresse_rolle SET bis=DATE_SUB(NOW(),INTERVAL 1 DAY) WHERE parameter='$gid' AND adresse='$id' + AND (subjekt='Mitglied' OR subjekt='Kunde') AND objekt='Gruppe' AND bis = '0000-00-00'"); + } + $this->app->erp->RunHook('adresse_gruppen_change', 3, $id, $gid, $value); + $this->app->ExitXentral(); + } + + $this->app->YUI->TableSearch('TAB1','adresse_gruppen'); + + $this->app->Tpl->Parse('PAGE','adresse_gruppen.tpl'); + } + + + function AdresseRolleDelete() + { + $id = $this->app->Secure->GetGET('id'); + $sid = $this->app->Secure->GetGET('sid'); + if($sid > 0){ + $this->app->DB->Delete("DELETE FROM adresse_rolle WHERE id='$sid' AND adresse='$id' LIMIT 1"); + } + // $this->app->Secure->POST['rolleanlegen'] = "true"; + //$this->AdresseEdit(); + $this->AdresseRollen(); + //$this->app->Tpl->Set(AKTIV_TAB3,"selected"); + } + + function AdresseCreate() + { + $cmd = $this->app->Secure->GetGET('cmd'); + if($cmd === 'duplicate'){ + $error = false; + + $name = trim($this->app->Secure->GetPOST('name')); + $street = trim($this->app->Secure->GetPOST('street')); + $zipcode = trim($this->app->Secure->GetPOST('zipcode')); + $place = trim($this->app->Secure->GetPOST('place')); + + $where = ''; + + if($name !== ''){ + $where .= " name = '$name' AND"; + } + if($street !== ''){ + $where .= " strasse = '$street' AND"; + } + if($zipcode !== ''){ + $where .= " plz = '$zipcode' AND"; + } + if($place !== ''){ + $where .= " ort = '$place' AND"; + } + + if($where !== ''){ + $where = rtrim($where, 'AND'); + + $addressId = $this->app->DB->Select("SELECT id FROM adresse WHERE ".$where." LIMIT 1"); + if($addressId != '' && $addressId > 0){ + $error = true; + } + } + + header('Content-Type: application/json'); + echo json_encode($error); + $this->app->ExitXentral(); + } + + $this->app->ModuleScriptCache->IncludeJavascriptFiles('address', ['./classes/Modules/Address/www/js/address_create.js']); + + $this->app->erp->Headlines('Adresse anlegen'); + $this->app->Tpl->Set('TOPHEADING','Adresse anlegen'); + + $this->app->erp->MenuEintrag('index.php?module=adresse&action=list','Zurück zur Übersicht'); + + + parent::AdresseCreate(); + } + + + function AdresseSuche() + { + $this->app->erp->MenuEintrag('index.php?module=adresse&action=list','Übersicht'); + $this->app->erp->MenuEintrag('index.php?module=adresse&action=create','Neue Adresse anlegen'); + + $this->app->YUI->TableSearch('TAB1','adresse_suche'); + $this->app->Tpl->Parse('PAGE','adresse_suche.tpl'); + } + + function AdresseMenuList() + { + $this->app->erp->MenuEintrag('index.php?module=adresse&action=list','Übersicht'); + $this->app->erp->MenuEintrag('index.php?module=adresse&action=create','Neue Adresse anlegen'); + $this->app->erp->RunMenuHook('adresselist'); + } + + + function AdresseList() + { + $parameter = $this->app->User->GetParameter('table_filter_adresse'); + $parameter = json_decode($parameter, true); + + $this->AdresseMenuList(); + $zahlungsweisetext = null; + $zahlungsweisentabelle = $this->app->DB->SelectArr("SELECT type,bezeichnung FROM `zahlungsweisen` WHERE aktiv = 1 AND type <> '' AND bezeichnung <> ''"); + if($zahlungsweisentabelle) + { + foreach($zahlungsweisentabelle as $v) + { + $zahlungsweisetext[$v['type']] = $v['bezeichunng']; + } + } + + $zahlungsweisen_ = $this->app->DB->SelectArr(' + SELECT + zahlungsweise, zahlungsweiselieferant + FROM + adresse WHERE ifnull(geloescht, 0) = 0 AND (zahlungsweise <> \'\' OR zahlungsweiselieferant <> \'\') + GROUP BY + zahlungsweise, zahlungsweiselieferant + '); + $zahlungsweisen = null; + if($zahlungsweisen_) + { + foreach($zahlungsweisen_ as $v) + { + if($v['zahlungsweise'] != '' && (!is_array($zahlungsweisen) || !in_array($v['zahlungsweise'], $zahlungsweisen))){ + $zahlungsweisen[] = $v['zahlungsweise']; + } + if($v['zahlungsweiselieferant'] != '' && (!is_array($zahlungsweisen) || !in_array($v['zahlungsweiselieferant'],$zahlungsweisen))){ + $zahlungsweisen[] = $v['zahlungsweiselieferant']; + } + } + if($zahlungsweisen){ + sort($zahlungsweisen); + } + } + + + $zahlungsweiseStr = ''; + if ($zahlungsweisen) { + foreach ($zahlungsweisen as $zahlungsweise) { + $zahlungsweiseStr .= ''; + } + } + + $rollen = $this->app->DB->SelectArr(' + SELECT + * + FROM + adresse_rolle + GROUP BY + subjekt + '); + + $rollenStr = ''; + if ($rollen) { + foreach ($rollen as $rolle) { + $rollenStr .= ''; + } + } + + $gruppen = $this->app->DB->SelectArr("SELECT * FROM gruppen gr WHERE (art = 'gruppe' or art = 'preisgruppe') AND (projekt = 0 OR (1 ".$this->app->erp->ProjektRechte('gr.projekt')."))"); + + $gruppenStr = ''; + if ($gruppen) { + foreach ($gruppen as $gruppe) { + $gruppenStr .= ''; + } + } + + $laender = $this->app->erp->GetSelectLaenderliste(); + $laenderStr = ''; + foreach ($laender as $landKey => $land) { + $laenderStr .= ''; + } + + if( $this->app->erp->ModulVorhanden('verband') ) { + $verbandsnummer = ''; + $verbandsnummer .= ''; + $verbandsnummer .= 'Verbandsnummer:'; + $verbandsnummer .= ''; + $verbandsnummer .= ''; + $this->app->Tpl->Add('VERBANDSNUMMER',$verbandsnummer); + } + + $this->app->YUI->AutoComplete('projekt', 'projektname', 1); + $this->app->YUI->AutoComplete('name', 'adressename', 1); + $this->app->YUI->AutoComplete('kundennummer', 'kunde', 1); + $this->app->YUI->AutoComplete('vertrieb','adressegruppevertriebbearbeiter', 0, '&typ=vertrieb'); + $this->app->YUI->AutoComplete('innendienst','adressegruppevertriebbearbeiter', 0, '&typ=bearbeiter'); + $this->app->Tpl->Add('ZAHLUNGSWEISEN',$zahlungsweiseStr); + $this->app->Tpl->Add('ROLLEN',$rollenStr); + $this->app->Tpl->Add('GRUPPEN',$gruppenStr); + $this->app->Tpl->Add('LAENDER',$laenderStr); + $this->app->Tpl->Parse('TAB1','adresse_table_filter.tpl'); + + $this->app->YUI->TableSearch('TAB1','adressetabelle'); + if($this->app->erp->Firmendaten('schnellsuche')){ + $this->app->YUI->EnterSearch('SCHNELLSUCHE', 'adressetabelle'); + } + $this->app->Tpl->Parse('PAGE','adresseuebersicht.tpl'); + } + + + function AdresseMenu() + { + $id = $this->app->Secure->GetGET('id'); + + $nummer = $this->app->DB->Select("SELECT CONCAT( + if(kundennummer!='',CONCAT('Kunde: ',kundennummer),''), + if(lieferantennummer!='',CONCAT(' Lieferant: ',lieferantennummer),'')) FROM adresse WHERE id='$id' AND geloescht=0 LIMIT 1"); + + if(is_numeric($id)){ + $name = $this->app->DB->Select("SELECT name FROM adresse WHERE id='$id' AND geloescht=0 LIMIT 1"); + } + + if(isset($name) && $name!=''){ + $this->app->Tpl->SetText('UEBERSCHRIFT', 'Adresse von: ' . $name); + } + else{ + $this->app->Tpl->SetText('UEBERSCHRIFT', 'Adressen'); + } + + $this->app->Tpl->SetText('KURZUEBERSCHRIFT','Adressen'); + if(isset($name) && isset($nummer) && $name!='' && $nummer!=''){ + $this->app->Tpl->SetText('KURZUEBERSCHRIFT2', "$name ($nummer)"); + } + else{ + $this->app->Tpl->SetText('KURZUEBERSCHRIFT2', !empty($name) ? $name : ''); + } + + if(isset($name)){ + $this->app->Tpl->SetText('ANZEIGENUMMER',$name); + } + if(isset($nummer)){ + $this->app->Tpl->SetText('ANZEIGENAMEDE',' '.$nummer); + } + + $cmd = $this->app->Secure->GetPOST('cmd'); + + if($cmd==='crm') + { + $this->app->erp->MenuEintrag('index.php?module=crm&action=list','Zurück zur Übersicht'); + } + + $this->app->erp->MenuEintrag('index.php?module=adresse&action=create','Neue Adresse anlegen'); + + $this->app->erp->MenuEintrag("index.php?module=adresse&action=edit&id=$id",'Details'); + + $anzahldateien = $this->app->erp->AnzahlDateien('Adressen',$id); + if($anzahldateien > 0) { + $anzahldateien = ' ('.$anzahldateien.')'; + } else { + $anzahldateien=''; + } + + $this->app->erp->MenuEintrag("index.php?module=adresse&action=dateien&id=$id",'Dateien'.$anzahldateien); + + $count = ' + SELECT + SUM(anzahl) + FROM + ( + + ( + SELECT + COUNT(id) as anzahl + FROM + dokumente + WHERE + adresse_to = ' . (int)$id . ' + ) + + UNION ALL + + ( + SELECT + COUNT(id) as anzahl + FROM + dokumente_send + WHERE + adresse = ' . (int)$id . ' + )'; + if(1){//$this->app->erp->RechteVorhanden('ticket','list')){ + $count .= ' + UNION ALL + + ( + SELECT + COUNT(ticket.id) as anzahl + FROM + ticket + LEFT JOIN ticket_nachricht ON ticket.schluessel = ticket_nachricht.ticket + WHERE + ticket.adresse = ' . (int)$id . ' + )'; + } + + $count .= ' + UNION ALL + + ( + SELECT + COUNT(k.id) as anzahl + FROM + kalender_event k + LEFT JOIN adresse a2 ON k.adresseintern = a2.id + LEFT JOIN projekt p ON p.id=k.projekt + WHERE + k.adresse = ' . (int)$id . ' + + )'; + + + if($this->app->erp->RechteVorhanden('wiedervorlage','list')){ + $count .= ' + UNION ALL + + ( + SELECT + COUNT(id) as anzahl + FROM + wiedervorlage + WHERE + wiedervorlage.adresse = ' . (int)$id . ' + + )'; + } + $count .= ' + ) a + '; + + $anzahlcrm = 0; + if($id > 0){ + $anzahlcrm = $this->app->DB->Select($count); + } + + if($anzahlcrm > 0){ + $this->app->erp->MenuEintrag("index.php?module=adresse&action=brief&id=$id", "CRM ($anzahlcrm)"); + } + else{ + $this->app->erp->MenuEintrag("index.php?module=adresse&action=brief&id=$id", 'CRM'); + } + + if($this->app->erp->Version()!=='stock'){ + $this->app->erp->MenuEintrag("index.php?module=adresse&action=rollen&id=$id", 'Rollen'); + } + + $this->app->erp->MenuEintrag("index.php?module=adresse&action=gruppen&id=$id",'Gruppen'); + + + + if($this->app->erp->RechteVorhanden('verein','list') && $this->app->erp->Firmendaten('modul_verein')=='1'){ + $this->app->erp->MenuEintrag("index.php?module=adresse&action=verein&id=$id", 'Verein'); + } + + + // Ist Benutzer ein Mitarbeiter? + if(is_numeric($id)){ + $mitarbeiter = $this->app->DB->Select("SELECT id FROM adresse_rolle WHERE adresse='$id' AND subjekt='Mitarbeiter' LIMIT 1"); + } + if(is_numeric($mitarbeiter)) + { + //$this->app->erp->MenuEintrag("index.php?module=adresse&action=lohn&id=$id","Lohn"); + $this->app->erp->MenuEintrag("index.php?module=adresse&action=zeiterfassung&id=$id",'Zeit'); + } + + + $anzahlansp = $this->app->DB->Select("SELECT COUNT(id) FROM ansprechpartner WHERE adresse='$id'"); + if($anzahlansp>0) { + $anzahlansp = ' ('.$anzahlansp.')'; + } else { + $anzahlansp=''; + } + + $anzahllief = $this->app->DB->Select("SELECT COUNT(id) FROM lieferadressen WHERE adresse='$id'"); + if($anzahllief>0) { + $anzahllief = ' ('.$anzahllief.')'; + } else { + $anzahllief=''; + } + + $anzahlacc = $this->app->DB->Select("SELECT COUNT(id) FROM adresse_accounts WHERE adresse='$id'"); + if($anzahlacc>0) { + $anzahlacc = ' ('.$anzahlacc.')'; + } else { + $anzahlacc=''; + } + + $this->app->erp->MenuEintrag("index.php?module=adresse&action=ansprechpartner&id=$id",'Ansprechpart.'.$anzahlansp); + $this->app->erp->MenuEintrag("index.php?module=adresse&action=lieferadresse&id=$id",'Lieferadressen'.$anzahllief); + $this->app->erp->MenuEintrag("index.php?module=adresse&action=accounts&id=$id",'Accounts'.$anzahlacc); + + + if($this->app->erp->IsAdresseSubjekt($id,'Kunde')){ + $this->app->erp->MenuEintrag("index.php?module=adresse&action=belege&id=$id", 'Belege'); + } + + if($this->app->erp->Version()!=='stock'){ + $this->app->erp->MenuEintrag("index.php?module=adresse&action=kundeartikel&id=$id", 'Artikel'); + } + + if($this->app->erp->IsAdresseSubjekt($id,'Kunde')) + { + $this->app->erp->MenuEintrag("index.php?module=adresse&action=abrechnungzeit&id=$id",'Zeitkonto'); + if($this->app->erp->ModulVorhanden('rechnungslauf')) + { + $anzahlabos = $this->app->DB->Select("SELECT COUNT(id) FROM abrechnungsartikel WHERE adresse='$id' AND (enddatum = '0000-00-00' OR enddatum >= NOW())"); + if($anzahlabos>0){ + $this->app->erp->MenuEintrag("index.php?module=adresse&action=artikel&id=$id", "Abos ($anzahlabos)"); + } + else{ + $this->app->erp->MenuEintrag("index.php?module=adresse&action=artikel&id=$id", 'Abos '); + } + } + //$this->app->erp->MenuEintrag("index.php?module=adresse&action=ustprf&id=$id","USt"); + } + + if($this->app->erp->IsAdresseSubjekt($id,'Lieferant')) + { + $this->app->erp->MenuEintrag("index.php?module=adresse&action=lieferantartikel&id=$id",'Lieferprogramm'); + $this->app->erp->MenuEintrag("index.php?module=adresse&action=offenebestellungen&id=$id",'Bestellungen'); + $this->app->erp->MenuEintrag("index.php?module=adresse&action=verbindlichkeiten&id=$id",'Verbindlichkeiten'); + } + + + $this->app->erp->MenuEintrag("index.php?module=adresse&action=ustprf&id=$id",'Ust-ID Prf.'); + + $this->app->erp->RunMenuHook('adresse'); + } + + function AdresseKontaktHistorie() + { + $this->AdresseMenu(); + $this->app->Tpl->Add('UEBERSCHRIFT',' (Kontakthistorie)'); + $this->app->Tpl->Set('SUBSUBHEADING','Adressen'); + $id = $this->app->Secure->GetGET('id'); + + // neues arbeitspaket + $widget = new WidgetAnsprechpartner($this->app,'TAB2'); + $widget->form->SpecialActionAfterExecute('none', + "index.php?module=adresse&action=ansprechpartner&id=$id"); + $widget->Create(); + + + //Formula ansprechpartner + $table = new EasyTable($this->app); + $table->Query("SELECT name, bereich, telefon, email,id FROM ansprechpartner WHERE adresse='$id'"); + $table->DisplayNew('INHALT', "Bearbeiten"); + + // easy table mit arbeitspaketen YUI als template + $this->app->Tpl->Parse('TAB1','rahmen70.tpl'); + $this->app->Tpl->Set('AKTIV_TAB1','selected'); + $this->app->Tpl->Parse('PAGE','ansprechpartneruebersicht.tpl'); + } + + function AdresseKontaktHistorieEditPopup() + { + $frame = $this->app->Secure->GetGET('frame'); + $id = $this->app->Secure->GetGET('id'); + + if($frame=='false') + { + // hier nur fenster größe anpassen + $this->app->YUI->IframeDialog(600,320); + } else { + // nach page inhalt des dialogs ausgeben + $widget = new WidgetAnsprechpartner($this->app,'PAGE'); + $adresse = $this->app->DB->Select("SELECT adresse FROM ansprechpartner WHERE id='$id' LIMIT 1"); + $widget->form->SpecialActionAfterExecute('close_refresh', + "index.php?module=adresse&action=ansprechpartner&id=$adresse"); + + $widget->Edit(); + $this->app->BuildNavigation=false; + } + } + + + + + function AdresseRolle() + { + + + } + + function AdresseNummern($id) + { + $tmp_data_adresse= $this->app->DB->SelectRow("SELECT * FROM adresse WHERE id='$id' AND geloescht=0 LIMIT 1"); + if(is_numeric($id)) { + $kundennummer = $tmp_data_adresse['kundennummer']; + $lieferantennummer = $tmp_data_adresse['lieferantennummer']; + $mitarbeiternummer= $tmp_data_adresse['mitarbeiternummer']; + $projekt= $tmp_data_adresse['projekt']; + } + + + if($kundennummer=='0' || $kundennummer==''){ + // pruefe ob rolle kunden vorhanden + if(is_numeric($id)){ + $check = $this->app->DB->Select("SELECT adresse FROM adresse_rolle WHERE adresse='$id' AND subjekt='Kunde' LIMIT 1"); + } + if(!empty($check)) + { + $kundennummer = $this->app->erp->GetNextKundennummer($projekt,$tmp_data_adresse); + $this->app->erp->ObjektProtokoll('adresse',$id,'adresse_next_kundennummer',"Kundennummer erhalten: $kundennummer"); + + $this->app->DB->Update("UPDATE adresse SET kundennummer='$kundennummer' WHERE id='$id' AND (kundennummer='0' OR kundennummer='') LIMIT 1"); + } else{ + $kundennummer = 'noch keine'; + } + } + + if($lieferantennummer=='0'){ + if(is_numeric($id)){ + $check = $this->app->DB->Select("SELECT adresse FROM adresse_rolle WHERE adresse='$id' AND subjekt='Lieferant' LIMIT 1"); + }else { + $check = ''; + } + if($check!='') + { + $lieferantennummer= $this->app->erp->GetNextLieferantennummer($projekt,$tmp_data_adresse); + $this->app->erp->ObjektProtokoll('adresse',$id,'adresse_next_lieferantennummer',"Lieferantennummer erhalten: $lieferantennummer"); + if(is_numeric($id)){ + $this->app->DB->Update("UPDATE adresse SET lieferantennummer='$lieferantennummer' WHERE id='$id' AND (lieferantennummer='0' OR lieferantennummer='') LIMIT 1"); + } + } else{ + $lieferantennummer = 'noch keine'; + } + } + + if($mitarbeiternummer=='0'){ + if(is_numeric($id)){ + $check = $this->app->DB->Select("SELECT adresse FROM adresse_rolle WHERE adresse='$id' AND (subjekt='Mitarbeiter' OR subjekt='Externer Mitarbeiter') LIMIT 1"); + }else{ + $check = ''; + } + if($check!='') + { + $mitarbeiternummer= $this->app->erp->GetNextMitarbeiternummer($projekt,$tmp_data_adresse); + $this->app->erp->ObjektProtokoll('adresse',$id,'adresse_next_mitarbeiternummer',"Mitarbeiternummer erhalten: $mitarbeiternummer"); + if(is_numeric($id)){ + $this->app->DB->Update("UPDATE adresse SET mitarbeiternummer='$mitarbeiternummer' WHERE id='$id' AND (mitarbeiternummer='0' OR mitarbeiternummer='') LIMIT 1"); + } + + } else{ + $mitarbeiternummer = 'noch keine'; + } + } + } + + + function AdresseDelKontakt() + { + $id = $this->app->Secure->GetGET('id'); + $lid = $this->app->Secure->GetGET('lid'); + if($lid > 0){ + $this->app->DB->Delete("DELETE FROM adresse_kontakte WHERE id='$lid' LIMIT 1"); + } + + $this->app->Location->execute("index.php?module=adresse&action=edit&id=$id"); + } + + + + function AdresseNewKontakt() + { + $bezeichnung = $this->app->Secure->GetGET('bezeichnung'); + $kontakt = $this->app->Secure->GetGET('kontakt'); + $id = $this->app->Secure->GetGET('id'); + + //INSERT + $this->app->DB->Insert("INSERT INTO adresse_kontakte (id,adresse,bezeichnung,kontakt) VALUES ('','$id','$bezeichnung','$kontakt')"); + + $this->app->Location->execute("index.php?module=adresse&action=edit&id=$id"); + } + + function AdresseOpen() + { + + $kundennummer=$this->app->Secure->GetGET('kundennummer'); + $projekt=$this->app->Secure->GetGET('projekt'); + + if($projekt!='') + { + $projektid = $this->app->DB->Select("SELECT id FROM projekt WHERE abkuerzung='$projekt' LIMIT 1"); + $id = $this->app->DB->Select("SELECT id FROM adresse WHERE projekt='$projektid' AND kundennummer='$kundennummer' LIMIT 1"); + } else { + $id = $this->app->DB->Select("SELECT id FROM adresse WHERE kundennummer='$kundennummer' LIMIT 1"); + } + + $cmd=$this->app->Secure->GetPOST('cmd'); + if($cmd=="") $cmd = $this->app->Secure->GetGET('cmd'); + $this->app->Location->execute('index.php?module=adresse&action='.$cmd.'&id='.$id); + } + + + function AdresseGetid() + { + + $kundennummer=$this->app->Secure->GetGET('kundennummer'); + $projekt=$this->app->Secure->GetGET('projekt'); + + if($projekt!='') + { + $projektid = $this->app->DB->Select("SELECT id FROM projekt WHERE abkuerzung='$projekt' LIMIT 1"); + $id = $this->app->DB->Select("SELECT id FROM adresse WHERE projekt='$projektid' AND kundennummer='$kundennummer' LIMIT 1"); + } else { + $id = $this->app->DB->Select("SELECT id FROM adresse WHERE kundennummer='$kundennummer' LIMIT 1"); + } + + echo $id; + $this->app->ExitXentral(); + } + + + function AdresseEdit() + { + $id = $this->app->Secure->GetGET('id'); + $projekt = $this->app->DB->Select("SELECT projekt FROM adresse WHERE id = '$id' LIMIT 1"); + + $shopid = (int)$this->app->Secure->GetGET('shop'); + $export = (int)$this->app->Secure->GetGET('export'); + $shops = $this->app->DB->SelectArr("SELECT id, bezeichnung, modulename, shoptyp FROM shopexport WHERE projekt = '$projekt' AND demomodus <> 1 AND aktiv = 1 AND adressupdate = 1"); + + if($shopid > 0){ + foreach ($shops as $shop){ + if((int)$shop['id'] === $shopid){ + if($export){ + $erg = $this->app->remote->RemoteCommand($shopid, 'sendadresse', $id); + if(isset($erg['meldung']) && (!isset($erg['fehler']) || !$erg['fehler'])) + { + $msg = $this->app->erp->base64_url_encode('
    '.$erg['meldung'].'
    '); + }elseif(isset($erg['fehler']) && $erg['fehler']) + { + $msg = $this->app->erp->base64_url_encode('
    Es ist ein Fehler aufgetreten: '.$erg['fehler'].'!
    '); + }else{ + $msg = $this->app->erp->base64_url_encode('
    Fehlerhafte Online-Shopkonfiguration
    '); + } + }else{ + $erg = $this->app->remote->RemoteCommand($shopid, 'getadresse', $id); + if(isset($erg['meldung']) && (!isset($erg['fehler']) || !$erg['fehler'])) + { + $msg = $this->app->erp->base64_url_encode('
    '.$erg['meldung'].'
    '); + }elseif(isset($erg['fehler']) && $erg['fehler']) + { + $msg = $this->app->erp->base64_url_encode('
    Es ist ein Fehler aufgetreten: '.$erg['fehler'].'!
    '); + }else{ + $msg = $this->app->erp->base64_url_encode('
    Fehlerhafte Online-Shopkonfiguration
    '); + } + } + $this->app->Location->execute('index.php?module=adresse&action=edit&id='.$id.'&msg='.$msg); + break; + } + } + } + + + if($this->app->erp->DisableModul('adresse',$id)) + { + //$this->app->erp->MenuEintrag("index.php?module=auftrag&action=list","Zurück zur Übersicht"); + $this->AdresseMenu(); + return; + } + + $this->app->YUI->SaveReally(); + + $adresse_kontakte = $this->app->Secure->GetPOST('adresse_kontakte'); + if(!empty($adresse_kontakte) && count($adresse_kontakte) > 0) { + foreach($adresse_kontakte as $key=>$value) + $this->app->DB->Update("UPDATE adresse_kontakte SET kontakt='$value' WHERE id='$key' LIMIT 1"); + } + $telefon = ''; + $mobil = ''; + $email = ''; + $internetseite = ''; + if(is_numeric($id)) { + $adressarr = $this->app->DB->SelectRow("SELECT * FROM adresse WHERE id='$id' AND geloescht=0 LIMIT 1"); + if(!empty($adressarr)){ + $kundennummer = $adressarr['kundennummer'];//$this->app->DB->Select("SELECT kundennummer FROM adresse WHERE id='$id' AND geloescht=0 LIMIT 1"); + $lieferantennummer = $adressarr['lieferantennummer'];//$this->app->DB->Select("SELECT lieferantennummer FROM adresse WHERE id='$id' AND geloescht=0 LIMIT 1"); + $mitarbeiternummer = $adressarr['mitarbeiternummer'];//$this->app->DB->Select("SELECT mitarbeiternummer FROM adresse WHERE id='$id' AND geloescht=0 LIMIT 1"); + $logfile = $adressarr['adresse'];//$this->app->DB->Select("SELECT logfile FROM adresse WHERE id='$id' AND geloescht=0 LIMIT 1"); + $telefon = $adressarr['telefon']; + $mobil = $adressarr['mobil']; + $email = $adressarr['email']; + $internetseite = $adressarr['internetseite']; + }else{ + $kundennummer = ''; + $lieferantennummer = ''; + $mitarbeiternummer = ''; + $logfile = ''; + } + $logfile = str_replace(';',"\r\n",$logfile); + $this->app->Tpl->Set('LOGFILE',""); + } + + $sipuid = false; + $isPlaceTelAvailable = $this->app->erp->RechteVorhanden('placetel','call') + && !empty($sipuid = $this->app->erp->GetPlacetelSipuid()); + $isSipgateAvailable = $this->app->erp->RechteVorhanden('sipgate','call') + && !empty($this->app->erp->GetKonfiguration('sipgate_api_user')); + if($isSipgateAvailable || $isPlaceTelAvailable) { + $phoneModule = $isPlaceTelAvailable ? 'placetel' : 'sipgate'; + $this->app->Tpl->Set('JSPLACETEL',' + function call(id, dummy) + { + $.ajax({ + url: \'index.php?module=' . $phoneModule . '&action=call&id=\'+id, + type: \'POST\', + dataType: \'json\', + data: {}, + success: function(data) { + if(data) + { + + } + } + }); + + } + '); + } + //$telefon= $this->app->DB->Select("SELECT telefon FROM adresse WHERE id='$id' AND geloescht=0 LIMIT 1"); + if($telefon!='') + { + $telefon = str_replace('/','',$telefon); + $telefon = str_replace(' ','',$telefon); + if($isPlaceTelAvailable || $isSipgateAvailable) + { + $this->app->Tpl->Set('TELEFONBUTTON',"app->Conf->WFconf['defaulttheme']."/images/phone.png\" class=\"iconininput\" alt=\"anrufen\" />"); + }else{ + $this->app->Tpl->Set('TELEFONBUTTON',"app->Conf->WFconf['defaulttheme']."/images/phone.png\" class=\"iconininput\" alt=\"anrufen\" />"); + } + } + //$mobil= $this->app->DB->Select("SELECT mobil FROM adresse WHERE id='$id' AND geloescht=0 LIMIT 1"); + if($mobil!='') + { + $mobil = str_replace('/','',$mobil); + $mobil = str_replace(' ','',$mobil); + if($isPlaceTelAvailable || $isSipgateAvailable) + { + $this->app->Tpl->Set('MOBILBUTTON',"app->Conf->WFconf['defaulttheme']."/images/phone.png\" class=\"iconininput\" alt=\"anrufen\" />"); + }else{ + $this->app->Tpl->Set('MOBILBUTTON',"app->Conf->WFconf['defaulttheme']."/images/phone.png\" class=\"iconininput\" alt=\"anrufen\" />"); + } + } + + //$email = $this->app->DB->Select("SELECT email FROM adresse WHERE id='$id' AND geloescht=0 LIMIT 1"); + if($email != '') + { + $email = str_ireplace("mailto:",'',$email); + $this->app->Tpl->Set('EMAILBUTTON',"app->Conf->WFconf['defaulttheme']."/images/mail2.png\" alt=\"Email schreiben\" class=\"iconininput\" />"); + } + + //$internetseite = $this->app->DB->Select("SELECT internetseite FROM adresse WHERE id='$id' AND geloescht=0 LIMIT 1"); + if($internetseite != '') + { + if(stripos($internetseite,'http') === false)$internetseite = 'http://'.$internetseite; + $this->app->Tpl->Set('INTERNETBUTTON',"app->Conf->WFconf['defaulttheme']."/images/web.png\" class=\"iconininput\" alt=\"Internetseite besuchen\" />"); + } + + //Weitere Kontakte + $buttons_kontakte = " + + x"; +} + + +$this->app->Tpl->Set('BUTTON_KONTAKTE',"$table_kontakte$buttons_kontakte"); + + + + +$things = array('angebot','auftrag','rechnung','lieferschein','gutschrift'); +$buttons_kunde = ''; +foreach($things as $key=>$value) { + $buttons_kunde .= ' + '; +} + +$things = array('bestellung'); +$buttons_lieferant = ''; +foreach($things as $key=>$value) { + $buttons_lieferant .= ' + '; +} + + + + if($kundennummer !='') { + $buttons = $buttons_kunde; + } + if($lieferantennummer !='') { + $buttons .= $buttons_lieferant; + } + + if(1){//$buttons !=""){ + $this->app->Tpl->Set('BUTTONS','
    Neu Anlegen +
    '.$buttons.'
    +
    '); + + $this->app->Tpl->Set('BUTTONS2','AdresseAnschriftString($id)).'\')" value="Adresse in Zwischenspeicher"> + '); + } + +if(is_numeric($id)){ + $anzahl_rollen = $this->app->DB->Select("SELECT SUM(id) FROM adresse_rolle WHERE adresse='$id'"); +} + +$anzahl_lead = !empty($adressarr['lead'])?$adressarr['lead']:0;// $this->app->DB->Select("SELECT lead FROM adresse WHERE id='$id'"); +$anzahl_rollen += $anzahl_lead; + + +if($anzahl_rollen<1) +{ + + if($this->app->erp->Version()==='stock') + { + $lieferant_checked = 'checked'; + $kunde_checked = ''; + } else { + $lieferant_checked = ''; + $kunde_checked = 'checked'; + } + + if($this->app->erp->RechteVorhanden("crm","list")) + $leadbox = " "; + + if($this->app->erp->RechteVorhanden("adresse","rollen")) + { + $this->app->Tpl->Set('MESSAGEROLLE'," +
    Die Adresse hat noch keine Rolle. Soll eine Rolle anlegt werden: +   +   +   + $leadbox + +
    "); + } +} + +if($anzahl_rollen==1 && $anzahl_lead==1) +{ +$this->app->Tpl->Set('MESSAGEROLLE','
    Diese Adresse ist ein potentieller Neukunde (Lead).
    '); + +} + +// aktiviere tab 1 +$this->app->Tpl->Set('AKTIV_ADRESSE','selected'); +$this->AdresseNummern($id); +if($kundennummer==0) { + $kundennummer = 'keine Kundennummer vorhanden'; +} +if($lieferantennummer==0){ + $lieferantennummer = 'keine Lieferantennummer vorhanden'; +} +if($mitarbeiternummer==0){ + $mitarbeiternummer = 'keine Mitarbeiternummer vorhanden'; +} + + +$this->app->Tpl->Set('KUNDENNUMMERANZEIGE',$kundennummer); +$this->app->Tpl->Set('LIEFERANTENNUMMERANZEIGE',$lieferantennummer); +$this->app->Tpl->Set('MITARBEITERNUMMERANZEIGE',$mitarbeiternummer); + +$this->AdresseMenu(); +$this->app->Tpl->Set('TABLE_ADRESSE_KONTAKTHISTORIE','TDB'); +$this->app->Tpl->Set('TABLE_ADRESSE_ROLLEN','TDB'); + +$this->app->Tpl->Set('TABLE_ADRESSE_USTID','TDB'); + + +$this->app->Tpl->Set('SUBSUBHEADING','Rolle anlegen'); +if($this->app->Secure->GetPOST('rolleanlegen')!=''){ + $this->app->Tpl->Set('AKTIV_TAB3', 'selected'); +} +else{ + $this->app->Tpl->Set('AKTIV_TAB1', 'selected'); +} + +$abweichende_rechnungsadresse= $this->app->DB->Select("SELECT abweichende_rechnungsadresse FROM adresse WHERE id='$id' LIMIT 1"); +$this->app->Tpl->Set('ABWEICHENDERECHNUNGSADRESSESTYLE','none'); +if($abweichende_rechnungsadresse=='1') { + $this->app->Tpl->Set('ABWEICHENDERECHNUNGSADRESSESTYLE',''); +} + +$liefersperre= $this->app->DB->Select("SELECT liefersperre FROM adresse WHERE id='$id' LIMIT 1"); +if($liefersperre=='1') +{ + $this->app->Tpl->Add('MESSAGE',"
    Achtung! Bei dieser Adresse ist die Liefersperre gesetzt!
    "); +} +parent::AdresseEdit(); +$this->app->erp->MessageHandlerStandardForm(); + +} + +function AdresseRollen() +{ + $this->AdresseMenu(); + + $id = $this->app->Secure->GetGET('id'); + $reload = $this->app->Secure->GetGET('reload'); + $submitrolle = $this->app->Secure->GetPOST('submitrolle'); + + $this->AdresseRolleEdit(); + + $projekt = $this->app->DB->Select("SELECT projekt FROM adresse WHERE id='$id' LIMIT 1"); + + if($submitrolle!='') + { + + if($this->app->Secure->GetPOST('kunde')=='1'){ + $this->app->erp->AddRolleZuAdresse($id, 'Kunde', 'von', 'Projekt', $projekt); + } + if($this->app->Secure->GetPOST('mitarbeiter')=='1'){ + $this->app->erp->AddRolleZuAdresse($id, 'Mitarbeiter', 'von', 'Projekt', $projekt); + } + if($this->app->Secure->GetPOST('lieferant')=='1'){ + $this->app->erp->AddRolleZuAdresse($id, 'Lieferant', 'von', 'Projekt', $projekt); + } + if($this->app->Secure->GetPOST('lead')=='1'){ + $this->app->DB->Update("UPDATE adresse SET `lead`=1 WHERE id='$id' LIMIT 1"); + } + } + + $this->AdresseNummern($id); + + if($submitrolle!='') + { + $this->app->Location->execute("index.php?module=adresse&action=edit&id=$id"); + } + + if($this->app->Secure->GetPOST('rolleanlegen')!='') + { + $subjekt = $this->app->Secure->GetPOST('subjekt'); + $objekt = $this->app->Secure->GetPOST('objekt'); + if($objekt==='Projekt') + { + $projekt = $this->app->Secure->GetPOST('parameter'); + $parameter = $this->app->DB->Select("SELECT id FROM projekt WHERE abkuerzung='$projekt' AND abkuerzung <> '' LIMIT 1"); + } else { + $gruppe= $this->app->Secure->GetPOST('gruppe'); + $parameter = $this->app->DB->Select("SELECT id FROM gruppen WHERE CONCAT(name,' ',kennziffer)='$gruppe' LIMIT 1"); + } + + if(!($objekt==='Gruppe' && $parameter <=0)) + { + $this->app->erp->AddRolleZuAdresse($id, $subjekt, "von", $objekt, $parameter); + } + else { + $msg = $this->app->erp->base64_url_encode("
    Rolle nicht gespeichert! Bitte geben Sie eine Gruppe an!
    "); + $this->app->Location->execute("index.php?module=adresse&action=rollen&id=$id&msg=$msg"); + } + } + + $this->app->YUI->AutoComplete('parameter','projektname',1); + $this->app->YUI->AutoComplete('gruppe','gruppe'); + + $subjekt= $this->app->erp->GetAdressSubject(); + $this->app->Tpl->Set('ROLLE_SELECT',$this->app->erp->GetSelect($subjekt,'')); + + $this->app->Tpl->Parse('TAB1','adresse_rolle.tpl'); + if($this->app->Secure->GetPOST('rolleanlegen')!='' || $reload=='true') + { + $this->app->Location->execute("index.php?module=adresse&action=rollen&id=$id"); + } + + + $this->app->Tpl->Set('SUBSUBHEADING','Rollen der Adresse'); + $this->app->Tpl->Set('TABTEXT','Rollen'); + + $table = new EasyTable($this->app); + $table->Query("SELECT a.subjekt as Rolle, + if(a.objekt='','ALLE',a.objekt) as Zuordnung, + if(a.objekt='Projekt',if(a.parameter='','ALLE',p.abkuerzung),CONCAT(g.name,' ',g.kennziffer)) as auswahl, + DATE_FORMAT(a.von,'%d.%m.%Y') as seit, if(a.bis='0000-00-00','aktuell',DATE_FORMAT(a.bis,'%d.%m.%Y')) as bis, a.id + FROM adresse_rolle a LEFT JOIN projekt p ON a.parameter=p.id + LEFT JOIN gruppen g ON g.id=a.parameter + WHERE a.adresse='$id'",0,""); + + $table->DisplayNew('TAB1NEXT', " +  "); + + //app->YUI->DatePicker('von_datum'); + $this->app->YUI->DatePicker('bis_datum'); +} + + +function AdresseRolleEdit() +{ + if($this->app->Secure->GetGET('cmd')==='get'){ + + $id = (int)$this->app->Secure->GetPOST('id'); + + $data = $this->app->DB->SelectRow("SELECT id as id, DATE_FORMAT(von,'%d.%m.%Y') as von_datum, DATE_FORMAT(bis,'%d.%m.%Y') as bis_datum FROM adresse_rolle WHERE id = \"$id\" LIMIT 1"); + + echo json_encode($data); + $this->app->ExitXentral(); + } +} + +function AdresserolleSave() +{ + $id = (int)$this->app->Secure->GetPOST('id'); + $von_datum = $this->app->Secure->GetPOST('von_datum'); + $bis_datum = $this->app->Secure->GetPOST('bis_datum'); + + $id = $this->app->DB->Select("SELECT id FROM adresse_rolle ar WHERE id = \"$id\""); + + $von_datuml = strlen(trim($von_datum)); + $bis_datuml = strlen(trim($bis_datum)); + + $von_datum = $this->app->String->Convert($von_datum,'%3.%2.%1','%1-%2-%3'); + $bis_datum = $this->app->String->Convert($bis_datum,'%3.%2.%1','%1-%2-%3'); + $fehler = ''; + if($id != '' && trim($von_datum) != '' && trim($bis_datum) != '' && $von_datuml >= 8 && $von_datuml <= 10 && $bis_datuml >= 8 && $bis_datuml <= 10 && $von_datum != '0000-00-00'){ + $this->app->DB->Update("UPDATE adresse_rolle SET von = \"$von_datum\", bis = \"$bis_datum\" WHERE id = \"$id\""); + }else{ + if($von_datum == '0000-00-00'){ + $fehler .= 'Bitte ein gültiges von Datum angeben'; + } + if($von_datuml < 8 || $von_datuml > 10 || $bis_datuml < 8 || $bis_datuml > 10){ + $fehler .= 'Bitte ein gültiges Datum angeben'; + } + echo json_encode(array('status'=>0,'statusText'=>$fehler)); + $this->app->ExitXentral(); + } + + echo json_encode(array('status'=>1)); + $this->app->ExitXentral(); +} + + +function AdresseUSTPopup() +{ + $frame = $this->app->Secure->GetGET('frame'); + if($frame=='false') + { + // hier nur fenster größe anpassen + $this->app->YUI->IframeDialog(650,530); + } else { + $this->AdresseUstprf(); + $this->app->BuildNavigation=false; + } +} + + + +function AdresseUstprf() +{ + $this->AdresseMenu(); + $id = $this->app->Secure->GetGET("id"); + + $this->app->Tpl->Set("MESSAGE","
    Hinweis: Dies ist ein Beta-Feature. Bitte prüfen Sie die Daten und melden uns per Ticket-System, wenn etwas bei Ihnen nicht stimmt.
    "); + + $this->app->YUI->DateiPopup('DATEIENPOPUP','adresseustprf','#e_id',array( + 'openbuttontarget'=>'DATEIBUTTON' + ,'frompopup'=>'editUstprf','afteropen'=>'AFTERPOPUPOPEN' + )); + + $laender = $this->app->erp->GetSelectLaenderliste(); + $laenderstr = ''; + + foreach($laender as $key => $value){ + if($key != "0" && $land == $key){ + $laenderstr .= ''; + }else{ + $laenderstr .= ''; + } + } + + $this->app->Tpl->Add("LAENDER", $laenderstr); + + $this->app->Tpl->Set("ADRESSID", $id); + + $this->app->YUI->CkEditor("e_mailtext", "belege"); + + $this->app->YUI->TableSearch('TAB1','adresse_ustprf', 'show','','',basename(__FILE__), __CLASS__); + $this->app->YUI->TableSearch('PROTOKOLLTABELLE','adresse_ustprf_protokoll','show','','',basename(__FILE__), __CLASS__); + + + $cmd = $this->app->Secure->GetGET('cmd'); + $ustprfid = (int)$this->app->Secure->GetPOST('ustprfid'); + $adressid = (int)$this->app->Secure->GetPOST('adressid'); + $name = trim($this->app->Secure->GetPOST('name')); + $ustid = trim($this->app->Secure->GetPOST('ustid')); + $plz = trim($this->app->Secure->GetPOST('plz')); + $ort = trim($this->app->Secure->GetPOST('ort')); + $strasse = trim($this->app->Secure->GetPOST('strasse')); + $land = trim($this->app->Secure->GetPOST('land')); + + $ustid = str_replace(' ', '', $ustid); + + $url = html_entity_decode($name." ".$ort." ".$land, ENT_QUOTES | ENT_XML1); + + $ownvatok = false; + + include_once(dirname(__DIR__).'/lib/class.ustid.php'); + + switch($cmd) + { + case "startwerte": + $abwreadresse = $this->app->DB->Select("SELECT abweichende_rechnungsadresse FROM adresse WHERE id = '$adressid' LIMIT 1"); + + if($abwreadresse == 1){ + $data = $this->app->DB->SelectRow("SELECT id, kundennummer AS nummer, rechnung_name AS name, rechnung_land AS land, ustid, rechnung_ort AS ort, rechnung_plz AS plz, rechnung_strasse AS strasse FROM adresse WHERE id = '$adressid' LIMIT 1"); + } else{ + $data = $this->app->DB->SelectRow("SELECT id, kundennummer AS nummer, land, name, ustid, ort, plz, strasse FROM adresse WHERE id = '$adressid' LIMIT 1"); + } + + if($data){ + $data['name'] = html_entity_decode($data['name'], ENT_QUOTES | ENT_XML1); + $url = html_entity_decode($data['name'])." ".$data['ort']." ".$data['land']; + + $data['ustid'] = str_replace(' ', '', $data['ustid']); + + $data['uststatus']="angelegt"; + $data['status']=1; + } + $this->app->DB->Insert("INSERT INTO ustprf (adresse, ustid, name, ort, plz, strasse, land,status,datum) VALUES ('$adressid', '".$data['ustid']."', + '".$this->app->DB->real_escape_string($data['name'])."', '".$this->app->DB->real_escape_string($data['ort'])."', '".$data['plz']."', + '".$this->app->DB->real_escape_string($data['strasse'])."', '".$data['land']."','angelegt',NOW())"); + + + $ustprfid = $this->app->DB->GetInsertID(); + $data['ustprfid'] = $ustprfid; + + $protokoll = "Neue Prüfung angelegt"; + + break; + case "stammdaten": + $this->app->DB->Update("UPDATE adresse SET name = '$name', ustid = '$ustid', plz = '$plz', ort = '$ort', strasse = '$strasse', land = '$land' WHERE id = '$adressid'"); + $this->app->DB->Update("UPDATE ustprf SET ustid = '$ustid', name = '$name', ort = '$ort', plz = '$plz', strasse = '$strasse', land = '$land' WHERE id = '$ustprfid'"); + $data['status']=1; + $data['statusText']="Stammdaten wurden aktualisiert"; + $protokoll = $data['statusText']; + $adressdaten = $name." | ".$ort." | ".$plz." | ".$strasse." | ".$land." | ".$ustid; + break; + case "online": + case "brief": + $ustland = substr($ustid, 0, 2); + if($ustland!=""){ + $ustlaender = $this->app->erp->GetUSTEU(true); + if(!in_array($ustland, $ustlaender)){ + $data['status']=0; + $data['statusText']="Dieses Land ist für die Prüfung nicht verfügbar.\nEs können nur Abfragen über Firmen in der EU durchgeführt werden."; + break; + } + } + + $this->app->DB->Update("UPDATE ustprf SET ustid='".$ustid."', name='".$name."', + ort='".$ort."', plz='".$plz."', strasse='".$strasse."', land='".$land."' WHERE id='".$ustprfid."'"); + + $adressdaten = $name." | ".$ort." | ".$plz." | ".$strasse." | ".$land." | ".$ustid; + + $UstStatus = $this->app->erp->CheckUst($this->app->erp->Firmendaten("steuernummer"), $ustid ,$name,$ort,$strasse,$plz,($cmd=="brief"?"ja":"nein")); + + if(is_array($UstStatus) && !is_numeric($UstStatus)){ + //$tmp = new USTID(); + $msg = $UstStatus['ERROR_MSG']; + + if(($UstStatus['ERROR_CODE']==200 || $UstStatus['ERROR_CODE']==222) && (($UstStatus['ERG_NAME']=="A" && $UstStatus['ERG_PLZ']=="A" && $UstStatus['ERG_ORT']=="A" && $UstStatus['ERG_STR']=="A") || $cmd=="brief")){ + $data['status']=1; + if($cmd=="brief") { + $this->app->DB->Update("UPDATE ustprf SET status='$cmd',datum_brief=NOW(),briefbestellt=NOW() WHERE id='$ustprfid'"); + $data['statusText']="Schriftliche Mitteilung des BZSt wurde angefordert!"; + }else{ + $this->app->DB->Update("UPDATE ustprf SET status='$cmd',datum_online=NOW() WHERE id='$ustprfid'"); + $data['statusText']=$msg; + } + }else if($UstStatus['ERROR_CODE']==200 || $UstStatus['ERROR_CODE']==222){ + $data['status']=0; + + $this->app->DB->Update("UPDATE ustprf SET status='teilweise',datum_online=NOW() WHERE id='$ustprfid'"); + if($UstStatus['ERG_NAME']=="B") $tmpmsg .= "\nName stimmt nicht mit BZSt Eintrag überein! "; + if($UstStatus['ERG_PLZ']=="B") $tmpmsg .= "\nPLZ stimmt nicht mit BZSt Eintrag überein! "; + if($UstStatus['ERG_ORT']=="B") $tmpmsg .= "\nOrt stimmt nicht mit BZSt Eintrag überein! "; + if($UstStatus['ERG_STR']=="B") $tmpmsg .= "\nStrasse stimmt nicht mit BZSt Eintrag überein! "; + + if($UstStatus['ERG_NAME']=="C") $tmpmsg .= "\nName wurde vom BZSt nicht angefragt! "; + if($UstStatus['ERG_PLZ']=="C") $tmpmsg .= "\nPLZ wurde vom BZSt nicht angefragt! "; + if($UstStatus['ERG_ORT']=="C") $tmpmsg .= "\nOrt wurde vom BZSt nicht angefragt! "; + if($UstStatus['ERG_STR']=="C") $tmpmsg .= "\nStrasse wurde vom BZSt nicht angefragt! "; + + if($UstStatus['ERG_NAME']=="D") $tmpmsg .= "\nName wird vom EU-Mitgliedsstaat nicht mitgeteilt! "; + if($UstStatus['ERG_PLZ']=="D") $tmpmsg .= "\nPLZ wird vom EU-Mitgliedsstaat nicht mitgeteilt! "; + if($UstStatus['ERG_ORT']=="D") $tmpmsg .= "\nOrt wird vom EU-Mitgliedsstaat nicht mitgeteilt! "; + if($UstStatus['ERG_STR']=="D") $tmpmsg .= "\nStrasse wird vom EU-Mitgliedsstaat nicht mitgeteilt! "; + + $data['ustprfid'] = $ustprfid; + $data['adressdaten'] = $adressdaten; + $data['error_code'] = $UstStatus['ERROR_CODE']; + $data['statusText']=trim($tmpmsg); + }else{ + $data['status']=0; + $this->app->DB->Update("UPDATE ustprf SET status='fehlgeschlagen',datum_online=NOW() WHERE id='$ustprfid'"); + if($UstStatus['ERROR_CODE'] != ''){ + $data['statusText']=$msg.' (Code: '.$UstStatus['ERROR_CODE'].')'; + }else{ + $data['statusText'] = $msg.' (Code: Der Server des Bundeszentralamtes für Steuern ist derzeit nicht erreichbar.\nBitte probieren Sie es zu einem späteren Zeitpunkt noch einmal.)'; + } + } + $protokoll = $data['statusText']; + } + + + $data['uststatus'] = $this->app->DB->Select("SELECT status FROM ustprf WHERE id='$ustprfid'"); + $data['datum_online'] = $this->app->DB->Select("SELECT DATE_FORMAT(datum_online,'%d.%m.%Y') as datum_online FROM ustprf WHERE id='$ustprfid'"); + $data['datum_brief'] = $this->app->DB->Select("SELECT DATE_FORMAT(datum_brief,'%d.%m.%Y') as datum_brief FROM ustprf WHERE id='$ustprfid'"); + + if($data['datum_online'] == '00.00.0000'){ + $data['datum_online'] = '-'; + } + + if($data['datum_brief'] == '00.00.0000'){ + $data['datum_brief'] = '-'; + } + break; + case "delete": + if($ustprfid > 0){ + $this->app->DB->Delete("DELETE FROM ustprf WHERE id='" . $ustprfid . "'"); + $this->app->DB->Delete("DELETE FROM ustprf_protokoll WHERE ustprf_id='" . $ustprfid . "'"); + $data['status'] = 1; + } + break; + + + case "get": + $data = $this->app->DB->SelectRow("SELECT *,id as ustprfid, status as uststatus,DATE_FORMAT(datum_online,'%d.%m.%Y') as datum_online,DATE_FORMAT(datum_brief,'%d.%m.%Y') as datum_brief FROM ustprf WHERE id='".$ustprfid."'"); + + $url = html_entity_decode($data['name'])." ".$data['ort']." ".$data['land']; + + if($data['datum_online'] == '00.00.0000'){ + $data['datum_online'] = '-'; + } + + if($data['datum_brief'] == '00.00.0000'){ + $data['datum_brief'] = '-'; + } + + $data['status']=1; + break; + + case "gueltigmarkieren": + if($ustprfid > 0){ + $this->app->DB->Update("UPDATE ustprf SET status='$cmd',datum_online=NOW() WHERE id='$ustprfid'"); + $protokoll = "Manuell als gültig markiert."; + $adressdaten = $name." | ".$ort." | ".$plz." | ".$strasse." | ".$land." | ".$ustid; + $data['status'] = 1; + $data['uststatus'] = $this->app->DB->Select("SELECT status FROM ustprf WHERE id='$ustprfid'"); + $data['datum_online'] = $this->app->DB->Select("SELECT DATE_FORMAT(datum_online,'%d.%m.%Y') as datum_online FROM ustprf WHERE id='$ustprfid'"); + }else{ + $data['status'] = 0; + $data['statusText'] = 'Keine gültige Ustprf-ID'; + } + break; + } + + if($ustprfid > 0 && $protokoll!='' && $cmd!=='delete') + { + $this->app->DB->Insert("INSERT INTO ustprf_protokoll (ustprf_id, zeit, bemerkung, bearbeiter,logdatei, daten) VALUES ('".$ustprfid."',NOW(), + '$protokoll', '".$this->app->User->GetName()."',NOW(), '".$adressdaten."')"); + } + + if($cmd!='') + { + $data['url'] = "http://www.google.de/search?q=$url&ie=utf-8&oe=utf-8&aq=t&rls=com.ubuntu:de:official&client=firefox-a"; + echo json_encode($data); + $this->app->ExitXentral(); + } + + $this->app->Tpl->Parse('PAGE',"adresse_ustprf.tpl"); +} + +function AdresseProtokoll($lid) +{ + if($lid!=""){ + $table = new EasyTable($this->app); + + $table->Query("SELECT DATE_FORMAT(zeit, '%d.%m.%Y %H:%i') AS Datum, bemerkung,bearbeiter FROM ustprf_protokoll WHERE ustprf_id='$lid' ORDER BY zeit DESC", 0, "noAction"); + + $table->DisplayNew('PROTOKOLL',"", "noAction"); + + } +} + + +function AdresseVerbindlichkeiten() +{ + $this->AdresseMenu(); + + $this->app->Tpl->Parse('PAGE',"adresse_verbindlichkeiten.tpl"); +} + +function AdresseKundeArtikel() +{ + $parameter = $this->app->User->GetParameter('table_filter_adressekundeartikel'); + $parameter = json_decode($parameter, true); + + $cmd = $this->app->Secure->GetGET('cmd'); + if($cmd==='edit') { + $id = (int)$this->app->Secure->GetPOST('id'); + $art = (int)$this->app->Secure->GetPOST('art'); + $tabelle = ""; + + if($art == 1){ + $tabelle = "auftrag"; + }elseif($art == 2){ + $tabelle = "rechnung"; + }elseif($art == 3){ + $tabelle = "gutschrift"; + }elseif($art == 4){ + $tabelle = "angebot"; + }elseif($art == 5){ + $tabelle = "lieferschein"; + }elseif($art == 6){ + $tabelle = "produktion"; + } + + $data = $this->app->DB->SelectRow("SELECT id, internerkommentar FROM ".$tabelle."_position WHERE id = '$id' LIMIT 1"); + + if($data){ + $data['art'] = $tabelle; + + }else{ + $data['id'] = 0; + $data['internerkommentar'] = 0; + $data['art'] = ''; + } + echo json_encode($data); + $this->app->ExitXentral(); + + } + if($cmd==='save'){ + $id = $this->app->Secure->GetPOST('id'); + $internerkommentar = $this->app->Secure->GetPOST('internerkommentar'); + $art = $this->app->Secure->GetPOST('art'); + + $error = ''; + + if($error == ''){ + if($id > 0){ + $this->app->DB->Update("UPDATE ".$art."_position SET internerkommentar = '$internerkommentar' WHERE id = '$id'"); + echo json_encode(array('status'=>1)); + $this->app->ExitXentral(); + } + }else{ + echo json_encode(array('status'=>0,'statusText'=>$error)); + $this->app->ExitXentral(); + } + } + + + if($this->app->Secure->GetPOST('speichern')) + { + $internerkommentar = $this->app->Secure->GetPOST('internerkommentar'); + $rechnung_position = (int)$this->app->Secure->GetPOST('rechnung_position'); + if($rechnung_position) + { + $rechnung = $this->app->DB->Select("SELECT rechnung FROM rechnung_position WHERE id = '$rechnung_position' LIMIT 1"); + if($rechnung) + { + $id = (int)$this->app->Secure->GetGET('id'); + if($id && $this->app->DB->Select("SELECT adresse FROM rechnung WHERE id = '$rechnung' AND adresse = '$id' LIMIT 1")) + { + $this->app->DB->Update("UPDATE rechnung_position SET internerkommentar = '$internerkommentar' WHERE id = '$rechnung_position' LIMIT 1"); + } + } + } + } + $this->AdresseMenu(); + $this->app->Tpl->Parse('TAB1','adresse_kundeartikel_table_filter.tpl'); + $this->app->YUI->TableSearch('TAB1','adresseartikel'); + + $this->app->YUI->TableSearch('TAB7','adresse_artikel_gekaufte', 'show','','',basename(__FILE__), __CLASS__); + + $this->app->Tpl->Parse('PAGE','adresse_artikel.tpl'); +} + +public function AdresseLieferantArtikel() +{ + $this->AdresseMenu(); + + $this->app->YUI->TableSearch('TAB1','lieferantartikel', 'show','','',basename(__FILE__), __CLASS__); + $this->app->Tpl->Parse('PAGE','adresse_lieferprogramm.tpl'); +} + +function AdresseBestellungMarkiert() +{ + $id = $this->app->Secure->GetGET('id'); + $sid = $this->app->Secure->GetPOST('sid'); + if($sid > 0){ + $geliefert = $this->app->DB->Select("SELECT geliefert FROM bestellung_position WHERE id='$sid' LIMIT 1"); + $menge = $this->app->DB->Select("SELECT menge FROM bestellung_position WHERE id='$sid' LIMIT 1"); + $tmp = $menge - $geliefert; + if($tmp < 0){ + $tmp = 0; + } + $this->app->DB->Update("UPDATE bestellung_position SET abgeschlossen='1', mengemanuellgeliefertaktiviert='$tmp', geliefert='$menge',manuellgeliefertbearbeiter='" . $this->app->User->GetName() . "' WHERE id='$sid' LIMIT 1"); + } + echo json_encode(array('status'=>1)); + $this->app->ExitXentral(); +} + + +function AdresseOffeneBestellungen() +{ + $id = $this->app->Secure->GetGET('id'); + $this->app->Tpl->Set('ID',$id); + + $this->AdresseMenu(); + + $this->app->Tpl->Set('UEBERSCHRIFT1','Bestellungen'); + + $this->app->YUI->TableSearch('TAB1', 'adressebestellungen'); + + $this->app->Tpl->Set('TAB1SELECT','selected'); + $this->app->Tpl->Set('EXTEND',''); + $this->app->Tpl->Set('INHALT',''); + + $this->app->YUI->TableSearch('TAB2', 'adressebestellungen_artikel'); + $this->app->Tpl->Parse('PAGE', 'adressebestellung.tpl'); +} + +function AdresseAccounts() +{ + $this->AdresseMenu(); + $id = $this->app->Secure->GetGET('id'); + $lid = $this->app->Secure->GetGET("lid"); + $cmd = $this->app->Secure->GetGET('cmd'); + + $iframe = $this->app->Secure->GetGET("iframe"); + + + if($cmd === "save"){ + $bearbeitungsid = (int)$this->app->Secure->GetPOST('id'); + $bezeichnung = trim($this->app->Secure->GetPOST('bezeichnung')); + $benutzername = trim($this->app->Secure->GetPOST('benutzername')); + $passwort = trim($this->app->Secure->GetPOST('passwort')); + $art = trim($this->app->Secure->GetPOST('art')); + $url = trim($this->app->Secure->GetPOST('url')); + $email = trim($this->app->Secure->GetPOST('email')); + $notiz = trim($this->app->Secure->GetPOST('notiz')); + $gueltigab = trim($this->app->Secure->GetPOST('gueltigab')); + $gueltigbis = trim($this->app->Secure->GetPOST('gueltigbis')); + $aktiv = $this->app->Secure->GetPOST('aktiv'); + $adressid = (int)$this->app->Secure->GetPOST('adressid'); + + $error = ""; + + if($bezeichnung == ""){ + $error .= "Bitte Bezeichnung ausfüllen\n"; + } + + if($gueltigab == "" || $gueltigab == "0000-00-00"){ + $gueltigab = "0000-00-00"; + }else{ + $gueltigab = date('Y-m-d',strtotime($gueltigab)); + } + + if($gueltigbis == "" || $gueltigbis == "0000-00-00"){ + $gueltigbis = "0000-00-00"; + }else{ + $gueltigbis = date('Y-m-d',strtotime($gueltigbis)); + } + + if($error == ''){ + if($bearbeitungsid){ + $this->app->DB->Update("UPDATE adresse_accounts SET bezeichnung = '$bezeichnung', benutzername = '$benutzername', passwort = '$passwort', art = '$art', url = '$url', email = '$email', notiz = '$notiz', gueltig_ab = '$gueltigab', gueltig_bis = '$gueltigbis', aktiv = '$aktiv' WHERE id = '$bearbeitungsid'"); + + echo json_encode(array('status'=>1)); + $this->app->ExitXentral(); + } + $this->app->DB->Insert("INSERT INTO adresse_accounts (bezeichnung, benutzername, passwort, art, url, email, notiz, gueltig_ab, gueltig_bis, aktiv, adresse) VALUES ('$bezeichnung', '$benutzername', '$passwort', '$art', '$url', '$email', '$notiz', '$gueltigab', '$gueltigbis', '$aktiv', '$adressid')"); + echo json_encode(array('status'=>1)); + $this->app->ExitXentral(); + } + echo json_encode(array('status'=>0,'statusText'=>$error)); + $this->app->ExitXentral(); + + + + } + if($cmd === 'edit'){ + + $bearbeitungsid = (int)$this->app->Secure->GetPOST('id'); + + $data = $this->app->DB->SelectRow("SELECT id, bezeichnung, benutzername, passwort, art, url, email, notiz, gueltig_ab, gueltig_bis, aktiv FROM adresse_accounts WHERE id = '$bearbeitungsid' LIMIT 1"); + + if($data){ + if($data['gueltig_ab'] == "0000-00-00"){ + $data['gueltig_ab'] = ""; + }else{ + $data['gueltig_ab'] = date('d.m.Y',strtotime($data['gueltig_ab'])); + } + if($data['gueltig_bis'] == "0000-00-00"){ + $data['gueltig_bis'] = ""; + }else{ + $data['gueltig_bis'] = date('d.m.Y',strtotime($data['gueltig_bis'])); + } + }else{ + $data['id'] = 0; + $data['bezeichnung'] = ''; + $data['benutzername'] = ''; + $data['passwort'] = ''; + $data['art'] = ''; + $data['url'] = ''; + $data['email'] = ''; + $data['notiz'] = ''; + $data['gueltig_ab'] = ''; + $data['gueltig_bis'] = ''; + $data['aktiv'] = 0; + } + echo json_encode($data); + $this->app->ExitXentral(); + + } + if($cmd === 'delete'){ + $loeschid = (int) $this->app->Secure->GetPOST('eid'); + $this->app->DB->Update("DELETE FROM adresse_accounts WHERE id = '$loeschid' LIMIT 1"); + + echo json_encode(array('status'=>1)); + $this->app->ExitXentral(); + } + + + + + if($iframe=="true") + $this->app->BuildNavigation=false; + + if($delete==1) + { + $this->app->DB->Delete("DELETE FROM adresse_accounts WHERE id='$lid' AND adresse='$id' LIMIT 1"); + $this->app->Location->execute("index.php?module=adresse&action=accounts$add_cmd&id=$id&iframe=$iframe"); + } + + $this->app->YUI->AutoComplete("e_art", "accountart"); + $this->app->YUI->CkEditor("e_notiz","basic",array('height'=>'11em', 'width'=>'35em')); + $this->app->YUI->DatePicker('e_gueltigab'); + $this->app->YUI->DatePicker('e_gueltigbis'); + + + //Formula lieferadresse + // easy table mit arbeitspaketen YUI als template + $this->app->YUI->TableSearch('TAB1',"adresse_accounts"); + //$this->app->Tpl->Parse('TAB1',"rahmen70.tpl"); + $this->app->Tpl->Set('AKTIV_TAB1',"selected"); + + if($iframe=="true") + $this->app->Tpl->Parse('PAGE',"adresse_accounts_uebersicht_popup.tpl"); + else + $this->app->Tpl->Parse('PAGE',"adresse_accounts_uebersicht.tpl"); + +} + + +function AdresseAnsprechpartnerPopup() +{ + $frame = $this->app->Secure->GetGET("frame"); + $id = $this->app->Secure->GetGET('id'); + $cmd= $this->app->Secure->GetPOST('cmd'); + + if($cmd=="alslieferadresse") + $als_lieferadresse=true; + else + $als_lieferadresse=false; + + + $this->AdresseAnsprechpartner($als_lieferadresse); + $this->app->BuildNavigation=false; +} + +function AdresseAnsprechpartnerLieferadressePopup() +{ + $frame = $this->app->Secure->GetGET("frame"); + $id = $this->app->Secure->GetGET('id'); + + $this->AdresseAnsprechpartner(true); + $this->app->BuildNavigation=false; +} + +function AdresseStammdatenLieferadressePopup() +{ + $frame = $this->app->Secure->GetGET("frame"); + $id = $this->app->Secure->GetGET('id'); + + $this->AdresseStammdaten(true); + $this->app->BuildNavigation=false; +} + + + +function AdresseStammdaten($als_lieferadresse=false) +{ + $this->AdresseMenu(); + $id = $this->app->Secure->GetGET('id'); + $lid = $this->app->Secure->GetGET("lid"); + $delete = $this->app->Secure->GetGET("delete"); + $create= $this->app->Secure->GetGET("create"); + $cmd= $this->app->Secure->GetPOST('cmd'); + + $als_verzollungsadresse = false; + $als_ansprechpartner = false; + if($cmd=="alslieferadresse") + { + $this->app->Tpl->Set('STARTDISABLEANREDE',""); + $als_lieferadresse=true; + $add_cmd = "&cmd=alslieferadresse"; + }elseif($cmd == "alsverzollungadresse") + { + $this->app->Tpl->Set('STARTDISABLEANREDE',""); + $als_verzollungsadresse=true; + $add_cmd = "&cmd=alsverzollungadresse"; + } elseif($cmd == "alsansprechpartner") + { + $this->app->Tpl->Set('STARTDISABLEANREDE',""); + $als_ansprechpartner=true; + $add_cmd = "&cmd=alsansprechpartner"; + } + + + $iframe = $this->app->Secure->GetGET("iframe"); + + if($iframe=="true") + $this->app->BuildNavigation=false; + + // neues arbeitspaket + + if($iframe=="true") { + if($als_lieferadresse) + { + $einfuegen = "
    "; + }elseif($als_verzollungsadresse) + { + $einfuegen = ""; + }elseif($als_ansprechpartner) + { + $einfuegen = ""; + } + else + $einfuegen = ""; + } + //Formula lieferadresse + // easy table mit arbeitspaketen YUI als template + if($als_lieferadresse) + { + $this->app->YUI->TableSearch('TAB1',"adresse_stammdatenlieferadresselist"); + }elseif($als_verzollungsadresse) + { + $this->app->YUI->TableSearch('TAB1',"adresse_stammdatenverzollungadresselist"); + } + else + $this->app->YUI->TableSearch('TAB1',"adresse_ansprechpartnerlist"); //TODO fehlt + //$this->app->Tpl->Parse('TAB1',"rahmen70.tpl"); + $this->app->Tpl->Set('AKTIV_TAB1',"selected"); + + if($iframe=="true") + $this->app->Tpl->Parse('PAGE',"ansprechpartneruebersicht_popup.tpl"); + else + $this->app->Tpl->Parse('PAGE',"ansprechpartneruebersicht.tpl"); +} + + +function AdresseAnsprechpartner($als_lieferadresse=false) +{ + + $id = $this->app->DB->real_escape_string($this->app->Secure->GetGET('id')); + $lid = $this->app->DB->real_escape_string($this->app->Secure->GetGET('lid')); + + if($this->app->Secure->GetGET('cmd')==='changegr') { + $gruppe = (int)$this->app->Secure->GetPOST('gruppe'); + $wert = $this->app->Secure->GetPOST('wert')?1:0; + if($id && $lid && $gruppe) + { + $check = $this->app->DB->Select("SELECT id FROM ansprechpartner_gruppen WHERE gruppe = '$gruppe' AND ansprechpartner = '$lid' LIMIT 1"); + if($check) + { + $this->app->DB->Update("UPDATE ansprechpartner_gruppen SET aktiv = '$wert' WHERE id = '$check' LIMIT 1"); + }elseif($wert){ + $this->app->DB->Insert("INSERT INTO ansprechpartner_gruppen (gruppe, ansprechpartner, aktiv) VALUES ('$gruppe', '$lid', 1)"); + } + } + echo json_decode(array('status'=>1)); + $this->app->ExitXentral(); + } + + $delete = $this->app->Secure->GetGET("delete"); + $create= $this->app->Secure->GetGET("create"); + $cmd = $this->app->Secure->GetGET('cmd'); + + //$ansprechpartnerspeichern = ""; + $ansprechpartnerspeichern = $this->app->Secure->GetPOST('ansprechpartnerspeichern'); + if($ansprechpartnerspeichern != ""){ + $cmd = "save"; + } + + switch ($cmd) { + case 'get': + + $data = $this->app->DB->SelectRow("SELECT * FROM ansprechpartner WHERE id = '$lid'"); + $data['geburtstag'] = $this->app->String->Convert($data['geburtstag'],"%1-%2-%3","%3.%2.%1"); + echo json_encode($data); + $this->app->ExitXentral(); + break; + case 'save': + $lid = $this->app->Secure->GetPOST('lid'); + $typ = $this->app->Secure->GetPOST('typ'); + $land = $this->app->Secure->GetPOST('land'); + $name = $this->app->Secure->GetPOST('name'); + $titel = $this->app->Secure->GetPOST('titel'); + $bereich = $this->app->Secure->GetPOST('bereich'); + $abteilung = $this->app->Secure->GetPOST('abteilung'); + $unterabteilung = $this->app->Secure->GetPOST('unterabteilung'); + $adresszusatz = $this->app->Secure->GetPOST('adresszusatz'); + $anschreiben = $this->app->Secure->GetPOST('anschreiben'); + $vorname = $this->app->Secure->GetPOST('vorname'); + $geburtstag = $this->app->String->Convert($this->app->Secure->GetPOST('geburtstag'),"%3.%2.%1","%1-%2-%3"); + $geburtstagkalender = $this->app->Secure->GetPOST('geburtstagkalender'); + $geburtstagskarte = $this->app->Secure->GetPOST('geburtstagskarte'); + $marketingsperre = $this->app->Secure->GetPOST('marketingsperre'); + $strasse = $this->app->Secure->GetPOST('strasse'); + $plz = $this->app->Secure->GetPOST('plz'); + $ort = $this->app->Secure->GetPOST('ort'); + $email = $this->app->Secure->GetPOST('email'); + $telefon = $this->app->Secure->GetPOST('telefon'); + $telefax = $this->app->Secure->GetPOST('telefax'); + $mobil = $this->app->Secure->GetPOST('mobil'); + $sonstiges = $this->app->Secure->GetPOST('sonstiges'); + $internebemerkung = $this->app->Secure->GetPOST('interne_bemerkung'); + + $error = ""; + + if(trim($name) == ""){ + $error .= "Bitte Name ausfüllen"."\n"; + } + + if($error == ""){ + if($lid == '0'){ + //Neuen Eintrag anlegen + $this->app->DB->Insert("INSERT INTO ansprechpartner (typ, name, bereich, abteilung, unterabteilung, land, strasse, ort, plz, telefon, telefax, email, sonstiges, adresszusatz, adresse, logdatei, mobil, titel, anschreiben, ansprechpartner_land, vorname, geburtstag, geburtstagkalender, geburtstagskarte, marketingsperre, interne_bemerkung) VALUES ('$typ', '$name', '$bereich','$abteilung','$unterabteilung','$land','$strasse','$ort','$plz','$telefon','$telefax', '$email', '$sonstiges', '$adresszusatz','$id',NOW(),'$mobil','$titel','$anschreiben','$land','$vorname','$geburtstag', '$geburtstagkalender', '$geburtstagskarte', '$marketingsperre', '$internebemerkung')"); + $lid = $this->app->DB->GetInsertID(); + if (!empty($lid)) { + $this->app->erp->RunHook('contact_person_created', 1, $lid); + } + $gruppen = $this->app->DB->real_escape_string($this->app->Secure->GetPOST('gruppen')); + $gruppenarray = explode("|", $gruppen); + + for ($i=0; $i < count($gruppenarray) ; $i++) { + if($gruppenarray[$i] != ''){ + $gruppenid = substr($gruppenarray[$i], 3); + $this->app->DB->Insert("INSERT INTO ansprechpartner_gruppen (ansprechpartner, gruppe, aktiv) VALUES ('$lid', '".$gruppenid."', '1')"); + } + } + if($ansprechpartnerspeichern == ""){ + echo json_encode(array('status'=>1)); + $this->app->ExitXentral(); + } + }else{ + //Alten Eintrag updaten + $this->app->DB->Update("UPDATE ansprechpartner SET typ ='$typ', name = '$name', bereich = '$bereich', abteilung = '$abteilung', unterabteilung = '$unterabteilung', land = '$land', strasse = '$strasse', ort = '$ort', plz = '$plz', telefon = '$telefon', telefax = '$telefax', email = '$email', sonstiges = '$sonstiges', adresszusatz = '$adresszusatz', mobil = '$mobil', titel = '$titel', anschreiben = '$anschreiben', land = '$land', vorname = '$vorname', geburtstag = '$geburtstag', geburtstagkalender = '$geburtstagkalender', geburtstagskarte = '$geburtstagskarte', marketingsperre = '$marketingsperre', interne_bemerkung = '$internebemerkung' WHERE id = '$lid'"); + $this->app->erp->RunHook('contact_person_updated', 1, $lid); + if($ansprechpartnerspeichern == ''){ + echo json_encode(array('status'=>1)); + $this->app->ExitXentral(); + } + } + }else{ + if($ansprechpartnerspeichern == ''){ + echo json_encode(array('status'=>0,'statusText'=>$error)); + $this->app->ExitXentral(); + } + } + + break; + case 'change': + $lid = $this->app->DB->real_escape_string($this->app->Secure->GetPOST('lid')); + $wert = $this->app->DB->real_escape_string($this->app->Secure->GetPOST('wert')); + $gruppe = $this->app->DB->real_escape_string($this->app->Secure->GetPOST('gruppe')); + if($lid != 0){ + $vorhanden = $this->app->DB->Select("SELECT id FROM ansprechpartner_gruppen WHERE ansprechpartner = '$lid' AND gruppe = '$gruppe'"); + if($vorhanden){ + $this->app->DB->Update("UPDATE ansprechpartner_gruppen SET aktiv = $wert WHERE ansprechpartner = '$lid' AND gruppe = '$gruppe'"); + }else{ + $this->app->DB->Insert("INSERT INTO ansprechpartner_gruppen (ansprechpartner, gruppe, aktiv) VALUES ('$lid', '$gruppe', '$wert')"); + } + } + echo json_encode('success'); + $this->app->ExitXentral(); + break; + case 'delete': + $lid = $this->app->DB->real_escape_string($this->app->Secure->GetGET('lid')); + $this->app->erp->RunHook('contact_person_deleted', 1, $lid); + $this->app->DB->Delete("DELETE FROM ansprechpartner WHERE id = '$lid'"); + echo json_encode('success'); + $this->app->ExitXentral(); + break; + default: + break; + } + + + if($cmd=="alslieferadresse") + { + $this->app->Tpl->Set('STARTDISABLEANREDE',""); + $als_lieferadresse=true; + $add_cmd = "&cmd=alslieferadresse"; + } + + $iframe = $this->app->Secure->GetGET("iframe"); + + if($iframe=="true") + $this->app->BuildNavigation=false; + + + if($delete==1) + { + $this->app->erp->RunHook('contact_person_deleted', 1, $lid); + $this->app->DB->Delete("DELETE FROM ansprechpartner WHERE id='$lid' AND adresse='$id' LIMIT 1"); + $this->app->Location->execute("index.php?module=adresse&action=ansprechpartner$add_cmd&id=$id&iframe=$iframe"); + } + $this->AdresseMenu(); + if($iframe != "true") + { + /* + $gruppen = $this->app->DB->SelectArr("SELECT ag.aktiv as agaktiv, gr.* FROM gruppen gr LEFT JOIN ansprechpartner_gruppen ag ON gr.id = ag.gruppe and ag.ansprechpartner = '$lid' WHERE art != 'preisgruppe'"); + if($gruppen) + { + $this->app->Tpl->Add('GRUPPEN',''); + + foreach($gruppen as $gruppe) + { + $this->app->Tpl->Add('GRUPPEN',''); + } + $this->app->Tpl->Add('GRUPPEN','
    '.$gruppe['name'].'
    '); + }*/ + + $this->app->YUI->TableSearch('GRUPPEN','adresse_ansprechpartnergruppen', "show","","",basename(__FILE__), __CLASS__); + $this->app->Tpl->Add('GRUPPEN','
    + + '); + + $this->app->Tpl->Set('ID',$id); + $this->app->Tpl->Set('LID',$lid); + } else { + $this->app->Tpl->Set('GRUPPEAUSBLENDENSTART',""); + } + + $this->app->YUI->DatePicker("geburtstag"); + + + // neues arbeitspaket + /* + $widget = new WidgetAnsprechpartner($this->app,'TAB1'); + $widget->form->SpecialActionAfterExecute("none", + "index.php?module=adresse&action=ansprechpartner&id=$id&iframe=".$iframe.$add_cmd); + if($lid > 0) + { + + + $this->app->Tpl->Set('BUTTON',' + + '); + + $widget->form->SpecialActionAfterExecute("none", + "index.php?module=adresse&action=ansprechpartner&id=$id&iframe=".$iframe.$add_cmd); + $widget->Edit(); + } + else + { + $widget->Create(); + }*/ + + if($iframe=="true") { + if($als_lieferadresse) + $einfuegen = ""; + else + $einfuegen = ""; + } + //Formula lieferadresse + // easy table mit arbeitspaketen YUI als template + /*if($als_lieferadresse) + { + $this->app->Tpl->Add("TAB1","
    Filter auf alle Ansprechpartner zugreifen
    "); + $this->app->YUI->TableSearch('TAB1',"adresse_ansprechpartnerlieferadresselist"); + } + else*/ + $this->app->YUI->TableSearch('TAB1',"adresse_ansprechpartnerlist"); + //$this->app->Tpl->Parse('TAB1',"rahmen70.tpl"); + $this->app->Tpl->Set('AKTIV_TAB1',"selected"); + + $this->app->Tpl->Set('ADRESSID',$id); + + $adresstypen = $this->app->DB->SelectArr("SELECT type, bezeichnung FROM adresse_typ WHERE aktiv = 1 AND geloescht = 0".$this->app->erp->ProjektRechte()); + + $laender = $this->app->erp->GetSelectLaenderliste(); + + if($lid > 0){ + $adresseland = $this->app->DB->Select("SELECT land FROM ansprechpartner WHERE id = '$lid' LIMIT 1"); + }else{ + $adresseland = $this->app->DB->Select("SELECT land FROM adresse WHERE id = '$id' LIMIT 1"); + } + + if($adresseland == ""){ + $this->app->erp->Firmendaten('land'); + } + + + if($adresstypen != ""){ + $lieferadressetyp = ""; + foreach($adresstypen as $key=>$value){ + $lieferadressetyp .= ''; + } + } + + if($laender != ""){ + $lieferadresselaender = ""; + foreach ($laender as $landKey => $land) { + $lieferadresselaender .= ''; + } + } + + if($iframe=="true"){ + $this->app->Tpl->Set("ANSPRECHPARTNERTYP", $lieferadressetyp); + } + + $this->app->Tpl->Add("LANDSELECTED", $adresseland); + $this->app->Tpl->Add("ANSPRECHPARTNERLAENDER", $lieferadresselaender); + + + $this->app->YUI->CkEditor("interne_bemerkung", "basic"); + + + if($iframe=="true") + $this->app->Tpl->Parse('PAGE',"ansprechpartneruebersicht_popup.tpl"); + else + $this->app->Tpl->Parse('PAGE',"ansprechpartneruebersicht.tpl"); +} + +function AdresseAnsprechpartnerEditPopup() +{ + $frame = $this->app->Secure->GetGET("frame"); + $id = $this->app->Secure->GetGET('id'); + + if($frame=="false") + { + // hier nur fenster größe anpassen + $this->app->YUI->IframeDialog(600,320); + } else { + // nach page inhalt des dialogs ausgeben + $widget = new WidgetAnsprechpartner($this->app,'PAGE'); + $adresse = $this->app->DB->Select("SELECT adresse FROM ansprechpartner WHERE id='$id' LIMIT 1"); + $widget->form->SpecialActionAfterExecute("close_refresh", + "index.php?module=adresse&action=ansprechpartner&id=$adresse"); + + $widget->Edit(); + $this->app->BuildNavigation=false; + } +} + + + + +function AdresseLieferadressePopup() +{ + $frame = $this->app->Secure->GetGET("frame"); + $id = $this->app->Secure->GetGET('id'); + $this->AdresseLieferadresse(); + $this->app->BuildNavigation=false; +} + + +function AdresseLieferadresse() +{ + $this->AdresseMenu(); + $id = $this->app->DB->real_escape_string($this->app->Secure->GetGET('id')); + $lid = $this->app->DB->real_escape_string($this->app->Secure->GetGET('lid')); + + $delete = $this->app->Secure->GetGET("delete"); + $create = $this->app->Secure->GetGET("create"); + $module = $this->app->Secure->GetGET("module"); + $action = $this->app->Secure->GetGET("action"); + $iframe = $this->app->Secure->GetGET("iframe"); + + $cmd = $this->app->Secure->GetGET('cmd'); + + $lieferadressespeichern = $this->app->Secure->GetPOST('lieferadressespeichern'); + + if($lieferadressespeichern != ""){ + $cmd = "save"; + } + + switch ($cmd) { + case 'get': + $data = $this->app->DB->SelectRow("SELECT * FROM lieferadressen WHERE id = '$lid'"); + echo json_encode($data); + $this->app->ExitXentral(); + break; + case 'save': + $lid = $this->app->DB->real_escape_string($this->app->Secure->GetPOST('lid')); + $typ = $this->app->DB->real_escape_string($this->app->Secure->GetPOST('typ')); + $name = $this->app->DB->real_escape_string($this->app->Secure->GetPOST('name')); + $abteilung = $this->app->DB->real_escape_string($this->app->Secure->GetPOST('abteilung')); + $unterabteilung = $this->app->DB->real_escape_string($this->app->Secure->GetPOST('unterabteilung')); + $land = $this->app->DB->real_escape_string($this->app->Secure->GetPOST('land')); + $strasse = $this->app->DB->real_escape_string($this->app->Secure->GetPOST('strasse')); + $ort = $this->app->DB->real_escape_string($this->app->Secure->GetPOST('ort')); + $plz = $this->app->DB->real_escape_string($this->app->Secure->GetPOST('plz')); + $telefon = $this->app->DB->real_escape_string($this->app->Secure->GetPOST('telefon')); + $email = $this->app->DB->real_escape_string($this->app->Secure->GetPOST('email')); + $adresszusatz = $this->app->DB->real_escape_string($this->app->Secure->GetPOST('adresszusatz')); + $standardlieferadresse = $this->app->DB->real_escape_string($this->app->Secure->GetPOST('standardlieferadresse')); + $gln = $this->app->DB->real_escape_string($this->app->Secure->GetPOST('gln')); + $ustid = $this->app->DB->real_escape_string($this->app->Secure->GetPOST('ustid')); + $lieferbedingung = $this->app->DB->real_escape_string($this->app->Secure->GetPOST('lieferbedingung')); + $ust_befreit = $this->app->DB->real_escape_string($this->app->Secure->GetPOST('ust_befreit')); + $internebemerkung = $this->app->DB->real_escape_string($this->app->Secure->GetPOST('interne_bemerkung')); + $hinweis = $this->app->DB->real_escape_string($this->app->Secure->GetPOST('hinweis')); + + $error = ""; + + if(trim($name) == ""){ + $error .= "Bitte Name ausfüllen"."\n"; + } + + if($standardlieferadresse == 1){ + $this->app->DB->Update("UPDATE lieferadressen SET standardlieferadresse = 0 WHERE adresse='$id'"); + } + + if($lieferadressespeichern != ''){ + if($error != ''){ + $this->app->Tpl->Add("MESSAGE", "
    $error
    "); + }else{ + if($lid == '0'){ + //Neuen Eintrag anlegen + $this->app->DB->Insert("INSERT INTO lieferadressen (typ,name,abteilung,unterabteilung,land,strasse,ort,plz,adresse,telefon,email,adresszusatz,logdatei,standardlieferadresse,gln,ustid,lieferbedingung,ust_befreit,interne_bemerkung,hinweis) VALUES ('$typ','$name','$abteilung','$unterabteilung','$land','$strasse','$ort','$plz','$id','$telefon','$email','$adresszusatz',NOW(),'$standardlieferadresse','$gln','$ustid','$lieferbedingung','$ust_befreit','$internebemerkung','$hinweis')"); + }else{ + //Alten Eintrag updaten + $this->app->DB->Update("UPDATE lieferadressen SET typ='$typ',name='$name',abteilung='$abteilung',unterabteilung='$unterabteilung',land='$land', strasse='$strasse',ort='$ort',plz='$plz',telefon='$telefon',email='$email',adresszusatz='$adresszusatz',standardlieferadresse='$standardlieferadresse',gln='$gln',ustid='$ustid',lieferbedingung='$lieferbedingung',ust_befreit='$ust_befreit',interne_bemerkung = '$internebemerkung',hinweis='$hinweis' WHERE id = '$lid'"); + } + } + }else{ + if($error == ''){ + if($lid == '0'){ + //Neuen Eintrag anlegen + $this->app->DB->Insert("INSERT INTO lieferadressen (typ,name,abteilung,unterabteilung,land,strasse,ort,plz,adresse,telefon,email,adresszusatz,logdatei,standardlieferadresse,gln,ustid,lieferbedingung,ust_befreit,interne_bemerkung,hinweis) VALUES ('$typ','$name','$abteilung','$unterabteilung','$land','$strasse','$ort','$plz','$id','$telefon','$email','$adresszusatz',NOW(),'$standardlieferadresse','$gln','$ustid','$lieferbedingung','$ust_befreit','$internebemerkung','$hinweis')"); + echo json_encode(array('status'=>1)); + $this->app->ExitXentral(); + } + //Alten Eintrag updaten + $this->app->DB->Update("UPDATE lieferadressen SET typ='$typ',name='$name',abteilung='$abteilung',unterabteilung='$unterabteilung',land='$land', strasse='$strasse',ort='$ort',plz='$plz',telefon='$telefon',email='$email',adresszusatz='$adresszusatz',standardlieferadresse='$standardlieferadresse',gln='$gln',ustid='$ustid',lieferbedingung='$lieferbedingung',ust_befreit='$ust_befreit',interne_bemerkung = '$internebemerkung',hinweis='$hinweis' WHERE id = '$lid'"); + echo json_encode(array('status'=>1)); + $this->app->ExitXentral(); + + } + echo json_encode(array('status'=>0,'statusText'=>$error)); + $this->app->ExitXentral(); + + } + + + break; + case 'delete': + $lid = $this->app->DB->real_escape_string($this->app->Secure->GetGET('lid')); + $this->app->DB->Delete("DELETE FROM lieferadressen WHERE id = '$lid'"); + echo json_encode("success"); + $this->app->ExitXentral(); + break; + default: + break; + } + + + if($iframe=="true"){ + $this->app->BuildNavigation = false; + } + + if($iframe=="true") { + $einfuegen = ""; + } + + $this->app->Tpl->Set('ADRESSID',$id); + + $adresstypen = $this->app->DB->SelectArr("SELECT type, bezeichnung FROM adresse_typ WHERE aktiv = 1 AND geloescht = 0".$this->app->erp->ProjektRechte()); + + $laender = $this->app->erp->GetSelectLaenderliste(); + + if($lid > 0){ + $adresseland = $this->app->DB->Select("SELECT land FROM lieferadressen WHERE id = '$lid' LIMIT 1"); + }else{ + $adresseland = $this->app->DB->Select("SELECT land FROM adresse WHERE id = '$id' LIMIT 1"); + } + + if($adresseland == ""){ + $this->app->erp->Firmendaten('land'); + } + + if($adresstypen != ""){ + $lieferadressetyp = ""; + foreach($adresstypen as $key=>$value){ + $lieferadressetyp .= ''; + } + } + + if($laender != ""){ + $lieferadresselaender = ""; + foreach ($laender as $landKey => $land) { + $lieferadresselaender .= ''; + } + } + + if($iframe=="true"){ + $this->app->Tpl->Set("LIEFERADRESSETYP", $lieferadressetyp); + } + $this->app->Tpl->Add("LANDSELECTED", $adresseland); + $this->app->Tpl->Add("LIEFERADRESSELAENDER", $lieferadresselaender); + + + $this->app->YUI->AutoComplete("lieferbedingung", "lieferbedingungen"); + $this->app->YUI->CkEditor("interne_bemerkung", "basic"); + $this->app->YUI->CkEditor("hinweis", "basic"); + + + $this->app->Tpl->Add("TAB1", + + '
    +
    +
    {|Filter|}
    +
      +
    • + + +
    • +
    +
    +
    '); + + + $this->app->YUI->TableSearch('TAB1',"adresse_lieferadressenlist"); + // $this->app->Tpl->Parse('TAB1',"rahmen70.tpl"); + $this->app->Tpl->Set('AKTIV_TAB1',"selected"); + + if($iframe=="true"){ + $this->app->Tpl->Parse('PAGE', "lieferadressenuebersicht_popup.tpl"); + } + else{ + $this->app->Tpl->Parse('PAGE', "lieferadressenuebersicht.tpl"); + } +} + +function AdresseLieferadressenEditPopup() +{ + $frame = $this->app->Secure->GetGET("frame"); + $id = $this->app->Secure->GetGET('id'); + + if($frame=="false") + { + // hier nur fenster größe anpassen + $this->app->YUI->IframeDialog(600,320); + } else { + // nach page inhalt des dialogs ausgeben + $widget = new WidgetLieferadressen($this->app,'PAGE'); + $adresse = $this->app->DB->Select("SELECT adresse FROM lieferadressen WHERE id='$id' LIMIT 1"); + $widget->form->SpecialActionAfterExecute("close_refresh", "index.php?module=adresse&action=lieferadresse&id=$adresse"); + + $widget->Edit(); + $this->app->BuildNavigation=false; + } +} + +function DruckerSelect($selected='') { + if($selected=='') { + $selected = $this->app->DB->Select("SELECT standarddrucker FROM user WHERE id='".$this->app->User->GetID()."' LIMIT 1"); + } + + $drucker = $this->app->DB->SelectArr("SELECT id, name FROM drucker WHERE firma='".$this->app->User->GetFirma()."' AND aktiv='1'"); + if(empty($drucker)) { + return ''; + } + $out = ''; + foreach($drucker as $dr) { + $mark = ''; + if($dr['id']==$selected) { + $mark='selected'; + } + $out .=""; + } + return $out; +} + +function AdresseBriefDrucken() { + + $id = $this->app->Secure->GetGET('id'); + $type = $this->app->Secure->GetGET('type'); + + if($type === 'kalender') { + $dokument = $this->app->DB->SelectRow( + sprintf( + "SELECT + *, DATE_FORMAT(von, '%%d.%%m.%%Y') as datumvon, DATE_FORMAT(bis, '%%d.%%m.%%Y') as datumbis, + DATE_FORMAT(von, '%%H:%%i') as zeitvon, DATE_FORMAT(bis, '%%H:%%i') as zeitbis + FROM kalender_event + WHERE id = %d", + $id + ) + ); + } + elseif($type === 'wiedervorlage') { + $dokument = $this->app->DB->SelectRow( + sprintf( + "SELECT *, + DATE_FORMAT(datum_angelegt, '%%d.%%m.%%Y') as datum_angelegt, + DATE_FORMAT(datum_erinnerung, '%%d.%%m.%%Y') as datum_erinnerung, + DATE_FORMAT(zeit_angelegt, '%%H:%%i') as zeit_angelegt, + DATE_FORMAT(zeit_erinnerung, '%%H:%%i') as zeit_erinnerung + FROM wiedervorlage + WHERE id = %d", + $id + ) + ); + } + else{ + $dokument = $this->app->DB->SelectRow( + sprintf( + "SELECT *, DATE_FORMAT(datum, '%%d.%%m.%%Y') as datum + FROM dokumente + WHERE id = %d", + $id + ) + ); + } + + if (empty($dokument)) { + echo 'Korrespondenz noch nicht gespeichert.'; + $this->app->ExitXentral(); + } + + $adresse = $this->app->DB->SelectRow( + sprintf( + 'SELECT * + FROM adresse + WHERE + id = %d', + ($type !== 'kalender' && $type !== 'wiedervorlage')?$dokument['adresse_to']:$dokument['adresse'] + ) + ); + + if ($this->app->erp->Firmendaten('modul_mlm')) { + $sponsor = $this->app->DB->SelectRow( + sprintf( + 'SELECT * + FROM adresse + WHERE id = %d' , $adresse['sponsor'] + ) + ); + if ($sponsor) { + $sponsor = $sponsor['kundennummer'] . ' ' . $sponsor['name']; + } + else { + $sponsor = 'Kein Sponsor'; + } + + $table = ''; + $table .= ''; + $table .= 'Vertragsbeginn:'; + $table .= ' ' . $adresse['mlmvertragsbeginn'] . ''; + $table .= 'Sponsor:'; + $table .= ' ' . $sponsor . ''; + $table .= ''; + + $this->app->Tpl->Add('SPONSOR',$table); + } + + + $this->app->Tpl->Add('KUNDENNUMMER',$adresse['kundennummer']); + $this->app->Tpl->Add('ANREDE', ucfirst($adresse['typ'])); + $this->app->Tpl->Add('NAME',$adresse['name']); + $this->app->Tpl->Add('ANSPRECHPARTNER',$dokument['ansprechpartner']); + $this->app->Tpl->Add('TELEFON',$adresse['telefon']); + $this->app->Tpl->Add('TELEFAX',$adresse['telefax']); + $this->app->Tpl->Add('TITEL',$adresse['titel']); + $this->app->Tpl->Add('ANSCHREIBEN',$adresse['anschreiben']); + $this->app->Tpl->Add('ABTEILUNG',$adresse['abteilung']); + $this->app->Tpl->Add('EMAIL',$adresse['email']); + $this->app->Tpl->Add('UNTERABTEILUNG',$adresse['unterabteilung']); + $this->app->Tpl->Add('MOBIL',$adresse['mobil']); + $this->app->Tpl->Add('ADRESSZUSATZ',$adresse['adresszusatz']); + $this->app->Tpl->Add('INTERNETSEITE',$adresse['internetseite']); + $this->app->Tpl->Add('STRASSE',$adresse['strasse']); + + if ($adresse['kundenfreigabe'] == 1) { + $this->app->Tpl->Add('KUNDENFREIGABE','Ja'); + } else { + $this->app->Tpl->Add('KUNDENFREIGABE','Nein'); + } + + $this->app->Tpl->Add('PLZORT',$adresse['plz'] . ' ' . $adresse['ort']); + + if ($adresse['abweichende_rechnungsadresse'] == 1) { + $this->app->Tpl->Add('ABWEICHENDE_RECHNUNGSADRESSE','Ja'); + } else { + $this->app->Tpl->Add('ABWEICHENDE_RECHNUNGSADRESSE','Nein'); + } + + $this->app->Tpl->Add('LAND',$adresse['land']); + if($type !== 'kalender' && $type !== 'wiedervorlage'){ + $this->app->Tpl->Add('DATUMTEXT','Datum:'); + $this->app->Tpl->Add('UHRZEITTEXT','Uhrzeit:'); + $this->app->Tpl->Add('DATUM',$dokument['datum']); + $this->app->Tpl->Add('UHRZEIT',$dokument['uhrzeit']); + $this->app->Tpl->Add('BETREFF',$dokument['betreff']); + $this->app->Tpl->Add('BEARBEITER',$dokument['bearbeiter']); + $this->app->Tpl->Add('TEXT',nl2br($dokument['content'])); + }elseif($type === 'kalender'){ + $this->app->Tpl->Add('DATUMTEXT','von:'); + $this->app->Tpl->Add('UHRZEITTEXT','bis:'); + $this->app->Tpl->Add('DATUM',$dokument['datumvon'].' '.$dokument['zeitvon']); + $this->app->Tpl->Add('UHRZEIT',$dokument['datumbis'].' '.$dokument['zeitbis']); + $this->app->Tpl->Add('BETREFF',$dokument['bezeichnung']); + $this->app->Tpl->Add('BEARBEITER',$this->app->DB->Select("SELECT name FROM adresse WHERE id = '".$dokument['angelegtvon']."' LIMIT 1")); + $this->app->Tpl->Add('TEXT',nl2br($dokument['beschreibung'])); + }elseif($type === 'wiedervorlage') + { + $this->app->Tpl->Add('DATUMTEXT','angelegt:'); + $this->app->Tpl->Add('UHRZEITTEXT','Erinnerung:'); + $this->app->Tpl->Add('DATUM',$dokument['datum_angelegt'].' '.$dokument['zeit_angelegt']); + $this->app->Tpl->Add('UHRZEIT',$dokument['datum_erinnerung'].' '.$dokument['zeit_erinnerung']); + $this->app->Tpl->Add('BETREFF',$dokument['bezeichnung']); + $this->app->Tpl->Add('BEARBEITER',$this->app->DB->Select("SELECT name FROM adresse WHERE id = '".$dokument['bearbeiter']."' LIMIT 1")); + $this->app->Tpl->Add('TEXT',nl2br($dokument['beschreibung'])); + } + + $this->app->Tpl->Output('adresse_brief_druck.tpl'); + + $this->app->ExitXentral(); +} + +function AdresseBriefErstellen() { + + //$this->AdresseMenu(); + + $id = $this->app->Secure->GetGET('id'); + $type = $this->app->Secure->GetGET('type'); + + $adresse = $this->app->DB->SelectRow( + sprintf( + 'SELECT * + FROM adresse + WHERE id = %d' , $id + ) + ); + $this->app->Tpl->Add('EMPFAENGER',$adresse['name']); + //$kundennummer = $this->app->DB->Select("SELECT kundennummer from adresse where id = ".(int)$id).""; + //$this->app->Tpl->Add(BEARBEITER,$kundennummer." ".$this->app->DB->Select("SELECT name from adresse where id = ".(int)$id)); + $this->app->Tpl->Add('ADRESSE',$adresse['kundennummer']." ".$adresse['name']); + $this->app->Tpl->Add('MITARBEITER',$this->app->DB->Select("SELECT mitarbeiternummer from adresse where id = ".$this->app->User->GetAdresse()." limit 1")." ".$this->app->User->GetName()); + $this->app->Tpl->Add('BEARBEITER',$this->app->DB->Select("SELECT mitarbeiternummer from adresse where id = ".$this->app->User->GetAdresse()." limit 1")." ".$this->app->User->GetName()); + $this->app->Tpl->Add('BEARBEITEROHNENUMMER',$this->app->User->GetName()); + //$this->app->BuildNavigation=false; + + $this->app->YUI->DatePicker("datum"); + $this->app->Tpl->Add('DATUM', date('d.m.Y')); + $this->app->Tpl->Add('UHRZEIT', date('H:i')); + $this->app->Tpl->Add('DATUMBIS', date('d.m.Y')); + $this->app->Tpl->Add('UHRZEITBIS', date('H:i')); + $this->app->Tpl->Add('DATUM_ERINNERUNG',date("d.m.Y",strtotime ("+1 day"))); + $this->app->Tpl->Add('UHRZEIT_ERINNERUNG', date('H:i')); + + + if ($type) { + switch ($type) { + case 'wiedervorlage': + $this->app->YUI->DatePicker("datum_erinnerung"); + if($this->app->erp->Firmendaten("briefhtml")=="1") + { + $this->app->YUI->CkEditor("content","internal", array('resize_dir'=>'both'), 'JQUERY2'); + } + for($i=0;$i<=100;$i += 10) + { + $this->app->Tpl->Add("CHANCE",""); + } + + $template = 'adresse_brief_wiedervorlage.tpl'; + break; + break; + case 'kalender': + $this->app->YUI->DatePicker("datum"); + $this->app->YUI->DatePicker("datumbis"); + $this->app->YUI->TimePicker("uhrzeit"); + $this->app->YUI->TimePicker("uhrzeitbis"); + $template = 'adresse_brief_kalender.tpl'; + if($this->app->erp->Firmendaten("briefhtml")=="1") + { + $this->app->YUI->CkEditor("content","internal", array('resize_dir'=>'both'), 'JQUERY2'); + } + break; + break; + case 'brief': + + $this->app->Tpl->Add('SENDER', $this->app->User->GetName()); + $this->app->Tpl->Add('STRASSE',$adresse['strasse']); + $this->app->Tpl->Add('PLZ',$adresse['plz']); + $this->app->Tpl->Add('ORT',$adresse['ort']); + $this->app->Tpl->Add('INTERNEBEZEICHNUNG',$adresse['internebezeichnung']); + + $laender = $this->app->erp->GetSelectLaenderliste(); + $laenderStr = ''; + foreach ($laender as $landKey => $land) { + $laenderStr .= ''; + } + + $this->app->Tpl->Add('LAND',$laenderStr); + + $this->app->Tpl->Set('DRUCKERSELECT', $this->DruckerSelect()); + if($this->app->erp->Firmendaten("briefhtml")=="1") + { + $this->app->YUI->CkEditor("content","internal", array('resize_dir'=>'both'), 'JQUERY2'); + } + + $template = 'adresse_brief_brief.tpl'; + break; + case 'email': + + $this->app->YUI->AutoComplete("email_an","emailname"); + $this->app->YUI->AutoCompleteAdd("email_cc","emailname"); + $this->app->YUI->AutoCompleteAdd("email_bcc","emailname"); + + $this->app->Tpl->Set('EMAIL_SENDER', $this->app->erp->GetSelectEmailMitName()); + if (!empty($adresse['email'])) { + $this->app->Tpl->Add('EMAIL_AN',str_replace('"','"',$adresse['name']) . ' <' . $adresse['email'] . '>'); + } + $anhaenge = ''; + $anhaenge .= 'Datei:'; +// $anhaenge .= 'Datei 2:'; +// $anhaenge .= 'Datei 3:'; + + + $this->app->Tpl->Add('ANHAENGEHERAUFLADEN', $anhaenge); + $anhaenge = 'Keine Anhänge vorhanden'; + $this->app->Tpl->Add('ANHAENGE', $anhaenge); + if($this->app->erp->Firmendaten("briefhtml")=="1") + { + $this->app->YUI->CkEditor("content","internal", array('resize_dir'=>'both'), 'JQUERY2'); + } + // $this->app->Tpl->Parse('PAGE',"adresse_brief_email.tpl"); + $template = 'adresse_brief_email.tpl'; + break; + case 'telefon': + // $this->app->Tpl->Parse('PAGE',"adresse_brief_telefon.tpl"); + if($this->app->erp->Firmendaten("briefhtml")=="1") + { + $this->app->YUI->CkEditor("content","internal", array('resize_dir'=>'both'), 'JQUERY2'); + } + $template = 'adresse_brief_telefon.tpl'; + break; + case 'notiz': + // $this->app->Tpl->Parse('PAGE',"adresse_brief_notiz.tpl"); + if($this->app->erp->Firmendaten("briefhtml")=="1") + { + $this->app->YUI->CkEditor("content","internal", array('resize_dir'=>'both'), 'JQUERY2'); + } + $template = 'adresse_brief_notiz.tpl'; + break; + default: + // $this->app->Tpl->Parse('PAGE',"adresse_brief_email.tpl"); + if($this->app->erp->Firmendaten("briefhtml")=="1") + { + $this->app->YUI->CkEditor("content","internal", array('resize_dir'=>'both'), 'JQUERY2'); + } + $template = 'adresse_brief_email.tpl'; + break; + } + } else { + $this->app->Tpl->Add('EMAIL',$adresse['email']); + // $this->app->Tpl->Parse('PAGE',"adresse_brief_email.tpl"); + if($this->app->erp->Firmendaten("briefhtml")=="1") + { + $this->app->YUI->CkEditor("content","internal", array('resize_dir'=>'both'), 'JQUERY2'); + } + $template = 'adresse_brief_email.tpl'; + } + + $this->app->Tpl->Output($template); + $this->app->ExitXentral(); + + /* + $this->app->BuildNavigation=false; + $this->app->Tpl->Set('INHALT',""); + $this->app->Tpl->Parse('PAGE',"adresse_brief_email.tpl"); + */ + + +} + + +function AdresseBriefCreatePDF($dokumentId, $display=true) { + + $data = $this->app->DB->SelectRow( + sprintf( + 'SELECT * + FROM dokumente + WHERE id = %d', + $dokumentId + ) + ); + + $data['firma'] = $this->app->DB->Select(' + SELECT + MAX(id) + FROM + firma + LIMIT 1 + '); + + $data['firma'] = $this->app->DB->Select(' + SELECT + absender + FROM + firmendaten + WHERE + id = ' . $data['firma'] . ' + '); + + $korrespondenz = new KorrespondenzPDF($this->app,$data['projekt']); + $korrespondenz->SetBetreff($this->app->erp->ReadyForPDF($data['betreff'])); + + $korrespondenz->SetDetail('Datum', $this->app->String->Convert($data['datum'],"%1-%2-%3","%3.%2.%1")); + $korrespondenz->SetDetail('Bearbeiter', $this->app->erp->ReadyForPDF($data['von'])); + + $korrespondenz->setRecipient( + array( + $this->app->erp->ReadyForPDF($data['an']), + $this->app->erp->ReadyForPDF($data['ansprechpartner']), + '', + $this->app->erp->ReadyForPDF($data['adresse']), + $data['plz'], + $this->app->erp->ReadyForPDF($data['ort']), + $data['land'] + ) + ); + + if(strpos($data['betreff'],'{') !== false) { + $data['betreff'] = $this->app->erp->ParseUserVars('adresse', $data['adresse_to'], $data['betreff']); + } + if(strpos($data['content'],'{') !== false) { + $data['content'] = $this->app->erp->ParseUserVars('adresse', $data['adresse_to'], $data['content']); + } + + $korrespondenz->setLetterDetails( + array( + $this->app->erp->ReadyForPDF($data['betreff']), + str_replace('\r\n',"\n\n",$this->app->erp->ReadyForPDF($data['content'])) + ) + ); + $korrespondenz->setAbsender($data['firma']); + + $korrespondenz->Create(); + + if($display) { + $korrespondenz->displayDocument(); + } else { + return $korrespondenz->displayTMP(); + } +} + +function AdresseBriefSaveDocument() { + + $data = array(); + $data['user'] = ''; + $data['datum'] = $this->app->Secure->GetPOST('datum'); + $data['von'] = $this->app->Secure->GetPOST('von'); + $data['firma'] = $this->app->Secure->GetPOST('firma'); + $data['ansprechpartner'] = $this->app->Secure->GetPOST('ansprechpartner'); + $data['an'] = $this->app->Secure->GetPOST('an'); + $data['email_an'] = $this->app->Secure->GetPOST('email_an'); + $data['email_cc'] = $this->app->Secure->GetPOST('email_cc'); + $data['email_bcc'] = $this->app->Secure->GetPOST('email_bcc'); + $data['firma_an'] = $this->app->Secure->GetPOST('firma_an'); + $data['adresse'] = $this->app->Secure->GetPOST('adresse'); + $data['plz'] = $this->app->Secure->GetPOST('plz'); + $data['ort'] = $this->app->Secure->GetPOST('ort'); + $data['internebezeichnung'] = $this->app->Secure->GetPOST('internebezeichnung'); + $data['land'] = $this->app->Secure->GetPOST('land'); + $data['betreff'] = $this->app->Secure->GetPOST('betreff'); + $data['content'] = $this->app->Secure->GetPOST('content'); + $data['signatur'] = $this->app->Secure->GetPOST('signatur'); + $data['send_as'] = $this->app->Secure->GetPOST('send_as'); + $data['email'] = $this->app->Secure->GetPOST('email'); + $data['printer'] = $this->app->Secure->GetPOST('printer'); + $data['fax'] = $this->app->Secure->GetPOST('fax'); + $data['user'] = $this->app->Secure->GetGET('id'); + $data['signatur'] = $this->app->Secure->GetPOST('signatur'); + $data['eintragId'] = $this->app->Secure->GetPOST('eintragId'); + $data['projekt'] = $this->app->Secure->GetPOST('projekt'); + + $data['projekt'] = explode(' ',$data['projekt']); + if($data['projekt'][0] !="") + $data['projekt'] = $this->app->DB->Select("SELECT id FROM projekt WHERE abkuerzung='".$data['projekt'][0]."' AND abkuerzung!='' LIMIT 1"); + + $data['uhrzeit'] = $this->app->Secure->GetPOST('uhrzeit'); + if (!$data['uhrzeit']) { + $data['uhrzeit'] = date('H:i:s'); + } + + $data['bearbeiter'] = $this->app->Secure->GetPOST('bearbeiter'); + + if (!empty($data['signatur'])) { + $data['signatur'] = 1; + } else { + $data['signatur'] = 0; + } + + if (!$data['datum']) { + $data['datum'] = date('d.m.Y'); + } + + $data['typ'] = $this->app->Secure->GetPOST('type'); + if (!$data['typ']) { + $data['typ'] = 'brieffax'; + } + + $adresse = $this->app->User->GetAdresse(); + $datum = $this->app->String->Convert($data['datum'],"%1.%2.%3","%3-%2-%1"); + + if (isset($data['eintragId']) && !empty($data['eintragId'])) { + + $this->app->DB->Insert(' + UPDATE + dokumente + SET + adresse_from = "' . $adresse . '", + adresse_to = "' . $data['user'] . '", + typ = "' . $data['typ'] . '", + von = "' . $data['von'] . '", + firma = "' . $data['firma'] . '", + ansprechpartner = "' . $data['ansprechpartner'] . '", + internebezeichnung = "' . $data['internebezeichnung'] . '", + an = "' . $data['an'] . '", + email_an = "' . $data['email_an'] . '", + email_cc = "' . $data['email_cc'] . '", + email_bcc = "' . $data['email_bcc'] . '", + firma_an = "' . $data['firma_an'] . '", + adresse = "' . $data['adresse'] . '", + plz = "' . $data['plz'] . '", + ort = "' . $data['ort'] . '", + land = "' . $data['land'] . '", + datum = "' . $datum . '", + betreff = "' . $data['betreff'] . '", + content = "' . $data['content'] . '", + signatur = "' . $data['signatur'] . '", + send_as = "' . $data['send_as'] . '", + email = "' . $data['email'] . '", + printer = "' . $data['printer'] . '", + fax = "' . $data['fax'] . '", + created = NOW(), + uhrzeit = "' . $data['uhrzeit'] . '", + projekt = "' . $data['projekt'] . '", + bearbeiter = "' . $data['bearbeiter'] . '" + WHERE + id = ' . $data['eintragId'] . ' + '); + + $returnId = $data['eintragId']; + + } else { + + $returnId = $this->app->erp->DokumentCreate($data,$adresse); + } + + if($returnId && $data['typ'] == 'email') + { + if(isset($_FILES['upload']) && is_array($_FILES['upload'])) + { + foreach($_FILES['upload']['tmp_name'] as $key => $file) + { + if($file != "") + { + $fileid = $this->app->erp->CreateDatei($_FILES['upload']['name'][$key], $_FILES['upload']['name'][$key], "", "", $_FILES['upload']['tmp_name'][$key], $this->app->User->GetName()); + // stichwoerter hinzufuegen + $this->app->erp->AddDateiStichwort($fileid, "anhang", "dokument", $returnId); + } + } + } + $this->app->Tpl->Add('AJAXBRIEF', " + $.ajax({ + url: 'index.php', + data: { + module: 'adresse', + action: 'briefbearbeiten', + typ : 'email', + id: ".$returnId." + }, + beforeSend: function() { + App.loading.open(); + }, + success: function(data) { + + $('.alleAnzeigen').show(); + + $('.adresse_brief_anlegen').css({ + width: $('.adresse_brief_tabelle').width() + }); + + + $('.adresse_brief_tabelle').find('fieldset').hide(); + $('.adresse_brief_tabelle').find('.adresse_brief_tabelle_view').hide(); + + $('.adresse_brief_anlegen') + .html(data) + .show(); + + fnFilterColumn8(0); + App.loading.close(); + } + }); + "); + } + + return $returnId; + +} + + +function AdresseBriefPreview($type = '', $id = '', $json = true) { + + if(!$type)$type = $this->app->Secure->GetGET('type'); + if(!$id)$id = $this->app->Secure->GetGET('id'); + + $query = ''; + if ($type) { + switch ($type) { + case 'dokumente': + $query .= ' + SELECT + id, + DATE_FORMAT(datum, "%d.%m.%Y") as datum, + betreff, + content + FROM + dokumente + WHERE + id = ' . $id . ' + '; + break; + case 'dokumente_send': + $query .= ' + SELECT + id, + DATE_FORMAT(zeit, "%d.%m.%Y") as datum, + betreff, + text as content + FROM + dokumente_send + WHERE + id = ' . $id . ' + '; + break; + case 'wiedervorlage': + $query .= ' + SELECT + id, + DATE_FORMAT(datum_angelegt, "%d.%m.%Y") as datum, + DATE_FORMAT(datum_erinnerung, "%d.%m.%Y") as datum_erinnerung, + DATE_FORMAT(zeit_angelegt,"%H:%i") as zeit_angelegt, + zeit_erinnerung, + bezeichnung as betreff, + beschreibung as content + FROM + wiedervorlage + WHERE + id = ' . $id . ' + '; + break; + case 'kalender': + $query .= ' + SELECT + id, + DATE_FORMAT(von, "%d.%m.%Y") as datum, + DATE_FORMAT(bis, "%d.%m.%Y") as datumbis, + DATE_FORMAT(von, "%H:%i:%s") as uhrzeit, + DATE_FORMAT(bis, "%H:%i:%s") as uhrzeitbis, + allDay, + public, + adresseintern, + bezeichnung as betreff, + beschreibung as content + FROM + kalender_event + WHERE + id = ' . $id . ' + '; + break; + } + + } + + $res = $this->app->DB->SelectRow($query); + if ($res) { +/* + if (isset($res['content'])) { + $res['content'] = '

    '.nl2br($res['content']); + } +*/ + } + if(isset($res['datum']) && !$tickets) + { + if($type=="kalender" || $type=="dokumente_send") + $res['content'] = $res['content']; + else + $res['content'] = 'Angelegt am: '.$res['datum'].(isset($res['zeit_angelegt'])?' '.$res['zeit_angelegt']:'')."
    ".$res['content']; + } + + if($json) + { + echo json_encode($res); + } else { + //$ausg = "

    ".$res['datum'].' '.$res['betreff']."

    ".nl2br($res['content']); + //if($res['content']=="") $res['content']="Kein Inhalt vorhanden"; + + if($this->app->erp->isHTML($res['content'])) + $ausg = $res['content']; + else + $ausg = nl2br($res['content']); + echo $ausg; + } + $this->app->ExitXentral(); + +} + +function AdresseBriefBearbeiten() { + $id = $this->app->Secure->GetGET('id'); + $type = $this->app->Secure->GetGET('type'); + $typ = $this->app->Secure->GetGET('typ'); + + if($typ === 'kalender') + { + $query = ' + SELECT + id, + DATE_FORMAT(von, "%d.%m.%Y") as datum, + DATE_FORMAT(bis, "%d.%m.%Y") as datumbis, + DATE_FORMAT(von, "%H:%i") as uhrzeit, + DATE_FORMAT(bis, "%H:%i") as uhrzeitbis, + allDay, + public, + adresse, + ansprechpartner_id, + angelegtvon, + adresseintern, + bezeichnung, + beschreibung + FROM + kalender_event + WHERE + id = ' . $id . ' + '; + }elseif($typ === 'wiedervorlage') + { + $query = 'SELECT * from wiedervorlage where id = '.(int)$id; + }else{ + + $query = ' + SELECT + d.id, + d.typ, + d.von, + d.firma, + d.an, + d.email_an, + d.email_cc, + d.email_bcc, + d.ansprechpartner, + d.internebezeichnung, + d.adresse, + d.plz, + d.ort, + d.land, + DATE_FORMAT(d.datum, "%d.%m.%Y") as datum, + d.betreff, + d.content, + d.bearbeiter, + DATE_FORMAT(d.uhrzeit,"%H:%i") as uhrzeit, + CONCAT(p.abkuerzung," ",p.name) as projekt + FROM + dokumente d + LEFT JOIN projekt p ON p.id=d.projekt + WHERE + d.id = ' . $id . ' + '; + } + $dokument = $this->app->DB->SelectRow($query); + + if($typ === 'kalender') + { + $this->app->YUI->DateiPopup('DATEIENBUTTON', 'kalender_event', $dokument['id']); + $template = 'adresse_brief_kalender.tpl'; + if($this->app->erp->Firmendaten("briefhtml")=="1") + { + $this->app->YUI->CkEditor("content","internal", null, 'JQUERY2'); + } + $bearbeiternummer = $this->app->DB->Select("SELECT mitarbeiternummer from adresse where id = ".$dokument['angelegtvon']." limit 1"); + $adressdaten = $this->app->DB->SelectRow("SELECT name, kundennummer, lieferantennummer from adresse where id = ".$dokument['adresse']." limit 1"); + + if($dokument['ansprechpartner_id'] != "" && $dokument['ansprechpartner_id'] > 0){ + $ansprechpartnerId = $this->app->DB->Select("SELECT id FROM ansprechpartner WHERE id = '" . $dokument['ansprechpartner_id'] . "' LIMIT 1"); + if($ansprechpartnerId != "" && $ansprechpartnerId > 0){ + $ansprechpartnerName = $this->app->DB->Select("SELECT name FROM ansprechpartner WHERE id = '$ansprechpartnerId' LIMIT 1"); + $ansprechpartner = $ansprechpartnerId . ' ' . $ansprechpartnerName; + $ansprechpartner .= ' (' . $adressdaten['name'] . ', Kdr: ' . $adressdaten['kundennummer'] . ' '; + if($adressdaten['lieferantennummer'] != ''){ + $ansprechpartner .= 'Liefr: ' . $adressdaten['lieferantennummer']; + } + $ansprechpartner .= ')'; + $dokument['ansprechpartner'] = $ansprechpartner; + } + } + + $datum = $dokument['datum']; + $datumbis = $dokument['datumbis']; + $this->app->Tpl->Add('UHRZEIT',$dokument['uhrzeit']); + $this->app->Tpl->Add('UHRZEITBIS',$dokument['uhrzeitbis']); + $this->app->Tpl->Add('DATUM',$datum); + $this->app->Tpl->Add('DATUMBIS',$datumbis); + if($dokument['allDay'])$this->app->Tpl->Set('ALLDAY',' checked="checked" '); + if($dokument['public'])$this->app->Tpl->Set('PUBLIC',' checked="checked" '); + $this->app->Tpl->Add('ADRESSEINTERN',$this->app->DB->Select("SELECT CONCAT(id,' ',name) from adresse where id = ".$dokument['adresseintern']." limit 1")); + $this->app->Tpl->Add('CONTENT',$dokument['beschreibung']); + $this->app->Tpl->Add('BETREFF',$dokument['bezeichnung']); + $this->app->Tpl->Add('BEARBEITER',$bearbeiternummer?$bearbeiternummer.' '.$this->app->DB->Select("SELECT name from adresse where id = ".$dokument['angelegtvon']." limit 1"):''); + $this->app->Tpl->Add('ANSPRECHPARTNER',$dokument['ansprechpartner']); + $check = $this->app->DB->SelectArr("SELECT * FROM layoutvorlagen WHERE kategorie like 'Besuchsbericht' order by name"); + if($check) + { + $this->app->Tpl->Set('LAYOUTBUTTON',''); + } + + } + elseif($typ == 'wiedervorlage') + { + if($this->app->erp->Firmendaten("briefhtml")=="1") + { + $this->app->YUI->CkEditor("content","internal",null, 'JQUERY2'); + } + $this->app->YUI->DateiPopup('DATEIENBUTTON', 'wiedervorlage', $dokument['id']); + $template = 'adresse_brief_wiedervorlage.tpl'; + $mitarbeiternummer = $this->app->DB->Select("SELECT mitarbeiternummer from adresse where id = ".$dokument['adresse_mitarbeiter']." limit 1"); + $bearbeiternummer = $this->app->DB->Select("SELECT mitarbeiternummer from adresse where id = ".$dokument['bearbeiter']." limit 1"); + $kundennummer = $this->app->DB->Select("SELECT kundennummer from adresse where id = ".$dokument['adresse']." limit 1"); + $adressdaten = $this->app->DB->SelectRow("SELECT name, kundennummer, lieferantennummer from adresse where id = ".$dokument['adresse']." limit 1"); + + if($dokument['ansprechpartner_id'] != "" && $dokument['ansprechpartner_id'] > 0){ + $ansprechpartnerId = $this->app->DB->Select("SELECT id FROM ansprechpartner WHERE id = '" . $dokument['ansprechpartner_id'] . "' LIMIT 1"); + if($ansprechpartnerId != "" && $ansprechpartnerId > 0){ + $ansprechpartnerName = $this->app->DB->Select("SELECT name FROM ansprechpartner WHERE id = '$ansprechpartnerId' LIMIT 1"); + $ansprechpartner = $ansprechpartnerId . ' ' . $ansprechpartnerName; + $ansprechpartner .= ' (' . $adressdaten['name'] . ', Kdr: ' . $adressdaten['kundennummer'] . ' '; + if($adressdaten['lieferantennummer'] != ''){ + $ansprechpartner .= 'Liefr: ' . $adressdaten['lieferantennummer']; + } + $ansprechpartner .= ')'; + $dokument['ansprechpartner'] = $ansprechpartner; + } + } + + $dokument['datum_angelegt'] = $this->app->String->Convert($dokument['datum_angelegt'],"%1-%2-%3","%3.%2.%1"); + $dokument['datum_erinnerung'] = $this->app->String->Convert($dokument['datum_erinnerung'],"%1-%2-%3","%3.%2.%1"); + $this->app->Tpl->Add('DATUM',$dokument['datum_angelegt']); + $this->app->Tpl->Add('UHRZEIT',$dokument['zeit_angelegt']); + $this->app->Tpl->Add('BEARBEITER',$bearbeiternummer?$bearbeiternummer.' '.$this->app->DB->Select("SELECT name from adresse where id = ".$dokument['bearbeiter']." limit 1"):''); + $this->app->Tpl->Add('BETREFF',$dokument['bezeichnung']); + $this->app->Tpl->Add('MITARBEITER',$mitarbeiternummer?$mitarbeiternummer.' '.$this->app->DB->Select("SELECT name from adresse where id = ".$dokument['adresse_mitarbeiter']." limit 1"):''); + $this->app->Tpl->Add('ADRESSE',$kundennummer?$kundennummer.' '.$this->app->DB->Select("SELECT name from adresse where id = ".$dokument['adresse']." limit 1"):''); + $this->app->Tpl->Add('CONTENT',$dokument['beschreibung']); + $this->app->Tpl->Add('DATUM_ERINNERUNG',$dokument['datum_erinnerung']); + $this->app->Tpl->Add('UHRZEIT_ERINNERUNG',$dokument['zeit_erinnerung']); + if($dokument['abgeschlossen'])$this->app->Tpl->Add('ABGESCHLOSSEN',' checked="checked" '); + if($dokument['prio'])$this->app->Tpl->Add('PRIO',' checked="checked" '); + + $this->app->Tpl->Set('STAGES',$this->app->DB->Select("SELECT CONCAT(id,' ',kurzbezeichnung,' (',name,')') FROM wiedervorlage_stages WHERE id='".$dokument['stages']."' LIMIT 1")); + $this->app->Tpl->Add('BETRAG',number_format($dokument['betrag'],2,",",".")); + for($i=0;$i<=100;$i += 10) + { + $this->app->Tpl->Add("CHANCE",""); + } + + $this->app->Tpl->Add('PROJEKT',$this->app->DB->Select("SELECT CONCAT(abkuerzung,' ',name) FROM projekt WHERE id='".$dokument['projekt']."' LIMIT 1")); + $this->app->Tpl->Add('ANSPRECHPARTNER',$dokument['ansprechpartner']); + + }else { + switch($dokument['typ']) { + case 'brief': + if($this->app->erp->Firmendaten("briefhtml")=="1") + { + $this->app->YUI->CkEditor("content","belege", null, 'JQUERY2'); + } + $this->app->YUI->DateiPopup('DATEIENBUTTON', 'dokumente', $dokument['id']); + $template = 'adresse_brief_brief.tpl'; + break; + case 'email': + + + $anhaenge = ''; + $anhaenge .= 'Datei:'; +// $anhaenge .= 'Datei 2:'; +// $anhaenge .= 'Datei 3:'; + + $this->app->Tpl->Add('ANHAENGEHERAUFLADEN', $anhaenge); + $anhaenge = ""; + + $anhaengedb = $this->app->DB->SelectArr("SELECT ds.id, ds.datei, d.titel FROM datei_stichwoerter ds INNER JOIN datei d on ds.datei = d.id WHERE ds.parameter = '$id' AND ds.objekt = 'dokument' AND ds.subjekt = 'anhang' and d.geloescht <> 1"); + if($anhaengedb) + { + foreach($anhaengedb as $anhang) + { + $anhaenge .= ''.$anhang['titel'].''; + } + } else { + $anhaenge .= 'Keine Anhänge vorhanden'; + } + + $this->app->Tpl->Add('ANHAENGE', $anhaenge); + + if($this->app->erp->Firmendaten("briefhtml")=="1") + { + $this->app->YUI->CkEditor("content","internal", null, 'JQUERY2'); + } + $this->app->YUI->DateiPopup('DATEIENBUTTON', 'dokumente', $dokument['id']); + $template = 'adresse_brief_email.tpl'; + break; + case 'telefon': + if($this->app->erp->Firmendaten("briefhtml")=="1") + { + $this->app->YUI->CkEditor("content","internal", null, 'JQUERY2'); + } + $this->app->YUI->DateiPopup('DATEIENBUTTON', 'dokumente', $dokument['id']); + $template = 'adresse_brief_telefon.tpl'; + break; + case 'notiz': + if($this->app->erp->Firmendaten("briefhtml")=="1") + { + $this->app->YUI->CkEditor("content","internal", null, 'JQUERY2'); + } + $this->app->YUI->DateiPopup('DATEIENBUTTON', 'dokumente', $dokument['id']); + $template = 'adresse_brief_notiz.tpl'; + break; + default: + if($this->app->erp->Firmendaten("briefhtml")=="1") + { + $this->app->YUI->CkEditor("content","internal", null, 'JQUERY2'); + } + $template = 'adresse_brief_brief.tpl'; + break; + } + $this->app->Tpl->Add('EMAIL_SENDER', $this->app->erp->GetSelectEmailMitName($dokument['von'])); + $this->app->Tpl->Add('EMPFAENGER',$dokument['an']); + $this->app->Tpl->Add('SENDER',$dokument['von']); + $this->app->Tpl->Add('ANSPRECHPARTNER',$dokument['ansprechpartner']); + $this->app->Tpl->Add('DATUM',$dokument['datum']); + $this->app->Tpl->Add('STRASSE',$dokument['adresse']); + $this->app->Tpl->Add('PLZ',$dokument['plz']); + $this->app->Tpl->Add('ORT',$dokument['ort']); + + $this->app->Tpl->Add('BEARBEITER',$dokument['bearbeiter']); + $this->app->Tpl->Add('UHRZEIT',$dokument['uhrzeit']); + + // $this->app->Tpl->Add(LAND,$dokument['land']); + + $laender = $this->app->erp->GetSelectLaenderliste(); + $laenderStr = ''; + foreach ($laender as $landKey => $land) { + $laenderStr .= ''; + } + + $this->app->Tpl->Add('LAND',$laenderStr); + + $this->app->Tpl->Add('BETREFF',$dokument['betreff']); + $this->app->Tpl->Add('INTERNEBEZEICHNUNG',$dokument['internebezeichnung']); + $this->app->Tpl->Add('CONTENT',$dokument['content']); + + $this->app->Tpl->Add('PROJEKT',$dokument['projekt']); + + $this->app->Tpl->Add('EMAIL_AN',$dokument['email_an']); + $this->app->Tpl->Add('EMAIL_CC',$dokument['email_cc']); + $this->app->Tpl->Add('EMAIL_BCC',$dokument['email_bcc']); + } + + + + $this->app->Tpl->Add('EINTRAGID',$dokument['id']); + + $this->app->Tpl->Add('DRUCKERSELECT', $this->DruckerSelect()); + + $this->app->Tpl->Output($template); + + $this->app->ExitXentral(); + +} + +function AdresseKorrBriefPdf() { + + $id = $this->app->Secure->GetGET('id'); + $this->AdresseBriefCreatePDF($id, true); + $this->app->ExitXentral(); +} + +function AdresseKorrBriefDelete() { + + $typ = $this->app->Secure->GetGET('typ'); + $id = $this->app->Secure->GetGET('id'); + if(strtolower($typ) === 'kalender') + { + $this->app->DB->Delete("DELETE FROM kalender_user where event = '$id'"); + $this->app->DB->Delete(' + DELETE FROM + kalender_event + WHERE + id = "' . $id . '" + '); + }elseif(strtolower($typ) === 'wiedervorlage') + { + $this->app->DB->Delete(' + DELETE FROM + wiedervorlage + WHERE + id = ' . $id . ' + '); + + + }else{ + $this->app->DB->Delete(' + DELETE FROM + dokumente + WHERE + id = ' . $id . ' + '); + + + } + + $json['status'] = 0; + $json['statusText'] = 'Email konnte nicht gesendet werden.'; + echo json_encode($json); + $this->app->ExitXentral(); +} + + +function AdresseBriefSaveKalender() +{ + $data = array(); + $data['id'] = $this->app->Secure->GetPOST('eintragId'); + $data['adresse'] = $this->app->Secure->GetGET('id'); + $data['adresseintern'] = $this->app->Secure->GetPOST('adresseintern'); + $data['bezeichnung'] = $this->app->Secure->GetPOST('betreff'); + $data['beschreibung'] = $this->app->Secure->GetPOST('content'); + + $data['projekt'] = $this->app->Secure->GetPOST("projekt"); + $data['projekt'] = explode(' ',$data['projekt']); + $data['projekt'] = $this->app->DB->Select("SELECT id FROM projekt WHERE abkuerzung='".$data['projekt'][0]."' AND abkuerzung!='' LIMIT 1"); + + $data['angelegtvon'] = (int)$this->app->DB->Select("SELECT id from adresse where mitarbeiternummer = '" .(int)$this->app->Secure->GetPOST('angelegtvon')."'"); + + $tmp = trim($data['adresseintern']); + $rest = explode(" ",$tmp); + $data['adresseintern'] = $rest[0]; + + + $data['von'] = $this->app->String->Convert($_POST['datum'],"%1.%2.%3","%3-%2-%1"); + $uhrzeit = $_POST['uhrzeit']?$_POST['uhrzeit']:'0:00'; + if(!$uhrzeit)$uhrzeit = '0:00'; + $data['von'] = $data['von'].' '.$uhrzeit; + $data['bis'] = $this->app->String->Convert($_POST['datumbis'],"%1.%2.%3","%3-%2-%1"); + $uhrzeitbis = $_POST['uhrzeitbis']?$_POST['uhrzeitbis']:'0:00'; + if(!$uhrzeitbis)$uhrzeitbis = '0:00'; + $data['bis'] = $data['bis'].' '.$uhrzeitbis; + + $data['allDay'] = $this->app->Secure->GetPOST("allDay")?1:0; + $data['public'] = $this->app->Secure->GetPOST("public")?1:0; + + $data['ansprechpartner_id'] = $this->app->Secure->GetPOST("ansprechpartner"); + if($data['ansprechpartner_id'] != ""){ + $ansprechpartner = explode(" ", $data['ansprechpartner_id']); + $ansprechpartnerId = $ansprechpartner[0]; + $ansprechpartnerId = $this->app->DB->Select("SELECT id FROM ansprechpartner WHERE id = '$ansprechpartnerId' LIMIT 1"); + if($ansprechpartnerId === '' || $ansprechpartnerId <= 0){ + $ansprechpartnerId = 0; + } + }else{ + $ansprechpartnerId = 0; + } + $data['ansprechpartner_id'] = $ansprechpartnerId; + + + if($data['von'] && $data['bezeichnung']) + { + + $id = 0; + if($data['id']) + { + $id = $this->app->DB->Select("SELECT id from kalender_event where id = ".(int)$data['id']." Limit 1"); + } + if($id) + { + $sql = 'UPDATE kalender_event set '; + $first = true; + foreach($data as $k => $v) + { + if($k != 'id') + { + if(!$first)$sql .= ', '; + $first = false; + $sql .= $k." = '".$v."'"; + + } + + } + $sql .= " where id = ".$id; + + if($this->app->DB->Update($sql)){ + $calendarActionType = 'modified'; + $this->app->erp->RunHook('kalender_event_hook', 2, $id, $calendarActionType); + return $id; + }; + return false; + } else { + + $sql = "INSERT INTO kalender_event ("; + $first = true; + foreach($data as $k => $v) + { + if($k != 'id') + { + if(!$first)$sql .= ', '; + $first = false; + $sql .= $k; + } + } + $sql .= ") values ("; + $first = true; + foreach($data as $k => $v) + { + if($k != 'id') + { + if(!$first)$sql .= ', '; + $first = false; + $sql .= "'".$v."'"; + } + } + $sql .= ")"; + + if($this->app->DB->Insert($sql)){ + $result = $this->app->DB->GetInsertID(); + + $calendarActionType = 'added'; + $this->app->erp->RunHook('kalender_event_hook', 2, $result, $calendarActionType); + + $this->app->DB->Insert("INSERT INTO kalender_user (id,event,userid) VALUES ('','$result','".$this->app->User->GetID()."')"); + return $result; + } + return false; + } + + + + } else { + + } + return false; +} + + +function AdresseBriefSaveWiedervorlage() +{ + $data = array(); + $data['id'] = $this->app->Secure->GetPOST('eintragId'); + $data['adresse'] = $this->app->Secure->GetGET('id'); + $bearbeiterdaten = explode(" ",$this->app->Secure->GetPOST('bearbeiter')); + $data['bearbeiter'] = (int)$this->app->DB->Select("SELECT id from adresse where mitarbeiternummer = '".$bearbeiterdaten[0]."'"); + $mitarbeiterdaten = explode(" ",$this->app->Secure->GetPOST('adresse_mitarbeiter')); + $data['adresse_mitarbeiter'] = (int)$this->app->DB->Select("SELECT id from adresse where mitarbeiternummer = '".$mitarbeiterdaten[0]."'"); + $data['bezeichnung'] = $this->app->Secure->GetPOST('betreff'); + $data['beschreibung'] = $this->app->Secure->GetPOST('content'); + $data['stages'] = $this->app->Secure->GetPOST('stages'); + $data['betrag'] = $this->app->Secure->GetPOST('betrag'); + $data['chance'] = $this->app->Secure->GetPOST('chance'); + + + $data['datum_erinnerung'] = $_POST['datumerinnerung']; + $data['zeit_erinnerung'] = $_POST['uhrzeiterinnerung']?$_POST['uhrzeiterinnerung']:'0:00'; + if(!$data['datum_erinnerung'])$data['datum_erinnerung'] = '0:00'; + $data['module'] = $this->app->Secure->GetGET("module"); + $data['action'] = $this->app->Secure->GetGET("action"); + $data['abgeschlossen'] = (int)$this->app->Secure->GetPOST("abgeschlossen"); + $data['prio'] = (int)$this->app->Secure->GetPOST("prio"); + $data['projekt'] = $this->app->Secure->GetPOST("projekt"); + if (!empty($data['projekt'])) { + $data['projekt'] = explode(' ',$data['projekt']); + $data['projekt'] = (int)$this->app->DB->Select("SELECT id FROM projekt WHERE abkuerzung='".$data['projekt'][0]."' AND abkuerzung!='' LIMIT 1"); + } else { + // Kein Projekt gewählt + $projekt = (int)$this->app->DB->Select("SELECT f.standardprojekt FROM `firma` AS f WHERE f.id='".$this->app->User->GetFirma()."' LIMIT 1"); + $projekt_bevorzugt = (int)$this->app->DB->Select("SELECT u.projekt_bevorzugen FROM `user` AS u WHERE u.id='".$this->app->User->GetID()."' LIMIT 1"); + if($projekt_bevorzugt === 1){ + $projekt = (int)$this->app->DB->Select("SELECT projekt FROM user WHERE id='".$this->app->User->GetID()."' LIMIT 1"); + } + $data['projekt'] = $projekt; + } + + $data['stages'] = explode(' ',$data['stages']); + $data['stages'] = $data['stages'][0]; + $data['betrag'] = str_replace(',','.',$data['betrag']); + + $data['ansprechpartner_id'] = $this->app->Secure->GetPOST("ansprechpartner"); + if($data['ansprechpartner_id'] != ""){ + $ansprechpartner = explode(" ", $data['ansprechpartner_id']); + $ansprechpartnerId = $ansprechpartner[0]; + $ansprechpartnerId = $this->app->DB->Select("SELECT id FROM ansprechpartner WHERE id = '$ansprechpartnerId' LIMIT 1"); + if($ansprechpartnerId === '' || $ansprechpartnerId <= 0){ + $ansprechpartnerId = 0; + } + }else{ + $ansprechpartnerId = 0; + } + $data['ansprechpartner_id'] = $ansprechpartnerId; + + $data['datum_erinnerung'] = $this->app->String->Convert($data['datum_erinnerung'],"%1.%2.%3","%3-%2-%1"); + if($data['datum_erinnerung'] && $data['zeit_erinnerung'] && $data['bezeichnung']) + { + + $id = 0; + if($data['id']) + { + $id = $this->app->DB->Select("SELECT id from wiedervorlage where id = ".(int)$data['id']." Limit 1"); + } + if($id) + { + $sql = 'UPDATE wiedervorlage set '; + $first = true; + foreach($data as $k => $v) + { + if($k != 'id') + { + if(!$first)$sql .= ', '; + $first = false; + $sql .= $k." = '".$v."'"; + + } + + } + $sql .= " where id = ".$id; + + if($this->app->DB->Update($sql))return $id; + return false; + } else { + + $data['datum_angelegt'] = $this->app->Secure->GetPOST('datum'); + $data['zeit_angelegt'] = $this->app->Secure->GetPOST('uhrzeit'); + $data['datum_angelegt'] = $this->app->String->Convert($data['datum_angelegt'],"%1.%2.%3","%3-%2-%1"); + + $sql = "INSERT INTO wiedervorlage ("; + $first = true; + foreach($data as $k => $v) + { + if($k != 'id') + { + if(!$first)$sql .= ', '; + $first = false; + $sql .= $k; + } + } + $sql .= ") values ("; + $first = true; + foreach($data as $k => $v) + { + if($k != 'id') + { + if(!$first)$sql .= ', '; + $first = false; + $sql .= "'".$v."'"; + } + } + $sql .= ")"; + + if($this->app->DB->Insert($sql))return $this->app->DB->GetInsertID(); + return false; + } + + + + } else { + + } + return false; + +} + +function AdresseBrief() { + if($this->app->Secure->GetGET('cmd') == 'layoutoeffnen') + { + $layout = $this->app->Secure->GetGET('layout'); + $id = $this->app->Secure->GetGET('id'); + $query = ' + SELECT + ke.id, + DATE_FORMAT(ke.von, "%d.%m.%Y") as datum, + DATE_FORMAT(ke.bis, "%d.%m.%Y") as datumbis, + DATE_FORMAT(ke.von, "%H:%i") as uhrzeit, + DATE_FORMAT(ke.bis, "%H:%i") as uhrzeitbis, + ke.allDay, + ke.public, + ke.adresse, + ke.angelegtvon, + ke.adresseintern, + ke.bezeichnung, + ke.beschreibung, + a.telefon as telefonmitarbeiter, + a.name as vertriebmitarbeiter, + a.email as emailmitarbeiter, + a2.name as bearbeiter + FROM + kalender_event ke + LEFT JOIN adresse a ON a.id=ke.adresseintern + LEFT JOIN adresse a2 ON a2.id=ke.angelegtvon + WHERE + ke.id = ' . $id . ' + '; + $kalenderevent = $this->app->DB->SelectRow($query); + + $data = array(); + + if($kalenderevent) + { + foreach($kalenderevent as $key => $value) + { + $data[strtoupper($key)] = $value; + } + } + $adressen = $this->app->DB->SelectRow("SELECT * FROM adresse WHERE id = '".$kalenderevent['adresse']."'"); + if($adressen) + { + foreach($adressen as $key => $value) + { + $data['ADRESSE_'.strtoupper($key)] = $value; + } + } + if(class_exists('LayoutvorlagenPDF')) + { + $pdf = new LayoutvorlagenPDF($this->app); + $pdf->SetLanguage('deutsch'); + $layout = $this->app->DB->SelectRow('SELECT * FROM layoutvorlagen WHERE id = ' . $layout); + + $layoutpositionen = $this->app->DB->SelectArr('SELECT * FROM layoutvorlagen_positionen WHERE layoutvorlage = ' . $layout['id']); + if($pdf->GetLayoutvorlage($layout['id'],$data)) { + $pdf->filename = 'Besuchsbericht'.($adressen['kundennummer']?'_'.$adressen['kundennummer']:'').'.pdf'; + $pdf->displayDocument($name); + } + } + $this->app->ExitXentral(); + } + $this->app->YUI->AutoComplete("ansprechpartner","ansprechpartner","","&adresse=$id"); + $this->app->YUI->AutoComplete("projekt","projektname",1); + $this->app->YUI->TagEditor('internebezeichnung', array('width'=>370)); + + $pType = $this->app->Secure->GetPOST('type'); + $do = $this->app->Secure->GetPOST('do'); + + $json = array(); + + $json['status'] = 0; + $json['statusText'] = ''; + + if (isset($pType) && !empty($pType)) { + + $newId = 0; + if($pType !== 'wiedervorlage' && $pType !== 'kalender') + { + $newId = $this->AdresseBriefSaveDocument(); + } else { + if($pType === 'kalender') + { + $newId = $this->AdresseBriefSaveKalender(); + }else{ + $newId = $this->AdresseBriefSaveWiedervorlage(); + } + } + + if ($newId > 0) { + $json['status'] = 1; + $json['statusText'] = 'Das Dokument wurde gespeichert.'; + $json['statusId'] = $newId; + if ($pType === 'notiz') { + $this->app->erp->RunHook('address_note_created', 1, $newId); + } + } + + if($pType !== 'email' || !$this->app->Secure->GetPOST('save')) + { + if (isset($do) && !empty($do)) { + + switch ($do) { + case 'PDF': + + $json['id'] = $newId; + $json['responseType'] = 'PDF'; + $json['statusText'] = 'PDF wurde erstellt.'; + + $this->app->DB->Update(' + UPDATE + dokumente + SET + sent = 1 + WHERE + id ='.$newId.' + '); + + + break; + case 'DRUCKEN': + $drucker = $this->app->Secure->GetPOST('drucker'); + + $this->app->erp->BriefpapierHintergrundDisable($drucker); + + $tmpBrief = $this->AdresseBriefCreatePDF($newId, false); + $this->app->printer->Drucken($drucker, $tmpBrief); + + $this->app->DB->Update(' + UPDATE + dokumente + SET + sent = 1 + WHERE + id ='.$newId.' + '); + + + unlink($tmpBrief); + $json['statusText'] = 'Dokument wird gedruckt.'; + $json['responseType'] = 'TEXT'; + + break; + case 'EMAIL': + + $data = $this->app->DB->SelectRow(' + SELECT + * + FROM + dokumente + WHERE + id = ' . $newId . ' + '); + + // TODO MK korrekte cc und bcc holen + $cc = $this->app->erp->get_emails($data['email_cc']); + $bcc = $this->app->erp->get_emails($data['email_bcc']); + + //TODO MK email_an und to richtig extrahieren + //$email_string = 'Benedikt Sauter '; + $tmp_an = trim($data['email_an']); + list($data['to'], $data['email_an']) = explode(' <', trim($data['email_an'], '> ')); + list($data['von'], $data['email']) = explode(' <', trim($data['von'], '> ')); + + if($data['email_an']=="") { + $data['email_an'] = $tmp_an; + $data['to'] = $tmp_an; + } + + //$this->app->erp->LogFile("BCC $bcc CC $cc"); + + $dateien = array(); + foreach($_POST as $pk => $pv) + { + $pka = explode('_',$pk); + if($pka[0] === 'datei' && isset($pka[1]) && $pka[1] && is_numeric($pka[1])) + { + $dateiname = $this->app->erp->GetDateiName($pka[1]); + if($dateiname) + { + $dateiinhalt = $this->app->erp->GetDatei($pka[1]); + + if($handle = fopen ($this->app->erp->GetTMP().$dateiname, "wb")) + { + fwrite($handle, $dateiinhalt); + fclose($handle); + $dateien[] = $this->app->erp->GetTMP().$dateiname; + } + } + } + } + + if(strpos($data['betreff'],'{') !== false) { + $data['betreff'] = $this->app->erp->ParseUserVars('adresse', $data['adresse_to'], $data['betreff']); + } + if(strpos($data['content'],'{') !== false) { + $data['content'] = $this->app->erp->ParseUserVars('adresse', $data['adresse_to'], $data['content']); + } + + $mailSend = $this->app->erp->MailSend( + $data['email'], + $data['von'], + $data['email_an'], + $data['to'], + $data['betreff'], + $data['content'], + $dateien, + $projekt,true,$cc,$bcc + ); + + if($dateien && is_array($dateien)) + { + foreach($dateien as $datei)unlink($datei); + } + + if($mailSend =='1') { + $json['status'] = 1; + $json['type'] = 'email'; + $json['statusText'] = 'Email wurde gesendet.'; + $this->app->DB->Update(' + UPDATE + dokumente + SET + sent = 1, + send_as = "email" + WHERE + id = ' . $data['id'] . ' + '); + } else { + $json['status'] = 0; + $json['statusText'] = 'Email konnte nicht gesendet werden. ('.$this->app->erp->mail_error.')'; + } + + break; + + default: + break; + } + + } + + echo json_encode($json); + $this->app->ExitXentral(); + } + } + + $id = $this->app->Secure->GetGET('id'); + + $this->AdresseMenu(); + + + $this->app->User->SetParameter('adresse_brief_adresseId', $id); + + $count = 0; + $count += $this->app->DB->Select('SELECT count(id) FROM dokumente WHERE adresse_to = ' . $id); + $count += $this->app->DB->Select('SELECT count(id) FROM dokumente_send WHERE adresse = ' . $id); + $count += $this->app->DB->Select('SELECT count(id) FROM wiedervorlage WHERE adresse = ' . $id); + $count += $this->app->DB->Select('SELECT count(id) FROM kalender_event WHERE adresse = '.$id); + + if ($count > 0) { + $this->app->YUI->TableSearch('TABELLE', 'adresse_brief'); + $this->app->Tpl->Set('TABELLEFLAG', 0); + } else { + $this->app->Tpl->Set('TABELLE', '
    Es sind noch keine Einträge vorhanden.
    '); + $this->app->Tpl->Set('TABELLEFLAG', 1); + } + + if(!$this->app->erp->RechteVorhanden('wiedervorlage','list')) + { + $this->app->Tpl->Set('VORWIEDERVORLAGE',''); + } +/* + if(!$this->app->erp->RechteVorhanden('ticket','offene')) + { + $this->app->Tpl->Set('VORTICKETS',''); + } +*/ + + + $cmd = $this->app->Secure->GetPOST('cmd'); + if($cmd=="crm") + $this->app->Tpl->Parse('CRMTABELLE',"adresse_crm_tabelle.tpl"); + + + $this->app->Tpl->Parse('TAB1',"adresse_brief.tpl"); + $this->app->Tpl->Parse('PAGE',"tabview.tpl"); + $befehl = $this->app->User->GetParameter('adresse_brief_befehl'); + if($befehl) + { + $this->app->User->SetParameter('adresse_brief_befehl',''); + $this->app->Tpl->Add('PAGE',' + + '); + } + + // Wenn GET-Parameter "telefon_notiz_erstellen" gesetzt ist, direkt Anlegen-Dialog öffnen + $telefonNotizErstellen = (int)$this->app->Secure->GetGET('telefon_notiz_erstellen'); + if ($telefonNotizErstellen === 1) { + $this->app->Tpl->Add('PAGE',' + + '); + } +} + + + +function AdresseBriefEditPopup() +{ + $frame = $this->app->Secure->GetGET("frame"); + $id= $this->app->Secure->GetGET('id'); + $sid= $this->app->Secure->GetPOST('sid'); + + if($frame=="false") + { + // hier nur fenster größe anpassen + $this->app->YUI->IframeDialog(800,650,"index.php?module=adresse&action=briefeditpopup&id=$id&sid=$sid"); + } else { + + $adresse = $id; + + $typ = $this->app->DB->Select("SELECT dokument FROM dokumente_send WHERE id='$sid' LIMIT 1"); + //$parameter = $this->app->DB->Select("SELECT parameter FROM dokumente_send WHERE id='$sid' LIMIT 1"); + $parameter = $sid; + + //echo "typ = $typ ".$parameter; + + $this->app->erp->DokumentMask('PAGE',$typ,$parameter,$adresse,'',true); + + $this->app->BuildNavigation=false; + } +} + + +function AdresseBriefDelete() +{ + $sid = $this->app->Secure->GetPOST('sid'); + $id = $this->app->Secure->GetGET('id'); + + $this->app->DB->Update("UPDATE dokumente_send SET geloescht=1 WHERE id='$sid' LIMIT 1"); + + $this->AdresseBrief(); +} + +function AdresseBriefPDF() +{ + $sid = $this->app->Secure->GetGET('sid'); // 30.03.19 von POST zu GET BS + $id = $this->app->Secure->GetGET('id'); + + //$Brief = new Geschaeftsbrief(&$this->app,$sid); + $projekt = $this->app->DB->Select("SELECT projekt FROM dokumente WHERE id='$sid'"); + $Brief = new BriefPDF($this->app,$projekt); + $Brief->GetBrief($sid); + $Brief->displayDocument(); + + $this->AdresseBrief(); +} + + +function AdresseBelege() +{ + $cmd = $this->app->Secure->GetPOST('cmd'); + $id = $this->app->Secure->GetGET('id'); + $von = $this->app->User->GetParameter("adresse_belege_von"); + $bis = $this->app->User->GetParameter("adresse_belege_bis"); + + if($cmd == 'kundensaldodatumsrelevant'){ + $von = $this->app->Secure->GetGET("von"); + $bis = $this->app->Secure->GetGET("bis"); + } + +if (!is_null($von) && !is_null($bis)) +{ + $von = date_format(date_create_from_format('d.m.Y', $von), 'Y-m-d'); + $bis = date_format(date_create_from_format('d.m.Y', $bis), 'Y-m-d'); +} + + $rechnungt = $this->app->DB->Select("SELECT SUM(soll-ist) FROM rechnung WHERE status != 'angelegt' AND zahlungsstatus != 'bezahlt' AND adresse = '$id' AND datum >= '$von' AND datum <= '$bis'"); + //$gutschriftt = $this->app->DB->Select("SELECT SUM(soll-ist) FROM gutschrift WHERE status != 'angelegt' AND (manuell_vorabbezahlt != '0000-00-00' OR manuell_vorabbezahlt IS NOT NULL) AND adresse = '$id' AND datum >= '$von' AND datum <= '$bis'"); + $gutschriftt = $this->app->DB->Select("SELECT SUM(soll-ist) FROM gutschrift WHERE status != 'angelegt' AND (manuell_vorabbezahlt = '0000-00-00' OR manuell_vorabbezahlt IS NULL) AND zahlungsstatus != 'bezahlt' AND rechnungid = 0 AND adresse = '$adresse' AND datum >= '$von' AND datum <= '$bis'"); + $verbindlichkeitt = $this->app->DB->Select("SELECT SUM(betrag-betragbezahlt) FROM verbindlichkeit WHERE status = 'offen' AND adresse = '$id' AND rechnungsdatum >= '$von' AND rechnungsdatum <= '$bis'"); + $kundensaldot = $rechnungt - $gutschriftt - $verbindlichkeitt; + $kundensaldot = round($kundensaldot, 2); + + if($kundensaldot > 0){ + $kundensaldot = "-".number_format($kundensaldot,2,',','.').""; + }else if($kundensaldot == 0){ + $kundensaldot = "0,00"; + }else{ + $kundensaldot = number_format($kundensaldot,2,',','.'); + } + if($cmd === 'kundensaldodatumsrelevant'){ + echo json_encode($kundensaldot); + $this->app->ExitXentral(); + } + $this->AdresseMenu(); + + $kreditlimit = $this->app->DB->Select("SELECT kreditlimit FROM adresse WHERE id='$id' LIMIT 1"); + // $saldo = $this->app->erp->SaldoAdresse($id); + + $kreditlimit_frei = $kreditlimit - $saldo; + + if($kreditlimit <=0) { + $kreditlimit="kein Limit"; + $kreditlimit_frei = "kein Limit"; + } else $kreditlimit = number_format($kreditlimit,2,',','.'); + + $this->app->Tpl->Set('KREDITLIMIT',$kreditlimit); + $this->app->Tpl->Set('KREDITLIMITFREI',$kreditlimit_frei); + + + //$this->app->Tpl->Set('UMSATZ',number_format($this->app->erp->UmsatzAdresseAuftragJahr($id),2,',','.')); + $this->app->Tpl->Set('UMSATZ',number_format($this->app->erp->UmsatzAdresseRechnungJahr($id),2,',','.')); + + /* $saldo = round($saldo,2); + + if($saldo > 0) + $saldo = "-".number_format($saldo,2,',','.').""; + else if ($saldo==0) $saldo="0,00"; + else $saldo = number_format($saldo,2,',','.'); +*/ +// $this->app->Tpl->Set('SALDO',$saldo); + + + $kundensaldo = $this->app->erp->KundenSaldo($id); + + if($kundensaldo > 0){ + $kundensaldo = "-".number_format($kundensaldo,2,',','.').""; + }else if($kundensaldo == 0){ + $kundensaldo = "0,00"; + }else{ + $kundensaldo = number_format($kundensaldo,2,',','.'); + } + + $this->app->Tpl->Set('KUNDENSALDO', $kundensaldo); + $this->app->Tpl->Set('KUNDENSALDODATUMSRELEVANT', $kundensaldot); + + if($this->app->erp->IsAdresseSubjekt($id,"Lieferant")){ + $this->app->Tpl->Set('MITTEBESTELLUNG', + + '
  • + + +
  • +
  • + + +
  • '); + + + + } + + $this->app->Tpl->Set('ID',$id); + + $this->app->YUI->DatePicker("von"); + $this->app->YUI->DatePicker("bis"); + + $this->app->YUI->AutoSaveUserParameter("von","adresse_belege_von"); + $this->app->YUI->AutoSaveUserParameter("bis","adresse_belege_bis"); + + $this->app->YUI->TableSearch('TAB1',"adressebelege"); + //$this->app->YUI->TableSearch('TAB2',"adresse_auftrag"); + //$this->app->YUI->TableSearch('TAB3',"adresse_rechnung"); + //$this->app->YUI->TableSearch('TAB4',"adresse_gutschrift"); + //$this->app->YUI->TableSearch('TAB5',"adresse_lieferschein"); + + $this->app->Tpl->Parse('PAGE',"adresse_belege.tpl"); +} + + + +function AdresseEmail() +{ + $this->AdresseMenu(); + + + // NEU füllen + $widget = new WidgetEmail($this->app,'TAB2'); + $widget->Create(); + + // UEBERSICHT füllen + $this->app->Tpl->Set('HEADING',"Adresse"); + $this->app->Tpl->Set('SUBHEADING',"Email schreiben"); + $adresse = $this->app->User->GetAdresse(); + + //Offene Aufgaben + $table = new EasyTable($this->app); + $table->Query("SELECT betreff, id FROM email"); + $table->DisplayNew('INHALT', "Bearbeiten"); + $this->app->Tpl->Parse('TAB1',"rahmen.tpl"); + + // PARSE + $this->app->Tpl->Set('AKTIV_TAB1',"selected"); + + $this->app->Tpl->Parse('PAGE',"emailuebersicht.tpl"); + +} + + + +function AdresseEmailEditPopup() +{ + $frame = $this->app->Secure->GetGET("frame"); + if($frame=="false") + { + // hier nur fenster größe anpassen + $this->app->YUI->IframeDialog(510,610); + } else { + // nach page inhalt des dialogs ausgeben + $widget = new WidgetEmail($this->app,'PAGE'); + $widget->Edit(); + $this->app->BuildNavigation=false; + } +} + + + + +function AdresseSuchmaske() +{ + $typ=$this->app->Secure->GetGET("typ"); + + $this->app->Tpl->Set('HEADING',"Suchmaske für Adressen"); + $table = new EasyTable($this->app); + switch($typ) { + case "auftragrechnung": + $table->Query("SELECT typ,name, ort, plz, strasse, abteilung, unterabteilung, ustid, email, adresszusatz, id as kundeadressid, id FROM adresse WHERE geloescht=0 + order by name"); + break; + case "auftraglieferschein": + $table->Query("SELECT typ as liefertyp, name as liefername, ort as lieferort, plz as lieferplz, strasse as lieferstrasse, abteilung as lieferabteilung, unterabteilung + as lieferunterabteilung, adresszusatz as lieferadresszusatz, id as lieferadressid FROM adresse WHERE geloescht=0 order by name"); + break; + default: + $table->Query("SELECT typ,name, ort, plz, strasse, abteilung, unterabteilung, ustid, email, adresszusatz, id as kundeadressid, id FROM adresse WHERE geloescht=0 order by name"); + } + + $table->DisplayWithDelivery('PAGE'); + + $this->app->BuildNavigation=false; +} + + + +function AdresseKundevorlage() +{ + $this->AdresseMenu(); + $id = $this->app->Secure->GetGET('id'); + // prufe ob es schon einen eintrag gibt + $check = $this->app->DB->Select("SELECT id FROM kundevorlage WHERE adresse='$id' LIMIT 1"); + if( !($check > 0 && is_numeric($check))) + { + $this->app->DB->Insert("INSERT INTO kundevorlage (id,adresse) VALUES ('','$id')"); + } + + $check = $this->app->DB->Select("SELECT id FROM kundevorlage WHERE adresse='$id' LIMIT 1"); + $this->app->Secure->GET['id']=$check; + $this->app->Tpl->Set('AKTIV_TAB1',"selected"); + $widget = new WidgetKundevorlage($this->app,'PAGE'); + $widget->Edit(); + $this->app->Secure->GET['id']=$id; +} + +function AdresseAddPosition() +{ + $sid = $this->app->Secure->GetPOST('sid'); + $id = $this->app->Secure->GetGET('id'); + $menge = $this->app->Secure->GetGET("menge"); + $datum = $this->app->Secure->GetGET("datum"); + $datum = $this->app->String->Convert($datum,"%1.%2.%3","%3-%2-%1"); + $tmpid = $this->app->erp->AddAdressePosition($id, $sid,$menge,$datum); + + $art = $this->app->Secure->GetGET("art"); + + if(!$this->app->erp->CheckDateValidate($datum)) $datum=date('Y-m-d'); + + if($art==='abo'){ + $this->app->DB->Update("UPDATE abrechnungsartikel SET wiederholend=1,startdatum='$datum',zahlzyklus=1 WHERE id='$tmpid' LIMIT 1"); + } + else if ($art==='einmalig'){ + $this->app->DB->Update("UPDATE abrechnungsartikel SET wiederholend=0,preisart='einmalig' WHERE id='$tmpid' LIMIT 1"); + } + + $this->app->DB->Update("UPDATE abrechnungsartikel SET angelegtvon='".$this->app->User->GetID()."',angelegtam=NOW() WHERE id='$tmpid' LIMIT 1"); + + $this->app->Location->execute("index.php?module=adresse&action=artikel&id=$id"); +} + +function AdresseLieferantvorlage() +{ + + //zahlungsweise zahlungszieltage zahlungszieltageskonto zahlungszielskonto versandart + //zahlungsweiselieferant zahlungszieltagelieferant zahlungszieltageskontolieferant zahlungszielskontolieferant versandartlieferant + $arr = $this->app->DB->SelectArr("SELECT id,kundennummerlieferant FROM adresse WHERE lieferantennummer >0"); + + foreach($arr as $key=>$value) + { + if($value['kundennummerlieferant']=="") + { + $id = $value['id']; + $kundennummer = $this->app->DB->Select("SELECT kundennummer FROM lieferantvorlage WHERE adresse='$id' LIMIT 1"); + $zahlungsweiselieferant = $this->app->DB->Select("SELECT zahlungsweise FROM lieferantvorlage WHERE adresse='$id' LIMIT 1"); + $zahlungszieltagelieferant = $this->app->DB->Select("SELECT zahlungszieltage FROM lieferantvorlage WHERE adresse='$id' LIMIT 1"); + $zahlungszieltageskontolieferant = $this->app->DB->Select("SELECT zahlungszielskonto FROM lieferantvorlage WHERE adresse='$id' LIMIT 1"); + $versandartlieferant = $this->app->DB->Select("SELECT versandart FROM lieferantvorlage WHERE adresse='$id' LIMIT 1"); + + if($kundennummer !="") + { + echo "UPDATE adresse SET kundennummerlieferant='$kundennummer',zahlungsweiselieferant='$zahlungsweiselieferant', + zahlungszieltagelieferant='$zahlungszieltagelieferant',zahlungszieltageskontolieferant='$zahlungszieltageskontolieferant', + versandartlieferant='$versandartlieferant' WHERE id='$id';"; + } + } + + } + + + $this->AdresseMenu(); + $id = $this->app->Secure->GetGET('id'); + // prufe ob es schon einen eintrag gibt + $check = $this->app->DB->Select("SELECT id FROM lieferantvorlage WHERE adresse='$id' LIMIT 1"); + if( !($check > 0 && is_numeric($check))) + { + $this->app->DB->Insert("INSERT INTO lieferantvorlage (id,adresse) VALUES ('','$id')"); + } + + $check = $this->app->DB->Select("SELECT id FROM lieferantvorlage WHERE adresse='$id' LIMIT 1"); + $this->app->Secure->GET['id']=$check; + $this->app->Tpl->Set('AKTIV_TAB1',"selected"); + $widget = new WidgetLieferantvorlage($this->app,'PAGE'); + $widget->Edit(); + $this->app->Secure->GET['id']=$id; +} + + /** + * @param int $addressId + * + * @return float + */ +public function getAboMonthSum($addressId) { + if(empty($addressId)) { + return 0.00; + } + $sum = (float)$this->app->DB->Select( + sprintf( + "SELECT SUM( + abo.menge * abo.preis * (1 - rabatt / 100) + * + IF( + abo.preisart = 'jahr' OR abo.preisart = '360tage', + IF(abo.zahlzyklus <= 1, 1/12,1 / (abo.zahlzyklus * 12)), + IF( + abo.preisart = 'wochen', + IF(abo.zahlzyklus <= 1, 7 / 30, 1 / (abo.zahlzyklus * 30 / 7)) , + IF(abo.preisart = 'einmalig', + 0, + IF(abo.preisart = 'monat' OR abo.preisart = '30tage', + 1, + IF(abo.zahlzyklus <= 1, 1, 1/ (abo.zahlzyklus)) + ) + ) + ) + ) + ) + FROM abrechnungsartikel AS abo + WHERE abo.adresse = %d + AND (abo.startdatum <= CURDATE() OR IFNULL(abo.startdatum,'0000-00-00') = '0000-00-00') + AND (abo.enddatum >= CURDATE() OR IFNULL(abo.enddatum,'0000-00-00') = '0000-00-00')", + $addressId + ) + ); + + return $sum; +} + + +function AdresseArtikelPosition($withmenu = true) +{ + if($withmenu) { + $this->AdresseMenu(); + } + $id = $this->app->Secure->GetGET('id'); + /* neu anlegen formular */ + $artikelart = $this->app->Secure->GetPOST("artikelart"); + $bezeichnung = $this->app->Secure->GetPOST("bezeichnung"); + $beschreibung = $this->app->Secure->GetPOST("beschreibung"); + $vpe = $this->app->Secure->GetPOST("vpe"); + $umsatzsteuerklasse = $this->app->Secure->GetPOST("umsatzsteuerklasse"); + $waehrung = $this->app->Secure->GetPOST("waehrung"); + $projekt= $this->app->Secure->GetPOST("projekt"); + $preis = $this->app->Secure->GetPOST("preis"); + $preis = str_replace(',','.',$preis); + $menge = $this->app->Secure->GetPOST("menge"); + $menge = str_replace(',','.',$menge); + $art = $this->app->Secure->GetPOST("art"); + $lieferdatum = $this->app->Secure->GetPOST("lieferdatum"); + $zahlzyklus = $this->app->Secure->GetPOST("zahlzyklus"); + $wiederholend= $this->app->Secure->GetPOST("wiederholend"); + $startdatum= $this->app->Secure->GetPOST("startdatum"); + + if($lieferdatum=="") $lieferdatum=date("d.m.Y"); + + $cmd= $this->app->Secure->GetGET('cmd'); + + switch($cmd) + { + + case "getArtikelData": + $id= $this->app->Secure->GetPOST("artikel"); + $adresse = $this->app->Secure->GetPOST("adresse"); + $artikel = $this->app->DB->SelectArr("SELECT * FROM artikel WHERE nummer='$id' AND nummer!='' LIMIT 1"); + $artikel[0]['nettopreis'] = $this->app->erp->GetVerkaufspreis($artikel[0]['id'],1,$adresse); + echo json_encode($artikel[0]); + $this->app->ExitXentral(); + break; + + case "getAboartikel": + $id= $this->app->Secure->GetPOST('id'); + $adresse = $this->app->Secure->GetPOST("adresse"); + $artikel = $this->app->DB->SelectArr("SELECT aba.*, a.nummer FROM abrechnungsartikel aba inner JOIN artikel a ON (a.id = aba.artikel) WHERE aba.id='$id' AND aba.adresse='$adresse' LIMIT 1"); + $AboGruppen_tmp = $this->app->DB->SelectArr("SELECT id,beschreibung FROM abrechnungsartikel_gruppe where (adresse = '$adresse' OR adresse = 0) ORDER BY sort"); + if(is_array($AboGruppen_tmp)) { + $AboGruppen = ''; + }else{ + $AboGruppen = ''; + } + foreach($AboGruppen_tmp as $value){ + if($value['id'] == $artikel[0]['gruppe']){ + $selected = " selected=\"selected\""; + }else{ + $selected=''; + } + $AboGruppen .= ''; + } + + if(is_array($artikel[0])) { + $artikel[0]['startdatum'] = $this->app->String->Convert($artikel[0]['startdatum'], "%3-%2-%1", "%1.%2.%3"); + $artikel[0]['lieferdatum'] = $this->app->String->Convert($artikel[0]['lieferdatum'], "%3-%2-%1", "%1.%2.%3"); + $artikel[0]['abgerechnetbis'] = $this->app->String->Convert($artikel[0]['abgerechnetbis'], "%3-%2-%1", "%1.%2.%3"); + $artikel[0]['abgrechnetam'] = $this->app->String->Convert($artikel[0]['abgrechnetam'], "%3-%2-%1", "%1.%2.%3"); + $artikel[0]['enddatum'] = $this->app->String->Convert($artikel[0]['enddatum'], "%3-%2-%1", "%1.%2.%3"); + $artikel[0]['gruppen'] = $AboGruppen; + echo json_encode($artikel[0]); + }else{ + $basis['startdatum'] = date("d.m.Y"); + $basis['lieferdatum'] = "00.00.0000"; + $basis['abgerechnetbis'] = "00.00.0000"; + $basis['abgrechnetam'] = "00.00.0000"; + $basis['enddatum'] = "00.00.0000"; + $basis['preisart'] = "monat"; + $basis['preis'] = '0.00'; + $basis['menge'] = '0.00'; + $basis['status'] = "1"; + $basis['dokument'] = "rechnung"; + $basis['gruppen'] = $AboGruppen; + echo json_encode($basis); + } + $this->app->ExitXentral(); + break; + + + case "moveAboArtikel": + $id= $this->app->Secure->GetPOST('id'); + $direction = $this->app->Secure->GetPOST("direction"); + // wir schauen erstmal ob der Eintrag in einer Gruppe ist, und holen dann alle Artikel dieser gruppe + $artikel_list = $this->app->DB->SelectArr("SELECT id FROM abrechnungsartikel where gruppe=(Select gruppe from abrechnungsartikel where id='$id') order by sort asc"); + $counter=0; + foreach ($artikel_list as $value){ + if($value['id'] == $id){ + $moveItem = $counter; + }else{ + $counter++; + } + $artikel[] = $value['id']; + } + + if($direction === 'down'){ + $neuArtikelSortierung = $this->down($artikel,$moveItem); + } else{ + $neuArtikelSortierung = $this->up($artikel,$moveItem); + } + + foreach ($neuArtikelSortierung as $key => $value){ + //$neuePos=0; + $neuePos = $key+1; + $update = $this->app->DB->Update("UPDATE abrechnungsartikel set sort='$neuePos' where id='$value'"); + } + echo json_encode(array( + 'status' => 1 + )); + $this->app->ExitXentral(); + break; + case "saveAboartikel": + $id= $this->app->Secure->GetPOST('id'); + $adresse = $this->app->Secure->GetPOST("adresse"); + $artikel = $this->app->Secure->GetPOST("artikel"); + $artikelid = $this->app->Secure->GetPOST("artikelid"); + $artikelueberschreiben = $this->app->Secure->GetPOST("artikelueberschreiben"); + $artikelneuanlage = $this->app->Secure->GetPOST("artikelneuanlage"); + $preisart= $this->app->Secure->GetPOST("preisart"); + $rabatt= $this->app->Secure->GetPOST("rabatt"); + $dokument= $this->app->Secure->GetPOST("dokument"); + $gruppe= $this->app->Secure->GetPOST("gruppe"); + $sort= $this->app->Secure->GetPOST("sort"); + $startdatum= $this->app->String->Convert($this->app->Secure->GetPOST("startdatum"),"%1.%2.%3","%3-%2-%1"); + $enddatum= $this->app->String->Convert($this->app->Secure->GetPOST("enddatum"),"%1.%2.%3","%3-%2-%1"); + $abgerechnetbis= $this->app->String->Convert($this->app->Secure->GetPOST("abgerechnetbis"),"%1.%2.%3","%3-%2-%1"); + $abgrechnetam= $this->app->String->Convert($this->app->Secure->GetPOST("abgrechnetam"),"%1.%2.%3","%3-%2-%1"); + $bemerkung= $this->app->Secure->GetPOST("bemerkung"); + $experte= $this->app->Secure->GetPOST("experte"); + $bezeichnung= $this->app->Secure->GetPOST("bezeichnung"); + $beschreibungersetzten= $this->app->Secure->GetPOST("beschreibungersetzten"); + + $beschreibung= $this->app->Secure->GetPOST("beschreibung"); + + if(!$this->app->erp->CheckDateValidate($startdatum)) $startdatum=date('Y-m-d'); + + // prüfen ob ein neuer Artikel gesetzt ist + if($artikelneuanlage == '1'){ + $tmp_id = explode(" ",$artikel); + $tmp_id = $tmp_id[0]; + + $artikeltmp = $this->app->DB->SelectArr("SELECT id,name_de,anabregs_text FROM artikel WHERE nummer='$tmp_id' LIMIT 1"); + $artikeltmp[0]['waehrung'] = $this->app->DB->Select("SELECT waehrung FROM adresse WHERE id = '".$adresse."'"); + + if($artikeltmp[0]['waehrung'] == ''){ + $waehrung = "EUR"; + } + else { + $waehrung=$artikeltmp[0]['waehrung']; + } + + $anzahlGruppe = $this->app->DB->Select("SELECT count(gruppe) FROM abrechnungsartikel WHERE gruppe='$gruppe' AND adresse='$adresse'"); + + if($sort == ''){$sort=$anzahlGruppe +1;} + + $this->app->DB->Insert("INSERT INTO abrechnungsartikel ( + id,artikel,bezeichnung,beschreibung,menge,preis, preisart,rabatt, dokument, sort,lieferdatum, steuerklasse, status,projekt,wiederholend,zahlzyklus,adresse,startdatum,enddatum,gruppe,experte,waehrung,abgerechnetbis, abgrechnetam,bemerkung, beschreibungersetzten) + VALUES ( + '', + '{$artikeltmp[0]['id']}', + '$bezeichnung', + '$beschreibung', + '$menge', + '$preis', + '$preisart', + '$rabatt', + '$dokument', + '$sort', + '$lieferdatum', + '$umsatzsteuerklasse', + 'angelegt', + '$projekt', + '$wiederholend', + '$zahlzyklus', + '$adresse', + '$startdatum', + '$enddatum', + '$gruppe', + '$experte', + '$waehrung', + '$abgerechnetbis', + '$abgrechnetam', + '$bemerkung', + '$beschreibungersetzten' + )"); + }else{ + $this->app->DB->Update("UPDATE abrechnungsartikel SET + artikel='$artikelid', + bezeichnung='$bezeichnung', + beschreibung = '$beschreibung', + menge = '$menge', + preis = '$preis', + preisart = '$preisart', + rabatt = '$rabatt', + dokument = '$dokument', + gruppe = '$gruppe', + sort = '$sort', + startdatum = '$startdatum', + zahlzyklus = '$zahlzyklus', + enddatum = '$enddatum', + abgerechnetbis = '$abgerechnetbis', + abgrechnetam = '$abgrechnetam', + bemerkung = '$bemerkung', + experte = '$experte', + beschreibungersetzten = '$beschreibungersetzten' + + WHERE id='$id' LIMIT 1"); + } + echo json_encode(array( + 'status' => 1 + )); + $this->app->ExitXentral(); + break; + + + case 'savegruppe': + $sid= $this->app->Secure->GetPOST('id'); + $ansprechpartner= $this->app->Secure->GetPOST('ansprechpartner'); + $beschreibung= $this->app->Secure->GetPOST('beschreibung'); + $beschreibung2= $this->app->Secure->GetPOST('beschreibung2'); + $rabatt = $this->app->Secure->GetPOST('rabatt'); + + if($rabatt != ""){ + $rabatt = str_replace(',','.',$rabatt); + } + + $rechnung= $this->app->Secure->GetPOST('rechnung'); + //if($rechnung!="1") $rechnung=0; + + $gruppensumme= $this->app->Secure->GetPOST('gruppensumme'); + if($gruppensumme!='1') { + $gruppensumme=0; + } + + $rechnungadresse= $this->app->Secure->GetPOST('rechnungadresse'); + $rechnungadresse = explode(' ',$rechnungadresse); + $rechnungadresse = $rechnungadresse[0]; + $rechnungadresse = $this->app->DB->Select("SELECT id FROM adresse WHERE kundennummer='$rechnungadresse' AND kundennummer!='' LIMIT 1"); + + if($rechnungadresse <=0) $rechnungadresse = 0; + + $sort= $this->app->Secure->GetPOST('sort'); + + $projekt= $this->app->Secure->GetPOST('projekt'); + $projekt = explode(' ',$projekt); + $projekt = $projekt[0]; + $projekt = $this->app->DB->Select("SELECT id FROM projekt WHERE abkuerzung='$projekt' AND abkuerzung!='' LIMIT 1"); + + $sammelrechnung = trim($this->app->Secure->GetPOST('sammelrechnung')); + if($sammelrechnung != ''){ + $sammelrechnung = explode(' ', $sammelrechnung); + $sammelrechnung = $sammelrechnung[0]; + $sammelrechnung = $this->app->DB->Select("SELECT id FROM adresse_abosammelrechnungen WHERE id = '$sammelrechnung' LIMIT 1"); + }else{ + $sammelrechnung = 0; + } + + + if($sid > 0) + { + $this->app->DB->Update("UPDATE abrechnungsartikel_gruppe SET beschreibung='$beschreibung',beschreibung2='$beschreibung2',rabatt = '$rabatt',ansprechpartner='$ansprechpartner',extrarechnung='$rechnung',projekt='$projekt',sort='$sort',gruppensumme='$gruppensumme',rechnungadresse='$rechnungadresse',sammelrechnung='$sammelrechnung' WHERE id='$sid' LIMIT 1"); + } else { + $this->app->DB->Insert("INSERT INTO abrechnungsartikel_gruppe (id,beschreibung,beschreibung2,rabatt,ansprechpartner,extrarechnung,projekt,adresse,sort,gruppensumme,rechnungadresse,sammelrechnung) + VALUES ('','$beschreibung','$beschreibung2','$rabatt','$ansprechpartner','$rechnung','$projekt','$id','$sort','$gruppensumme','$rechnungadresse','$sammelrechnung') "); + } + echo json_encode(array( + 'status' => 1 + )); + $this->app->ExitXentral(); + break; + + case 'getgruppe': + $sid= $this->app->Secure->GetPOST('id'); + $tmp = $this->app->DB->SelectRow("SELECT * FROM abrechnungsartikel_gruppe WHERE id='$sid' LIMIT 1"); + $tmp['status']=1; + if($tmp['projekt'] > 0){ + $tmp['projekt'] = $this->app->DB->Select("SELECT CONCAT(abkuerzung,' ',name) FROM projekt WHERE id='" . $tmp['projekt'] . "' LIMIT 1"); + } + else{ + $tmp['projekt'] = ''; + } + + if($tmp['rechnungadresse'] > 0){ + $tmp['rechnungadresse'] = $this->app->DB->Select("SELECT CONCAT(kundennummer,' ',name,if(ort!='',CONCAT(' (',ort,')'),'')) FROM adresse WHERE id='" . $tmp['rechnungadresse'] . "' LIMIT 1"); + } + else{ + $tmp['rechnungadresse'] = ''; + } + + if($tmp['sammelrechnung'] > 0){ + $tmp['sammelrechnung'] = $this->app->DB->Select("SELECT CONCAT(id, ' ', bezeichnung) FROM adresse_abosammelrechnungen WHERE id = '" . $tmp['sammelrechnung'] . "' LIMIT 1"); + } + else{ + $tmp['sammelrechnung'] = ''; + } + + $tmp['rabatt'] = str_replace('.',',',$tmp['rabatt']); + + + echo json_encode($tmp); + $this->app->ExitXentral(); + break; + + case 'deletegruppe': + $sid= $this->app->Secure->GetPOST('id'); + $this->app->DB->Update("UPDATE `abrechnungsartikel` SET `gruppe`=0 WHERE `gruppe`='$sid'"); + $this->app->DB->Update("UPDATE `subscription_cycle_autosubscription` SET `subscription_group_id`=0 WHERE `subscription_group_id`='$sid'"); + $this->app->DB->Delete("DELETE FROM `abrechnungsartikel_gruppe` WHERE `id`='$sid' LIMIT 1"); + $tmp['status']=1; + $tmp['statusText']='Gruppe gelöscht'; + echo json_encode($tmp); + $this->app->ExitXentral(); + break; + + } + + + $anlegen_artikelneu = $this->app->Secure->GetPOST('anlegen_artikelneu'); + + + if($anlegen_artikelneu!='') + { + + if($bezeichnung!='' && $menge!='' && $preis!='') + { + + $neue_nummer = $this->app->erp->NeueArtikelNummer($artikelart,$this->app->User->GetFirma(),$projekt); + + // anlegen als artikel + $this->app->DB->Insert("INSERT INTO artikel (id,typ,nummer,projekt,name_de,umsatzsteuer,adresse,firma) + VALUES ('','$artikelart','$neue_nummer','$projekt','$bezeichnung','$umsatzsteuerklasse','$lieferant','".$this->app->User->GetFirma()."')"); + + $artikel_id = $this->app->DB->GetInsertID(); + // einkaufspreis anlegen + + $this->app->DB->Insert("INSERT INTO verkaufspreise (id,artikel,adresse,objekt,projekt,preis,ab_menge,angelegt_am,bearbeiter) + VALUES ('','$artikel_id','$id','Standard','$projekt','$preis','$menge',NOW(),'".$this->app->User->GetName()."')"); + + $lieferdatum = $this->app->String->Convert($lieferdatum,'%1.%2.%3','%3-%2-%1'); + $startdatum= $this->app->String->Convert($startdatum,'%1.%2.%3','%3-%2-%1'); + + if($art==='abo') { + $wiederholend=1; + } else { + $wiederholend=0; + } + + if(!$this->app->erp->CheckDateValidate($startdatum)) $startdatum=date('Y-m-d'); + $this->app->DB->Insert("INSERT INTO abrechnungsartikel (id,artikel,bezeichnung,nummer,menge,preis, sort,lieferdatum, steuerklasse, status,projekt,wiederholend,zahlzyklus,adresse,startdatum) + VALUES ('','$artikel_id','$bezeichnung','$neue_nummer','$menge','$preis','$sort','$lieferdatum','$umsatzsteuerklasse','angelegt','$projekt','$wiederholend','$zahlzyklus','$id','$startdatum')"); + + $this->app->Location->execute("index.php?module=adresse&action=artikel&id=$id"); + } + $this->app->Tpl->Set('NEUMESSAGE',"
    Bestellnummer, bezeichnung, Menge und Preis sind Pflichtfelder!
    "); + } + + $ajaxbuchen = $this->app->Secure->GetPOST('ajaxbuchen'); + if($ajaxbuchen!='') + { + $artikel = $this->app->Secure->GetPOST('artikel'); + $nummer = $this->app->Secure->GetPOST('nummer'); + $projekt = $this->app->Secure->GetPOST('projekt'); + $projekt = $this->app->DB->Select("SELECT id FROM projekt WHERE abkuerzung='$projekt' LIMIT 1"); + $sort = $this->app->DB->Select("SELECT MAX(sort) FROM angebot_position WHERE auftrag='$id' LIMIT 1"); + $sort = $sort + 1; + $artikel_id = $this->app->DB->Select("SELECT id FROM artikel WHERE nummer='$nummer' LIMIT 1"); + $bezeichnung = $artikel; + $neue_nummer = $nummer; + $waehrung = 'EUR'; + $umsatzsteuerklasse = $this->app->DB->Select("SELECT umsatzsteuerklasse FROM artikel WHERE nummer='$nummer' LIMIT 1"); + $vpe = 'einzeln'; + + // $this->app->DB->Insert("INSERT INTO angebot_position (id,angebot,artikel,bezeichnung,nummer,menge,preis, waehrung, sort,lieferdatum, umsatzsteuer, status,projekt,vpe) + // VALUES ('','$id','$artikel_id','$bezeichnung','$neue_nummer','$menge','$preis','$waehrung','$sort','$lieferdatum','$umsatzsteuerklasse','angelegt','$projekt','$vpe')"); + } + + $cmd = $this->app->Secure->GetGET('cmd'); + if($cmd === 'smlsave'){ + + $smlid = (int)$this->app->Secure->GetPOST('id'); + $bezeichnung = trim($this->app->Secure->GetPOST('bezeichnung')); + $smlrabatt = trim($this->app->Secure->GetPOST('smlrabatt')); + $abweichende_rechnungsadresse = trim($this->app->Secure->GetPOST('abwrechnungsadresse')); + $projekt = trim($this->app->Secure->GetPOST('projekt')); + $adressid = trim($this->app->Secure->GetPOST('aid')); + + $error = ''; + + if($bezeichnung == ''){ + $error .= "Bitte Bezeichnung ausfüllen\n"; + } + + if($smlrabatt != ''){ + $smlrabatt = str_replace(',','.',$smlrabatt); + } + + if($abweichende_rechnungsadresse != ''){ + $abwrg = explode(' ', $abweichende_rechnungsadresse); + $abwrgid = $abwrg[0]; + + $abwrgid = $this->app->DB->Select("SELECT id FROM adresse WHERE id = '$abwrgid' LIMIT 1"); + if($abwrgid != ''){ + }else{ + $error .= 'Bitte gültige abweichende Rechnungsadresse ausfüllen'."\n"; + } + } + + if($projekt != ''){ + $projektid = $this->app->DB->Select("SELECT id FROM projekt WHERE abkuerzung = '$projekt' LIMIT 1"); + if($projektid != ''){ + }else{ + $error .= 'Bitte gültiges Projekt ausfüllen'."\n"; + } + } + + if($adressid != ''){ + $adressid = $this->app->DB->Select("SELECT id FROM adresse WHERE id = '$adressid' LIMIT 1"); + if($adressid != ''){ + }else{ + $error .= 'Keine gültige Adresse'."\n"; + } + } + + if($error == ''){ + if($smlid){ + $this->app->DB->Update("UPDATE adresse_abosammelrechnungen SET bezeichnung = '$bezeichnung', rabatt = '$smlrabatt', abweichende_rechnungsadresse = '$abwrgid', projekt = '$projektid' WHERE id = '$smlid'"); + + echo json_encode(array('status'=>1)); + $this->app->ExitXentral(); + } + $this->app->DB->Insert("INSERT INTO adresse_abosammelrechnungen (bezeichnung, rabatt, abweichende_rechnungsadresse, projekt, adresse) VALUES ('$bezeichnung', '$smlrabatt', '$abwrgid', '$projektid', '$adressid')"); + echo json_encode(array('status'=>1)); + $this->app->ExitXentral(); + } + echo json_encode(array('status'=>0,'statusText'=>$error)); + $this->app->ExitXentral(); + } + if($cmd === 'smledit'){ + $smlid = (int)$this->app->Secure->GetPOST('id'); + + $data = $this->app->DB->SelectRow("SELECT abs.id, abs.bezeichnung, abs.rabatt, abs.abweichende_rechnungsadresse, abs.projekt FROM adresse_abosammelrechnungen as abs WHERE abs.id = '$smlid' LIMIT 1"); + + if($data){ + if($data['abweichende_rechnungsadresse'] == 0){ + $data['abweichende_rechnungsadresse'] = ''; + }else{ + if($data['abweichende_rechnungsadresse'] != ''){ + $abwadressid = $this->app->DB->Select("SELECT id FROM adresse WHERE id = '".$data['abweichende_rechnungsadresse']."' LIMIT 1"); + if($abwadressid != ""){ + $abwadressname = $this->app->DB->Select("SELECT name FROM adresse WHERE id = '$abwadressid' LIMIT 1"); + if($abwadressname != ""){ + $abwkundennr = $this->app->DB->Select("SELECT kundennummer FROM adresse WHERE id = '$abwadressid' LIMIT 1"); + $abwlieferantennr = $this->app->DB->Select("SELECT lieferantennummer FROM adresse WHERE id = '$abwadressid' LIMIT 1"); + + $restadresse = ''; + $restadresse .= '(Kdr: '.$abwkundennr.' '; + + if($abwlieferantennr != ''){ + $restadresse .= 'Liefr: '.$abwlieferantennr; + } + + $restadresse .= ')'; + + $data['abweichende_rechnungsadresse'] = $abwadressid.' '.$abwadressname." ".$restadresse; + + } + } + } + } + + + if($data['projekt'] == 0){ + $data['projekt'] = ''; + }else{ + if($data['projekt'] > 0){ + $projektabkuerzung = $this->app->DB->Select("SELECT abkuerzung FROM projekt WHERE id = '".$data['projekt']."' LIMIT 1"); + if($projektabkuerzung != ''){ + $data['projekt'] = $projektabkuerzung; + }else{ + $data['projekt'] = ''; + } + } + } + + if($data['rabatt'] != ''){ + $data['rabatt'] = str_replace('.', ',', $data['rabatt']); + } + + }else{ + $data['id'] = 0; + $data['bezeichnung'] = ''; + $data['rabatt'] = ''; + $data['abweichende_rechnungsadresse'] = ''; + $data['projekt'] = ''; + } + + echo json_encode($data); + $this->app->ExitXentral(); + + + } + if($cmd === "smldelete"){ + $smlid = (int) $this->app->Secure->GetPOST('id'); + $this->app->DB->Update("DELETE FROM adresse_abosammelrechnungen WHERE id = '$smlid'"); + + echo json_encode(array('status'=>1)); + $this->app->ExitXentral(); + } + + + + if(1) + { + $this->app->Tpl->Set('ARTIKELART',$this->app->erp->GetSelect($this->app->erp->GetArtikelart(),$artikelart)); + $this->app->Tpl->Set('VPE',$this->app->erp->GetSelect($this->app->erp->GetVPE(),$vpe)); + $this->app->Tpl->Set('WAEHRUNG',$this->app->erp->GetSelect($this->app->erp->GetWaehrung(),$vpe)); + $this->app->Tpl->Set('UMSATZSTEUERKLASSE',$this->app->erp->GetSelect($this->app->erp->GetUmsatzsteuerklasse(),$umsatzsteuerklasse)); + $this->app->Tpl->Set('PROJEKT',$this->app->erp->GetProjektSelect($projekt)); + $this->app->Tpl->Set('PREIS',$preis); + $this->app->Tpl->Set('MENGE',$menge); + $this->app->Tpl->Set('LIEFERDATUM',$lieferdatum); + $this->app->Tpl->Set('ZAHLZYKLUS',$zahlzyklus); + $this->app->Tpl->Set('BEZEICHNUNG',$bezeichung); + + $this->app->Tpl->Set('SUBSUBHEADING','Neuen Artikel anlegen'); + // $this->app->Tpl->Parse('INHALT',"aboabrechnungsartikel_artikelneu.tpl"); + // $this->app->Tpl->Set(EXTEND,""); + $this->app->Tpl->Parse('UEBERSICHT','rahmen70.tpl'); + $this->app->Tpl->Set('EXTEND',''); + $this->app->Tpl->Set('INHALT',''); + $this->app->YUI->DatePicker('startdatum'); + $this->app->YUI->DatePicker('enddatum'); + $this->app->YUI->DatePicker('abgerechnetbis'); + $this->app->YUI->CkEditor('beschreibung','belege'); + $this->app->YUI->CkEditor('editbeschreibung2','belege',array('height'=>'100')); + + /* ende neu anlegen formular */ + /* ende neu anlegen formular */ + // child table einfuegen + + //Wurde mit LiveTabelle ersetzt + /*$menu = array(//"up"=>"upartikel", + // "down"=>"downartikel", + //"add"=>"addstueckliste", + "edit"=>"positioneneditpopup", + "del"=>"delartikel"); + // wiederholende artikel + $sql = "SELECT aa.bezeichnung,art.nummer, au.name as bearbeiter, if(aa.angelegtam='0000-00-00','-',DATE_FORMAT(aa.angelegtam,'%d.%m.%Y')) as 'angelegt am', if(aa.abgerechnetbis='0000-00-00','-',DATE_FORMAT(aa.abgerechnetbis,'%d.%m.%Y')) as 'abgerechnet bis', + if(aa.enddatum='0000-00-00','-',DATE_FORMAT(aa.enddatum,'%d.%m.%Y')) as enddatum, + aa.preis as preis, aa.waehrung, aa.menge as menge, if(aa.wiederholend=1 OR aa.preisart='monat' OR aa.preisart='jahr' OR aa.preisart='monatx','wdh','einmalig') as art, aa.dokument,aa.id as id + FROM abrechnungsartikel aa LEFT JOIN artikel art ON art.id=aa.artikel LEFT JOIN user u ON u.id=aa.angelegtvon LEFT JOIN adresse au ON au.id=u.adresse + WHERE aa.adresse='$id'"; + + $this->app->YUI->SortList('TAB1',$this,$menu,$sql,false);*/ + + // $this->app->YUI->TableSearch('TAB1',"adresse_abo"); + + + $this->app->YUI->AutoComplete('e_projekt', 'projektname', 1); + $this->app->YUI->AutoComplete('e_abwrechnungsadresse', 'adresse'); + $this->app->YUI->AutoComplete('editsammelrechnung','abosammelrechnungen','',"&adresse=$id"); + + + $this->app->Tpl->Set('ADRESSE',$id); + $this->app->YUI->TableSearch('TAB1', 'adressealleabos', 'show','','',basename(__FILE__), __CLASS__); + $this->app->YUI->TableSearch('SORTPOPUP', 'adressealleabossort', 'show','','',basename(__FILE__), __CLASS__); + $this->app->YUI->TableSearch('TAB2','abrechnungsartikel_gruppe', 'show','','',basename(__FILE__), __CLASS__); + $this->app->YUI->TableSearch('TAB3','abrechnungsartikel', 'show','','',basename(__FILE__), __CLASS__); + $this->app->YUI->TableSearch('TAB4', 'abosammelrechnungen', 'show','','',basename(__FILE__), __CLASS__); + + + $this->app->YUI->AutoComplete('editansprechpartner','ansprechpartner','',"&adresse=$id"); + $this->app->Tpl->Set('MONATLICH', number_format($this->getAboMonthSum($id),2,',','.')); + $this->app->Tpl->Parse('PAGE','adresse_abo.tpl'); + } +} + + +function AdresseSEPAMandat() +{ + $projekt = ''; + $id = $this->app->Secure->GetGET('id'); + + if(class_exists('SepaMandatCustom')) + { + $pdf = new SepaMandatCustom($this->app,$projekt); + }else{ + $pdf = new SepaMandat($this->app,$projekt); + } + + + + $data = $this->app->DB->SelectArr("SELECT name,strasse, ansprechpartner,ort,plz,land,email,kundennummer, inhaber, bank, swift, iban,firmensepa,mandatsreferenzart,mandatsreferenz FROM adresse WHERE id='$id' LIMIT 1"); + $pdf->firmensepa=$data[0]['firmensepa']; + $pdf->mandatsreferenzart=$data[0]['mandatsreferenzart']; + + + $musterlinie = '_____________________________________'; + + $pdf->firma=$this->app->erp->ReadyForPDF($data[0]['name']); + if($pdf->firma=='') { + $pdf->firma = $musterlinie; + } + $pdf->name=$this->app->erp->ReadyForPDF($data[0]['ansprechpartner']); + if($pdf->name=='') { + $pdf->name=$musterlinie; + } + $pdf->strasse=$this->app->erp->ReadyForPDF($data[0]['strasse']); + if($pdf->strasse=='') { + $pdf->strasse=$musterlinie; + } + $pdf->plzOrt=$this->app->erp->ReadyForPDF($data[0]['land']).'-'.$this->app->erp->ReadyForPDF($data[0]['plz'])." ".$this->app->erp->ReadyForPDF($data[0]['ort']); + if($pdf->plzOrt=='-' || $pdf->plzOrt=='- ') { + $pdf->plzOrt=$musterlinie; + } + $pdf->email=$this->app->erp->ReadyForPDF($data[0]['email']); + if($pdf->email=='') { + $pdf->email=$musterlinie; + } + + $pdf->kundenNr=$this->app->erp->ReadyForPDF($data[0]['kundennummer']); + //$pdf->benutzername="info@embedded-projects.net"; + + $pdf->glID=$this->app->erp->Firmendaten('sepaglaeubigerid'); + + if($data[0]['mandatsreferenz']==''){ + $pdf->mandatsRef = $this->app->erp->ReadyForPDF($data[0]['kundennummer']); + } + else{ + $pdf->mandatsRef = $data[0]['mandatsreferenz']; + } + + $pdf->swift=$data[0]['swift']; + if($pdf->swift=='') { + $pdf->swift='_____________________________________'; + } + $pdf->iban=$data[0]['iban']; + if($pdf->iban=='') { + $pdf->iban='_____________________________________'; + } + $pdf->bank=$data[0]['bank']; + if($pdf->bank=='') { + $pdf->bank='_____________________________________'; + } + + $pdf->ermaechText='Ich ermaechtige die '.$this->app->erp->GetFirmaName().", Zahlungen von meinem Konto mittels Lastschrift einzuziehen. Zugleich weise ich mein Kreditinstitut an, die von der ".$this->app->erp->GetFirmaName()." ".$this->app->erp->Firmendaten("strasse")." ".$this->app->erp->Firmendaten("plz")." ".$this->app->erp->Firmendaten('ort').' auf mein Konto gezogenen Lastschriften einzuloesen.'; + + if($pdf->firmensepa!='1') + { + $pdf->hinweis='Hinweis: Ich kann (Wir können) innerhalb von acht Wochen, beginnend mit dem Belastungsdatum, die Erstattung des belasteten Betrages verlangen. Es gelten dabei die mit meinem (unserem) Kreditinstitut vereinbarten Bedingungen.'; + } else { + $pdf->hinweis='Hinweis: Dieses Lastschriftmandat dient nur dem Einzug von Lastschriften, die auf Konten von Unternehmen gezogen sind. Ich / Wir sind nicht berechtigt, nach der erfolgten Einlösung eine Erstattung des belasteten Betrags zu verlangen. Ich bin / Wir sind berechtigt, mein / unser Kreditinstitut bis zum Fälligkeitstag anzuweisen, Lastschriften nicht einzulösen.'; + } + + $pdf->render(); + + $name = $this->app->erp->UmlauteEntfernen($this->app->erp->ReadyForPDF($data[0]['name'])); + $name = str_replace(' ','',$name); + $name = str_replace(',','',$name); + $name = str_replace('.','',$name); + $kundennummer = $data[0]['kundennummer']; + + $filename = $tmp.date('Ymd').'_'.$kundennummer.'_'.$name.'_SEPAMANDAT.pdf'; + $pdf->Output($filename,'D'); + $this->app->ExitXentral(); +} + +function AdresseArtikel() +{ + $this->AdresseMenu(); + $id = $this->app->Secure->GetGET('id'); + + // neues arbeitspaket + //$widget = new WidgetAbrechnungsartikel(&$this->app,'TAB2'); + //$widget->Create(); + + + // child table einfuegen + + $menu = array('up'=>'upartikel', + 'down'=>'downartikel', + //"add"=>"addstueckliste", + 'edit'=>'artikeleditpopup', + 'del'=>'delartikel'); + + // wiederholende artikel + $this->app->Tpl->Set('SUBSUBHEADING','wiederholende Artikel'); + $sql = "SELECT aa.bezeichnung, DATE_FORMAT(aa.abgerechnetbis,'%d.%m.%Y') as abgerechnet, + aa.preis as preis, aa.waehrung, aa.menge as menge, aa.id as id + FROM abrechnungsartikel aa + WHERE aa.adresse='$id' AND aa.wiederholend=1"; + $this->app->YUI->SortList('INHALT',$this,$menu,$sql,false); + $this->app->Tpl->Parse('TAB1','rahmen70.tpl'); + $this->app->Tpl->Set('INHALT',''); + + + // einmalige artikel + $this->app->Tpl->Set('SUBSUBHEADING','einmalige Artikel'); + $sql = "SELECT aa.bezeichnung, DATE_FORMAT(aa.abgerechnetbis,'%d.%m.%Y') as abgerechnet, + aa.preis as preis, aa.waehrung, aa.menge as menge, aa.id as id + FROM abrechnungsartikel aa + WHERE aa.adresse='$id' AND aa.wiederholend=0 AND aa.abgerechnet=0"; + $this->app->YUI->SortList('INHALT',$this,$menu,$sql,false); + $this->app->Tpl->Parse('TAB1','rahmen70.tpl'); + + $this->app->Tpl->Set('AKTIV_TAB1','selected'); + $this->app->Tpl->Parse('PAGE','artikeluebersicht.tpl'); +} + +function AdresseArtikelEditPopup() +{ + $id = $this->app->Secure->GetGET('id'); + + // nach page inhalt des dialogs ausgeben + $widget = new WidgetAbrechnungsartikel($this->app,'PAGE'); + $sid = $this->app->DB->Select("SELECT adresse FROM abrechnungsartikel WHERE id='$id' LIMIT 1"); + $widget->form->SpecialActionAfterExecute('close_refresh', + "index.php?module=adresse&action=artikel&id=$sid"); + $widget->Edit(); + $this->app->BuildNavigation=false; +} + +function UpArtikel() +{ + $this->app->YUI->SortListEvent('up','abrechnungsartikel','adresse'); + $this->AdresseArtikel(); +} + +function DownArtikel() +{ + $this->app->YUI->SortListEvent('down','abrechnungsartikel','adresse'); + $this->AdresseArtikel(); +} + + +function DelArtikel() +{ + $this->app->YUI->SortListEvent('del','abrechnungsartikel','adresse'); + $this->AdresseArtikelPosition(); +} + +function AdresseVerein() +{ + $id = $this->app->Secure->GetGET('id'); + $submit = $this->app->Secure->GetPOST('submit'); + $this->AdresseMenu(); + + $data['verein_mitglied_seit'] = $this->app->Secure->GetPOST('verein_mitglied_seit'); + $data['verein_mitglied_bis'] = $this->app->Secure->GetPOST('verein_mitglied_bis'); + $data['verein_spendenbescheinigung'] = $this->app->Secure->GetPOST('verein_spendenbescheinigung'); + $data['verein_mitglied_aktiv'] = $this->app->Secure->GetPOST('verein_mitglied_aktiv'); + + if($data['verein_spendenbescheinigung']!='1') { + $data['verein_spendenbescheinigung']=0; + } + if($data['verein_mitglied_aktiv']!='1') { + $data['verein_mitglied_aktiv']=0; + } + + $data['verein_mitglied_seit'] = $this->app->String->Convert($data['verein_mitglied_seit'],"%1.%2.%3","%3-%2-%1"); + $data['verein_mitglied_bis'] = $this->app->String->Convert($data['verein_mitglied_bis'],"%1.%2.%3","%3-%2-%1"); + + $this->app->YUI->DatePicker('verein_mitglied_seit'); + $this->app->YUI->DatePicker('verein_mitglied_bis'); + + if($submit!='') + { + $this->app->DB->Update("UPDATE adresse SET + verein_mitglied_seit='".$data['verein_mitglied_seit']."', + verein_mitglied_bis='".$data['verein_mitglied_bis']."', + verein_spendenbescheinigung='".$data['verein_spendenbescheinigung']."', + verein_mitglied_aktiv='".$data['verein_mitglied_aktiv']."' + WHERE id='$id'"); + } + + + $data = $this->app->DB->SelectRow("SELECT * FROM adresse WHERE id='$id'"); + + if($data['verein_spendenbescheinigung']=='1') { + $this->app->Tpl->Set('VEREIN_SPENDENBESCHEINIGUNG','checked'); + } + if($data['verein_mitglied_aktiv']=='1') { + $this->app->Tpl->Set('VEREIN_MITGLIED_AKTIV','checked'); + } + $this->app->Tpl->Set('VEREIN_MITGLIED_SEIT',str_replace('..','',$this->app->String->Convert($data['verein_mitglied_seit'],"%3-%2-%1","%1.%2.%3"))); + $this->app->Tpl->Set('VEREIN_MITGLIED_BIS',str_replace('..','',$this->app->String->Convert($data['verein_mitglied_bis'],"%3-%2-%1","%1.%2.%3"))); + + $this->app->Tpl->Parse('PAGE','adresse_verein.tpl'); +} + + function AdresseMinidetailLieferadressen(){ + $id = $this->app->Secure->GetGET('id'); + + $interne_bemerkung = $this->app->DB->Select("SELECT interne_bemerkung FROM lieferadressen WHERE id = '$id' AND interne_bemerkung != '' LIMIT 1"); + $hinweis = $this->app->DB->Select("SELECT hinweis FROM lieferadressen WHERE id = '$id' AND interne_bemerkung != '' LIMIT 1"); + + $this->app->Tpl->Set('TABELLE', ""); + + if($interne_bemerkung != ''){ + $this->app->Tpl->Add('TABELLE',""); + }else{ + $this->app->Tpl->Add('TABELLE', ""); + } + + $this->app->Tpl->Add('TABELLE', "
    Interne Bemerkung
    ".$interne_bemerkung."
    Keine Daten vorhanden!
    "); + if($hinweis != ''){ + $this->app->Tpl->Add('TABELLE',""); + }else{ + $this->app->Tpl->Add('TABELLE', ""); + } + + $this->app->Tpl->Add('TABELLE', '
    Lieferhinweis
    ".$hinweis."
    Keine Daten vorhanden!
    '); + + $this->app->Tpl->Output('adresse_lieferadressen_minidetail.tpl'); + $this->app->ExitXentral(); + } + + function AdresseMinidetailAnsprechpartner(){ + $id = $this->app->Secure->GetGET('id'); + + $interne_bemerkung = $this->app->DB->Select("SELECT interne_bemerkung FROM ansprechpartner WHERE id = '$id' AND interne_bemerkung != '' LIMIT 1"); + if($interne_bemerkung != ""){ + $this->app->Tpl->Set("TABELLE", "
    Interne Bemerkung
    ".$interne_bemerkung."
    "); + }else{ + $this->app->Tpl->Set("TABELLE", "
    Keine Daten vorhanden!
    "); + } + + $this->app->Tpl->Output("adresse_lieferadressen_minidetail.tpl"); + $this->app->ExitXentral(); + } + + + function down($a,$x) { + if( count($a)-1 > $x ) { + $b = array_slice($a,0,$x,true); + $b[] = $a[$x+1]; + $b[] = $a[$x]; + $b += array_slice($a,$x+2,count($a),true); + return($b); + } + return $a; + } + + function up($a,$x) { + if( $x > 0 && $x < count($a) ) { + $b = array_slice($a,0,($x-1),true); + $b[] = $a[$x]; + $b[] = $a[$x-1]; + $b += array_slice($a,($x+1),count($a),true); + return($b); + } + return $a; + } + + public function AdresseAnschriftString($id,$ansprechpartner=false) + { + $type = 'adresse'; + if($ansprechpartner){ + $type = 'ansprechpartner'; + } + + $vorlage = $this->app->erp->Firmendaten('reihenfolge_zwischenspeicher'); + $tmp=''; + if($vorlage!='') + { + if($type==='ansprechpartner') + { + $data = $this->app->DB->SelectArr( + sprintf( + 'SELECT a.* ,t.bezeichnung as typbezeichnung + FROM adresse a + LEFT JOIN adresse_typ t on t.type=a.typ + WHERE a.id=%d + LIMIT 1', + (int)$id + ) + ); + $data[0]['name'] = $this->app->DB->Select( + sprintf( + "SELECT name FROM adresse WHERE id=%d LIMIT 1", + (int)$data[0]['adresse'] + ) + ); + } else { + $data = $this->app->DB->SelectArr("SELECT * FROM adresse WHERE id='$id' LIMIT 1"); + } + if(!empty($data)) + { + foreach($data[0] as $feld=>$value) + { + $vorlage = str_replace('{ADRESSE_'.strtoupper($feld).'}',$value,$vorlage); + } + $vorlage = preg_replace('/^\h*\v+/m', '', $vorlage); + $vorlage = str_replace("\r\n", "\\n", $vorlage); + $tmp = $vorlage; + } + } else { + if($id > 0) + { + if($type==='ansprechpartner') + { + $result = $this->app->DB->SelectArr( + sprintf( + 'SELECT *,name as ansprechpartner,ansprechpartner_land as land + FROM ansprechpartner WHERE id=%d LIMIT 1', + (int)$id + ) + ); + $result[0]['name'] = $this->app->DB->Select( + sprintf( + 'SELECT name FROM adresse WHERE id=%d LIMIT 1', + $result[0]['adresse'] + ) + ); + } else { + $result = $this->app->DB->SelectArr( + sprintf('SELECT * FROM adresse WHERE id=%d LIMIT 1', + $id + ) + ); + } + + if($result[0]['name']!="") $tmp .= $result[0]['name']."\\n"; + if($result[0]['ansprechpartner']!="") $tmp .= $result[0]['ansprechpartner']."\\n"; + if($result[0]['abteilung']!="") $tmp .= $result[0]['abteilung']."\\n"; + if($result[0]['unterabteilung']!="") $tmp .= $result[0]['unterabteilung']."\\n"; + if($result[0]['adresszusatz']!="") $tmp .= $result[0]['adresszusatz']."\\n"; + if($result[0]['strasse']!="") $tmp .= $result[0]['strasse']."\\n"; + $tmp .= $result[0]['land']."-".$result[0]['plz']." ".$result[0]['ort']; + } + } + return $this->app->erp->ReadyForPDF($tmp); + } + + /** + * @param int $id + * + * @return int + */ + public function CopyAdresse($id){ + $this->app->DB->MysqlCopyRow('adresse','id',$id); + $idNew = $this->app->DB->GetInsertID(); + //$roles = $this->app->DB->SelectArr("SELECT * FROM adresse_rolle WHERE adresse = '$id'"); + $this->app->DB->Insert("INSERT INTO adresse_rolle (adresse, projekt, subjekt, praedikat, objekt, parameter, von, bis) + SELECT $idNew, projekt, subjekt, praedikat, objekt, parameter, von, bis FROM adresse_rolle WHERE adresse = '$id'"); + + return $idNew; + } + + /** + * @param int $adresseId AdressID + * @param int $maxResults SQL-Limit; Maximale Anzahl der Ergebnisse + * + * @return string + */ + protected function GetAddressCrmSql($adresseId, $maxResults = 20) + { + $adresseId = (int)$adresseId; + $limit = (int)$maxResults; + + $sql = ' + SELECT + DATE_FORMAT(a.datum, "%d.%m.%Y %H:%i") AS datum, + if(ifnull(a.internebezeichnung,\'\') = \'\', a.title, concat(a.title,\'
    \',a.internebezeichnung,\'\')) AS bezeichnung, + a.ansprechpartner, + a.abkuerzung AS projekt, + a.bearbeiter, + a.art, + a.gesendet, + a.pdf + FROM + ( + ( + SELECT + d.id, + CONCAT(DATE_FORMAT(d.datum, "%Y-%m-%d"), " ", IF(d.uhrzeit IS NULL OR DATE_FORMAT(d.uhrzeit, "%H:%i")="00:00", "", DATE_FORMAT(d.uhrzeit, "%H:%i")) ) as datum, + d.betreff as title,if(d.typ = \'email\',if(d.ansprechpartner <> \'\',d.ansprechpartner,d.email_an),d.ansprechpartner) as ansprechpartner, + p.abkuerzung as abkuerzung, + if(bearbeiter!="",bearbeiter,a2.name) as bearbeiter, + CONCAT(UCASE(LEFT(d.typ, 1)), SUBSTRING(d.typ, 2)) as art, + CONCAT(IF(d.sent = 1, "JA", "NEIN"),"") as gesendet, + "" as pdf, + concat("1","-",d.id) as did, + d.content as suchtext, + d.internebezeichnung + FROM + dokumente d + LEFT JOIN projekt p ON p.id=d.projekt + LEFT JOIN adresse a2 ON a2.id=adresse_from + WHERE + adresse_to = ' . $adresseId . ' + ) + + UNION ALL + ( + SELECT + ds.id, + CONCAT(DATE_FORMAT(ds.zeit, "%Y-%m-%d")," ", IF(DATE_FORMAT(ds.zeit, "%H:%i")="00:00", "", DATE_FORMAT(ds.zeit, "%H:%i"))) as datum, + ds.betreff as title,ds.ansprechpartner , + p.abkuerzung as abkuerzung, + ds.bearbeiter as bearbeiter, + CONCAT(UCASE(LEFT(ds.dokument, 1)), SUBSTRING(ds.dokument, 2),"index.php?module=",ds.dokument,"&action=edit&id=",ds.parameter,"") as art, + CONCAT(IF(ds.versendet = 1, "JA", "NEIN"),"") as gesendet, + concat("app->Conf->WFconf['defaulttheme'] . '/images/pdf.svg>") as pdf, + concat("2","-",ds.id) as did, + ds.text as suchtext, + ifnull(d1.internebezeichnung, + ifnull(d2.internebezeichnung, + ifnull(d3.internebezeichnung, + ifnull(d4.internebezeichnung, + ifnull(d5.internebezeichnung, + ifnull(d6.internebezeichnung, + \'\')))))) as internebezeichnung + FROM + dokumente_send ds + LEFT JOIN lieferschein d1 ON ds.parameter = d1.id AND ds.dokument = \'lieferschein\' + LEFT JOIN auftrag d2 ON ds.parameter = d2.id AND ds.dokument = \'auftrag\' + LEFT JOIN rechnung d3 ON ds.parameter = d3.id AND ds.dokument = \'rechnung\' + LEFT JOIN gutschrift d4 ON ds.parameter = d4.id AND ds.dokument = \'gutschrift\' + LEFT JOIN angebot d5 ON ds.parameter = d5.id AND ds.dokument = \'angebot\' + LEFT JOIN bestellung d6 ON ds.parameter = d6.id AND ds.dokument = \'bestellung\' + LEFT JOIN projekt p ON p.id=ds.projekt + WHERE + ds.adresse = ' . $adresseId . ' + ) + + UNION ALL + ( + SELECT + k.id, + CONCAT(DATE_FORMAT(k.von, "%Y-%m-%d")," ", IF(DATE_FORMAT(k.von, "%H:%i")="00:00", "", DATE_FORMAT(k.von, "%H:%i"))) as datum, + k.bezeichnung COLLATE utf8_general_ci as title,\'\' as ansprechpartner, + p.abkuerzung as abkuerzung, + a2.name COLLATE utf8_general_ci as bearbeiter, + "Kalender" as art, + CONCAT("") as gesendet, + "" as pdf, + concat("6","-",k.id) as did, + k.beschreibung COLLATE utf8_general_ci as suchtext, + \'\' as internebezeichnung + FROM + kalender_event k + LEFT JOIN adresse a2 ON k.adresseintern = a2.id + LEFT JOIN projekt p ON p.id=k.projekt + WHERE + k.adresse = ' . $adresseId . ' + ) + '; + + + + if($this->app->erp->RechteVorhanden('wiedervorlage', 'list')){ + if($this->app->erp->GetKonfiguration('adresse_crm_collateerror') && method_exists($this->app->YUI, 'ConvertLatin1UTF')){ + $sql .= ' + UNION ALL + ( + SELECT + w.id, + CONCAT(DATE_FORMAT(datum_erinnerung, "%Y-%m-%d"), " ", IF(zeit_erinnerung IS NULL OR DATE_FORMAT(zeit_erinnerung, "%H:%i")="00:00", "", DATE_FORMAT(zeit_erinnerung, "%H:%i")) ) as datum, + ' . $this->app->YUI->ConvertLatin1UTF('w.bezeichnung') . ' as title,\'\' as ansprechpartner, + ' . $this->app->YUI->ConvertLatin1UTF('p.abkuerzung') . ' as abkuerzung, + adr.name COLLATE utf8_general_ci as bearbeiter, + CONCAT("Wiedervorlage") as art, + CONCAT("") as gesendet, + "" as pdf, + concat("5","-",w.id) as did, + ' . $this->app->YUI->ConvertLatin1UTF('w.beschreibung') . ' as suchtext, + \'\' as internebezeichnung + FROM + wiedervorlage w left join adresse adr on w.bearbeiter = adr.id + LEFT JOIN projekt p ON p.id=w.projekt + WHERE + w.adresse = ' . $adresseId . ' + )'; + }else{ + $sql .= ' + UNION ALL + ( + SELECT + w.id, + CONCAT(DATE_FORMAT(datum_erinnerung, "%Y-%m-%d"), " ", IF(zeit_erinnerung IS NULL OR DATE_FORMAT(zeit_erinnerung, "%H:%i")="00:00", "", DATE_FORMAT(zeit_erinnerung, "%H:%i")) ) as datum, + w.bezeichnung COLLATE utf8_general_ci as title,\'\' as ansprechpartner, + p.abkuerzung COLLATE utf8_general_ci as abkuerzung, + adr.name COLLATE utf8_general_ci as bearbeiter, + CONCAT("Wiedervorlage") as art, + CONCAT("") as gesendet, + "" as pdf, + concat("5","-",w.id) as did, + w.beschreibung COLLATE utf8_general_ci as suchtext, + \'\' as internebezeichnung + FROM + wiedervorlage w left join adresse adr on w.bearbeiter = adr.id + LEFT JOIN projekt p ON p.id=w.projekt + WHERE + w.adresse = ' . $adresseId . ' + )'; + } + } + $sql .= ') AS a '; + $sql .= 'ORDER BY a.datum DESC '; + $sql .= 'LIMIT 0, ' . $maxResults; + + return $sql; + } +} +