ta['content']['cruisebook']['alle_reedereien_info'][ $data['content']['cruisebook']['kreuzfahrtReedereiID'] ]; #dump($data['content']['cruisebook']['reederei_info']); $temp = getSchiffeDetails ($db, array(0=>$data['content']['cruisebook']['kreuzfahrtSchiffID']), false); # $data['content']['reedereienIds'] => es werden IMMER ALLE Reedereien abgefragt. $data['content']['cruisebook']['schiff_info'] = $temp[$data['content']['cruisebook']['kreuzfahrtSchiffID']]; $temp = getHaefenDetails ($db, array(0=>$data['content']['cruisebook']['kreuzfahrtHafenID'], 1=>$data['content']['cruisebook']['kreuzfahrtHafenID_ziel']), false); # $data['content']['reedereienIds'] => es werden IMMER ALLE Reedereien abgefragt. $data['content']['cruisebook']['hafen_info_start'] = $temp[$data['content']['cruisebook']['kreuzfahrtHafenID']]; $data['content']['cruisebook']['hafen_info_ziel'] = $temp[$data['content']['cruisebook']['kreuzfahrtHafenID_ziel']]; unset($data['content']['cruisebook']['schiffInfo']); # temporär deaktiviert, weil zu lang #dump($data['content']['cruisebook'] , 'Kreuzfahrt Array in Buchung.php', 'gelb'); #$data['content']['cruisebook'] = $data['content']['cruisebook']; /* Zur vereinfachung. Das sind die Daten die mit der $_SESSION['kreuzfahrt']['kreuzfahrt_id'] geholt wurden. */ #dump($_SESSION, 'session'); if( !empty($_SESSION['kreuzfahrt']['termin_id']) && !empty($_SESSION['kreuzfahrtPreisMatrix'][ $_SESSION['kreuzfahrt']['termin_id'] ]['aidaCruiseId'] ) ) { $_SESSION['kreuzfahrt']['aidaCruiseId'] = $_SESSION['kreuzfahrtPreisMatrix'][ $_SESSION['kreuzfahrt']['termin_id'] ]['aidaCruiseId'] ; } if( !empty($_SESSION['kreuzfahrt']['termin_id']) && !empty($_SESSION['kreuzfahrtPreisMatrix'][ $_SESSION['kreuzfahrt']['termin_id'] ]['mscCruiseId'] ) ) { $_SESSION['kreuzfahrt']['mscCruiseId'] = $_SESSION['kreuzfahrtPreisMatrix'][ $_SESSION['kreuzfahrt']['termin_id'] ]['mscCruiseId'] ; } if( !empty($_SESSION['kreuzfahrt']['termin_id']) && !empty($_SESSION['kreuzfahrtPreisMatrix'][ $_SESSION['kreuzfahrt']['termin_id'] ]['external_api_cruise_id'] ) && $data['content']['cruisebook']['kreuzfahrtReedereiID'] == 3 ) { $_SESSION['kreuzfahrt']['costaCruiseId'] = $_SESSION['kreuzfahrtPreisMatrix'][ $_SESSION['kreuzfahrt']['termin_id'] ]['external_api_cruise_id'] ; } /* Altersgrenzen ergänzen */ if(empty($data['content']['cruisebook']['reederei_info']['alter_min_adult'] )) $data['content']['cruisebook']['reederei_info']['alter_min_adult'] = $setup['default_altersgrenzen_reederei']['adult']; if(empty($data['content']['cruisebook']['reederei_info']['alter_min_junior'])) $data['content']['cruisebook']['reederei_info']['alter_min_junior'] = $setup['default_altersgrenzen_reederei']['junior']; if(empty($data['content']['cruisebook']['reederei_info']['alter_min_child'] )) $data['content']['cruisebook']['reederei_info']['alter_min_child'] = $setup['default_altersgrenzen_reederei']['child']; $data['content']['cruisebook']['reederei_info']['alter_max_adult'] = 99; $data['content']['cruisebook']['reederei_info']['alter_max_junior'] = $data['content']['cruisebook']['reederei_info']['alter_min_adult'] - 1; $data['content']['cruisebook']['reederei_info']['alter_max_child'] = $data['content']['cruisebook']['reederei_info']['alter_min_junior'] - 1; $data['content']['cruisebook']['reederei_info']['alter_max_baby'] = $data['content']['cruisebook']['reederei_info']['alter_min_child'] - 1; $data['content']['cruisebook']['reederei_info']['altersgrenzen']['adult'] = $data['content']['cruisebook']['reederei_info']['alter_min_adult'] = intval($data['content']['cruisebook']['reederei_info']['alter_min_adult'] ); $data['content']['cruisebook']['reederei_info']['altersgrenzen']['junior'] = $data['content']['cruisebook']['reederei_info']['alter_min_junior'] = intval($data['content']['cruisebook']['reederei_info']['alter_min_junior']); $data['content']['cruisebook']['reederei_info']['altersgrenzen']['child'] = $data['content']['cruisebook']['reederei_info']['alter_min_child'] = intval($data['content']['cruisebook']['reederei_info']['alter_min_child'] ); $data['content']['cruisebook']['reederei_info']['altersgrenzen']['infant'] = $data['content']['cruisebook']['reederei_info']['alter_min_baby'] = intval($data['content']['cruisebook']['reederei_info']['alter_min_baby'] ); /* Deckinformationen abfragen */ $query = " SELECT * FROM kreuzfahrt_schiffsdecks WHERE reederei_id = '".$data['content']['cruisebook']['kreuzfahrtReedereiID']."' AND schiff_id = '".$data['content']['cruisebook']['kreuzfahrtSchiffID']."'"; $result = $db->query($query)->fetchAll(); $data['content']['schiffsdecks'][$data['content']['cruisebook']['kreuzfahrtReedereiID']]['decknummer'] = $data['content']['schiffsdecks'][$data['content']['cruisebook']['kreuzfahrtReedereiID']]['reederei_codes'] = array(); foreach($result as $value) { if(empty($value['deck_code'])) $value['deck_code'] = $value['deck_nr']; $data['content']['schiffsdecks'][ $value['reederei_id'] ]['reederei_codes'][ $value['deck_code'] ]['id'] = $value['id']; $data['content']['schiffsdecks'][ $value['reederei_id'] ]['reederei_codes'][ $value['deck_code'] ]['deck_nr'] = $value['deck_nr']; $data['content']['schiffsdecks'][ $value['reederei_id'] ]['reederei_codes'][ $value['deck_code'] ]['schiff_id'] = $value['schiff_id']; $data['content']['schiffsdecks'][ $value['reederei_id'] ]['reederei_codes'][ $value['deck_code'] ]['reederei_id'] = $value['reederei_id']; $data['content']['schiffsdecks'][ $value['reederei_id'] ]['reederei_codes'][ $value['deck_code'] ]['name'] = $value['name_de']; $data['content']['schiffsdecks'][ $value['reederei_id'] ]['reederei_codes'][ $value['deck_code'] ]['beschreibung'] = $value['beschreibung_de']; $data['content']['schiffsdecks'][ $value['reederei_id'] ]['reederei_codes'][ $value['deck_code'] ]['zusatz1'] = $value['zusatz1_de']; $data['content']['schiffsdecks'][ $value['reederei_id'] ]['reederei_codes'][ $value['deck_code'] ]['foto_datei'] = $value['foto_datei']; $data['content']['schiffsdecks'][ $value['reederei_id'] ]['reederei_codes'][ $value['deck_code'] ]['grundriss_datei'] = $value['grundriss_datei']; $data['content']['schiffsdecks'][ $value['reederei_id'] ]['decknummer'][$value['deck_nr']] = $data['content']['schiffsdecks'][ $value['reederei_id'] ]['reederei_codes'][ $value['deck_code'] ]; /* wenn mindestens ein Deck mit Grundriss Datei vorhanden ist, dann gelten Deckpläne und Deckplanlegende als verfügbar */ if(!empty($value['grundriss_datei'])) $data['content']['deckplaene_verfuegbar'][ $value['schiff_id'] ] = 1; } /* Abfrage kreuzfahrt_kategorien_fix. Zuerst wird mit schiffid=0 alles gefüllt, danach mit der richtigen schiff_id */ $query = " SELECT * FROM kreuzfahrt_kategorien_fix WHERE reederei_id = '".$data['content']['cruisebook']['kreuzfahrtReedereiID']."' AND ( schiff_id = '".$data['content']['cruisebook']['kreuzfahrtSchiffID']."' OR schiff_id = 0 ) ORDER BY schiff_id asc "; #dump($query); $result = $db->query( $query )->fetchAll(); foreach($result as $key => $value) { /* Hinweis: schiffId steht hier: $data['content']['cruisebook']['kreuzfahrtSchiffID'] */ /* hier werden die Kategorien mit bekanntem Kategoriecode aufgefüllt */ if(!empty($value['kategorie_code'])) { $data['content']['cruisebook']['kategorie_fix'][ $value['kategorie_code'] ]['kategorie_id'] = $value['id']; $data['content']['cruisebook']['kategorie_fix'][ $value['kategorie_code'] ]['kategorie_code'] = $value['kategorie_code']; $data['content']['cruisebook']['kategorie_fix'][ $value['kategorie_code'] ]['kategorie_name'] = $value['kategorie_name']; $data['content']['cruisebook']['kategorie_fix'][ $value['kategorie_code'] ]['kategorie_name_collect_reederei']= $value['kategorie_name_collect_reederei']; $data['content']['cruisebook']['kategorie_fix'][ $value['kategorie_code'] ]['kabinen_nummer_waehlbar'] = $value['kabinen_nummer_waehlbar']; $data['content']['cruisebook']['kategorie_fix'][ $value['kategorie_code'] ]['kategorie_typ'] = $value['kategorie_typ']; $data['content']['cruisebook']['kategorie_fix'][ $value['kategorie_code'] ]['kategorie_typ_collect_reederei'] = $value['kategorie_typ_collect_reederei']; $data['content']['cruisebook']['kategorie_fix'][ $value['kategorie_code'] ]['name_de'] = $value['name_de']; $data['content']['cruisebook']['kategorie_fix'][ $value['kategorie_code'] ]['shorthinweis_de'] = $value['shorthinweis_de']; $data['content']['cruisebook']['kategorie_fix'][ $value['kategorie_code'] ]['beschreibung_de'] = $value['beschreibung_de']; $data['content']['cruisebook']['kategorie_fix'][ $value['kategorie_code'] ]['zusatz1_de'] = $value['zusatz1_de']; $data['content']['cruisebook']['kategorie_fix'][ $value['kategorie_code'] ]['foto_datei'] = $value['foto_datei']; $data['content']['cruisebook']['kategorie_fix'][ $value['kategorie_code'] ]['grundriss_datei'] = $value['grundriss_datei']; $data['content']['cruisebook']['kategorie_fix'][ $value['kategorie_code'] ]['inside_outside'] = $value['inside_outside']; $data['content']['cruisebook']['kategorie_fix_ids'][ $value['id'] ] = $value['kategorie_code']; #$data['content']['cruisebook']['kategorie_fix_namen'][ $value['kategorie_code'] ]['id'] = $value['id']; #$data['content']['cruisebook']['kategorie_fix_namen'][ $value['kategorie_code'] ]['kategorie_code'] = $value['kategorie_code']; #$data['content']['cruisebook']['kategorie_fix_namen'][ $value['kategorie_code'] ]['kategorie_name'] = $value['kategorie_name']; #$data['content']['cruisebook']['kategorie_fix_namen'][ $value['kategorie_code'] ]['kategorie_typ'] = $value['kategorie_typ']; } /* hier werden default werde für die Kategorietypen aufgefüllt. das ist für die KR-Kategorien relevant */ if(!empty($value['is_kategorietyp_default'])) { $data['content']['cruisebook']['kategorietyp_defaults'][ $value['kategorie_typ'] ]['id'] = $value['id']; $data['content']['cruisebook']['kategorietyp_defaults'][ $value['kategorie_typ'] ]['kategorie_name'] = $value['kategorie_name']; $data['content']['cruisebook']['kategorietyp_defaults'][ $value['kategorie_code'] ]['kabinen_nummer_waehlbar'] = $value['kabinen_nummer_waehlbar']; $data['content']['cruisebook']['kategorietyp_defaults'][ $value['kategorie_typ'] ]['kategorie_typ'] = $value['kategorie_typ']; $data['content']['cruisebook']['kategorietyp_defaults'][ $value['kategorie_typ'] ]['foto_datei'] = $value['foto_datei']; $data['content']['cruisebook']['kategorietyp_defaults'][ $value['kategorie_typ'] ]['grundriss_datei'] = $value['grundriss_datei']; } #$data['content']['cruisebook']['kategorie_schiff_typen'][ $value['schiff_id'] ][ $value['kategorie_code'] ]['kategorie_id'] = $value['id']; #$data['content']['cruisebook']['kategorie_schiff_typen'][ $value['schiff_id'] ][ $value['kategorie_code'] ]['kategorie_code'] = $value['kategorie_code']; #$data['content']['cruisebook']['kategorie_schiff_typen'][ $value['schiff_id'] ][ $value['kategorie_code'] ]['kategorie_name'] = $value['kategorie_name']; #$data['content']['cruisebook']['kategorie_schiff_typen'][ $value['schiff_id'] ][ $value['kategorie_code'] ]['kategorie_typ'] = $value['kategorie_typ']; } /* Preiskonditionen IDs und Namen beschaffen */ $query = " SELECT id, preiskondition_code, preiskondition_name, reederei_id, quelle_preiskondition_detail, quelle_preiskondition_gruppe, is_dynamic_packaging_flug, api_fluegepreise_gruppiert_nach, is_allinklusive, kabinen_auswahl, is_fluginklusive, preise_per_api, bahnleistung_inkl_id, show_in_frontend, show_in_booking_prices_from_db, show_in_booking_prices_from_liveapi, reederei_spez_info_1, reederei_spez_info_2, sortierung_bei_preisgleichheit FROM kreuzfahrt_preiskonditionen WHERE reederei_id = '".$data['content']['cruisebook']['kreuzfahrtReedereiID']."' OR reederei_id = 0 OR reederei_id IS NULL"; $result = $db->query($query)->fetchAll(); $data['content']['pks_mit_is_dynamic_packaging_flug'] = $data['content']['show_preiskondition_in_buchung_from_db'] = $data['content']['show_preiskondition_in_buchung_from_liveapi'] = array(); foreach($result as $value) { $data['content']['preiskonditionen_codes'][$value['quelle_preiskondition_gruppe']][$value['preiskondition_code']]['preiskondition_id'] = $value['id']; $data['content']['preiskonditionen_codes'][$value['quelle_preiskondition_gruppe']][$value['preiskondition_code']]['preiskondition_code'] = $value['preiskondition_code']; $data['content']['preiskonditionen_codes'][$value['quelle_preiskondition_gruppe']][$value['preiskondition_code']]['preiskondition_name'] = $value['preiskondition_name']; $data['content']['preiskonditionen_codes'][$value['quelle_preiskondition_gruppe']][$value['preiskondition_code']]['reederei_id'] = $value['reederei_id']; $data['content']['preiskonditionen_codes'][$value['quelle_preiskondition_gruppe']][$value['preiskondition_code']]['quelle_preiskondition_detail'] = $value['quelle_preiskondition_detail']; $data['content']['preiskonditionen_codes'][$value['quelle_preiskondition_gruppe']][$value['preiskondition_code']]['quelle_preiskondition_gruppe'] = $value['quelle_preiskondition_gruppe']; $data['content']['preiskonditionen_codes'][$value['quelle_preiskondition_gruppe']][$value['preiskondition_code']]['kabinen_auswahl'] = $value['kabinen_auswahl']; $data['content']['preiskonditionen_codes'][$value['quelle_preiskondition_gruppe']][$value['preiskondition_code']]['show_in_frontend'] = $value['show_in_frontend']; $data['content']['preiskonditionen_codes'][$value['quelle_preiskondition_gruppe']][$value['preiskondition_code']]['show_in_booking_prices_from_db'] = $value['show_in_booking_prices_from_db']; $data['content']['preiskonditionen_codes'][$value['quelle_preiskondition_gruppe']][$value['preiskondition_code']]['show_in_booking_prices_from_liveapi']= $value['show_in_booking_prices_from_liveapi']; $data['content']['preiskonditionen_codes'][$value['quelle_preiskondition_gruppe']][$value['preiskondition_code']]['sortierung_bei_preisgleichheit'] = $value['sortierung_bei_preisgleichheit']; $data['content']['preiskonditionen_codes'][$value['quelle_preiskondition_gruppe']][$value['preiskondition_code']]['is_dynamic_packaging_flug'] = $value['is_dynamic_packaging_flug']; $data['content']['preiskonditionen_ids'][$value['id']]['preiskondition_id'] = $value['id']; $data['content']['preiskonditionen_ids'][$value['id']]['preiskondition_code'] = $value['preiskondition_code']; $data['content']['preiskonditionen_ids'][$value['id']]['preiskondition_name'] = $value['preiskondition_name']; $data['content']['preiskonditionen_ids'][$value['id']]['reederei_id'] = $value['reederei_id']; $data['content']['preiskonditionen_ids'][$value['id']]['quelle_preiskondition_gruppe'] = $value['quelle_preiskondition_gruppe']; $data['content']['preiskonditionen_ids'][$value['id']]['quelle_preiskondition_detail'] = $value['quelle_preiskondition_detail']; $data['content']['preiskonditionen_ids'][$value['id']]['kabinen_auswahl'] = $value['kabinen_auswahl']; $data['content']['preiskonditionen_ids'][$value['id']]['show_in_frontend'] = $value['show_in_frontend']; $data['content']['preiskonditionen_ids'][$value['id']]['show_in_booking_prices_from_db'] = $value['show_in_booking_prices_from_db']; $data['content']['preiskonditionen_ids'][$value['id']]['show_in_booking_prices_from_liveapi'] = $value['show_in_booking_prices_from_liveapi']; $data['content']['preiskonditionen_ids'][$value['id']]['is_allinklusive'] = $value['is_allinklusive']; $data['content']['preiskonditionen_ids'][$value['id']]['is_fluginklusive'] = $value['is_fluginklusive']; $data['content']['preiskonditionen_ids'][$value['id']]['sortierung_bei_preisgleichheit'] = $value['sortierung_bei_preisgleichheit']; $data['content']['preiskonditionen_ids'][$value['id']]['is_dynamic_packaging_flug'] = $value['is_dynamic_packaging_flug']; $data['content']['preiskonditionen_ids'][$value['id']]['bahnleistung_inkl_id'] = $value['bahnleistung_inkl_id']; $data['content']['preiskonditionen_ids'][$value['id']]['api_fluegepreise_gruppiert_nach'] = $value['api_fluegepreise_gruppiert_nach']; /* Sonstige Angaben */ if(!empty($value['show_in_booking_prices_from_db'])) $data['content']['show_preiskondition_in_buchung_from_db'][ $value['id'] ] = $value['id']; if(!empty($value['show_in_booking_prices_from_liveapi'])) $data['content']['show_preiskondition_in_buchung_from_liveapi'][ $value['id'] ] = $value['id']; if(!empty($value['is_dynamic_packaging_flug'])) $data['content']['pks_mit_is_dynamic_packaging_flug'][$value['id']] = $value['id']; /* Zusätzliche Reedereispezfische Daten abfragen: Preiskonditionen speziell für MSC aufarbeiten (ehemals price_types) */ if(!empty($data['content']['cruisebook']['kreuzfahrtReedereiID']) && $data['content']['cruisebook']['kreuzfahrtReedereiID'] == 14) { $data['content']['msc_price_types']['nach_pricetype_faredesc'][$value['reederei_spez_info_1']][$value['reederei_spez_info_2']]['preiskonditionenId'] = $value['id']; $data['content']['msc_price_types']['nach_pricetype'][$value['reederei_spez_info_1']]['preiskonditionenId'] = $value['id']; $data['content']['msc_price_types']['nach_pricetype'][$value['reederei_spez_info_1']]['show_in_booking_prices_from_db'] = $value['show_in_booking_prices_from_db']; $data['content']['msc_price_types']['nach_pricetype'][$value['reederei_spez_info_1']]['show_in_booking_prices_from_liveapi'] = $value['show_in_booking_prices_from_liveapi']; } } # /* Preiskonditionen Gruppen beschaffen */ # $query = " SELECT * from kreuzfahrt_flug_preiskondition_gruppen "; # $result = $db->query($query)->fetchAll(); # foreach($result as $value) { # $data['content']['flug_preiskondition_gruppen'][$value['id']]['id'] = $value['id']; # $data['content']['flug_preiskondition_gruppen'][$value['id']]['name'] = $value['name']; # } /* Data Preiskonditionen aus Setup.ini in Array umwandeln @geändert */ #$data['content']['show_preiskondition_in_frontend'] = explode(',', $setup['buchung']['show_preiskondition_in_frontend']); #@geändert #$data['content']['show_preiskondition_in_buchung_from_db'] = explode(',', $setup['buchung']['show_preiskondition_in_buchung_from_db']); #@geändert #$data['content']['show_preiskondition_in_buchung_from_liveapi'] = explode(',', $setup['buchung']['show_preiskondition_in_buchung_from_liveapi']); #@geändert #dump($data['content']['show_preiskondition_in_buchung_from_liveapi']); /* Zahlungsarten beschaffen (v1) */ $query = " SELECT id, url_code, name_de, show_in_buchung, is_payment from kreuzfahrt_zahlungsarten "; $result = $db->query($query)->fetchAll(); foreach($result as $value) { $data['content']['zahlungsarten_codes'][$value['url_code']]['url_code'] = $value['url_code']; $data['content']['zahlungsarten_codes'][$value['url_code']]['name'] = $value['name_de']; $data['content']['zahlungsarten_codes'][$value['url_code']]['id'] = $value['id']; $data['content']['zahlungsarten_codes'][$value['url_code']]['show_in_buchung'] = $value['show_in_buchung']; $data['content']['zahlungsarten_codes'][$value['url_code']]['is_payment'] = $value['is_payment']; $data['content']['zahlungsarten_ids'][$value['id']]['url_code'] = $value['url_code']; $data['content']['zahlungsarten_ids'][$value['id']]['name'] = $value['name_de']; $data['content']['zahlungsarten_ids'][$value['id']]['id'] = $value['id']; $data['content']['zahlungsarten_ids'][$value['id']]['show_in_buchung'] = $value['show_in_buchung']; $data['content']['zahlungsarten_ids'][$value['id']]['is_payment'] = $value['is_payment']; } /* Bahnzuordnungen beschaffen */ $query = " SELECT b.base_id_hafen as base_id_hafen, b.base_id_airport as base_id_airport, b.bahnhof_name as bahnhof_name, b.bahnhof_nr5 as bahnhof_nr5, b.bahnhof_nr7 as bahnhof_nr7, b.verkehrsverbund_name as verkehrsverbund_name, f.iata_code as iata_code FROM kreuzfahrt_deutschebahn_zuordnungen as b LEFT JOIN kreuzfahrt_iata_flughaefen as f on f.id = b.base_id_airport "; $result = $db->query($query)->fetchAll(); foreach($result as $value) { if(!empty($value['base_id_hafen'])) { $data['content']['deutschebahn_zuordnungen']['hafen'][ $value['base_id_hafen'] ]['base_id_hafen'] = $value['base_id_hafen']; $data['content']['deutschebahn_zuordnungen']['hafen'][ $value['base_id_hafen'] ]['bahnhof_name'] = $value['bahnhof_name']; $data['content']['deutschebahn_zuordnungen']['hafen'][ $value['base_id_hafen'] ]['bahnhof_nr5'] = $value['bahnhof_nr5']; $data['content']['deutschebahn_zuordnungen']['hafen'][ $value['base_id_hafen'] ]['bahnhof_nr7'] = $value['bahnhof_nr7']; $data['content']['deutschebahn_zuordnungen']['hafen'][ $value['base_id_hafen'] ]['verkehrsverbund_name'] = $value['verkehrsverbund_name']; } if(!empty($value['base_id_airport'])) { $data['content']['deutschebahn_zuordnungen']['airport_id'][ $value['base_id_airport'] ]['base_id_airport'] = $value['base_id_airport']; $data['content']['deutschebahn_zuordnungen']['airport_id'][ $value['base_id_airport'] ]['bahnhof_name'] = $value['bahnhof_name']; $data['content']['deutschebahn_zuordnungen']['airport_id'][ $value['base_id_airport'] ]['bahnhof_nr5'] = $value['bahnhof_nr5']; $data['content']['deutschebahn_zuordnungen']['airport_id'][ $value['base_id_airport'] ]['bahnhof_nr7'] = $value['bahnhof_nr7']; $data['content']['deutschebahn_zuordnungen']['airport_id'][ $value['base_id_airport'] ]['verkehrsverbund_name'] = $value['verkehrsverbund_name']; $data['content']['deutschebahn_zuordnungen']['airport_id'][ $value['base_id_airport'] ]['iata_code'] = $value['iata_code']; $data['content']['deutschebahn_zuordnungen']['airport_code'][ $value['iata_code'] ]['base_id_airport'] = $value['base_id_airport']; $data['content']['deutschebahn_zuordnungen']['airport_code'][ $value['iata_code'] ]['bahnhof_name'] = $value['bahnhof_name']; $data['content']['deutschebahn_zuordnungen']['airport_code'][ $value['iata_code'] ]['bahnhof_nr5'] = $value['bahnhof_nr5']; $data['content']['deutschebahn_zuordnungen']['airport_code'][ $value['iata_code'] ]['bahnhof_nr7'] = $value['bahnhof_nr7']; $data['content']['deutschebahn_zuordnungen']['airport_code'][ $value['iata_code'] ]['verkehrsverbund_name'] = $value['verkehrsverbund_name']; $data['content']['deutschebahn_zuordnungen']['airport_code'][ $value['iata_code'] ]['iata_code'] = $value['iata_code']; } } /* Bahnzuordnungen */ $query = " SELECT * FROM kreuzfahrt_bahnleistung "; $result = $db->query($query)->fetchAll(); foreach($result as $value) { $data['content']['bahnleistungen'][$value['id']]['bahnleistung_id'] = $value['id']; $data['content']['bahnleistungen'][$value['id']]['leistung_code'] = $value['leistung_code']; $data['content']['bahnleistungen'][$value['id']]['name_frontend'] = $value['name_frontend']; $data['content']['bahnleistungen'][$value['id']]['preis'] = $value['preis']; $data['content']['bahnleistungen'][$value['id']]['waehrung'] = $value['waehrung']; $data['content']['bahnleistungen'][$value['id']]['auto_man'] = $value['auto_man']; $data['content']['bahnleistungen'][$value['id']]['inkl_opt'] = $value['inkl_opt']; $data['content']['bahnleistungen'][$value['id']]['leistung_name'] = $value['leistung_name']; $data['content']['bahnleistungen'][$value['id']]['kommentar'] = $value['kommentar']; $data['content']['bahnleistungen'][$value['id']]['datenquelle_id'] = $value['datenquelle_id']; } #/* Routendaten beschaffen. Muss eigentlich vor der Preisabfrage gemacht werden. Denn wenn die CruiseID hier nicht enthalten ist, darf diese Reise hier nicht angeboten werden. */ #if(!empty($_SESSION['kreuzfahrt']['aidaCruiseId']) && !empty($_SESSION['kreuzfahrt']['aidaCruiseId']) && $_SESSION['kreuzfahrt']['aidaCruiseId'] == 'aida') { # /* Aus Raw-Cruises # $query = " SELECT cruiseId , itineraryCode, shipCode, depDate, arrDate # FROM aida_raw_cruises where cruiseId = '". $_SESSION['kreuzfahrt']['aidaCruiseId']."' LIMIT 1 " ; # dump( $query, 'Abfrage nach cruiseId', '', 'zu'); # $result = $db->query($query)->fetchAll(); # $_SESSION['kreuzfahrt']['itineraryCode'] = $result[0]['itineraryCode']; # $_SESSION['kreuzfahrt']['shipCode'] = $result[0]['shipCode']; # $_SESSION['kreuzfahrt']['depDate'] = $result[0]['depDate']; # $_SESSION['kreuzfahrt']['arrDate'] = $result[0]['arrDate']; # */ #$_SESSION['kreuzfahrt']['itineraryCode'] = $data['content']['cruisebook']['aida_raw_cruises_data'][ $_SESSION['kreuzfahrt']['aidaCruiseId'] ]['itineraryCode'] = $value['itineraryCode']; #$_SESSION['kreuzfahrt']['shipCode'] = $data['content']['cruisebook']['aida_raw_cruises_data'][ $_SESSION['kreuzfahrt']['aidaCruiseId'] ]['shipCode'] = $value['shipCode']; #$_SESSION['kreuzfahrt']['depDate'] = $data['content']['cruisebook']['aida_raw_cruises_data'][ $_SESSION['kreuzfahrt']['aidaCruiseId'] ]['depDate'] = $value['depDate']; #$_SESSION['kreuzfahrt']['arrDate'] = $data['content']['cruisebook']['aida_raw_cruises_data'][ $_SESSION['kreuzfahrt']['aidaCruiseId'] ]['arrDate'] = $value['arrDate']; #/* Aus itaneraries segments: Muss später in Kreuzfahrt Details Abfrage verschoben werden. */ #$query = " SELECT itineraryCode, segment_nummer, portCode, portName, countryCode, depTime, arrDay, arrDate, arrTime # FROM aida_itineraries_segments where itineraryCode = '". $_SESSION['kreuzfahrt']['itineraryCode']."' order by segment_nummer " ; #$result = $db->query($query)->fetchAll(); #foreach($result as $value_reiseverlauf) { # if(empty($temp_segmentnummer)) { $temp_segmentnummer = 0; } else { $temp_segmentnummer++; } # $_SESSION['reiseverlauf_segmente'][ $value_reiseverlauf['segment_nummer'] ]['segment_nummer'] = $value_reiseverlauf['segment_nummer']; # $_SESSION['reiseverlauf_segmente'][ $value_reiseverlauf['segment_nummer'] ]['portCode'] = $value_reiseverlauf['portCode']; # $_SESSION['reiseverlauf_segmente'][ $value_reiseverlauf['segment_nummer'] ]['portName'] = $value_reiseverlauf['portName']; # $_SESSION['reiseverlauf_segmente'][ $value_reiseverlauf['segment_nummer'] ]['countryCode'] = $value_reiseverlauf['countryCode']; # $_SESSION['reiseverlauf_segmente'][ $value_reiseverlauf['segment_nummer'] ]['depTime'] = $value_reiseverlauf['depTime']; # $_SESSION['reiseverlauf_segmente'][ $value_reiseverlauf['segment_nummer'] ]['arrDay'] = $value_reiseverlauf['arrDay']; # $_SESSION['reiseverlauf_segmente'][ $value_reiseverlauf['segment_nummer'] ]['arrDate'] = $value_reiseverlauf['arrDate']; # $_SESSION['reiseverlauf_segmente'][ $value_reiseverlauf['segment_nummer'] ]['arrTime'] = $value_reiseverlauf['arrTime']; #} #$_SESSION['kreuzfahrt']['starthafen'] = $_SESSION['reiseverlauf_segmente'][0]['portName']; #$_SESSION['kreuzfahrt']['zielhafen'] = $_SESSION['reiseverlauf_segmente'][$temp_segmentnummer]['portName']; # #} /* verwendete Flughäfen Abfrage (Abreiseflughäfen) vorgegebene Flughäfen aus kreuzfahrt_verwendete_flughaefen */ $query = " SELECT v.sortierung as sortierung, f.id as flughafen_id, f.typ as airport_area_typ, f.airportarea_id as airportarea_id, f.iata_code as iata_code, f.airport_name as airport_name, f.airport_name_short as airport_name_short, f.city_de as city_name FROM kreuzfahrt_verwendete_flughaefen as v, kreuzfahrt_iata_flughaefen as f WHERE v.domain_id = '".$data['input']['domainId']."' AND v.flughafen_id = f.id ORDER BY city_name ASC"; #dump($query, 'Abreiseflughäfen abfrage 1'); $result = $db->query($query)->fetchAll(); #dump($result); foreach($result as $key => $value) { /* Verwendete Start Ziel Kombinationen gemäß Datenbank vormerken */ $data['content']['verwendete_flughaefen'][ $value['flughafen_id'] ]['airport_area_typ'] = $value['airport_area_typ']; $data['content']['verwendete_flughaefen'][ $value['flughafen_id'] ]['airportarea_id'] = $value['airportarea_id']; $data['content']['verwendete_flughaefen'][ $value['flughafen_id'] ]['iata_code'] = $value['iata_code']; $data['content']['verwendete_flughaefen'][ $value['flughafen_id'] ]['airport_name'] = $value['airport_name']; $data['content']['verwendete_flughaefen'][ $value['flughafen_id'] ]['airport_name_short'] = $value['airport_name_short']; $data['content']['verwendete_flughaefen'][ $value['flughafen_id'] ]['city_name'] = $value['city_name']; } /* Variablen initialisieren */ if(empty($_SESSION['kreuzfahrt']['zusatzleistungen'])) $_SESSION['kreuzfahrt']['zusatzleistungen'] = array(); /* Teaser beschaffen */ #dump( $data['umgebung'], 'data umgebung'); #dump( $GLOBALS, ' $GLOBALS'); $showOn = array('showOn_urls' => $GLOBALS['website']['url'], 'showOn_contenttypes' => $data['umgebung']['pageType'], 'showOn_kreuzfahrt_ids' => '', 'showOn_rangeName' => $data['umgebung']['range']); $data['content']['allTeaser'] = createTeaserDetailed($db, $server, $setup, $showOn, $debug = false); /* => der HTML Code für die Kontaktdaten im Header steht nun in $data['content']['allTeaser']['header_kontaktdaten'][0]['standard'] . Bitte nicht mehr das aus common.inc verwenden! */ add_info_meldungen(__FILE__, __FUNCTION__, __LINE__, 'book_vorbereitungen_und_daten_beschaffen beendet'); } /***********************************************************************************************************************************************************/ /* Weitergehende Datenauswertung und Datenermittlung aus den Kreuzfahrtdaten und DB Abfragen /***********************************************************************************************************************************************************/ function book_weitergehende_datenermittlung() { global $data, $db, $setup, $server; add_info_meldungen(__FILE__, __FUNCTION__, __LINE__, 'book_weitergehende_datenermittlung gestartet'); #dump($data['content']['cruisebook'], 'content cruisebook am anfang von book_weitergehende_datenermittlung', 'gelb', 'zu'); #dump($data['content']['booking'], 'content booking am anfang von book_weitergehende_datenermittlung', 'gelb', 'zu'); #dump($_SESSION['kreuzfahrt'], '_SESSION', 'gelb', 'zu'); #dump(__LINE__); #dump($_SESSION['kreuzfahrt']['termin_id']); #dump($data['content']['cruisebook']); # /* Zeiten für Hafen Parkplatz * (ab hier nach oben) */ /* Reisezeiten kalkulieren aus Routenplänen (Wird für Parkplätze benötigt) */ if(!empty($_SESSION['kreuzfahrt']['termin_id']) && !empty($data['content']['cruisebook']['start_endzeiten'][ $_SESSION['kreuzfahrt']['termin_id'] ]['start_uhrzeit'])) { #dump(__LINE__); $param['in_time'] = $data['content']['cruisebook']['start_endzeiten'][ $_SESSION['kreuzfahrt']['termin_id'] ]['start_datum'].' '.$data['content']['cruisebook']['start_endzeiten'][ $_SESSION['kreuzfahrt']['termin_id'] ]['start_uhrzeit']; $param['in_type'] = 'xx.xx.xxxx xx:xx'; $param['korrektur_sekunden'] = -3600*3; $param['out_type'] = 'array_xxxx-xx-xx_xxxx'; $data['content']['booking']['start_zeit_hafen_parkplatz'] = convert_datetime($param); } if(!empty($_SESSION['kreuzfahrt']['termin_id']) && !empty($data['content']['cruisebook']['start_endzeiten'][ $_SESSION['kreuzfahrt']['termin_id'] ]['end_uhrzeit'])) { $param['in_time'] = $data['content']['cruisebook']['start_endzeiten'][ $_SESSION['kreuzfahrt']['termin_id'] ]['end_datum'].' '.$data['content']['cruisebook']['start_endzeiten'][ $_SESSION['kreuzfahrt']['termin_id'] ]['end_uhrzeit']; $param['in_type'] = 'xx.xx.xxxx xx:xx'; $param['korrektur_sekunden'] = +3600*3; $param['out_type'] = 'array_xxxx-xx-xx_xxxx'; $data['content']['booking']['ende_zeit_hafen_parkplatz'] = convert_datetime($param); } /* Wenn keine Reisezeiten aus Routenplänen bekannt ist, wird standardmäßig die folgende Zeit eingetragen */ if(!empty($_SESSION['kreuzfahrt']['termin_id'])) { if(!empty($_SESSION['kreuzfahrtPreisMatrix'][ $_SESSION['kreuzfahrt']['termin_id'] ]['terminAnreise']) && !empty($_SESSION['kreuzfahrtPreisMatrix'][ $_SESSION['kreuzfahrt']['termin_id'] ]['terminAbreise'])) { if(empty($data['content']['booking']['start_zeit_hafen_parkplatz']['time'])) $data['content']['booking']['start_zeit_hafen_parkplatz']['time'] = '0600'; if(empty($data['content']['booking']['ende_zeit_hafen_parkplatz']['time'])) $data['content']['booking']['ende_zeit_hafen_parkplatz']['time'] = '2200'; if(empty($data['content']['booking']['start_zeit_hafen_parkplatz']['date'])) $data['content']['booking']['start_zeit_hafen_parkplatz']['date'] = $_SESSION['kreuzfahrtPreisMatrix'][ $_SESSION['kreuzfahrt']['termin_id'] ]['terminAnreise']; if(empty($data['content']['booking']['ende_zeit_hafen_parkplatz']['date'])) $data['content']['booking']['ende_zeit_hafen_parkplatz']['date'] = $_SESSION['kreuzfahrtPreisMatrix'][ $_SESSION['kreuzfahrt']['termin_id'] ]['terminAbreise']; } } /* Zeiten für Flughafen Parkplatz */ if(!empty($_SESSION['kreuzfahrt']['flug'])) { # Bis auf weiteres augesetzt. Sofern irgendwann genaue Flugzeiten vorhandne sind, könnte Option 1 aktiviert werden. die zweite Option mit allgemein +-1 Tag macht keinen Sinn mehr, da von Option 3 (Korrekturzeiten via Admintool) genauer umgesetzt #/* Standardfall: Wenn Flugzeiten vorhanden sind, dann Reisezeit für Flug ergänzen (Reisestartzeit + 24h) */ #if(!empty($_SESSION['kreuzfahrt']['termin_id']) && !empty($data['content']['cruisebook']['start_endzeiten'][ $_SESSION['kreuzfahrt']['termin_id'] ]['start_uhrzeit'])) { # $param['in_time'] = $data['content']['cruisebook']['start_endzeiten'][ $_SESSION['kreuzfahrt']['termin_id'] ]['start_datum'].' '.$data['content']['cruisebook']['start_endzeiten'][ $_SESSION['kreuzfahrt']['termin_id'] ]['start_uhrzeit']; # $param['in_type'] = 'xx.xx.xxxx xx:xx'; # $param['korrektur_sekunden'] = -3600*24; # $param['out_type'] = 'array_xxxx-xx-xx_xxxx'; # $data['content']['booking']['start_zeit_flughafen_parkplatz'] = convert_datetime($param); #} #if(!empty($_SESSION['kreuzfahrt']['termin_id']) && !empty($data['content']['cruisebook']['start_endzeiten'][ $_SESSION['kreuzfahrt']['termin_id'] ]['end_uhrzeit'])) { # $param['in_time'] = $data['content']['cruisebook']['start_endzeiten'][ $_SESSION['kreuzfahrt']['termin_id'] ]['end_datum'].' '.$data['content']['cruisebook']['start_endzeiten'][ $_SESSION['kreuzfahrt']['termin_id'] ]['end_uhrzeit']; # $param['in_type'] = 'xx.xx.xxxx xx:xx'; # $param['korrektur_sekunden'] = +3600*24; # $param['out_type'] = 'array_xxxx-xx-xx_xxxx'; # $data['content']['booking']['ende_zeit_flughafen_parkplatz'] = convert_datetime($param); #} # /* Wenn bisher nichts vorhanden ist, wird das die Zeit von 6 Uhr bis 22 Uhr angenommen. Davon dann -1 und +1 Tag */ if(empty($data['content']['booking']['start_zeit_flughafen_parkplatz']['time'])) $data['content']['booking']['start_zeit_flughafen_parkplatz']['time'] = '0600'; if(empty($data['content']['booking']['ende_zeit_flughafen_parkplatz']['time'])) $data['content']['booking']['ende_zeit_flughafen_parkplatz']['time'] = '2200'; # #if(empty($data['content']['booking']['start_zeit_flughafen_parkplatz']['date'])) { # $param['in_time'] = $_SESSION['kreuzfahrtPreisMatrix'][ $_SESSION['kreuzfahrt']['termin_id'] ]['terminAnreise']; # $param['in_type'] = 'xxxx-xx-xx'; # $param['korrektur_sekunden'] = -3600*24; # $param['out_type'] = 'xxxx-xx-xx'; # $data['content']['booking']['start_zeit_flughafen_parkplatz']['date'] = convert_datetime($param); #} # #if(empty($data['content']['booking']['ende_zeit_flughafen_parkplatz']['date'])) { # $param['in_time'] = $_SESSION['kreuzfahrtPreisMatrix'][ $_SESSION['kreuzfahrt']['termin_id'] ]['terminAbreise']; # $param['in_type'] = 'xxxx-xx-xx'; # $param['korrektur_sekunden'] = +3600*24; # $param['out_type'] = 'xxxx-xx-xx'; # $data['content']['booking']['ende_zeit_flughafen_parkplatz']['date'] = convert_datetime($param); #} /* Manuelle Angaben in Flughafenverschiebung hat Vorrang: Wenn in Hafeneinstellungen etwas vorhanden ist, hat dies Vorrang. Ansonsten Kreuzfahrteinstellung. */ if( $data['content']['cruisebook']['xlang']['kreuzfahrt_start_flughafen_verschiebung'] != 'standard') { $param['in_time'] = $_SESSION['kreuzfahrtPreisMatrix'][ $_SESSION['kreuzfahrt']['termin_id'] ]['terminAnreise']; $param['in_type'] = 'xxxx-xx-xx'; $param['korrektur_sekunden'] = intval($data['content']['cruisebook']['xlang']['kreuzfahrt_start_flughafen_verschiebung']) * 3600*24; $param['out_type'] = 'xxxx-xx-xx'; $data['content']['booking']['start_zeit_flughafen_parkplatz']['date'] = convert_datetime($param); } else { $param['in_time'] = $_SESSION['kreuzfahrtPreisMatrix'][ $_SESSION['kreuzfahrt']['termin_id'] ]['terminAnreise']; $param['in_type'] = 'xxxx-xx-xx'; $param['korrektur_sekunden'] = intval($data['content']['cruisebook']['hafen_info_start']['hafen_start_flughafen_verschiebung']) * 3600*24; $param['out_type'] = 'xxxx-xx-xx'; $data['content']['booking']['start_zeit_flughafen_parkplatz']['date'] = convert_datetime($param); } if( $data['content']['cruisebook']['xlang']['kreuzfahrt_ende_flughafen_verschiebung'] != 'standard' ) { $param['in_time'] = $_SESSION['kreuzfahrtPreisMatrix'][ $_SESSION['kreuzfahrt']['termin_id'] ]['terminAbreise']; $param['in_type'] = 'xxxx-xx-xx'; $param['korrektur_sekunden'] = intval($data['content']['cruisebook']['xlang']['kreuzfahrt_ende_flughafen_verschiebung']) * 3600*24; $param['out_type'] = 'xxxx-xx-xx'; $data['content']['booking']['ende_zeit_flughafen_parkplatz']['date'] = convert_datetime($param); } else { $param['in_time'] = $_SESSION['kreuzfahrtPreisMatrix'][ $_SESSION['kreuzfahrt']['termin_id'] ]['terminAbreise']; $param['in_type'] = 'xxxx-xx-xx'; $param['korrektur_sekunden'] = intval($data['content']['cruisebook']['hafen_info_ziel']['hafen_ende_flughafen_verschiebung']) * 3600*24; $param['out_type'] = 'xxxx-xx-xx'; $data['content']['booking']['ende_zeit_flughafen_parkplatz']['date'] = convert_datetime($param); } } /* Allgemeine Startzeit berechnen (egal ob Hafen oder Flughafen. Das ist z.B. für das Alter bei Start der Reise und Anreise per Bahn relevant) */ if(!empty($data['content']['booking']['start_zeit_hafen_parkplatz']['date'])) $data['content']['booking']['start_zeit_reise']['date'] = $data['content']['booking']['start_zeit_hafen_parkplatz']['date']; if(!empty($data['content']['booking']['ende_zeit_hafen_parkplatz']['date'])) $data['content']['booking']['ende_zeit_reise']['date'] = $data['content']['booking']['ende_zeit_hafen_parkplatz']['date']; if(!empty($data['content']['booking']['start_zeit_flughafen_parkplatz']['date'])) $data['content']['booking']['start_zeit_reise']['date'] = $data['content']['booking']['start_zeit_flughafen_parkplatz']['date']; if(!empty($data['content']['booking']['ende_zeit_flughafen_parkplatz']['date'])) $data['content']['booking']['ende_zeit_reise']['date'] = $data['content']['booking']['ende_zeit_flughafen_parkplatz']['date']; #dump($data['content']['cruisebook'], 'content cruisebook am ende von book_weitergehende_datenermittlung', 'gelb', 'zu'); #dump($data['content']['booking'], 'content booking am ende von book_weitergehende_datenermittlung', 'gelb', 'zu'); add_info_meldungen(__FILE__, __FUNCTION__, __LINE__, 'book_weitergehende_datenermittlung beendet'); return TRUE; } /***********************************************************************************************************************************************************/ /* Abgerufene KR-Daten aufarbeiten und korrigieren /***********************************************************************************************************************************************************/ function book_datenkorrektur() { global $data, $db, $setup, $server; add_info_meldungen(__FILE__, __FUNCTION__, __LINE__, 'book_datenkorrektur gestartet'); /* Daten für Zusatzleistungen aufarbeiten. Json-decode */ #dump($data['content']['cruisebook']['flughaefenZusatz_kreuzfahrt'], 'fh zusatz', 'rot'); $data['content']['cruisebook']['flughaefenZusatz_kreuzfahrt_decode'] = json_decode($data['content']['cruisebook']['flughaefenZusatz_kreuzfahrt'], JSON_OBJECT_AS_ARRAY); if(!empty($data['content']['cruisebook']['flughaefenZusatz_kreuzfahrt_decode'] )) { /* korrektur der Keys, damit die Keys nicht bei 0 anfangen. Später sollten hier IDs rein, für die Referenz in eine Tabelle mit Zusatzleistungen */ foreach($data['content']['cruisebook']['flughaefenZusatz_kreuzfahrt_decode'] as $key=>$value) { $data['content']['cruisebook']['flughaefenZusatz_kreuzfahrt_decode2'][$key+100] = $value; } #/* Zahlungsdaten in array umwandlen */ #$data['content']['cruisebook']['zahlungsarten_array'] = explode(",", preg_replace('/\s+/', '', $data['content']['cruisebook']['reederei_info']['zahlung'])); #foreach($data['content']['cruisebook']['zahlungsarten_array'] as $key=>$value) { # $data['content']['cruisebook']['zahlungsarten_array2'][$key+10] = $value; /* korrektur der Keys, damit die Keys nicht bei 0 anfangen. Später sollten hier IDs rein, für die Referenz in eine Tabelle mit Zusatzleistungen */ #} /* "erbitte Flugangebot" aus zusatzleistungen immer entfernen */ #dump('gefunden1'); foreach($data['content']['cruisebook']['flughaefenZusatz_kreuzfahrt_decode2'] as $key=>$value) { #dump($value, $key); #dump(mb_strpos($value['text'], 'Bahnfahrt Hin-Rück')); $temp_guenstige_fluganreise_gefunden = mb_stripos($value['text'], 'günstige Fluganreise'); /* Darf nicht mit dem ersten zeichen beginnen */ if(!empty($value['text']) && !empty($temp_guenstige_fluganreise_gefunden) ) { #dump('wird jetzt gelöscht'); $data['content']['cruisebook']['flughaefenZusatz_kreuzfahrt_decode2'][$key]['text']=$data['content']['cruisebook']['flughaefenZusatz_kreuzfahrt_decode2'][$key]['price']=''; } } } /* Wenn Flug (also Flugpreis, da sonst evtl Bahn oder "kein Flug" enthalten wären) ausgewählt wurde, dann keine Bahn mehr anzeigen. Bahn aus Zusatzleistungen entfernen if( !empty($_SESSION['kreuzfahrt']['flug']['selected_flug_source']) ) { foreach($data['content']['cruisebook']['flughaefenZusatz_kreuzfahrt_decode2'] as $key=>$value) { #dump($value, $key); #dump(mb_strpos($value['text'], 'Bahnfahrt Hin-Rück')); $temp_bahnfahrt_gefunden = mb_strpos($value['text'], 'ahnfahrt Hin-Rück'); /* Darf nicht mit dem ersten zeichen beginnen * #$temp_parkplatz_gefunden = mb_strpos($value['text'], 'ngebot für einen Parkplatz'); /* Darf nicht mit dem ersten zeichen beginnen => Parkplatz deraktiviert, da ansonstne auch Parkplätze aussortiert wurden. Macht eigentlich keinen SInn. * if(!empty($value['text']) && ( !empty($temp_bahnfahrt_gefunden) OR !empty($temp_parkplatz_gefunden) ) ) { #dump('gefunden'); $data['content']['cruisebook']['flughaefenZusatz_kreuzfahrt_decode2'][$key]['text']=$data['content']['cruisebook']['flughaefenZusatz_kreuzfahrt_decode2'][$key]['price']=''; $data['booking']['bahn_bei_flug_zeigen'] = 1; $data['booking']['bahn_bei_zusatz_zeigen'] = 0; } } } */ #dump($data['content']['cruisebook']['flughaefenZusatz_kreuzfahrt_decode2'], 'nach ersetzung'); /* Wenn jetzt keine Zusatzleistung mehr da ist, dann den ganzen step überspringen */ $data['booking']['zusatzleistungen_nach_korrektur_vorhanden'] = 0; if(!empty($data['content']['cruisebook']['flughaefenZusatz_kreuzfahrt_decode2'] )) { foreach($data['content']['cruisebook']['flughaefenZusatz_kreuzfahrt_decode2'] as $key=>$value) { if(!empty($value['text'])) $data['booking']['zusatzleistungen_nach_korrektur_vorhanden'] = 1; } } #dump($data['booking']['zusatzleistungen_nach_korrektur_vorhanden'], 'zusatzleistungen_nach_korrektur_vorhanden'); if(empty($data['booking']['zusatzleistungen_nach_korrektur_vorhanden'])) { #dump('flughaefenZusatz_kreuzfahrt_decode2 wird gelöscht'); $data['content']['cruisebook']['flughaefenZusatz_kreuzfahrt_decode2']=''; /* Auswertung von flughaefenZusatz_kreuzfahrt_decode2 wird weiter unten gemacht */ } #dump($data['content']['cruisebook']['flughaefenZusatz_kreuzfahrt_decode2'], 'flughaefenZusatz_kreuzfahrt_decode2'); /* Wird weiter unten in book_zusatzleistungen_pruefung_anzeige (nach book_zusatzleistungen_vorbereitungen und nach API Abfrage) nochmal geprüft */ #dump($back_validate_forminput_to_session, '$back_validate_forminput_to_session', 'orange'); #if(!empty($_SESSION['kreuzfahrt'])) dump($_SESSION['kreuzfahrt'], 'SESSION[kreuzfahrt] vor Eingabevalidierung. Hier muss alles drin stehen. Zeile '.__LINE__, 'grün', 'zu', 'table'); add_info_meldungen(__FILE__, __FUNCTION__, __LINE__, 'book_datenkorrektur beendet'); } /***********************************************************************************************************************************************************/ /* BOOK METHOD AUSWÄHLEN /***********************************************************************************************************************************************************/ function book_bookmethod_auswaehlen() { global $data, $db, $setup, $server; add_info_meldungen(__FILE__, __FUNCTION__, __LINE__, 'book_bookmethod_auswaehlen gestartet'); /* Folgende parameter werden zuvor wie folgt gsetzt */ #$data['content']['cruisebook']['apiAidaBook'] in book_getKreuzfahrtDetail_bearbeiten #$_SESSION['kreuzfahrt']['quelle_preiskondition_gruppe'] in book_eingaben_grob_validieren #$_SESSION['kreuzfahrt']['preiskondition_id'] in book_eingaben_grob_validieren /* Default erstmal leer setzen */ if(empty($data['booking']['book_method'])) $data['booking']['book_method']=''; /* Auswahl, wie gebucht wird. API, Anfrage, Buchung. Das ist wichtig für die Buchung und die Beschriftung des Buttons. Kann gegebenenfalls unten nochmal überschrieben werden. */ /* Wenn Kreuzfahrt auf AIDA Book steht und ausgewählter Preis von AIDA ist, dann AIDA Book verwenden */ if(!empty($data['content']['cruisebook']['apiAidaBook']) && !empty($_SESSION['kreuzfahrt']['quelle_preiskondition_gruppe']) && $_SESSION['kreuzfahrt']['quelle_preiskondition_gruppe']=='aida') { $_SESSION['kreuzfahrt']['book_method'] = $data['booking']['book_method'] = 'apiAidaBook'; } if(!empty($data['content']['cruisebook']['apiExternalBook']) && $data['content']['cruisebook']['kreuzfahrtReedereiID'] == 3 && !empty($_SESSION['kreuzfahrt']['quelle_preiskondition_gruppe']) && $_SESSION['kreuzfahrt']['quelle_preiskondition_gruppe']=='costa') { $_SESSION['kreuzfahrt']['book_method'] = $data['booking']['book_method'] = 'apiCostaBook'; } /* Wenn Kreuzfahrt auf MSC Book steht und ausgewählter Preis von MSC ist, dann MSC Book verwenden */ if(!empty($data['content']['cruisebook']['apiMscBook']) && !empty($_SESSION['kreuzfahrt']['quelle_preiskondition_gruppe']) && $_SESSION['kreuzfahrt']['quelle_preiskondition_gruppe']=='msc') { $_SESSION['kreuzfahrt']['book_method'] = $data['booking']['book_method'] = 'apiMscBook'; } /* kategorie_name = 'Anfrage', also Anfrage in der Kategorieauswahl ausgewählt */ if( !empty($_SESSION['kreuzfahrt']['preiskondition_id']) && $_SESSION['kreuzfahrt']['preiskondition_id'] == $data['setup']['preiskondition_id_fuer_anfrage']) { $_SESSION['kreuzfahrt']['book_method'] = $data['booking']['book_method'] = 'anfrage'; } # /* Status laut Datenbank gemäß V1 (nur wenn in XLANG-Tabelle noch nichts drin steht) */ if( empty($data['content']['cruisebook']['xlang']['process_type']) && empty($data['booking']['book_method']) && $data['content']['cruisebook']['processType_kreuzfahrt'] == 'anfragen') { $_SESSION['kreuzfahrt']['book_method'] = $data['booking']['book_method'] = 'anfrage'; } if( empty($data['content']['cruisebook']['xlang']['process_type']) && empty($data['booking']['book_method']) && $data['content']['cruisebook']['processType_kreuzfahrt'] == 'buchen' ) { $_SESSION['kreuzfahrt']['book_method'] = $data['booking']['book_method'] = 'buchung'; } /* Status laut Datenbank gemäß V2*/ if( empty($data['booking']['book_method']) && !empty($data['content']['cruisebook']['xlang']['process_type']) && $data['content']['cruisebook']['xlang']['process_type'] == 'anfragen') { $_SESSION['kreuzfahrt']['book_method'] = $data['booking']['book_method'] = 'anfrage'; } if( empty($data['booking']['book_method']) && !empty($data['content']['cruisebook']['xlang']['process_type']) && $data['content']['cruisebook']['xlang']['process_type'] == 'buchen' ) { $_SESSION['kreuzfahrt']['book_method'] = $data['booking']['book_method'] = 'buchung'; } /* Rest */ if(empty($data['booking']['book_method'])) $_SESSION['kreuzfahrt']['book_method'] = $data['booking']['book_method'] = 'buchung'; if(!empty($data['setup']['always_method'])) $_SESSION['kreuzfahrt']['book_method'] = $data['booking']['book_method'] = $data['setup']['always_method']; add_info_meldungen(__FILE__, __FUNCTION__, __LINE__, 'book_method in SESSION und DATA nach Prüfung der Bookmethod lautet '.$data['booking']['book_method']); #dump($_SESSION['kreuzfahrt']['book_method'], 'book_method in _SESSION in zeile '.__LINE__, 'gelb'); add_info_meldungen(__FILE__, __FUNCTION__, __LINE__, 'book_bookmethod_auswaehlen beendet'); return TRUE; } /***********************************************************************************************************************************************************/ /* Eingaben validieren, Step, Session und Action prüfen. Teil2. Basisprüfungen für Session kf-ID usw. /***********************************************************************************************************************************************************/ /********************************* Vor der Buchung nochmal final prüfen ********************************************************************************************************************/ function book_eingabenvalidierung__pre_booking() { global $data, $db, $setup, $server; add_info_meldungen(__FILE__, __FUNCTION__, __LINE__, 'book_eingabenvalidierung__pre_booking gestartet.'); /* Wenn Kategorie ausgewählt wurde, dann jetzt nochmal validieren (Ähnliche Validierung läuft auch in Kategorievalidierung) */ if($data['action']['requested_action'] == 'buchung_durchfuehren') { if( empty($_SESSION['kreuzfahrt']['kategorieData']) OR empty($_SESSION['kreuzfahrt']['termin_id']) OR empty($_SESSION['kreuzfahrt']['kategorie_zuordnungstyp']) OR empty($_SESSION['kreuzfahrt']['kreuzfahrt_id']) OR empty($_SESSION['kreuzfahrt']['personen_alter_1']) OR ( empty($_SESSION['kreuzfahrt']['kategorie_openfix_id']) && empty($_SESSION['kreuzfahrt']['kategorie_anfrage'])) OR empty($_SESSION['kreuzfahrt']['preiskondition_id']) OR empty($_SESSION['kreuzfahrt']['quelle_preiskondition_gruppe']) OR empty($_SESSION['kreuzfahrt']['mitflug_ohneflug']) ) { /* alle Werte außer die genannten Keys zurücksetzen */ foreach($_SESSION['kreuzfahrt'] as $key => $value) { if(!in_array($key, array('kreuzfahrt_id', 'start_mit_termin_id', 'local_booking_id_primary'))) unset($_SESSION['kreuzfahrt'][$key]); } $data['action']['unbearbeitete_steps']['select_versicherung'] = $data['action']['unbearbeitete_steps']['eingabe_pruefung_agb'] = $data['action']['unbearbeitete_steps']['select_kategorie'] = 1; $data['action']['requested_action']='start_buchung'; $data['action']['last_template']=''; add_info_meldungen(__FILE__, __FUNCTION__, __LINE__, 'in Prüfung pre_booking festgestellt, dass Kategorie nicht gültig ausgewählt wwurde.'); } } /* Prüfung, ob Buchung noch gesperrt ist (Doppelbuchung durch Reload) */ if(!empty($_SESSION['info']['buchung_abgeschlossen'])) { $_SESSION['kreuzfahrt']['kategorieData'] = $_SESSION['kreuzfahrt']['kategorie_zuordnungstyp'] = $_SESSION['kreuzfahrt']['kategorie_openfix_id'] = $_SESSION['kreuzfahrt']['preiskondition_id'] = $_SESSION['kreuzfahrt']['quelle_preiskondition_gruppe'] = $_SESSION['kreuzfahrt']['mitflug_ohneflug'] = ''; /* alle Werte außer die genannten Keys zurücksetzen */ foreach($_SESSION['kreuzfahrt'] as $key => $value) { if(!in_array($key, array('kreuzfahrt_id', 'start_mit_termin_id', 'local_booking_id_primary'))) unset($_SESSION['kreuzfahrt'][$key]); } $data['action']['unbearbeitete_steps']['select_versicherung'] = $data['action']['unbearbeitete_steps']['eingabe_pruefung_agb'] = $data['action']['unbearbeitete_steps']['select_kategorie'] = 1; $data['action']['requested_action']='start_buchung'; $data['action']['last_template']=''; add_info_meldungen(__FILE__, __FUNCTION__, __LINE__, 'buchung_abgeschlossen stand noch auf 1 (Doppelbuchungssperre. Daher Session[kreuzfahrt] zurückgesetzt.'); } add_info_meldungen(__FILE__, __FUNCTION__, __LINE__, 'book_eingabenvalidierung__pre_booking beendet.'); } /*********************** Prüfung, ob Formular auf Weiter oder Zurück geklickt wurde. Ist wichtig für die spätere Stepauswahl /**********************************************************************/ function book_eingabenvalidierung__general() { global $data, $db, $setup, $server; add_info_meldungen(__FILE__, __FUNCTION__, __LINE__, 'book_eingabenvalidierung__general wurde gestartet.'); if(empty($data['action']['form_direction']) OR !in_array($data['action']['form_direction'] , array('back', 'ahead'))) { $data['action']['form_direction'] = 'ahead'; /* sofern wir uns nun nicht gerade im Start befinden, müsste form_direction immer gesetzt sein. */ #if( !in_array($data['action']['requested_action'], array('start_buchung', 'select_kategorie')) ) { # dump('ACHTUNG! Parameter b_dctn fehlt', '', 'knallrot'); # log_error ($db, 'notice', 'BU_DKO_17', __FILE__, __LINE__, 'Parameter b_dctn fehlt', 'Das Formular wurde abgeschickt (vorwärts oder rückwärts) und es fehlt die Angabe zur Richtung. Prüfen. Eventuell irgendwo in einem GET oder hidden vergessen zu hinterlegen.', array('action'=>$data['action'], 'session'=>$_SESSION)); #} } /* Prüfung auf Termin, da dies bei Personenauswahl-Validierung bereits benötigt wird. /* Sonderfall 1: Wenn mit Termin gestartet wurde, dann beim ersten Aufruf den Termin aus dem Start automatisch als ausgewählten Termin setzen und den Terminstep überspringen */ /* hinweis: weiter unten muss dann noch der Nextstep neu gesetzt werden */ if( !empty( $_SESSION['kreuzfahrt']['start_mit_termin_id']) ) { $_SESSION['kreuzfahrt']['termin_id'] = $_SESSION['kreuzfahrt']['start_mit_termin_id']; $data['action']['unbearbeitete_steps']['select_termin'] = 0; $data['action']['verfuegbare_steps']['select_termin'] = 0; add_info_meldungen(__FILE__, __FUNCTION__, __LINE__, 'Termine wurden übersprungen, da mit Termin gestartet wurde.'); #dump('termin aus startsession gesetzt'); } /* Sonderfall 2: wenn zu dieser Kreuzfahrt nur ein einziger Termin vorhanden ist, dann Termin immer automatisch überspringen */ if( count($data['content']['cruisebook']['termine']) == 1 ) { /* den einen vorhandenen Termin dann jetzt auswählen und in Session schreiben */ $_SESSION['kreuzfahrt']['termin_id'] = key($data['content']['cruisebook']['termine']); add_info_meldungen(__FILE__, __FUNCTION__, __LINE__, 'neuer Termin: '.$_SESSION['kreuzfahrt']['termin_id']); $data['action']['unbearbeitete_steps']['select_termin'] = 0; $data['action']['verfuegbare_steps']['select_termin'] = 0; add_info_meldungen(__FILE__, __FUNCTION__, __LINE__, 'Termine wurden übersprungen, da nur ein Termin vorhanden war'); } add_info_meldungen(__FILE__, __FUNCTION__, __LINE__, 'book_eingabenvalidierung__general beendet.'); } /*********************** Personendaten Eingabe ************************************************************************************************************************************/ function book_eingabenvalidierung__personendaten() { global $data, $db, $setup, $server; add_info_meldungen(__FILE__, __FUNCTION__, __LINE__, 'book_eingabenvalidierung__personendaten wurde gestartet.'); $data['booking']['alter_bei_reise'] = $data['booking']['zulaessiges_min_alter_bei_reise'] = $data['booking']['zulaessiges_max_alter_bei_reise'] = array(); $_SESSION['kreuzfahrt']['personen_nach_altersgruppen']['eingabe_geburtsdatum']['adult'] = $_SESSION['kreuzfahrt']['personen_nach_altersgruppen']['eingabe_geburtsdatum']['junior'] = 0; $_SESSION['kreuzfahrt']['personen_nach_altersgruppen']['eingabe_geburtsdatum']['infant'] = $_SESSION['kreuzfahrt']['personen_nach_altersgruppen']['eingabe_geburtsdatum']['child'] = 0; /* Bei Anfragen wird die Anzahl der Mitreisenden jetzt neu ermittelt. Je nachdem, bei welchen Feldern in der Buchung ein Name eingegeben wurde, wir die Anzahl nach oben gesetzt */ if( $_SESSION['kreuzfahrt']['book_method'] =='anfrage') { /* Personenanzahl neu setzen */ if(!empty($_SESSION['eingaben']['reiseteilnehmer_3_nachname']) OR !empty($_SESSION['eingaben']['reiseteilnehmer_3_nachname'])) $_SESSION['kreuzfahrt']['anzahl_personen_summe'] = 3; if(!empty($_SESSION['eingaben']['reiseteilnehmer_4_nachname']) OR !empty($_SESSION['eingaben']['reiseteilnehmer_4_nachname'])) $_SESSION['kreuzfahrt']['anzahl_personen_summe'] = 4; } /* Subfunktion zur Vorabprüfung der Zahlungsoptionen */ book_zusatzpruefung_zahlungsoptionen(); /* Sofern irgendwelche Personen-Eingaben vorliegen, sollen diese nun geprüft werden. Prüfung ob gefüllt. Sonstige Sonderprüfungen. Wenn alles ok ist, dann in $data['action']['unbearbeitete_steps'] vermerken */ if(!empty($_SESSION['eingaben']) && in_array($data['action']['requested_action'], array('check_eingabedaten', 'eingabe_pruefung_agb', 'select_versicherung', 'buchung_durchfuehren')) ) { /* Vertragspartner Daten */ if( !empty($data['setup']['regeln_buchung_felder'][ $_SESSION['kreuzfahrt']['book_method'] ]['felderanzeigen_general']['vertragspartner_daten']) && $data['setup']['regeln_buchung_felder'][ $_SESSION['kreuzfahrt']['book_method'] ]['felderanzeigen_general']['vertragspartner_daten']=='pflicht') { if(empty($_SESSION['eingaben']['anrede'] )) $data['errors']['check_eingabedaten'][] = 'check_eingabedaten_anrede' ; if(empty($_SESSION['eingaben']['vorname_rechnung'] )) $data['errors']['check_eingabedaten'][] = 'check_eingabedaten_vorname_rechnung' ; if(empty($_SESSION['eingaben']['nachname_rechnung'] )) $data['errors']['check_eingabedaten'][] = 'check_eingabedaten_nachname_rechnung' ; if(empty($_SESSION['eingaben']['strasse'] )) $data['errors']['check_eingabedaten'][] = 'check_eingabedaten_strasse' ; if(empty($_SESSION['eingaben']['hausnummer'] )) $data['errors']['check_eingabedaten'][] = 'check_eingabedaten_hausnummer' ; if(empty($_SESSION['eingaben']['plz'] )) $data['errors']['check_eingabedaten'][] = 'check_eingabedaten_plz' ; if(empty($_SESSION['eingaben']['ort'] )) $data['errors']['check_eingabedaten'][] = 'check_eingabedaten_ort' ; if(empty($_SESSION['eingaben']['land'] )) $data['errors']['check_eingabedaten'][] = 'check_eingabedaten_land' ; } /* Standard Kontaktfelder */ if(!empty($data['setup']['regeln_buchung_felder'][ $_SESSION['kreuzfahrt']['book_method'] ]['felderanzeigen_general']['standard_kontakt']) && $data['setup']['regeln_buchung_felder'][ $_SESSION['kreuzfahrt']['book_method'] ]['felderanzeigen_general']['standard_kontakt']=='pflicht') { if(empty($_SESSION['eingaben']['telefon'] )) $data['errors']['check_eingabedaten'][] = 'check_eingabedaten_telefon' ; if(empty($_SESSION['eingaben']['mobil'] )) $data['errors']['check_eingabedaten'][] = 'check_eingabedaten_mobil' ; if(empty($_SESSION['eingaben']['e_mail'] )) $data['errors']['check_eingabedaten'][] = 'check_eingabedaten_e_mail' ; if(empty($_SESSION['eingaben']['e_mail_confirm'] )) $data['errors']['check_eingabedaten'][] = 'check_eingabedaten_e_mail_confirm' ; if(!empty($_SESSION['eingaben']['e_mail']) && !empty($_SESSION['eingaben']['e_mail_confirm']) && $_SESSION['eingaben']['e_mail_confirm']!=$_SESSION['eingaben']['e_mail']) $data['errors']['check_eingabedaten'][] = 'check_eingabedaten_e_mail'; } /* Club Nummer */ if(!empty($data['setup']['regeln_buchung_felder'][ $_SESSION['kreuzfahrt']['book_method'] ]['felderanzeigen_general']['club_nummer']) && $data['setup']['regeln_buchung_felder'][ $_SESSION['kreuzfahrt']['book_method'] ]['felderanzeigen_general']['club_nummer']=='pflicht') { if(empty($_SESSION['eingaben']['club_nummer'] )) $data['errors']['check_eingabedaten'][] = 'check_eingabedaten_club_nummer' ; } /* Notfall Kontaktfelder */ if(!empty($data['setup']['regeln_buchung_felder'][ $_SESSION['kreuzfahrt']['book_method'] ]['felderanzeigen_general']['notfall_kontakt']) && $data['setup']['regeln_buchung_felder'][ $_SESSION['kreuzfahrt']['book_method'] ]['felderanzeigen_general']['notfall_kontakt']=='pflicht') { if(empty($_SESSION['eingaben']['notfallkontakt_telefon'] )) $data['errors']['check_eingabedaten'][] = 'check_eingabedaten_notfallkontakt_telefon' ; if(empty($_SESSION['eingaben']['notfallkontakt_e_mail'] )) $data['errors']['check_eingabedaten'][] = 'check_eingabedaten_notfallkontakt_e_mail' ; } /* Reiseteilnehmer */ for($i=1; $i<=$_SESSION['kreuzfahrt']['anzahl_personen_summe']; $i++) { /* Pflichtfelder prüfen */ if(!empty($data['setup']['regeln_buchung_felder'][ $_SESSION['kreuzfahrt']['book_method'] ]['felderanzeigen_teilnehmerbezogen'][$i]['reiseteilnehmer_standard']) && $data['setup']['regeln_buchung_felder'][ $_SESSION['kreuzfahrt']['book_method'] ]['felderanzeigen_teilnehmerbezogen'][$i]['reiseteilnehmer_standard']=='pflicht') { if(empty($_SESSION['eingaben']['reiseteilnehmer_'.$i.'_anrede'] )) $data['errors']['check_eingabedaten'][] = 'check_eingabedaten_reiseteilnehmer_'.$i.'_anrede' ; if(empty($_SESSION['eingaben']['reiseteilnehmer_'.$i.'_vorname'] )) $data['errors']['check_eingabedaten'][] = 'check_eingabedaten_reiseteilnehmer_'.$i.'_vorname' ; if(empty($_SESSION['eingaben']['reiseteilnehmer_'.$i.'_nachname'] )) $data['errors']['check_eingabedaten'][] = 'check_eingabedaten_reiseteilnehmer_'.$i.'_nachname' ; if(empty($_SESSION['eingaben']['reiseteilnehmer_'.$i.'_geburtsdatum_t'] )) $data['errors']['check_eingabedaten'][] = 'check_eingabedaten_reiseteilnehmer_'.$i.'_geburtsdatum' ; if(empty($_SESSION['eingaben']['reiseteilnehmer_'.$i.'_geburtsdatum_m'] )) $data['errors']['check_eingabedaten'][] = 'check_eingabedaten_reiseteilnehmer_'.$i.'_geburtsdatum' ; if(empty($_SESSION['eingaben']['reiseteilnehmer_'.$i.'_geburtsdatum_j'] )) $data['errors']['check_eingabedaten'][] = 'check_eingabedaten_reiseteilnehmer_'.$i.'_geburtsdatum' ; } /* Nationalität prüfen */ if(!empty($data['setup']['regeln_buchung_felder'][ $_SESSION['kreuzfahrt']['book_method'] ]['felderanzeigen_teilnehmerbezogen'][$i]['nationalitaet']) && $data['setup']['regeln_buchung_felder'][ $_SESSION['kreuzfahrt']['book_method'] ]['felderanzeigen_teilnehmerbezogen'][$i]['nationalitaet']=='pflicht') { if(empty($_SESSION['eingaben']['reiseteilnehmer_'.$i.'_nationalitaet'] )) $data['errors']['check_eingabedaten'][] = 'check_eingabedaten_reiseteilnehmer_'.$i.'_nationalitaet' ; } /* Ausweisfelder werden nicht geprüft, weil es sein kann, dass ein Kunde noch keinen Ausweis hat. */ /* Ausweis General prüfen */ #if(!empty($data['setup']['regeln_buchung_felder'][ $_SESSION['kreuzfahrt']['book_method'] ]['felderanzeigen_teilnehmerbezogen'][$i]['ausweis_general']) && $data['setup']['regeln_buchung_felder'][ $_SESSION['kreuzfahrt']['book_method'] ]['felderanzeigen_teilnehmerbezogen'][$i]['ausweis_general']=='pflicht') { # if(empty($_SESSION['eingaben']['reiseteilnehmer_'.$i.'_ausweistyp'] )) $data['errors']['check_eingabedaten'][] = 'check_eingabedaten_reiseteilnehmer_'.$i.'_ausweistyp' ; #} /* Ausweis Nummer prüfen */ #if(!empty($data['setup']['regeln_buchung_felder'][ $_SESSION['kreuzfahrt']['book_method'] ]['felderanzeigen_teilnehmerbezogen'][$i]['ausweis_nummer']) && $data['setup']['regeln_buchung_felder'][ $_SESSION['kreuzfahrt']['book_method'] ]['felderanzeigen_teilnehmerbezogen'][$i]['ausweis_nummer']=='pflicht') { # if(!empty($_SESSION['eingaben']['reiseteilnehmer_'.$i.'_ausweistyp']) && $_SESSION['eingaben']['reiseteilnehmer_'.$i.'_ausweistyp']=='rp') { # if(empty($_SESSION['eingaben']['reiseteilnehmer_'.$i.'_rp_num'] )) $data['errors']['check_eingabedaten'][] = 'check_eingabedaten_reiseteilnehmer_'.$i.'_rp_num' ; # } # if(!empty($_SESSION['eingaben']['reiseteilnehmer_'.$i.'_ausweistyp']) && $_SESSION['eingaben']['reiseteilnehmer_'.$i.'_ausweistyp']=='pa') { # if(empty($_SESSION['eingaben']['reiseteilnehmer_'.$i.'_pa_num'] )) $data['errors']['check_eingabedaten'][] = 'check_eingabedaten_reiseteilnehmer_'.$i.'_pa_num' ; # } #} /* Ausweis Ausstellungsort prüfen */ #if(!empty($data['setup']['regeln_buchung_felder'][ $_SESSION['kreuzfahrt']['book_method'] ]['felderanzeigen_teilnehmerbezogen'][$i]['ausweis_ausstellungsort']) && $data['setup']['regeln_buchung_felder'][ $_SESSION['kreuzfahrt']['book_method'] ]['felderanzeigen_teilnehmerbezogen'][$i]['ausweis_ausstellungsort']=='pflicht') { # if(empty($_SESSION['eingaben']['reiseteilnehmer_'.$i.'_ausweis_ort'] )) $data['errors']['check_eingabedaten'][] = 'check_eingabedaten_reiseteilnehmer_'.$i.'_ausweis_ort' ; #} /* Ausweis Gültigkeitsdatum prüfen */ if(!empty($data['setup']['regeln_buchung_felder'][ $_SESSION['kreuzfahrt']['book_method'] ]['felderanzeigen_teilnehmerbezogen'][$i]['ausweis_gueltigkeit']) && $data['setup']['regeln_buchung_felder'][ $_SESSION['kreuzfahrt']['book_method'] ]['felderanzeigen_teilnehmerbezogen'][$i]['ausweis_gueltigkeit']=='pflicht') { if(empty($_SESSION['eingaben']['reiseteilnehmer_'.$i.'_ausweis_t'] )) $data['errors']['check_eingabedaten'][] = 'check_eingabedaten_reiseteilnehmer_'.$i.'_ausweisdatum' ; if(empty($_SESSION['eingaben']['reiseteilnehmer_'.$i.'_ausweis_m'] )) $data['errors']['check_eingabedaten'][] = 'check_eingabedaten_reiseteilnehmer_'.$i.'_ausweisdatum' ; if(empty($_SESSION['eingaben']['reiseteilnehmer_'.$i.'_ausweis_j'] )) $data['errors']['check_eingabedaten'][] = 'check_eingabedaten_reiseteilnehmer_'.$i.'_ausweisdatum' ; } /* Ausweis Gültigkeitsdatum umrechnen */ if(!empty($_SESSION['eingaben']['reiseteilnehmer_'.$i.'_ausweis_j']) && !empty($_SESSION['eingaben']['reiseteilnehmer_'.$i.'_ausweis_m']) && !empty($_SESSION['eingaben']['reiseteilnehmer_'.$i.'_ausweis_t'])) { $temp_ausweisdatum_a = $_SESSION['eingaben']['reiseteilnehmer_'.$i.'_ausweis_j'].'-'.str_pad ($_SESSION['eingaben']['reiseteilnehmer_'.$i.'_ausweis_m'], 2, '0', STR_PAD_LEFT ).'-'.str_pad ($_SESSION['eingaben']['reiseteilnehmer_'.$i.'_ausweis_t'], 2, '0', STR_PAD_LEFT ); $temp_ausweisdatum_b = checkinput( $temp_ausweisdatum_a , 'date'); #dump($temp_geburtsdatum_b, 'temp_geburtsdatum_b'); if(!empty($temp_ausweisdatum_b)) { $_SESSION['eingaben']['reiseteilnehmer_'.$i.'_ausweisdatum'] = $temp_ausweisdatum_b; $_SESSION['eingaben']['reiseteilnehmer_'.$i.'_ausweisdatum_ausgabe'] = convert_date($in_date=$temp_ausweisdatum_b, $in_type='xxxx-xx-xx', $out_type='xx.xx.xxxx'); } } /* Anschrift Reiseteilnehmer prüfen */ if(!empty($data['setup']['regeln_buchung_felder'][ $_SESSION['kreuzfahrt']['book_method'] ]['felderanzeigen_teilnehmerbezogen'][$i]['reiseteilnehmer_anschrift']) && $data['setup']['regeln_buchung_felder'][ $_SESSION['kreuzfahrt']['book_method'] ]['felderanzeigen_teilnehmerbezogen'][$i]['reiseteilnehmer_anschrift']=='pflicht') { if(empty($_SESSION['eingaben']['reiseteilnehmer_'.$i.'_strasse'] )) $data['errors']['check_eingabedaten'][] = 'check_eingabedaten_reiseteilnehmer_'.$i.'_strasse' ; if(empty($_SESSION['eingaben']['reiseteilnehmer_'.$i.'_hausnummer'] )) $data['errors']['check_eingabedaten'][] = 'check_eingabedaten_reiseteilnehmer_'.$i.'_hausnummer' ; if(empty($_SESSION['eingaben']['reiseteilnehmer_'.$i.'_plz'] )) $data['errors']['check_eingabedaten'][] = 'check_eingabedaten_reiseteilnehmer_'.$i.'_plz' ; if(empty($_SESSION['eingaben']['reiseteilnehmer_'.$i.'_ort'] )) $data['errors']['check_eingabedaten'][] = 'check_eingabedaten_reiseteilnehmer_'.$i.'_ort' ; if(empty($_SESSION['eingaben']['reiseteilnehmer_'.$i.'_land'] )) $data['errors']['check_eingabedaten'][] = 'check_eingabedaten_reiseteilnehmer_'.$i.'_land' ; } /* Geburtsdatum immer prüfen, weil dies für die Umwandlung und die anschließende Altersgruppenzuordnung erforderlich ist. */ /* HINWEIS: Geburtsdatum ist eventuell freiwillig (z.B. bei Anfragen). Muss aber trotzdem falls vorhanden geprüft und umgewandelt werden */ if( !empty($_SESSION['eingaben']['reiseteilnehmer_'.$i.'_geburtsdatum_t']) && !empty($_SESSION['eingaben']['reiseteilnehmer_'.$i.'_geburtsdatum_m']) && !empty($_SESSION['eingaben']['reiseteilnehmer_'.$i.'_geburtsdatum_j']) ) { add_info_meldungen(__FILE__, __FUNCTION__, __LINE__, 'Geburtsdaten von Reiseteilnehmern werden jetzt geprüft.'); /* Plausibilität Geburtsdatum */ $temp_geburtsdatum_a = $_SESSION['eingaben']['reiseteilnehmer_'.$i.'_geburtsdatum_j'].'-'.str_pad ($_SESSION['eingaben']['reiseteilnehmer_'.$i.'_geburtsdatum_m'], 2, '0', STR_PAD_LEFT ).'-'.str_pad ($_SESSION['eingaben']['reiseteilnehmer_'.$i.'_geburtsdatum_t'], 2, '0', STR_PAD_LEFT ); $temp_geburtsdatum_b = checkinput( $temp_geburtsdatum_a , 'date'); #dump($temp_geburtsdatum_b, 'temp_geburtsdatum_b'); if(!empty($temp_geburtsdatum_b)) { $_SESSION['eingaben']['reiseteilnehmer_'.$i.'_geburtsdatum'] = $temp_geburtsdatum_b; $_SESSION['eingaben']['reiseteilnehmer_'.$i.'_geburtsdatum_ausgabe'] = convert_date($in_date=$temp_geburtsdatum_b, $in_type='xxxx-xx-xx', $out_type='xx.xx.xxxx'); #dump($_SESSION['eingaben']['reiseteilnehmer_'.$i.'_geburtsdatum_ausgabe'], 'c'); } /* Alter bei Anfang oder Ende der Reise aller Reiseteilnehmer ermitteln */ $_SESSION['eingaben']['reiseteilnehmer_'.$i.'_alter_bei_reisebeginn'] = errechne_alter_zum_termin( array('birth_date'=>$_SESSION['eingaben']['reiseteilnehmer_'.$i.'_geburtsdatum'], 'birth_format'=>'jjjj-mm-dd', 'termin_date'=>$data['content']['booking']['start_zeit_reise']['date'], 'termin_format'=>'jjjj-mm-dd' , 'geburtstag_zaehlt_als_juenger'=>0 )); $_SESSION['eingaben']['reiseteilnehmer_'.$i.'_alter_bei_reiseende'] = errechne_alter_zum_termin( array('birth_date'=>$_SESSION['eingaben']['reiseteilnehmer_'.$i.'_geburtsdatum'], 'birth_format'=>'jjjj-mm-dd', 'termin_date'=>$data['content']['booking']['ende_zeit_reise']['date'], 'termin_format'=>'jjjj-mm-dd' , 'geburtstag_zaehlt_als_juenger'=>0 )); $data['booking']['alter_bei_reise'][] = $_SESSION['eingaben']['reiseteilnehmer_'.$i.'_alter_bei_reisebeginn']; /* Zuordnung anhand des Geburtsdatums zu einer Alterskategorie der Reederei für diesen Reiseteilnehmer (Wird in Buchung übergeben. Ist aber eigentlich redundant, da sowieso das Geburtsdatum bei jeder Buchung übergeben wird) */ if(!empty($_SESSION['eingaben']['reiseteilnehmer_'.$i.'_alter_bei_reisebeginn'])) { if($_SESSION['eingaben']['reiseteilnehmer_'.$i.'_alter_bei_reisebeginn'] <= $data['content']['cruisebook']['reederei_info']['alter_min_child']) $_SESSION['eingaben']['reiseteilnehmer_'.$i.'_altersgruppe_reederei'] = 'Infant'; if($_SESSION['eingaben']['reiseteilnehmer_'.$i.'_alter_bei_reisebeginn'] > $data['content']['cruisebook']['reederei_info']['alter_min_child']) $_SESSION['eingaben']['reiseteilnehmer_'.$i.'_altersgruppe_reederei'] = 'Child'; if($_SESSION['eingaben']['reiseteilnehmer_'.$i.'_alter_bei_reisebeginn'] > $data['content']['cruisebook']['reederei_info']['alter_min_junior']) $_SESSION['eingaben']['reiseteilnehmer_'.$i.'_altersgruppe_reederei'] = 'Junior'; if($_SESSION['eingaben']['reiseteilnehmer_'.$i.'_alter_bei_reisebeginn'] > $data['content']['cruisebook']['reederei_info']['alter_min_adult']) $_SESSION['eingaben']['reiseteilnehmer_'.$i.'_altersgruppe_reederei'] = 'Adult'; } /* Zuordnung in Altersgruppen nach Geburtsdatum */ if( $_SESSION['eingaben']['reiseteilnehmer_'.$i.'_altersgruppe_reederei'] == 'Adult' ) $_SESSION['kreuzfahrt']['personen_nach_altersgruppen']['eingabe_geburtsdatum']['adult']++; if( $_SESSION['eingaben']['reiseteilnehmer_'.$i.'_altersgruppe_reederei'] == 'Junior' ) $_SESSION['kreuzfahrt']['personen_nach_altersgruppen']['eingabe_geburtsdatum']['junior']++; if( $_SESSION['eingaben']['reiseteilnehmer_'.$i.'_altersgruppe_reederei'] == 'Child' ) $_SESSION['kreuzfahrt']['personen_nach_altersgruppen']['eingabe_geburtsdatum']['child']++; if( $_SESSION['eingaben']['reiseteilnehmer_'.$i.'_altersgruppe_reederei'] == 'Infant' ) $_SESSION['kreuzfahrt']['personen_nach_altersgruppen']['eingabe_geburtsdatum']['infant']++; /* Personencode neu ermitteln (ist wichtig für Anfragen, da hier der Personencode in Step 1 nicht verbindlich ist) */ if( !empty($_SESSION['kreuzfahrt']['book_method']) && $_SESSION['kreuzfahrt']['book_method']=='anfrage') { /* Den Personencode neu setzen, z.B. "2a1c" */ $temp_personencode = ''; if( !empty($_SESSION['kreuzfahrt']['personen_nach_altersgruppen']['eingabe_geburtsdatum']['adult'])) $temp_personencode .= $_SESSION['kreuzfahrt']['personen_nach_altersgruppen']['eingabe_geburtsdatum']['adult'].'a'; if( !empty($_SESSION['kreuzfahrt']['personen_nach_altersgruppen']['eingabe_geburtsdatum']['junior'])) $temp_personencode .= $_SESSION['kreuzfahrt']['personen_nach_altersgruppen']['eingabe_geburtsdatum']['junior'].'j'; if( !empty($_SESSION['kreuzfahrt']['personen_nach_altersgruppen']['eingabe_geburtsdatum']['child'])) $temp_personencode .= $_SESSION['kreuzfahrt']['personen_nach_altersgruppen']['eingabe_geburtsdatum']['child'].'c'; if( !empty($_SESSION['kreuzfahrt']['personen_nach_altersgruppen']['eingabe_geburtsdatum']['infant'])) $temp_personencode .= $_SESSION['kreuzfahrt']['personen_nach_altersgruppen']['eingabe_geburtsdatum']['infant'].'i'; $_SESSION['kreuzfahrt']['personencode'] = $temp_personencode; /* Die Angaben $_SESSION['kreuzfahrt']['personen_nach_altersgruppen']['reederei'] neu setzen. Dies wird normalerweise nach der Personeneingabe in Step 1 gemacht */ $_SESSION['kreuzfahrt']['personen_nach_altersgruppen']['reederei']['adult'] = $_SESSION['kreuzfahrt']['personen_nach_altersgruppen']['eingabe_geburtsdatum']['adult']; $_SESSION['kreuzfahrt']['personen_nach_altersgruppen']['reederei']['junior'] = $_SESSION['kreuzfahrt']['personen_nach_altersgruppen']['eingabe_geburtsdatum']['junior']; $_SESSION['kreuzfahrt']['personen_nach_altersgruppen']['reederei']['child'] = $_SESSION['kreuzfahrt']['personen_nach_altersgruppen']['eingabe_geburtsdatum']['child']; $_SESSION['kreuzfahrt']['personen_nach_altersgruppen']['reederei']['infant'] = $_SESSION['kreuzfahrt']['personen_nach_altersgruppen']['eingabe_geburtsdatum']['infant']; /* Eingabe Personenauswahl aus Step 1 neu setzen */ $_SESSION['kreuzfahrt']['personen_alter_'.$i] = $_SESSION['eingaben']['reiseteilnehmer_'.$i.'_alter_bei_reisebeginn']; if($_SESSION['kreuzfahrt']['personen_alter_'.$i] > $data['content']['cruisebook']['reederei_info']['alter_min_adult']) $_SESSION['kreuzfahrt']['personen_alter_'.$i] = 99; add_info_meldungen(__FILE__, __FUNCTION__, __LINE__, 'Personencode und personen_nach_altersgruppen neu gesetzt.'); } #/* Zuordnung anhand des Geburtsdatums zu einer Alterskategorie nach Deutscher Bahn für diesen Reiseteilnehmer (Wird in Buchung übergeben) */ # => wird im Buchungsprozess gemacht #if( $_SESSION['eingaben']['reiseteilnehmer_'.$i.'_alter_bei_reisebeginn'] >= $setup['deutsche_bahn']['alter_rf_adult'] ) $_SESSION['eingaben']['anzahl_deutschebahn_rf_hin_adult' ]++; #if( $_SESSION['eingaben']['reiseteilnehmer_'.$i.'_alter_bei_reisebeginn'] >= $setup['deutsche_bahn']['alter_rit_adult'] ) $_SESSION['eingaben']['anzahl_deutschebahn_rit_hin_adult']++; #if( $_SESSION['eingaben']['reiseteilnehmer_'.$i.'_alter_bei_reiseende'] >= $setup['deutsche_bahn']['alter_rf_adult'] ) $_SESSION['eingaben']['anzahl_deutschebahn_rf_rueck_adult' ]++; #if( $_SESSION['eingaben']['reiseteilnehmer_'.$i.'_alter_bei_reiseende'] >= $setup['deutsche_bahn']['alter_rit_adult'] ) $_SESSION['eingaben']['anzahl_deutschebahn_rit_rueck_adult']++; #if( $_SESSION['eingaben']['reiseteilnehmer_'.$i.'_alter_bei_reisebeginn'] < $setup['deutsche_bahn']['alter_rf_child'] ) $_SESSION['eingaben']['anzahl_deutschebahn_rf_hin_baby' ]++; #if( $_SESSION['eingaben']['reiseteilnehmer_'.$i.'_alter_bei_reisebeginn'] < $setup['deutsche_bahn']['alter_rit_child'] ) $_SESSION['eingaben']['anzahl_deutschebahn_rit_hin_baby']++; #if( $_SESSION['eingaben']['reiseteilnehmer_'.$i.'_alter_bei_reiseende'] < $setup['deutsche_bahn']['alter_rf_child'] ) $_SESSION['eingaben']['anzahl_deutschebahn_rf_rueck_baby' ]++; #if( $_SESSION['eingaben']['reiseteilnehmer_'.$i.'_alter_bei_reiseende'] < $setup['deutsche_bahn']['alter_rit_child'] ) $_SESSION['eingaben']['anzahl_deutschebahn_rit_rueck_baby']++; #if( $_SESSION['eingaben']['reiseteilnehmer_'.$i.'_alter_bei_reisebeginn'] >= $setup['deutsche_bahn']['alter_rf_child'] && $_SESSION['eingaben']['reiseteilnehmer_'.$i.'_alter_bei_reisebeginn'] < $setup['deutsche_bahn']['alter_rf_adult'] ) $_SESSION['eingaben']['anzahl_deutschebahn_rf_hin_child' ]++; #if( $_SESSION['eingaben']['reiseteilnehmer_'.$i.'_alter_bei_reisebeginn'] >= $setup['deutsche_bahn']['alter_rit_child'] && $_SESSION['eingaben']['reiseteilnehmer_'.$i.'_alter_bei_reisebeginn'] < $setup['deutsche_bahn']['alter_rit_adult'] ) $_SESSION['eingaben']['anzahl_deutschebahn_rit_hin_child']++; #if( $_SESSION['eingaben']['reiseteilnehmer_'.$i.'_alter_bei_reiseende'] >= $setup['deutsche_bahn']['alter_rf_child'] && $_SESSION['eingaben']['reiseteilnehmer_'.$i.'_alter_bei_reiseende'] < $setup['deutsche_bahn']['alter_rf_adult'] ) $_SESSION['eingaben']['anzahl_deutschebahn_rf_rueck_child' ]++; #if( $_SESSION['eingaben']['reiseteilnehmer_'.$i.'_alter_bei_reiseende'] >= $setup['deutsche_bahn']['alter_rit_child'] && $_SESSION['eingaben']['reiseteilnehmer_'.$i.'_alter_bei_reiseende'] < $setup['deutsche_bahn']['alter_rit_adult'] ) $_SESSION['eingaben']['anzahl_deutschebahn_rit_rueck_child']++; # #/* Ist Child? Wird bei RIT Buchung abgefragt */ #if( $_SESSION['eingaben']['reiseteilnehmer_'.$i.'_alter_bei_reisebeginn'] < $setup['deutsche_bahn']['alter_rit_child'] ) $_SESSION['eingaben']['deutschebahn_'.$i.'_hin_is_child'] = 1; #if( $_SESSION['eingaben']['reiseteilnehmer_'.$i.'_alter_bei_reiseende'] < $setup['deutsche_bahn']['alter_rit_child'] ) $_SESSION['eingaben']['deutschebahn_'.$i.'_rueck_is_child'] = 1; } /* Wenn Geburtsdatum für diesen Reiseteilnehmer Pflicht ist, dann jetzt nochmal prüfen, ob es vorhanden ist */ if(!empty($data['setup']['regeln_buchung_felder'][ $_SESSION['kreuzfahrt']['book_method'] ]['felderanzeigen_teilnehmerbezogen'][$i]['reiseteilnehmer_standard']) && $data['setup']['regeln_buchung_felder'][ $_SESSION['kreuzfahrt']['book_method'] ]['felderanzeigen_teilnehmerbezogen'][$i]['reiseteilnehmer_standard']=='pflicht') { if(empty( $_SESSION['eingaben']['reiseteilnehmer_'.$i.'_geburtsdatum'] )) $data['errors']['check_eingabedaten'][] = 'check_eingabedaten_reiseteilnehmer_'.$i.'_geburtsdatum'; } } # if(empty($_SESSION['eingaben'] )) $data['errors']['check_eingabedaten'][] = 'eingabe_fehlt_komplett' ; /* kategorieauswahl für Anfragen / anfragekategorieauswahl */ if( !empty($data['setup']['regeln_buchung_felder'][ $_SESSION['kreuzfahrt']['book_method'] ]['felderanzeigen_general']['anfragekategorieauswahl']) && $data['setup']['regeln_buchung_felder'][ $_SESSION['kreuzfahrt']['book_method'] ]['felderanzeigen_general']['anfragekategorieauswahl']=='pflicht') { if(empty($_SESSION['eingaben']['anfragekategorieauswahl'] )) $data['errors']['check_eingabedaten'][] = 'check_eingabedaten_anfragekategorieauswahl' ; } /* Bei Anfragen darf mit nicht mit zwei Erwachsenen angefragt werden, da diese nur als Buchung durchgeführt werden dürfen */ if( $_SESSION['kreuzfahrt']['book_method']=='anfrage') { if( $_SESSION['kreuzfahrt']['personen_nach_altersgruppen']['eingabe_geburtsdatum']['adult'] == 2 && $_SESSION['kreuzfahrt']['personen_nach_altersgruppen']['eingabe_geburtsdatum']['junior']==0 && $_SESSION['kreuzfahrt']['personen_nach_altersgruppen']['eingabe_geburtsdatum']['child']==0 && $_SESSION['kreuzfahrt']['personen_nach_altersgruppen']['eingabe_geburtsdatum']['infant']==0 ) { $data['errors']['hinweise_eingabedaten'][] = 'bitte_buchen_nicht_anfragen'; } } /* Hinweis: Bei Anfrage die nachfolgende Prüfung überspringen. */ /* Falls Personen in Step 1 ausgewählt wurden, dann jetzt prüfen, ob die Personen alle das angegebene Alter haben. Dazu wird ... */ if(empty($_SESSION['kreuzfahrt']['personeneingabe_erfolgte_automatisch'])) { /* ... das Alter in den in Step 1 ausgewählten Altersgruppen sortiert und in Anzahl für zulaessiges_min_alter_bei_reise und max aufgeteilt und sortiert ... */ foreach($_SESSION['kreuzfahrt']['personen_nach_altersgruppen']['reederei'] as $alterscode => $anzahl) { if(!empty($anzahl)) { for($x=1; $x <= $anzahl; $x++) { $data['booking']['zulaessiges_min_alter_bei_reise'][] = $data['content']['cruisebook']['reederei_info']['alter_min_'.$alterscode]; $data['booking']['zulaessiges_max_alter_bei_reise'][] = $data['content']['cruisebook']['reederei_info']['alter_max_'.$alterscode]; } } } rsort($data['booking']['zulaessiges_min_alter_bei_reise']); rsort($data['booking']['zulaessiges_max_alter_bei_reise']); #dump($data['booking']['alter_bei_reise'], 'alter_bei_reise'); #dump($data['booking']['zulaessiges_min_alter_bei_reise'], 'zulaessiges_min_alter_bei_reise'); #dump($data['booking']['zulaessiges_max_alter_bei_reise'], 'zulaessiges_max_alter_bei_reise'); /* dann wird das Alter der Mitreisenden gemäß Geburtstagseingabe sortiert ... */ rsort($data['booking']['alter_bei_reise']); /* ... und geprüft, ob dies zu den oben gebildeten Gruppen passt ... */ #dump($data['booking']['zulaessiges_min_alter_bei_reise'], 'zulaessiges_min_alter_bei_reise'); foreach($data['booking']['alter_bei_reise'] as $key=>$value_alter) { if( $data['booking']['zulaessiges_min_alter_bei_reise'][$key] > $value_alter) $data['errors']['check_eingabedaten'][] = 'check_eingabedaten_reiseteilnehmer_altersgruppe'; /* Mindestalter, wird das benötigt? */ if( $data['booking']['zulaessiges_max_alter_bei_reise'][$key] < $value_alter) $data['errors']['check_eingabedaten'][] = 'check_eingabedaten_reiseteilnehmer_altersgruppe'; } } else { /* Falls Step 1 übersprungen wurde (oder auch bei Terminauswahl nachträglich übersprungen wurde), dann soll nur die Anzahl überprüft werden */ if($_SESSION['kreuzfahrt']['book_method'] != 'anfrage') { if($_SESSION['kreuzfahrt']['anzahl_personen_summe'] != 2 ) $data['errors']['check_eingabedaten'][] = 'check_eingabedaten_anzahl_mitreisender'; } } /* Überschüssige Personen aus den Eingaben verwerfen */ if(empty($_SESSION['kreuzfahrt']['book_method']) OR $_SESSION['kreuzfahrt']['book_method']!='anfrage') { for($i=($_SESSION['kreuzfahrt']['anzahl_personen_summe']+1); $i<=4; $i++) { #dump($i); unset( $_SESSION['eingaben']['reiseteilnehmer_'.$i.'_anrede'], $_SESSION['eingaben']['reiseteilnehmer_'.$i.'_titel'], $_SESSION['eingaben']['reiseteilnehmer_'.$i.'_vorname'], $_SESSION['eingaben']['reiseteilnehmer_'.$i.'_nachname'], $_SESSION['eingaben']['reiseteilnehmer_'.$i.'_geburtsdatum'], $_SESSION['eingaben']['reiseteilnehmer_'.$i.'_geburtsdatum_t'], $_SESSION['eingaben']['reiseteilnehmer_'.$i.'_geburtsdatum_m'], $_SESSION['eingaben']['reiseteilnehmer_'.$i.'_geburtsdatum_j'], $_SESSION['eingaben']['reiseteilnehmer_'.$i.'_nationalitaet'], $_SESSION['eingaben']['reiseteilnehmer_'.$i.'_strasse'], $_SESSION['eingaben']['reiseteilnehmer_'.$i.'_hausnummer'], $_SESSION['eingaben']['reiseteilnehmer_'.$i.'_plz'], $_SESSION['eingaben']['reiseteilnehmer_'.$i.'_ort'], $_SESSION['eingaben']['reiseteilnehmer_'.$i.'_land']); } } /* Zahlungsarten */ #dump($data['errors']['check_eingabedaten']); #dump($data['setup']['regeln_buchung_felder'], 'regeln_buchung_felder'); #dump($_SESSION['kreuzfahrt']['book_method']); if(!empty($data['setup']['regeln_buchung_felder'][ $_SESSION['kreuzfahrt']['book_method'] ]['felderanzeigen_general']['zahlungsweise']) && $data['setup']['regeln_buchung_felder'][ $_SESSION['kreuzfahrt']['book_method'] ]['felderanzeigen_general']['zahlungsweise']=='pflicht') { #if(empty($_SESSION['eingaben']['zahlung'])) $data['errors']['check_eingabedaten'][] = 'check_eingabedaten_zahlung'; #dump($data['errors']['check_eingabedaten'], '2'); } } else { $data['action']['unbearbeitete_steps']['eingabe_daten'] = 1; } #dump($_SESSION['eingaben'], 'session eingaben'); /* Kreditkartendaten prüfen und kartenart nachermitteln */ if(!empty($_SESSION['eingaben']['zahlung']) && $_SESSION['eingaben']['zahlung']=='creditcard') { /* Inputfelder dürfen nicht leer sein, wenn gerade das Personenformular abgeschickt wurde. Denn sonst werden leere Felder übersprungen und es bleibt der Wert aus der Session aus der Voreingabe drin. */ if( $data['action']['requested_action'] == 'check_eingabedaten' ) { if(empty($data['input']['mixed']['cvc'])) $_SESSION['eingaben']['cvc'] = ''; if(empty($data['input']['mixed']['expiry-year'])) $_SESSION['eingaben']['expiryYear']= ''; if(empty($data['input']['mixed']['expiry-month'])) $_SESSION['eingaben']['expiryMonth']= ''; if(empty($data['input']['mixed']['karteninhaber'])) $_SESSION['eingaben']['karteninhaber']= ''; if(empty($data['input']['mixed']['kartennummer'])) $_SESSION['eingaben']['kartennummer']= ''; } if(empty($_SESSION['eingaben']['kartennummer'])) { $data['errors']['check_eingabedaten'][] = 'check_eingabedaten_kreditkartennummer'; } else { if( in_array( substr($_SESSION['eingaben']['kartennummer'], 0, 4), array('4026', '4175', '4508', '4844', '4913', '4917') ) ) $_SESSION['eingaben']['kartenart'] = 'Visa Electron'; if( empty($_SESSION['eingaben']['kartenart']) && substr($_SESSION['eingaben']['kartennummer'], 0, 1)=='4' ) $_SESSION['eingaben']['kartenart'] = 'Visa'; if( empty($_SESSION['eingaben']['kartenart']) && in_array( substr($_SESSION['eingaben']['kartennummer'], 0, 2), array('50', '51', '52', '53', '54', '55') ) ) $_SESSION['eingaben']['kartenart'] = 'Mastercard'; } if(empty($_SESSION['eingaben']['karteninhaber'])) { $data['errors']['check_eingabedaten'][] = 'check_eingabedaten_kreditkarten_inhaber'; #dump('check_eingabedaten_kreditkarten_inhaber fehlt'); } if(empty($_SESSION['eingaben']['expiryMonth'])) { $data['errors']['check_eingabedaten'][] = 'check_eingabedaten_kreditkarten_expiry'; } else { if( !is_numeric($_SESSION['eingaben']['expiryMonth'])) { $data['errors']['check_eingabedaten'][] = 'check_eingabedaten_kreditkarten_expiry'; } else { if( $_SESSION['eingaben']['expiryMonth'] < 1 OR $_SESSION['eingaben']['expiryMonth'] > 12 ) $data['errors']['check_eingabedaten'][] = 'check_eingabedaten_kreditkarten_expiry'; } } if(empty($_SESSION['eingaben']['expiryYear'])) { $data['errors']['check_eingabedaten'][] = 'check_eingabedaten_kreditkarten_expiry'; } else { if( !is_numeric($_SESSION['eingaben']['expiryYear'])) { $data['errors']['check_eingabedaten'][] = 'check_eingabedaten_kreditkarten_expiry'; } else { if( $_SESSION['eingaben']['expiryYear'] < 19 OR $_SESSION['eingaben']['expiryYear'] > 50 ) $data['errors']['check_eingabedaten'][] = 'check_eingabedaten_kreditkarten_expiry'; } } if(empty($_SESSION['eingaben']['cvc']) OR !is_numeric($_SESSION['eingaben']['cvc']) ) $data['errors']['check_eingabedaten'][] = 'check_eingabedaten_kreditkarten_cvc'; } /* Lastschrift prüfen */ if(!empty($_SESSION['eingaben']['zahlung']) && $_SESSION['eingaben']['zahlung']=='debit') { /* Inputfelder dürfen nicht leer sein, wenn gerade das Personenformular abgeschickt wurde. Denn sonst werden leere Felder übersprungen und es bleibt der Wert aus der Session aus der Voreingabe drin. */ if( $data['action']['requested_action'] == 'check_eingabedaten' ) { if(empty($data['input']['mixed']['kontonummer'])) $_SESSION['eingaben']['kontonummer'] = ''; if(empty($data['input']['mixed']['bankleitzahl'])) $_SESSION['eingaben']['bankleitzahl']= ''; if(empty($data['input']['mixed']['bank'])) $_SESSION['eingaben']['bank']= ''; if(empty($data['input']['mixed']['kontoinhaber'])) $_SESSION['eingaben']['kontoinhaber']= ''; } if(empty($_SESSION['eingaben']['kontonummer'])) $data['errors']['check_eingabedaten'][] = 'check_eingabedaten_kontonummer'; if(empty($_SESSION['eingaben']['bankleitzahl'])) $data['errors']['check_eingabedaten'][] = 'check_eingabedaten_bankleitzahl'; if(empty($_SESSION['eingaben']['bank'])) $data['errors']['check_eingabedaten'][] = 'check_eingabedaten_bank'; if(empty($_SESSION['eingaben']['kontoinhaber'])) $data['errors']['check_eingabedaten'][] = 'check_eingabedaten_kontoinhaber'; } /* Telefon */ $_SESSION['eingaben']['telefon_zusammen'] = ''; if(!empty($_SESSION['eingaben']['telefon'])) $_SESSION['eingaben']['telefon_zusammen'] = $_SESSION['eingaben']['telefon']; if(!empty($_SESSION['eingaben']['mobil'])) $_SESSION['eingaben']['telefon_zusammen'] = $_SESSION['eingaben']['mobil']; /* Doppelte Fehlermeldungen zusammenfassen */ $data['errors']['check_eingabedaten'] = array_unique($data['errors']['check_eingabedaten']); $data['errors']['hinweise_eingabedaten'] = array_unique($data['errors']['hinweise_eingabedaten']); /* Wenn Fehler aufgetreten sind, dann Step zurücksetzen */ if( empty($data['errors']['check_eingabedaten']) && empty($data['errors']['hinweise_eingabedaten'])) { $data['action']['unbearbeitete_steps']['eingabe_daten'] = 0; } else { $data['action']['unbearbeitete_steps']['eingabe_daten'] = 1; dump($data['errors']['check_eingabedaten'], 'check_eingabedaten', 'rot'); add_info_meldungen(__FILE__, __FUNCTION__, __LINE__, 'Fehler bei Dateneingabe. Daher Step zurückgesetzt.'); } add_info_meldungen(__FILE__, __FUNCTION__, __LINE__, 'book_eingabenvalidierung__personendaten wurde beendet.'); } /****************************** Checkboxen AGB Formblatt usw. ***************************************************************************************************/ function book_eingabenvalidierung__agb_formblatt() { global $data, $db, $setup, $server; add_info_meldungen(__FILE__, __FUNCTION__, __LINE__, 'book_eingabenvalidierung__agb_formblatt wurde gestartet.'); if($data['action']['requested_action'] == "buchung_durchfuehren") { /* KR=Vermittler */ /* Hinweis: Daran denken, dass diese Checkboxes auch vorhanden sein müssen!!! */ if($data['content']['cruisebook']['xlang']['veranstalter_vermittler'] == 'reederei') { #if($data['content']['cruisebook']['veranstalter'] == 'reederei' OR $_SESSION['kreuzfahrt']['book_method'] == 'apiAidaBook') { if(empty($_SESSION['eingaben']['formblatt_reederei'] )) $data['errors']['check_agbcheckboxes'] .= ' | formblatt_reederei nicht akzeptiert '; if(empty($_SESSION['eingaben']['agb_reederei'] )) $data['errors']['check_agbcheckboxes'] .= ' | agb_reederei nicht akzeptiert '; if(empty($_SESSION['eingaben']['agb_vermittler'] )) $data['errors']['check_agbcheckboxes'] .= ' | agb_vermittler nicht akzeptiert '; if(empty($_SESSION['eingaben']['datenschutz'] )) $data['errors']['check_agbcheckboxes'] .= ' | datenschutz nicht akzeptiert '; } else { /* KR=Veranstalter */ if(empty($_SESSION['eingaben']['agb_kr'] )) $data['errors']['check_agbcheckboxes'] .= ' | agb_kr nicht akzeptiert '; if(empty($_SESSION['eingaben']['formblatt_kr'] )) $data['errors']['check_agbcheckboxes'] .= ' | formblatt_kr nicht akzeptiert '; if(empty($_SESSION['eingaben']['datenschutz'] )) $data['errors']['check_agbcheckboxes'] .= ' | datenschutz nicht akzeptiert '; } /* AGB von HEX bestätigt? */ if(!empty($_SESSION['kreuzfahrt']['show_this_agb_hex'])) { foreach($_SESSION['kreuzfahrt']['show_this_agb_hex'] as $value_agb_hex) { if(empty($_SESSION['eingaben']['agb_hex'][ $value_agb_hex['carparkcode'] ] )) $data['errors']['check_agbcheckboxes'] .= ' | agb_hex nicht akzeptiert '; } } if(!empty($data['errors']['check_agbcheckboxes'])) { /* Wenn Fehler, dann zurück zur Dateneingabe */ dump($data['errors']['check_agbcheckboxes'], 'Fehlerursache', 'rot'); $data['action']['unbearbeitete_steps']['eingabe_pruefung_agb'] = 1; #$data['action']['requested_action'] = 'eingabe_pruefung_agb'; } else { /* Wenn alles ok, dann Freigabe zur Buchung */ $data['action']['unbearbeitete_steps']['eingabe_pruefung_agb'] = 0; #$data['action']['requested_action'] = 'buchung_durchfuehren'; } } add_info_meldungen(__FILE__, __FUNCTION__, __LINE__, 'book_eingabenvalidierung__agb_formblatt wurde beendet.'); } /****************** Personen *********************************************************************************************************************/ function book_eingabenvalidierung__personen() { global $data, $db, $setup, $server; add_info_meldungen(__FILE__, __FUNCTION__, __LINE__, 'book_eingabenvalidierung__personen wurde gestartet.'); $temp_error_personen = array(); $temp_api_aktiviert = $temp_personen_ueberspringen = 0; /* Prüfung / Nachkontrolle, ob die erforderlichen Personendaten noch vorhanden sind. */ if( !in_array($data['action']['requested_action'], array('stop_all', 'new' )) ) { #dump($_SESSION['kreuzfahrt'], 'session kreuzfahrt'); /* Wenn ein Termin gewählt wurde und an diesem Termin ausschließlich KR-Angebote angeboten werden und keine API-Angebote, dann vormerken für API_dekativiert*/ /* Hinweis: Muss überarbeitet werden, wenn irgendwann KR-Angebote mal mit mehreren Personen buchbar sind. */ if ( !empty($_SESSION['kreuzfahrt']['termin_id']) ) { #$data['content']['cruisebook']['termin_kabinentyp_kabine'][ $_SESSION['kreuzfahrt']['termin_id'] ]['xmlDeaktiviert'] = 1; /* Für den gewählten Termin ist keine API aktiviert */ if( empty($data['content']['cruisebook']['termin_kabinentyp_kabine'][ $_SESSION['kreuzfahrt']['termin_id'] ]['apiExternalBook']) ) { #if( !empty($data['content']['cruisebook']['termin_kabinentyp_kabine'][ $_SESSION['kreuzfahrt']['termin_id'] ]['xmlDeaktiviert']) ) { add_info_meldungen(__FILE__, __FUNCTION__, __LINE__, 'Für den Termin ist API deaktiviert. Daher Personenauswahl überspringen.'); $temp_personen_ueberspringen = 1; #dump($temp_personen_ueberspringen, '$temp_personen_ueberspringen'); } /* Für den gewählten Termin ist mindestens ein KR-Preis vorhanden. Daher soll hart auf 2 Personen gesetzt werden */ if( !empty($data['content']['cruisebook']['termin_kabinentyp_kabine'][ $_SESSION['kreuzfahrt']['termin_id'] ]['verfuegbare_preiskonditionen'][8]) OR !empty($data['content']['cruisebook']['termin_kabinentyp_kabine'][ $_SESSION['kreuzfahrt']['termin_id'] ]['verfuegbare_preiskonditionen'][9]) OR !empty($data['content']['cruisebook']['termin_kabinentyp_kabine'][ $_SESSION['kreuzfahrt']['termin_id'] ]['verfuegbare_preiskonditionen'][10])) { add_info_meldungen(__FILE__, __FUNCTION__, __LINE__, 'Für den Termin ist ein KR-Preis vorhanden. Daher Personenauswahl auf 2a gesetzt und überspringen.'); $temp_personen_ueberspringen = 1; } } else { /* wenn kein starttermin ausgewählt wurde ... */ /* ... zunächst schauen, ob die Kreuzfahrt grundsätzlich auf APIBook steht ... */ if( !empty($data['content']['cruisebook']['apiAidaBook']) OR !empty($data['content']['cruisebook']['apiMscBook']) OR !empty($data['content']['cruisebook']['apiExternalBook']) ) { /* ... dann alle Termine durchlaufen ... */ foreach($data['content']['cruisebook']['termin_kabinentyp_kabine'] as $key_termin_id => $value) { /* ... wenn mindestens an einem Termin die API nicht deaktiviert ist, dann vormerken für API_aktiviert */ if( empty($data['content']['cruisebook']['termin_kabinentyp_kabine'][$key_termin_id]['xmlDeaktiviert']) ) $temp_api_aktiviert = 1; } } add_info_meldungen(__FILE__, __FUNCTION__, __LINE__, 'Für mindestens einen Termin ist API aktiviert. Daher kein Überspringen möglich.'); if(empty($temp_api_aktiviert)) $temp_personen_ueberspringen = 1; } /* Für die gesamte Kreuzfahrt ist keine API zugeordnet */ if( empty($data['content']['cruisebook']['apiAidaBook']) && empty($data['content']['cruisebook']['apiMscBook']) && empty($data['content']['cruisebook']['apiExternalBook']) ) { add_info_meldungen(__FILE__, __FUNCTION__, __LINE__, 'Für die Kreuzfahrt ist API deaktiviert. Daher Personenauswahl überspringen.'); $temp_personen_ueberspringen = 1; #dump($temp_personen_ueberspringen, '$temp_personen_ueberspringen'); } /* wenn Personenauswahl übersprungen werden kann, dann jetzt die Eingabewerte simulieren und setzen */ #dump($temp_personen_ueberspringen, '$temp_personen_ueberspringen'); if(!empty($temp_personen_ueberspringen)) { add_info_meldungen(__FILE__, __FUNCTION__, __LINE__, 'Aufgrund des vorherigen Ergebnisses wurde die Personenauswahl übersprungen.'); $_SESSION['kreuzfahrt']['personen_alter_1'] = 99; $_SESSION['kreuzfahrt']['personen_alter_2'] = 99; $_SESSION['kreuzfahrt']['anzahl_personen_summe'] = 2; $_SESSION['kreuzfahrt']['personencode'] = '2a'; $_SESSION['kreuzfahrt']['personeneingabe_erfolgte_automatisch'] = '1'; $data['action']['unbearbeitete_steps']['select_personen'] = 0; $data['action']['verfuegbare_steps']['select_personen'] = 0; } /* Prüfung, falls schon Personen eingegeben wurden */ if ( !empty($_SESSION['kreuzfahrt']['anzahl_personen_summe'])) { /* Prüfung, ob Person ausgewählt ist. Falls eine Eingabe vorhanden ist ... */ if( empty( $_SESSION['kreuzfahrt']['personen_alter_1']) OR $_SESSION['kreuzfahrt']['personen_alter_1']!=99 ) $temp_error_personen[] = 'Person 1 fehlt.'; /* Personenauswahl nochmal individuell validierenl, so dass nur die im Formular genannten Zahlen ausgewählt werden können */ if ( !in_array( $_SESSION['kreuzfahrt']['anzahl_personen_summe'], array(1,2,3,4)) ) $temp_error_personen[] = 'Personenanzahl falsch ausgewählt.'; /* Personenalter überprüfen + Umrechnung des eingegebenen Personenalters auf Altersklassen. Reedereispezifisch */ #dump( $data['content']['cruisebook']['reederei_info'] ); $_SESSION['kreuzfahrt']['personen_nach_altersgruppen']['reederei']['adult'] = $_SESSION['kreuzfahrt']['personen_nach_altersgruppen']['reederei']['junior'] = $_SESSION['kreuzfahrt']['personen_nach_altersgruppen']['reederei']['child'] = $_SESSION['kreuzfahrt']['personen_nach_altersgruppen']['reederei']['baby'] = 0; $_SESSION['kreuzfahrt']['personen_nach_altersgruppen']['deutschebahn_rf']['adult'] = $_SESSION['kreuzfahrt']['personen_nach_altersgruppen']['deutschebahn_rf']['child'] = $_SESSION['kreuzfahrt']['personen_nach_altersgruppen']['deutschebahn_rf']['baby'] = $_SESSION['kreuzfahrt']['personen_nach_altersgruppen']['deutschebahn_rf']['vollzahler'] = 0; $_SESSION['kreuzfahrt']['personen_nach_altersgruppen']['deutschebahn_rit']['adult'] = $_SESSION['kreuzfahrt']['personen_nach_altersgruppen']['deutschebahn_rit']['child'] = $_SESSION['kreuzfahrt']['personen_nach_altersgruppen']['deutschebahn_rit']['baby'] = $_SESSION['kreuzfahrt']['personen_nach_altersgruppen']['deutschebahn_rit']['vollzahler'] = 0; for($i=1; $i<=4; $i++) { if($i<=$_SESSION['kreuzfahrt']['anzahl_personen_summe']) { if ( !isset($_SESSION['kreuzfahrt']['personen_alter_'.$i]) ) { $temp_error_personen[] = 'Altersangabe von Person '.$i.' fehlt.'; } else { /* Vorab-Prüfung, dass das Formular korrekt ausgefüllt wurde. Das Alter muss zwischen dem absoluten Minimum (z.B. 2) und dem absoluten Maximum (z.B. 99) liegen. */ if($_SESSION['kreuzfahrt']['personen_alter_'.$i] > $data['content']['cruisebook']['reederei_info']['alter_optionen_max'] && $_SESSION['kreuzfahrt']['personen_alter_'.$i] != 99) $temp_error_personen[] = 'Altersangabe von Person '.$i.' ist zu groß ('.$_SESSION['kreuzfahrt']['personen_alter_'.$i].' > '.$data['content']['cruisebook']['reederei_info']['alter_optionen_max'].' und !=99)'; if($_SESSION['kreuzfahrt']['personen_alter_'.$i] < $data['content']['cruisebook']['reederei_info']['alter_optionen_min'] ) $temp_error_personen[] = 'Altersangabe von Person '.$i.' ist klein ('.$_SESSION['kreuzfahrt']['personen_alter_'.$i].' < '.$data['content']['cruisebook']['reederei_info']['alter_optionen_min'].')'; /* Umrechnung in Altersgruppen für Reederei */ if($_SESSION['kreuzfahrt']['personen_alter_'.$i] >= $data['content']['cruisebook']['reederei_info']['alter_min_adult'] ) $_SESSION['kreuzfahrt']['personen_nach_altersgruppen']['reederei']['adult']++; if($_SESSION['kreuzfahrt']['personen_alter_'.$i] >= $data['content']['cruisebook']['reederei_info']['alter_min_junior'] && $_SESSION['kreuzfahrt']['personen_alter_'.$i] < $data['content']['cruisebook']['reederei_info']['alter_min_adult'] ) $_SESSION['kreuzfahrt']['personen_nach_altersgruppen']['reederei']['junior']++; if($_SESSION['kreuzfahrt']['personen_alter_'.$i] >= $data['content']['cruisebook']['reederei_info']['alter_min_child'] && $_SESSION['kreuzfahrt']['personen_alter_'.$i] < $data['content']['cruisebook']['reederei_info']['alter_min_junior'] ) $_SESSION['kreuzfahrt']['personen_nach_altersgruppen']['reederei']['child']++; if($_SESSION['kreuzfahrt']['personen_alter_'.$i] >= $data['content']['cruisebook']['reederei_info']['alter_min_baby'] && $_SESSION['kreuzfahrt']['personen_alter_'.$i] < $data['content']['cruisebook']['reederei_info']['alter_min_child'] ) $_SESSION['kreuzfahrt']['personen_nach_altersgruppen']['reederei']['baby']++; /* Umrechnung in Altergruppen für Rail&Fly */ if($_SESSION['kreuzfahrt']['personen_alter_'.$i] >= $setup['deutsche_bahn']['alter_rf_adult'] ) $_SESSION['kreuzfahrt']['personen_nach_altersgruppen']['deutschebahn_rf']['adult']++; if($_SESSION['kreuzfahrt']['personen_alter_'.$i] >= $setup['deutsche_bahn']['alter_rf_child'] && $_SESSION['kreuzfahrt']['personen_alter_'.$i] < $setup['deutsche_bahn']['alter_rf_adult'] ) $_SESSION['kreuzfahrt']['personen_nach_altersgruppen']['deutschebahn_rf']['child']++; if($_SESSION['kreuzfahrt']['personen_alter_'.$i] < $setup['deutsche_bahn']['alter_rf_child'] ) $_SESSION['kreuzfahrt']['personen_nach_altersgruppen']['deutschebahn_rf']['baby']++; $_SESSION['kreuzfahrt']['personen_nach_altersgruppen']['deutschebahn_rf']['vollzahler'] = $_SESSION['kreuzfahrt']['personen_nach_altersgruppen']['deutschebahn_rf']['adult'] + $_SESSION['kreuzfahrt']['personen_nach_altersgruppen']['deutschebahn_rf']['child']; /* Umrechnung in Altergruppen für RIT */ if($_SESSION['kreuzfahrt']['personen_alter_'.$i] >= $setup['deutsche_bahn']['alter_rit_adult'] ) $_SESSION['kreuzfahrt']['personen_nach_altersgruppen']['deutschebahn_rit']['adult']++; if($_SESSION['kreuzfahrt']['personen_alter_'.$i] >= $setup['deutsche_bahn']['alter_rit_child'] && $_SESSION['kreuzfahrt']['personen_alter_'.$i] < $setup['deutsche_bahn']['alter_rit_adult'] ) $_SESSION['kreuzfahrt']['personen_nach_altersgruppen']['deutschebahn_rit']['child']++; if($_SESSION['kreuzfahrt']['personen_alter_'.$i] < $setup['deutsche_bahn']['alter_rit_child'] ) $_SESSION['kreuzfahrt']['personen_nach_altersgruppen']['deutschebahn_rit']['baby']++; $_SESSION['kreuzfahrt']['personen_nach_altersgruppen']['deutschebahn_rit']['vollzahler'] = $_SESSION['kreuzfahrt']['personen_nach_altersgruppen']['deutschebahn_rit']['adult'] + $_SESSION['kreuzfahrt']['personen_nach_altersgruppen']['deutschebahn_rit']['child']; } } else { unset($_SESSION['kreuzfahrt']['personen_alter_'.$i]); } } /* Personencode für Reedereileistung zusammenstellen */ $_SESSION['kreuzfahrt']['personencode'] = ''; if(!empty($_SESSION['kreuzfahrt']['personen_nach_altersgruppen']['reederei']['adult'] )) $_SESSION['kreuzfahrt']['personencode'] .= $_SESSION['kreuzfahrt']['personen_nach_altersgruppen']['reederei']['adult'] .'a'; if(!empty($_SESSION['kreuzfahrt']['personen_nach_altersgruppen']['reederei']['child'] )) $_SESSION['kreuzfahrt']['personencode'] .= $_SESSION['kreuzfahrt']['personen_nach_altersgruppen']['reederei']['child'] .'c'; if(!empty($_SESSION['kreuzfahrt']['personen_nach_altersgruppen']['reederei']['junior'])) $_SESSION['kreuzfahrt']['personencode'] .= $_SESSION['kreuzfahrt']['personen_nach_altersgruppen']['reederei']['junior'].'j'; if(!empty($_SESSION['kreuzfahrt']['personen_nach_altersgruppen']['reederei']['baby'] )) $_SESSION['kreuzfahrt']['personencode'] .= $_SESSION['kreuzfahrt']['personen_nach_altersgruppen']['reederei']['baby'] .'b'; #dump($data['setup']['regeln_buchung_felder']); #dump($_SESSION['kreuzfahrt']['book_method'], 'book method '.__LINE__); #dump($_SESSION['kreuzfahrt']['anzahl_personen_summe']); } else { $temp_error_personen[] = 'Personenauswahl bisher noch nicht bearbeitet'; } #dump($temp_error_personen, 'error'); #dump($_SESSION['kreuzfahrt'], 'session kreuzfahrt'); /* Ergebnis der Fehlerauswertung */ if(empty($temp_error_personen)) { /* ...dann Personenauswahl auf bearbeitet setzen */ $data['action']['unbearbeitete_steps']['select_personen'] = 0; add_info_meldungen(__FILE__, __FUNCTION__, __LINE__, 'Personenprüfung war erfolgreich. Alles OK.'); } else { /* ...sonst zurück zur Personenauswahl und alle Folgesteps zurücksetzen */ $data['action']['unbearbeitete_steps']['select_personen'] = 1; $data['action']['unbearbeitete_steps']['select_termin'] = 1; $data['action']['unbearbeitete_steps']['select_kategorie'] = 1; $data['action']['unbearbeitete_steps']['select_kabinennummer'] = 1; $data['action']['unbearbeitete_steps']['select_schiffsleistungen'] = 1; $data['action']['unbearbeitete_steps']['select_flughafen'] = 1; $data['action']['unbearbeitete_steps']['select_bahnfahrt'] = 1; add_info_meldungen(__FILE__, __FUNCTION__, __LINE__, 'Personenprüfung war fehlerhaft. Alles ab einschließlich Personenauswahl wurde zurückgesetzt: '.implode($temp_error_personen) ); } } /* Wenn Personen gerade eben neu gewählt wurden, dann alle darauf basierenden Daten löschen */ if($data['action']['requested_action'] == "check_personen" && !empty($data['action']['last_template']) && $data['action']['last_template'] == 'select_personen') { unset( $_SESSION['kreuzfahrt']['personeneingabe_erfolgte_automatisch']); unset( $_SESSION['kreuzfahrt']['quelle_preiskondition_gruppe'], $_SESSION['kreuzfahrt']['aidaCruiseId'], $_SESSION['kreuzfahrt']['mscCruiseId']); book_session_leeren___kategorien(); book_session_leeren___kabine(); book_session_leeren___fluege(); book_session_leeren___bahnfahrt(); book_session_leeren___zusatzleistungen(); add_info_meldungen(__FILE__, __FUNCTION__, __LINE__, 'Personen wurden neu gesetzt. Daher wurden alle nachfolgenden Eingaben aus der Session geleert.'); } add_info_meldungen(__FILE__, __FUNCTION__, __LINE__, 'book_eingabenvalidierung__personen wurde beendet.'); } /****************** Termin *********************************************************************************************************************/ function book_eingabenvalidierung__termin() { global $data, $db, $setup, $server; add_info_meldungen(__FILE__, __FUNCTION__, __LINE__, 'book_eingabenvalidierung__termin wurde gestartet.'); /* Prüfung / Nachkontrolle, ob die erforderlichen Termindaten noch vorhanden sind. */ if( !in_array($data['action']['requested_action'], array('stop_all', 'new', 'select_personen', 'check_personen' )) ) { #/* Prüfen, ob Personen vorhanden sind (step gehört eigentlich zur Personenprüfung. */ #if( empty($_SESSION['kreuzfahrt']['personen_nach_altersgruppen'] ) OR empty(empty($_SESSION['kreuzfahrt']['personencode']))) { # /* ...sonst zurück zur Terminauswahl und alle Folgesteps zurücksetzen */ # $data['action']['unbearbeitete_steps']['select_termin'] = 1; # $data['action']['unbearbeitete_steps']['select_termin'] = 1; # $data['action']['unbearbeitete_steps']['select_kategorie'] = 1; # $data['action']['unbearbeitete_steps']['select_kabinennummer'] = 1; # $data['action']['unbearbeitete_steps']['select_schiffsleistungen'] = 1; # $data['action']['unbearbeitete_steps']['select_flughafen'] = 1; # $data['action']['unbearbeitete_steps']['select_bahnfahrt'] = 1; # # /* ... und alle Daten aus der Session leeren */ # book_session_leeren___termin(); # book_session_leeren___kategorien(); # book_session_leeren___kabine(); # book_session_leeren___fluege(); # book_session_leeren___bahnfahrt(); # book_session_leeren___zusatzleistungen(); # $data['action']['backaction'] = $data['action']['nextaction'] = $data['action']['show_template'] = ''; # add_info_meldungen(__FILE__, __FUNCTION__, __LINE__, 'Zurück zur Personenauswahl'; #} /* Prüfung, ob Termin ausgewählt ist. Falls eine Eingabe vorhanden ist und diese valide ist ... */ if( !empty($_SESSION['kreuzfahrt']['termin_id'] ) && ( empty($_SESSION['kreuzfahrtPreisMatrix']) OR !empty($_SESSION['kreuzfahrtPreisMatrix'][ $_SESSION['kreuzfahrt']['termin_id'] ] ) ) ) { /* ...dann Terminauswahl auf bearbeitet setzen */ $data['action']['unbearbeitete_steps']['select_termin'] = 0; add_info_meldungen(__FILE__, __FUNCTION__, __LINE__, 'Eingabe zu Termin validiert und bestätigt. '); } else { /* ...sonst zurück zur Terminauswahl und alle Folgesteps zurücksetzen */ $data['action']['unbearbeitete_steps']['select_termin'] = 1; $data['action']['unbearbeitete_steps']['select_kategorie'] = 1; $data['action']['unbearbeitete_steps']['select_kabinennummer'] = 1; $data['action']['unbearbeitete_steps']['select_schiffsleistungen'] = 1; $data['action']['unbearbeitete_steps']['select_flughafen'] = 1; $data['action']['unbearbeitete_steps']['select_bahnfahrt'] = 1; /* ... und alle Daten aus der Session leeren */ book_session_leeren___termin(); book_session_leeren___kategorien(); book_session_leeren___kabine(); book_session_leeren___fluege(); book_session_leeren___bahnfahrt(); book_session_leeren___zusatzleistungen(); $data['action']['backaction'] = $data['action']['nextaction'] = $data['action']['show_template'] = ''; add_info_meldungen(__FILE__, __FUNCTION__, __LINE__, 'Die Kategorieauswahl passt nicht zusammen. Vermutlich wild vorwärts/rückwärts geklickt. Session wird zurückgesetzt. '); $data['errors']['check_kategorieauswahl']['keine_kategorie_ausgewaehlt'] = 'keine_kategorie_ausgewaehlt'; } } /* Wenn Termin gerade eben neu gewählt wurden, dann alle darauf basierenden Daten löschen */ if($data['action']['requested_action'] == "check_termin" && !empty($data['action']['last_template']) && $data['action']['last_template'] == 'select_termin') { book_session_leeren___kategorien(); book_session_leeren___kabine(); book_session_leeren___fluege(); book_session_leeren___bahnfahrt(); book_session_leeren___zusatzleistungen(); $data['action']['unbearbeitete_steps']['select_versicherung'] = 1; } add_info_meldungen(__FILE__, __FUNCTION__, __LINE__, 'book_eingabenvalidierung__termin wurde beendet.'); } /****************** Kategorie *********************************************************************************************************************/ function book_eingabenvalidierung__kategorie() { global $data, $db, $setup, $server; add_info_meldungen(__FILE__, __FUNCTION__, __LINE__, 'book_eingabenvalidierung__kategorie wurde gestartet.'); #dump($_SESSION['kreuzfahrt'], '$_SESSION[kreuzfahrt]', 'gelb', 'zu'); /* Grundsätzlich ist der Step select_kabinennummer erforderlich, außer er wird anschließend deaktiviert */ $data['action']['unbearbeitete_steps']['select_kabinennummer'] = 1; $data['action']['verfuegbare_steps']['select_kabinennummer'] = 1; add_info_meldungen(__FILE__, __FUNCTION__, __LINE__, 'Status für select_kabinennummer initialisiert. '); /* Prüfung / Nachkontrolle, ob die Kategoriedaten vorhanden sind. */ if( !in_array($data['action']['requested_action'], array('stop_all', 'new', 'select_personen', 'check_personen', 'select_termin', 'check_termin' )) ) { if( !empty($_SESSION['kreuzfahrt']['kategorie_openfix_id']) OR (!empty($_SESSION['kreuzfahrt']['kategorie_zuordnungstyp']) && $_SESSION['kreuzfahrt']['kategorie_zuordnungstyp']=='kategorie_anfrage' ) ) { /* ...dann Kategorieauswahl auf bearbeitet setzen */ $data['action']['unbearbeitete_steps']['select_kategorie'] = 0; add_info_meldungen(__FILE__, __FUNCTION__, __LINE__, 'Kategorie ist scheinbar ausgewählt, daher Kategorieauswahl auf bearbeitet setzen'); } else { /* ...sonst zurück zur Kategorieauswahl und alle Folgesteps zurücksetzen */ $data['action']['unbearbeitete_steps']['select_kategorie'] = 1; $data['action']['unbearbeitete_steps']['select_schiffsleistungen'] = 1; $data['action']['unbearbeitete_steps']['select_flughafen'] = 1; $data['action']['unbearbeitete_steps']['select_bahnfahrt'] = 1; add_info_meldungen(__FILE__, __FUNCTION__, __LINE__, 'Kategorie ist scheinbar nicht ausgewählt, daher zurück zur Kategorieauswahl und alle Folgesteps zurücksetzen.'); } } /* Wenn Kategorie neu ausgewählt wurde, dann eventuell gesetztes Flag für buchung_abgeschlossen deaktivieren */ if( $data['action']['requested_action'] == 'check_kategorie' && !empty($data['action']['last_template']) && $data['action']['last_template'] == 'select_kategorie') { if(!empty($_SESSION['info']['buchung_abgeschlossen'])) { unset($_SESSION['info']['buchung_abgeschlossen']); add_info_meldungen(__FILE__, __FUNCTION__, __LINE__, 'Flag buchung_abgeschlossen wieder entfernt.'); } } /* Plausibilität der Eingaben überprüfen. Bei Fehler zurücksetzen. */ /* Wenn Kategorie ausgewählt wurde, dann jetzt nochmal validieren */ #dump($_SESSION['kreuzfahrt'], 'KR'); if($data['action']['requested_action'] == 'check_kategorie') { if( empty($data['input']['mixed']['b_kategorie']) OR empty($_SESSION['kreuzfahrt']['kategorieData']) or empty($_SESSION['kreuzfahrt']['termin_id']) or empty($_SESSION['kreuzfahrt']['kategorie_zuordnungstyp']) or ( empty($_SESSION['kreuzfahrt']['kategorie_openfix_id']) && empty($_SESSION['kreuzfahrt']['kategorie_anfrage'])) or empty($_SESSION['kreuzfahrt']['preiskondition_id']) or empty($_SESSION['kreuzfahrt']['quelle_preiskondition_gruppe']) or empty($_SESSION['kreuzfahrt']['mitflug_ohneflug']) OR empty($_SESSION['kreuzfahrt']['personencode']) OR ( empty($_SESSION['kreuzfahrt']['kategorie_anfrage']) && empty($_SESSION['kreuzfahrtPreisMatrix'][ $_SESSION['kreuzfahrt']['termin_id'] ]['preiskonditionen_kategorien'][ $_SESSION['kreuzfahrt']['personencode'] ][ $_SESSION['kreuzfahrt']['preiskondition_id'] ][ $_SESSION['kreuzfahrt']['kategorie_zuordnungstyp'] ][ $_SESSION['kreuzfahrt']['kategorie_openfix_id'] ]['quelle_preiskondition_gruppe'] )) ) { #dump($_SESSION['kreuzfahrt'], 'session kreuzfahrt'); #dump($data['input']['mixed'], 'input mixed'); $data['action']['unbearbeitete_steps']['select_kategorie'] = 1; book_session_leeren___kategorien(); book_session_leeren___kabine(); book_session_leeren___fluege(); book_session_leeren___bahnfahrt(); book_session_leeren___zusatzleistungen(); $data['action']['backaction'] = $data['action']['nextaction'] = $data['action']['show_template'] = ''; add_info_meldungen(__FILE__, __FUNCTION__, __LINE__, 'Keine Kategorie ausgewählt oder Kategorieauswahl passt nicht zusammen, daher alle Kategorieangaben zurückgesetzt.'); $data['errors']['check_kategorieauswahl']['keine_kategorie_ausgewaehlt'] = 'keine_kategorie_ausgewaehlt'; } } /* Für Anfragen */ if(!empty($_SESSION['kreuzfahrt']['kategorie_zuordnungstyp']) && $_SESSION['kreuzfahrt']['kategorie_zuordnungstyp'] == 'kategorie_anfrage') { $data['booking']['quelle_preiskondition_gruppe_kabine_geprueft'] = 'kreuzfahrten-reisebuero'; } /* Für Kategorieauswahl */ if( !empty($_SESSION['kreuzfahrt']['termin_id']) && !empty($_SESSION['kreuzfahrt']['preiskondition_id']) && !empty($_SESSION['kreuzfahrt']['kategorie_openfix_id']) && $_SESSION['kreuzfahrt']['kategorie_zuordnungstyp']!='kategorie_anfrage' && !empty($_SESSION['kreuzfahrt']['kategorie_zuordnungstyp']) && !empty($_SESSION['kreuzfahrt']['mitflug_ohneflug']) ) { $data['booking']['quelle_preiskondition_gruppe_kabine_geprueft'] = $_SESSION['kreuzfahrtPreisMatrix'][ $_SESSION['kreuzfahrt']['termin_id'] ]['preiskonditionen_kategorien'][$_SESSION['kreuzfahrt']['personencode']][ $_SESSION['kreuzfahrt']['preiskondition_id'] ][ $_SESSION['kreuzfahrt']['kategorie_zuordnungstyp'] ][ $_SESSION['kreuzfahrt']['kategorie_openfix_id'] ]['quelle_preiskondition_gruppe']; } #dump('nach quelle_preiskondition_gruppe_kabine_geprueft'); /* Weitere Prüfung. Buchung darf nicht gerade neu gestartet worden sein (z.B. wegen Fehler, alter Session, Start ) */ if( !in_array($data['action']['requested_action'], array('stop_all', 'new', 'select_personen', 'check_personen', 'select_termin', 'check_termin' )) ) { /* Prüfung, ob Termin und Kategorie ausgewählt sind. Falls eine Eingabe fehlt, dann zurück zur Terminauswahl */ if( !empty( $_SESSION['kreuzfahrt']['preiskondition_id']) && (!empty( $_SESSION['kreuzfahrt']['kategorie_openfix_id']) OR !empty( $_SESSION['kreuzfahrt']['kategorie_anfrage'])) && !empty( $_SESSION['kreuzfahrt']['quelle_preiskondition_gruppe']) && !empty($data['booking']['quelle_preiskondition_gruppe_kabine_geprueft']) ) { $data['action']['unbearbeitete_steps']['select_kategorie'] = 0; } else { $data['action']['unbearbeitete_steps']['select_kategorie'] = 1; $data['action']['unbearbeitete_steps']['select_kabinennummer'] = 1; $data['action']['unbearbeitete_steps']['select_schiffsleistungen'] = 1; $data['action']['unbearbeitete_steps']['select_flughafen'] = 1; $data['action']['unbearbeitete_steps']['select_bahnfahrt'] = 1; add_info_meldungen(__FILE__, __FUNCTION__, __LINE__, 'Grundlegende Daten fehlen. Buchung eventuell eben neu gestartet. Daher alle Steps ab Kategorieauswahl auf unbearbeitet gesetzt.'); } } /* session[kreuzfahrt][mitflug_ohneflug] validieren */ if(!empty($data['content']['cruisebook']['isFluginklusive']) && !empty($_SESSION['kreuzfahrt']['mitflug_ohneflug']) && $_SESSION['kreuzfahrt']['mitflug_ohneflug']=='ohneflug') { $data['action']['unbearbeitete_steps']['select_kategorie'] = 1; book_session_leeren___kategorien(); book_session_leeren___kabine(); book_session_leeren___fluege(); book_session_leeren___bahnfahrt(); book_session_leeren___zusatzleistungen(); $data['action']['backaction'] = $data['action']['nextaction'] = $data['action']['show_template'] = ''; add_info_meldungen(__FILE__, __FUNCTION__, __LINE__, 'Es wurde ohne Flug ausgewählt, obwohl Kreuzfahrt mit Flug-Inklusive ist. Kategorieauswahl wurde zurückgesetzt.'); } #dump($_SESSION['kreuzfahrt'], 'SESSION kreuzfahrt'); /* $session['kreuzfahrt']['preiskondition_id_flug_zur_kategorie'] validieren. Das ist wichtig, da der Flugpreis bereits VOR Auswahl des Flugsteps benötigt wird um den Zwischenpreis zu berechnen. */ if($data['action']['requested_action'] == "check_kategorie" && !empty($data['action']['last_template']) && $data['action']['last_template'] == 'select_kategorie') { if(!empty($_SESSION['kreuzfahrt']['preiskondition_id_flug_zur_kategorie'])) { /* Prüfung mit ISSET, da somit auch NULL Preise aus dem V1-Admintool berücksichtigt werden. Sollte später auf empty geändert werden. */ /* Außerdem muss gerpüft werden, dass bei Personencode!=2a für Preiskondition 13 die Flüge als OK angesehen werden. */ /* Flugpreis steht entweder auf Preiskonditionsebene (AIDA, MSC, KR) oder auf Kategorieebene (Cost). Beides muss also leer sein. */ if( !isset($_SESSION['kreuzfahrtPreisMatrix'][ $_SESSION['kreuzfahrt']['termin_id'] ]['preiskonditionen_kategorien'][$_SESSION['kreuzfahrt']['personencode']][ $_SESSION['kreuzfahrt']['preiskondition_id_flug_zur_kategorie'] ]['ab_preis_air']['preis']) && !isset($_SESSION['kreuzfahrtPreisMatrix'][ $_SESSION['kreuzfahrt']['termin_id'] ]['preiskonditionen_kategorien'][ '2a' ][ $_SESSION['kreuzfahrt']['preiskondition_id_flug_zur_kategorie'] ]['ab_preis_air']['preis']) && !isset($_SESSION['kreuzfahrtPreisMatrix'][ $_SESSION['kreuzfahrt']['termin_id'] ]['preiskonditionen_kategorien'][ '2a' ][ $_SESSION['kreuzfahrt']['preiskondition_id_flug_zur_kategorie'] ]['kategorie_fix'][ $_SESSION['kreuzfahrt']['kategorie_fix'] ]['ab_preis_air']['preis']) ) { $data['action']['unbearbeitete_steps']['select_kategorie'] = 1; book_session_leeren___kategorien(); book_session_leeren___kabine(); book_session_leeren___fluege(); book_session_leeren___bahnfahrt(); book_session_leeren___zusatzleistungen(); $data['action']['backaction'] = $data['action']['nextaction'] = $data['action']['show_template'] = ''; add_info_meldungen(__FILE__, __FUNCTION__, __LINE__, 'Bei der Kategorieauswahl wurde eine ungültige Flug-Preiskondition_id ausgewählt. Kategorieauswahl wurde zurückgesetzt.'); } } } /* Flug, Kabinennummer, Zusatzleistungen löschen, wenn Kategorie gerade eben neu gewählt wird */ if($data['action']['requested_action'] == "check_kategorie" && !empty($data['action']['last_template']) && $data['action']['last_template'] == 'select_kategorie') { unset( $_SESSION['kreuzfahrt']['flug'] ); book_session_leeren___kabine(); book_session_leeren___bahnfahrt(); book_session_leeren___zusatzleistungen(); $data['action']['unbearbeitete_steps']['select_versicherung'] = 1; add_info_meldungen(__FILE__, __FUNCTION__, __LINE__, 'Die alten Eingaben die auf der zuvor ausgewählten Kategorie basierten wurden entfernt. '); } /* Wenn in Kabinenabfrage keine Kabinennummern zurückgegeben wurden, dann Kabinen überspringen. /* z.B. bei MSC Garantiekabinen. Auch alle Kategorien aus katogorie_open (egal ob manuell angelegt oder aus Flatfileabfrage) bekommen in der function.php automatisch den status kabinenauswahl_nicht_moeglich=1 */ $data['action']['kabinen_abfrage'] = 1; if(!empty($_SESSION['kreuzfahrt']['termin_id']) && !empty($_SESSION['kreuzfahrt']['personencode']) && !empty($_SESSION['kreuzfahrt']['preiskondition_id']) && !empty($_SESSION['kreuzfahrt']['kategorie_zuordnungstyp']) && !empty($_SESSION['kreuzfahrt']['kategorie_openfix_id'])) { /* kabinenauswahl_nicht_moeglich ist gesetzt */ if( !empty($_SESSION['kreuzfahrtPreisMatrix'][ $_SESSION['kreuzfahrt']['termin_id'] ]['preiskonditionen_kategorien'][ $_SESSION['kreuzfahrt']['personencode'] ][ $_SESSION['kreuzfahrt']['preiskondition_id'] ][ $_SESSION['kreuzfahrt']['kategorie_zuordnungstyp'] ][ $_SESSION['kreuzfahrt']['kategorie_openfix_id'] ]['kabinenauswahl_nicht_moeglich'])) { $data['action']['kabinen_abfrage'] = 0; } /* keine kategorie_fix ID angegeben */ if(empty($_SESSION['kreuzfahrtPreisMatrix'][ $_SESSION['kreuzfahrt']['termin_id'] ]['preiskonditionen_kategorien'][$_SESSION['kreuzfahrt']['personencode']][ $_SESSION['kreuzfahrt']['preiskondition_id'] ]['kategorie_fix'])) { if(empty($_SESSION['kreuzfahrt']['kategorie_fix']) OR empty($_SESSION['kreuzfahrtPreisMatrix'][ $_SESSION['kreuzfahrt']['termin_id'] ]['preiskonditionen_kategorien'][$_SESSION['kreuzfahrt']['personencode']][ $_SESSION['kreuzfahrt']['preiskondition_id'] ]['kategorie_fix'][ $_SESSION['kreuzfahrt']['kategorie_fix'] ])) { $data['action']['kabinen_abfrage'] = 0; } } /* es ist kategorie_open ausgewählt*/ if(empty($_SESSION['kreuzfahrt']['kategorie_zuordnungstyp']) OR $_SESSION['kreuzfahrt']['kategorie_zuordnungstyp'] == 'kategorie_open') { $data['action']['kabinen_abfrage'] = 0; } } else { /* Termin oder Personen oder Kategoriezuordnungstyp oder Kategorieid fehlen */ $data['action']['kabinen_abfrage'] = 0; add_info_meldungen(__FILE__, __FUNCTION__, __LINE__, 'Termin oder Personen oder Kategoriezuordnungstyp oder Kategorieid fehlen => keine Kategorie per API abfragen.'); } /* Wenn zuvor festgestellt wurde, dass keine Kabine abgefragt werden kann, dann den Kabinen-Step überspringen. Damit wird weiter unten auch die Kabinen-API-Abfrage nicht gestartet */ if( empty($data['action']['kabinen_abfrage'])) { add_info_meldungen(__FILE__, __FUNCTION__, __LINE__, 'kabinen_abfrage=0 , daher wird der Step select_kabinennummer komplett deaktiviert'); $data['action']['unbearbeitete_steps']['select_kabinennummer'] = 0; $data['action']['verfuegbare_steps']['select_kabinennummer'] = 0; $data['action']['nextaction'] = ''; $data['action']['backaction'] = ''; $data['action']['show_template'] = ''; /* Kabinennummer für Garantiekabine hinterlegen (wird in der Kabinenabfrage auch nochmal gemacht) */ if( $_SESSION['kreuzfahrt']['book_method'] == 'apiCostaBook' && $data['content']['cruisebook']['kreuzfahrtReedereiID'] == 3 ) $_SESSION['kreuzfahrt']['selected_garantiekabine_nummer'] = $setup['costaapi']['nummer_garantiekabine']; /* Name der Costa Garantiekabine */ if( $_SESSION['kreuzfahrt']['book_method'] == 'apiMscBook' && $data['content']['cruisebook']['kreuzfahrtReedereiID'] == 14 ) $_SESSION['kreuzfahrt']['selected_garantiekabine_nummer'] = $setup['mscapi']['nummer_garantiekabine']; /* Name der MSC Garantiekabine */ } /* Prüfen, ob Reedereiflüge und/oder Eigenflüge vom Endkunden abgefragt werden. Wenn keine Reedereiflüge benötigt werden, dann kann nämlich im Programmcode die Reedereicodeabfrage übersprungen werden. Status wird in $data['booking']['reedereifluege_gesperrt'] hinterlegt. */ if( !empty($_SESSION['kreuzfahrt']['termin_id']) && !empty($_SESSION['kreuzfahrt']['preiskondition_id_flug_zur_kategorie']) && !empty($_SESSION['kreuzfahrt']['mitflug_ohneflug']) && $_SESSION['kreuzfahrt']['mitflug_ohneflug']=='mitflug' ) { /* Wenn die Preiskodition vom zugehörigen Flug NICHT zu AIDA, COSTA oder MSC gehört, dann soll die Abfrage der Reedereiflüge verhindert werden */ if( !in_array( $data['content']['preiskonditionen_ids'][ $_SESSION['kreuzfahrt']['preiskondition_id_flug_zur_kategorie'] ]['quelle_preiskondition_gruppe'], array('aida', 'costa', 'msc'))) { $data['booking']['reedereifluege_gesperrt'] = 1; add_info_meldungen(__FILE__, __FUNCTION__, __LINE__, 'Abfrage der Reedereiflüge (reedereifluege_gesperrt) wurde gesperrt, da die Preiskondition vom Flug ('.$data['content']['preiskonditionen_ids'][ $_SESSION['kreuzfahrt']['preiskondition_id_flug_zur_kategorie'] ]['quelle_preiskondition_gruppe'].') NICHT von einer Reederei kommt.'); } else { add_info_meldungen(__FILE__, __FUNCTION__, __LINE__, 'Abfrage der Reedereiflüge (reedereifluege_gesperrt) wurde NICHT gesperrt, da die Preiskondition vom Flug ('.$data['content']['preiskonditionen_ids'][ $_SESSION['kreuzfahrt']['preiskondition_id_flug_zur_kategorie'] ]['quelle_preiskondition_gruppe'].') von einer Reederei kommt.'); } } add_info_meldungen(__FILE__, __FUNCTION__, __LINE__, 'book_eingabenvalidierung__kategorie wurde beendet.'); } /****************** Kabinennummer (wird auch aufgerufen, wenn keine Kabinennummer wählbar ist) *****************************************************************************************/ function book_eingabenvalidierung__kabine() { global $data, $db, $setup, $server; add_info_meldungen(__FILE__, __FUNCTION__, __LINE__, 'book_eingabenvalidierung__kabine wurde gestartet.'); #dump($_SESSION['kreuzfahrt'], '$_SESSION[kreuzfahrt]', 'gelb', 'zu'); /* Kabinenauswahl anhand der Preiskondition aktivieren oder deaktivieren. */ if( !empty($_SESSION['kreuzfahrt']['preiskondition_id'])) { /* Wenn Kabinen-Nummern-Auswahl möglich ist, dann die Kabinen-Nummern-Auswahl auch als erforderlichen Schritt aufnehmen. Hinterlegung ob Kabinenauswahl möglich oder nicht erfolgt in Tabelle preiskonditionen */ if( !empty( $data['content']['preiskonditionen_ids'][ $_SESSION['kreuzfahrt']['preiskondition_id'] ]['kabinen_auswahl']) && $data['content']['preiskonditionen_ids'][ $_SESSION['kreuzfahrt']['preiskondition_id'] ]['kabinen_auswahl']==1) { #if($data['content']['cruisebook']['kreuzfahrtReedereiID']==2 OR $data['content']['cruisebook']['kreuzfahrtReedereiID']==14 OR $data['content']['cruisebook']['kreuzfahrtReedereiID']==3) { $data['action']['unbearbeitete_steps']['select_kabinennummer'] = 1; $data['action']['verfuegbare_steps']['select_kabinennummer'] = 1; add_info_meldungen(__FILE__, __FUNCTION__, __LINE__, 'Preiskondition mit kabinen_auswahl steht auf +1. Daher Kabinenauswahl aktiviert.'); #} } /* Wenn Kabinen-Num