Trabajos seleccionados
Tres resúmenes del tipo de trabajo que aceptamos. Cada cliente permanece anónimo.
Rutas de reparto en una hoja de cálculo
El cliente: Un distribuidor de materiales de construcción con cuatro almacenes.
El problema
Las rutas de reparto se planificaban en una hoja compartida que tres personas editaban al mismo tiempo.
Lo difícil
La hoja guardaba reglas que nadie había escrito. Pasamos las dos primeras semanas junto a su responsable de reparto, poniéndolas por escrito.
Construido con
TypeScript, PostgreSQL
- Pedidos del programa de contabilidad
- Lo difícilPantalla de planificación
- Lista del conductor
- Exportación nocturna
Un solo listado de clientes para nueve clínicas
El cliente: Un grupo veterinario con nueve clínicas.
El problema
Cada clínica llevaba su propio listado de clientes, así que un animal visto en dos clínicas tenía dos fichas.
Lo difícil
Decidir que dos fichas son el mismo animal. Cuando los datos del propietario no coincidían, el par pasaba a una persona.
Construido con
PostgreSQL, Python
- Nueve exportaciones de clínicas
- Lo difícilPaso de cruce
- Una persona confirma
- Una base de clientes
test("holds on mismatch", () => {
const a = { owner: "Pell" };
const b = { owner: "Pell" };
const c = { owner: "Hale" };
expect(match(a, b)).toBe("ask");
expect(match(a, c)).toBe("hold");
});
Una facturación que redondeaba distinto que finanzas
El cliente: Una empresa de formación que factura a unos cuarenta clientes al mes.
El problema
La nueva pantalla de facturación sumaba las facturas con unos céntimos de diferencia respecto al programa de contabilidad, y finanzas no podía darla por buena.
Lo difícil
El redondeo. El programa de contabilidad redondeaba cada línea y nosotros habíamos redondeado el total.
Construido con
TypeScript, Vitest
- Reservas de cursos
- Lo difícilCálculo de la factura
- Pantalla de facturación
- Exportación contable
test("rounds per line", () => {
const lines = [
{ net: 1999, vat: 0.2 },
{ net: 1001, vat: 0.2 },
];
expect(total(lines)).toBe(3600);
});