AsistenciaController.php 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135
  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 AsistenciaController extends Controller
  7. {
  8. public function findOne($id)
  9. {
  10. $id = base64_decode($id);
  11. $asistencia = DB::table('niveles')->where('idNivel', $id)->first();
  12. return response()->json($asistencia, 200);
  13. }
  14. public function mostrar()
  15. {
  16. $asistencia = DB::table('asistencia')
  17. ->select(
  18. 'asistencia.*',
  19. 'materias.nombreMateria as nombreMateria',
  20. DB::raw("CONCAT(COALESCE(usuarios.primerNombre, ''), ' ', COALESCE(usuarios.segundoNombre, ''), ' ', COALESCE(usuarios.apellidoPaterno, ''), ' ', COALESCE(usuarios.apellidoMaterno, '')) AS nombreCompleto")
  21. )
  22. ->where('asistencia.idEscuela', 'COLEGIOABC')
  23. ->join('materias', 'asistencia.idMateria', '=', 'materias.idMateria')
  24. ->join('usuarios', 'asistencia.idUsuario', '=', 'usuarios.idUsuario')
  25. ->get();
  26. return response()->json($asistencia, 200);
  27. }
  28. public function nivelesHabilitados()
  29. {
  30. $asistencia = DB::table('niveles')
  31. ->where('idEscuela', 'COLEGIOABC')
  32. ->where('estado', 'Activo')
  33. ->get();
  34. return response()->json($asistencia, 200);
  35. }
  36. public function crear(Request $request)
  37. {
  38. try {
  39. DB::table('asistencia')->insert([
  40. 'idEscuela' => 'COLEGIOABC',
  41. 'idMateria' => $request->idMateria,
  42. 'idFechaHora' => $request->idFechaHora,
  43. 'estado' => 'Borrador',
  44. 'version' => 1,
  45. 'versionActiva' => 'Si',
  46. 'listaAsistencia' => json_encode(json_decode($request->listaAsistencia)),
  47. 'tAlumnos' => $request->tAlumnos,
  48. 'tAsistencia' => 0,
  49. 'tFalta' => 0,
  50. 'tJustificada' => 0,
  51. 'idUsuario' => $request->idUsuario,
  52. 'ulActualizacion' => $request->ulActualizacion,
  53. ]);
  54. return response()->json([
  55. 'mensaje' => 'Asistencia creada exitosamente',
  56. 'idLista' => DB::getPdo()->lastInsertId()
  57. ], 201);
  58. } catch (\Exception $e) {
  59. return response()->json(['mensaje' => 'Error al crear el asistencia: ' . $e->getMessage()], 500);
  60. }
  61. }
  62. public function actualizar(Request $request)
  63. {
  64. try {
  65. DB::table('asistencia')
  66. ->updateOrInsert(
  67. ['idAsistencia' => $request->idLista],
  68. [
  69. 'listaAsistencia' => $request->listaAsistencia,
  70. 'tAsistencia' => $request->tAsistencia,
  71. 'tFalta' => $request->tFalta,
  72. 'tJustificada' => $request->tJustificada,
  73. 'estado' => $request->estado,
  74. ]
  75. );
  76. return response()->json(['mensaje' => 'Registro actualizado exitosamente'], 201);
  77. } catch (\Exception $e) {
  78. return response()->json(['mensaje' => 'Error al actualizar el registro: ' . $e->getMessage()], 500);
  79. }
  80. }
  81. public function eliminar($id)
  82. {
  83. try {
  84. DB::table('asistencia')
  85. ->updateOrInsert(
  86. ['idAsistencia' => $id],
  87. ['estado' => 'Eliminada']
  88. );
  89. return response()->json(['mensaje' => 'Asistencia eliminada exitosamente'], 200);
  90. } catch (\Exception $e) {
  91. return response()->json(['mensaje' => 'Error al eliminar la asistencia: ' . $e->getMessage()], 500);
  92. }
  93. }
  94. public function habilitar($id)
  95. {
  96. $id = base64_decode($id);
  97. try {
  98. //code...
  99. DB::table('niveles')
  100. ->updateOrInsert(
  101. ['idNivel' => $id],
  102. ['estado' => 'Activo']
  103. );
  104. return response()->json(['mensaje' => 'Nivel eliminado exitosamente'], 201);
  105. } catch (\Exception $e) {
  106. //throw $th;
  107. return response()->json(['mensaje' => 'Error al eliminar el asistencia: ' . $e->getMessage()], 500);
  108. }
  109. }
  110. }