public function fixtureStore()
 {
     $request = Input::all();
     return $result = DB::transaction(function () use($request) {
         $result["result"] = "OK";
         $fechas = $request["fechas"];
         $dia = $request["inicio"];
         $torneo_id = $request["torneo"];
         $cant_fechas = TorneoFase::where('torneo_id', $torneo_id)->get()->last()->grupos->first()->cantidad_fechas;
         $fecha = new TorneoFecha();
         $partido = new Partido();
         $partido_club = new PartidoClub();
         $fechas_creadas = $fecha::where('torneo_id', $torneo_id)->get();
         //todas las fechas  creadas
         $partidos_creados = $partido::whereIn('fecha_id', $fechas_creadas->pluck("id"))->get();
         //todos los partidos creados
         $partidos_club_creados = $partido_club::whereIn('partido_id', $partidos_creados->pluck("id"))->get();
         //todos las instancias de clubes en los partidos
         foreach ($partidos_creados as $partido) {
             //de todos los partidos
             if ($partido->borrable) {
                 // si son borrables, no tienen incidencias
                 $partido->local->forceDelete();
                 //borro el local
                 $partido->visitante->forceDelete();
                 //borro el visitante
                 $partido->forceDelete();
                 //luego, borro el partido
             }
         }
         foreach ($fechas_creadas as $fecha) {
             //de todas las fechas
             if ($fecha->borrable) {
                 // si la fecha es borrable, es decir no tiene partidos
                 $fecha->forceDelete();
                 // la borro ameo
             }
         }
         //foreach ($fechas as $key => $fecha){
         for ($orden = 0; $orden < $cant_fechas; $orden++) {
             $fecha = array_key_exists($orden, $fechas) ? $fechas[$orden] : false;
             if ($fecha) {
                 // si me llegaron cosas de la fecha, entonces tengo que hacer.
                 $torneo_fecha = TorneoFecha::where('torneo_id', $torneo_id)->where('orden', $orden + 1)->get();
                 if ($torneo_fecha->count()) {
                     //si tengo fecha con ese orden debo insertar todos los partidos en esa fecha previamente creada
                     $torneo_fecha = $torneo_fecha->first();
                 } else {
                     // sino, debo crear la fecha primero y luego insertar.
                     $torneo_fecha = new TorneoFecha();
                     $torneo_fecha->orden = $orden + 1;
                     $torneo_fecha->torneo_id = $torneo_id;
                     $torneo_fecha->horario_preferido = $request["horario"];
                     $torneo_fecha->fecha_ini = $dia;
                     $torneo_fecha->save();
                 }
                 $dia_array = explode('/', $dia);
                 $dia = $dia_array[2] . '/' . $dia_array[1] . '/' . $dia_array[0];
                 $dia = strtotime('+7 day', strtotime($dia));
                 $dia = date('d/m/Y', $dia);
                 foreach ($fecha as $partido_fecha) {
                     // if (!$this->controlarClubPartidos($torneo_fecha->id,$partido_fecha["l"]) && !$this->controlarClubPartidos($torneo_fecha->id,$partido_fecha["v"])){
                     $partido = new Partido();
                     $partido->fecha_id = $torneo_fecha->id;
                     $partido->estado_id = 1;
                     $partido->save();
                     $partido_club_local = new PartidoClub();
                     $partido_club_local->local = 1;
                     $partido_club_local->partido_id = $partido->id;
                     $local_id = TorneoGrupoClub::where('torneo_club_id', $partido_fecha["l"])->first();
                     $partido_club_local->club_id = $local_id->id;
                     $partido_club_local->save();
                     $partido_club_visitante = new PartidoClub();
                     $partido_club_visitante->local = 0;
                     $partido_club_visitante->partido_id = $partido->id;
                     $visita_id = TorneoGrupoClub::where('torneo_club_id', $partido_fecha["v"])->first();
                     $partido_club_visitante->club_id = $visita_id->id;
                     $partido_club_visitante->save();
                     /*
                     }else{
                         $result["result"] = "Error";
                         $result["description"] = "" ;
                         return $result;
                     }
                     */
                 }
             }
         }
         //a esta altura tengo todo lo que estaba borrable eliminado
         //CONTINUAR AQUI ASOCIANDO LOS PARTIDOS NUEVOS A LAS FECHAS QUE QUEDARON CREADAS O CREARLAS RECORRIENDO LO QUE RECIBO . VER FOREACH DE ABAJO
         /*
         function aca puedo achicar el comentario () {
             $partidos_finalizados = $partido::whereIn('fecha_id',$fechas_creadas->pluck("id"))->where('estado_id','=',4)->get(); //todos los partidos finalizados
             $partidos_club_con_partidos_finalizados = $partido_club::whereIn('partido_id',$partidos_finalizados->pluck("id"))->get(); //todos los partidos clubes con partidos finalizados
             $fechas_con_partidos_finalizados = $fecha::whereIn('id',$partidos_finalizados->pluck("fecha_id"))->get(); //las fechas con partidos finalizdos
             
             //calculo los elementos borrables por medio de las diferencias
             $partidos_club_borrables = $partidos_club_creados->diff($partidos_club_con_partidos_finalizados);
             $partidos_borrables      = $partidos_club_creados->diff($partidos_finalizados);
             $fechas_borrables        = $fechas_creadas->diff($fechas_con_partidos_finalizados);
             
             foreach ($partidos_club_borrables as $partido_club_creado_item) {
                 $partido_club_creado_item->delete();
             }
             foreach ($partidos_borrables as $partido_creado_item) {
                 $partido_creado_item->delete();
             }    
             foreach ($fechas_borrables as $fecha_creada_item) {
                 $fecha_creada_item->delete();
             }
         }
         
         
         
         foreach ($fechas as $key => $fecha){
         
             $torneo_fecha = new TorneoFecha;
             $torneo_fecha->orden = $key + 1;
             $torneo_fecha->torneo_id = $torneo_id;
             $torneo_fecha->horario_preferido = $request["horario"];
             $torneo_fecha->fecha_ini = $dia;
             $torneo_fecha->save();
         
             $dia_array= explode('/',$dia);
             $dia = $dia_array[2].'/'.$dia_array[1].'/'.$dia_array[0];
             $dia = strtotime ( '+7 day' , strtotime ( $dia ) ) ;
             $dia = date ( 'd/m/Y' , $dia );
         
             foreach ($fecha as $partido_fecha) {
                 if (!$this->controlarClubPartidos($torneo_fecha->id,$partido_fecha["l"]) && !$this->controlarClubPartidos($torneo_fecha->id,$partido_fecha["v"])){
                     $partido = new Partido;
                     $partido->fecha_id = $torneo_fecha->id;
                     $partido->estado_id = 1;
                     $partido->save();
         
                     $partido_club_local = new PartidoClub;
                     $partido_club_local->local = 1;
                     $partido_club_local->partido_id = $partido->id;
                     $local_id = TorneoGrupoClub::where('torneo_club_id', $partido_fecha["l"])->first();
                     $partido_club_local->club_id = $local_id->id;
                     $partido_club_local->save(); 
         
                     $partido_club_visitante = new PartidoClub;
                     $partido_club_visitante->local = 0;
                     $partido_club_visitante->partido_id = $partido->id;
                     $visita_id = TorneoGrupoClub::where('torneo_club_id', $partido_fecha["v"])->first();
                     $partido_club_visitante->club_id = $visita_id->id;
                     $partido_club_visitante->save();
                 }else{
                     $result["result"] = "Error";
                     $result["description"] = "" ;
                     return $result;
                 }
             }
             
         }
         */
         return $result;
     });
 }