El cliente —una distribuidora automotriz de Quito— vende láminas y accesorios para vehículos. Su sistema anterior registraba las ventas, pero el inventario y la cartera ya no resistían el crecimiento. Construimos el nuevo sistema: una plataforma web propia que cubre el ciclo completo —de la proforma al despacho, del kárdex a la cobranza— y migramos catorce años de historia sin detener un solo día de venta.
El sistema anterior seguía en producción y tenía años de historia que debían sobrevivir: productos, clientes, documentos, cheques y ajustes de inventario. Antes de mover un solo registro auditamos el origen. Ahí aparecieron tres fallas silenciosas que nadie había podido explicar.
El personal escaneaba el código, imprimía la etiqueta —salía perfecta— y cerraba la ventana. El botón de cerrar invocaba una función que no existía en el código: la ventana quedaba trabada y la única salida era recargar, perdiendo el dato antes de guardarlo.
La plantilla de importación masiva incluía la columna del código de barras, pero el importador no la contemplaba entre los campos que persistía. Cada carga la descartaba en silencio, sin error ni aviso.
Decenas de cheques migrados aparecían como pendientes por depositar pese a estar sellados desde hacía meses, inflando la cartera y distorsionando cualquier lectura de cobranza.
Cada pieza se entregó, se probó en producción y se corrigió con el equipo usándola. No hubo una entrega final: hubo treinta y ocho.
Cotización con vigencia, forma de pago referencial y confirmación previa a emitir que muestra cliente y vendedor antes de grabar.
Conversión desde proforma o venta directa, edición con bitácora hasta el despacho y anulación con aprobación de gerencia.
Cola de preparación con transportista, guía y ciudad de destino; hoja imprimible y días en cola a la vista.
Existencias consolidadas, ingresos y egresos operativos, orden por existencia y trazabilidad movimiento por movimiento.
Toma física declarando lo contado —cero incluido— o ajuste por diferencia, con contraasiento exacto al anular.
Carga del embarque desde archivo: crea las fichas que aún no existen e ingresa el stock en un solo paso.
Cobros aplicados a documentos, cheques con su ciclo de estados y cambio de forma de pago con candado cuando el cheque ya avanzó.
Saldos por cliente, antigüedad y conciliación entre lo vendido y lo efectivamente cobrado.
Ficha con galería, códigos de barras y etiquetas térmicas con auditoría de cada impresión.
Resumen por vendedor hasta el detalle de producto, reposición, mínimos sugeridos por venta real e ingresos por origen.
Bitácora transversal, auditoría de anulaciones y reversos separada de la lectura operativa.
Catálogo público y pedidos web que entran directo a la cola comercial del equipo.
Anular o editar una orden devuelve mercadería al stock. Contablemente es correcto, pero en pantalla parecía una compra que nunca ocurrió. Separamos las dos lecturas: quien opera ve el movimiento real; quien audita ve el libro completo. Ambas cuadran, cada una en sus términos.
| Fecha | Movimiento | Doc. | Ent. | Sal. | Stock |
|---|---|---|---|---|---|
| 17/08 | Salida por orden | OS-1530 | −1 | 57 | |
| 17/08 | Salida por orden | OS-1546 | −12 | 58 | |
| 01/07 | Ajuste de inventario | AJ-0054 | +83 | 70 | |
| hasta 01/07 | Saldo anterior | acumulado | — |
| Movimiento | Doc. | Ent. | Sal. |
|---|---|---|---|
| Salida por orden | OS-1334 | −10 | |
| Reversión por edición edición | OS-1334 | +10 | |
| Salida por orden revertida | OS-1334 | −10 | |
| Compra local | CD-0001 | +50 |
Pruébelo aquí mismo
Catálogo y precios de demostración. Sume productos y observe lo que el distribuidor ve en su portal: cada línea nace con su lote asignado y su recorrido interno hacia el despacho.
Al superar los $500, el sistema aplica solo el descuento mayorista del 8%.
Los códigos del cliente mezclan letras, números y espacios, así que ningún simbolismo de retail servía: implementamos Code128 en PHP puro, sin librerías externas, y validamos su salida bit a bit contra una implementación de referencia. Escriba un código y vea la etiqueta que sale de la impresora térmica.
Mismo algoritmo que corre en producción: conmutación automática entre subconjuntos B y C, dígito verificador y zonas mudas del estándar.
Cada movimiento bloquea la fila de stock y recalcula el saldo dentro de la misma transacción. Dos ventas simultáneas del último artículo no pueden dejar existencias en negativo.
Los números de documento se asignan bajo bloqueo nombrado: nunca se repite ni se salta un correlativo, aunque dos usuarios graben en el mismo segundo.
En la toma de inventario se declara lo contado, no la diferencia. El sistema calcula el ajuste contra la existencia del momento, ya dentro de la transacción.
La caja del periodo se separa de lo cobrado sobre las ventas del periodo. Dos preguntas distintas que antes se respondían con un solo número.
Altas, ediciones, anulaciones, ajustes, bajas e impresiones de etiqueta quedan registradas con usuario, fecha, valores anteriores y motivo.
Las tablas densas se reordenan como fichas en el celular, y las acciones frecuentes se resuelven con el pulgar.
Cada mejora siguió el mismo protocolo. No es burocracia: es lo que permite tocar a diario un sistema del que depende la facturación de la empresa.
Cada cambio parte del código real en producción, no de una suposición. Los puntos de anclaje se verifican uno por uno antes de tocar nada.
Sintaxis, scripts y estructuras de base de datos se prueban en un entorno aparte. Los cambios de esquema se ejecutan dos veces para comprobar que son repetibles sin daño.
Cada entrega viaja con un manifiesto de firmas digitales. Al desplegar, el servidor confirma que recibió exactamente lo que se envió.
Antes de sobrescribir, los archivos afectados quedan copiados en el servidor. Cualquier entrega se revierte en segundos si hace falta.
Diseñamos y construimos sistemas corporativos sobre la misma tecnología que sostiene al ecosistema Neola: aplicaciones web, de escritorio e integraciones con sus plataformas actuales.