feat: pestaña Stock por almacén en el lote (consulta estándar batch-stock del módulo sapdb; sin base configurada no aparece)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
5db5de65ad
commit
6887f9e474
11 files changed
+207
-7
No files matched your search
@@ -11,6 +11,24 @@ export const BASE_SAPDB_QUERIES: readonly SapDbQuery[] = [
|
||||
params: {},
|
||||
menu: null,
|
||||
},
|
||||
{
|
||||
// Tablas estándar de SAP B1 (OBTQ: cantidad por lote y almacén; OBTN: maestro de lotes; OWHS: almacenes). `absEntry` es el
|
||||
// `DocEntry` del lote en el Service Layer.
|
||||
name: 'batch-stock',
|
||||
title: 'Stock de un lote por almacén',
|
||||
sql: {
|
||||
hana: `SELECT T1."WhsCode" AS "WarehouseCode", W."WhsName" AS "WarehouseName", T1."Quantity" AS "Quantity",
|
||||
T1."CommitQty" AS "Committed", T1."CountQty" AS "Counted"
|
||||
FROM "OBTQ" T1
|
||||
INNER JOIN "OBTN" T0 ON T1."MdAbsEntry" = T0."AbsEntry" AND T1."ItemCode" = T0."ItemCode"
|
||||
LEFT JOIN "OWHS" W ON W."WhsCode" = T1."WhsCode"
|
||||
WHERE T0."AbsEntry" = :absEntry
|
||||
ORDER BY T1."WhsCode"`,
|
||||
},
|
||||
params: { absEntry: { type: 'number' } },
|
||||
menu: '/inventario/lotes',
|
||||
maxRows: 1000,
|
||||
},
|
||||
];
|
||||
|
||||
/** Comprueba que los nombres no se repitan, que el SQL sea de solo lectura y que use justo los parámetros declarados. Lanza si no. */
|
||||
|
||||
@@ -79,6 +79,9 @@ describe('SapDbService', () => {
|
||||
});
|
||||
|
||||
it('lista las consultas disponibles', async () => {
|
||||
expect(await make({ query } as SapDbAdapter).available(user)).toEqual([{ name: 'ping', title: expect.any(String) }]);
|
||||
expect(await make({ query } as SapDbAdapter).available(user)).toEqual([
|
||||
{ name: 'ping', title: expect.any(String) },
|
||||
{ name: 'batch-stock', title: expect.any(String) },
|
||||
]);
|
||||
});
|
||||
});
|
||||
Reference in new issue
Block a user