Skip to content

Plan de Implementación

Guía de Implementación Sin Estimaciones de Tiempo

Este plan detalla todas las actividades necesarias para implementar la integración completa con Facturatech, desde la base de datos hasta el módulo visual, pasando por las diferentes fases de credenciales (C1 → C2 → C3).


Logo de starlight

C1 - Demo ERP

Estado Actual
Credenciales ya obtenidas

Propósito: Desarrollo y validación de estructura XML
Limitación: Solo validación, sin firma real

C2 - Demo con Consumo

Próximo Paso
Solicitar al área de soporte WS

Propósito: Pruebas con rate limiting real
Responsable: Líder técnico o PO

C3 - Producción

Meta Final
Emisión real ante DIAN

Propósito: Operación productiva
Requisito: Validación exitosa en C2


Actividad 1.1: Diseño del Esquema de Base de Datos

Section titled “Actividad 1.1: Diseño del Esquema de Base de Datos”

Objetivo: Crear la estructura completa de tablas para almacenar nóminas electrónicas y su trazabilidad.

Componentes principales:

CREATE TABLE nomina_electronica (
id INT PRIMARY KEY AUTO_INCREMENT,
empresa_id INT NOT NULL,
empleado_id INT NOT NULL,
periodo_id INT NOT NULL,
-- Identificación del documento
prefijo VARCHAR(10) NOT NULL,
consecutivo VARCHAR(20) NOT NULL,
numero VARCHAR(30) NOT NULL UNIQUE,
tipo_documento ENUM(
'INDIVIDUAL',
'NOVEDAD',
'AJUSTE_REEMPLAZO',
'AJUSTE_ELIMINACION'
) DEFAULT 'INDIVIDUAL',
-- Relaciones con documentos previos
nomina_original_id INT,
cune_original VARCHAR(64),
-- Estado del proceso
estado ENUM(
'PENDIENTE_ENVIO',
'EN_COLA',
'ENVIADO',
'EN_PROCESO',
'AUTORIZADO',
'ERROR',
'DESCARGADO',
'ELIMINADA'
) NOT NULL DEFAULT 'PENDIENTE_ENVIO',
-- Tracking Facturatech
transaction_id VARCHAR(255),
cune VARCHAR(64),
-- Almacenamiento de documentos
xml_original MEDIUMBLOB,
xml_firmado MEDIUMBLOB,
pdf_documento MEDIUMBLOB,
xml_firmado_hash VARCHAR(64),
xml_firmado_path VARCHAR(500),
-- Valores para consulta rápida
devengados_total DECIMAL(15,2),
deducciones_total DECIMAL(15,2),
comprobante_total DECIMAL(15,2),
-- Fechas del proceso
fecha_liquidacion DATE NOT NULL,
periodo_inicio DATE NOT NULL,
periodo_fin DATE NOT NULL,
fecha_envio DATETIME,
fecha_autorizacion DATETIME,
fecha_descarga_xml DATETIME,
fecha_descarga_pdf DATETIME,
-- Control de errores
intentos_envio INT DEFAULT 0,
intentos_consulta INT DEFAULT 0,
ultimo_error TEXT,
detalle_error TEXT,
-- Flags de control
requiere_atencion BOOLEAN DEFAULT FALSE,
-- Auditoría
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
created_by INT,
updated_by INT,
-- Índices
INDEX idx_empresa (empresa_id),
INDEX idx_empleado (empleado_id),
INDEX idx_periodo (periodo_id),
INDEX idx_estado (estado),
INDEX idx_numero (numero),
INDEX idx_transaction (transaction_id),
INDEX idx_cune (cune),
INDEX idx_fecha_liquidacion (fecha_liquidacion),
FOREIGN KEY (empresa_id) REFERENCES empresas(id),
FOREIGN KEY (empleado_id) REFERENCES empleados(id),
FOREIGN KEY (periodo_id) REFERENCES periodos_nomina(id),
FOREIGN KEY (nomina_original_id) REFERENCES nomina_electronica(id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

Entregables:

  • Script SQL completo de creación de tablas
  • Diagrama ER de relaciones
  • Documentación de campos

Actividad 1.2: Stored Procedures y Functions

Section titled “Actividad 1.2: Stored Procedures y Functions”

Objetivo: Implementar lógica de negocio reutilizable a nivel de base de datos.

Procedimientos a crear:

-- Encolar nómina para procesamiento
DELIMITER $$
CREATE PROCEDURE sp_encolar_nomina(
IN p_nomina_id INT,
IN p_prioridad ENUM('ALTA', 'MEDIA', 'BAJA')
)
BEGIN
INSERT INTO nomina_electronica_cola (nomina_electronica_id, prioridad)
VALUES (p_nomina_id, p_prioridad)
ON DUPLICATE KEY UPDATE prioridad = p_prioridad;
END$$
-- Actualizar estado de nómina
CREATE PROCEDURE sp_actualizar_estado_nomina(
IN p_nomina_id INT,
IN p_estado VARCHAR(50),
IN p_transaction_id VARCHAR(255),
IN p_mensaje TEXT
)
BEGIN
UPDATE nomina_electronica
SET estado = p_estado,
transaction_id = COALESCE(p_transaction_id, transaction_id),
updated_at = NOW()
WHERE id = p_nomina_id;
-- Registrar en auditoría
INSERT INTO nomina_electronica_auditoria (
nomina_electronica_id,
accion,
descripcion
) VALUES (
p_nomina_id,
'CAMBIO_ESTADO',
CONCAT('Estado: ', p_estado, '. ', COALESCE(p_mensaje, ''))
);
END$$
-- Obtener siguiente consecutivo
CREATE FUNCTION fn_siguiente_consecutivo(
p_empresa_id INT,
p_prefijo VARCHAR(10)
) RETURNS VARCHAR(20)
DETERMINISTIC
BEGIN
DECLARE v_ultimo INT;
SELECT MAX(CAST(consecutivo AS UNSIGNED)) INTO v_ultimo
FROM nomina_electronica
WHERE empresa_id = p_empresa_id AND prefijo = p_prefijo;
RETURN LPAD(COALESCE(v_ultimo, 0) + 1, 5, '0');
END$$
DELIMITER ;

Entregables:

  • Archivo SQL con SP y functions
  • Documentación de uso

Actividad 1.3: Scripts de Migración y Seeders

Section titled “Actividad 1.3: Scripts de Migración y Seeders”

Objetivo: Preparar datos iniciales y scripts de migración.

Tareas:

  • Script de migración versionado
  • Seeders para datos de prueba
  • Plan de rollback

Objetivo: Organizar el código backend según arquitectura propuesta.

Estructura:

application/
├── models/
│ └── Nomina/
│ ├── Electronica.php
│ └── ElectronicaTable.php
├── services/
│ └── Facturatech/
│ ├── SoapClient.php
│ ├── XMLGenerator.php
│ ├── XMLValidator.php
│ ├── QueueManager.php
│ ├── StatusPoller.php
│ └── DownloadManager.php
└── library/
└── Dataemunah/
└── Facturatech/
├── Config.php
├── RateLimiter.php
└── Logger.php

Objetivo: Implementar la clase base para comunicación SOAP.

Archivo: application/services/Facturatech/SoapClient.php

Métodos principales:

  • uploadDocument($xmlBase64): array
  • documentStatus($transaccionID): array
  • downloadXML($prefijo, $folio): array
  • downloadPDF($prefijo, $folio): array
  • downloadCUNE($prefijo, $folio): array

Características:

  • Manejo automático de credenciales
  • Logging de requests/responses
  • Retry logic con backoff exponencial
  • Manejo de errores SOAP

Objetivo: Crear servicio que genere XMLs según estructura DIAN.

Archivo: application/services/Facturatech/XMLGenerator.php

Métodos:

public function generarNominaIndividual($datosNomina): string
public function generarNominaNovedadmonetaria($nominaOriginal, $correcciones): string
public function generarAjusteReemplazo($nominaOriginal, $datosCorregidos): string
public function generarAjusteEliminacion($nominaOriginal, $motivo): string

Validaciones incluidas:

  • Estructura XML válida
  • Namespaces correctos
  • Cálculo automático de TiempoLaborado
  • Generación de todos los nodos mandatorios

Objetivo: Validar XMLs contra esquema XSD.

Archivo: application/services/Facturatech/XMLValidator.php

Validaciones:

  • Estructura contra XSD DIAN
  • Totales cuadran (±2.00 tolerancia)
  • Formatos de fecha/hora correctos
  • Códigos de tablas válidos
  • Campos mandatorios presentes
  • Tipos de datos correctos

Método principal:

public function validar($xmlContent): array
// Retorna: ['valido' => bool, 'errores' => array]

Actividad 2.5: Sistema de Cola (QueueManager)

Section titled “Actividad 2.5: Sistema de Cola (QueueManager)”

Objetivo: Implementar procesamiento por lotes respetando rate limiting.

Archivo: application/services/Facturatech/QueueManager.php

Características:

  • Procesar 10 nóminas cada 10 segundos
  • Priorización de nóminas
  • Reintentos automáticos (máx 3)
  • Logging detallado

Métodos principales:

public function encolarNomina($nominaId, $prioridad = 'MEDIA'): bool
public function procesarSiguienteLote(): array
public function obtenerEstadoCola(): array

Actividad 2.6: Sistema de Polling (StatusPoller)

Section titled “Actividad 2.6: Sistema de Polling (StatusPoller)”

Objetivo: Consultar estado hasta obtener autorización.

Archivo: application/services/Facturatech/StatusPoller.php

Características:

  • Polling con backoff progresivo (3s → 5s → 10s)
  • Timeout configurable (default: 10 minutos)
  • Actualización automática de estados en BD

Método principal:

public function esperarAutorizacion($transactionID): array
// Retorna cuando estado = 200 o timeout

Actividad 2.7: Gestor de Descargas (DownloadManager)

Section titled “Actividad 2.7: Gestor de Descargas (DownloadManager)”

Objetivo: Descargar y almacenar documentos firmados.

Archivo: application/services/Facturatech/DownloadManager.php

Métodos:

public function descargarYAlmacenarXML($prefijo, $folio): bool
public function descargarYAlmacenarPDF($prefijo, $folio): bool
public function obtenerCUNE($prefijo, $folio): string

Responsabilidades:

  • Descargar documentos
  • Calcular hash SHA256
  • Comprimir archivos (gzip)
  • Almacenar en filesystem + BD
  • Validar integridad

Objetivo: Controlar velocidad de peticiones.

Archivo: library/Dataemunah/Facturatech/RateLimiter.php

Implementación:

  • Límite: 20 requests / 10 segundos
  • Cache de timestamps
  • Espera automática al alcanzar límite

Objetivo: Gestionar credenciales y configuración.

Archivo: library/Dataemunah/Facturatech/Config.php

Métodos:

public static function getWsdl(): string
public static function getUsuario(): string
public static function getPassword(): string // SHA256
public static function isProduccion(): bool

Actividad 3.1: Integración en Menú Lateral

Section titled “Actividad 3.1: Integración en Menú Lateral”

Objetivo: Agregar entrada en menú de empresa.

Ubicación: Menú lateral contextual de empresa

Estructura propuesta:

Empresa XYZ
├── Dashboard
├── Empleados
├── Nómina
│ ├── Liquidación
│ ├── Reportes
│ └── Nómina Electrónica ← NUEVO
│ ├── Dashboard
│ ├── Listado
│ ├── Emitir
│ ├── Cola
│ └── Reportes
└── Configuración

Permisos:

  • Solo visible para usuarios con rol adecuado
  • Validar acceso por empresa

Actividad 3.2: Dashboard de Nómina Electrónica

Section titled “Actividad 3.2: Dashboard de Nómina Electrónica”

Ruta: /empresa/{empresaId}/nomina-electronica/dashboard

Componentes:

Resumen Numérico

  • Total emitidas en el mes
  • Pendientes de envío
  • En proceso
  • Autorizadas
  • Con errores

Gráficos

  • Línea de tiempo de emisiones
  • Distribución por estado (pie)
  • Tasa de éxito/error
  • Tiempo promedio de autorización

Alertas

  • Nóminas con error (lista)
  • Cola muy grande (> 50)
  • Timeouts recientes
  • Rate limit alcanzado

Acciones Rápidas

  • Botón: Emitir período actual
  • Botón: Ver cola
  • Botón: Buscar por empleado
  • Botón: Descargar reporte

Actividad 3.3: Vista de Listado de Nóminas

Section titled “Actividad 3.3: Vista de Listado de Nóminas”

Ruta: /empresa/{empresaId}/nomina-electronica/listado

Funcionalidades:

Filtros:

  • Estado (dropdown multi-select)
  • Período (date range)
  • Empleado (autocomplete)
  • Tipo de documento
  • Fecha de emisión

Tabla:

  • Paginación (50 por página)
  • Ordenamiento por columnas
  • Columnas:
    • Número
    • Empleado
    • Período
    • Tipo (badge)
    • Estado (badge con color)
    • Fecha emisión
    • Total a pagar
    • Acciones (dropdown)

Acciones por fila:

  • Ver detalle
  • Descargar XML
  • Descargar PDF
  • Crear novedad (si autorizada y no tiene)
  • Crear ajuste (si autorizada)
  • Eliminar (si autorizada y no eliminada)

Búsqueda global:

  • Por número de documento
  • Por CUNE
  • Por nombre de empleado

Ruta: /empresa/{empresaId}/nomina-electronica/detalle/{id}

Secciones (tabs):

  • Número del documento
  • CUNE (copiable)
  • Estado actual (badge grande)
  • TransactionID
  • Tipo de documento
  • Fechas clave (timeline visual)

Acciones disponibles (botones superiores):

  • Crear novedad
  • Crear ajuste
  • Eliminar
  • Reimprimir PDF
  • Enviar por email

Actividad 3.5: Formulario de Emisión Masiva

Section titled “Actividad 3.5: Formulario de Emisión Masiva”

Ruta: /empresa/{empresaId}/nomina-electronica/emitir

Flujo:

  1. Seleccionar Período

    • Dropdown con períodos disponibles
    • Filtrar solo períodos con liquidación completa
  2. Lista de Empleados

    • Tabla con checkbox
    • Mostrar:
      • Nombre
      • Documento
      • Cargo
      • Total a pagar
      • Estado de liquidación
    • Opciones:
      • Seleccionar todos
      • Filtrar por departamento/área
  3. Validaciones Previas

    • Verificar que no tengan nómina emitida
    • Validar totales
    • Validar datos completos
    • Mostrar advertencias si las hay
  4. Confirmación

    • Resumen: X nóminas a emitir
    • Total general a pagar
    • Botón: “Emitir y Encolar”
  5. Procesamiento

    • Barra de progreso
    • Lista de nóminas procesándose
    • Estado en tiempo real
    • Botón: “Ver Cola” (redirige)
  6. Resultado Final

    • Resumen de emisión:
      • Exitosas
      • Encoladas
      • Con error
    • Lista detallada de cada resultado
    • Botón: “Ver Listado”
    • Botón: “Descargar Reporte”

Ruta: /empresa/{empresaId}/nomina-electronica/novedad/{id}

Secciones:

1. Información de Nómina Original (readonly):

  • Mostrar todos los datos en formato resumen
  • Destacar valores monetarios

2. Correcciones (editable):

  • Formulario con:
    • Sueldo trabajado
    • Lista de devengados (editar valores)
    • Lista de deducciones (editar valores)
  • Cálculo automático de nuevos totales
  • Diferencia con original (destacada)

3. Justificación:

  • Campo de notas (obligatorio, mín 20 caracteres)
  • Motivo de la corrección

4. Vista Previa:

  • Botón “Vista Previa”
  • Modal con:
    • Comparación lado a lado (antes/después)
    • Cambios destacados
    • Nuevo XML (preview)

5. Confirmación y Envío:

  • Checkbox: “Confirmo que los valores son correctos”
  • Botón: “Generar y Enviar Novedad”
  • Loading state durante proceso
  • Redirect a detalle de nueva nómina

Actividad 3.7: Formulario de Ajuste de Reemplazo

Section titled “Actividad 3.7: Formulario de Ajuste de Reemplazo”

Ruta: /empresa/{empresaId}/nomina-electronica/ajuste/{id}

Restricción: Solo editar información NO monetaria

Campos editables:

  • Datos personales del trabajador:
    • Nombres
    • Apellidos
    • Tipo de documento
    • Número de documento
  • Datos laborales:
    • Tipo de contrato
    • Cargo
    • Fechas del período
  • Datos de pago:
    • Banco
    • Tipo de cuenta
    • Número de cuenta
  • Ubicación:
    • Dirección

Bloqueado (readonly):

  • Todos los valores monetarios
  • Devengados
  • Deducciones
  • Totales

Advertencia visible:

Flujo de confirmación:

  1. Editar campos
  2. Vista previa de cambios
  3. Confirmación explícita
  4. Generación y envío

Ruta: /empresa/{empresaId}/nomina-electronica/eliminar/{id}

Advertencia prominente:

Formulario:

1. Información del Documento (readonly):

  • Mostrar datos completos de la nómina
  • Empleado, período, valores

2. Justificación de Eliminación:

  • Motivo detallado (textarea, obligatorio, mín 100 caracteres)
  • Ejemplos de motivos válidos:
    • Error en liquidación detectado post-autorización
    • Duplicado emitido por error
    • Empleado no corresponde
    • etc.

3. Autorización:

  • Campo: “Autorizado por” (nombre del responsable, obligatorio)
  • Campo: “Cargo del autorizador”

4. Confirmación de Seguridad:

  • Usuario debe escribir exactamente: CONFIRMO ELIMINACION
  • Campo de texto que debe coincidir

5. Envío:

  • Botón deshabilitado hasta cumplir todos los requisitos
  • Botón: “Eliminar Documento” (rojo)
  • Doble confirmación (modal)

Después de eliminar:

  • Registrar en auditoría
  • Notificar a administradores
  • Generar reporte de eliminación
  • Redirect a listado

Actividad 3.9: Monitor de Cola en Tiempo Real

Section titled “Actividad 3.9: Monitor de Cola en Tiempo Real”

Ruta: /empresa/{empresaId}/nomina-electronica/cola

Funcionalidad principal: Monitoreo en tiempo real del procesamiento

Secciones:

1. Resumen Numérico (cards):

  • Total en cola
  • Procesando ahora
  • Completadas (sesión actual)
  • Errores (sesión actual)

2. Progreso General:

  • Barra de progreso animada
  • Porcentaje completado
  • Tiempo estimado restante
  • Velocidad actual (nóminas/min)

3. Estado Actual:

  • Indicador: “Procesando lote X de Y”
  • Última operación: timestamp
  • Próxima ejecución: countdown

4. Lista de Nóminas en Cola:

  • Lista ordenada por prioridad
  • Mostrar: empleado, prioridad, tiempo en cola
  • Actualización automática

Actualización:

  • Auto-refresh cada 5 segundos
  • Notificaciones en tiempo real (opcional: WebSockets)
  • Sonido al completar lote (opcional)

Acciones:

  • Pausar cola
  • Reanudar cola
  • Limpiar completadas
  • Exportar log

Ruta: /empresa/{empresaId}/nomina-electronica/reportes

Reportes disponibles:

Resumen Mensual

  • Total emitidas por mes
  • Valores totales pagados
  • Distribución por estado
  • Comparativa mes anterior

Exportar: PDF, Excel

Estadísticas de Emisión

  • Tasa de éxito histórica
  • Tiempo promedio de autorización
  • Errores más comunes
  • Performance por período

Exportar: PDF, Excel

Por Empleado

  • Nóminas emitidas por empleado
  • Histórico de pagos
  • Novedades y ajustes
  • Documentos descargables

Exportar: Excel, CSV

Auditoría

  • Log de eliminaciones
  • Novedades realizadas
  • Ajustes aplicados
  • Usuarios que ejecutaron acciones

Exportar: PDF, Excel

Filtros globales:

  • Rango de fechas
  • Empleado específico
  • Tipo de documento
  • Estado

Actividad 4.1: Finalización de Desarrollo con C1

Section titled “Actividad 4.1: Finalización de Desarrollo con C1”

Objetivo: Completar todo el desarrollo usando credenciales C1 actuales.

Validaciones:

  • Generador XML produce XMLs válidos
  • Validador detecta todos los errores
  • Cliente SOAP conecta sin errores
  • Sistema de cola funciona localmente
  • Rate limiter funciona correctamente
  • Todas las vistas renderizar sin errores
  • Flujos completos end-to-end funcionan

Criterio de completitud: Todo el código implementado y funcionando en ambiente C1


Actividad 4.2: Solicitud de Credenciales C2

Section titled “Actividad 4.2: Solicitud de Credenciales C2”

Objetivo: Obtener credenciales C2 del área de soporte WS de Facturatech.

Responsable: Líder técnico o Product Owner

Información a enviar:

  • Razón social: Conectera, Fábrica de Tecnologías
  • NIT: [Completar]
  • Contacto técnico: [Nombre y email]
  • Teléfono de contacto
  • Propósito: Pruebas pre-productivas con consumo real
  • Estado actual: Desarrollo completo en C1

Canal: Email a soporte WS de Facturatech


Actividad 4.3: Configuración de Credenciales C2

Section titled “Actividad 4.3: Configuración de Credenciales C2”

Objetivo: Integrar credenciales C2 en el sistema.

Tareas:

  • Actualizar application.ini con credenciales C2
  • Crear variable de ambiente para C2
  • Actualizar clase Config para soportar C2
  • Documentar diferencias entre C1 y C2
  • Probar conexión con C2

Validación:

  • Script de test de conexión exitoso
  • WSDL de C2 accesible
  • Primera petición de prueba exitosa

Actividad 4.4: Suite de Tests Automatizados

Section titled “Actividad 4.4: Suite de Tests Automatizados”

Objetivo: Crear batería completa de pruebas automatizadas.

Tests Unitarios:

tests/unit/
├── XMLGeneratorTest.php
├── XMLValidatorTest.php
├── RateLimiterTest.php
├── ConfigTest.php
└── CalculosTest.php

Tests de Integración:

tests/integration/
├── SoapClientTest.php
├── QueueManagerTest.php
├── StatusPollerTest.php
├── DownloadManagerTest.php
└── FlowCompletoTest.php

Tests de Carga:

tests/load/
├── Batch100NominasTest.php
├── Batch500NominasTest.php
└── Batch1000NominasTest.php

Meta: Cobertura de código >= 80%

Herramientas:

  • PHPUnit para tests
  • PHPStan/Psalm para análisis estático
  • PHP CodeSniffer para estándares

Objetivo: Validar todos los flujos con credenciales C2.

Casos de prueba mandatorios:

  1. Emisión Individual

    • Crear nómina de prueba
    • Emitir usando C2
    • Validar respuesta
    • Verificar autorización
    • Descargar documentos
  2. Emisión por Lotes

    • Emitir 10 nóminas simultáneas
    • Verificar rate limiting
    • Validar que todas se autorizan
    • Medir tiempos
  3. Novedad

    • Emitir nómina normal
    • Esperar autorización
    • Crear novedad con cambio monetario
    • Verificar que se emite correctamente
    • Validar CUNE de novedad
  4. Ajuste de Reemplazo

    • Emitir nómina normal
    • Crear ajuste cambiando datos no monetarios
    • Verificar reemplazo
    • Validar nuevo CUNE
  5. Eliminación

    • Emitir nómina para eliminar
    • Ejecutar eliminación
    • Verificar estado “Eliminada”
    • Validar registro en DIAN
  6. Procesamiento Masivo

    • Encolar 100 nóminas
    • Dejar procesar automáticamente
    • Medir tiempo total
    • Verificar tasa de éxito
  7. Recuperación de Errores

    • Simular error de red
    • Verificar reintento automático
    • Validar recuperación
  8. Timeout Handling

    • Simular demora en autorización
    • Verificar polling continuo
    • Validar que no se pierde la nómina

Entregables:

  • Documento de pruebas con evidencias
  • Screenshots de cada caso
  • Logs de las operaciones
  • Reporte de bugs encontrados (si hay)

Actividad 4.6: Piloto con Nómina de Conectera

Section titled “Actividad 4.6: Piloto con Nómina de Conectera”

Objetivo: Emitir nómina real de empleados Conectera en C2.

Preparación:

  • Seleccionar período de prueba
  • Validar liquidación correcta
  • Backup de datos antes de emitir

Ejecución:

  • Emitir nóminas de empleados Conectera
  • Monitorear proceso completo
  • Validar documentos generados
  • Verificar XMLs y PDFs

Validación:

  • CUNE generado correctamente
  • PDFs legibles y completos
  • XMLs con firma digital
  • Totales cuadran

Feedback:

  • Recopilar opiniones del equipo
  • Documentar mejoras sugeridas
  • Priorizar ajustes necesarios

Objetivo: Corregir cualquier issue encontrado en pruebas C2.

Proceso:

  • Revisar todos los bugs documentados
  • Priorizar por criticidad
  • Implementar correcciones
  • Re-ejecutar tests afectados
  • Validar que no se rompe nada más

Objetivo: Completar toda la documentación necesaria.

Documentos a crear/actualizar:

  • Manual de usuario del módulo
  • Guía de operación para soporte
  • Runbook para incidentes
  • FAQs basadas en pruebas
  • Documentación de API interna
  • Diagramas de flujo actualizados

Fase 5: Preparación para Producción (C3)

Section titled “Fase 5: Preparación para Producción (C3)”

Objetivo: Confirmar que todo está listo para producción.

Checklist de validación:

  • Todos los tests pasan al 100%
  • Cobertura de código >= 80%
  • No hay bugs críticos pendientes
  • Performance aceptable (3000 nóminas < 60 min)
  • Documentación completa
  • Manual de usuario aprobado
  • Runbook operativo listo
  • Feedback de piloto positivo
  • Aprobación del líder técnico
  • Aprobación del Product Owner

Actividad 5.2: Solicitud de Credenciales C3

Section titled “Actividad 5.2: Solicitud de Credenciales C3”

Objetivo: Obtener credenciales productivas.

Responsable: Product Owner o Gerente de Proyecto

Requisitos para solicitar:

  • Todas las pruebas C2 exitosas
  • Documentación de evidencias
  • Plan de go-live aprobado
  • Soporte 24/7 confirmado (primera semana)

Documentos a presentar a Facturatech:

  • Reporte completo de pruebas C2
  • Evidencias de emisiones exitosas
  • Plan de migración a producción
  • Contactos de soporte
  • Runbook operativo

Información adicional requerida:

  • Certificado digital (si aplica)
  • Información de firma electrónica
  • Plan de contingencia

Actividad 5.3: Configuración de Ambiente Productivo

Section titled “Actividad 5.3: Configuración de Ambiente Productivo”

Objetivo: Preparar configuración para C3.

Tareas:

  • Actualizar credenciales C3 en producción
  • Configurar WSDL productivo
  • Validar certificados SSL
  • Configurar monitoring 24/7
  • Establecer alertas críticas:
    • Tasa de error > 5%
    • Timeout en autorización > 5 min
    • Cola > 100 nóminas pendientes
    • Servicio SOAP no responde
  • Configurar backups automáticos:
    • BD cada 6 horas
    • Archivos XML/PDF diariamente
    • Logs semanalmente

Objetivo: Definir estrategia de migración a producción.

Fases de migración:

  1. Pre-Migración (Día -1)

    • Backup completo de BD
    • Backup de archivos
    • Validar credenciales C3
    • Probar conexión a productivo
  2. Migración (Día 0 - Madrugada)

    • Desplegar código a producción
    • Actualizar configuración C3
    • Ejecutar migraciones de BD
    • Smoke tests en producción
  3. Validación (Día 0 - Mañana)

    • Emitir 5 nóminas de prueba
    • Validar autorización DIAN real
    • Verificar descarga de documentos
    • Confirmar CUNEs válidos
  4. Go-Live Parcial (Día 0 - Tarde)

    • Emitir nóminas de área piloto
    • Monitorear en tiempo real
    • Validar con empleados
  5. Go-Live Completo (Día 1+)

    • Emisión masiva habilitada
    • Monitoreo continuo
    • Soporte activo

Plan de Rollback:

  • Si falla validación: Revertir a C2
  • Si falla go-live parcial: Pausar y revisar
  • Si falla masivo: Rollback completo y análisis

Objetivo: Preparar a los usuarios finales.

Audiencias:

  • Operadores de nómina: Uso del módulo
  • Administradores: Gestión avanzada
  • Soporte: Resolución de incidentes

Material de capacitación:

  • Videos tutoriales
  • Manual de usuario
  • Guías rápidas
  • Sesiones en vivo
  • Ambiente de práctica

Temas a cubrir:

  • Navegación del módulo
  • Emisión individual y masiva
  • Creación de novedades
  • Creación de ajustes
  • Eliminación de documentos
  • Consulta de estados
  • Descarga de documentos
  • Manejo de errores comunes

Objetivo: Monitoreo intensivo primera semana.

Métricas a vigilar:

  • Tasa de éxito de emisiones
  • Tiempo promedio de autorización
  • Errores por tipo
  • Performance del sistema
  • Uso de rate limit
  • Satisfacción de usuarios

Reuniones diarias (primera semana):

  • Revisión de métricas
  • Incidentes del día
  • Ajustes necesarios
  • Feedback de usuarios

Guardia 24/7 (primera semana):

  • Desarrollador de guardia
  • Escalamiento definido
  • Contactos de emergencia

Actividad 5.7: Optimizaciones Post-Lanzamiento

Section titled “Actividad 5.7: Optimizaciones Post-Lanzamiento”

Objetivo: Mejoras basadas en uso real.

Áreas de optimización:

  • Performance de queries BD
  • Tiempos de generación XML
  • Uso de caché
  • Compresión de archivos
  • Limpieza de logs antiguos

Monitoreo continuo:

  • Revisión semanal de métricas
  • Análisis mensual de tendencias
  • Plan de mejoras trimestral

  • Tablas creadas y documentadas
  • Índices optimizados
  • Stored procedures implementados
  • Scripts de migración listos
  • Backups configurados
  • Cliente SOAP implementado
  • Generador XML completo
  • Validador XML funcional
  • Sistema de cola operativo
  • Rate limiter configurado
  • Polling implementado
  • Gestor de descargas listo
  • Logs completos
  • Manejo de errores robusto
  • Módulo integrado en menú
  • Dashboard funcional
  • Listado con filtros
  • Vista de detalle completa
  • Formulario de emisión
  • Formulario de novedad
  • Formulario de ajuste
  • Formulario de eliminación
  • Monitor de cola
  • Reportes implementados
  • Tests unitarios (80%+)
  • Tests de integración
  • Tests de carga
  • Tests UI/UX
  • Pruebas en C2 exitosas
  • Manual de usuario
  • Guía de operación
  • Runbook
  • FAQs
  • Documentación técnica
  • Diagramas actualizados
  • Credenciales C3 obtenidas
  • Configuración productiva
  • Monitoreo configurado
  • Alertas activas
  • Plan de contingencia
  • Capacitación completada

RolResponsabilidadesActividades Clave
Líder TécnicoArquitectura, decisiones técnicas, calidad códigoDiseño, code reviews, solicitud C2/C3
Product OwnerPriorización, validación funcional, aprobacionesValidación de flujos, aprobación go-live
Desarrollador BackendImplementación servicios, APIs, lógica negocioGenerador XML, sistema cola, polling
Desarrollador FrontendImplementación UI, integración con backendMódulo visual, formularios, reportes
QA/TesterPruebas, validación, documentación bugsEjecución tests, pruebas C2, evidencias
DBADiseño BD, optimización, backupsTablas, índices, stored procedures
DevOpsDespliegue, configuración, monitoreoSetup C3, alertas, backups

Al finalizar la implementación, el sistema debe cumplir:

Funcional

  • Emite nóminas electrónicas válidas
  • Procesa novedades y ajustes
  • Permite eliminaciones
  • Descarga documentos firmados

Performance

  • Procesa 3000 nóminas < 60 minutos
  • Tasa de éxito >= 95%
  • Tiempo de autorización < 2 minutos

Confiable

  • Recuperación automática de errores
  • Logging completo
  • Monitoreo 24/7
  • Backups automáticos

Usable

  • Interfaz intuitiva
  • Flujos claros
  • Mensajes de error útiles
  • Documentación completa