|
|
@@ -1,36 +1,134 @@
|
|
|
-This is a [Next.js](https://nextjs.org) project bootstrapped with [`create-next-app`](https://nextjs.org/docs/app/api-reference/cli/create-next-app).
|
|
|
+# Sumire
|
|
|
|
|
|
-## Getting Started
|
|
|
+
|
|
|
|
|
|
-First, run the development server:
|
|
|
+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 <repository-url>
|
|
|
+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
|
|
|
-# or
|
|
|
-yarn dev
|
|
|
-# or
|
|
|
-pnpm dev
|
|
|
-# or
|
|
|
-bun dev
|
|
|
```
|
|
|
|
|
|
-Open [http://localhost:3000](http://localhost:3000) with your browser to see the result.
|
|
|
+La aplicación estará disponible en [http://localhost:3000](http://localhost:3000)
|
|
|
+
|
|
|
+### Producción
|
|
|
+
|
|
|
+```bash
|
|
|
+npm run build
|
|
|
+npm start
|
|
|
+```
|
|
|
|
|
|
-You can start editing the page by modifying `app/page.tsx`. The page auto-updates as you edit the file.
|
|
|
+## Flujo de Trabajo
|
|
|
|
|
|
-This project uses [`next/font`](https://nextjs.org/docs/app/building-your-application/optimizing/fonts) to automatically optimize and load [Geist](https://vercel.com/font), a new font family for Vercel.
|
|
|
+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
|
|
|
+```
|
|
|
|
|
|
-## Learn More
|
|
|
+## Base de Datos
|
|
|
|
|
|
-To learn more about Next.js, take a look at the following resources:
|
|
|
+El proyecto utiliza SQLite para el almacenamiento local. Para modificar el esquema:
|
|
|
|
|
|
-- [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API.
|
|
|
-- [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial.
|
|
|
+1. Editar `prisma/schema.prisma`
|
|
|
+2. Ejecutar `npx prisma db push`
|
|
|
|
|
|
-You can check out [the Next.js GitHub repository](https://github.com/vercel/next.js) - your feedback and contributions are welcome!
|
|
|
+## Licencia
|
|
|
|
|
|
-## Deploy on Vercel
|
|
|
+Este proyecto es de código privado.
|
|
|
|
|
|
-The easiest way to deploy your Next.js app is to use the [Vercel Platform](https://vercel.com/new?utm_medium=default-template&filter=next.js&utm_source=create-next-app&utm_campaign=create-next-app-readme) from the creators of Next.js.
|
|
|
+## Notas Importantes
|
|
|
|
|
|
-Check out our [Next.js deployment documentation](https://nextjs.org/docs/app/building-your-application/deploying) for more details.
|
|
|
+- 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
|