Explorar o código

Merge branch 'devAldrick' of ITTEC/PlataformaEducativaWeb2 into develop

AldrickChavarria hai 1 mes
pai
achega
ad7323c644

+ 65 - 1
Back/backendP-Educativa/app/Http/Controllers/Api/TareasController.php

@@ -47,6 +47,70 @@ class TareasController extends Controller
         }
     }
 
+    public function getTareasPorFechaEntrega($fecha)
+    {
+        try {
+            $tareas = DB::table('tareas as t')
+                ->join('materias as m', 't.idMateriaTarea', '=', 'm.idMateria')
+                ->join('tareas_tipos as tt', 't.idTipoTarea', '=', 'tt.idTareasTipos')
+                ->whereDate('t.fechaEntrega', '=', $fecha)
+                ->select(
+                    'm.nombreMateria as materia',
+                    'tt.nombreTareasTipos as tipo_tarea',
+                    't.*'
+                )
+                ->orderBy('t.fechaEntrega', 'asc')
+                ->get();
+
+            return response()->json($tareas);
+        } catch (\Exception $e) {
+            return response()->json(['mensaje' => 'Error al obtener las tareas por fecha de entrega: ' . $e->getMessage()], 500);
+        }
+    }
+
+    public function getTareasPorFechaAsignacion($fecha)
+    {
+        try {
+            $tareas = DB::table('tareas as t')
+                ->join('materias as m', 't.idMateriaTarea', '=', 'm.idMateria')
+                ->join('tareas_tipos as tt', 't.idTipoTarea', '=', 'tt.idTareasTipos')
+                ->whereDate('t.fechaPublicacion', '=', $fecha)
+                ->select(
+                    'm.nombreMateria as materia',
+                    'tt.nombreTareasTipos as tipo_tarea',
+                    't.*'
+                )
+                ->orderBy('t.fechaPublicacion', 'asc')
+                ->get();
+
+            return response()->json($tareas);
+        } catch (\Exception $e) {
+            return response()->json(['mensaje' => 'Error al obtener las tareas por fecha de asignación: ' . $e->getMessage()], 500);
+        }
+    }
+
+    public function getTareasPorMateria($idMateria)
+    {
+        try {
+            $tareas = DB::table('tareas as t')
+                ->join('materias as m', 't.idMateriaTarea', '=', 'm.idMateria')
+                ->join('tareas_tipos as tt', 't.idTipoTarea', '=', 'tt.idTareasTipos')
+                ->where('t.idMateriaTarea', $idMateria)
+                ->select(
+                    'm.nombreMateria as materia',
+                    'tt.nombreTareasTipos as tipo_tarea',
+                    't.*'
+                )
+                ->orderBy('t.fechaPublicacion', 'desc')
+                ->get();
+
+            return response()->json($tareas);
+        } catch (\Exception $e) {
+            return response()->json(['mensaje' => 'Error al obtener las tareas por materia: ' . $e->getMessage()], 500);
+        }
+    }
+
+
 
     public function crear(Request $request)
     {
@@ -284,7 +348,7 @@ class TareasController extends Controller
 
     public function habilitar($id)
     {
-        
+
         try {
             //code...
             DB::table('tareas')

+ 6 - 2
Back/backendP-Educativa/routes/api.php

@@ -49,7 +49,7 @@ use App\Http\Controllers\s3;
 
 //RUTAS QUE NO NECESITAN TOKENS
 Route::post('/subir-archivo', [s3::class, 'subirArchivo']);
-    Route::post('/recalcular-completado', [RegistroAcademico::class, 'RecalcularCompletado']);
+Route::post('/recalcular-completado', [RegistroAcademico::class, 'RecalcularCompletado']);
 
 Route::post('login', [LoginController::class, 'login']);
 Route::post('register', [UserController::class, 'register']);
@@ -213,7 +213,7 @@ Route::middleware(['auth:sanctum'])->group(function () {
     Route::delete('eliminarGrupo', [AlumnosController::class, 'eliminarGrupo']);
     Route::delete('eliminarPadre', [AlumnosController::class, 'eliminarPadre']);
     Route::get('/alumnos/bitacora/{id}', [AlumnosBitacoraController::class, 'index']);
-     Route::get('getByUser/{id}', [AlumnosBitacoraController::class, 'getByUser']); //Obtener circulares por usuario
+    Route::get('getByUser/{id}', [AlumnosBitacoraController::class, 'getByUser']); //Obtener circulares por usuario
     Route::get('UserOne/{id}', [AlumnosBitacoraController::class, 'findOne']);
 
 
@@ -302,6 +302,10 @@ Route::middleware(['auth:sanctum'])->group(function () {
     Route::get('/tareas/usuario/{idUsuario}', [TareasController::class, 'getTareasPorUsuario']);
     Route::put('tareaDelete/{id}', [TareasController::class, 'eliminar']);
     Route::put('tareaEnable/{id}', [TareasController::class, 'habilitar']);
+    Route::get('tareas/fecha-entrega/{fecha}', [TareasController::class, 'getTareasPorFechaEntrega']);
+    Route::get('tareas/fecha-asignacion/{fecha}', [TareasController::class, 'getTareasPorFechaAsignacion']);
+    Route::get('tareas/materia/{idMateria}', [TareasController::class, 'getTareasPorMateria']);
+
 
 
 });

+ 29 - 12
Front/src/app/modules/Profesor/pages/tareas/tareas.component.ts

@@ -1,4 +1,4 @@
- import { Component, ElementRef, ViewChild } from '@angular/core';
+import { Component, ElementRef, ViewChild } from '@angular/core';
 import { MAT_DIALOG_DATA } from '@angular/material/dialog';
 import { Inject } from '@angular/core';
 
@@ -588,14 +588,21 @@ export class ModalTarea {
     this.tareaService.actualizarTarea(tareaId, this.info).subscribe(
       (response: any) => {
         console.log('Tarea actualizada:', response);
-        // Swal.fire({ icon: 'success', title: `${response.mensaje}` });
+        Swal.fire({
+          icon: 'success',
+          title: `${response.mensaje || 'Tarea actualizada correctamente'}`
+        });
 
         this.dialog.closeAll();
         this._enviarInfoService.notifyCambioTabla();
       },
       (err) => {
         console.error('Error al actualizar la tarea:', err);
-        // Swal.fire({ icon: 'error', title: 'Error al actualizar la tarea' });
+        Swal.fire({
+          icon: 'error',
+          title: 'Error al actualizar la tarea',
+          text: err.error?.mensaje || err.message || 'Error desconocido'
+        });
       }
     );
   }
@@ -612,17 +619,21 @@ export class ModalTarea {
       },
       (err) => {
         console.error('Error al obtener los alumnos:', err);
-        
+        Swal.fire({
+          icon: 'error',
+          title: 'Error al obtener los alumnos',
+          text: err.error?.mensaje || err.message || 'Error desconocido'
+        });
       }
     );
 
     this.tareaService.crearTarea(this.info).subscribe(
       (response: any) => {
         console.log('Tarea creada:', response);
-        // Swal.fire({
-        //   icon: 'success',
-        //   title: `${response.mensaje}`
-        // });
+        Swal.fire({
+          icon: 'success',
+          title: `${response.mensaje || 'Tarea creada correctamente'}`
+        });
 
         this.alumnos.forEach((alumno:any) => {
           this.tareaService.asignarTarea({
@@ -634,6 +645,11 @@ export class ModalTarea {
             },
             (err) => {
               console.error('Error al asignar la tarea al alumno:', err);
+              Swal.fire({
+                icon: 'error',
+                title: 'Error al asignar la tarea al alumno',
+                text: err.error?.mensaje || err.message || 'Error desconocido'
+              });
             }
           );
         });
@@ -643,10 +659,11 @@ export class ModalTarea {
       },
       (err) => {
         console.error('Error al crear la tarea:', err);
-        // Swal.fire({
-        //   icon: 'error',
-        //   title: `Error al crear la tarea: ${err.error.mensaje || err.message || 'Error desconocido'}`
-        // });
+        Swal.fire({
+          icon: 'error',
+          title: `Error al crear la tarea`,
+          text: err.error?.mensaje || err.message || 'Error desconocido'
+        });
       }
     );
   }

+ 1 - 1
Front/src/environments/environments.ts

@@ -1,6 +1,6 @@
 export const environments = {
     // baseUrl:'http://192.168.200.2:8000/api'
     // baseUrl:'http://127.0.0.1:8000/api'
-    baseUrl:'https://dv.plataforma-educativa.com.mx/back/public/api'
+    baseUrl:'https://app.plataforma-educativa.com.mx/back/public/api'
 
 }