public function createReservation(Request $request)
 {
     $room_info = $request['room_info'];
     $start_dt = Carbon::createFromFormat('d-m-Y', $request['start_dt'])->toDateString();
     $end_dt = Carbon::createFromFormat('d-m-Y', $request['end_dt'])->toDateString();
     $customer = Customer::firstOrCreate($request['customer']);
     $reservation = Reservation::create();
     $reservation->total_price = $room_info['total_price'];
     $reservation->occupancy = $request['occupancy'];
     $reservation->customer_id = $customer->id;
     $reservation->checkin = $start_dt;
     $reservation->checkout = $end_dt;
     $reservation->save();
     $date = $start_dt;
     while (strtotime($date) < strtotime($end_dt)) {
         $room_calendar = RoomCalendar::where('day', '=', $date)->where('room_type_id', '=', $room_info['id'])->first();
         $night = ReservationNight::create();
         $night->day = $date;
         $night->rate = $room_calendar->rate;
         $night->room_type_id = $room_info['id'];
         $night->reservation_id = $reservation->id;
         $room_calendar->availability--;
         $room_calendar->reservations++;
         $room_calendar->save();
         $night->save();
         $date = date("Y-m-d", strtotime("+1 day", strtotime($date)));
     }
     $nights = $reservation->nights;
     $customer = $reservation->customer;
     return $reservation;
 }
 public function createReservation(Request $request)
 {
     //        $request = array (
     //            'customer' =>
     //                array (
     //                    'first_name' => 'Marie-Laure',
     //                    'last_name' => 'Lamarque-Choy',
     //                    'email' => '*****@*****.**',
     //                ),
     //            'room_info' =>
     //                array (
     //                    'id' => 4,
     //                    'name' => 'Large Studio',
     //                    'short_name' => 'LXS1',
     //                    'base_price' => '200.00',
     //                    'base_availability' => '3',
     //                    'max_occupancy' => '4',
     //                    'created_at' => '2016-01-11 00:00:00',
     //                    'updated_at' => '2016-01-11 00:00:00',
     //                    'total_price' => 0,
     //                ),
     //            'start_dt' => '15-1-2016',
     //            'end_dt' => '16-1-2016',
     //            'occupancy' => '2',
     //        );
     $room_info = $request['room_info'];
     $start_dt = Carbon::createFromFormat('d-m-Y', $request['start_dt'])->toDateString();
     $end_dt = Carbon::createFromFormat('d-m-Y', $request['end_dt'])->toDateString();
     $customer = Customer::firstOrCreate($request['customer']);
     $reservation = Reservation::create();
     $reservation->total_price = $room_info['total_price'];
     $reservation->occupancy = $request['occupancy'];
     $reservation->customer_id = $customer->id;
     $reservation->checkin = $start_dt;
     $reservation->checkout = $end_dt;
     //$var = "'".var_export($request->all())."''";
     //return $var;
     $reservation->save();
     $date = $start_dt;
     while (strtotime($date) < strtotime($end_dt)) {
         $room_calendar = RoomCalendar::where('day', '=', $date)->where('room_type_id', '=', $room_info['id'])->first();
         $night = ReservationNight::create();
         $night->day = $date;
         //dd($room_calendar);
         $night->rate = $room_calendar->rate;
         $night->room_type_id = $room_info['id'];
         $night->reservation_id = $reservation->id;
         $room_calendar->availability--;
         $room_calendar->reservations++;
         $room_calendar->save();
         $night->save();
         $date = date("Y-m-d", strtotime("+1 day", strtotime($date)));
     }
     $nights = $reservation->nights;
     $customer = $reservation->customer;
     return $reservation;
 }
 public function run()
 {
     $faker = Faker\Factory::create();
     $dates = ['2016-01-19', '2016-01-20', '2016-01-21', '2016-01-22'];
     $times = ['08:00:00', '09:00:00', '10:00:00', '11:00:00', '12:00:00', '13:00:00', '14:00:00', '15:00:00'];
     foreach (range(1, 500) as $index) {
         Reservation::create(['id' => $index, 'first_name' => $faker->firstName, 'last_name' => $faker->lastName, 'specialty' => $faker->word, 'email' => $faker->email . $index, 'date' => $faker->randomElement($dates), 'time' => $faker->randomElement($times)]);
     }
 }
