- prprrp116: agrega form faltante, corrige encabezado del reporte (p_compania.nombre), evita crash cuando no hay registros, agrega opcion EXCEL en Visualizacion, quita filtros <blank>/<not blank> del combo Status Orden. - prprcs001: corrige CONSTRUCT con columna inexistente (fecha_oc). - prprmt022: quita filtros <blank>/<not blank> del combo Estado. - Agrega los 13 programas de MATERIA PRIMA al proyecto (mbsERP.4pw).
234 lines
6.9 KiB
Plaintext
234 lines
6.9 KiB
Plaintext
{
|
|
-----------------------------------------------------------------------------
|
|
PROGRAMA : prprcs001
|
|
OBJETIVO : Consulta de Ordenes
|
|
REALIZADO POR : Lic. Oscar Castillo
|
|
FECHA : Saturday, July 22, 2000
|
|
-----------------------------------------------------------------------------
|
|
}
|
|
GLOBALS "prprgb000.4gl"
|
|
DEFINE balance2 DECIMAL(12,2),
|
|
tipo_orden STRING
|
|
|
|
DEFINE g_prtb09 RECORD
|
|
tipo_cliente LIKE vetb00004.tipo_cliente,
|
|
sec_cliente LIKE vetb00004.sec_cliente,
|
|
num_oc LIKE prtb00009.num_oc,
|
|
fecha LIKE prtb00009.fecha,
|
|
pendiente LIKE prtb00009.pendiente
|
|
END RECORD
|
|
|
|
DEFINE p_nombre LIKE vetb00004.nombre,
|
|
descrip_pend CHAR(10),
|
|
detalle LIKE prtb00009.detalle
|
|
|
|
DEFINE arr_prtb09 ARRAY[100] OF RECORD
|
|
m_fecha LIKE prtb00009.fecha,
|
|
hora LIKE prtb00009.fech_crea
|
|
END RECORD
|
|
|
|
|
|
MAIN
|
|
DEFER INTERRUPT
|
|
CALL ARG_VAL(1) RETURNING usuarios
|
|
CALL ARG_VAL(2) RETURNING clave
|
|
CALL ARG_VAL(3) RETURNING impresor
|
|
|
|
CONNECT to "smarmotech" USER usuarios USING clave
|
|
CALL prprcs001()
|
|
END MAIN
|
|
|
|
###### Funcion que adiciona informacion referente a la aplicacion de un pago
|
|
FUNCTION prprcs001()
|
|
DEFINE porc_p DECIMAL(10,2)
|
|
DEFINE emp SMALLINT
|
|
DEFINE hoy DATE
|
|
|
|
OPTIONS
|
|
FORM LINE 8,
|
|
ERROR LINE 24,
|
|
COMMENT LINE 22,
|
|
PROMPT LINE 23
|
|
|
|
# CALL pantalla()
|
|
OPEN FORM prfmcs001 FROM "prfmcs001"
|
|
DISPLAY FORM prfmcs001
|
|
DISPLAY "prprcs001" AT 4,3
|
|
DISPLAY "Ordenes de Compra" AT 6,33
|
|
|
|
DISPLAY "<CTRL-C> CANCELA OPERACION" AT 2,5 ATTRIBUTE (BOLD)
|
|
LET int_flag = FALSE
|
|
DIALOG ATTRIBUTES(UNBUFFERED)
|
|
|
|
INPUT BY NAME tipo_orden
|
|
AFTER INPUT
|
|
IF int_flag THEN
|
|
LET numero_msg = 2
|
|
CALL msg(numero_msg)
|
|
LET int_flag = FALSE
|
|
RETURN
|
|
END IF
|
|
END INPUT
|
|
|
|
CONSTRUCT BY NAME criterio ON a.tipo_cliente,a.sec_cliente,
|
|
a.num_oc,a.fecha_oc
|
|
FROM tipo_cliente,sec_cliente,
|
|
num_oc,fecha
|
|
|
|
AFTER CONSTRUCT
|
|
IF tipo_orden = 'N' THEN
|
|
LET selec =
|
|
" SELECT a.tipo_cliente,a.sec_cliente,a.num_oc, ",
|
|
" a.fecha_oc,c.nombre,a.cotizacion_no ",
|
|
" FROM prtb00012 a,vetb00004 c ",
|
|
" WHERE a.tipo_cliente = c.tipo_cliente and ",
|
|
" a.sec_cliente = c.sec_cliente AND a.cerrada ='N'",
|
|
" AND ",criterio CLIPPED, " ORDER BY a.num_oc "
|
|
END IF
|
|
IF tipo_orden = 'S' THEN
|
|
LET selec =
|
|
" SELECT a.tipo_cliente,a.sec_cliente,a.num_oc, ",
|
|
" a.fecha_oc,c.nombre,a.cotizacion_no ",
|
|
" FROM prtb00012 a,vetb00004 c ",
|
|
" WHERE a.tipo_cliente = c.tipo_cliente and ",
|
|
" a.sec_cliente = c.sec_cliente AND a.cerrada ='N'",
|
|
" AND ",criterio CLIPPED, " ORDER BY a.num_oc "
|
|
END IF
|
|
IF tipo_orden = 'T' THEN
|
|
LET selec =
|
|
" SELECT a.tipo_cliente,a.sec_cliente,a.num_oc, ",
|
|
" a.fecha_oc,c.nombre,a.cotizacion_no ",
|
|
" FROM prtb00012 a,vetb00004 c ",
|
|
" WHERE a.tipo_cliente = c.tipo_cliente and ",
|
|
" a.sec_cliente = c.sec_cliente ",
|
|
" AND ",criterio CLIPPED, " ORDER BY a.num_oc "
|
|
END IF
|
|
|
|
|
|
END CONSTRUCT
|
|
ON ACTION close
|
|
RETURN
|
|
EXIT DIALOG
|
|
ON ACTION ejecuta
|
|
PREPARE comando FROM selec
|
|
DECLARE busca SCROLL CURSOR FOR comando
|
|
OPEN busca
|
|
|
|
END DIALOG
|
|
|
|
|
|
|
|
FETCH FIRST busca INTO g_prtb09.*
|
|
IF STATUS = NOTFOUND THEN
|
|
LET numero_msg = 3
|
|
CALL msg(numero_msg)
|
|
RETURN
|
|
END IF
|
|
|
|
CALL buscando()
|
|
MENU "Opcion"
|
|
COMMAND "Siguiente"
|
|
FETCH NEXT busca INTO g_prtb09.*
|
|
IF STATUS = NOTFOUND THEN
|
|
FETCH LAST busca INTO g_prtb09.*
|
|
CALL buscando()
|
|
LET numero_msg = 5
|
|
CALL msg(numero_msg)
|
|
END IF
|
|
|
|
CALL buscando()
|
|
|
|
COMMAND "Anterior"
|
|
FETCH PREVIOUS busca INTO g_prtb09.*
|
|
IF STATUS = NOTFOUND THEN
|
|
FETCH FIRST busca INTO g_prtb09.*
|
|
CALL buscando()
|
|
LET numero_msg = 5
|
|
CALL msg(numero_msg)
|
|
END IF
|
|
|
|
CALL buscando()
|
|
|
|
COMMAND "Primero"
|
|
FETCH FIRST busca INTO g_prtb09.*
|
|
CALL buscando()
|
|
|
|
LET numero_msg = 4
|
|
CALL msg(numero_msg)
|
|
|
|
COMMAND "Ultimo"
|
|
FETCH LAST busca INTO g_prtb09.*
|
|
CALL buscando()
|
|
|
|
LET numero_msg = 4
|
|
CALL msg(numero_msg)
|
|
|
|
COMMAND "Ver"
|
|
|
|
DECLARE busca1 SCROLL CURSOR FOR
|
|
SELECT a.fecha,a.fech_crea
|
|
FROM prtb00009 a
|
|
WHERE a.num_oc = g_prtb09.num_oc
|
|
AND a.status_t IS NULL
|
|
ORDER BY 1
|
|
|
|
OPEN busca1
|
|
|
|
LET idx = 1
|
|
WHILE STATUS != NOTFOUND
|
|
FETCH ABSOLUTE idx busca1 INTO arr_prtb09[idx].*
|
|
IF STATUS = NOTFOUND THEN
|
|
EXIT WHILE
|
|
END IF
|
|
|
|
|
|
LET idx = idx + 1
|
|
END WHILE
|
|
CALL SET_COUNT(idx - 1)
|
|
|
|
DISPLAY ARRAY arr_prtb09 TO s_orden.*
|
|
|
|
AFTER ROW
|
|
LET curr = arr_curr()
|
|
|
|
SELECT a.detalle INTO detalle
|
|
FROM prtb00009 a
|
|
WHERE a.fecha = arr_prtb09[curr].m_fecha
|
|
AND a.num_oc = g_prtb09.num_oc
|
|
AND a.fech_crea = arr_prtb09[curr].hora
|
|
|
|
DISPLAY BY NAME detalle
|
|
|
|
AFTER DISPLAY
|
|
EXIT DISPLAY
|
|
END DISPLAY
|
|
|
|
IF int_flag THEN
|
|
LET numero_msg = 2
|
|
CALL msg(numero_msg)
|
|
LET int_flag = FALSE
|
|
RETURN
|
|
END IF
|
|
|
|
COMMAND "Retornar"
|
|
EXIT MENU
|
|
END MENU
|
|
END FUNCTION
|
|
|
|
FUNCTION buscando()
|
|
SELECT a.nombre INTO p_nombre FROM vetb00004 a
|
|
WHERE a.tipo_cliente = g_prtb09.tipo_cliente
|
|
AND a.sec_cliente = g_prtb09.sec_cliente
|
|
AND a.status_t IS NULL
|
|
|
|
IF g_prtb09.pendiente = "S" THEN
|
|
LET descrip_pend = "ABIERTA"
|
|
ELSE
|
|
LET descrip_pend = "CERRADA"
|
|
END IF
|
|
|
|
DISPLAY BY NAME g_prtb09.*,p_nombre,descrip_pend
|
|
|
|
END FUNCTION
|
|
|