/** * Consultas guardadas (SQLQueries del Service Layer) que usa la API. Cada una tiene su * variante MSSQL (pruebas) y HANA (producción). Los parámetros se escriben ":nombre". * * El analizador SQL del Service Layer no admite funciones como FORMAT: las fechas se devuelven * tal cual y se normalizan en el código. * * SAP reescribe el SqlText al guardarlo (por ejemplo OITM → [OITM]), así que no se puede * comparar el texto para saber si cambió: al modificar el SQL hay que subir `version`. */ export interface ConsultaGuardada { codigo: string; version: number; mssql: string; hana: string; } export const CONSULTA_STOCK: ConsultaGuardada = { codigo: 'DP_Stock', version: 1, mssql: 'SELECT T0.[ItemCode], T0.[ItemName], T1.[OnHand] ' + 'FROM OITM T0 INNER JOIN OITW T1 ON T1.[ItemCode] = T0.[ItemCode] ' + 'WHERE T1.[WhsCode] = :whs AND T0.[ItemCode] = :item', hana: 'SELECT T0."ItemCode", T0."ItemName", T1."OnHand" ' + 'FROM OITM T0 INNER JOIN OITW T1 ON T1."ItemCode" = T0."ItemCode" ' + 'WHERE T1."WhsCode" = :whs AND T0."ItemCode" = :item', }; export const CONSULTA_ENTRADAS_ABIERTAS: ConsultaGuardada = { codigo: 'DP_EntradasAbiertas', version: 3, mssql: 'SELECT T0.[DocNum], T0.[CardCode], T0.[CardName], T0.[DocDate], ' + 'T1.[DocEntry], T1.[LineNum], T1.[OpenInvQty] ' + 'FROM OPDN T0 INNER JOIN PDN1 T1 ON T1.[DocEntry] = T0.[DocEntry] ' + "WHERE T0.[U_DOT_TipoRecepcion] = 'C' AND T1.[LineStatus] = 'O' " + 'AND T1.[ItemCode] = :item AND T1.[WhsCode] = :whs ' + 'ORDER BY T0.[DocDate], T1.[DocEntry], T1.[LineNum]', hana: 'SELECT T0."DocNum", T0."CardCode", T0."CardName", T0."DocDate", ' + 'T1."DocEntry", T1."LineNum", T1."OpenInvQty" ' + 'FROM OPDN T0 INNER JOIN PDN1 T1 ON T1."DocEntry" = T0."DocEntry" ' + "WHERE T0.\"U_DOT_TipoRecepcion\" = 'C' AND T1.\"LineStatus\" = 'O' " + 'AND T1."ItemCode" = :item AND T1."WhsCode" = :whs ' + 'ORDER BY T0."DocDate", T1."DocEntry", T1."LineNum"', };