Commit inicial: fuentes MBS ERP (Genero 6) + .gitignore + docs/SETUP_PC_MBS.md
This commit is contained in:
@@ -0,0 +1,231 @@
|
||||
{
|
||||
-----------------------------------------------------------------------------
|
||||
PROGRAMA : CGPRCS002
|
||||
OBJETIVO : Consulta de Transaciones
|
||||
REALIZADO POR : Ing. Tadeo A. Ferreras
|
||||
FECHA : Febrero 22, 1994.
|
||||
-----------------------------------------------------------------------------
|
||||
}
|
||||
GLOBALS "cgprgb000.4gl"
|
||||
DEFINE balance2 DECIMAL(12,2)
|
||||
|
||||
DEFINE cuenta1 RECORD
|
||||
fecha DATE,
|
||||
ref CHAR(14),
|
||||
cod_aux SMALLINT,
|
||||
cod_sec SMALLINT,
|
||||
departamento SMALLINT,
|
||||
debito DECIMAL(12,2),
|
||||
credito DECIMAL(12,2)
|
||||
END RECORD
|
||||
|
||||
DEFINE cuenta2 DYNAMIC ARRAY OF RECORD
|
||||
fecha DATE,
|
||||
detalle CHAR(23),
|
||||
departamento SMALLINT,
|
||||
debito DECIMAL(12,2),
|
||||
credito DECIMAL(12,2),
|
||||
balance1 DECIMAL(12,2)
|
||||
END RECORD
|
||||
|
||||
DEFINE recibo1 RECORD
|
||||
cuenta_no CHAR(8),
|
||||
descripcion CHAR(30),
|
||||
balance DECIMAL(12,2)
|
||||
END RECORD
|
||||
|
||||
DEFINE fecha1,fecha2 DATE
|
||||
MAIN
|
||||
DEFER INTERRUPT
|
||||
CALL ARG_VAL(1) RETURNING usuarios
|
||||
CALL ARG_VAL(2) RETURNING clave
|
||||
|
||||
CONNECT to "smarmotech" USER usuarios USING clave
|
||||
SELECT a.* INTO p_compania.* FROM companias a
|
||||
|
||||
CALL cgprcs002()
|
||||
END MAIN
|
||||
|
||||
|
||||
###### Funcion que adiciona informacion referente a la aplicacion de un pago
|
||||
FUNCTION cgprcs002()
|
||||
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 cgfmcs002 FROM "cgfmcs002"
|
||||
DISPLAY FORM cgfmcs002
|
||||
DISPLAY "cgprcs002" AT 4,3
|
||||
DISPLAY "Transacciones" AT 6,33
|
||||
|
||||
DISPLAY "<CTRL-C> CANCELA OPERACION" AT 2,5 ATTRIBUTE (BOLD)
|
||||
LET int_flag = FALSE
|
||||
INPUT BY NAME fecha1,fecha2
|
||||
AFTER FIELD fecha1
|
||||
IF fecha1 IS NULL THEN
|
||||
LET numero_msg = 16
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD fecha1
|
||||
END IF
|
||||
|
||||
AFTER FIELD fecha2
|
||||
IF fecha2 IS NULL THEN
|
||||
LET numero_msg = 16
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD fecha2
|
||||
END IF
|
||||
|
||||
IF fecha1 > fecha2 THEN
|
||||
LET numero_msg = 149
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD fecha1
|
||||
END IF
|
||||
END INPUT
|
||||
IF int_flag THEN
|
||||
LET numero_msg = 2
|
||||
CALL msg(numero_msg)
|
||||
LET int_flag = FALSE
|
||||
RETURN
|
||||
END IF
|
||||
|
||||
CONSTRUCT criterio ON a.cuenta_no FROM cuenta_no
|
||||
IF int_flag THEN
|
||||
LET numero_msg = 2
|
||||
CALL msg(numero_msg)
|
||||
LET int_flag = FALSE
|
||||
RETURN
|
||||
END IF
|
||||
|
||||
LET selec =
|
||||
"SELECT UNIQUE a.cuenta_no,b.descripcion ",
|
||||
"FROM cgtb00004 a,cgtb00001 b ",
|
||||
"WHERE a.cuenta_no = b.cuenta_no AND a.status_t IS NULL AND ",
|
||||
" b.status_t IS NULL AND a.fecha BETWEEN ? AND ? AND ",
|
||||
criterio CLIPPED," ORDER BY 1 "
|
||||
|
||||
PREPARE comando FROM selec
|
||||
DECLARE busca SCROLL CURSOR FOR comando
|
||||
OPEN busca USING fecha1,fecha2
|
||||
|
||||
FETCH FIRST busca INTO recibo1.*
|
||||
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 recibo1.*
|
||||
IF STATUS = NOTFOUND THEN
|
||||
FETCH LAST busca INTO recibo1.*
|
||||
CALL buscando()
|
||||
LET numero_msg = 5
|
||||
CALL msg(numero_msg)
|
||||
END IF
|
||||
|
||||
CALL buscando()
|
||||
|
||||
COMMAND "Anterior"
|
||||
FETCH PREVIOUS busca INTO recibo1.*
|
||||
IF STATUS = NOTFOUND THEN
|
||||
FETCH FIRST busca INTO recibo1.*
|
||||
CALL buscando()
|
||||
LET numero_msg = 5
|
||||
CALL msg(numero_msg)
|
||||
END IF
|
||||
|
||||
CALL buscando()
|
||||
|
||||
COMMAND "Primero"
|
||||
FETCH FIRST busca INTO recibo1.*
|
||||
CALL buscando()
|
||||
|
||||
LET numero_msg = 4
|
||||
CALL msg(numero_msg)
|
||||
|
||||
COMMAND "Ultimo"
|
||||
FETCH LAST busca INTO recibo1.*
|
||||
CALL buscando()
|
||||
|
||||
LET numero_msg = 4
|
||||
CALL msg(numero_msg)
|
||||
|
||||
COMMAND "Ver"
|
||||
|
||||
DECLARE busca1 SCROLL CURSOR FOR
|
||||
SELECT a.fecha,a.ref,a.cod_aux,a.cod_sec,a.departamento,
|
||||
a.debito,a.credito
|
||||
FROM cgtb00004 a
|
||||
WHERE a.fecha BETWEEN fecha1 AND fecha2 AND a.status_t IS NULL AND
|
||||
a.cuenta_no = recibo1.cuenta_no ORDER BY 1,2
|
||||
|
||||
OPEN busca1
|
||||
|
||||
LET balance2 = recibo1.balance
|
||||
LET idx = 1
|
||||
WHILE STATUS != NOTFOUND
|
||||
FETCH ABSOLUTE idx busca1 INTO cuenta1.*
|
||||
IF STATUS = NOTFOUND THEN
|
||||
EXIT WHILE
|
||||
END IF
|
||||
|
||||
IF cuenta1.debito IS NULL THEN
|
||||
LET cuenta1.debito = 0
|
||||
END IF
|
||||
IF cuenta1.credito IS NULL THEN
|
||||
LET cuenta1.credito = 0
|
||||
END IF
|
||||
|
||||
LET cuenta2[idx].fecha = cuenta1.fecha
|
||||
LET cuenta2[idx].detalle = cuenta1.ref," ",
|
||||
cuenta1.cod_aux USING "&&","-",
|
||||
cuenta1.cod_sec USING "&&&&"
|
||||
LET cuenta2[idx].departamento = cuenta1.departamento
|
||||
|
||||
LET cuenta2[idx].debito = cuenta1.debito
|
||||
LET cuenta2[idx].credito = cuenta1.credito
|
||||
|
||||
LET cuenta2[idx].balance1 = balance2 + (cuenta2[idx].debito -
|
||||
cuenta2[idx].credito)
|
||||
|
||||
LET balance2 = cuenta2[idx].balance1
|
||||
LET idx = idx + 1
|
||||
END WHILE
|
||||
CALL SET_COUNT(idx - 1)
|
||||
|
||||
DISPLAY ARRAY cuenta2 TO s_cuenta2.*
|
||||
LET curr = arr_curr()
|
||||
|
||||
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 SUM(a.debito-a.credito) INTO recibo1.balance FROM cgtb00004 a
|
||||
WHERE a.cuenta_no = recibo1.cuenta_no AND a.status_t IS NULL AND
|
||||
a.fecha < fecha1
|
||||
|
||||
IF recibo1.balance IS NULL THEN
|
||||
LET recibo1.balance = 0
|
||||
END IF
|
||||
|
||||
DISPLAY BY NAME recibo1.*
|
||||
END FUNCTION
|
||||
|
||||
Reference in New Issue
Block a user