NivelEducativoController.php 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154
  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 NivelEducativoController extends Controller
  7. {
  8. public function findOne($id)
  9. {
  10. $id = base64_decode($id);
  11. $nivel = DB::table('niveles')->where('idNivel', $id)->first();
  12. return response()->json($nivel, 200);
  13. }
  14. public function mostrar()
  15. {
  16. $nivel = DB::table('niveles')
  17. ->where('idEscuela', 'COLEGIOABC')
  18. ->orderBy('estado', 'asc')
  19. ->get();
  20. return response()->json($nivel, 200);
  21. }
  22. public function nivelesHabilitados()
  23. {
  24. $nivel = DB::table('niveles')
  25. ->where('idEscuela', 'COLEGIOABC')
  26. ->where('estado', 'Activo')
  27. ->get();
  28. return response()->json($nivel, 200);
  29. }
  30. public function crear(Request $request)
  31. {
  32. try {
  33. DB::table('niveles')->insert([
  34. 'idEscuela' => 'COLEGIOABC',
  35. 'idNivel' => $request->idNivel,
  36. 'estado' => 'Activo',
  37. 'nombreNivel' => $request->nombreNivel,
  38. 'idUsuario' => '',
  39. ]);
  40. return response()->json(['mensaje' => 'Nivel 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 nivel: ' . $e->getMessage()], 500);
  46. }
  47. }
  48. public function actualizar(Request $request)
  49. {
  50. try {
  51. DB::table('niveles')
  52. ->updateOrInsert(
  53. ['idNivel' => $request->id],
  54. ['idNivel' => $request->idNivel, 'nombreNivel' => $request->nombreNivel]
  55. );
  56. // Verificar si existe la fila en la tabla 'grados'
  57. $exists = DB::table('grados')
  58. ->where('idNivel', $request->id)
  59. ->exists();
  60. // Verificar si existe la fila en la tabla 'boletas_periodos'
  61. $exists1 = DB::table('boletas_periodos')
  62. ->where('idNivel', $request->id)
  63. ->exists();
  64. // Si la fila existe, hacer el update
  65. if ($exists) {
  66. DB::table('grados')
  67. ->where('idNivel', $request->id)
  68. ->update(['idNivel' => $request->idNivel]);
  69. }
  70. // Si la fila existe, hacer el update
  71. if ($exists1) {
  72. DB::table('boletas_periodos')
  73. ->where('idNivel', $request->id)
  74. ->update(['idNivel' => $request->idNivel]);
  75. }
  76. return response()->json(['mensaje' => 'Nivel actualizado exitosamente'], 201);
  77. } catch (\Exception $e) {
  78. return response()->json(['mensaje' => 'Error al actualizar el nivel: ' . $e->getMessage()], 500);
  79. }
  80. }
  81. public function eliminar($id)
  82. {
  83. $id = base64_decode($id);
  84. try {
  85. // Verificar si existe la fila en la tabla 'grados'
  86. $existsInGrados = DB::table('grados')
  87. ->where('idNivel', $id)
  88. ->where('estado', 'Activo')
  89. ->exists();
  90. // Verificar si existe la fila en la tabla 'boletas_periodos'
  91. $existsInBoletasPeriodos = DB::table('boletas_periodos')
  92. ->where('idNivel', $id)
  93. ->where('estado', 'Activo')
  94. ->exists();
  95. // Si la fila existe en alguna de las tablas, devolver un mensaje de error
  96. if ($existsInGrados || $existsInBoletasPeriodos) {
  97. return response()->json(['mensaje' => 'No se puede eliminar el nivel porque está asociado a otros registros.'], 400);
  98. }
  99. // Si no existe en otras tablas, actualizar el estado en la tabla 'niveles'
  100. DB::table('niveles')
  101. ->updateOrInsert(
  102. ['idNivel' => $id],
  103. ['estado' => 'Eliminado']
  104. );
  105. return response()->json(['mensaje' => 'Nivel eliminado exitosamente'], 200);
  106. } catch (\Exception $e) {
  107. return response()->json(['mensaje' => 'Error al eliminar el nivel: ' . $e->getMessage()], 500);
  108. }
  109. }
  110. public function habilitar($id)
  111. {
  112. $id = base64_decode($id);
  113. try {
  114. //code...
  115. DB::table('niveles')
  116. ->updateOrInsert(
  117. ['idNivel' => $id],
  118. ['estado' => 'Activo']
  119. );
  120. return response()->json(['mensaje' => 'Nivel eliminado exitosamente'], 201);
  121. } catch (\Exception $e) {
  122. //throw $th;
  123. return response()->json(['mensaje' => 'Error al eliminar el nivel: ' . $e->getMessage()], 500);
  124. }
  125. }
  126. }