feat(tagumedica): flujo de lotes (inmovilizar, liberar y confirmar la liberación) con solicitudes de traslado, consultas a HANA y campos de usuario por su definición en SAP
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
72b3cd1d43
commit
5728fc8e5b
15 files changed
+1325
-13
No files matched your search
@@ -0,0 +1,27 @@
|
||||
import { SL_RESOURCE_MAP } from '../sl/sl-resources.js';
|
||||
import { SAPDB_QUERIES } from './sapdb-queries.js';
|
||||
import { bindNamed } from './sapdb-sql.js';
|
||||
|
||||
describe('consultas de TAGUMEDICA', () => {
|
||||
it('registra las del flujo de lotes y cada una es de solo lectura (el registro lo valida al cargar)', () => {
|
||||
for (const name of ['lot-stock', 'lot-sources']) {
|
||||
expect(SAPDB_QUERIES.has(name), name).toBe(true);
|
||||
}
|
||||
});
|
||||
|
||||
it('el origen de un lote se busca con artículo, lote y almacén como parámetros', () => {
|
||||
const q = SAPDB_QUERIES.get('lot-sources')!;
|
||||
const b = bindNamed(q.sql.hana!, { item: 'A1', lot: 'L1', warehouse: '302' });
|
||||
expect(b.args).toEqual(['A1', 'L1', '302']);
|
||||
expect(b.sql).not.toContain(':');
|
||||
});
|
||||
|
||||
it('las tres pantallas del flujo pueden leer y modificar las solicitudes de traslado', () => {
|
||||
const r = SL_RESOURCE_MAP.get('InventoryTransferRequests')!;
|
||||
for (const p of ['/inventario/inmovilizar-lotes', '/inventario/liberar-lotes', '/inventario/confirmar-liberacion-lote']) {
|
||||
expect(r.read as string[], p).toContain(p);
|
||||
expect(r.write as string[], p).toContain(p);
|
||||
}
|
||||
expect(r.write as string[]).toContain('/inventario/solicitudes-traslado');
|
||||
});
|
||||
});
|
||||
Reference in new issue
Block a user