diff --git a/app/Components/SearchDateBetween/SearchDateBetween.tsx b/app/Components/SearchDateBetween/SearchDateBetween.tsx
new file mode 100644
index 0000000..5d16860
--- /dev/null
+++ b/app/Components/SearchDateBetween/SearchDateBetween.tsx
@@ -0,0 +1,51 @@
+"use client";
+import { Margarine } from "next/font/google";
+import { useState } from "react";
+
+function SearchDateBetween() {
+ const [startDate, setStartDate] = useState("");
+ const [endDate, setEndDate] = useState("");
+
+ const handleSubmit = (e: React.FormEvent) => {
+ e.preventDefault();
+ console.log("Fecha inicio:", startDate);
+ console.log("Fecha fin:", endDate);
+ // Aquí puedes hacer la lógica para buscar entre fechas
+ };
+
+ return (
+ <>
+
+ >
+ );
+}
+
+export default SearchDateBetween;
+
+// By Tyrannuss
diff --git a/app/QuitarSancion/Page.module.css b/app/QuitarSancion/Page.module.css
new file mode 100644
index 0000000..7b884cc
--- /dev/null
+++ b/app/QuitarSancion/Page.module.css
@@ -0,0 +1,70 @@
+.tableContainer {
+ margin-top: 10px;
+ overflow-y: auto;
+ overflow-x: auto;
+ border-radius: 4px;
+ border: 1px solid #cfcfcf;
+ max-height: 430px;
+ scrollbar-color: rgb(1, 92, 184) rgba(0, 0, 0, 0);
+ background-color: #f9f9f9;
+ width: 100%;
+}
+
+.machineTable {
+ width: 100%;
+ border-collapse: collapse;
+ table-layout: auto;
+}
+
+.machineTable th,
+.machineTable td {
+ padding: 10px;
+ text-align: center;
+ border-bottom: 1px solid #cfcfcf;
+ word-wrap: break-word;
+ overflow-wrap: break-word;
+}
+
+.machineTable th {
+ position: sticky;
+ top: 0px;
+ background-color: rgb(1, 92, 184);
+ color: white;
+}
+
+.machineTable tr {
+ min-width: 400px;
+}
+
+.disponible {
+ display: flex;
+ width: 100%;
+ height: 100%;
+ background-color: green;
+ color: green;
+ font-weight: bold;
+}
+
+.ocupado {
+ color: red;
+ font-weight: bold;
+}
+
+.actions {
+ text-align: center;
+}
+
+.resetButton {
+ padding: 8px 16px;
+ background-color: #ff4d4d;
+ color: white;
+ border: none;
+ border-radius: 6px;
+ cursor: pointer;
+ font-weight: bold;
+ transition: 0.3s;
+}
+
+.resetButton:hover {
+ background-color: #cc0000;
+}
diff --git a/app/QuitarSancion/page.tsx b/app/QuitarSancion/page.tsx
index a092139..540d361 100644
--- a/app/QuitarSancion/page.tsx
+++ b/app/QuitarSancion/page.tsx
@@ -1,11 +1,51 @@
+"use client";
+import { useState } from "react";
import SearchUser from "../Components/SearchUser/searchUser";
+import styles from "./Page.module.css"; // importamos el css
export default function Page() {
+ const [sanciones] = useState([
+ {
+ id: "1",
+ nombre: "Jose Garcia",
+ mmotivo: "No cerrar sancion",
+ duracion: "2",
+ fecha_sancion: "10/09/2025 a las 02:45:26 PM",
+ utilizar_equipo: "13/09/2025",
+ },
+ ]);
return (
-
- Quitar Sanciones
-
+
+ Quitar Sanciones
+
+
+
+
+
+ | id |
+ Nombre |
+ Motivo Sancion |
+ Duracion (semanas) |
+ Fecha Sancion |
+ Podria utilizar el servicio hasta |
+
+
+
+ {sanciones.map((sancion, index) => (
+
+ | {sancion.id} |
+ {sancion.nombre} |
+ {sancion.mmotivo} |
+ {sancion.duracion} |
+ {sancion.fecha_sancion} |
+ {sancion.utilizar_equipo} |
+
+ ))}
+
+
+
+
);
}
-//IO
\ No newline at end of file
+//IO
diff --git a/app/Recibo/Page.module.css b/app/Recibo/Page.module.css
new file mode 100644
index 0000000..7b884cc
--- /dev/null
+++ b/app/Recibo/Page.module.css
@@ -0,0 +1,70 @@
+.tableContainer {
+ margin-top: 10px;
+ overflow-y: auto;
+ overflow-x: auto;
+ border-radius: 4px;
+ border: 1px solid #cfcfcf;
+ max-height: 430px;
+ scrollbar-color: rgb(1, 92, 184) rgba(0, 0, 0, 0);
+ background-color: #f9f9f9;
+ width: 100%;
+}
+
+.machineTable {
+ width: 100%;
+ border-collapse: collapse;
+ table-layout: auto;
+}
+
+.machineTable th,
+.machineTable td {
+ padding: 10px;
+ text-align: center;
+ border-bottom: 1px solid #cfcfcf;
+ word-wrap: break-word;
+ overflow-wrap: break-word;
+}
+
+.machineTable th {
+ position: sticky;
+ top: 0px;
+ background-color: rgb(1, 92, 184);
+ color: white;
+}
+
+.machineTable tr {
+ min-width: 400px;
+}
+
+.disponible {
+ display: flex;
+ width: 100%;
+ height: 100%;
+ background-color: green;
+ color: green;
+ font-weight: bold;
+}
+
+.ocupado {
+ color: red;
+ font-weight: bold;
+}
+
+.actions {
+ text-align: center;
+}
+
+.resetButton {
+ padding: 8px 16px;
+ background-color: #ff4d4d;
+ color: white;
+ border: none;
+ border-radius: 6px;
+ cursor: pointer;
+ font-weight: bold;
+ transition: 0.3s;
+}
+
+.resetButton:hover {
+ background-color: #cc0000;
+}
diff --git a/app/Recibo/page.tsx b/app/Recibo/page.tsx
index 3cffc70..15e2c46 100644
--- a/app/Recibo/page.tsx
+++ b/app/Recibo/page.tsx
@@ -1,13 +1,98 @@
-import SearchUser from "../Components/SearchUser/searchUser";
+"use client";
+import { useState } from "react";
+import styles from "./Page.module.css"; // importamos el css
+import SearchDateBetween from "../Components/SearchDateBetween/SearchDateBetween";
+import Toggle from "../Components/Toggle/Toggle";
export default function Page() {
+ const [reportes] = useState([
+ {
+ Servicio: "Plotter",
+ Total: "$1440.00",
+ },
+ ]);
+
+ const [recibos] = useState([
+ {
+ folio_recibo: "100255",
+ monto: "40.00",
+ fecha_recibo: "10/10/2025",
+ fecha_registro: "10/10/2025 05:32:20 pm",
+ usuario: "modulo1",
+ },
+ ]);
+
return (
-
- RECIBO
+
+ RECIBO
-
+
+
+
+
+
+
+ | Folio Recibo |
+ Monto |
+ Fecha Recibo |
+ Fecha Registro |
+ Usuario |
+
+
+
+ {recibos.map((recibo, index) => (
+
+ | {recibo.folio_recibo} |
+ {recibo.monto} |
+ {recibo.fecha_recibo} |
+ {recibo.fecha_registro} |
+ {recibo.usuario} |
+
+ ))}
+
+
+
+ >
+ ),
+ },
+
+ {
+ key: "2",
+ label: "Por Servicio",
+ content: (
+ <>
+
+
+
+
+
+ | Servicio |
+ Total |
+
+
+
+ {reportes.map((reporte, index) => (
+
+ | {reporte.Servicio} |
+ {reporte.Total} |
+
+ ))}
+
+
+
+ >
+ ),
+ },
+ ]}
+ />
-
);
}
-//IO
\ No newline at end of file
+//IO