fixed addTime and added new BarNavigation

This commit is contained in:
2026-01-23 12:35:35 -06:00
parent 21bd341762
commit 7af87fa424
12 changed files with 254 additions and 73 deletions
+7 -2
View File
@@ -13,9 +13,10 @@ interface CostOption {
interface ImpressionsProps {
costs: CostOption[];
numAcount: number | null;
id_servicio: number;
}
function Impressions({ costs, numAcount }: ImpressionsProps) {
function Impressions({ costs, numAcount, id_servicio }: ImpressionsProps) {
const [pages, setPages] = useState("");
const [cost, setCost] = useState("");
@@ -47,6 +48,7 @@ function Impressions({ costs, numAcount }: ImpressionsProps) {
id_cuenta: numAcount,
numero_hojas: parseInt(pages),
monto: parseInt(cost) * parseInt(pages),
id_servicio,
});
if (result.error) {
@@ -101,7 +103,10 @@ function Impressions({ costs, numAcount }: ImpressionsProps) {
/>
</div>
<div className="groupInput" style={{height:"35px", flexWrap:"nowrap"}}>
<div
className="groupInput"
style={{ height: "35px", flexWrap: "nowrap" }}
>
<label className="label">Total:</label>
<label
style={{ width: "100%", minWidth: "200px", maxWidth: "500px" }}
+25
View File
@@ -66,6 +66,13 @@ export default function Inscripcion({
return;
}
if (!plataformaSeleccionada) {
toast.error("Selecciona una plataforma");
return;
}
const id_plataforma = PLATAFORMA_MAP[plataformaSeleccionada];
try {
await PostReceipt({
id_cuenta: numAcount,
@@ -74,6 +81,24 @@ export default function Inscripcion({
fecha_recibo: date,
});
const res = await fetch(`${envConfig.apiUrl}/alumno-inscrito`, {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
id_cuenta: numAcount,
id_plataforma,
realizo_pago: false,
}),
});
const data = await res.json();
if (!res.ok) {
throw new Error(data.message || "Error al inscribir");
}
toast.success("Alumno con pago");
setFolio("");
setAmount("");
setDate("");
@@ -1,9 +1,9 @@
"use client";
import { useState } from "react";
import "./BarNavigation.css";
import Link from "next/link";
import "./BarNavigation.css";
function BarNavigation() {
export default function BarNavigation() {
const [openMenu, setOpenMenu] = useState(false);
const [openSubMenu, setOpenSubMenu] = useState<number | null>(null);
@@ -169,28 +169,18 @@ function BarNavigation() {
>
<li>Inscritos</li>
</Link>
<Link
href="/BitacoraSanciones"
className="links"
onClick={(e) => {
e.stopPropagation();
closeAllMenus();
}}
>
<li>Bitacora y sanciones</li>
</Link>
</ul>
</li>
<li className="subMenu" onClick={toggleMenu}>
<Link
href="/QuitarSancion"
href="/BitacoraSanciones"
className="links"
onClick={(e) => {
e.stopPropagation();
closeAllMenus();
}}
>
<span>Quitar sanción</span>
<span>Bitácora y sanciones</span>
</Link>
</li>
<li className="subMenu" onClick={toggleMenu}>
@@ -209,6 +199,4 @@ function BarNavigation() {
</nav>
);
}
export default BarNavigation;
//IO
@@ -0,0 +1,119 @@
"use client";
import { useState } from "react";
import Link from "next/link";
import "./BarNavigation.css";
export default function BarNavigationServicio() {
const [openMenu, setOpenMenu] = useState(false);
const [openSubMenu, setOpenSubMenu] = useState<number | null>(null);
const toggleMenu = () => setOpenMenu(!openMenu);
const toggleSubMenu = (index: number) => {
if (typeof window !== "undefined" && window.innerWidth <= 1000) {
setOpenSubMenu(openSubMenu === index ? null : index);
}
};
const closeAllMenus = () => {
setOpenMenu(false);
setOpenSubMenu(null);
};
return (
<nav className="barNavigation">
<div className={`menuToggle ${openMenu ? "" : ""}`} onClick={toggleMenu}>
<div></div>
<div></div>
<div></div>
</div>
<ul className={openMenu ? "active" : ""}>
<li className={`subMenu ${openSubMenu === 0 ? "open" : ""}`}>
<span onClick={() => toggleSubMenu(0)}>Inscripciónes</span>
<ul onClick={toggleMenu}>
<Link
href="/Inscripcion"
className="links"
onClick={(e) => {
e.stopPropagation();
closeAllMenus();
}}
>
<li>Inscripción Usuario</li>
</Link>
<Link
href="/AgregarTiempo"
className="links"
onClick={(e) => {
e.stopPropagation();
closeAllMenus();
}}
>
<li>Agregar Tiempo</li>
</Link>
</ul>
</li>
<li className={`subMenu ${openSubMenu === 1 ? "open" : ""}`}>
<span onClick={() => toggleSubMenu(1)}>Servicios</span>
<ul onClick={toggleMenu}>
<Link
href="/Impresiones"
className="links"
onClick={(e) => {
e.stopPropagation();
closeAllMenus();
}}
>
<li>Impresiones y Ploteo</li>
</Link>
<Link
href="/AsignacionMesas"
className="links"
onClick={(e) => {
e.stopPropagation();
closeAllMenus();
}}
>
<li>Asignación de Mesas</li>
</Link>
<Link
href="/AsignacionEquipo"
className="links"
onClick={(e) => {
e.stopPropagation();
closeAllMenus();
}}
>
<li>Asignación de Equipos</li>
</Link>
<Link
href="/Monitor"
className="links"
onClick={(e) => {
e.stopPropagation();
closeAllMenus();
}}
>
<li>Monitor</li>
</Link>
</ul>
</li>
<li className="subMenu" onClick={toggleMenu}>
<Link
href="/Mensajes"
className="links"
onClick={(e) => {
e.stopPropagation();
closeAllMenus();
}}
>
<span>Mensajes</span>
</Link>
</li>
</ul>
</nav>
);
}
//IO
+4 -2
View File
@@ -3,6 +3,7 @@ import Link from "next/link";
import BarNavigation from "../BarNavigation/BarNavigation";
import header from "./Header.module.css";
import { cookies } from "next/headers";
import BarNavigationServicio from "../BarNavigation/BarNavigationServicio";
export default async function Header() {
const cookieStore = await cookies();
@@ -28,10 +29,11 @@ export default async function Header() {
</Link>
<div className={header.yellowPart}></div>
<div className={header.containerBarNav}>
{role === "ADMINISTRADOR" && <BarNavigation />}
{role === "ADMINIS.TRADOR" && <BarNavigation />}
{role === "SUPER ADMINISTRADOR (quita sanciones)" && <BarNavigation />}
{role === "SERVICIO SOCIAL" && <BarNavigation/>}
{role === "ADMINISTRADOR" && <BarNavigation/>}
{role === "ATENCION A USUARIO" && <BarNavigation/>}
{role === "SERVICIO SOCIAL" && <BarNavigationServicio/>}
</div>
</header>
);