Commit inicial: fuentes MBS ERP (Genero 6) + .gitignore + docs/SETUP_PC_MBS.md
This commit is contained in:
@@ -0,0 +1,291 @@
|
||||
{
|
||||
-----------------------------------------------------------------------------
|
||||
PROGRAMA : CGPRMT016
|
||||
OBJETIVO : Mantenimiento de Cheques de pago Seguro Medico
|
||||
REALIZADO POR : Ing. Juan F. Soto
|
||||
FECHA : Noviembre 19, 1996
|
||||
-----------------------------------------------------------------------------
|
||||
}
|
||||
GLOBALS "cgprgb000.4gl"
|
||||
DEFINE smtb13 RECORD LIKE smtb00013.*
|
||||
|
||||
DEFINE pago_seguro RECORD
|
||||
numero LIKE cgtb00005.cheque_no,
|
||||
cuenta_p LIKE cgtb00005.cuenta_no,
|
||||
num_sol LIKE smtb00014.num_sol,
|
||||
beneficia SMALLINT,
|
||||
nombre CHAR(44),
|
||||
fecha LIKE cgtb00005.fecha,
|
||||
monto DECIMAL(12,2),
|
||||
codigo LIKE tetb00003.codigo
|
||||
END RECORD
|
||||
|
||||
DEFINE reclamaciones ARRAY[20] OF RECORD
|
||||
num_serv LIKE smtb00014.num_serv,
|
||||
valor LIKE smtb00014.valor_a_pagar
|
||||
END RECORD
|
||||
|
||||
###### Funcion que adiciona informacion referente a la aplicacion de un pago
|
||||
FUNCTION cgprmt016()
|
||||
|
||||
|
||||
OPTIONS
|
||||
FORM LINE 8,
|
||||
COMMENT LINE 22,
|
||||
PROMPT LINE 23
|
||||
|
||||
CALL pantalla()
|
||||
OPEN FORM cgfmmt016 FROM "cgfmmt016"
|
||||
DISPLAY FORM cgfmmt016
|
||||
|
||||
DISPLAY "cgprmt016" AT 4,3
|
||||
DISPLAY "Registro De Cheques Seguro Medico" AT 6,27
|
||||
|
||||
MENU "Mant."
|
||||
COMMAND "Adicionar"
|
||||
"Presione ESC Para Grabar Ctrl-C Para Cancelar Ctrl-F Moverse en Pantalla"
|
||||
LET int_flag = FALSE
|
||||
CALL cgprad016()
|
||||
COMMAND "Salir"
|
||||
LET int_flag = FALSE
|
||||
EXIT MENU
|
||||
END MENU
|
||||
END FUNCTION
|
||||
|
||||
FUNCTION cgprad016()
|
||||
LET hoy = TODAY
|
||||
LABEL volver1:
|
||||
INITIALIZE pago_seguro.* TO NULL
|
||||
CLEAR FORM
|
||||
LABEL volver:
|
||||
IF opc = "S" OR opc IS NULL THEN
|
||||
LET pago_seguro.nombre = NULL
|
||||
LET pago_seguro.monto = NULL
|
||||
LET opc = NULL
|
||||
END IF
|
||||
#### Aceptando los valores a insertar referentes al pago
|
||||
LET pago_seguro.cuenta_p = "1106"
|
||||
ERROR "Para Anular Cheques Presione <Ctrl-B>"
|
||||
INPUT BY NAME pago_seguro.* WITHOUT DEFAULTS
|
||||
ON KEY (CONTROL-B)
|
||||
LET anula_seguro = "S"
|
||||
CALL cgprmt015()
|
||||
|
||||
AFTER FIELD codigo
|
||||
LET p_descrip = NULL
|
||||
IF pago_seguro.codigo IS not NULL THEN
|
||||
SELECT a.descripcion INTO p_descrip
|
||||
FROM tetb00003 a
|
||||
WHERE a.codigo = pago_seguro.codigo
|
||||
|
||||
IF STATUS = NOTFOUND THEN
|
||||
LET numero_msg = 3
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD codigo
|
||||
END IF
|
||||
DISPLAY BY NAME p_descrip
|
||||
END IF
|
||||
|
||||
AFTER FIELD num_sol
|
||||
##### Selecionando datos referentes al suplidor
|
||||
IF pago_seguro.num_sol IS NOT NULL THEN
|
||||
# Verifica Que La Cuenta Del Catalogo Este En La Tabla de Los Bancos
|
||||
# Y Busca El Ultimo Numero De Secuencia
|
||||
SELECT cheque_no INTO numero FROM cgtb00012
|
||||
WHERE cuenta_no = pago_seguro.cuenta_p
|
||||
|
||||
IF STATUS = notfound THEN
|
||||
LET numero_msg = 205
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD cuenta_p
|
||||
END IF
|
||||
LET numero = numero + 1
|
||||
LET pago_seguro.numero = numero
|
||||
DISPLAY BY NAME pago_seguro.numero
|
||||
|
||||
# Busca Los Datos Del Banco Como: Direccion, Telefono, Cuenta Bancaria
|
||||
SELECT *INTO datos_ck.* FROM cgtb00012
|
||||
WHERE cuenta_no = pago_seguro.cuenta_p
|
||||
|
||||
# Verifica Que La Solicitud Exista
|
||||
SELECT a.*
|
||||
INTO smtb13.*
|
||||
FROM smtb00013 a
|
||||
WHERE a.num_sol = pago_seguro.num_sol
|
||||
|
||||
IF STATUS = NOTFOUND THEN
|
||||
LET numero_msg = 3
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD num_sol
|
||||
END IF
|
||||
# Controla Que La Solicitud No Este Pagada
|
||||
IF smtb13.cheque_no IS NOT NULL THEN
|
||||
LET numero_msg = 363
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD num_sol
|
||||
END IF
|
||||
|
||||
# Si La Solicitud Es Pagada A Un Empleado. Busca El Nombre Del Empleado En
|
||||
# La Maestra De Asegurados Al Seguro Medico
|
||||
IF smtb13.num_emp IS NOT NULL THEN
|
||||
SELECT UNIQUE a.nombre
|
||||
INTO pago_seguro.nombre
|
||||
FROM adtb00021 a, smtb00012 b
|
||||
WHERE (a.num_emp = b.num_emp) AND (a.cod_par = b.cod_par AND
|
||||
a.sec_par=b.sec_par) AND (a.num_emp=smtb13.num_emp) AND
|
||||
(a.cod_par = 0 AND a.sec_par = 0) AND (a.status_t IS NULL)
|
||||
AND (b.status_t IS NULL)
|
||||
|
||||
LET pago_seguro.beneficia = smtb13.num_emp
|
||||
END IF
|
||||
|
||||
# Si La Solicitud Es Hecha A Una Clinica. Busca El Nombre De La Clinica En
|
||||
# La Maestra De Clinicas.
|
||||
IF smtb13.cod_cli IS NOT NULL THEN
|
||||
SELECT a.nom_cli INTO pago_seguro.nombre
|
||||
FROM smtb00006 a
|
||||
WHERE a.cod_cli = smtb13.cod_cli
|
||||
LET pago_seguro.beneficia = smtb13.cod_cli
|
||||
END IF
|
||||
|
||||
# Si La Solicitud Es Hecha A Un Medico. Busca El Nombre Del Medico En
|
||||
# La Maestra De Medicos Afiliados.
|
||||
IF smtb13.cod_med IS NOT NULL THEN
|
||||
SELECT a.nom_med INTO pago_seguro.nombre
|
||||
FROM smtb00007 a
|
||||
WHERE a.cod_med = smtb13.cod_med
|
||||
LET pago_seguro.beneficia = smtb13.cod_med
|
||||
END IF
|
||||
DISPLAY BY NAME pago_seguro.nombre
|
||||
LET pago_seguro.monto = smtb13.monto
|
||||
END IF
|
||||
|
||||
BEFORE FIELD fecha
|
||||
LET pago_seguro.fecha = hoy
|
||||
DISPLAY BY NAME pago_seguro.fecha
|
||||
|
||||
AFTER FIELD fecha
|
||||
LET hoy = pago_seguro.fecha
|
||||
IF pago_seguro.fecha IS NULL THEN
|
||||
LET numero_msg = 16
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD fecha
|
||||
END IF
|
||||
|
||||
# Controla Que La Fecha Del Cheque Este Dentro De Los Periodos Contables.
|
||||
LET p_fechas = pago_seguro.fecha
|
||||
CALL prd()
|
||||
IF bandera = 1 THEN
|
||||
LET bandera = 0
|
||||
NEXT FIELD fecha
|
||||
END IF
|
||||
|
||||
AFTER INPUT
|
||||
|
||||
####### Creando la facilidad para cancelar proceso mediante CTRL-C
|
||||
IF int_flag THEN
|
||||
LET numero_msg = 2
|
||||
CALL msg(numero_msg)
|
||||
LET int_flag = FALSE
|
||||
CLEAR FORM
|
||||
RETURN
|
||||
END IF
|
||||
|
||||
IF pago_seguro.monto IS NULL THEN
|
||||
LET numero_msg = 16
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD monto
|
||||
END IF
|
||||
|
||||
# Control Por Si La Secuencia Es Modificada Manualmente y Se Va A Duplicar
|
||||
# Un Cheque.
|
||||
SELECT UNIQUE cheque_no FROM cgtb00005
|
||||
WHERE cheque_no = pago_seguro.numero and
|
||||
cuenta_no = pago_seguro.cuenta_p
|
||||
|
||||
IF STATUS != NOTFOUND THEN
|
||||
LET numero_msg = 12
|
||||
CALL msg(numero_msg)
|
||||
RETURN
|
||||
END IF
|
||||
EXIT INPUT
|
||||
END INPUT
|
||||
|
||||
#--------------------------------------------------------------------
|
||||
# Funcion que captura 5 lineas de detalles
|
||||
CALL detallado()
|
||||
#--------------------------------------------------------------------
|
||||
|
||||
PROMPT "Toda la Informacion Esta Correcta (S/N) ?" FOR char opc
|
||||
LET opc = UPSHIFT(opc)
|
||||
LET opc1 = "N"
|
||||
IF opc = "S" THEN
|
||||
|
||||
LET opc1 = "S"
|
||||
|
||||
START REPORT cheque TO "cheques"
|
||||
|
||||
# ACTUALIZACION DE LA TABLA SOLICITUDES DE CHEQUES
|
||||
UPDATE smtb00013 SET cheque_no = pago_seguro.numero,
|
||||
us_mod = user,
|
||||
fech_mod = current
|
||||
WHERE num_sol = pago_seguro.num_sol AND
|
||||
cheque_no IS NULL
|
||||
|
||||
# Actualizacion de la tabla datos generales del cheque
|
||||
INSERT INTO cgtb00005 values
|
||||
(pago_seguro.cuenta_p,pago_seguro.numero,NULL,pago_seguro.fecha,
|
||||
pago_seguro.nombre ,0,pago_seguro.monto,opc1,
|
||||
NULL,user,current,NULL,NULL)
|
||||
|
||||
# Actualizacion de la tabla control de los cheques
|
||||
UPDATE cgtb00012 set cheque_no = pago_seguro.numero
|
||||
WHERE cuenta_no = pago_seguro.cuenta_p
|
||||
|
||||
# Inserta los registros necesarios para la tabla de tesoreria
|
||||
# Codigos de Partida
|
||||
INSERT INTO tetb00006 values (pago_seguro.numero,pago_seguro.cuenta_p,
|
||||
pago_seguro.codigo,NULL,user,current,NULL,NULL)
|
||||
|
||||
# Impresion del cheque de pago
|
||||
FOR idx =1 TO 2
|
||||
LET arr_cuenta1[idx].cuenta_no = null
|
||||
LET arr_cuenta1[idx].departamento = null
|
||||
LET arr_cuenta1[idx].cod_aux = null
|
||||
LET arr_cuenta1[idx].cod_sec = null
|
||||
LET arr_cuenta1[idx].num_doc = null
|
||||
LET arr_cuenta1[idx].nom_cuenta = null
|
||||
END FOR
|
||||
LET recibo.tipo_doc = "CK"
|
||||
LET recibo.cuenta_p = "1112"
|
||||
LET recibo.numero = pago_seguro.numero
|
||||
LET recibo.nom_sup = pago_seguro.nombre
|
||||
LET recibo.fecha = pago_seguro.fecha
|
||||
LET recibo.monto = pago_seguro.monto
|
||||
LET recibo.codigo = pago_seguro.codigo
|
||||
OUTPUT TO REPORT cheque(recibo.*,arr_cuenta1[1].*)
|
||||
|
||||
DISPLAY " " AT 1,1
|
||||
FINISH REPORT cheque
|
||||
ELSE
|
||||
GOTO volver
|
||||
END IF
|
||||
|
||||
|
||||
LET numero_msg = 1
|
||||
CALL msg(numero_msg)
|
||||
CLEAR FORM
|
||||
# Impresion Fija Hacia La Impresora Secretaria de Finanzas O
|
||||
# Impresora de Tesoreria
|
||||
IF opc1 = "S" THEN
|
||||
IF printer = 1 THEN
|
||||
RUN "lp -dlpt33 $HOME/cheques"
|
||||
ELSE
|
||||
IF printer = 2 THEN
|
||||
RUN "lp -dlpt12 $HOME/cheques"
|
||||
|
||||
END IF
|
||||
END IF
|
||||
END IF
|
||||
|
||||
END FUNCTION
|
||||
Reference in New Issue
Block a user