"use client"; import React, { useState } from "react"; import Link from "next/link"; import { Search, //FilePdf, //Refresh, //Upload, ChevronLeft, //ErrorCircle, CheckCircle, } from "@boxicons/react"; // Interfaces para los datos de las listas interface EmpresaItem { rut: string; razonSocial: string; giro: string; correo: string; ultimoContacto: string; } interface CotizacionItem { cotizacion: string; contratosAsociados: string; tipoCotizacion: string; creacion: string; estadoCotizacion: string; valor: string; idTipoCurso: string; condicionCotizacion: string; montoDescto: string; } interface ContratoItem { contrato: string; firmaEstado: number; url: string; cursoInfo: string; valor: string; autorizacionSSEE?: string; } interface DocumentoItem { detalle: string; numeroInterno?: string; fechaSubida: string; tipoDocumento?: string; codInscripcion?: string; responsable: string; } interface AlumnoItem { rut: string; nombre: string; email: string; } export default function InfoEmpresasPage() { // --- ESTADOS DE VISTAS (visibilidad de secciones) --- const [headEmpVisible, setHeadEmpVisible] = useState(true); const [divMisEmpresasVisible, setDivMisEmpresasVisible] = useState(true); const [volver1Visible, setVolver1Visible] = useState(false); const [divValorVisible, setDivValorVisible] = useState(false); const [divCardInfoVisible, setDivCardInfoVisible] = useState(false); const [divListaCotizacionesVisible, setDivListaCotizacionesVisible] = useState(false); const [divDetalleVisible, setDivDetalleVisible] = useState(false); const [btnSubirContratosVisible, setBtnSubirContratosVisible] = useState(false); const [divDetalleContratosVisible, setDivDetalleContratosVisible] = useState(false); const [divDetalleOcVisible, setDivDetalleOcVisible] = useState(false); const [divDetalleSncVisible, setDivDetalleSncVisible] = useState(false); const [divDetalleUpDocVisible, setDivDetalleUpDocVisible] = useState(false); const [divDetalleUpDocDetalleVisible, setDivDetalleUpDocDetalleVisible] = useState(false); // --- ESTADOS DE VALORES Y CAMPOS --- const [valorNeto, setValorNeto] = useState(""); const [valorDescuento, setValorDescuento] = useState(""); const [valorTotal, setValorTotal] = useState(""); const [idCotizacionV2, setIdCotizacionV2] = useState("0"); const [empresaInfo, setEmpresaInfo] = useState({ rut: "76.456.789-0", razonSocial: "Empresa de Servicios SpA", giro: "Capacitaciones y Servicios", direccion: "Av. Providencia 1234", comuna: "Providencia", fono: "+56 2 2345 6789", correo: "contacto@empresa.cl", contacto: "Juan Pérez", }); const [contIDV2, setContIDV2] = useState(""); const [numInterDoc, setNumInterDoc] = useState(""); // --- ESTADOS DE MODALES --- const [isLoading, setIsLoading] = useState(false); const [modalRespuesta, setModalRespuesta] = useState<{ show: boolean; errorMsg: string; okMsg: string; }>({ show: false, errorMsg: "", okMsg: "" }); const [modalAlerta, setModalAlerta] = useState({ show: false, message: "" }); const [modalAlumnos, setModalAlumnos] = useState({ show: false, data: [] as AlumnoItem[] }); // --- DATOS SIMULADOS DE LISTAS --- const [misEmpresas] = useState([ { rut: "76.456.789-0", razonSocial: "Empresa de Servicios SpA", giro: "Capacitaciones y Servicios", correo: "contacto@empresa.cl", ultimoContacto: "2026-02-15", }, ]); const [cotizaciones] = useState([ { cotizacion: "COT-2026-001", contratosAsociados: "2", tipoCotizacion: "Corporativa", creacion: "2026-01-10", estadoCotizacion: "Aprobada", valor: "$ 1.500.000", idTipoCurso: "1", condicionCotizacion: "Credito", montoDescto: "100000", }, ]); const [contratos] = useState([ { contrato: "CNT-101", firmaEstado: 1, url: "#", cursoInfo: "101 INGLES INTENSIVO DIURNO SEDE CENTRAL 2026-02-20", valor: "$ 750.000", autorizacionSSEE: "SSEE-99", }, { contrato: "CNT-102", firmaEstado: 0, url: "#", cursoInfo: "102 INGLES AVANZADO VESPERTINO SEDE CENTRAL 2026-02-22", valor: "$ 750.000", autorizacionSSEE: "SSEE-100", }, ]); const [comprobantesOC] = useState([ { detalle: "comprobante_pago_1.pdf", numeroInterno: "INT-882", fechaSubida: "2026-02-18", tipoDocumento: "Transferencia", responsable: "AdminUser", }, ]); const [inscripcionesSNC] = useState([ { detalle: "sence_doc_1.pdf", codInscripcion: "SENCE-123456", fechaSubida: "2026-02-19", responsable: "SenceUser", }, ]); // --- MANEJADORES DE EVENTOS --- const handleVerEmpresa = (rut: string) => { setIsLoading(true); setTimeout(() => { setIsLoading(false); setHeadEmpVisible(false); setDivMisEmpresasVisible(false); setVolver1Visible(true); setDivValorVisible(false); setDivCardInfoVisible(true); setDivListaCotizacionesVisible(true); setValorNeto("$ 1.600.000"); setValorDescuento("$ 100.000"); setValorTotal("$ 1.500.000"); }, 600); }; const handleVolverEmp = () => { setHeadEmpVisible(true); setDivMisEmpresasVisible(true); setVolver1Visible(false); setDivValorVisible(false); setDivCardInfoVisible(false); setDivListaCotizacionesVisible(false); setDivDetalleVisible(false); }; const handleDetalleCotizacion = (cotz: CotizacionItem) => { setIsLoading(true); setTimeout(() => { setIsLoading(false); setIdCotizacionV2(cotz.cotizacion); setDivListaCotizacionesVisible(false); setDivDetalleVisible(true); setDivValorVisible(true); setBtnSubirContratosVisible(true); setDivDetalleContratosVisible(true); setDivDetalleOcVisible(true); setDivDetalleSncVisible(true); }, 600); }; const handleVolverCotz = () => { setDivDetalleVisible(false); setDivValorVisible(false); setDivListaCotizacionesVisible(true); }; const handleSubirContratos = () => { setDivDetalleContratosVisible(false); setDivDetalleOcVisible(false); setDivDetalleSncVisible(false); setDivDetalleUpDocVisible(true); }; const handleVerParticipantes = (contratoId: string) => { setModalAlumnos({ show: true, data: [ { rut: "18.123.456-7", nombre: "Juan Pérez", email: "jperez@correo.cl" }, { rut: "19.876.543-2", nombre: "María González", email: "mgonzalez@correo.cl" }, ], }); }; const handleSubirArchivoFinal = () => { setIsLoading(true); setTimeout(() => { setIsLoading(false); setModalRespuesta({ show: true, errorMsg: "", okMsg: "Documento subido con éxito a la plataforma.", }); }, 1000); }; return ( <> {/* ESTILOS EMBEDIDOS ADAPTADOS */}
{/* CABECERA PRINCIPAL */} {headEmpVisible && (

Informacion de empresas

)} {/* LISTADO DE MIS EMPRESAS */} {divMisEmpresasVisible && (
Rut Razón social Giro Email Fecha del último contacto
{misEmpresas.map((emp, index) => (
{emp.rut} {emp.razonSocial} {emp.giro} {emp.correo} {emp.ultimoContacto}
))}
)} {/* BOTÓN DE VOLVER A OTRA EMPRESA */} {volver1Visible && (

Cotizaciones de la empresa

)} {/* CUADRO RESUMEN VALORES */} {divValorVisible && (

Total Neto

Descuento

Total

)} {/* TARJETA DE INFORMACIÓN DE EMPRESA (LATERAL IZQUIERDA) */} {divCardInfoVisible && (
Empresa
R.U.T.
{empresaInfo.rut}
Razon Social
{empresaInfo.razonSocial}
Giro
{empresaInfo.giro}
Direccion
{empresaInfo.direccion}, {empresaInfo.comuna}
Fono
{empresaInfo.fono}
Email
{empresaInfo.correo}
Contacto
{empresaInfo.contacto}
)} {/* LISTA DE COTIZACIONES DE LA EMPRESA */} {divListaCotizacionesVisible && (
Cotizacion Contratos Tipo Creacion Observacion Valor total
{cotizaciones.map((cot, index) => (
{cot.cotizacion} {cot.contratosAsociados} {cot.tipoCotizacion} {cot.creacion} {cot.estadoCotizacion} {cot.valor}
))}
)} {/* VISTA CONTENEDORA DE DETALLES Y ACCIONES DE COTIZACIÓN */} {divDetalleVisible && (
{/* BARRA ACCIONES COTIZACIÓN */} {btnSubirContratosVisible && (

Cotización: {idCotizacionV2}

)} {/* TABLA DE CONTRATOS */} {divDetalleContratosVisible && (
Ver contrato Recargar contrato Contrato Estado Curso Participantes Valor
{contratos.map((c, index) => (
{/* */} {c.contrato} {c.firmaEstado === 1 ? "CONTRATO FIRMADO" : "CONTRATO SIN FIRMAR"} {c.cursoInfo} {c.valor}
))}
)} {/* SECCIÓN COMPROBANTE DE PAGO (OC) */} {divDetalleOcVisible && (
Número Interno Fecha de Subida Tipo Documento Responsable
{comprobantesOC.map((oc, index) => (
Ver {oc.numeroInterno} {oc.fechaSubida} {oc.tipoDocumento} {oc.responsable}
))}
)} {/* SECCIÓN INSCRIPCIÓN SENCE */} {divDetalleSncVisible && (
Inscripción sence Fecha de subida Responsable
{inscripcionesSNC.map((snc, index) => (
Ver {snc.codInscripcion} {snc.fechaSubida} {snc.responsable}
))}
)} {/* PANEL DE CARGA DE DOCUMENTOS */} {divDetalleUpDocVisible && (
Contratos
Contrato Estado
{contratos.map((c, index) => (
{c.contrato} {c.firmaEstado === 1 ? "CONTRATO FIRMADO" : "CONTRATO SIN FIRMAR"}
))}
{/* SUB-FORMULARIO DE CARGA */} {divDetalleUpDocDetalleVisible && (
Numero Contrato setContIDV2(e.target.value)} /> Numero Documento setNumInterDoc(e.target.value)} />
)}
)}
)}
{/* --- MODAL POPUP DE RESPUESTA / ERROR / OK --- */} {modalRespuesta.show && (
Empresas
{modalRespuesta.errorMsg && (
{/* */} {modalRespuesta.errorMsg}
)} {modalRespuesta.okMsg && (
{modalRespuesta.okMsg}
)}
)} {/* --- MODAL PARTICIPANTES (GRID ALUMNOS) --- */} {modalAlumnos.show && (
Listado de Alumnos
{modalAlumnos.data.map((al, idx) => ( ))}
RUT Nombre Correo
{al.rut} {al.nombre} {al.email}
)} {/* --- MODAL MENSAJE ALERTA --- */} {modalAlerta.show && (
Módulo Venta - Empresa
{modalAlerta.message}
)} {/* --- MODAL MENSAJE CARGANDO --- */} {isLoading && (
Loading...

Procesando la información...

)} ); }