') AS nname, '' AS vname,GROUP_CONCAT(CONCAT(vname2,' ',nname2) SEPARATOR '
') AS nname2,'' AS vname2,'' AS ort,GROUP_CONCAT(CONCAT(plz,' ',ort) SEPARATOR '
') AS plz,GROUP_CONCAT(CONCAT(str,' ',hnr) SEPARATOR '
') AS str,'' AS hnr, GROUP_CONCAT(tel.nr SEPARATOR '
') AS tel FROM partner
LEFT JOIN adresse ON adresse.partner_id = partner.id
LEFT JOIN strasse ON strasse.id = str_id
LEFT JOIN ort ON ort.id = ort_id
LEFT JOIN tel ON tel.partner_id = partner.id
LEFT JOIN kontakt ON kontakt.partner_id = partner.id
WHERE partner.typ_id = $typ";
}
switch($fields)
{
case "all":
foreach($src AS $tag)
{
$tag = "%".$tag."%";
$query .= " $combiner (vname LIKE '$tag' OR nname LIKE '$tag' OR vname2 LIKE '$tag' OR nname2 LIKE '$tag' OR firma LIKE '$tag' OR ort LIKE '$tag' OR str LIKE '$tag' OR plz LIKE '$tag' OR partner.id LIKE '$tag')";
}
break;
case "kdnr":
foreach($src AS $tag)
{
$tag = "%".$tag."%";
$query .= " $combiner (partner.id LIKE '$tag')";
}
break;
case "name":
foreach($src AS $tag)
{
$tag = "%".$tag."%";
$query .= " $combiner (vname LIKE '$tag' OR nname LIKE '$tag' OR vname2 LIKE '$tag' OR nname2 LIKE '$tag' OR firma LIKE '$tag')";
}
break;
case "str":
foreach($src AS $tag)
{
$tag = "%".$tag."%";
$query .= " $combiner (str LIKE '$tag')";
}
break;
case "plz":
foreach($src AS $tag)
{
$tag = "%".$tag."%";
$query .= " $combiner (plz LIKE '$tag')";
}
break;
case "ort":
foreach($src AS $tag)
{
$tag = "%".$tag."%";
$query .= " $combiner (ort LIKE '$tag')";
}
break;
case "tel":
foreach($src AS $tag)
{
$tag = "%".$tag."%";
$query .= " $combiner (tel.nr LIKE '$tag')";
}
break;
case "kont":
foreach($src AS $tag)
{
$tag = "%".$tag."%";
$query .= " $combiner (kontakt LIKE '$tag')";
}
break;
}
$query .= " GROUP BY partner.id";
$ret["all"] = $query;
$query .= " LIMIT ".(intval($page)*$pagesize).", $pagesize";
$ret["limited"] = $query;
return $ret;
}
function createAdressQry($page,$pagesize,$src,$combiner,$fields,$full=0,$typ=1)
{
if(!$full)
{
$query = "SELECT partner.id AS kdnr,firma,vname,nname,vname2,nname2,ort,plz,str,hnr,adresse.id AS adrid, tel.nr AS tel
FROM partner
LEFT JOIN adresse ON adresse.partner_id = partner.id
LEFT JOIN strasse ON strasse.id = str_id
LEFT JOIN ort ON ort.id = ort_id
LEFT JOIN tel ON tel.partner_id = partner.id
LEFT JOIN kontakt ON kontakt.partner_id = partner.id
WHERE updated_by = 0 AND partner.typ_id = $typ";
}
else
{
$query = "SELECT partner.id AS kdnr,firma,vname,nname,vname2,nname2,ort,plz,str,hnr,adresse.id AS adrid, tel.nr AS tel
FROM partner
LEFT JOIN adresse ON adresse.partner_id = partner.id
LEFT JOIN strasse ON strasse.id = str_id
LEFT JOIN ort ON ort.id = ort_id
LEFT JOIN tel ON tel.partner_id = partner.id
LEFT JOIN kontakt ON kontakt.partner_id = partner.id
WHERE partner.typ_id = $typ";
}
switch($fields)
{
case "all":
foreach($src AS $tag)
{
$tag = "%".$tag."%";
$query .= " $combiner (vname LIKE '$tag' OR nname LIKE '$tag' OR vname2 LIKE '$tag' OR nname2 LIKE '$tag' OR firma LIKE '$tag' OR ort LIKE '$tag' OR str LIKE '$tag' OR plz LIKE '$tag' OR partner.id LIKE '$tag')";
}
break;
case "kdnr":
foreach($src AS $tag)
{
$tag = "%".$tag."%";
$query .= " $combiner (partner.id LIKE '$tag')";
}
break;
case "name":
foreach($src AS $tag)
{
$tag = "%".$tag."%";
$query .= " $combiner (vname LIKE '$tag' OR nname LIKE '$tag' OR vname2 LIKE '$tag' OR nname2 LIKE '$tag' OR firma LIKE '$tag')";
}
break;
case "str":
foreach($src AS $tag)
{
$tag = "%".$tag."%";
$query .= " $combiner (str LIKE '$tag')";
}
break;
case "plz":
foreach($src AS $tag)
{
$tag = "%".$tag."%";
$query .= " $combiner (plz LIKE '$tag')";
}
break;
case "ort":
foreach($src AS $tag)
{
$tag = "%".$tag."%";
$query .= " $combiner (ort LIKE '$tag')";
}
break;
case "tel":
foreach($src AS $tag)
{
$tag = "%".$tag."%";
$query .= " $combiner (tel.nr LIKE '$tag')";
}
break;
case "kont":
foreach($src AS $tag)
{
$tag = "%".$tag."%";
$query .= " $combiner (kontakt LIKE '$tag')";
}
break;
}
$query .= " GROUP BY adresse.id";
$ret["all"] = $query;
$query .= " LIMIT ".$page*$pagesize.", $pagesize";
$ret["limited"] = $query;
return $ret;
}
function createKdnRechQry($page,$pagesize,$src,$combiner,$id,$typ,$sks=0)
{
if($typ == 1)
$docnr = "rechnr";
else
$docnr = "rechnr";
if(!$sks)
{
$query = "SELECT rechnung.$docnr AS rechnr,
rechnung.id,
DATE_FORMAT(rechnung.datetime, '%d.%m.%Y') AS date,
GROUP_CONCAT(CONCAT(artikel.bezeichn, ' (', artikel_rechn.wanr, ')') SEPARATOR '
') AS artikel,
adresse_id,
storno,
rechnung.typ_id
FROM rechnung
LEFT JOIN rechtyp ON rechnung.typ_id = rechtyp.id
LEFT JOIN artikel_rechn ON rechnung.id = artikel_rechn.rech_id
LEFT JOIN artikel ON artikel_rechn.art_id = artikel.id
WHERE partner_id='".$id."' AND rechtyp.id = '".$typ."' AND rechnung.sks = 0 ";
foreach($src AS $tag)
{
$tag .= "%";
$query .= " $combiner (artikel.bezeichn LIKE '$tag' OR rechnung.rechnr LIKE '$tag' OR DATE_FORMAT(rechnung.datetime, '%d.%m.%Y') LIKE '$tag')";
}
}
else
{
$query = "SELECT rechnung.$docnr AS rechnr,
rechnung.id,
DATE_FORMAT(rechnung.datetime, '%d.%m.%Y') AS date,
GROUP_CONCAT(CONCAT(artikelsks.bezeichn1, ' ', artikelsks.bezeichn2) SEPARATOR '
') AS artikel,
adresse_id,
rechnung.typ_id
FROM rechnung
LEFT JOIN rechtyp ON rechnung.typ_id = rechtyp.id
RIGHT JOIN artikelsks ON rechnung.rechnr = artikelsks.rechnr
WHERE partner_id='".$id."' AND rechtyp.id = '".$typ."' AND rechnung.sks = 1 ";
foreach($src AS $tag)
{
$tag .= "%";
$query .= " $combiner (artikelsks.bezeichn1 LIKE '$tag' OR artikelsks.bezeichn2 LIKE '$tag' OR rechnung.rechnr LIKE '$tag' OR DATE_FORMAT(rechnung.datetime, '%d.%m.%Y') LIKE '$tag')";
}
}
$query .= " GROUP BY rechnung.rechnr ORDER BY rechnung.datetime DESC ";
$ret["all"] = $query;
$query .= " LIMIT ".$page*$pagesize.", $pagesize";
$ret["limited"] = $query;
return $ret;
}
function createKdnProjectQry($page,$pagesize,$src,$combiner,$id)
{
$query = "SELECT project.id, project.name,
DATE_FORMAT(project.datetime, '%d.%m.%Y') AS date,
SUM(CASE WHEN rechn = 0 THEN work.std ELSE 0 END) AS work
FROM project
JOIN work ON project.id = work.project_id
AND partner_id='".$id."'";
foreach($src AS $tag)
{
$tag .= "%";
$query .= " $combiner (work.bezeichn LIKE '$tag' OR project.name LIKE '$tag' OR DATE_FORMAT(project.datetime, '%d.%m.%Y') LIKE '$tag')";
}
$query .= " GROUP BY project.id ORDER BY project.datetime DESC ";
$ret["all"] = $query;
$query .= " LIMIT ".$page*$pagesize.", $pagesize";
$ret["limited"] = $query;
return $ret;
}
function createKommQry($page,$pagesize,$src,$combiner,$id)
{
$query = "SELECT adresse.id, adresse.partner_id, firma, vname, nname, vname2, nname2, titel_id, titel2_id, anrede_id, anrede2_id, str, hnr, ort, ortsteil,plz,ort,nr AS tel,vwahl
FROM adresse
LEFT JOIN strasse ON adresse.str_id = strasse.id
LEFT JOIN ort ON ort_id = ort.id
LEFT JOIN tel ON adresse.id = tel.adresse_id
WHERE adresse.partner_id='".$id."' AND adresse.typ_id = '5' ";
foreach($src AS $tag)
{
$tag .= "%";
$query .= " $combiner (ort LIKE '$tag'
OR str LIKE '$tag'
OR nr LIKE '$tag'
OR vname LIKE '$tag'
OR nname LIKE '$tag'
OR vname2 LIKE '$tag'
OR nname2 LIKE '$tag'
OR firma LIKE '$tag')";
}
$query .= " GROUP BY adresse.id ORDER BY adresse.id DESC ";
$ret["all"] = $query;
$query .= " LIMIT ".$page*$pagesize.", $pagesize";
$ret["limited"] = $query;
return $ret;
}
function createRechQry($page,$pagesize,$src,$combiner,$sks=0)
{
$docnr = "rechnr";
if(!$sks)
{
$query = "SELECT CONCAT(ELT(rechnung.typ_id,'R','G','A','B','L','M'),MID(rechnung.$docnr,1,4),'-',MID(rechnung.$docnr,5,2),'-',MID(rechnung.$docnr,7,2),'.',MID(rechnung.$docnr,9,2)) AS drechnr,
rechnung.$docnr AS rechnr,
rechnung.id,
DATE_FORMAT(rechnung.datetime, '%d.%m.%Y') AS date,
GROUP_CONCAT(CONCAT(artikel.bezeichn, ' (', artikel_rechn.wanr, ')') SEPARATOR '
') AS artikel,
adresse_id,
storno,
rechnung.typ_id
FROM rechnung
LEFT JOIN rechtyp ON rechnung.typ_id = rechtyp.id
LEFT JOIN artikel_rechn ON rechnung.id = artikel_rechn.rech_id
LEFT JOIN artikel ON artikel_rechn.art_id = artikel.id
WHERE rechnung.sks = 0";
foreach($src AS $tag)
{
$tag = "%".$tag."%";
$query .= " $combiner (artikel.bezeichn LIKE '$tag' OR
CONCAT(ELT(rechnung.typ_id,'R','G','A','B','L','M'),MID(rechnung.$docnr,1,4),'-',MID(rechnung.$docnr,5,2),'-',MID(rechnung.$docnr,7,2),'.',MID(rechnung.$docnr,9,2)) LIKE '$tag' OR
DATE_FORMAT(rechnung.datetime, '%d.%m.%Y') LIKE '$tag')";
}
}
else
{
$query = "SELECT rechnung.$docnr AS drechnr,
rechnung.$docnr AS rechnr,
rechnung.id,
DATE_FORMAT(rechnung.datetime, '%d.%m.%Y') AS date,
GROUP_CONCAT(CONCAT(artikelsks.bezeichn1, ' ', artikelsks.bezeichn2) SEPARATOR '
') AS artikel,
adresse_id,
storno = 0,
rechnung.typ_id
FROM rechnung
LEFT JOIN rechtyp ON rechnung.typ_id = rechtyp.id
RIGHT JOIN artikelsks ON rechnung.rechnr = artikelsks.rechnr
WHERE rechnung.sks = 1 ";
foreach($src AS $tag)
{
$tag = "%".$tag."%";
$query .= " $combiner (artikelsks.bezeichn1 LIKE '$tag' OR
artikelsks.bezeichn2 LIKE '$tag' OR
rechnung.rechnr LIKE '$tag' OR
DATE_FORMAT(rechnung.datetime, '%d.%m.%Y') LIKE '$tag')";
}
}
$query .= " GROUP BY rechnung.rechnr ORDER BY rechnung.datetime DESC ";
$ret["all"] = $query;
$query .= " LIMIT ".$page*$pagesize.", $pagesize";
$ret["limited"] = $query;
return $ret;
}
function createTermQry($page,$pagesize,$src,$combiner,$termtyp)
{
$query = "SELECT termin.id,termtyp.typ, termin.head, MIN(termtime) AS termtime, SEC_TO_TIME(SUM(TIME_TO_SEC(termdauer))) AS termdauer, user, user2, user3, user4, done, partner_id, adresse_id, termin.id, str, ort, ortsteil, plz, hnr, adresse.vname as vname, adresse.nname as nname,
adresse.firma as firma,
user.vname as uservname, user.nname as usernname, user.color as color,
user2.vname as uservname2, user2.nname as usernname2,
user3.vname as uservname3, user3.nname as usernname3,
user4.vname as uservname4, user4.nname as usernname4,
firma, vname2, nname2
FROM termin
LEFT JOIN termtyp ON termin.typ = termtyp.id
LEFT JOIN adresse ON termin.adresse_id = adresse.id
LEFT JOIN partner ON adresse.partner_id = partner.id
LEFT JOIN strasse ON adresse.str_id = strasse.id
LEFT JOIN ort ON strasse.ort_id = ort.id
LEFT JOIN user ON termin.user = user.id
LEFT JOIN user AS user2 ON termin.user2 = user2.id
LEFT JOIN user AS user3 ON termin.user3 = user3.id
LEFT JOIN user AS user4 ON termin.user4 = user4.id
WHERE ";
if($termtyp == 1)
$query .= "termdauer != '24:00:00' AND termtime != '0000-00-00 00:00:00' AND done = 0 AND act_date < NOW()";
elseif($termtyp == 2)
$query .= "termdauer != '24:00:00' AND termtime = '0000-00-00 00:00:00' AND done = 0 AND act_date < NOW()";
elseif($termtyp == 3)
$query .= "termdauer != '24:00:00' AND done = 1 AND act_date < NOW()";
elseif($termtyp == 4)
$query .= "termdauer != '24:00:00' AND act_date > NOW()";
elseif($termtyp == 5)
$query .= "termdauer = '24:00:00'";
foreach($src AS $tag)
{
$tag = "%".$tag."%";
$query .= " $combiner (termin.head LIKE '$tag' OR
termin.text LIKE '$tag' OR
adresse.firma LIKE '$tag' OR
adresse.vname LIKE '$tag' OR
adresse.nname LIKE '$tag' OR
ort LIKE '$tag' OR
plz LIKE '$tag' OR
str LIKE '$tag' OR
DATE_FORMAT(termtime, '%d.%m.%Y %H:%i') LIKE '$tag')";
}
if($termtyp == 2)
$query .= " GROUP BY main_id ORDER BY ort ASC, termtime DESC";
elseif($termtyp != 5 && $termtyp != 3)
$query .= " GROUP BY main_id ORDER BY termtime ASC";
else
$query .= " GROUP BY main_id ORDER BY termtime DESC";
$ret["all"] = $query;
$query .= " LIMIT ".$page*$pagesize.", $pagesize";
$ret["limited"] = $query;
return $ret;
}
function createZeitQry($page,$pagesize,$src,$combiner,$user)
{
$query = "SELECT zeiten.id,DATE_FORMAT(zeiten.kommen,'%d.%m.%y %H:%i') AS kommen, DATE_FORMAT(zeiten.gehen,'%d.%m.%y %H:%i') AS gehen, zeiten.pause_mins,
floor(TIME_TO_SEC(SUBTIME(TIMEDIFF(gehen,kommen),MAKETIME(FLOOR(pause_mins/60), pause_mins % 60, 0)))/60) AS dauer_mins, floor(TIME_TO_SEC(TIMEDIFF(kommen,STR_TO_DATE(CONCAT(DATE(kommen), ' ', MAKETIME(7,30,0)), '%Y-%m-%d %H:%i:%s')))/60) AS early_mins, user.weekhours*60/5 as sollDayMins
FROM zeiten
LEFT JOIN user ON zeiten.ma_id = user.id
WHERE user.id = '".$user."'";
foreach($src AS $tag)
{
$tag = "%".$tag."%";
$query .= " $combiner (DATE_FORMAT(zeiten.gehen,'%d.%m.%Y') LIKE '$tag' OR
DATE_FORMAT(zeiten.kommen,'%d.%m.%Y') LIKE '$tag')";
}
$query .= " ORDER BY zeiten.kommen DESC";
$ret["all"] = $query;
$query .= " LIMIT ".$page*$pagesize.", $pagesize";
$ret["limited"] = $query;
//echo $query;
return $ret;
}
function createMsgQry($page,$pagesize,$src,$combiner,$user)
{
$query = "SELECT msg, rd, DATE_FORMAT(datetime,'%d.%m.%Y - %H:%i Uhr') AS datetime, send_id, send.vname AS sendvname, send.nname AS sendnname, rec_id, rec.vname AS recvname, rec.nname AS recnname
FROM message
LEFT JOIN user AS rec ON message.rec_id = rec.id
LEFT JOIN user AS send ON message.send_id = send.id
WHERE ";
$query .= "(rec_id = '".$_SESSION["user"]."' AND send_id = '".$user."') OR (rec_id = '".$user."' AND send_id = '".$_SESSION["user"]."')";
foreach($src AS $tag)
{
$tag = "%".$tag."%";
$query .= " $combiner (message.msg LIKE '$tag' OR
DATE_FORMAT(datetime, '%d.%m.%Y %H:%i') LIKE '$tag')";
}
$query .= " ORDER BY message.id ASC";
$ret["all"] = $query;
$query .= " LIMIT ".$page*$pagesize.", $pagesize";
$ret["limited"] = $query;
return $ret;
}
function displayPages($pagesize,$currpage,$numentries,$refreshfunc,$ad_params = "")
{
echo "Seite: ";
if($currpage == 0)
echo " 1 ";
else
echo " 1 ";
$i = 1;
while($numentries > $i*$pagesize)
{
$i++;
if($i<9 || $currpage == $i-1 || $currpage == $i-2 || $currpage == $i || $i*$pagesize > $numentries-$pagesize*2)
{
$gap=0;
if($currpage == $i-1)
echo " ".$i." ";
else
echo " $i ";
}
else
{
if(!$gap)
echo " ..... ";
$gap = 1;
}
}
}
function displaySplitPages($pagesize,$firstcurrpage,$secondcurrpage,$pagesplitNr,$numentries,$refreshfunc,$ad_params = "")
{
if($pagesplitNr == 0)
$currpage=$firstcurrpage;
else
$currpage=$secondcurrpage;
echo "Seite: ";
if($currpage == 0)
echo " 1 ";
else
if($pagesplitNr == 0)
echo " 1 ";
else
echo " 1 ";
$i = 1;
while($numentries > $i*$pagesize)
{
$i++;
if($i<9 || $currpage == $i-1 || $currpage == $i-2 || $currpage == $i || $i*$pagesize > $numentries-$pagesize*2)
{
$gap=0;
if($currpage == $i-1)
echo " ".$i." ";
else
if($pagesplitNr == 0)
echo " $i ";
else
echo " $i ";
}
else
{
if(!$gap)
echo " ..... ";
$gap = 1;
}
}
}
function displayList($header,$entries,$speciallines=array(),$colors=array())
{
echo "
| "; foreach($header AS $head) { echo " | $head | "; } echo "
|---|---|
| "; foreach($entry AS $element) { echo " | $element | "; } echo "
| $element | "; } echo "