| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167 |
- <?php
- namespace App\Http\Controllers\Api;
- use App\Http\Controllers\Controller;
- use Illuminate\Http\Request;
- use Illuminate\Support\Facades\DB;
- use App\Models\Users\RelacionProfesores;
- class ProfesoresController extends Controller
- {
- public function mostrarProfesores()
- {
- $profesores = DB::table('usuarios')
- ->leftJoin('vista_usuarios_materias', 'usuarios.idUsuario', '=', 'vista_usuarios_materias.idProfesor')
- ->select(
- DB::raw("CONCAT(COALESCE(usuarios.primerNombre, ''), ' ', COALESCE(usuarios.segundoNombre, ''), ' ',
- COALESCE(usuarios.apellidoPaterno, ''), ' ', COALESCE(usuarios.apellidoMaterno, '')) AS nombreProfesor"),
- 'usuarios.idUsuario',
- 'usuarios.estatus',
- 'usuarios.tipoUsuario',
- 'vista_usuarios_materias.idMateria',
- 'vista_usuarios_materias.idGradoGrupoRelacionado',
- 'vista_usuarios_materias.colorCurso',
- 'vista_usuarios_materias.nombreMateria',
- 'vista_usuarios_materias.gradoGrupo',
- )
- ->where('usuarios.idEscuela', 'COLEGIOABC')
- ->where('usuarios.tipoUsuario', 'PR')
- ->where('usuarios.estatus', 'Activo')
- ->get();
- $profesores = $profesores->groupBy('idUsuario')->map(function ($group) {
- $first = $group->first();
- $nombreMaterias = $group->map(function ($item) {
- return [
- 'nombreMateria' => $item->nombreMateria,
- ];
- })->unique()->values()->filter(function ($item) {
- return $item['nombreMateria'] !== null;
- })->all();
- $nombreGrupos = $group->map(function ($item) {
- return [
- 'idGradoGrupoRelacionado' => $item->idGradoGrupoRelacionado,
- 'nombreGrupo' => $item->gradoGrupo,
- 'idMateria' => $item->idMateria,
- 'nombreMateria' => $item->nombreMateria,
- 'colorMateria' => $item->colorCurso
- ];
- })->values()->filter(function ($item) {
- return $item['idGradoGrupoRelacionado'] !== null && $item['nombreGrupo'] !== null;
- })->all();
- return [
- 'nombreProfesor' => $first->nombreProfesor,
- 'idUsuario' => $first->idUsuario,
- 'tipoUsuario' => $first->tipoUsuario,
- 'nombreMaterias' => empty($nombreMaterias) ? [] : array_values($nombreMaterias),
- 'nombreGrupos' => empty($nombreGrupos) ? [] : array_values($nombreGrupos)
- ];
- })->values();
- return response()->json([
- 'profesores' => $profesores
- ], 200);
- }
- public function RelacionarProfesor(Request $request)
- {
- $message = '';
- $status = 0;
- try {
- $profesores = DB::table('materias_profesores')->updateOrInsert([
- 'idEscuela' => 'COLEGIOABC',
- 'idProfesor' => $request->id,
- 'idMateria' => $request->idMateria,
- 'idGrupo' => $request->idGrupo,
- ]);
- $message = 'Relación creada exitosamente';
- $status = 200;
- } catch (\Exception $e) {
- $message = $e->getMessage();
- $status = 500;
- }
- return response()->json(['mensaje' => $message], $status);
- }
- public function eliminarRelacion(Request $request)
- {
- $message = '';
- $status = 0;
- try {
- $profesores = DB::table('materias_profesores')
- ->where('idEscuela', 'COLEGIOABC')
- ->where('idProfesor', $request->id)
- ->where('idMateria', $request->idMateria)
- ->where('idGrupo', $request->idGrupo)
- ->delete();
- $message = 'Relación eliminada exitosamente';
- $status = 200;
- } catch (\Exception $e) {
- $message = $e->getMessage();
- $status = 500;
- }
- return response()->json(['mensaje' => $message], $status);
- }
- public function getMaterias()
- {
- $materia = DB::table('vista_materias_grados_grupos')
- ->select(
- DB::raw("CONCAT(COALESCE(nombreGrado, ''), COALESCE(nombreGrupo, '')) AS nombreGradoGrupo"),
- 'idMateria',
- 'nombreMateria',
- 'colorCurso',
- 'idGradoGrupoRelacionado'
- )
- ->where('idEscuela', 'COLEGIOABC')
- ->where('estado', 'Activo')
- ->get();
- $materia = $materia->groupBy('nombreMateria')->map(function ($group) {
- $fist = $group->first();
- $nombreMaterias = $group->map(function ($item) {
- return [
- 'idMateria' => $item->idMateria,
- 'gradoGrupo' => $item->nombreGradoGrupo,
- 'idGradoGrupo' => $item->idGradoGrupoRelacionado,
- ];
- })->values()->all();
- return [
- 'nombreMateria' => $fist->nombreMateria,
- 'colorMateria' => $fist->colorCurso,
- 'gradoGrupo' => $nombreMaterias,
- ];
- })->values();
- return response()->json([
- 'materias' => $materia
- ], 200);
- }
- function getGrupos($id)
- {
- // $id = base64_decode($id);
- $grupos = DB::table('materias_profesores')
- ->select('idGrupo')
- ->where('idProfesor', $id)
- ->groupBy('idGrupo')
- ->get();
- foreach ($grupos as $grupo) {
- $grupo->nombreGrupo = DB::table('grupos')
- ->select('nombreGrupo')
- ->where('idGrupo', $grupo->idGrupo)
- ->first()->nombreGrupo ?? $grupo->idGrupo;
- }
- return response()->json($grupos, 200);
- }
- }
|