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; } }
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); }
/** * 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')); }
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'); }
/** * * @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')); }