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(); } }