# sumire ![image](https://cloud.checkthis.space/api/public/dl/q1hhzRq4?inline=true) Sistema de facturación electrónica para Ecuador con integración al SRI (Servicio de Rentas Internas). ## Características - **Creación de Facturas XML**: Generación de facturas electrónicas en formato XML según las especificaciones del SRI - **Firma Digital**: Firma electrónica de documentos XML con certificados digitales - **Envío al SRI**: Integración SOAP para enviar facturas al Servicio de Rentas Internas - **Gestión de Configuración**: Administración de configuraciones tributarias (RUC, establecimiento, punto de emisión, secuenciales) - **Validación Automática**: Validación de clave de acceso y datos tributarios - **Interfaz Moderna**: UI construida con Next.js, React y Tailwind CSS ## Tecnologías - **Framework**: [Next.js 16](https://nextjs.org/) - **UI**: React 19, [Tailwind CSS](https://tailwindcss.com/), [Radix UI](https://www.radix-ui.com/) - **Base de Datos**: SQLite con [Prisma ORM](https://www.prisma.io/) - **Firma Electrónica**: [ec-sri-invoice-signer](https://www.npmjs.com/package/ec-sri-invoice-signer) - **SOAP Client**: [soap](https://www.npmjs.com/package/soap) - **Validación**: [Zod](https://zod.dev/) ## Requisitos Previos - Node.js 20 o superior - npm o pnpm ## Instalación 1. Clonar el repositorio: ```bash git clone cd sumire ``` 2. Instalar dependencias: ```bash npm install ``` 3. Configurar la base de datos: ```bash npx prisma generate npx prisma db push ``` 4. Configurar variables de entorno: Crear un archivo `.env` en la raíz del proyecto: ```env DATABASE_URL="file:./dev.db" ``` ## Uso ### Desarrollo ```bash npm run dev ``` La aplicación estará disponible en [http://localhost:3000](http://localhost:3000) ### Producción ```bash npm run build npm start ``` ## Flujo de Trabajo 1. **Configuración Tributaria** (`/configuracion`): - Configurar RUC, razón social, dirección matriz - Definir establecimiento y punto de emisión - Gestionar secuenciales de facturación 2. **Crear Factura** (`/factura`): - Llenar información del comprador - Agregar detalles de productos/servicios - Generar XML de la factura 3. **Firmar Factura** (`/firmar`): - Subir archivo XML de la factura - Subir certificado digital (.p12) - Firmar electrónicamente el documento 4. **Enviar al SRI** (`/enviar-sri`): - Configurar parámetros del servicio SOAP del SRI - Enviar factura firmada - Monitorear estado de autorización ## Estructura del Proyecto ``` sumire/ ├── prisma/ │ └── schema.prisma # Esquema de base de datos ├── src/ │ ├── app/ │ │ ├── api/ # API Routes │ │ ├── factura/ # Página de creación de facturas │ │ ├── firmar/ # Página de firma digital │ │ ├── enviar-sri/ # Página de envío al SRI │ │ └── configuracion/ # Página de configuración │ ├── components/ │ │ ├── factura/ # Componentes de facturación │ │ ├── firmar/ # Componentes de firma │ │ ├── envio-sri/ # Componentes de envío SRI │ │ └── ui/ # Componentes UI reutilizables │ ├── hooks/ # Custom React hooks │ ├── lib/ # Utilidades y generadores │ ├── types/ # Definiciones de TypeScript │ └── utils/ # Funciones auxiliares └── package.json ``` ## Base de Datos El proyecto utiliza SQLite para el almacenamiento local. Para modificar el esquema: 1. Editar `prisma/schema.prisma` 2. Ejecutar `npx prisma db push` ## Licencia Este proyecto es de código privado. ## Notas Importantes - Este sistema está diseñado específicamente para la normativa tributaria de Ecuador - Se requiere un certificado digital válido emitido por una entidad certificadora autorizada por el SRI - Asegúrate de configurar correctamente el ambiente (pruebas/producción) antes de enviar facturas reales