From 7f8b28753ef630e7105b6012fa5ef3bc5d413de9 Mon Sep 17 00:00:00 2001 From: tyrannusss Date: Tue, 7 Oct 2025 15:17:07 -0600 Subject: [PATCH] consultas a base de datos --- .../BitacoraSanciones/Sanciones.tsx | 3 +- .../BitacoraSanciones/TableSancion.tsx | 100 +++++++++++++++--- package-lock.json | 25 ++++- package.json | 3 +- 4 files changed, 113 insertions(+), 18 deletions(-) diff --git a/app/Components/BitacoraSanciones/Sanciones.tsx b/app/Components/BitacoraSanciones/Sanciones.tsx index b4442e9..109ccc2 100644 --- a/app/Components/BitacoraSanciones/Sanciones.tsx +++ b/app/Components/BitacoraSanciones/Sanciones.tsx @@ -19,8 +19,7 @@ export default async function Sanciones(props: { student?: Student }) { NoCuenta={props.student.id_cuenta} Nombre={props.student.nombre} /> - - + )} diff --git a/app/Components/BitacoraSanciones/TableSancion.tsx b/app/Components/BitacoraSanciones/TableSancion.tsx index e45662e..0585608 100644 --- a/app/Components/BitacoraSanciones/TableSancion.tsx +++ b/app/Components/BitacoraSanciones/TableSancion.tsx @@ -24,24 +24,64 @@ interface sancion { } export default function TableSancion() { - const [sanciones, setSanciones] = useState(); + const [sanciones, setSanciones] = useState([]); const [button, setButton] = useState(false); + const [selectedSancion, setSelectedSancion] = useState(""); + const [alumnoSanciones, setAlumnoSanciones] = useState([]); + /* + useEffect(() => { + const getSanciones = async () => { + const response = await axios.get(""); + setSanciones(response); + }; + getSanciones(); + }, [button]); - // useEffect(() => { - // const getSanciones = async () => { - // const response = await axios.get(""); - // setSanciones(response); - // }; - // getSanciones(); - // }, [button]); + + + {new Date(item.fecha_inicio).toLocaleDateString()} + + {calcularFechaFin(item.fecha_inicio, item.sancion?.duracion)} + + + https://venus.acatlan.unam.mx/asignacionTiempo_test/alumno-sancion/320154041 + .get("https://venus.acatlan.unam.mx/asignacionTiempo_test/sancion") +*/ + useEffect(() => { + axios + .get( + " https://venus.acatlan.unam.mx/asignacionTiempo_test/alumno-sancion/320154041" + ) + .then((response) => { + setAlumnoSanciones(response.data); + }) + .catch((error) => { + console.error("Error al obtener las sanciones:", error); + }); + + axios + .get("https://venus.acatlan.unam.mx/asignacionTiempo_test/sancion") + .then((response) => { + setSanciones(response.data); + }) + .catch((error) => { + console.error("Error al obtener las sanciones:", error); + }); + }, []); const handlebutton = () => { setButton(!button); }; - + + const calcularFechaFin = (fechaInicio: string, duracionSemanas: number) => { + const fecha = new Date(fechaInicio); + fecha.setDate(fecha.getDate() + duracionSemanas * 7); + return fecha.toLocaleDateString(); + }; + return ( <> -
+
@@ -52,19 +92,51 @@ export default function TableSancion() { - + + {sanciones.length > 0 ? ( + alumnoSanciones.map((item: any) => ( + + + + + + + + )) + ) : ( + + + + )} +
Podra utilizar el servicio hasta
{item.alumno?.id_cuenta}{item.sancion?.sancion}{item.sancion?.duracion}{new Date(item.fecha_inicio).toLocaleDateString()} + {calcularFechaFin( + item.fecha_inicio, + item.sancion?.duracion + )} +
No hay sanciones registradas
- setSelectedSancion(e.target.value)} + > - + {sanciones.map((sancion: any) => ( + + ))}
- diff --git a/package-lock.json b/package-lock.json index 9bc5488..6fbc9c2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14,7 +14,8 @@ "react": "19.1.0", "react-dom": "19.1.0", "react-hot-toast": "^2.6.0", - "react-icons": "^5.5.0" + "react-icons": "^5.5.0", + "react-toastify": "^11.0.5" }, "devDependencies": { "@types/js-cookie": "^3.0.6", @@ -688,6 +689,15 @@ "integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==", "license": "MIT" }, + "node_modules/clsx": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", + "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/color": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz", @@ -1174,6 +1184,19 @@ "react": "*" } }, + "node_modules/react-toastify": { + "version": "11.0.5", + "resolved": "https://registry.npmjs.org/react-toastify/-/react-toastify-11.0.5.tgz", + "integrity": "sha512-EpqHBGvnSTtHYhCPLxML05NLY2ZX0JURbAdNYa6BUkk+amz4wbKBQvoKQAB0ardvSarUBuY4Q4s1sluAzZwkmA==", + "license": "MIT", + "dependencies": { + "clsx": "^2.1.1" + }, + "peerDependencies": { + "react": "^18 || ^19", + "react-dom": "^18 || ^19" + } + }, "node_modules/scheduler": { "version": "0.26.0", "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.26.0.tgz", diff --git a/package.json b/package.json index c888ba7..c422cf7 100644 --- a/package.json +++ b/package.json @@ -15,7 +15,8 @@ "react": "19.1.0", "react-dom": "19.1.0", "react-hot-toast": "^2.6.0", - "react-icons": "^5.5.0" + "react-icons": "^5.5.0", + "react-toastify": "^11.0.5" }, "devDependencies": { "@types/js-cookie": "^3.0.6",