Commit inicial: fuentes MBS ERP (Genero 6) + .gitignore + docs/SETUP_PC_MBS.md
This commit is contained in:
@@ -0,0 +1,434 @@
|
||||
{
|
||||
-----------------------------------------------------------------------------
|
||||
PROGRAMA : CGPRMT001
|
||||
OBJETIVO : Catalogo de Cuentas Contables.
|
||||
PROGRAMADOR : Ing. Juan Soto
|
||||
FECHA REALIZACION: Septiembre 27, 1993.
|
||||
------------------------------------------------------------------------------
|
||||
}
|
||||
GLOBALS
|
||||
"cgprgb000.4gl"
|
||||
|
||||
DEFINE tree DYNAMIC ARRAY OF RECORD
|
||||
cuenta,descripcion1,aplica_a1 STRING,
|
||||
nivel1,departamento,catalogo,
|
||||
referencia STRING
|
||||
END RECORD
|
||||
|
||||
DEFINE xaplica_a CHAR(10), xdescripcion, xdescrip_n CHAR (60),
|
||||
xprimern CHAR(10)
|
||||
|
||||
|
||||
DEFINE cuenta_ant CHAR(8)
|
||||
|
||||
DEFINE modifica CHAR(1),
|
||||
balance DECIMAL(12,2)
|
||||
|
||||
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 cgprmt001()
|
||||
END MAIN
|
||||
|
||||
|
||||
FUNCTION cgprmt001()
|
||||
|
||||
OPTIONS
|
||||
FORM LINE 8,
|
||||
ERROR LINE 24,
|
||||
COMMENT LINE 23
|
||||
|
||||
OPEN FORM cgfmmt001 FROM "cgfmmt001"
|
||||
DISPLAY FORM cgfmmt001
|
||||
DISPLAY "cgprmt001" AT 4,3
|
||||
DISPLAY "Catalogo de Cuentas" AT 6,30
|
||||
|
||||
INITIALIZE presupa.* TO NULL
|
||||
CALL despliega_cuenta()
|
||||
MENU
|
||||
ON ACTION Adicionar
|
||||
LET int_flag = false
|
||||
LET modifica = "N"
|
||||
CALL cgpcad()
|
||||
ON ACTION consultar_modificar
|
||||
CALL despliega_cuenta()
|
||||
ON ACTION Salir # REPORTE AVERIA 156948
|
||||
EXIT MENU
|
||||
END MENU
|
||||
END FUNCTION
|
||||
|
||||
FUNCTION cgpcad()
|
||||
# Inicializacion de la variable de captura de informacion en blanco
|
||||
# y captura las informaciones
|
||||
CLEAR FORM
|
||||
|
||||
LABEL vuelve:
|
||||
INITIALIZE catalogo TO NULL
|
||||
INPUT BY NAME catalogo.*
|
||||
BEFORE INPUT
|
||||
CALL ctipo_impuesto()
|
||||
|
||||
AFTER FIELD descripcion
|
||||
IF catalogo.descripcion is null THEN
|
||||
LET numero_msg = 16
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD descripcion
|
||||
END IF
|
||||
|
||||
AFTER FIELD retencion
|
||||
IF catalogo.retencion = 'SI' THEN
|
||||
NEXT FIELD codigo_isr
|
||||
ELSE
|
||||
LET catalogo.codigo_isr =NULL
|
||||
EXIT INPUT
|
||||
END IF
|
||||
|
||||
AFTER FIELD cuenta_no
|
||||
IF catalogo.cuenta_no is null THEN
|
||||
LET numero_msg = 16
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD cuenta_no
|
||||
ELSE
|
||||
|
||||
# Selecciona los datos para saber si existen en el catalogo la cuenta que
|
||||
# se esta digitando
|
||||
SELECT * INTO catalogo.* FROM cgtb00001
|
||||
WHERE cuenta_no = catalogo.cuenta_no
|
||||
|
||||
# Chequea que el registro no este eliminado
|
||||
IF catalogo.status_t = "E" THEN
|
||||
LET numero_msg = 36
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD cuenta_no
|
||||
END IF
|
||||
|
||||
# Chequea si el registro existe
|
||||
IF status != notfound THEN
|
||||
DISPLAY BY NAME catalogo.*
|
||||
LET numero_msg = 3
|
||||
CALL msg(numero_msg)
|
||||
INITIALIZE catalogo TO NULL
|
||||
NEXT FIELD cuenta_no
|
||||
END IF
|
||||
END IF
|
||||
DISPLAY BY NAME catalogo.*
|
||||
|
||||
AFTER FIELD cata
|
||||
IF catalogo.cata is null THEN
|
||||
LET numero_msg = 16
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD cata
|
||||
END IF
|
||||
|
||||
AFTER FIELD aplica_a
|
||||
|
||||
# Chequeo de las cuentas que se sumarizan en otras cuentas
|
||||
IF catalogo.nivel > 1 THEN
|
||||
IF catalogo.aplica_a is null THEN
|
||||
LET numero_msg = 16
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD aplica_a
|
||||
END IF
|
||||
|
||||
SELECT nivel,descripcion INTO p_nivel ,descrip
|
||||
FROM cgtb00001 WHERE cuenta_no = catalogo.aplica_a and
|
||||
status_t is null
|
||||
IF status = notfound THEN
|
||||
LET numero_msg = 164
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD aplica_a
|
||||
END IF
|
||||
|
||||
IF p_nivel = 3 THEN
|
||||
LET numero_msg = 165
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD aplica_a
|
||||
END IF
|
||||
DISPLAY BY NAME descrip
|
||||
|
||||
END IF
|
||||
ON ACTION guardar ATTRIBUTE(TEXT="Salvar",IMAGE="filesave")
|
||||
IF int_flag THEN
|
||||
LET numero_msg = 2
|
||||
CALL msg(numero_msg)
|
||||
LET int_flag = false
|
||||
RETURN
|
||||
END IF
|
||||
IF catalogo.nivel > 1 THEN
|
||||
IF catalogo.aplica_a is null THEN
|
||||
LET numero_msg = 16
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD aplica_a
|
||||
END IF
|
||||
END IF
|
||||
IF catalogo.retencion = "SI" AND catalogo.codigo_isr IS NULL THEN
|
||||
NEXT FIELD codigo_isr
|
||||
END IF
|
||||
|
||||
|
||||
|
||||
|
||||
# Inserta los datos en el catalogo de cuentas del sistema
|
||||
INSERT INTO cgtb00001 (cuenta_no,descripcion,descrip_ing,
|
||||
analitico,cata,depto,nivel,ref,origen,estado_a,
|
||||
estado_m, aplica_a,us_crea,fech_crea,cuenta_resultado,grupo,tipo_cuenta,
|
||||
selectivo_consumo,retencion,codigo_isr)
|
||||
VALUES (catalogo.cuenta_no,catalogo.descripcion,catalogo.descrip_ing,
|
||||
catalogo.analitico,catalogo.cata,catalogo.depto,catalogo.nivel,
|
||||
catalogo.ref,catalogo.origen,catalogo.estado_a,catalogo.estado_m,
|
||||
catalogo.aplica_a,usuarios,getdate(),catalogo.cuenta_resultado,
|
||||
catalogo.grupo,catalogo.tipo_cuenta,catalogo.selectivo_consumo,catalogo.retencion,
|
||||
catalogo.codigo_isr)
|
||||
|
||||
|
||||
LET xaplica_a = catalogo.cuenta_no
|
||||
LET xdescripcion = catalogo.descripcion
|
||||
LET xprimern = catalogo.aplica_a
|
||||
|
||||
SELECT a.descripcion INTO xdescrip_n FROM cgtb00001 a
|
||||
WHERE a.nivel <= 2 AND a.cuenta_no = xprimern
|
||||
|
||||
IF catalogo.nivel <= 2 then
|
||||
Insert into cgtb00083 (primern,descrip_n,aplica_a,descripcion)
|
||||
|
||||
VALUES
|
||||
(xprimern,xdescrip_n,xaplica_a,xdescripcion)
|
||||
END IF
|
||||
|
||||
|
||||
LET numero_msg = 1
|
||||
CALL msg(numero_msg)
|
||||
CLEAR FORM
|
||||
CONTINUE INPUT
|
||||
END INPUT
|
||||
END FUNCTION
|
||||
|
||||
FUNCTION cgprmod()
|
||||
DIALOG ATTRIBUTE(UNBUFFERED)
|
||||
INPUT BY NAME catalogo.* ATTRIBUTE(WITHOUT DEFAULTS)
|
||||
BEFORE INPUT
|
||||
IF catalogo.status_t = 'E' THEN
|
||||
CALL fgl_winmessage("INFO","CUENTA DESACTIVADA, NO PUEDE ACTUALIZAR","INFO")
|
||||
RETURN
|
||||
END IF
|
||||
|
||||
CALL ctipo_impuesto()
|
||||
|
||||
AFTER FIELD retencion
|
||||
IF catalogo.retencion = 'SI' THEN
|
||||
NEXT FIELD codigo_isr
|
||||
ELSE
|
||||
LET catalogo.codigo_isr =NULL
|
||||
DISPLAY BY NAME catalogo.codigo_isr
|
||||
# EXIT INPUT
|
||||
END IF
|
||||
|
||||
AFTER FIELD descripcion
|
||||
IF catalogo.descripcion is null THEN
|
||||
LET numero_msg = 16
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD descripcion
|
||||
END IF
|
||||
|
||||
BEFORE FIELD cuenta_no
|
||||
LET cuenta_ant = catalogo.cuenta_no CLIPPED
|
||||
|
||||
AFTER FIELD cata
|
||||
IF catalogo.cata is null THEN
|
||||
LET numero_msg = 16
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD cata
|
||||
END IF
|
||||
|
||||
AFTER FIELD aplica_a
|
||||
# Chequeo de las cuentas que se sumarizan en otras cuentas
|
||||
IF catalogo.nivel > 1 THEN
|
||||
IF catalogo.aplica_a is null THEN
|
||||
LET numero_msg = 16
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD aplica_a
|
||||
END IF
|
||||
SELECT nivel,descripcion INTO p_nivel,descrip
|
||||
FROM cgtb00001
|
||||
WHERE @cuenta_no = catalogo.aplica_a and status_t is null
|
||||
|
||||
IF status = notfound THEN
|
||||
LET numero_msg = 163
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD aplica_a
|
||||
END IF
|
||||
IF p_nivel = 3 THEN
|
||||
LET numero_msg = 165
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD aplica_a
|
||||
END IF
|
||||
DISPLAY BY NAME descrip
|
||||
|
||||
END IF
|
||||
|
||||
ON ACTION guardar ATTRIBUTE(TEXT="Salvar", IMAGE="filesave")
|
||||
IF catalogo.nivel > 1 THEN
|
||||
IF catalogo.aplica_a is null THEN
|
||||
LET numero_msg = 16
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD aplica_a
|
||||
END IF
|
||||
END IF
|
||||
|
||||
IF catalogo.retencion="NO" THEN
|
||||
LET catalogo.codigo_isr = NULL
|
||||
DISPLAY BY NAME catalogo.codigo_isr
|
||||
END IF
|
||||
IF catalogo.retencion = "SI" AND catalogo.codigo_isr IS NULL THEN
|
||||
NEXT FIELD codigo_isr
|
||||
END IF
|
||||
|
||||
# Actualizacion de la tabla del catalogo de cuentas
|
||||
UPDATE cgtb00001 set (cuenta_no,descripcion,descrip_ing,analitico,cata,
|
||||
depto,nivel,ref,origen,estado_a,estado_m,aplica_a,
|
||||
us_mod,fech_mod,grupo,cuenta_resultado,tipo_cuenta,selectivo_consumo,
|
||||
retencion,codigo_isr) =
|
||||
(catalogo.cuenta_no,catalogo.descripcion,
|
||||
catalogo.descrip_ing,catalogo.analitico,
|
||||
catalogo.cata,catalogo.depto,catalogo.nivel,
|
||||
catalogo.ref,catalogo.origen,catalogo.estado_a,
|
||||
catalogo.estado_m,catalogo.aplica_a,usuarios,getdate(),catalogo.grupo,
|
||||
catalogo.cuenta_resultado,catalogo.tipo_cuenta,catalogo.selectivo_consumo,
|
||||
catalogo.retencion,catalogo.codigo_isr)
|
||||
WHERE @cuenta_no = cuenta_ant
|
||||
|
||||
LET xaplica_a = catalogo.cuenta_no
|
||||
LET xdescripcion = catalogo.descripcion
|
||||
LET xprimern = catalogo.aplica_a
|
||||
|
||||
SELECT a.descripcion INTO xdescrip_n FROM cgtb00001 a
|
||||
WHERE a.nivel <= 2 AND a.cuenta_no = xprimern
|
||||
|
||||
IF catalogo.nivel <= 2 then
|
||||
UPDATE cgtb00083
|
||||
SET (primern,descrip_n,aplica_a,descripcion)=
|
||||
(xprimern,xdescrip_n,xaplica_a,xdescripcion)
|
||||
WHERE aplica_a = catalogo.cuenta_no
|
||||
END IF
|
||||
LET numero_msg = 13
|
||||
CALL msg(numero_msg)
|
||||
|
||||
CALL busca_criterio()
|
||||
CALL desplegar()
|
||||
|
||||
|
||||
|
||||
END INPUT
|
||||
ON ACTION CANCEL ATTRIBUTE(TEXT="Cancelar",IMAGE="quit")
|
||||
LET numero_msg = 2
|
||||
CALL msg(numero_msg)
|
||||
LET int_flag = FALSE
|
||||
RETURN
|
||||
|
||||
END DIALOG
|
||||
|
||||
END FUNCTION
|
||||
|
||||
# Funcion para buscar los departamentos
|
||||
FUNCTION busca_depto()
|
||||
OPEN WINDOW ws_busca AT 3,2 WITH FORM "cgfmwd001" ATTRIBUTE (BORDER,
|
||||
FORM LINE FIRST + 1,COMMENT LINE LAST -1)
|
||||
CONSTRUCT BY NAME criterio ON adtb00001.nom_dpto
|
||||
LET selec2 = "SELECT departamento,nom_dpto FROM adtb00001 WHERE ",
|
||||
criterio clipped,
|
||||
"ORDER BY 1"
|
||||
PREPARE comando1 FROM selec2
|
||||
DECLARE busca2 CURSOR FOR comando1
|
||||
OPEN busca2
|
||||
LET idx = 1
|
||||
WHILE status != notfound
|
||||
FETCH busca2 INTO ws[idx].*
|
||||
IF status = notfound THEN
|
||||
EXIT WHILE
|
||||
END IF
|
||||
LET idx = idx + 1
|
||||
END WHILE
|
||||
CALL set_count(idx-1)
|
||||
DISPLAY ARRAY ws TO s_ws.*
|
||||
LET curr = scr_line()
|
||||
CLOSE WINDOW ws_busca
|
||||
END FUNCTION
|
||||
|
||||
FUNCTION despliega_cuenta()
|
||||
|
||||
DEFINE NAME, id, parentId STRING
|
||||
DEFINE p INT
|
||||
DEFINE i INT
|
||||
|
||||
CONSTRUCT criterio ON a.cuenta_no FROM cuenta
|
||||
AFTER CONSTRUCT
|
||||
IF int_flag THEN
|
||||
LET int_flag = FALSE
|
||||
RETURN
|
||||
END IF
|
||||
EXIT CONSTRUCT
|
||||
END CONSTRUCT
|
||||
CALL busca_criterio()
|
||||
CALL desplegar()
|
||||
END FUNCTION
|
||||
FUNCTION busca_criterio()
|
||||
LET selec =
|
||||
"SELECT a.cuenta_no,a.descripcion,a.aplica_a,a.nivel,a.cata, a.depto,a.ref FROM cgtb00001 a
|
||||
WHERE a.status_t IS NULL AND ",criterio CLIPPED,
|
||||
" ORDER BY a.cuenta_no"
|
||||
|
||||
PREPARE comandob FROM selec
|
||||
DECLARE busca_cuenta CURSOR FOR comandob
|
||||
|
||||
LET i = 1
|
||||
FOREACH busca_cuenta INTO tree[i].*
|
||||
LET i = i +1
|
||||
|
||||
END FOREACH
|
||||
IF i = 1 THEN
|
||||
CALL fgl_winmessage("INFO","NO EXISTEN REGISTROS CON ESTA CONDICION","INFO")
|
||||
RETURN
|
||||
END IF
|
||||
|
||||
END FUNCTION
|
||||
FUNCTION desplegar()
|
||||
DISPLAY ARRAY tree TO arbol.*
|
||||
BEFORE DISPLAY
|
||||
CALL ctipo_impuesto()
|
||||
ON ACTION modificar ATTRIBUTE(TEXT="Modificar", IMAGE="fa-download")
|
||||
LET catalogo.cuenta_no = tree[arr_curr()].cuenta
|
||||
SELECT a.* INTO catalogo.* FROM cgtb00001 a WHERE a.cuenta_no = catalogo.cuenta_no
|
||||
CALL cgprmod()
|
||||
ON ACTION eliminar ATTRIBUTE(TEXT="Desactivar", IMAGE="delete")
|
||||
CALL eliminar()
|
||||
ON ACTION CANCEL ATTRIBUTE(TEXT="Cancelar",IMAGE="quit")
|
||||
LET int_flag = FALSE
|
||||
EXIT PROGRAM
|
||||
AFTER DISPLAY
|
||||
EXIT DISPLAY
|
||||
END DISPLAY
|
||||
END FUNCTION
|
||||
FUNCTION eliminar()
|
||||
LET balance = 0
|
||||
SELECT SUM(a.debito-a.credito) INTO balance
|
||||
FROM cgtb00004 a
|
||||
WHERE a.cuenta_no = catalogo.cuenta_no
|
||||
|
||||
IF balance != 0 THEN
|
||||
LET numero_msg = 381
|
||||
CALL msg(numero_msg)
|
||||
RETURN
|
||||
END IF
|
||||
UPDATE cgtb00001 set status_t = "E"
|
||||
WHERE cuenta_no = catalogo.cuenta_no
|
||||
|
||||
LET numero_msg = 39
|
||||
CALL msg(numero_msg)
|
||||
|
||||
|
||||
END FUNCTION
|
||||
Reference in New Issue
Block a user