primer commit subida
This commit is contained in:
@@ -0,0 +1,243 @@
|
||||
|
||||
{
|
||||
-----------------------------------------------------------------------------
|
||||
PROGRAMA : CPPRCS003
|
||||
OBJETIVO : Consulta de Movimeinto de CXP
|
||||
REALIZADO POR : Tadeo A. Ferreras
|
||||
FECHA : Junio 27, 1993
|
||||
-----------------------------------------------------------------------------
|
||||
}
|
||||
GLOBALS "cpprgb000.4gl"
|
||||
|
||||
DEFINE aplicar INTEGER
|
||||
DEFINE cod1_sp,cod1_sp_sec,p_orden SMALLINT
|
||||
DEFINE p_tipo CHAR(2)
|
||||
DEFINE val_pen,valor_fac1,valor2 DECIMAL(12,2)
|
||||
DEFINE nom_tipo CHAR(15)
|
||||
|
||||
FUNCTION cpprcs003()
|
||||
|
||||
OPTIONS
|
||||
FORM LINE 8,
|
||||
ERROR LINE 24,
|
||||
COMMENT LINE 22,
|
||||
PROMPT LINE 23
|
||||
|
||||
CALL pantalla()
|
||||
OPEN FORM cpfmcs003 FROM "cpfmmt002"
|
||||
DISPLAY FORM cpfmcs003
|
||||
DISPLAY "cpprcs003" AT 4,3
|
||||
DISPLAY "Movimientos de Cuenta por Pagar" AT 6,24
|
||||
|
||||
MENU "OPCION"
|
||||
COMMAND "Consultar"
|
||||
"<Esc> Busca Registro <Delete> Cancela Operacion"
|
||||
CLEAR FORM
|
||||
CALL cppccs003()
|
||||
COMMAND "Salir"
|
||||
EXIT MENU
|
||||
END MENU
|
||||
END FUNCTION
|
||||
|
||||
FUNCTION cppccs003()
|
||||
|
||||
DEFINE usuario RECORD
|
||||
us_crea CHAR(9),
|
||||
fech_crea LIKE cptb00001.fech_crea
|
||||
END RECORD
|
||||
DEFINE tipo_doc CHAR(2)
|
||||
|
||||
##### Creando el criterio de busqueda
|
||||
|
||||
INPUT BY NAME tipo_doc
|
||||
|
||||
AFTER FIELD tipo_doc
|
||||
|
||||
IF tipo_doc IS NULL OR tipo_doc = "FT" THEN
|
||||
LET numero_msg = 16
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD tipo_doc
|
||||
END IF
|
||||
END INPUT
|
||||
|
||||
CONSTRUCT CRITERIO ON b.num_doc,b.cod_sp,b.cod_sp_sec
|
||||
FROM num_doc,cod_sp,cod_sp_sec
|
||||
|
||||
IF int_flag THEN
|
||||
LET numero_msg = 2
|
||||
CALL msg(numero_msg)
|
||||
LET int_flag = FALSE
|
||||
CLEAR FORM
|
||||
RETURN
|
||||
END IF
|
||||
|
||||
###### Selecionando la informacion a modificar
|
||||
|
||||
IF tipo_doc = "CP" THEN
|
||||
|
||||
LET selec = "SELECT UNIQUE b.tipo_doc,b.num_doc,b.cta_ctble,b.cod_sp, ",
|
||||
" b.cod_sp_sec,b.fecha_orig,b.detalle ",
|
||||
"FROM cptb00001 b ",
|
||||
"WHERE b.tipo_doc = ? AND b.status_t is null AND ",
|
||||
" b.aplica_a IS NULL AND ",criterio clipped," ORDER BY 1,2"
|
||||
ELSE
|
||||
LET selec = "SELECT UNIQUE b.tipo_doc,b.num_doc,b.cta_ctble,b.cod_sp, ",
|
||||
" b.cod_sp_sec,b.fecha_orig,b.detalle ",
|
||||
"FROM cptb00001 b ",
|
||||
"WHERE b.tipo_doc = ? AND b.status_t is null AND ",
|
||||
criterio clipped," ORDER BY 1,2"
|
||||
END IF
|
||||
PREPARE busca FROM selec
|
||||
DECLARE datos SCROLL CURSOR FOR busca
|
||||
OPEN datos USING tipo_doc
|
||||
|
||||
FETCH FIRST datos INTO recibo.*
|
||||
IF status = NOTFOUND THEN
|
||||
LET numero_msg = 3
|
||||
CALL msg(numero_msg)
|
||||
RETURN
|
||||
END IF
|
||||
|
||||
###### Selecionado datos referentes al suplidor
|
||||
|
||||
SELECT nom_sp INTO nom_sup FROM cotb00001
|
||||
WHERE cod_sp = recibo.cod_sp and
|
||||
cod_sp_sec = recibo.cod_sp_sec
|
||||
|
||||
###### Selecionando nombre de la cuenta a que afectara
|
||||
|
||||
SELECT descripcion INTO nom_cuenta FROM cgtb00001
|
||||
WHERE cuenta_no = recibo.cta_ctble
|
||||
|
||||
DISPLAY BY NAME recibo.*,nom_sup,nom_cuenta
|
||||
|
||||
LABEL vuelve:
|
||||
MENU "OPCION"
|
||||
COMMAND "Siguiente"
|
||||
"Presenta en pantalla el proximo registro encontrado"
|
||||
FETCH NEXT datos INTO recibo.*
|
||||
IF status = NOTFOUND THEN
|
||||
LET numero_msg = 4
|
||||
CALL msg(numero_msg)
|
||||
END IF
|
||||
|
||||
|
||||
SELECT nom_sp INTO nom_sup FROM cotb00001
|
||||
WHERE cod_sp = recibo.cod_sp and
|
||||
cod_sp_sec = recibo.cod_sp_sec
|
||||
|
||||
SELECT descripcion INTO nom_cuenta FROM cgtb00001
|
||||
WHERE cuenta_no = recibo.cta_ctble
|
||||
|
||||
DISPLAY BY NAME recibo.*,nom_sup,nom_cuenta
|
||||
|
||||
COMMAND "Anterior"
|
||||
"Presenta en pantalla el registro anterior encontrado"
|
||||
FETCH PREVIOUS datos INTO recibo.*
|
||||
IF status = NOTFOUND THEN
|
||||
LET numero_msg = 5
|
||||
CALL msg(numero_msg)
|
||||
END IF
|
||||
|
||||
SELECT nom_sp INTO nom_sup FROM cotb00001
|
||||
WHERE cod_sp = recibo.cod_sp and
|
||||
cod_sp_sec = recibo.cod_sp_sec
|
||||
|
||||
SELECT descripcion INTO nom_cuenta FROM cgtb00001
|
||||
WHERE cuenta_no = recibo.cta_ctble
|
||||
|
||||
DISPLAY BY NAME recibo.*,nom_sup,nom_cuenta
|
||||
|
||||
COMMAND "Primero"
|
||||
"Presenta en pantalla el primer registro encontrado"
|
||||
FETCH FIRST datos INTO recibo.*
|
||||
IF status = NOTFOUND THEN
|
||||
LET numero_msg = 5
|
||||
CALL msg(numero_msg)
|
||||
END IF
|
||||
|
||||
SELECT nom_sp INTO nom_sup FROM cotb00001
|
||||
WHERE cod_sp = recibo.cod_sp
|
||||
AND cod_sp_sec = recibo.cod_sp_sec
|
||||
|
||||
SELECT descripcion INTO nom_cuenta FROM cgtb00001
|
||||
WHERE cuenta_no = recibo.cta_ctble
|
||||
|
||||
DISPLAY BY NAME recibo.*,nom_sup,nom_cuenta
|
||||
|
||||
COMMAND "Ultimo"
|
||||
"Presenta en pantalla el ultimo registro encontrado"
|
||||
FETCH LAST datos INTO recibo.*
|
||||
IF status = NOTFOUND THEN
|
||||
LET numero_msg = 4
|
||||
CALL msg(numero_msg)
|
||||
END IF
|
||||
|
||||
SELECT nom_sp INTO nom_sup FROM cotb00001
|
||||
WHERE cod_sp = recibo.cod_sp and
|
||||
cod_sp_sec = recibo.cod_sp_sec
|
||||
|
||||
SELECT descripcion INTO nom_cuenta FROM cgtb00001
|
||||
WHERE cuenta_no = recibo.cta_ctble
|
||||
|
||||
DISPLAY BY NAME recibo.*,nom_sup,nom_cuenta
|
||||
|
||||
COMMAND "Ver"
|
||||
"<Esc> Busca Registro <Delete> Cancela Operacion"
|
||||
|
||||
##### Buscando la informaciona desplegar en el arreglo
|
||||
|
||||
IF recibo.tipo_doc = "CP" THEN
|
||||
DECLARE buscar1 CURSOR FOR
|
||||
SELECT a.tipo,a.orden_no,a.aplica_a,a.valor*-1 FROM cptb00001 a
|
||||
WHERE a.tipo_doc = recibo.tipo_doc and
|
||||
a.num_doc = recibo.num_doc AND
|
||||
a.cod_sp = recibo.cod_sp AND
|
||||
a.cod_sp_sec = recibo.cod_sp_sec AND
|
||||
a.status_t IS NULL AND a.aplica_a IS NULL
|
||||
ORDER BY 1
|
||||
ELSE
|
||||
DECLARE buscar2 CURSOR FOR
|
||||
SELECT a.tipo,a.orden_no,a.aplica_a,valor*-1 FROM cptb00001 a
|
||||
WHERE a.tipo_doc = recibo.tipo_doc and
|
||||
a.num_doc = recibo.num_doc AND
|
||||
a.cod_sp = recibo.cod_sp AND
|
||||
a.cod_sp_sec = recibo.cod_sp_sec AND
|
||||
a.status_t IS NULL
|
||||
ORDER BY 1
|
||||
END IF
|
||||
LET idx = 1
|
||||
|
||||
IF recibo.tipo_doc = "CP" THEN
|
||||
FOREACH buscar1 INTO arr_recibo[idx].*
|
||||
IF recibo.tipo_doc = "NC" THEN
|
||||
LET arr_recibo[idx].valor_pen = arr_recibo[idx].valor_pen * -1
|
||||
END IF
|
||||
LET arr_recibo[idx].valor_pag = arr_recibo[idx].valor_pen
|
||||
LET idx = idx + 1
|
||||
END FOREACH
|
||||
ELSE
|
||||
FOREACH buscar2 INTO arr_recibo[idx].*
|
||||
LET arr_recibo[idx].valor_pag = arr_recibo[idx].valor_pen
|
||||
LET idx = idx + 1
|
||||
END FOREACH
|
||||
END IF
|
||||
CALL set_count(idx - 1)
|
||||
|
||||
##### Aceptando los valores que se digitaran en el arreglo
|
||||
|
||||
DISPLAY ARRAY arr_recibo TO s_recibo.*
|
||||
|
||||
IF int_flag THEN
|
||||
LET numero_msg = 2
|
||||
CALL msg(numero_msg)
|
||||
LET int_flag = FALSE
|
||||
RETURN
|
||||
END IF
|
||||
|
||||
COMMAND "Retornar"
|
||||
CLEAR FORM
|
||||
|
||||
EXIT MENU
|
||||
END MENU
|
||||
END FUNCTION
|
||||
Reference in New Issue
Block a user