752 lines
29 KiB
Plaintext
752 lines
29 KiB
Plaintext
{
|
|
------------------------------------------------------------------
|
|
PROGRAMA : TEPRMT001
|
|
OBJETIVO : Capturar, Modificar, Eliminar registros de la
|
|
Tabla de Depositos.
|
|
PROGRAMADOR : Tadeo A. Ferreras
|
|
FECHA REALIZACION : Diciembre 2, 1992.
|
|
------------------------------------------------------------------
|
|
}
|
|
|
|
GLOBALS "teprgb000.4gl"
|
|
DATABASE smarmotech
|
|
|
|
DEFINE
|
|
proced, idx1 INTEGER,
|
|
descrip_s CHAR(30),
|
|
suma DEC(12, 2)
|
|
DEFINE recibos DYNAMIC ARRAY OF RECORD
|
|
check1 CHAR(1),
|
|
fecha_doc DATE,
|
|
documento1 STRING,
|
|
tipo_doc CHAR(2),
|
|
tipo_cliente1 INT,
|
|
sec_cliente1 INT,
|
|
nom_cliente VARCHAR(200),
|
|
valor1 DEC(12, 2)
|
|
END RECORD
|
|
|
|
DEFINE bdocumento DYNAMIC ARRAY OF RECORD
|
|
num_doc3 INT,
|
|
fecha3 DATE,
|
|
cuenta_no3 CHAR(19),
|
|
valor3 DEC(12, 2)
|
|
END RECORD
|
|
|
|
MAIN
|
|
CALL ARG_VAL(1) RETURNING usuarios
|
|
CALL ARG_VAL(2) RETURNING clave
|
|
CALL ARG_VAL(5) RETURNING impresor
|
|
|
|
CALL STARTLOG("teprmt001.txt")
|
|
|
|
DISPLAY usuarios
|
|
DISPLAY clave
|
|
|
|
CONNECT TO "smarmotech" AS "MSSQL" USER usuarios USING clave
|
|
|
|
CALL teprmt001()
|
|
END MAIN
|
|
|
|
FUNCTION teprmt001()
|
|
CLEAR SCREEN
|
|
OPTIONS FORM LINE 9, ERROR LINE 23, MESSAGE LINE 24, COMMENT LINE 21
|
|
|
|
OPEN FORM tefmmt001 FROM "tefmmt001"
|
|
DISPLAY FORM tefmmt001
|
|
# CALL pantalla()
|
|
# CALL ayuda()
|
|
DISPLAY "teprmt001" AT 4, 3 ATTRIBUTE(RED)
|
|
DISPLAY "Mantenimiento de Depositos" AT 6, 27 ATTRIBUTE(BLACK)
|
|
|
|
MENU "OPCIONES"
|
|
ON ACTION Adicionar
|
|
LET INT_FLAG = FALSE
|
|
CLEAR FORM
|
|
LET INT_FLAG = FALSE
|
|
CALL tepcad001()
|
|
ON ACTION Consulta_modifica
|
|
LET int_flag = FALSE
|
|
CALL tepcmf001()
|
|
ON ACTION Salir
|
|
EXIT MENU
|
|
END MENU
|
|
END FUNCTION
|
|
|
|
FUNCTION tepcad001()
|
|
# WHENEVER ERROR CONTINUE
|
|
## Captura los datos que va a contener el registro
|
|
INITIALIZE deposito.* TO NULL
|
|
LET deposito.procedencia = NULL
|
|
LET descrip1 = NULL
|
|
LET descrip2 = NULL
|
|
DIALOG ATTRIBUTES(UNBUFFERED, FIELD ORDER FORM)
|
|
|
|
INPUT BY NAME deposito.*
|
|
|
|
BEFORE INPUT
|
|
LET deposito.fecha = TODAY
|
|
SELECT MAX(num_doc) INTO deposito.num_doc FROM tetb00001
|
|
|
|
IF deposito.num_doc IS NULL THEN
|
|
LET deposito.num_doc = 0
|
|
END IF
|
|
|
|
LET deposito.num_doc = deposito.num_doc + 1
|
|
DISPLAY BY NAME deposito.num_doc
|
|
|
|
CALL cuenta()
|
|
|
|
CALL busca_procedencia()
|
|
LET deposito.procedencia = proced
|
|
DISPLAY BY NAME deposito.procedencia
|
|
NEXT FIELD fecha
|
|
|
|
AFTER FIELD sucursal
|
|
SELECT a.nombre
|
|
INTO descrip_s
|
|
FROM companias a
|
|
WHERE a.cod_comp = deposito.sucursal
|
|
|
|
IF STATUS = NOTFOUND THEN
|
|
LET numero_msg = 3
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD sucursal
|
|
END IF
|
|
|
|
DISPLAY BY NAME descrip_s
|
|
BEFORE FIELD num_doc
|
|
|
|
AFTER FIELD cuenta_no
|
|
IF deposito.cuenta_no = " " OR deposito.cuenta_no IS NULL THEN
|
|
LET numero_msg = 16
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD cuenta_no
|
|
END IF
|
|
|
|
{ LET descrip1 = NULL
|
|
SELECT i.descripcion INTO descrip1
|
|
FROM cgtb00001 i,cgtb00012 b
|
|
WHERE i.cuenta_no = b.cuenta_no AND
|
|
i.cuenta_no= deposito.cuenta_no AND
|
|
i.status_t is null
|
|
|
|
IF descrip1 IS NULL THEN
|
|
LET numero_msg = 3
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD cuenta_no
|
|
END IF
|
|
DISPLAY BY NAME descrip1 }
|
|
|
|
AFTER FIELD procedencia
|
|
IF deposito.cta_banco IS NULL THEN
|
|
LET numero_msg = 16
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD cta_banco
|
|
END IF
|
|
|
|
LET descrip2 = NULL
|
|
{ IF deposito.procedencia IS NOT NULL THEN
|
|
SELECT unique a.descripcion INTO descrip2 FROM tetb00002 a
|
|
WHERE a.status_t IS NULL AND a.procedencia=deposito.procedencia
|
|
|
|
IF descrip2 IS NULL THEN
|
|
LET numero_msg = 3
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD procedencia
|
|
END IF
|
|
|
|
DISPLAY BY NAME descrip2
|
|
END IF}
|
|
|
|
AFTER FIELD fecha
|
|
IF deposito.procedencia IS NULL THEN
|
|
LET numero_msg = 16
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD procedencia
|
|
END IF
|
|
|
|
IF deposito.fecha IS NOT NULL THEN
|
|
IF deposito.fecha > TODAY THEN
|
|
LET numero_msg = 189
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD fecha
|
|
END IF
|
|
|
|
LET p_fechas = deposito.fecha
|
|
CALL prd(p_fechas, usuarios) RETURNING bandera
|
|
IF bandera = 1 THEN
|
|
LET bandera = 0
|
|
NEXT FIELD fecha
|
|
END IF
|
|
END IF
|
|
|
|
AFTER FIELD monto
|
|
IF deposito.fecha IS NULL THEN
|
|
LET numero_msg = 16
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD fecha
|
|
END IF
|
|
|
|
IF deposito.monto IS NULL OR deposito.monto = 0 THEN
|
|
LET numero_msg = 16
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD monto
|
|
END IF
|
|
|
|
END INPUT
|
|
INPUT ARRAY recibos FROM ri.* ATTRIBUTES(WITHOUT DEFAULTS)
|
|
BEFORE INPUT
|
|
LET selec =
|
|
"select a.tipo_doc,a.num_doc,a.tipo_cliente,a.sec_cliente,b.nombre,a.fecha_orig,",
|
|
" a.valor ",
|
|
" from cctb00001 a,vetb00004 b",
|
|
" where a.tipo_cliente=b.tipo_cliente and a.sec_cliente=b.sec_cliente and a.tipo_doc='PC'",
|
|
" and a.banco is null ",
|
|
" order by a.num_doc"
|
|
|
|
PREPARE comando FROM selec
|
|
DECLARE busca CURSOR FOR comando
|
|
|
|
LET idx = 1
|
|
FOREACH busca
|
|
INTO recibos[idx].tipo_doc,
|
|
recibos[idx].documento1,
|
|
recibos[idx].tipo_cliente1,
|
|
recibos[idx].sec_cliente1,
|
|
recibos[idx].nom_cliente,
|
|
recibos[idx].fecha_doc,
|
|
recibos[idx].valor1
|
|
LET idx = idx + 1
|
|
|
|
END FOREACH
|
|
IF deposito.cta_banco IS NULL THEN
|
|
CALL fgl_winmessage(
|
|
"ERROR",
|
|
"CUENTA DE BANCO NO PUEDE ESTAR EN BLANCO",
|
|
"CUENTA")
|
|
NEXT FIELD cta_banco
|
|
END IF
|
|
IF deposito.sucursal IS NULL THEN
|
|
CALL fgl_winmessage(
|
|
"ERROR",
|
|
"SUCURSAL NO PUEDE ESTAR EN BLANCO",
|
|
"SUCURSAL")
|
|
NEXT FIELD sucursal
|
|
END IF
|
|
IF deposito.monto IS NULL THEN
|
|
CALL fgl_winmessage(
|
|
"ERROR", "MONTO NO PUEDE ESTAR EN BLANCO", "CUENTA")
|
|
NEXT FIELD monto
|
|
END IF
|
|
|
|
END INPUT
|
|
ON ACTION recibos
|
|
|
|
INPUT ARRAY documentos FROM record4.* ATTRIBUTES(WITHOUT DEFAULTS)
|
|
BEFORE INPUT
|
|
LET suma = 0
|
|
FOR idx = 1 TO recibos.getLength()
|
|
|
|
IF recibos[idx].check1 = "S" THEN
|
|
IF recibos[idx].documento1 IS NOT NULL THEN
|
|
LET documentos[idx].fecha =
|
|
recibos[idx].fecha_doc
|
|
LET documentos[idx].documento =
|
|
recibos[idx].documento1
|
|
LET documentos[idx].tipo_cliente =
|
|
recibos[idx].tipo_cliente1
|
|
LET documentos[idx].sec_cliente =
|
|
recibos[idx].sec_cliente1
|
|
LET documentos[idx].cliente =
|
|
recibos[idx].nom_cliente
|
|
LET documentos[idx].valor = recibos[idx].valor1
|
|
LET documentos[idx].tipodocumento =
|
|
recibos[idx].tipo_doc
|
|
LET suma = documentos[idx].valor + suma
|
|
END IF
|
|
# display documentos[idx].valor
|
|
# END for
|
|
END IF
|
|
END FOR
|
|
ON ACTION guardar
|
|
BEGIN WORK
|
|
IF suma < 0 THEN
|
|
|
|
LET suma = suma * -1
|
|
|
|
END IF
|
|
|
|
IF suma != deposito.monto THEN
|
|
CALL fgl_winmessage(
|
|
"ERROR",
|
|
"EL VALOR SUMADO DE LOS RECIBOS NO PUEDE SER DIFERENTE AL MONTO DEL DEPOSITO",
|
|
"STOP")
|
|
NEXT FIELD documento
|
|
END IF
|
|
|
|
INSERT INTO tetb00001 VALUES(deposito.*)
|
|
UPDATE tetb00001
|
|
SET (us_crea, fech_crea)
|
|
= (usuarios, getdate())
|
|
WHERE @num_doc = deposito.num_doc
|
|
|
|
FOR idx = 1 TO documentos.getLength()
|
|
IF documentos[idx].documento IS NOT NULL THEN
|
|
INSERT INTO tetb00008(
|
|
num_doc,
|
|
tipo_doc,
|
|
documento,
|
|
fecha,
|
|
tipo_cliente,
|
|
sec_cliente,
|
|
nombre,
|
|
valor,
|
|
us_crea,
|
|
fech_crea)
|
|
VALUES(deposito.num_doc,
|
|
documentos[idx].tipodocumento,
|
|
documentos[idx].documento,
|
|
documentos[idx].fecha,
|
|
documentos[idx].tipo_cliente,
|
|
documentos[idx].sec_cliente,
|
|
documentos[idx].cliente,
|
|
documentos[idx].valor,
|
|
usuarios,
|
|
getdate())
|
|
UPDATE cctb00001
|
|
SET banco = deposito.cta_banco
|
|
WHERE num_doc = documentos[idx].documento
|
|
AND tipo_doc = documentos[idx].tipodocumento
|
|
END IF
|
|
END FOR
|
|
IF status < 0 THEN
|
|
ROLLBACK WORK
|
|
CALL fgl_winmessage(
|
|
"error",
|
|
"NO SE PUDO INSERTAR LA DATA LA DATA",
|
|
"STOP")
|
|
ELSE
|
|
COMMIT WORK
|
|
LET numero_msg = 13
|
|
CALL msg(numero_msg)
|
|
CALL documentos.clear()
|
|
CALL recibos.clear()
|
|
CLEAR FORM
|
|
RETURN
|
|
END IF
|
|
|
|
DISPLAY ARRAY documentos TO record4.*
|
|
|
|
END INPUT
|
|
|
|
ON ACTION CANCEL
|
|
LET int_flag = FALSE
|
|
CLEAR FORM
|
|
EXIT DIALOG
|
|
END DIALOG
|
|
|
|
{ INSERT INTO tetb00001 VALUES (deposito.*)
|
|
UPDATE tetb00001 SET (us_crea,fech_crea) = (usuarios,getdate())
|
|
WHERE @num_doc = deposito.num_doc}
|
|
|
|
END FUNCTION
|
|
|
|
FUNCTION tepcmf001()
|
|
|
|
## Aqui se prepara para la captura del criterio de seleccion
|
|
|
|
DIALOG ATTRIBUTES(UNBUFFERED, FIELD ORDER FORM)
|
|
|
|
CONSTRUCT criterio ON a.num_doc, a.cuenta_no FROM num_doc1, cuenta_no1
|
|
BEFORE CONSTRUCT
|
|
END CONSTRUCT
|
|
ON ACTION buscar
|
|
DISPLAY "aqui"
|
|
LET selec =
|
|
" SELECT UNIQUE a.num_doc,a.fecha,a.cuenta_no,a.monto ",
|
|
" FROM tetb00001 a ",
|
|
" WHERE a.status_t is null AND ",
|
|
criterio CLIPPED,
|
|
" ORDER BY a.num_doc "
|
|
|
|
PREPARE busca1 FROM selec
|
|
DECLARE datos SCROLL CURSOR WITH HOLD FOR busca1
|
|
LET idx = 1
|
|
FOREACH datos
|
|
INTO bdocumento[idx].num_doc3,
|
|
bdocumento[idx].fecha3,
|
|
bdocumento[idx].cuenta_no3,
|
|
bdocumento[idx].valor3
|
|
|
|
LET idx = idx + 1
|
|
END FOREACH
|
|
IF idx = 1 THEN
|
|
CALL FGL_winmessage(
|
|
"error", "NO HAY REGISTROS CON ESA CONDICION", "STOP")
|
|
CALL b_procedencias.clear()
|
|
EXIT DIALOG
|
|
END IF
|
|
DISPLAY ARRAY bdocumento TO bdoc.*
|
|
|
|
ON ACTION actualiza
|
|
|
|
LET p_fechas = deposito.fecha
|
|
CALL prd(p_fechas, usuarios) RETURNING bandera
|
|
IF bandera = 1 THEN
|
|
LET bandera = 0
|
|
RETURN
|
|
END IF
|
|
|
|
INPUT BY NAME deposito.* WITHOUT DEFAULTS
|
|
BEFORE INPUT
|
|
|
|
SELECT UNIQUE a.num_doc,
|
|
a.cuenta_no,
|
|
a.cta_banco,
|
|
a.procedencia,
|
|
a.fecha,
|
|
a.monto,
|
|
a.us_crea,
|
|
fech_crea,
|
|
a.us_mod,
|
|
a.fech_mod,
|
|
a.sucursal
|
|
INTO deposito.num_doc,
|
|
deposito.cuenta_no,
|
|
deposito.cta_banco,
|
|
deposito.procedencia,
|
|
deposito.fecha,
|
|
deposito.monto,
|
|
deposito.us_crea,
|
|
deposito.fech_crea,
|
|
deposito.us_mod,
|
|
deposito.fech_mod,
|
|
deposito.sucursal
|
|
FROM tetb00001 a
|
|
WHERE a.num_doc
|
|
=
|
|
bdocumento[arr_curr()].num_doc3
|
|
CALL cuenta()
|
|
CALL busca_procedencia()
|
|
# LET deposito.procedencia = proced
|
|
DISPLAY BY NAME deposito.*
|
|
NEXT FIELD fecha
|
|
|
|
AFTER FIELD sucursal
|
|
SELECT a.nombre
|
|
INTO descrip_s
|
|
FROM companias a
|
|
WHERE a.cod_comp = deposito.sucursal
|
|
|
|
IF STATUS = NOTFOUND THEN
|
|
LET numero_msg = 3
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD sucursal
|
|
END IF
|
|
|
|
DISPLAY BY NAME descrip_s
|
|
BEFORE FIELD num_doc
|
|
|
|
AFTER FIELD cuenta_no
|
|
IF deposito.cuenta_no = " "
|
|
OR deposito.cuenta_no IS NULL THEN
|
|
LET numero_msg = 16
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD cuenta_no
|
|
END IF
|
|
|
|
LET descrip1 = NULL
|
|
SELECT i.descripcion
|
|
INTO descrip1
|
|
FROM cgtb00001 i, cgtb00012 b
|
|
WHERE i.cuenta_no = b.cuenta_no
|
|
AND i.cuenta_no = deposito.cuenta_no
|
|
AND i.status_t IS NULL
|
|
|
|
IF descrip1 IS NULL THEN
|
|
LET numero_msg = 3
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD cuenta_no
|
|
END IF
|
|
DISPLAY BY NAME descrip1
|
|
|
|
AFTER FIELD procedencia
|
|
IF deposito.cta_banco IS NULL THEN
|
|
LET numero_msg = 16
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD cta_banco
|
|
END IF
|
|
|
|
LET descrip2 = NULL
|
|
IF deposito.procedencia IS NOT NULL THEN
|
|
SELECT UNIQUE a.descripcion
|
|
INTO descrip2
|
|
FROM tetb00002 a
|
|
WHERE a.status_t IS NULL
|
|
AND a.procedencia = deposito.procedencia
|
|
|
|
IF descrip2 IS NULL THEN
|
|
LET numero_msg = 3
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD procedencia
|
|
END IF
|
|
|
|
DISPLAY BY NAME descrip2
|
|
END IF
|
|
|
|
AFTER FIELD fecha
|
|
IF deposito.procedencia IS NULL THEN
|
|
LET numero_msg = 16
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD procedencia
|
|
END IF
|
|
|
|
IF deposito.fecha IS NOT NULL THEN
|
|
IF deposito.fecha > TODAY THEN
|
|
LET numero_msg = 189
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD fecha
|
|
END IF
|
|
|
|
LET p_fechas = deposito.fecha
|
|
CALL prd(p_fechas, usuarios) RETURNING bandera
|
|
IF bandera = 1 THEN
|
|
LET bandera = 0
|
|
NEXT FIELD fecha
|
|
END IF
|
|
END IF
|
|
|
|
AFTER FIELD monto
|
|
IF deposito.monto IS NULL OR deposito.monto = 0 THEN
|
|
LET numero_msg = 16
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD monto
|
|
END IF
|
|
END INPUT
|
|
INPUT ARRAY documentos
|
|
FROM record4.*
|
|
ATTRIBUTES(WITHOUT DEFAULTS)
|
|
BEFORE INPUT
|
|
LET selec =
|
|
"select a.tipo_doc,a.documento,a.fecha,a.tipo_cliente,a.sec_cliente,a.nombre,",
|
|
" a.valor",
|
|
" from tetb00008 a",
|
|
" where a.num_doc=",
|
|
deposito.num_doc
|
|
|
|
PREPARE busca2 FROM SELEC
|
|
DECLARE datos1 SCROLL CURSOR WITH HOLD FOR busca2
|
|
LET idx = 1
|
|
FOREACH datos1
|
|
INTO documentos[idx].tipodocumento,
|
|
documentos[idx].documento,
|
|
documentos[idx].fecha,
|
|
documentos[idx].tipo_cliente,
|
|
documentos[idx].sec_cliente,
|
|
documentos[idx].cliente,
|
|
documentos[idx].valor
|
|
LET idx = idx + 1
|
|
END FOREACH
|
|
|
|
ON ACTION guardar
|
|
BEGIN WORK
|
|
IF suma < 0 THEN
|
|
|
|
LET suma = suma * -1
|
|
|
|
END IF
|
|
|
|
IF suma != deposito.monto THEN
|
|
CALL fgl_winmessage(
|
|
"ERROR",
|
|
"EL VALOR SUMADO DE LOS RECIBOS NO PUEDE SER DIFERENTE AL MONTO DEL DEPOSITO",
|
|
"STOP")
|
|
NEXT FIELD documento
|
|
END IF
|
|
|
|
UPDATE tetb00001
|
|
SET (cuenta_no,
|
|
cta_banco,
|
|
procedencia,
|
|
fecha,
|
|
monto,
|
|
us_mod,
|
|
fech_mod)
|
|
= (deposito.cuenta_no,
|
|
deposito.cta_banco,
|
|
deposito.procedencia,
|
|
deposito.fecha,
|
|
deposito.monto,
|
|
usuarios,
|
|
getdate())
|
|
WHERE @num_doc = deposito.num_doc
|
|
{ DELETE FROM tetb00008
|
|
WHERE num_doc=deposito.num_doc
|
|
FOR idx=1 TO documentos.getLength()
|
|
IF documentos[idx].documento IS NOT NULL THEN
|
|
INSERT INTO tetb00008
|
|
(num_doc,tipo_doc,documento,fecha,tipo_cliente,sec_cliente,nombre,valor,us_mod,fech_mod)
|
|
VALUES(deposito.num_doc,documentos[idx].tipodocumento,documentos[idx].documento,documentos[idx].fecha,documentos[idx].tipo_cliente,
|
|
documentos[idx].sec_cliente,documentos[idx].cliente,documentos[idx].valor,usuarios,getdate())
|
|
UPDATE cctb00001
|
|
SET banco=deposito.cta_banco
|
|
WHERE num_doc=documentos[idx].documento AND tipo_doc=documentos[idx].tipodocumento
|
|
END IF
|
|
END for}
|
|
IF status < 0 THEN
|
|
ROLLBACK WORK
|
|
CALL fgl_winmessage(
|
|
"error",
|
|
"NO SE PUDO INSERTAR LA DATA LA DATA",
|
|
"STOP")
|
|
ELSE
|
|
COMMIT WORK
|
|
LET numero_msg = 13
|
|
CALL msg(numero_msg)
|
|
CALL documentos.clear()
|
|
CALL recibos.clear()
|
|
CLEAR FORM
|
|
RETURN
|
|
END IF
|
|
|
|
DISPLAY ARRAY documentos TO record4.*
|
|
END INPUT
|
|
|
|
{ UPDATE tetb00001 SET (cuenta_no,cta_banco,procedencia,
|
|
fecha,monto,us_mod,fech_mod)
|
|
= (deposito.cuenta_no,deposito.cta_banco,
|
|
deposito.procedencia,deposito.fecha,
|
|
deposito.monto,USER,CURRENT)
|
|
WHERE @num_doc = deposito.num_doc
|
|
|
|
LET numero_msg = 13
|
|
}
|
|
CALL msg(numero_msg)
|
|
|
|
ON ACTION eLiminar
|
|
# FOR idx=1 TO bdocumento.getLength()
|
|
UPDATE tetb00001
|
|
SET status_t = "E"
|
|
WHERE num_doc = bdocumento[arr_curr()].num_doc3
|
|
|
|
UPDATE tetb00008
|
|
SET status_t = "E"
|
|
WHERE num_doc = bdocumento[arr_curr()].num_doc3
|
|
|
|
LET selec =
|
|
"select a.tipo_doc,a.documento,a.fecha,a.tipo_cliente,a.sec_cliente,a.nombre,",
|
|
" a.valor",
|
|
" from tetb00008 a",
|
|
" where a.num_doc=",
|
|
deposito.num_doc
|
|
|
|
PREPARE busca3 FROM SELEC
|
|
DECLARE datos2 SCROLL CURSOR WITH HOLD FOR busca3
|
|
LET idx = 1
|
|
FOREACH datos2
|
|
INTO documentos[idx].tipodocumento,
|
|
documentos[idx].documento,
|
|
documentos[idx].fecha,
|
|
documentos[idx].tipo_cliente,
|
|
documentos[idx].sec_cliente,
|
|
documentos[idx].cliente,
|
|
documentos[idx].valor
|
|
UPDATE cctb00001
|
|
SET banco = NULL
|
|
WHERE num_doc = documentos[idx].documento
|
|
LET idx = idx + 1
|
|
END FOREACH
|
|
|
|
LET numero_msg = 39
|
|
CALL msg(numero_msg)
|
|
# END for
|
|
|
|
END DISPLAY
|
|
ON ACTION CANCEL
|
|
LET int_flag = FALSE
|
|
|
|
CLEAR FORM
|
|
EXIT DIALOG
|
|
|
|
END DIALOG
|
|
|
|
END FUNCTION
|
|
|
|
FUNCTION busca_cuenta()
|
|
# Esta funcion busca el nombre del cuenta y lo despliega en pantalla
|
|
# Esta funcion es valida solamente para la consulta-modificacion.
|
|
|
|
SELECT i.descripcion
|
|
INTO descrip1
|
|
FROM cgtb00001 i
|
|
WHERE i.cuenta_no = deposito.cuenta_no AND i.status_t IS NULL
|
|
|
|
IF status >= 0 THEN
|
|
IF status = NOTFOUND THEN
|
|
LET numero_msg = 68
|
|
CALL msg(numero_msg)
|
|
ELSE
|
|
IF status_reg = "E" THEN
|
|
LET numero_msg = 67
|
|
CALL msg(numero_msg)
|
|
END IF
|
|
END IF
|
|
ELSE
|
|
# CALL integridad()
|
|
IF bandera = 1 THEN
|
|
LET bandera = 0
|
|
RETURN
|
|
END IF
|
|
END IF
|
|
|
|
END FUNCTION
|
|
|
|
FUNCTION busca_procedencia()
|
|
# Esta funcion busca el nombre de la Procedencia
|
|
DEFINE
|
|
kid INT,
|
|
kdescripcion CHAR(80),
|
|
kprocedencia ui.ComboBox
|
|
|
|
LET kprocedencia = ui.combobox.forName("formonly.procedencia")
|
|
|
|
DECLARE buscador CURSOR FOR
|
|
SELECT i.procedencia, i.descripcion
|
|
FROM tetb00002 i
|
|
WHERE i.status_t IS NULL
|
|
ORDER BY 1
|
|
|
|
CALL kprocedencia.clear()
|
|
FOREACH buscador INTO kid, kdescripcion
|
|
CALL kprocedencia.addItem(kid, kdescripcion)
|
|
END FOREACH
|
|
|
|
END FUNCTION
|
|
|
|
FUNCTION cuenta()
|
|
|
|
DEFINE
|
|
kcuenta VARCHAR(20),
|
|
kdescripcion CHAR(80),
|
|
cuenta_no ui.ComboBox,
|
|
cuentaForm STRING
|
|
|
|
LET cuentaForm = "formonly.cuenta_no"
|
|
|
|
LET cuenta_no = ui.combobox.forname(cuentaForm)
|
|
|
|
DECLARE busca_cuenta CURSOR FOR
|
|
SELECT RTRIM(a.cuenta_no),
|
|
'(' + RTRIM(a.cuenta_no) + ')' + RTRIM(a.descripcion)
|
|
FROM cgtb00001 a
|
|
WHERE a.status_t IS NULL AND a.banco = 'SI'
|
|
ORDER BY a.descripcion
|
|
|
|
CALL cuenta_no.clear()
|
|
FOREACH busca_cuenta INTO kcuenta, kdescripcion
|
|
CALL cuenta_no.additem(kcuenta, kdescripcion)
|
|
END FOREACH
|
|
|
|
END FUNCTION
|