Files
MBS/PROYECTO/PRDIR/prprcs001.4gl
T
jpeguero 9ce99926e1 Corrige prprrp116 (reporte STATUS ORDENES PEDIDOS) y agrega modulo MATERIA PRIMA
- 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).
2026-08-25 12:21:24 -04:00

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