Example #4
0
    /**
     * Run the database seeds.
     *
     * @return void
     */
    public function run()
    {
        Model::unguard();
        User::create(['name' => 'Yohann', 'email' => '*****@*****.**', 'role' => 'admin', 'password' => bcrypt('admin'), 'phone' => '0125654520']);
        Post::create(['titre' => 'Exemple actu', 'contenu' => 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla sit amet congue nisi, eu egestas velit. Donec tincidunt nisi nec efficitur pretium. Aliquam arcu nisi, tristique in ex eget, ultricies accumsan erat. Aliquam erat volutpat. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus vitae massa ligula. Aenean fermentum tellus ut dapibus scelerisque. Morbi vel finibus nisl.

Integer feugiat dui nisl. Morbi sit amet massa eu libero lacinia volutpat ac in nisi. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Praesent facilisis magna eu ante venenatis commodo. Fusce auctor elit venenatis ipsum finibus viverra. Sed imperdiet molestie dui, eget dignissim massa gravida sit amet. In maximus est lectus, vitae consequat nibh imperdiet in. Maecenas maximus id dui sit amet hendrerit. Morbi a tellus vel magna ultricies egestas id ut mi. Duis sed dolor sit amet ipsum ullamcorper laoreet in id purus. Fusce vehicula orci et venenatis tristique.

Morbi nec cursus erat. Ut suscipit molestie nisi maximus cursus. Praesent quis luctus est. Nullam finibus metus dolor, a posuere est pretium id. Nullam ornare in purus sed efficitur. Vivamus id ipsum ut dui blandit dictum. Aenean ante elit, condimentum non libero vitae, blandit efficitur eros. Nullam rutrum tortor non orci congue, id auctor lacus hendrerit.

Phasellus fringilla sem placerat erat mollis mollis ut rhoncus nunc. Etiam ornare pretium tempus. Nunc felis metus, viverra eget hendrerit et, blandit nec purus. Aliquam ut lectus non nibh sodales mollis. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris congue pellentesque nunc, in volutpat leo mattis sit amet. Etiam porta, turpis eu pharetra scelerisque, tortor tortor iaculis nisl, a fermentum sem felis vitae est. Pellentesque tristique, ex a fringilla sollicitudin, mi tellus gravida orci, vitae scelerisque nisi leo eu lectus.', 'chapo' => 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla sit amet congue nisi, eu egestas velit. Donec tincidunt nisi nec efficitur pretium. Aliquam arcu nisi, tristique in ex eget, ultricies accumsan erat. Aliquam erat volutpat.', 'slug' => 'exemple-actu']);
        Reservation::create(['user_id' => 1, 'velo_id' => 1, 'valide' => false]);
        Reservation::create(['user_id' => 1, 'velo_id' => 2, 'valide' => false]);
        Demijournee::create(['date' => '2010-05-02', 'periode' => 'am', 'reservation_id' => 1]);
        Demijournee::create(['date' => '2011-07-01', 'periode' => 'pm', 'reservation_id' => 2]);
        Velo::create(['modele' => 'Vélo de la mort', 'categorie' => 'enfant', 'image' => '']);
        Velo::create(['modele' => 'Véloette', 'categorie' => 'adulte', 'image' => '']);
    }
 public function make(Request $request)
 {
     $this->validate($request, ['cruise' => 'required|numeric', 'cabin' => 'required|numeric']);
     /*
      * Start creating reservation
      *
      */
     $cruise = Cruise::find($request->cruise);
     $cabin = Cabin::find($request->cabin);
     $price = $cruise->price + $cabin->price;
     if (!empty($request->amenity)) {
         $amenities = [];
         foreach ($request->amenity as $amenity) {
             $ameni = Amenity::find($amenity);
             array_push($amenities, $ameni);
             $price += $ameni->price * $cabin->size;
         }
     }
     $reservation = Reservation::create(['cruise_id' => $cruise->id, 'cabin_id' => $cabin->id, 'status' => 0, 'price' => $price, 'user_id' => Auth::user()->id]);
     if (!empty($request->amenity)) {
         $reservation->amenities()->attach($ameni->id);
     }
     return view('user.reservation', ['cruise' => $cruise, 'cabin' => $cabin, 'amenities' => $amenities, 'reservation' => $reservation]);
 }
