oSystem=&$oSystem;
$this->msTPLPath=CURRDIR."tpl/";
}
function gsRun($sClass,$asParams)
{
$this->msVeranstaltungsKey=$sClass;
if($sClass!="__getList")
{
if($this->oVA=$this->oSystem->oDB->goGetRecord("SELECT * FROM tdVeranstaltungen WHERE EndeAnmeldung>=now() AND VeranstaltungsKey=".$this->oSystem->oDB->gsEscapeString($sClass)))
{
if(is_array($asParams))
$sAction=strtolower(array_shift($asParams));
switch($sAction)
{
default:
unset($_SESSION["anmeldung"]);
case "person":
return $this->msPerson($asParams);
case "veranstaltung":
return $this->msVeranstaltungWaehlen($asParams);
case "uebersicht":
return $this->msUebersicht();
case "bestellen":
return $this->msBestellen($asParams);
case "mailspeichern":
return $this->msSaveMail($asParams);
}
}
else
{
return $this->msGetList();
}
}
else
{
return $this->msGetList();
}
if(is_array($asParams))
$sAction=strtolower(array_shift($asParams));
return $sAction;
}
function msSaveMail($asParams)
{
$lAnmeldungPK=$_SESSION["anmeldung"]["savedpk"];
if($asData=$this->oSystem->oClientData->gvGetVariable("__data",false))
{
if(isset($asData["mailaddress"]))
{
$sMail=$asData["mailaddress"];
if(CStringType::isMail($sMail))
{
$asUpdate["EMail"]=$this->oSystem->oDB->gsEscapeString($sMail);
$this->oSystem->oDB->goUpdateArray("tdAnmeldungen",$asUpdate,"AnmeldungPK=".$lAnmeldungPK);
$this->mbMail();
}
}
}
return $this->msBestellungAngenommen();
}
function msGetList()
{
$sQuery="SELECT * FROM tdVeranstaltungen WHERE EndeAnmeldung>=now() ORDER BY EndeAnmeldung";
if($oRes=$this->oSystem->oDB->goQuery($sQuery))
{
$asData=$oRes->gaaGetAllRecords();
foreach($asData as $sKey=>$asV)
{
$asData[$sKey]["URL"]=$this->oSystem->oSiteNavi->gsGetTargetURL("index",$asV["VeranstaltungsKey"]);
}
$oTPL=$this->oSystem->goGetTPLParser($this->msTPLPath."list.tpl");
$oTPL->gbSetBlock("veranstaltungen",$asData);
return $oTPL->gsParse();
}
}
function msPerson($asParams)
{
if(is_array($asParams))
$sAction=strtolower(array_shift($asParams));
switch($sAction)
{
default:
return $this->msPersonForm($this->gasGetError());
case "speichern":
return $this->msPersonSpeichern();
case "verbindungenspeichern":
return $this->msVerbindungenSpeichern();
}
}
function msBestellungAngenommen()
{
$lAnmeldungPK=$_SESSION["anmeldung"]["savedpk"];
$asPerson=$this->oSystem->oDB->gasGetRecord("tdAnmeldungen","AnmeldungPK=".$lAnmeldungPK);
$oAnrede=new CAnrede($this->oSystem,$asPerson["IsCV"]==-1||$asPerson["IsACV"]==-1,$asPerson["Verbindung"]!="");
$oATPL=$oAnrede->goGetTPL("bestellung.gespeichert",$asPerson);
$oATPL->gbSetValue("documentURL",$this->oSystem->oSiteNavi->gsGetDocURL("Anmeldung",array(),"document").ANMELDUNG_DOKUMENT_NAME);
if(CStringType::isMail($asPerson["EMail"]))
{
$asB["nomailgiven"] =false;
$asB["mailok"]["EMAIL"] =$asPerson["EMail"];
}
else
{
$asB["nomailgiven"]["addmail"]=$this->oSystem->oSiteNavi->gsGetURL($this->msVeranstaltungsKey,array("MailSpeichern"));
$asB["mailok"]=false;
}
$oATPL->gbSetButtons($asB);
return $oATPL->gsParse();
}
function msBestellen()
{
if($sCode=$this->oSystem->oClientData->gvGetVariable("__code",false))
{
if($sCode==$_SESSION["anmeldung"]["RANDOMKEY"])
{
$this->msSaveData();
$this->mbPDF();
$this->mbMail();
return $this->msBestellungAngenommen();
}
}
return $this->msUebersicht("Der Code wurde falsch eingegeben");
}
function mbMail()
{
$lAnmeldungPK=$_SESSION["anmeldung"]["savedpk"];
if($asPerson=$this->oSystem->oDB->gasGetRecord("tdAnmeldungen LEFT JOIN tdCountryList ON tdCountryList.StaatPK=tdAnmeldungen.StaatPK","AnmeldungPK=".$lAnmeldungPK))
{
if(CStringType::isMail($asPerson["EMail"])&&$asPerson["EMail"]!="")
{
if(!class_exists("htmlMimeMail"))
require_once(PATHFW."mail/htmlMimeMail.php");
$oAnrede=new CAnrede($this->oSystem,$asPerson["IsCV"]==-1||$asPerson["IsACV"]==-1,$asPerson["Verbindung"]!="");
$oTPL=$oAnrede->goGetTPL("mail",$asPerson);
$oMail=new htmlMimeMail();
$oMail->setSubject(MAIL_SUBJECT);
$oMail->setFrom(ABSENDER_ADDRESS);
$oMail->setReturnPath(ABSENDER_ADDRESS);
$oMail->setText($oTPL->gsParse());
$sFileName=CURRDIR."docs/".str_pad($lAnmeldungPK,8,"0",STR_PAD_LEFT).".pdf";
$sText=$oMail->getFile($sFileName);
$oMail->addAttachment($sText,ANMELDUNG_DOKUMENT_NAME);
$x=$oMail->send(array($asPerson["EMail"]));
}
}
}
function mbPDF()
{
$lAnmeldungsPK=$_SESSION["anmeldung"]["savedpk"];
require_once(CURRDIR."fwreplace/anmeldung.pdf.php");
$oPDF=new CAPDF($this->oSystem);
$oPDF->msGetPDF($lAnmeldungsPK);
}
function msSaveData()
{
$asPerson=$_SESSION["anmeldung"]["person"]["stamm"];
$asAnmeldung["VeranstaltungsPK"]=$this->oVA->VeranstaltungsPK;
$asAnmeldung["Anrede"]=$this->oSystem->oDB->gsEscapeString($asPerson["Anrede"]);
$asAnmeldung["Titel"]=$this->oSystem->oDB->gsEscapeString($asPerson["Titel"]);
$asAnmeldung["Vorname"]=$this->oSystem->oDB->gsEscapeString($asPerson["Vorname"]);
$asAnmeldung["Nachname"]=$this->oSystem->oDB->gsEscapeString($asPerson["Nachname"]);
$asAnmeldung["Verbindung"]=$this->oSystem->oDB->gsEscapeString($asPerson["Verbindung"]);
$bCV=$asPerson["IsCV"]==-1?-1:0;
$bACV=$asPerson["IsCV"]==-1?-1:0;
$asAnmeldung["IsCV"]=$this->oSystem->oDB->gsEscapeString($asPerson["IsCV"]==-1?"-1":"0");
$asAnmeldung["IsACV"]=$this->oSystem->oDB->gsEscapeString($asPerson["IsACV"]==-1?"-1":"0");
$asAnmeldung["Strasse"]=$this->oSystem->oDB->gsEscapeString($asPerson["Strasse"]);
$asAnmeldung["PLZ"]=$this->oSystem->oDB->gsEscapeString($asPerson["PLZ"]);
$asAnmeldung["Ort"]=$this->oSystem->oDB->gsEscapeString($asPerson["Ort"]);
$asAnmeldung["StaatPK"]=$this->oSystem->oDB->gsEscapeString($asPerson["StaatPK"]);
$asAnmeldung["Fax"]=$this->oSystem->oDB->gsEscapeString($asPerson["Fax"]);
$asAnmeldung["EMail"]=$this->oSystem->oDB->gsEscapeString($asPerson["EMail"]);
$asAnmeldung["CreateDate"]="now()";
$asAnmeldung["AnmeldeDatum"]="now()";
$asAnmeldung["Creator"]="NULL";
$asAnmeldung["FromIP"]=$this->oSystem->oDB->gsEscapeString(getenv("REMOTE_ADDR"));
if($_SESSION["anmeldung"]["saved"]!==true)
{
if(isset($_SESSION["anmeldung"]["person"]["HauptVerbindung"])&&$_SESSION["anmeldung"]["person"]["HauptVerbindung"]!="")
{
$asAnmeldung["VerbindungsPK"]=$_SESSION["anmeldung"]["person"]["HauptVerbindung"];
}
$_SESSION["anmeldung"]["saved"]=true;
if($oRes=$this->oSystem->oDB->goInsertArray("tdAnmeldungen",$asAnmeldung))
{
$lAnmeldungsPK=$oRes->glGetInsertID();
$_SESSION["anmeldung"]["savedpk"]=$lAnmeldungsPK;
$asUpdate["BuchungsKey"]=$this->gsGenerateKey($lAnmeldungsPK);
$this->oSystem->oDB->goUpdateArray("tdAnmeldungen",$asUpdate,"AnmeldungPK=".$lAnmeldungsPK);
}
if($_SESSION["anmeldung"]["person"]["NebenVerbindungen"]!==false)
{
if(is_array($_SESSION["anmeldung"]["person"]["NebenVerbindungen"]))
foreach($_SESSION["anmeldung"]["person"]["NebenVerbindungen"] as $lVerbindungsPK)
{
$asV["AnmeldungPK"]=$lAnmeldungsPK;
$asV["VerbindungsPK"]=$lVerbindungsPK;
$oRes=$this->oSystem->oDB->goInsertArray("tdAnmeldungenVerbindungen",$asV);
}
}
if(is_array($_SESSION["anmeldung"]["programm"]["karten"]))
{
$asKarten=$_SESSION["anmeldung"]["programm"]["karten"];
foreach($asKarten as $lProgrammPK=>$asInfo)
{
unset($asInsert);
$oProgramm=$this->oSystem->oDB->goGetRecord("tdProgrammPunkte","ProgrammPK=".$lProgrammPK);
$asInsert["AnmeldungPK"]=$lAnmeldungsPK;
$asInsert["VeranstaltungsPK"]=$this->oVA->VeranstaltungsPK;
$asInsert["ProgrammPK"]=$lProgrammPK;
$asInsert["KartenNormal"]=$asInfo["NORMAL"]==""?0:$asInfo["NORMAL"];
$asInsert["PreisNormal"]=$asInsert["KartenNormal"]*$this->oSystem->oDB->gsGetFieldValue("tdProgrammPunkte","PreisNormal","ProgrammPK=".$lProgrammPK,"IFNULL(PreisNormal,0) as PreisNormal");
$asInsert["KartenRabattiert"]=$asInfo["RABATTIERT"]==""?0:$asInfo["RABATTIERT"];
$asInsert["PreisRabattiert"]=$asInsert["KartenRabattiert"]*$this->oSystem->oDB->gsGetFieldValue("tdProgrammPunkte","PreisRabattiert","ProgrammPK=".$lProgrammPK,"IFNULL(PreisRabattiert,0) as PreisRabattiert");
//$asInsert["PreisNormalText"]=$oProgramm->GratisForACV==-1&&$bACV==-1?"ÖCV-Mitglied, Preis frei laut programmpunkt":"Preis nach Liste";
//$asInsert["PreisRabattText"]=$oProgramm->GratisForACV==-1&&$bACV==-1?"ÖCV-Mitglied, Preis frei laut programmpunkt":"Preis nach Liste";
$this->oSystem->oDB->goInsertArray("tdAnmeldungenProgrammPunkte",$asInsert);
}
$this->gbSetSumme($lAnmeldungsPK);
}
}
}
function gbSetSumme($lAnmeldungPK)
{
$asPerson=$this->oSystem->oDB->gasGetRecord("tdAnmeldungen LEFT JOIN tdCountryList ON tdCountryList.StaatPK=tdAnmeldungen.StaatPK","AnmeldungPK=".$lAnmeldungPK);
$bACV=$asPerson["IsACV"]=="-1"?"-1":"0";
$sQuery="SELECT
tdProgrammPunkte.Name as PGMName,
tdProgrammPunkte.PreisRabattiert,
tdProgrammPunkte.PreisNormal,
IF(GratisForACV=-1&&".$bACV."=-1,0,IFNULL(tdProgrammPunkte.PreisNormal,0)) as PreisNormal,
IF(GratisForACV=-1&&".$bACV."=-1,0,IFNULL(tdProgrammPunkte.PreisRabattiert,0)) as PreisRabattiert,
IF(IFNULL(tdProgrammPunkte.PreisRabattiert,-1)=-1,'".WORT_FUER_GRATIS."',IF(GratisForACV=-1&&".$bACV."=-1,'".WORT_FUER_GRATIS_OECV."',CONCAT(REPLACE(tdProgrammPunkte.PreisRabattiert,'.',','),' €'))) as PreisRabattiertView,
IF(IFNULL(tdProgrammPunkte.PreisNormal,-1)=-1,'".WORT_FUER_GRATIS."', IF(GratisForACV=-1&&".$bACV."=-1,'".WORT_FUER_GRATIS_OECV."',CONCAT(REPLACE(tdProgrammPunkte.PreisNormal,'.',','),' €'))) as PreisNormalView,
tdAnmeldungenProgrammPunkte.KartenNormal,
tdAnmeldungenProgrammPunkte.KartenRabattiert,
DATE_FORMAT(tdProgrammPunkte.BeginnDatum,'%d.%m.%y') as BDate,
TIME_FORMAT(tdProgrammPunkte.BeginnUhrzeit,'%H:%i') as BTime,
tdProgrammPunktTypen.Name
FROM
tdAnmeldungenProgrammPunkte
LEFT JOIN
tdProgrammPunkte ON tdProgrammPunkte.ProgrammPK=tdAnmeldungenProgrammPunkte.ProgrammPK
LEFT JOIN
tdProgrammPunktTypen ON tdProgrammPunkte.TypePK=tdProgrammPunktTypen.TypePK
WHERE
AnmeldungPK=".$lAnmeldungPK;
if($oRes=$this->oSystem->oDB->goQuery($sQuery))
{
$asP=$oRes->gaaGetAllRecords();
foreach($asP as $asPGM)
{
$asPGM["Summe"]=$asPGM["KartenNormal"]*$asPGM["PreisNormal"]+$asPGM["KartenRabattiert"]*$asPGM["PreisRabattiert"];
$lSumme+=$asPGM["Summe"];
}
}
$this->oSystem->oDB->goUpdate("tdAnmeldungen","GesamtBetrag=".$this->oSystem->oDB->gsEscapeString($lSumme),"AnmeldungPK=".$lAnmeldungPK);
}
function gsGenerateKey($lStart,$sBlockLength=8)
{
$lMul=pow(10,$sBlockLength);
$lMin=$lStart*$lMul;
$lMax=($lStart+1)*$lMul-1;
$value=md5(mt_rand($lMin,$lMax));
$lFillFrom=strlen($lStart);
$sVal=mt_rand(10000000,99999999);
$sValue=substr($sVal,0,8-$lFillFrom).$lStart;
return $sValue;
}
function msUebersicht($sError="")
{
$oTPL=$this->oSystem->goGetTPLParser($this->msTPLPath."uebersicht.tpl");
$asPerson=$_SESSION["anmeldung"]["person"]["stamm"];
$lStaatPK=$asPerson["StaatPK"];
$oTPL->gbSetValue("Staat",$this->oSystem->oDB->gsGetFieldValue("tdCountryList","Name","StaatPK='".$lStaatPK."'"));
$oTPL->gbSetValue("NOMAIL","");
if(!CStringType::isMail($asPerson["EMail"]))
$oTPL->gbSetValue("NOMAIL",WORT_FUER_KEINE_MAIL_MOEGLICH);
$asPerson["IsCVShow"]=$asPerson["IsCV"]==-1?"Ja":"Nein";
$asPerson["IsACVShow"]=$asPerson["IsACV"]==-1?"Ja":"Nein";
$oTPL->gbSetValArray($asPerson);
$asData=$this->gasGetProgramm();
$oTPL->gbSetValue("ERRORTXT",$sError);
$oTPL->gbSetBlock("programm",$asData["DATEN"]);
$oTPL->gbSetValue("SUMMEGESAMT",number_format($asData["SUMME"],2,",","."));
$_SESSION["anmeldung"]["RANDOMKEY"]=mt_rand(1000,9999);
$oTPL->gbSetValue("imageurl",$this->oSystem->oSiteNavi->gsGetURL("Code",array(),"image"));
$oTPL->gbSetValue("__order__",$this->oSystem->oSiteNavi->gsGetURL($this->msVeranstaltungsKey,array("Bestellen")));
return $oTPL->gsParse();
}
function gasGetProgramm()
{
$asPerson=$asPerson=$_SESSION["anmeldung"]["person"]["stamm"];
$bACV=$asPerson["IsACV"]==-1?-1:0;
$asData=$_SESSION["anmeldung"]["programm"]["karten"];
foreach($asData as $lProgrammPK=>$asK)
{
if((isset($asK["NORMAL"])&&$asK["NORMAL"]>0)||(isset($asK["RABATTIERT"])&&$asK["RABATTIERT"]>0))
$asP[]=$lProgrammPK;
}
$pgm=join(",",$asP);
$sQuery="SELECT
*,
time_Format(BeginnUhrzeit,'%H:%i') as START_UHRZEIT,
IF(GratisForACV=-1&&".$bACV."=-1,0,IFNULL(PreisNormal,0)) as PreisNormal,
IF(GratisForACV=-1&&".$bACV."=-1,0,IFNULL(PreisRabattiert,0)) as PreisRabattiert,
IF(IFNULL(EndeDatum,-1)=-1,'".WORT_FUER_OFFENESENDE."',CONCAT('bis ',IF(EndeDatum=BeginnDatum,'',date_format(EndeDatum,'%d.%m.%Y')),TIME_FORMAT(EndeUhrzeit,'%H:%i'))) as ENDEDATUM,
IF(
PreisRabattiert=0,'".WORT_FUER_GRATIS."',
IF(GratisForACV=-1&&".$bACV."=-1,'".WORT_FUER_GRATIS_OECV."',
IF(IFNULL(PreisRabattiert,-1)=-1,'".WORT_FUER_NICHT_RABATTIERT."',
CONCAT(REPLACE(PreisRabattiert,'.',','),' €')))) as PreisRabattiertView,
IF(
PreisNormal=0,'".WORT_FUER_GRATIS."',
IF(GratisForACV=-1&&".$bACV."=-1,'".WORT_FUER_GRATIS_OECV."',
IF(IFNULL(PreisNormal,-1)=-1,'".WORT_FUER_KEIN_NORMALPREIS."',
CONCAT(REPLACE(PreisNormal,'.',','),' €')))) as PreisNormalView
FROM
tdProgrammPunkte
WHERE
VeranstaltungsPK=".$this->oVA->VeranstaltungsPK." AND ProgrammPK IN (".$pgm.")";
if($oRes=$this->oSystem->oDB->goQuery($sQuery))
{
if($asPGM=$oRes->gaaGetAllRecords())
{
foreach($asPGM as $sKey=>$asI)
{
$lProgrammPK=$asI["ProgrammPK"];
$asPGM[$sKey]["ANZAHLKARTENN"]="";
$asPGM[$sKey]["ANZAHLKARTENR"]="";
$lKartenR=0;
$lKartenN=0;
if(isset($asData[$lProgrammPK]["RABATTIERT"]))
{
$lKartenR=$asPGM[$sKey]["ANZAHLKARTENR"]=$asData[$lProgrammPK]["RABATTIERT"];
}
else
{
$asPGM[$sKey]["PreisRabattiertView"]="";
}
if(isset($asData[$lProgrammPK]["NORMAL"]))
{
$lKartenN=$asPGM[$sKey]["ANZAHLKARTENN"]=$asData[$lProgrammPK]["NORMAL"];
}
else
{
$asPGM[$sKey]["PreisNormalView"]="";
}
$lSumme=$lKartenN*$asI["PreisNormal"]+$lKartenR*$asI["PreisRabattiert"];
$asPGM[$sKey]["Summe"]=number_format($lSumme,2,",",".");
$lGesamtBetrag+=$lSumme;
}
}
}
return array("DATEN"=>$asPGM,"SUMME"=>$lGesamtBetrag);
}
function msVerbindungenSpeichern()
{
$asPerson=$_SESSION["anmeldung"]["person"]["stamm"];
if($asData=$this->oSystem->oClientData->gvGetVariable("__data",false))
{
$_SESSION["anmeldung"]["person"]["HauptVerbindung"]=$asData["VerbindungHaupt"];
if(!isset($asData["VerbindungenNeben"]))
$_SESSION["anmeldung"]["person"]["NebenVerbindungen"]=false;
else
$_SESSION["anmeldung"]["person"]["NebenVerbindungen"]=$asData["VerbindungenNeben"];
if(!isset($asData["VerbindungHaupt"]))
{
return $this->msPersonVerbindung($asPerson["IsCV"]==-1,$asPerson["IsACV"]==-1,strtolower($asPerson["Anrede"])=="herr",ERR_VERBINDUNG);
}
else
{
return $this->msVeranstaltungWaehlen();
}
}
return $this->msPersonVerbindung($asPerson["IsCV"]==-1,$asPerson["IsACV"]==-1,strtolower($asPerson["Anrede"])=="herr",ERR_VERBINDUNG);
}
function msPersonVerbindung($bCV,$bACV,$bHerr,$sErr="")
{
if($bCV===true)
$asSwitch[]="DachVerband='CV'";
if($bACV===true)
$asSwitch[]="DachVerband='OECV'";
$sSwitch="(".join(" OR ",$asSwitch).")";
$sQuery="SELECT * FROM tdVerbindungen WHERE ".$sSwitch." ORDER BY OrgName";
if($oRes=$this->oSystem->oDB->goQuery($sQuery))
{
$lCounter=0;
while($asVerbindung=$oRes->gasGetRecord())
{
if($lCounter>0&&$lCounter%VERBINDUNGEN_PRO_ZEILE==0)
{
$oTPL=$this->oSystem->goGetTPLParser($this->msTPLPath."verbindungen.horizontal.tpl");
$oTPL->gbSetBlock("daten",$asBuild);
$asRows[]["daten"]=$oTPL->gsParse();
unset($oTPL);
$asBuild=array();
}
$asVerbindung["hauptChecked"]="";
if($_SESSION["anmeldung"]["person"]["HauptVerbindung"]==$asVerbindung["VerbindungsPK"])
{
$asVerbindung["hauptChecked"]="checked";
}
$asVerbindung["nebenChecked"]="";
if(is_array($_SESSION["anmeldung"]["person"]["NebenVerbindungen"]))
if(in_array($asVerbindung["VerbindungsPK"],$_SESSION["anmeldung"]["person"]["NebenVerbindungen"]))
{
$asVerbindung["nebenChecked"]="checked";
}
$asBuild[]=$asVerbindung;
$lCounter++;
}
if(sizeof($asBuild)>0)
{
$oTPL=$this->oSystem->goGetTPLParser($this->msTPLPath."verbindungen.horizontal.tpl");
$oTPL->gbSetBlock("daten",$asBuild);
$asRows[]["daten"]=$oTPL->gsParse();
unset($oTPL);
$asBuild=array();
}
$oTPL=$this->oSystem->goGetTPLParser($this->msTPLPath."verbindungen.vertikal.tpl");
$oTPL->gbSetValue("ANREDE",$bHerr===true?CFG_ANREDE_CV_HERR:CFG_ANREDE_CV_FRAU);
$oTPL->gbSetValue("error",$sErr);
$oTPL->gbSetValue("__save__",$this->oSystem->oSiteNavi->gsGetURL($this->msVeranstaltungsKey,array("Person","VerbindungenSpeichern")));
// $oTPL->gbSetValue("setURL",$this->oSystem->oSiteNavi->gsGetURL($this->msClass,$this->__AddAction(array("Liste","Bearbeiten","SetCatfinder"))));
$oTPL->gbSetBlock("gross",$asRows);
return $oTPL->gsParse();
}
}
function msVeranstaltungWaehlen($asParams=false)
{
if(is_array($asParams))
$sAction=strtolower(array_shift($asParams));
switch($sAction)
{
default:
case "auswahl":
return $this->msVeranstaltungsAuswahl();
case "speichern":
return $this->msVeranstaltungSpeichern();
}
}
function msVeranstaltungsAuswahl()
{
if($asData=$this->oSystem->oClientData->gvGetVariable("__data",false))
{
if(is_array($asData["AnzahlKarten"]))
foreach($asData["AnzahlKarten"] as $lProgrammPK=>$asKarten)
{
if($asKarten["NORMAL"]!="")
{
$_SESSION["anmeldung"]["programm"]["karten"][$lProgrammPK]["NORMAL"]=abs($asKarten["NORMAL"]);
}
else
unset($_SESSION["anmeldung"]["programm"]["karten"][$lProgrammPK]["NORMAL"]);
if($asKarten["RABATTIERT"]!="")
$_SESSION["anmeldung"]["programm"]["karten"][$lProgrammPK]["RABATTIERT"]=abs($asKarten["RABATTIERT"]);
else
unset($_SESSION["anmeldung"]["programm"]["karten"][$lProgrammPK]["RABATTIERT"]);
}
}
$asPerson=$_SESSION["anmeldung"]["person"]["stamm"];
$oAnrede=new CAnrede($this->oSystem,$asPerson["IsCV"]==-1||$asPerson["IsACV"]==-1,$asPerson["Verbindung"]!="");
$oATPL=$oAnrede->goGetTPL("programm.auswahl",$asPerson);
$oTPL=$this->oSystem->goGetTPLParser($this->msTPLPath."auswahl.programm.tpl",true,-3,2);
$oTPL->gbSetValue("ANREDE",$oATPL->gsParse());
$sSelectURL=$this->oSystem->oSiteNavi->gsGetURL($this->msVeranstaltungsKey,array("Veranstaltung"));
$sQuery="SELECT *,
date_format(BeginnDatum,'%d.%m.%y') as DATUM,
concat('".$sSelectURL."?SELTAG=',date_format(BeginnDatum,'%d%m%Y')) as SELECTDATUMURL,
date_format(BeginnDatum,'%d%m%Y') as SELTAG
FROM tdProgrammPunkte WHERE VeranstaltungsPK=".$this->oVA->VeranstaltungsPK." GROUP BY BeginnDatum ORDER BY BeginnDatum";
if($oRes=$this->oSystem->oDB->goQuery($sQuery))
{
$asTage=$oRes->gaaGetAllRecords();
}
if($sSelectDatum=$this->oSystem->oClientData->gvGetVariable("SELTAG",false))
{
if($sSelectDatum=="false")
{
return $this->msUebersicht();
}
}
else
{
$sSelectDatum=$asTage[0]["SELTAG"];
}
$oTPL->gbSetValue("SPEICHERNWORT",WORT_FUER_SPEICHERN_UND_WEITER);
foreach($asTage as $sKey=>$asP)
{
if($asTage[$sKey]["SELTAG"]==$sSelectDatum)
{
$lNextDatum=$sKey+1;
$asTage[$sKey]["bgcolor"]=CURRENT_ELEMENT_BGCOLOR;
}
else
$asTage[$sKey]["bgcolor"]=INACTIVE_ELEMENT_BGCOLOR;
}
$oTPL->gbSetValue("SELTAG","false");
if(isset($asTage[$lNextDatum]))
{
$oTPL->gbSetValue("SELTAG",$asTage[$lNextDatum]["SELTAG"]);
}
if($sSelectDatum==$asTage[sizeof($asTage)-1]["SELTAG"])
{
if($this->glGetCountOrder()>0)
{
$oTPL->gbSetValue("SPEICHERNWORT",WORT_FUER_SPEICHERN_UND_UEBERSICHT);
}
else
$oTPL->gbSetValue("SELTAG",$sSelectDatum);
}
$oTPL->gbSetBlock("tage",$asTage);
$asPerson=$_SESSION["anmeldung"]["person"]["stamm"];
$bACV=$asPerson["IsACV"]==-1?-1:0;
$asTypen=array();
$sQuery="SELECT tdProgrammPunktTypen.Name,tdProgrammPunktTypen.TypePK FROM tdProgrammPunktTypen,tdProgrammPunkte WHERE
tdProgrammPunktTypen.TypePK=tdProgrammPunkte.TypePK AND VeranstaltungsPK=".$this->oVA->VeranstaltungsPK." AND DATE_FORMAT(BeginnDatum,'%d%m%Y')=".$this->oSystem->oDB->gsEscapeString($sSelectDatum)." GROUP BY tdProgrammPunkte.TypePK";
if($oX=$this->oSystem->oDB->goQuery($sQuery))
{
$asTypen=$oX->gaaGetAllRecords();
}
$sKey=0;
foreach($asTypen as $asType)
{
$sQuery="SELECT
*,
TIME_FORMAT(BeginnUhrzeit,'%H:%i') as START_UHRZEIT,
IF(GratisForACV=-1&&".$bACV."=-1,0,IFNULL(PreisNormal,0)) as PreisNormal,
IF(GratisForACV=-1&&".$bACV."=-1,0,IFNULL(PreisRabattiert,0)) as PreisRabattiert,
IF(IFNULL(EndeDatum,-1)=-1,'".WORT_FUER_OFFENESENDE."',CONCAT('bis ',IF(EndeDatum=BeginnDatum,'',date_format(EndeDatum,'%d.%m.%Y')),TIME_FORMAT(EndeUhrzeit,'%H:%i'))) as ENDEDATUM,
IF(
PreisRabattiert=0,'".WORT_FUER_GRATIS."',
IF(GratisForACV=-1&&".$bACV."=-1,'".WORT_FUER_GRATIS_OECV."',
IF(IFNULL(PreisRabattiert,-1)=-1,'".WORT_FUER_NICHT_RABATTIERT."',
CONCAT(REPLACE(PreisRabattiert,'.',','),' €')))) as PreisRabattiertView,
IF(IFNULL(PreisRabattiert,-1)!=-1,
CONCAT(''),
'') as AnzahlRInput,
IF(IFNULL(PreisNormal,-1)!=-1,
CONCAT(''),
'') as AnzahlNInput,
IF(
PreisNormal=0,'".WORT_FUER_GRATIS."',
IF(GratisForACV=-1&&".$bACV."=-1,'".WORT_FUER_GRATIS_OECV."',
IF(IFNULL(PreisNormal,-1)=-1,'".WORT_FUER_KEIN_NORMALPREIS."',
CONCAT(REPLACE(PreisNormal,'.',','),' €')))) as PreisNormalView
FROM
tdProgrammPunkte
WHERE
tdProgrammPunkte.TypePK=".$asType["TypePK"]." AND VeranstaltungsPK=".$this->oVA->VeranstaltungsPK." AND DATE_FORMAT(BeginnDatum,'%d%m%Y')=".$this->oSystem->oDB->gsEscapeString($sSelectDatum)." ORDER BY CONCAT(BeginnDatum,' ',BeginnUhrzeit)";
if($oRes=$this->oSystem->oDB->goQuery($sQuery))
{
$oTPLD=$this->oSystem->goGetTPLParser($this->msTPLPath."kategorisiert.pgm.tpl");
$oTPLD->gbSetValue("KATEGORIE",$asType["Name"]);
$asPGMInfo=$oRes->gaaGetAllRecords();
foreach($asPGMInfo as $sKey=>$asPGM)
{
$lProgrammPK=$asPGM["ProgrammPK"];
if(isset($_SESSION["anmeldung"]["programm"]["karten"][$lProgrammPK]["RABATTIERT"]))
$asPGMInfo[$sKey]["ANZAHLKARTENR"]=$_SESSION["anmeldung"]["programm"]["karten"][$lProgrammPK]["RABATTIERT"];
else
$asPGMInfo[$sKey]["ANZAHLKARTENR"]="";
if(isset($_SESSION["anmeldung"]["programm"]["karten"][$lProgrammPK]["NORMAL"]))
$asPGMInfo[$sKey]["ANZAHLKARTENN"]=$_SESSION["anmeldung"]["programm"]["karten"][$lProgrammPK]["NORMAL"];
else
$asPGMInfo[$sKey]["ANZAHLKARTENN"]="";
}
$oTPLD->gbSetBlock("programm",$asPGMInfo);
$asProgrammDaten[]["daten"]=$oTPLD->gsParse();
unset($oTPLD);
}
else
echo mysql_error();
}
$oTPL->gbSetBlock("programm",$asProgrammDaten);
$oTPL->gbSetValue("__save__",$this->oSystem->oSiteNavi->gsGetURL($this->msVeranstaltungsKey,array("Veranstaltung","Auswahl")));
return $oTPL->gsParse();
}
function gasGetError()
{
$asError["errNachname"]="";
$asError["errStrasse"]="";
$asError["errPLZ"]="";
$asError["errOrt"]="";
$asError["errEMail"]="";
return $asError;
}
function glGetCountOrder()
{
$lSumme=0;
//test
if(is_array($_SESSION["anmeldung"]["programm"]["karten"]))
foreach($_SESSION["anmeldung"]["programm"]["karten"] as $sKey=>$asPGM)
{
if(isset($asPGM["NORMAL"])&&$asPGM["NORMAL"]>0)
{
$lSumme+=$asPGM["NORMAL"];
}
if(isset($asPGM["RABATTIERT"])&&$asPGM["RABATTIERT"]>0)
{
$lSumme+=$asPGM["RABATTIERT"];
}
}
return $lSumme;
}
function msPersonSpeichern()
{
if($asData=$this->oSystem->oClientData->gvGetVariable("__data",false))
{
$asError=$this->gasGetError();
$_SESSION["anmeldung"]["person"]["stamm"]=$asData;
if(strlen($asData["Nachname"])<2)
{
$bError=true;
$asError["errNachname"]=ERR_NACHNAME;
}
if(strlen($asData["Strasse"])<2)
{
$bError=true;
$asError["errStrasse"]=ERR_STRASSE;
}
if(strlen($asData["Ort"])<2)
{
$bError=true;
$asError["errOrt"]=ERR_ORT;
}
if(strlen($asData["PLZ"])<2)
{
$bError=true;
$asError["errPLZ"]=ERR_PLZ;
}
if(!CStringType::isMail($asData["EMail"],true))
{
$bError=true;
$asError["errEMail"]=ERR_EMAIL;
}
if($bError===true)
{
return $this->msPersonForm($asError);
}
$bCV=$asData["IsCV"]==-1||$asData["IsACV"]==-1;
if($bCV===true)
{
return $this->msPersonVerbindung($asData["IsCV"]==-1,$asData["IsACV"]==-1,strtolower($asData["Anrede"])=="herr");
}
else
{
return $this->msVeranstaltungWaehlen();
}
}
return "FEHLER";
}
function gasGetEmpty()
{
$asPerson=$_SESSION["anmeldung"]["person"]["stamm"];
$asData["AnredeHerr"] =$asPerson["Anrede"]=="Herr"||$asPerson["Anrede"]==""?"CHECKED":"";
$asData["AnredeFrau"] =$asPerson["Anrede"]=="Frau"?"CHECKED":"";
$asData["Titel"] =$asPerson["Titel"];
$asData["Verbindung"] =$asPerson["Verbindung"];
$asData["Vorname"] =$asPerson["Vorname"];
$asData["Nachname"] =$asPerson["Nachname"];
$asData["IsCVJa"] =$asPerson["IsCV"]=="-1"?"checked":"";
$asData["IsCVNein"] =$asPerson["IsCV"]!="-1"?"checked":"";
$asData["IsACVJa"] =$asPerson["IsACV"]=="-1"?"checked":"";
$asData["IsACVNein"] =$asPerson["IsACV"]!="-1"?"checked":"";
$asData["Strasse"] =$asPerson["Strasse"];
$asData["PLZ"] =$asPerson["PLZ"];
$asData["Ort"] =$asPerson["Ort"];
$asD=$this->oSystem->oDBStore->gasGetStaatenSelectData(29);
$asData["Staat"]=$this->oSystem->oUI->gsGetSelectBox($asD,"__data[StaatPK]",array("class"=>"transpSelect","style"=>"width:150"));
$asData["Fax"] =$asPerson["Fax"];
$asData["EMail"] =$asPerson["EMail"];
return $asData;
}
function msPersonForm($asErr)
{
$oTPL=$this->oSystem->goGetTPLParser($this->msTPLPath."anmeldung.1.tpl");
$oTPL->gbSetValArray($this->gasGetEmpty());
$oTPL->gbSetValArray($asErr);
$oTPL->gbSetValue("__save__",$this->oSystem->oSiteNavi->gsGetURL($this->msVeranstaltungsKey,array("Person","Speichern")));
return $oTPL->gsParse();
}
}