GradoEducativoController.php 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186
  1. <?php
  2. namespace App\Http\Controllers\Api;
  3. use App\Http\Controllers\Controller;
  4. use Illuminate\Http\Request;
  5. use Illuminate\Support\Facades\DB;
  6. class GradoEducativoController extends Controller
  7. {
  8. public function findOne($id)
  9. {
  10. $grado = DB::table('grados')->where('nombreGrado', $id)->first();
  11. return response()->json($grado, 200);
  12. }
  13. public function mostrar()
  14. {
  15. $grado = DB::table('vista_grados_niveles')
  16. ->where('idEscuela', 'COLEGIOABC')
  17. ->orderBy('estado', 'asc')
  18. ->get();
  19. return response()->json($grado, 200);
  20. }
  21. public function gradosHabilitados()
  22. {
  23. $grado = DB::table('grados')
  24. ->where('idEscuela', 'COLEGIOABC')
  25. ->where('estado', 'Activo')
  26. ->get();
  27. return response()->json($grado, 200);
  28. }
  29. public function crear(Request $request)
  30. {
  31. try {
  32. DB::table('grados')->insert([
  33. 'idEscuela' => 'COLEGIOABC',
  34. 'idGrado' => $request->idGrado,
  35. 'estado' => 'Activo',
  36. 'nombreGrado' => $request->nombreGrado,
  37. 'idNivel' => $request->idNivel,
  38. 'idUsuario' => '',
  39. ]);
  40. return response()->json(['mensaje' => 'Grado creado exitosamente'], 201);
  41. } catch (\Exception $e) {
  42. if ($e instanceof \PDOException && $e->errorInfo[1] == 1062) {
  43. return response()->json(['mensaje' => 'Este grado ya ha sido registrado'], 500);
  44. }
  45. return response()->json(['mensaje' => 'Error al crear el grado: ' . $e->getMessage()], 500);
  46. }
  47. }
  48. public function actualizar(Request $request)
  49. {
  50. try {
  51. DB::table('grados')
  52. ->updateOrInsert(
  53. ['nombreGrado' => $request->id],
  54. [
  55. 'idGrado' => $request->idGrado,
  56. 'nombreGrado' => $request->nombreGrado,
  57. 'idNivel' => $request->idNivel
  58. ]
  59. );
  60. // Verificar si existe la fila en la tabla 'grados'
  61. $exists = DB::table('usuarios')
  62. ->where('grado', $request->id)
  63. ->exists();
  64. // Verificar si existe la fila en la tabla 'boletas_periodos'
  65. $exists1 = DB::table('materias')
  66. ->where('idGradoGrupoRelacionado', $request->id)
  67. ->exists();
  68. // materias_profesores
  69. $exists2 = DB::table('materias_profesores')
  70. ->where('idGrupo', $request->id)
  71. ->exists();
  72. // Si la fila existe, hacer el update
  73. if ($exists) {
  74. DB::table('usuarios')
  75. ->where('grado', $request->id)
  76. ->update(['grado' => $request->nombreGrado]);
  77. }
  78. if ($exists1) {
  79. DB::table('materias')
  80. ->where('idGradoGrupoRelacionado', $request->id)
  81. ->update(['idGradoGrupoRelacionado' => $request->nombreGrado]);
  82. }
  83. if ($exists2) {
  84. DB::table('materias_profesores')
  85. ->where('idGrupo', $request->id)
  86. ->update(['idGrupo' => $request->nombreGrado]);
  87. }
  88. return response()->json(['mensaje' => 'Grado actualizado exitosamente'], 201);
  89. } catch (\Exception $e) {
  90. return response()->json(['mensaje' => 'Error al actualizar el grado: ' . $e->getMessage()], 500);
  91. }
  92. }
  93. public function eliminar($id)
  94. {
  95. try {
  96. // Verificar si existe la fila en la tabla 'grados'
  97. $existsInUsers = DB::table('usuarios')
  98. ->where('grado', $id)
  99. ->where('estatus', 'Activo')
  100. ->exists();
  101. // Verificar si existe la fila en la tabla 'boletas_periodos'
  102. $existsInMaterias = DB::table('materias')
  103. ->where('idGradoGrupoRelacionado', $id)
  104. ->where('estado', 'Activo')
  105. ->exists();
  106. // materias_profesores
  107. $existsInMateriasProfesores = DB::table('materias_profesores')
  108. ->where('idGrupo', $id)
  109. ->count();
  110. if ($existsInUsers || $existsInMaterias || $existsInMateriasProfesores>0) {
  111. return response()->json(['mensaje' => 'No se puede eliminar el grado porque está asociado a otros registros.'], 400);
  112. }
  113. DB::table('grados')
  114. ->updateOrInsert(
  115. ['nombreGrado' => $id],
  116. ['estado' => 'Eliminado']
  117. );
  118. return response()->json(['mensaje' => 'Grado eliminado exitosamente'], 201);
  119. } catch (\Exception $e) {
  120. return response()->json(['mensaje' => 'Error al eliminar el grado: ' . $e->getMessage()], 500);
  121. }
  122. }
  123. public function habilitar($id)
  124. {
  125. try {
  126. $grado = DB::table('grados')->where('nombreGrado', $id)->first();
  127. $existsInGrados = DB::table('niveles')
  128. ->where('idNivel', $grado->idNivel)
  129. ->where('estado', 'Eliminado')
  130. ->exists();
  131. if ($existsInGrados) {
  132. return response()->json(['mensaje' => 'No se puede habilitar el nivel'], 400);
  133. }
  134. DB::table('grados')
  135. ->updateOrInsert(
  136. ['nombreGrado' => $id],
  137. ['estado' => 'Activo']
  138. );
  139. return response()->json(['mensaje' => 'Grado eliminado exitosamente'], 201);
  140. } catch (\Exception $e) {
  141. //throw $th;
  142. return response()->json(['mensaje' => 'Error al eliminar el grado: ' . $e->getMessage()], 500);
  143. }
  144. }
  145. }