/**
  * Display a listing of the resource.
  *
  * @return Response
  */
 public function solicpremium()
 {
     $authuser = Auth::user();
     $clasificado = Clasificado::find(Input::get('clasfid'));
     $clasificado->solicitar_premium = 1;
     $clasificado->save();
     //Generar row en cobros y cobros_pendientes
     $cobrotipoSerProveedor = CobroTipo::where('tipo', 'clasificado_premium')->first();
     $cobro = new Cobro();
     $cobro->tipo_id = $cobrotipoSerProveedor->id;
     $cobro->usuario_id = $authuser->id;
     $cobro->estado = 'pendiente';
     $cobro->datosAdicionales = $clasificado->id;
     //Al entrar a este metodo estoy seguro que el usuario tiene un registro de proveedor asociado
     $cobro->save();
     $id = Str::random(4);
     $date_now = new DateTime();
     $cobrop = new CobroPendiente();
     $cobrop->cobro_id = $cobro->id;
     $cobrop->fecha = $date_now;
     $cobrop->cobro_concepto = 'TODCONS' . $cobro->id . 'CLASF' . $clasificado->id . $date_now->format('YmdHi') . $id;
     // Concepto = clave_empresa+ clave_cobro+ clave_tipo_cobro + clave_objeto_de_cobro + fecha+4_digitos_random (Por favor mejorar!!)
     $cobrop->save();
     return Redirect::to('vistausuario/clasificados')->with(array('usuarioimg' => $authuser->imagen, 'usuarionombre' => $authuser->nombre, 'usuarioid' => $authuser->id));
 }
 /**
  * Display a listing of the resource.
  *
  * @return Response
  */
 public function index()
 {
     $categorias = DB::table('proveedor_tipo')->get();
     $blog = DB::table('blog')->orderBy('id', 'desc')->take(4)->get();
     $clasificadosvip = Clasificado::where('premium', '=', 1)->where('habilitar', '=', 1)->orderBy('fecha_publicacion', 'DESC')->get();
     $categoriasClasif = ClasificadoCategoria::all();
     $anuncios = Anuncio::all();
     $eventos = DB::table('eventos')->orderBy('fecha', 'desc')->get();
     $videoblog = DB::table('videoBlog')->orderBy('id', 'desc')->take(4)->get();
     $galeriapremium = ProveedorGaleria::where('premium', '=', 2)->orderBy('created_at', 'ASC')->get();
     //$proveedores = DB::table('proveedores')->where('nombre_usuario', '=', "$nombre_usuario")->first();
     //$proveedores_detalle = Proveedor_detalle::where('proveedores_idproveedor', '=', $proveedores->id)->first();
     //$galeria = DB::table('proveedor_galeria')->where('proveedores_idproveedor', '=', $proveedores->id)->get();
     //$user = Usuario::find(1);
     //Auth::logout();
     //Auth::login($user, true);
     $rolusuarioLogueado = '';
     $mailusuarioLogueado = '';
     $nombreusuarioLogueado = '';
     if (Auth::check()) {
         $authuser = Auth::user();
         $usu = Usuario::find($authuser->id);
         $mailusuarioLogueado = $authuser->email;
         $nombreusuarioLogueado = $authuser->nombre;
         $rolusuarioLogueado = DB::table('usuario_tiene_rol2')->where('usuario_id', '=', $authuser->id)->first();
         $rolusuarioLogueado = UsuarioRol::find($rolusuarioLogueado->rol_id)->rol;
     }
     //else{
     //	return  'No hay user';
     //}
     $bannersindexarriba = Banner::where('seccion', '=', 'INDEX-ARRIBA')->where('habilitar', '=', 1)->orderBy('id', 'asc')->get();
     //return View::make('index.index')->with(array('proveedores'=>$proveedores,'proveedores_detalle'=>$proveedores_detalle,'galeria'=>$galeria));
     return View::make('index.index')->with(array('galeriapremium' => $galeriapremium, 'videoblog' => $videoblog, 'categorias' => $categorias, 'blog' => $blog, 'clasificadosvip' => $clasificadosvip, 'anuncios' => $anuncios, 'categoriasClasif' => $categoriasClasif, 'eventos' => $eventos, 'username' => $mailusuarioLogueado, 'nameuser' => $nombreusuarioLogueado, 'roluser' => $rolusuarioLogueado, 'bannersindexarriba' => $bannersindexarriba));
     //
 }
 public function directorio($directorioCategoria)
 {
     $anuncios = Anuncio::all();
     $categoriasClasif = ClasificadoCategoria::all();
     if ($directorioCategoria == 'all') {
         $listaClasificadosPremium = Clasificado::where('premium', '=', 1)->where('habilitar', '=', 1)->orderBy('fecha_publicacion', 'DESC')->get();
         $listaClasificadosNormales = Clasificado::where('premium', '=', 0)->where('habilitar', '=', 1)->orderBy('fecha_publicacion', 'DESC')->get();
     } else {
         $categoria = ClasificadoCategoria::find($directorioCategoria);
         //$clasificados = $categoria->clasificados;
         $listaClasificadosPremium = Clasificado::where('categoria_id', '=', $directorioCategoria)->where('premium', '=', 1)->where('habilitar', '=', 1)->orderBy('fecha_publicacion', 'DESC')->get();
         $listaClasificadosNormales = Clasificado::where('categoria_id', '=', $directorioCategoria)->where('premium', '=', 0)->where('habilitar', '=', 1)->orderBy('fecha_publicacion', 'DESC')->get();
     }
     $bannersizquierda = Banner::where('seccion', '=', 'CLASIFICADOS-IZQUIERDA')->where('habilitar', '=', 1)->orderBy('id', 'asc')->get();
     $bannersderecha = Banner::where('seccion', '=', 'CLASIFICADOS-DERECHA')->where('habilitar', '=', 1)->orderBy('id', 'asc')->get();
     $bannersindexarriba = Banner::where('seccion', '=', 'INDEX-ARRIBA')->where('habilitar', '=', 1)->orderBy('id', 'asc')->get();
     $rolusuarioLogueado = '';
     $mailusuarioLogueado = '';
     $nombreusuarioLogueado = '';
     if (Auth::check()) {
         $authuser = Auth::user();
         $usu = Usuario::find($authuser->id);
         $mailusuarioLogueado = $authuser->email;
         $nombreusuarioLogueado = $authuser->nombre;
         $rolusuarioLogueado = DB::table('usuario_tiene_rol2')->where('usuario_id', '=', $authuser->id)->first();
         $rolusuarioLogueado = UsuarioRol::find($rolusuarioLogueado->rol_id)->rol;
     }
     return View::make('index.directorioClasificados')->with(array('anuncios' => $anuncios, 'categoriasClasif' => $categoriasClasif, 'listaClasificadosPremium' => $listaClasificadosPremium, 'directorioCat' => $directorioCategoria == 'all' ? 'Todos los clasificados' : $categoria->categoria, 'listaClasificadosNormales' => $listaClasificadosNormales, 'bannersizquierda' => $bannersizquierda, 'bannersderecha' => $bannersderecha, 'bannersindexarriba' => $bannersindexarriba, 'username' => $mailusuarioLogueado, 'nameuser' => $nombreusuarioLogueado, 'roluser' => $rolusuarioLogueado));
     //
 }
 /**
  * Display the specified resource.
  *
  * @param  int  $id
  * @return Response
  */
 public function show($id)
 {
     // $clasificado = DB::table('clasificados')
     // 	->where('id', '=', $id)
     // 	->first();
     $clasificado = Clasificado::find($id);
     $clasificado->visitas++;
     $clasificado->save();
     // show the view and pass the nerd to it
     return View::make('clasificados.show', array('clasificado' => $clasificado));
 }
 public function verclasif($idclasificado)
 {
     $anuncios = Anuncio::all();
     $categoriasClasif = ClasificadoCategoria::all();
     $clasf = Clasificado::find($idclasificado);
     $rolusuarioLogueado = '';
     $mailusuarioLogueado = '';
     $nombreusuarioLogueado = '';
     if (Auth::check()) {
         $authuser = Auth::user();
         $usu = Usuario::find($authuser->id);
         $mailusuarioLogueado = $authuser->email;
         $nombreusuarioLogueado = $authuser->nombre;
         $rolusuarioLogueado = DB::table('usuario_tiene_rol2')->where('usuario_id', '=', $authuser->id)->first();
         $rolusuarioLogueado = UsuarioRol::find($rolusuarioLogueado->rol_id)->rol;
     }
     $bannersizquierda = Banner::where('seccion', '=', 'CLASIFICADOS-IZQUIERDA')->where('habilitar', '=', 1)->orderBy('id', 'asc')->get();
     $bannersderecha = Banner::where('seccion', '=', 'CLASIFICADOS-DERECHA')->where('habilitar', '=', 1)->orderBy('id', 'asc')->get();
     $bannersindexarriba = Banner::where('seccion', '=', 'INDEX-ARRIBA')->where('habilitar', '=', 1)->orderBy('id', 'asc')->get();
     $latitud_ens = "31.865092739341954";
     $longitud_ens = "-116.62914315185549";
     return View::make('index.clasificadoDetalle')->with(array('anuncios' => $anuncios, 'categoriasClasif' => $categoriasClasif, 'clasificado' => $clasf, 'bannersizquierda' => $bannersizquierda, 'bannersderecha' => $bannersderecha, 'username' => $mailusuarioLogueado, 'nameuser' => $nombreusuarioLogueado, 'roluser' => $rolusuarioLogueado, 'bannersindexarriba' => $bannersindexarriba, 'latitud_ens' => $latitud_ens, 'longitud_ens' => $longitud_ens));
     //
 }
 /**
  * Remove the specified resource from storage.
  *
  * @param  int  $id
  * @return Response
  */
 public function destroy($id)
 {
     $authuser = Auth::user();
     $clasificado = Clasificado::find($id);
     //return $clasificado;
     $imagenes = $clasificado->imagenes;
     $del = '';
     foreach ($imagenes as $imagen) {
         File::delete('images/clasificados/' . $imagen->nombre_imagen);
         //$del = $del.$imagen->nombre_imagen. ', ';
         $imagen->delete();
     }
     //TODO: Deshabilitar cobro relacionado si existe
     $clasificado->delete();
     // redirect
     Session::flash('message', 'El clasificado ha sido eliminado exitosamente!');
     return Redirect::to('administracion/clasificados')->with(array('usuarioimg' => $authuser->imagen, 'usuarionombre' => $authuser->nombre, 'usuarioid' => $authuser->id));
 }
 public function aceptarcobro()
 {
     $cobropid = Input::get('pagodpid');
     $cobrop = CobroPendiente::find($cobropid);
     $cobrot = $cobrop->cobro->tipo;
     $cobro = $cobrop->cobro;
     $usuario = $cobrop->cobro->usuario;
     $date_now = new DateTime();
     //Copiar datos a un nuevo row de CobroHistorial
     $cobroH = new CobroHistorial();
     $cobroH->cobro_id = $cobrop->cobro_id;
     $cobroH->fechaPago = $date_now;
     //Mejorar: Aqui mas bien seria la fecha en la que se registro el pago
     $cobroH->metodoPago = $cobrop->metodoPago;
     $cobroH->referenciaPago = $cobrop->referenciaPago;
     $cobroH->cobro_concepto = $cobrop->cobro_concepto;
     $cobroH->cobro_tipo = $cobrot->tipo;
     $cobroH->usuario_email = $usuario->email;
     $cobroH->cobro_datosAdicionales = $cobro->datosAdicionales;
     $cobroH->save();
     //Actualizar Cobro
     //=> Si es el primer cobro (fechaExpiracion ==null  y estado=='pendiente'
     if ($cobro->fechaExpiracion == null) {
         $expdatetime = $date_now->add(new DateInterval('P' . $cobrot->diasVigencia . 'D'));
         $cobro->fechaExpiracion = $expdatetime;
     } else {
         //Si es un cobro para extender el servicio premium
         $fechaEDT = new DateTime($cobro->fechaExpiracion);
         if ($fechaEDT < $date_now) {
             //si servicio ya estaba expirado
             $expdatetime = $date_now->add(new DateInterval('P' . $cobrot->diasVigencia . 'D'));
             //Agregar los dias a partir de la fecha actual
         } else {
             //si servicio todavia no expira
             $expdatetime = $fechaEDT->add(new DateInterval('P' . $cobrot->diasVigencia . 'D'));
             //Agregar los dias a la fecha de expiracion actual
         }
         $cobro->fechaExpiracion = $expdatetime;
     }
     $cobro->estado = 'pagado';
     //TODO: Falta ver seria un estado diferente cuando se paga por primera vez o las demas veces
     $cobro->save();
     //Borrar row de cobroPendiente
     $cobrop->delete();
     //Aqui ya depende del tipo de cobro
     if ($cobrot->tipo == 'ser_proveedor') {
         //regresar campo 'solicitar_premium' de 1 a 0 y poner habilitar a 1
         $prov = Proveedor::find($cobro->datosAdicionales);
         $prov->solicitar_premium = 0;
         $prov->habilitar = 1;
         $prov->no_primer_cobro = 1;
         $prov->save();
     }
     if ($cobrot->tipo == 'clasificado_premium') {
         //regresar campo 'solicitar_premium' de 1 a 0 y poner campo premium a 1
         $clas = Clasificado::find($cobro->datosAdicionales);
         $clas->solicitar_premium = 0;
         $clas->premium = 1;
         $clas->no_primer_cobro = 1;
         $clas->save();
     }
     if ($cobrot->tipo == 'imagen_proveedor') {
         //poner campo 'premium' 1 a 2
         $provimg = ProveedorGaleria::find($cobro->datosAdicionales);
         $provimg->premium = 2;
         $provimg->no_primer_cobro = 1;
         $provimg->save();
     }
     $cobrotipoprefix = substr($cobrot->tipo, 0, 7);
     if ($cobrotipoprefix == 'BANNER-') {
         //poner solicitar_habilitar a 0 y habilitar a 1
         $banner = Banner::find($cobro->datosAdicionales);
         $banner->solicitar_habilitar = 0;
         $banner->habilitar = 1;
         $banner->no_primer_cobro = 1;
         $banner->save();
     }
     return Redirect::to('/administracion/pagospendientes');
 }
 /**
  * Remove the specified resource from storage.
  *
  * @param  int  $id
  * @return Response
  */
 public function destroy($id)
 {
     //
     $authuser = Auth::user();
     $cobrop = CobroPendiente::find($id);
     $cobrot = $cobrop->cobro->tipo;
     $cobro = $cobrop->cobro;
     //Dependiendo de cobro_tipo, regregar estado de objeto de cobro a antes de solicitar premium
     if ($cobrot->tipo == 'ser_proveedor') {
         //regresar campo 'solicitar_premium' de 1 a 0
         $prov = Usuario::find($cobro->datosAdicionales)->proveedor;
         $prov->solicitar_premium = 0;
         $prov->save();
     }
     if ($cobrot->tipo == 'clasificado_premium') {
         //regresar campo 'solicitar_premium' de 1 a 0
         $clas = Clasificado::find($cobro->datosAdicionales);
         $clas->solicitar_premium = 0;
     }
     if ($cobrot->tipo == 'imagen_proveedor') {
         //regresar campo 'premium' de 1/2 a 0
     }
     //TODO: falta los cobrot=== de banners
     if ($cobrot->tipo == 'banner_index-izq' || $cobrot->tipo == 'banner_index-der' || $cobrot->tipo == 'banner_index-arr') {
         //hacer algo
     }
     $cobrop->delete();
     //Si cobro todavia no se activa (es decir cobro->fechaExpiracion es NULL y cobro->estado =='pendiente')
     //=> borrar registro de cobro
     if ($cobro->fechaExpiracion == null && ($cobro->estado == null || $cobro->estado == '' || $cobro->estado == 'pendiente')) {
         $cobro->delete();
     }
     return Redirect::to('/administracion/pagospendientes');
 }