示例#1
0
 /**
  * Store a newly created resource in storage.
  *
  * @return Response
  */
 public function store()
 {
     // Fetch all request data.
     $data = Input::only('title', 'extra_url', 'event_id');
     $event_id = Input::get('event_id');
     // Build the validation constraint set.
     $rules = array('title' => array('required', 'min:3'), 'extra_url' => array('required', 'Url'), 'event_id' => array('required', 'integer', 'sometimes'));
     // Create a new validator instance.
     $validator = Validator::make($data, $rules);
     if ($validator->passes()) {
         $extra = new Extra();
         $current_user = Sentry::getUser();
         if ($current_user->hasAccess('admin') || $current_user->hasAccess('verified')) {
             $extra->approved = '1';
         }
         $extra->author_id = Sentry::getUser()->id;
         $extra->title = Input::get('title');
         $extra->extra_url = Input::get('extra_url');
         $extra->save();
         $event = ep\Event::find($event_id);
         $event->eventExtra()->save($extra);
         return Redirect::to('/event/' . $event->slug)->with('global_success', 'Event submitted successfuly!');
     }
     return Redirect::to('/event/' . $event->slug)->withInput()->withErrors($validator)->with('message', 'Validation Errors!');
 }
 public function insertBookNormal()
 {
     $validator = Validator::make(Input::all(), $this->rules);
     $getNum = Input::get('ccnum');
     $getType = Input::get('CardType');
     if ($validator->fails()) {
         return Redirect::action('normalBook', [Input::get('roomID')])->withErrors($validator, 'guest')->withInput();
     } else {
         if (!checkCreditCard($getNum, $getType, $errornumber, $errortext)) {
             $errortext = "This Card Has Invalid Number";
             return Redirect::action('normalBook', [Input::get('roomID')])->with('ccError', $errortext)->withInput();
         } else {
             $characters = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
             $temp;
             $bookCode = "";
             for ($i = 1; $i <= 10; $i++) {
                 if ($i % 2 == 1) {
                     $temp = floor(rand(0, 9));
                 } else {
                     $temp = $characters[rand(0, strlen($characters) - 1)];
                 }
                 $bookCode = $bookCode . $temp;
             }
             $inputAll = Input::all();
             $guest = new Guest();
             $booking = new Book();
             $payment = new Payment();
             $extra = new Extra();
             $detailBook = new DetailBooking();
             $detailAdditional = new DetailAdditional();
             $countAdd = Additional::where('Status', '=', 'Active')->count();
             $countBook = Book::orderby('ID_Booking', 'DESC')->first();
             $countGuest = Guest::orderby('ID_Guest', 'DESC')->first();
             $countExtra = Extra::orderby('ID_Extra', 'DESC')->first();
             $countPayment = Payment::orderby('ID_Payment', 'DESC')->first();
             $tampIDBook = $countBook->ID_Booking;
             $tampIDGuest = $countGuest->ID_Guest;
             $tampIDExtra = $countExtra->ID_Extra;
             $tampIDPayment = $countPayment->ID_Payment;
             $checkYearBook = substr(strval($tampIDBook), 3, -5);
             $checkYearGuest = substr(strval($tampIDGuest), 3, -5);
             $checkYearExtra = substr(strval($tampIDExtra), 3, -5);
             $checkYearPayment = substr(strval($tampIDPayment), 3, -5);
             $incrementIDBook = substr($tampIDBook, 3) + 1;
             $incrementIDGuest = substr($tampIDGuest, 3) + 1;
             $incrementIDExtra = substr($tampIDExtra, 3) + 1;
             $incrementIDPayment = substr($tampIDPayment, 3) + 1;
             $joinBook = "BOK" . $incrementIDBook;
             $joinGuest = "GUE" . $incrementIDGuest;
             $joinExtra = "EXT" . $incrementIDExtra;
             $joinPayment = "PAY" . $incrementIDPayment;
             $occupancy = Input::get('adult') . ' Adult | ' . Input::get('child') . ' Child';
             $ccexpiry = Input::get('ccmonth') . '/' . Input::get('ccyear');
             $arrive = date("Y-m-d", strtotime(Input::get('from')));
             //arrive date
             $depart = date("Y-m-d", strtotime(Input::get('to')));
             //depart
             if ($checkYearBook == strval(date("y"))) {
                 //1. insert to book
                 $booking->ID_Booking = $joinBook;
                 $booking->Booking_code = $bookCode;
                 $booking->Arrive = $arrive;
                 $booking->Depart = $depart;
                 $booking->Number_nights = Input::get('total_d');
                 $booking->Occupancy = $occupancy;
                 $booking->Booking_Status = "Booked";
                 //2. insert to guest
                 if ($checkYearGuest == strval(date("y"))) {
                     $guest->ID_Guest = $joinGuest;
                     $guest->ID_Booking = $joinBook;
                     $guest->First_Name = Input::get('fname');
                     $guest->Last_Name = Input::get('lname');
                     $guest->No_Identity = Input::get('identity');
                     $guest->Email = Input::get('email');
                     $guest->Telephone = Input::get('phone');
                     $guest->Address = Input::get('address');
                     $guest->Country = Input::get('country');
                     $guest->City = Input::get('city');
                     $guest->State = Input::get('city');
                     $guest->Post_code = Input::get('state');
                 } else {
                     $guest->ID_Guest = "GUE" . date('y') . "00001";
                     $guest->ID_Booking = $joinBook;
                     $guest->First_Name = Input::get('fname');
                     $guest->Last_Name = Input::get('lname');
                     $guest->No_Identity = Input::get('identity');
                     $guest->Email = Input::get('email');
                     $guest->Telephone = Input::get('phone');
                     $guest->Address = Input::get('address');
                     $guest->Country = Input::get('country');
                     $guest->City = Input::get('city');
                     $guest->State = Input::get('city');
                     $guest->Post_code = Input::get('state');
                 }
                 //3. insert to payment
                 if ($checkYearPayment == strval(date("y"))) {
                     $payment->ID_Payment = $joinPayment;
                     $payment->ID_Booking = $joinBook;
                     $payment->Credit_Type = Input::get('CardType');
                     $payment->Credit_Holder = Input::get('ccname');
                     $payment->Credit_Number = Input::get('ccnum');
                     $payment->Credit_Expiry = $ccexpiry;
                 } else {
                     $payment->ID_Payment = "PAY" . date('y') . "00001";
                     $payment->ID_Booking = $joinBook;
                     $payment->Credit_Type = Input::get('CardType');
                     $payment->Credit_Holder = Input::get('ccname');
                     $payment->Credit_Number = Input::get('ccnum');
                     $payment->Credit_Expiry = $ccexpiry;
                 }
                 //4. insert to extra
                 if ($checkYearExtra == strval(date("y"))) {
                     $extra->ID_Extra = $joinExtra;
                     $extra->ID_Booking = $joinBook;
                     $extra->Arrival_time = Input::get('darrive');
                     $extra->Flight_detail = Input::get('fdetail');
                     $extra->Comment = Input::get('comment');
                 } else {
                     $extra->ID_Extra = "EXT" . date('y') . "00001";
                     $extra->ID_Booking = $joinBook;
                     $extra->Arrival_Time = Input::get('darrive');
                     $extra->Flight_Detail = Input::get('fdetail');
                     $extra->Comment = Input::get('comment');
                 }
                 //5. insert to detail Book
                 $detailBook->ID_Booking = $joinBook;
                 $detailBook->ID_RoomType = Input::get('roomID');
                 $detailBook->Quantity = Input::get('quantity');
                 $detailBook->Price = Input::get('roomPR');
                 for ($i = 0; $i < $countAdd; $i++) {
                     $data = array(array('ID_Booking' => $joinBook, 'ID_Additional' => Input::get("id_add_{$i}"), 'Price' => Input::get("price_add_{$i}"), 'Quantity' => Input::get("add_{$i}")));
                     DetailAdditional::insert($data);
                 }
                 $booking->save();
                 $guest->save();
                 $payment->save();
                 $extra->save();
                 $detailBook->save();
                 return Redirect::action('showBook', $bookCode);
             } else {
                 //1. insert to book
                 $booking->ID_Booking = "BOK" . date('y') . "00001";
                 $booking->Booking_code = $bookCode;
                 $booking->Arrive = $arrive;
                 $booking->Depart = $depart;
                 $booking->Number_nights = Input::get('total_d');
                 $booking->Occupancy = $occupancy;
                 $booking->Booking_Status = "Booked";
                 //2. insert to guest
                 if ($checkYearGuest == strval(date("y"))) {
                     $guest->ID_Guest = $joinGuest;
                     $guest->ID_Booking = "BOK" . date('y') . "00001";
                     $guest->First_Name = Input::get('fname');
                     $guest->Last_Name = Input::get('lname');
                     $guest->No_Identity = Input::get('identity');
                     $guest->Email = Input::get('email');
                     $guest->Telephone = Input::get('phone');
                     $guest->Address = Input::get('address');
                     $guest->Country = Input::get('country');
                     $guest->City = Input::get('city');
                     $guest->State = Input::get('city');
                     $guest->Post_code = Input::get('state');
                 } else {
                     $guest->ID_Guest = "GUE" . date('y') . "00001";
                     $guest->ID_Booking = "BOK" . date('y') . "00001";
                     $guest->First_Name = Input::get('fname');
                     $guest->Last_Name = Input::get('lname');
                     $guest->No_Identity = Input::get('identity');
                     $guest->Email = Input::get('email');
                     $guest->Telephone = Input::get('phone');
                     $guest->Address = Input::get('address');
                     $guest->Country = Input::get('country');
                     $guest->City = Input::get('city');
                     $guest->State = Input::get('city');
                     $guest->Post_code = Input::get('state');
                 }
                 //3. insert to payment
                 if ($checkYearPayment == strval(date("y"))) {
                     $payment->ID_Payment = $joinPayment;
                     $payment->ID_Booking = "BOK" . date('y') . "00001";
                     $payment->Credit_Type = Input::get('CardType');
                     $payment->Credit_Holder = Input::get('ccname');
                     $payment->Credit_Number = Input::get('ccnum');
                     $payment->Credit_Expiry = $ccexpiry;
                 } else {
                     $payment->ID_Payment = "PAY" . date('y') . "00001";
                     $payment->ID_Booking = "BOK" . date('y') . "00001";
                     $payment->Credit_Type = Input::get('CardType');
                     $payment->Credit_Holder = Input::get('ccname');
                     $payment->Credit_Number = Input::get('ccnum');
                     $payment->Credit_Expiry = $ccexpiry;
                 }
                 //4. insert to extra
                 if ($checkYearExtra == strval(date("y"))) {
                     $extra->ID_Extra = $joinExtra;
                     $extra->ID_Booking = "BOK" . date('y') . "00001";
                     $extra->Arrival_Time = Input::get('darrive');
                     $extra->Flight_Detail = Input::get('fdetail');
                     $extra->Comment = Input::get('comment');
                 } else {
                     $extra->ID_Extra = "EXT" . date('y') . "00001";
                     $extra->ID_Booking = "BOK" . date('y') . "00001";
                     $extra->Arrival_Time = Input::get('darrive');
                     $extra->Flight_Detail = Input::get('fdetail');
                     $extra->Comment = Input::get('comment');
                 }
                 //5. insert to detail Book
                 $detailBook->ID_Booking = "BOK" . date('y') . "00001";
                 $detailBook->ID_RoomType = Input::get('roomID');
                 $detailBook->Quantity = Input::get('quantity');
                 $detailBook->Price = Input::get('roomPR');
                 //6. insert to detail additional
                 for ($i = 0; $i < $countAdd; $i++) {
                     $data = array(array('ID_Booking' => "BOK" . date('y') . "00001", 'ID_Additional' => Input::get("id_add_{$i}"), 'Price' => Input::get("price_add_{$i}"), 'Quantity' => Input::get("add_{$i}")));
                     DetailAdditional::insert($data);
                 }
                 $booking->save();
                 $guest->save();
                 $payment->save();
                 $extra->save();
                 $detailBook->save();
                 return Redirect::action('showInvoice', $bookCode);
                 //return Redirect::to('/rooms')->with('message','Success');
             }
         }
     }
 }
