Ejemplo n.º 1
0
 public static function CuposLlenos($fecha = null)
 {
     if ($fecha != null) {
         $semana = date('W', strtotime($fecha));
     } else {
         $semana = date('W');
     }
     $num_total = -1;
     if (Mensualidad::where('user_id', Auth::user()->id)->first() != null) {
         $plan = Mensualidad::where('user_id', Auth::user()->id)->first()->plan()->first();
         switch ($plan->tipo_asistencia) {
             case 'Light':
                 $num_total = 1;
                 break;
             case 'Newbie':
                 $num_total = 2;
                 break;
             case 'Strong':
                 $num_total = 3;
                 break;
             case 'Machine':
                 $num_total = 0;
                 break;
             case '5 clases':
                 $num_total = 5;
                 break;
             default:
                 $num_total = -1;
                 break;
         }
     }
     $inicio = getWeekDates(date('Y'), $semana, true);
     $fin = getWeekDates(date('Y'), $semana, false);
     $num_reservas = Auth::user()->reservas()->where('cuenta_cupo', true)->whereBetween('fecha', array($inicio, $fin))->count();
     if ($num_total < 0) {
         //cupos llenos si no tiene plan asignado
         return true;
     }
     if (isWeekend($fecha)) {
         //cupos libres si es fin de semana
         return false;
     }
     if ($num_total == 0) {
         //plan Machine
         return false;
     }
     if ($num_reservas >= $num_total) {
         return true;
     } else {
         return false;
     }
 }
Ejemplo n.º 2
0
 public function EnviaEmailWebpay($user_id)
 {
     //Get a certificationBag with certificates and private key of WebpayNormal for integration environment.
     $bag = CertificationBagFactory::integrationWebpayNormal();
     $plus = TransbankServiceFactory::normal($bag);
     //For normal transactions, you can just add one TransactionDetail
     //Para transacciones normales, solo se puede añadir una linea de detalle de transacción.
     $plan_id = Mensualidad::where('user_id', $user_id)->first()->plan_id;
     $mensualidad_id = Mensualidad::where('user_id', $user_id)->first()->id;
     $pago = Planes::find($plan_id)->valor;
     $plus->addTransactionDetail($pago, $user_id . '-' . $mensualidad_id . '-' . date("Ymd"));
     //Amount and BuyOrder
     //TODO redireccionar una página de resumen del pago del usuario, enviar user_id
     $response = $plus->initTransaction(\URL::to('/pago_email/response_webpay'), \URL::to('/pago_email/thanks'));
     // $response = $plus->initTransaction(\URL::to('/transbank/response_webpay'), \URL::to('/transbank/thanks'));
     echo RedirectorHelper::redirectHTML($response->url, $response->token);
 }
Ejemplo n.º 3
0
 /**
  * Show the application dashboard.
  *
  * @return \Illuminate\Http\Response
  */
 public function IndexFront()
 {
     $plan = null;
     $star = 0;
     if (Mensualidad::where('user_id', Auth::user()->id)->first() != null) {
         $plan = Mensualidad::where('user_id', Auth::user()->id)->first()->plan()->first();
         $num_total = 0;
         switch ($plan->tipo_asistencia) {
             case 'Light':
                 $star = 1;
                 $num_total = 1;
                 break;
             case 'Newbie':
                 $star = 2;
                 $num_total = 2;
                 break;
             case 'Strong':
                 $star = 3;
                 $num_total = 3;
                 break;
             case 'Machine':
                 $star = 4;
                 $num_total = 0;
                 break;
             case '5 clases':
                 $star = 1;
                 $num_total = 5;
                 break;
             default:
                 $star = 0;
                 $num_total = 0;
                 break;
         }
     }
     $personal_records = PersonalRecords::all();
     $num_reservas = HelperUsuarios::ReservasSemana();
     $num_reservas_libres = HelperUsuarios::ReservasLibresSemana();
     $reservas = HelperUsuarios::ListaReservasSemana();
     $cupos = HelperUsuarios::CuposLlenos();
     return view('app_alumnos/perfil/miperfil', compact('plan', 'star', 'num_reservas', 'num_reservas_libres', 'cupos', 'reservas', 'personal_records'));
 }
Ejemplo n.º 4
0
 public function EnviarPagoEmail($user_id)
 {
     $mensualidad = Mensualidad::where('user_id', $user_id)->first();
     $plan = Mensualidad::where('user_id', $user_id)->first()->plan()->first();
     $alumno = Mensualidad::where('user_id', $user_id)->first()->alumno()->first();
     $valor = $plan->valor;
     $tipo_plan = $plan->tipo_plan;
     $nombre_plan = $plan->nombre;
     $email = $alumno->email;
     $full_name = $alumno->fullname;
     $email = $alumno->email;
     $data = array('full_name' => $full_name, 'valor' => $valor, 'nombre_plan' => $nombre_plan, 'tipo_plan' => $tipo_plan);
     \Mail::send('emails.recordatorio-pago', $data, function ($message) use($email) {
         $message->from('*****@*****.**', 'BoxMagic');
         $message->to($email)->subject('Notificación de Mensualidad');
     });
     \DB::table('email_enviados')->insert(['user_id' => $user_id, 'mensualidad_id' => $mensualidad->id, 'dia_pago' => $mensualidad->dia_pago, 'created_at' => date('Y-m-d H:i')]);
     \Session::flash('message', 'Correo enviado con exito!');
     \Session::flash('alert-class', 'alert-success');
     return redirect('mensualidad/mes_actual');
 }
Ejemplo n.º 5
0
 /**
  *
  * @return Response
  */
 public function ListaAnualActual()
 {
     $mes_actual = date('m');
     $semestre_actual = date('m') + 11;
     $data = Mensualidad::with('plan', 'alumno', 'pago_mensualidad')->whereHas('alumno', function ($query) {
         $query->where('users.cuenta_activa', '=', '1');
     })->whereHas('plan', function ($query) {
         $query->where('planes.tipo_plan', 'LIKE', '%Anual%');
     })->whereRaw($semestre_actual . " > (SELECT MONTH(A.fecha_pago) FROM pago_mensualidad as A where A.mensualidad_id = mensualidad.id\n                        ORDER BY fecha_pago DESC LIMIT 1)");
     $filter = DataFilter::source($data);
     $filter->attributes(array('class' => 'form-inline'));
     $filter->add('alumno.name', 'Buscar por Nombre', 'text');
     $filter->add('alumno.last_name', 'Buscar por Apellido', 'text');
     $filter->add('plan.nombre', 'Buscar por Plan', 'text');
     $filter->submit('Buscar');
     $filter->reset('Limpiar');
     $filter->build();
     $grid = DataSet::source($filter);
     $grid->paginate(10);
     $grid->build();
     return view('mensualidad/lista_ano_pago_actual', compact('filter', 'grid', 'mes_actual'));
 }