public static function crearComunidadesCursillos($comunidades = array(), $cursillosIds = array()) { $logs = []; $pluralComunidad = count($comunidades) > 1 ? true : false; $pluralCursillo = count($cursillosIds) > 1 ? true : false; $contadorTotalCursillos = 0; $contadorTotalComunidades = 0; if (count($cursillosIds) > 0 && count($comunidades) > 0) { $cursillos = Cursillos::getAlgunosCursillos($cursillosIds); if (count($cursillos) == 0) { return null; } foreach ($comunidades as $comunidad) { $solicitudEnviada = new SolicitudesEnviadas(); $solicitudEnviada->comunidad_id = $comunidad[0]; try { DB::transaction(function () use($solicitudEnviada, $comunidad, $cursillos, &$contadorTotalCursillos, &$contadorTotalComunidades, &$logs) { $solicitudEnviada->save(); $solicitudesEnviadasCursillos = []; $cursos = []; foreach ($cursillos as $curso) { $solicitudesEnviadasCursillos[] = new SolicitudesEnviadasCursillos(['cursillo_id' => $curso["id"], 'comunidad_id' => $comunidad[0]]); $cursos[] = ["Incluido el cursillo " . $curso->cursillo . " con número " . $curso->num_cursillo . " a la comunidad " . $comunidad[1], "", "ok-circle info icon-size-normal"]; } $solicitudEnviada->solicitudes_enviadas_cursillos()->saveMany($solicitudesEnviadasCursillos); $contadorTotalComunidades += 1; $contadorTotalCursillos += count($cursillos); $logs[] = ["Incluida la comunidad " . $comunidad[1] . " en concepto de pendiente de respuesta a la solicitud.", "", "ok-sign green icon-size-large"]; foreach ($cursos as $curso) { $logs[] = $curso; } }); } catch (QueryException $ex) { $logs[] = ["No se han incluido la comunidad " . $comunidad[1] . " a pendiente de respuesta de la solicitud.", "", "exclamation-sign warning icon-size-large"]; } } $logs[] = ["Se ha" . ($pluralComunidad ? "n" : "") . " incluido " . $contadorTotalComunidades . " comunidad" . ($pluralComunidad ? "es" : "") . " y " . $contadorTotalCursillos . " cursillo" . ($pluralCursillo ? "s" : "") . " en la" . ($pluralCursillo ? "s" : "") . " solicitud" . ($pluralCursillo ? "es" : "") . " pendiente" . ($pluralCursillo ? "s" : "") . " de respuesta" . ($pluralCursillo ? "s" : ""), "", "plus-sign green icon-size-large"]; } else { $logs[] = ["No se han incluido nuevas solicitudes pendientes de respuestas.", "", "info-sign info icon-size-large"]; } return $logs; }