示例#3
0
    /**
     *	Add extra to Book
     */
    public function actionAddExtra()
    {
        $bookID = $_POST["book"];
        $name = $_POST["extra"];
        $value = $_POST["value"];
        $model = new Extra();
        $model->BookID = $bookID;
        $model->Name = $name;
        $model->Value = $value;
        $model->UserID = Yii::app()->user->ID;
        if ($model->save()) {
            $criteria = new CDbCriteria();
            $criteria->condition = "UserID = :userid AND BookID = :bookid";
            $criteria->params = array(':userid' => Yii::app()->user->ID, ':bookid' => $model->BookID);
            $modelExtra = Extra::model()->findAll($criteria);
            $modelDiscount = Discount::model()->findAll($criteria);
            echo "<h2 class='extra'>Suplementos</h2>";
            if (count($modelExtra) == 0) {
                echo "<p>No hay suplementos</p>";
            }
            foreach ($modelExtra as $extra) {
                echo "<p><span class='deleteExtra' id='" . $extra->ID . "'>X</span> " . $extra->Name . " (" . str_replace(',', '.', $extra->Value) . "&euro;)</p>";
            }
            echo "<h2 class='extra'>Descuentos</h2>";
            if (count($modelDiscount) == 0) {
                echo "<p>No hay suplementos</p>";
            }
            foreach ($modelDiscount as $discount) {
                echo "<p><span class='deleteDiscount' id='" . $discount->ID . "'>X</span> " . $discount->Name . " (" . $discount->Value . "%)</p>";
            }
            echo '<script>
			function calculaPrecio(start,finish,room,pax)
			{
				var request = $.ajax({
	                url: "' . $this->createURL("book/calculateprice") . '",
	                type: "POST",
	                data: {
	                    start : start,
	                    finish : finish,
	                    room : room,
	                    pax : pax,
	                    book : ' . $model->BookID . '
	                },
	                dataType: "html"
	            });
	
	            request.done(function(msg) {
	            	$("#pvp").html(msg);
	            });
			}
			// Delete Extra from Book
			$(".deleteExtra").click(function(){
				
				if(confirm("\\u00bfSeguro que quieres eliminar este suplemento?"))
				{
					var request = $.ajax({
			                url: "' . $this->createURL("book/deleteExtra") . '",
			                type: "POST",
			                dataType: "html",
							data: {
								extra : $(this).attr("id"),
								book : ' . $model->BookID . '
							}
			        });
			
			        request.done(function(msg) {
			        		$("#extraDiscount").html(msg);
			        		calculaPrecio($("#Book_Start").val(), $("#Book_Finish").val(), $("#Book_RoomID").val(), $("#Book_Pax").val());
			        });
			    }
			    
			});
			
			// Delete Discount from Book
			$(".deleteDiscount").click(function(){
			
				if(confirm("\\u00bfSeguro que quieres eliminar este descuento?"))
				{
					var request = $.ajax({
			                url: "' . $this->createURL("book/deleteDiscount") . '",
			                type: "POST",
			                dataType: "html",
							data: {
								discount : $(this).attr("id"),
								book : ' . $model->BookID . '
							}
			        });
			
			        request.done(function(msg) {
			        		$("#extraDiscount").html(msg);
			        		calculaPrecio($("#Book_Start").val(), $("#Book_Finish").val(), $("#Book_RoomID").val(), $("#Book_Pax").val());
			        });
			    }
	
			});
			</script>';
        } else {
            var_dump($model->errors);
        }
    }