2026-10-13 08:09:07 -05:00
|
|
|
/**
|
|
|
|
|
* 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',
|
|
|
|
|
};
|
|
|
|
|
|
2026-10-15 16:03:00 -05:00
|
|
|
/**
|
|
|
|
|
* OpenInvQty, no OpenQty: OpenQty solo baja con las Devoluciones, mientras que OpenInvQty también
|
|
|
|
|
* descuenta lo facturado, y SAP rechaza (-10) devolver contra la Entrada más que eso.
|
|
|
|
|
*/
|
2026-10-13 08:09:07 -05:00
|
|
|
export const CONSULTA_ENTRADAS_ABIERTAS: ConsultaGuardada = {
|
|
|
|
|
codigo: 'DP_EntradasAbiertas',
|
2026-10-15 16:03:00 -05:00
|
|
|
version: 3,
|
2026-10-13 08:09:07 -05:00
|
|
|
mssql:
|
|
|
|
|
'SELECT T0.[DocNum], T0.[CardCode], T0.[CardName], T0.[DocDate], ' +
|
2026-10-15 16:03:00 -05:00
|
|
|
'T1.[DocEntry], T1.[LineNum], T1.[OpenInvQty] ' +
|
2026-10-13 08:09:07 -05:00
|
|
|
'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", ' +
|
2026-10-15 16:03:00 -05:00
|
|
|
'T1."DocEntry", T1."LineNum", T1."OpenInvQty" ' +
|
2026-10-13 08:09:07 -05:00
|
|
|
'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"',
|
|
|
|
|
};
|