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 = "
";
$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 = "
";
$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 = "
';
$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((!empty($ids)?count($ids):0) > 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",0,"");
$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'",0,"");
$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'",0,"");
$table2->DisplayNew('LIEFERANTEN','Email','noAction');
$table3 = new EasyTable($this->app);
$table3->Query($this->GetAddressCrmSql($id, 15),0,"");
$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 '
Datum:
';
echo '
' . $res['datum'] . '
';
echo '
';
echo '
';
echo '
Von:
';
echo '
' . $res['personVon'] . '
';
echo '
';
echo '
';
echo '
Text:
';
echo '
' . nl2br($res['content']) . '
';
echo '
';
echo '
';
}
/*
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 '
Ort:
'.$tmp['ort'].'
';
echo '
Tätigkeit:
'.$tmp['aufgabe'].'
';
echo '
Beschreibung:
'.nl2br($tmp['beschreibung']).'
';
echo '
Teilprojekt:
'.$teilprojekt.'
';
echo '
Kostenstelle:
'.$tmp['kostenstelle'].'
';
echo '
Verrechnungsart:
'.$tmp['verrechnungsart'].'
';
echo '
';
}
$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','