Example #6
0
 /**
  * Function that makes a reservation.
  *
  * @return Response
  */
 public function makeReservation()
 {
     // Validate Input.
     $validator = Validator::make(Input::all(), array('items' => 'required', 'institution' => 'required', 'discount' => 'required', 'reservationAmount' => 'required'));
     if ($validator->fails()) {
         return response()->json(['error' => 'No se envio la informacion completa!']);
     }
     // Check that user is part of authorized staff.
     if (Auth::user()->Type != 1) {
         // If they are unauthorized no point in returning anything.
         return response()->json(['state' => 'Unauthorized']);
     }
     // Get user branch.
     $worker = Worker::find(Auth::user()->TypeId);
     $userBranch = $worker->BranchId;
     $reservationPrice = 0;
     $branch = Branch::find($userBranch);
     // Get the user's cashbox.
     $cashbox = Cashbox::where('UserId', '=', Auth::user()->Id)->where('Close', '=', NULL)->first();
     // Check that we actually have a cashbox open.
     if (!$cashbox) {
         $response['state'] = 'Error';
         $response['error'] = 'La caja no esta abierta o por lo tanto no se puede realizar la reservacion!';
         return response()->json($response);
     }
     // Check discount is not greater than what user is allowed.
     $permissions = json_decode(UserLevel::find(Auth::user()->UserLevel)->Permissions);
     if (Input::get('discount') > $permissions->permissions->sales->discount->limit) {
         // Check if we have an auth code we can use.
         if (Input::get('authCode') == 0) {
             $response['state'] = 'Error';
             $response['error'] = 'No tiene permiso para otorgar este descuento!';
             return response()->json($response);
         }
         $request = Request::find(Input::get('authCode'));
         if ($request->Used == 1) {
             $response['state'] = 'Error';
             $response['error'] = 'No tiene permiso para otorgar este descuento!';
             return response()->json($response);
         }
         if ($request->Amount != Input::get('discount')) {
             $response['state'] = 'Error';
             $response['error'] = 'No tiene permiso para otorgar este descuento!';
             return response()->json($response);
         }
         $request->Used = 1;
         $request->save();
     }
     // Get client.
     $client = Client::where('Cedula', '=', Input::get('client'))->first();
     // Get institution if defined.
     $institution;
     if (Input::get('institution') != 0) {
         $institution = Institution::find(Input::get('institution'));
         if (!$institution) {
             $response['state'] = 'Error';
             $response['error'] = 'La institucion definida no fue encontrada en el sistema!';
             return response()->json($response);
         }
     }
     // Loop through products and services and get prices.
     $items = json_decode(Input::get('items'));
     foreach ($items as $code => $info) {
         // Check if it is a product.
         $product = Stock::where('Code', '=', $code)->where('BranchId', '=', $userBranch)->first();
         if (!$product) {
             // Check if it is a service.
             $service = Service::where('Code', '=', $code)->where('BranchId', '=', $userBranch)->first();
             if (!$service) {
                 $response['state'] = 'Error';
                 $response['error'] = 'No se reconocio uno de los productos o servicios!';
                 return response()->json($response);
             }
             // Add price to total of quotation.
             $reservationPrice += $service->Price * $info->quantity;
         } else {
             // Add price to total of quotation.
             $reservationPrice += $product->Price * $info->quantity;
         }
     }
     $subTotal = $reservationPrice;
     $discount = $reservationPrice * (Input::get('discount') / 100);
     // Give discount.
     $reservationPrice = $reservationPrice * (1 - Input::get('discount') / 100);
     // Calculate tax if required.
     $tax = 0;
     if (json_decode($branch->DefaultExpenses)->regimen == 'cuotageneral') {
         if (Input::get('institution') != 0) {
             if (!$institution->Excempt) {
                 $tax = $salePrice * 0.15;
             }
         } else {
             if (!$client || !$client->Excempt) {
                 $tax = $salePrice * 0.15;
             }
         }
     }
     // Save client information.
     $clientInfo = array();
     if (Input::get('institution') != 0) {
         // Save institution information.
         $clientInfo = array('Name' => $institution->Name, 'Address' => $institution->Address, 'Id' => $institution->RUC);
     } else {
         // Save institution information.
         if ($client) {
             $clientInfo = array('Name' => $client->Name, 'Address' => $client->Address, 'Id' => $client->Cedula);
         }
     }
     // Get reservation info.
     $config = Configuration::find(0);
     // Check that the deposit covers the minimum.
     if (Input::get('reservationAmount') < $config->Dollar * $config->MinimumReservation) {
         $response['state'] = 'Error';
         $response['error'] = 'El deposito minimo para realizar la reservacion es de ' . $config->Dollar * $config->MinimumReservation . ' Cordobas o ' . $config->MinimumReservation . ' Dolares Americanos.';
         return response()->json($response);
     }
     // Make Reservation.
     $reservation;
     if (Input::get('institution') != 0) {
         // Creditor Type 1 = Client, 2 = Institution.
         $reservation = Reservation::create(array('WorkerId' => $worker->Id, 'Value' => $reservationPrice, 'Discount' => Input::get('discount'), 'Tax' => $tax, 'CreditorId' => Input::get('institution'), 'CreditorType' => 2, 'TransactionId' => 0, 'State' => 'fresh', 'Life' => $config->ReservationLife, 'Deposit' => Input::get('reservationAmount')));
     } else {
         if (!$client) {
             $reservation = Reservation::create(array('WorkerId' => $worker->Id, 'Value' => $reservationPrice, 'Discount' => Input::get('discount'), 'Tax' => $tax, 'CreditorId' => 0, 'CreditorType' => 1, 'TransactionId' => 0, 'State' => 'fresh', 'Life' => $config->ReservationLife, 'Deposit' => Input::get('reservationAmount')));
         } else {
             $reservation = Reservation::create(array('WorkerId' => $worker->Id, 'Value' => $reservationPrice, 'Discount' => Input::get('discount'), 'Tax' => $tax, 'CreditorId' => $client->Id, 'CreditorType' => 1, 'TransactionId' => 0, 'State' => 'fresh', 'Life' => $config->ReservationLife, 'Deposit' => Input::get('reservationAmount')));
         }
     }
     // Now that the reservation has been created, create the transaction for it.
     $transaction = CashboxTransaction::create(array('CashboxId' => $cashbox->Id, 'DateTime' => date('Y-m-d H:i:s'), 'Type' => 9, 'Amount' => Input::get('reservationAmount'), 'Reason' => 'Deposito de Reservacion: ' . $reservation->Id . '.'));
     $reservation->TransactionId = $transaction->Id;
     $reservation->save();
     // Loop through items and add them to Reservation Breakdown.
     foreach ($items as $code => $info) {
         // Check if product.
         $product = Stock::where('Code', '=', $code)->where('BranchId', '=', $userBranch)->first();
         if (!$product) {
             // Get service cost.
             $service = Service::where('Code', '=', $code)->where('BranchId', '=', $userBranch)->first();
             ReservationBreakdown::create(array('ReservationId' => $reservation->Id, 'Code' => $code, 'Quantity' => $info->quantity, 'Price' => $service->Price));
         } else {
             ReservationBreakdown::create(array('ReservationId' => $reservation->Id, 'Code' => $code, 'Quantity' => $info->quantity, 'Price' => $product->Price));
         }
     }
     // Return success message and return quotation information.
     $response['state'] = 'Success';
     $response['reservationInfo'] = array('SubTotal' => $subTotal, 'Discount' => $discount, 'Tax' => $tax, 'Total' => $reservationPrice + $tax, 'ReservationId' => $reservation->Id, 'Date' => date('d/m/Y'), 'Life' => $config->ReservationLife, 'Deposit' => Input::get('reservationAmount'));
     $response['clientInfo'] = $clientInfo;
     return response()->json($response);
 }
 public function confirm(Request $request, $schedule_id)
 {
     if ($request->ajax()) {
         $email = Input::get('email');
         $patient = User::with('patient')->where('email', $email)->get();
         $verification_token = substr(str_shuffle("0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"), 0, 8);
         $reservation = Reservation::create(['patient_id' => $patient->patient->id, 'schedule_id' => Input::get('schedule_id'), 'status' => '0', 'token' => $verification_token, 'verified' => 0]);
         Mail::send('frontend.reservation.book', ['data' => $verification_token], function ($m) use($email) {
             $m->from('*****@*****.**', 'DokterNet-Indonesia');
             $m->to($email);
             $m->subject('DokterNet - Verifikasi Jadwal Pertemuan');
         });
         return Response::json(['success' => true, 'reservation_id' => $reservation->id]);
     }
 }