public function actionBook($id) { if (!Yii::app()->user->hasState("book_data")) { // $backdata= get_object_vars(json_decode(Yii::app()->user->getState("city_data"))); $this->redirect(array("index")); } $bookdata = get_object_vars(json_decode(Yii::app()->user->getState("book_data"))); $model = $this->loadModel($bookdata['sid']); $tour = $this->loadTR($model->city_id, $bookdata['tid']); $contact = new SegContacts(); $ticket_count = 0; if (isset($_POST['SegScheduledTours'])) { $model->tourroute_id = $tour->idseg_tourroutes; if (isset($_POST['SegScheduledTours']['language_id'])) { $model->language_id = $_POST['SegScheduledTours']['language_id']; } if (isset($_POST['SegScheduledTours']['current_subscribers'])) { $ticket_count = (int) $_POST['SegScheduledTours']['current_subscribers']; if (is_null($model->current_subscribers)) { $model->current_subscribers = 0; } $model->current_subscribers += $ticket_count; $model->TNmax_sched = $tour->TNmax; } if (isset($_POST['SegContacts'])) { $contact->attributes = $_POST['SegContacts']; if ($contact->validate()) { $contact->save(); Yii::app()->user->setState('book_data', null); //save booking $id_user = $contact->idcontacts; //save guidestourinvoice $guidestourinvoices = new SegGuidestourinvoices(); $guidestourinvoices->creationDate = $model->date; $guidestourinvoices->cityid = $model->city_id; $guidestourinvoices->sched_tourid = $model->tourroute_id; $guidestourinvoices->guideNr = $model->guide1_id; $guidestourinvoices->status = 0; $guidestourinvoices->contacts_id = $id_user; $guidestourinvoices->id_sched = $model->idseg_scheduled_tours; $guidestourinvoices->save(); $model->save(); //save guidestourinvoicecustomers $id_invoice = $guidestourinvoices->idseg_guidesTourInvoices; for ($j = 0; $j < $ticket_count; $j++) { $guidestourinvoicescustomers = new SegGuidestourinvoicescustomers(); $guidestourinvoicescustomers->customersName = $contact->firstname . ' ' . $contact->surname; // $guidestourinvoicescustomers->price = $tour->base_price; $guidestourinvoicescustomers->price = 0; $guidestourinvoicescustomers->cityid = $model->city_id; $guidestourinvoicescustomers->tourInvoiceid = $id_invoice; //$guidestourinvoicescustomers->CustomeInvoicNumber = ; $b = $tour->city['seg_cityname'][0]; $year = date('y', time()); $max = Yii::app()->db->createCommand("SELECT max(CustomerInvoiceNumber) from seg_guidestourinvoicescustomers where cityid=" . $tour->cityid)->queryScalar(); $max_i = $max + 1; $guidestourinvoicescustomers->KA_string = 'KA' . $b . $year . '/' . $max_i; $guidestourinvoicescustomers->CustomerInvoiceNumber = $max_i; $guidestourinvoicescustomers->isPaid = 0; // $guidestourinvoicescustomers->origin_booking = $id_book; $guidestourinvoicescustomers->save(); } $date_ex = date('d/m/Y', $model->date_now); $x1 = strtotime($model->starttime) - strtotime("00:00:00"); $x2 = $tour->standard_duration * 60; $x3 = $x1 + $x2; $x4 = $x3 + strtotime("00:00:00"); $x5 = date('H:i:s', $x4); $tourend = $x5; $guidename = $model->user_ob->contact_ob->firstname; $guidemnr = $model->user_ob->contact_ob->phone; $message = "Thank you for booking your city tour with Cherry Tours " . $model->city_ob->seg_cityname; $message .= "\n"; $message .= "\nWe have just reserved the following tour date for you:"; $message .= "\n" . $date_ex; $message .= "\nTour start: " . $model->starttime . " (Please show up at the assigned meeting point about 10 minutes before tour start.)"; $message .= "\n"; $message .= "\nEnd of tour: " . $tourend; $message .= "\nTour route: " . $model->tourroute_ob->name; $message .= "\nTour language: " . $model->language_ob->englishname; $message .= "\nTour guide: " . $guidename; $message .= "\nGuide phone: " . $guidemnr . "(for last-minute requests regarding weather or meeting point)"; $message .= "\nFurthermore we recommend:"; $message .= "\n- comfortable shoes, no high heels"; $message .= "\n- adequate clothing (below 15 degrees centigrade, we especially recommend wearing warm clothes and gloves)"; $message .= "\n- sunglasses, if necessary sun protection etc."; $message .= "\n"; $message .= "\nPayment:"; $message .= "\n- On site"; $message .= "\n"; $message .= "\nWe accept the following methods of payment:"; $message .= "\n- Cash in EUR"; $message .= "\n- EC"; $message .= "\n- Credit cards (Visa, Master Card, American Express, JCB Cards, Union Pay)"; $message .= "\n- Vouchers purchased at Cherry Tours"; $message .= "\n"; $message .= "\nWeather:"; $message .= "\nIf the weather forecast shows a high chance of rain at the tour date, we will contact you near-term via email, SMS or phone and inform you if the tour has to be cancelled."; $message .= "\nIf it rains despite a positive weather forecast, the tour guide will decide on-site if the tour can take place. Generally, the tour is arranged along a route where you can always take cover in case of a short rain shower."; $message .= "\n"; $message .= "\n"; $name_forms = $model->city_ob->seg_cityname; $to = $contact->email; if ($this->sendMail($to, $name_forms, $message)) { $stuttgart_link = Yii::app()->createUrl('thankyou'); // header( 'Location: '.$stuttgart_link.'?id=1' ); } // } $this->render('result', array('post' => $_POST, 'contacts' => $contact->attributes, 'model' => $model->attributes)); return; } } } $this->render('book', array('post' => $_POST, 'model' => $model, 'contact' => $contact, 'tour' => $tour)); }
public function actionBook($id) { $sid = ''; if (Yii::app()->user->hasState("book_data") || $_POST['sid']) { if (Yii::app()->user->getState("book_data")) { $bookdata = get_object_vars(json_decode(Yii::app()->user->getState("book_data"))); $sid = $bookdata['sid']; $tid = $bookdata['tid']; } //var_dump($sid); //var_dump($_POST); exit; if (isset($_POST['sid'])) { $sid = $_POST['sid'] * 1; } if (isset($_POST['tid'])) { $tid = $_POST['tid'] * 1; } // $model = $this->loadModel($sid); $tour = $this->loadTR($model->city_id, $tid); } $contact = new SegContacts(); $ticket_count = 0; if (isset($_POST['SegScheduledTours'])) { $model->tourroute_id = $tour->idseg_tourroutes; if (isset($_POST['SegScheduledTours']['language_id'])) { $model->language_id = $_POST['SegScheduledTours']['language_id']; } if (isset($_POST['SegScheduledTours']['current_subscribers'])) { $ticket_count = (int) $_POST['SegScheduledTours']['current_subscribers']; if (is_null($model->current_subscribers)) { $model->current_subscribers = 0; } $model->current_subscribers += $ticket_count; $model->TNmax_sched = $tour->TNmax; } if (isset($_POST['SegContacts'])) { $contact->attributes = $_POST['SegContacts']; if ($contact->validate()) { $contact->save(); Yii::app()->user->setState('book_data', null); //save booking $id_user = $contact->idcontacts; //save guidestourinvoice $guidestourinvoices = new SegGuidestourinvoices(); $guidestourinvoices->creationDate = $model->date; $guidestourinvoices->cityid = $model->city_id; $guidestourinvoices->sched_tourid = $model->tourroute_id; $guidestourinvoices->guideNr = $model->guide1_id; $guidestourinvoices->status = 0; $guidestourinvoices->contacts_id = $id_user; $guidestourinvoices->id_sched = $model->idseg_scheduled_tours; $guidestourinvoices->save(); $model->save(); //save guidestourinvoicecustomers $id_invoice = $guidestourinvoices->idseg_guidesTourInvoices; for ($j = 0; $j < $ticket_count; $j++) { $guidestourinvoicescustomers = new SegGuidestourinvoicescustomers(); $guidestourinvoicescustomers->customersName = $contact->firstname . ' ' . $contact->surname; //$guidestourinvoicescustomers->price = $tour->base_price; $guidestourinvoicescustomers->price = 0; $guidestourinvoicescustomers->cityid = $model->city_id; $guidestourinvoicescustomers->tourInvoiceid = $id_invoice; //$guidestourinvoicescustomers->CustomeInvoicNumber = ; $b = $tour->city['seg_cityname'][0]; $year = date('y', time()); $max = Yii::app()->db->createCommand("SELECT max(CustomerInvoiceNumber) from seg_guidestourinvoicescustomers where cityid=" . $tour->cityid)->queryScalar(); $max_i = $max + 1; $guidestourinvoicescustomers->KA_string = 'KA' . $b . $year . '/' . $max_i; $guidestourinvoicescustomers->CustomerInvoiceNumber = $max_i; $guidestourinvoicescustomers->isPaid = 0; //$guidestourinvoicescustomers->origin_booking = $id_book; $guidestourinvoicescustomers->save(); } $to = $contact->email; //////////text email $otpr = $stopt = 0; ///// $starttime = str_replace('00:00', '00', $model->starttime); $tourdate = $this->dateEn($model->date); if (!empty($model->duration)) { $stopt = $model->duration; } else { $stopt = $tour->standard_duration; } $stoptime = date("H:i", strtotime($model->date . ' ' . $model->starttime) + $stopt * 60) . ' Uhr'; $tour_name = $model->city_ob->seg_cityname . ' ' . $tour->name; ////lang $text_lang = $model->language_ob->germanname; if (is_null($model->language_id)) { $lang = SegLanguagesGuides::model()->with('languages')->findAll('users_id=' . $model->guide1_id); $zp = $text_lang = ''; foreach ($lang as $val) { $text_lang .= $zp . $val->languages->germanname; $zp = ', '; } } ////point $meetingpoint = $tour->meetingpoint_description; if (Yii::app()->language == 'en') { $meetingpoint = $tour->meetingpoint_description_en; } //settings template mail $mailtext = array('city_name' => $model->city_ob->seg_cityname, 'city_en' => $model->city_ob->webadress_en, 'tour_date' => $tourdate, 'tour_starttime' => $starttime, 'tour_stoptime' => $stoptime, 'tour_guest' => $ticket_count, 'tour_name' => $tour_name, 'tour_lang' => $text_lang, 'tour_guide_name' => $model->user_ob->guidename, 'tour_guide_tel' => $model->user_ob->contact_ob->phone, 'contact_name' => $_POST['SegContacts']['firstname'] . ' ' . $_POST['SegContacts']['surname'], 'contact_street' => $_POST['SegContacts']['additional_address'] . '<br>' . $_POST['SegContacts']['street'], 'contact_city' => $_POST['SegContacts']['city'], 'contact_land' => $_POST['SegContacts']['country'], 'contact_tel' => $_POST['SegContacts']['phone'], 'contact_email' => $_POST['SegContacts']['email'], 'meetingpoint' => $meetingpoint); //template mail $msg = $this->renderPartial('../thankyousend/tour_mail', $mailtext, TRUE); if ($this->sendMail($to, 'Cherrytours: ' . $tour_name, $msg)) { // send mail admin //$email_admin = $model->city_ob->mailInfo; $email_admin = '*****@*****.**'; $msg = $this->renderPartial('../thankyousend/tour_mail_admin', $mailtext, TRUE); $this->sendMail($email_admin, 'Cherrytours: New client ' . $tour_name, $msg); /// $this->render('thankyou', array('model' => $model, 'tour' => $tour, 'post' => $_POST, 'sid' => $sid, 'tid' => $tid, 'guest' => $ticket_count)); } else { $this->render('../thankyousend/mail_success', array('text_link' => 'Anwendung beibehalten. Ich kann nicht einen Brief schicken.', 'city_en' => $model->city_ob->webadress_en)); } //unset($_POST); } else { echo 'goto_book'; $this->render('book', array('post' => $_POST, 'model' => $model, 'contact' => $contact, 'tour' => $tour, 'sid' => $sid, 'tid' => $tid)); } } } else { $this->render('book', array('post' => $_POST, 'model' => $model, 'contact' => $contact, 'tour' => $tour, 'sid' => $sid, 'tid' => $tid)); } }
public function actionBooky($id_sched) { $tour=null; $scheduled = SegScheduledTours::model()->findByPk($id_sched); /*tourroutes*/ if($scheduled->tourroute_id==null){ $criteria_tours_link = new CDbCriteria; $criteria_tours_link->condition = 'usersid=:usersid'; $criteria_tours_link->params = array(':usersid' => $scheduled->guide1_id); $criteria_tours_link->join = 'LEFT JOIN `seg_guides_tourroutes` ON ((`seg_guides_tourroutes`.`tourroutes_id` = `t`.`id_tour_categories`) AND(`t`.`cityid` = '.$scheduled->city_id.'))'; $tours_guide = SegTourroutes::model()->findAll($criteria_tours_link); }else{ $criteria_tours_link2 = new CDbCriteria; $criteria_tours_link2->condition = 'idseg_tourroutes=:idseg_tourroutes'; $criteria_tours_link2->params = array(':idseg_tourroutes' => $scheduled->tourroute_id); $tours_guide = SegTourroutes::model()->findAll($criteria_tours_link2); $criteria = new CDbCriteria; $criteria->condition = 'cityid=:cityid AND idseg_tourroutes=:id_tour_categories'; $criteria->params = array(':cityid' => $scheduled->city_id,':id_tour_categories'=>$scheduled->tourroute_id); $tour = SegTourroutes::model()->find($criteria); } /*languages*/ if($scheduled->language_id==null){ $criteria_lan_link = new CDbCriteria; $criteria_lan_link->condition = 'users_id=:users_id'; $criteria_lan_link->params = array(':users_id' => $scheduled->guide1_id); $criteria_lan_link->join = 'LEFT JOIN `seg_languages_guides` ON `seg_languages_guides`.`languages_id` = `t`.`id_languages`'; $languages_guide = Languages::model()->findAll($criteria_lan_link); }else{ $languages_guide = Languages::model()->findByPk($scheduled->language_id); } //$model = new SegContacts; $contact = new Bookq; if(isset($_POST['Bookq'])) { if(is_null($scheduled->tourroute_id)) { $scheduled->tourroute_id = $_POST['Bookq']['tour']; $scheduled->language_id = $_POST['Bookq']['language']; $criteria = new CDbCriteria; $criteria->condition = 'cityid=:cityid AND idseg_tourroutes=:id_tour_categories'; $criteria->params = array(':cityid' => $scheduled->city_id,':id_tour_categories'=>$scheduled->tourroute_id); $tour = SegTourroutes::model()->find($criteria); } $contact->attributes=$_POST['Bookq']; $ticket_array = SegTourroutes::model()->findByPk($scheduled->tourroute_id); $ticket_count = $contact->tickets; /* $cat_i = $_POST['Bookq']['cat_hidden']; if($cat_i == 1)$ticket_count = $_POST['Bookq']['tickets1']; if($cat_i == 2)$ticket_count = $_POST['Bookq']['tickets2']; if($cat_i == 3)$ticket_count = $_POST['Bookq']['tickets3']; $contact->tickets = $ticket_count; */ if($contact->validate()){ //save contact $user_contact = new SegContacts; $user_contact->firstname = $_POST['Bookq']['firstname']; $user_contact->surname = $_POST['Bookq']['lastname']; $user_contact->additional_address = $_POST['Bookq']['additional_address']; $user_contact->city = $_POST['Bookq']['city']; $user_contact->street = $_POST['Bookq']['street']; $user_contact->postalcode = $_POST['Bookq']['postalcode']; // $user_contact->house = $_POST['Bookq']['house']; $user_contact->country = $_POST['Bookq']['country']; $user_contact->phone = $_POST['Bookq']['phone']; $user_contact->email = $_POST['Bookq']['email']; $user_contact->save(); $id_user = $user_contact->idcontacts; //save guidestourinvoice $guidestourinvoices = new SegGuidestourinvoices; $guidestourinvoices->creationDate = $scheduled->date; $guidestourinvoices->cityid = $scheduled->city_id; $guidestourinvoices->sched_tourid = $scheduled->tourroute_id; $guidestourinvoices->guideNr = $scheduled->guide1_id; $guidestourinvoices->status = 0; $guidestourinvoices->contacts_id = $id_user; $guidestourinvoices->id_sched = $scheduled->idseg_scheduled_tours; $guidestourinvoices->save(); //save guidestourinvoicecustomers $id_invoice = $guidestourinvoices->idseg_guidesTourInvoices; for($j=0;$j<$ticket_count;$j++){ $guidestourinvoicescustomers = new SegGuidestourinvoicescustomers; $guidestourinvoicescustomers->customersName = $user_contact->firstname.' '.$user_contact->surname; // $guidestourinvoicescustomers->price = $tour->base_price; $guidestourinvoicescustomers->price = 0; $guidestourinvoicescustomers->cityid = $tour->cityid; $guidestourinvoicescustomers->tourInvoiceid = $id_invoice; //$guidestourinvoicescustomers->CustomeInvoicNumber = ; $b = $tour->city['seg_cityname']{0}; $year = date('y',time()); $max= Yii::app()->db->createCommand("SELECT max(CustomerInvoiceNumber) from seg_guidestourinvoicescustomers where cityid=".$scheduled->city_id)->queryScalar(); $max_i = $max+1; $guidestourinvoicescustomers->KA_string = 'KA'.$b.$year.'/'.$max_i; $guidestourinvoicescustomers->CustomerInvoiceNumber = $max_i; $guidestourinvoicescustomers->isPaid = 0; // $guidestourinvoicescustomers->origin_booking = $id_book; $guidestourinvoicescustomers->save(); } //save scheduled $scheduled->TNmax_sched = $ticket_array->TNmax; if($scheduled->current_subscribers==null){ $scheduled->current_subscribers=$ticket_count; }else{ $scheduled->current_subscribers=$scheduled->current_subscribers +$ticket_count; } $scheduled->save(); //email $date_ex = date('d/m/Y',$scheduled->date_now); $x1 = strtotime($scheduled->starttime) - strtotime("00:00:00"); $x2 = $tour->standard_duration*60; $x3 = $x1+$x2; $x4 = $x3+strtotime("00:00:00"); $x5 = date('H:i:s',$x4); $tourend = $x5; $guidename = $scheduled->user_ob->contact_ob->firstname; $guidemnr = $scheduled->user_ob->contact_ob->phone; $message="Thank you for booking your city tour with Cherry Tours ".$scheduled->city_ob->seg_cityname; $message.="\n"; $message.="\nWe have just reserved the following tour date for you:"; $message.="\n".$date_ex; $message.="\nTour start: ".$scheduled->date_now." (Please show up at the assigned meeting point about 10 minutes before tour start.)"; $message.="\n"; $message.="\nEnd of tour: ".$tourend; $message.="\nTour route: ".$scheduled->tourroute_ob->name; $message.="\nTour language: ".$scheduled->language_ob->englishname; $message.="\nTour guide: ".$guidename; $message.="\nGuide phone: ".$guidemnr."(for last-minute requests regarding weather or meeting point)"; $message.="\nFurthermore we recommend:"; $message.="\n- comfortable shoes, no high heels"; $message.="\n- adequate clothing (below 15 degrees centigrade, we especially recommend wearing warm clothes and gloves)"; $message.="\n- sunglasses, if necessary sun protection etc."; $message.="\n"; $message.="\nPayment:"; $message.="\n- On site"; $message.="\n"; $message.="\nWe accept the following methods of payment:"; $message.="\n- Cash in EUR"; $message.="\n- EC"; $message.="\n- Credit cards (Visa, Master Card, American Express, JCB Cards, Union Pay)"; $message.="\n- Vouchers purchased at Cherry Tours"; $message.="\n"; $message.="\nWeather:"; $message.="\nIf the weather forecast shows a high chance of rain at the tour date, we will contact you near-term via email, SMS or phone and inform you if the tour has to be cancelled."; $message.="\nIf it rains despite a positive weather forecast, the tour guide will decide on-site if the tour can take place. Generally, the tour is arranged along a route where you can always take cover in case of a short rain shower."; $message.="\n"; $message.="\n"; $name_forms = $scheduled->city_ob->seg_cityname; $to = $user_contact->email; if ($this->sendMail($to, $name_forms, $message)) { $this->redirect(array('current','id_sched'=>$id_sched)); } } } // $criteria_cat = new CDbCriteria; // $criteria_cat->condition = 'cityid=:cityid AND id_tour_categories=:id_tour_categories'; // $criteria_cat->params = array(':cityid' => $scheduled->city_id,':id_tour_categories'=>$cat); // $cat_item = SegTourroutes::model()->find($criteria_cat)->idseg_tourroutes; $test=array('guide'=>$this->loadGuide(),'tours'=>$this->loadTours(),'todo'=>$this->loadUnreported()); $this->render('book',array( 'scheduled'=>$scheduled, 'contact'=>$contact, 'tour'=>$tour, 'tours_guide'=>$tours_guide, 'languages_guide'=>$languages_guide, 'info'=>$test, )); }