Commit inicial: fuentes MBS ERP (Genero 6) + .gitignore + docs/SETUP_PC_MBS.md
This commit is contained in:
@@ -0,0 +1,271 @@
|
||||
{
|
||||
-----------------------------------------------------------------------------
|
||||
PROGRAMA : CCPRCS003
|
||||
OBJETIVO : Consultas de Movimientos CXC
|
||||
REALIZADO POR : JUAN SOTO
|
||||
FECHA : Enero 26, 1997
|
||||
DIRECTOR PROYECTO : JOSE ALFREDO PAULINO ALEJO
|
||||
-----------------------------------------------------------------------------
|
||||
}
|
||||
GLOBALS "ccprgb000.4gl"
|
||||
|
||||
DEFINE valor_cheque1,p_num_doc,aplicar INTEGER
|
||||
DEFINE valor_nc,nc_pend,valor_ctrl,p_total,val_pen,valor2 DECIMAL(12,2)
|
||||
DEFINE fecha1 DATE
|
||||
DEFINE nombre_cta CHAR(30)
|
||||
DEFINE tipo_doc1 CHAR(2)
|
||||
DEFINE opc CHAR(1)
|
||||
|
||||
MAIN
|
||||
DEFER INTERRUPT
|
||||
CALL ARG_VAL(1) RETURNING usuarios
|
||||
CALL ARG_VAL(2) RETURNING clave
|
||||
CALL ARG_VAL(3) RETURNING impresor
|
||||
CALL ARG_VAL(7) RETURNING strconect
|
||||
|
||||
|
||||
IF strconect = 'marmotech' THEN
|
||||
CONNECT to strconect USER 'conecta' USING 'conecta'
|
||||
ELSE
|
||||
CONNECT to strconect USER usuarios USING clave
|
||||
|
||||
END IF
|
||||
SELECT a.* INTO p_companias.* FROM companias a
|
||||
CALL ccprcs003()
|
||||
END MAIN
|
||||
|
||||
####### Funcion para agregar un recibo de pago
|
||||
|
||||
FUNCTION ccprcs003()
|
||||
|
||||
OPTIONS
|
||||
FORM LINE 8,
|
||||
ERROR LINE 24,
|
||||
COMMENT LINE 22,
|
||||
PROMPT LINE 23
|
||||
|
||||
#CALL pantalla()
|
||||
OPEN FORM ccfmcs003 FROM "ccfmcs003"
|
||||
DISPLAY FORM ccfmcs003
|
||||
DISPLAY "ccprcs003" AT 4,3
|
||||
DISPLAY "Movimientos de CXC" AT 6,31
|
||||
|
||||
MENU "OPCION"
|
||||
COMMAND "Consultar-modificar"
|
||||
"<Esc> Busca Registro <Delete> Cancela Operacion"
|
||||
CALL ccpccs003()
|
||||
COMMAND "Salir" "Retorna Menu Anterior"
|
||||
EXIT MENU
|
||||
END MENU
|
||||
END FUNCTION
|
||||
|
||||
|
||||
## Funcion para consultar/modificar un recibo de pago
|
||||
FUNCTION ccpccs003()
|
||||
|
||||
DEFINE usuario RECORD
|
||||
us_crea CHAR(9),
|
||||
fech_crea LIKE cctb00001.fech_crea
|
||||
END RECORD
|
||||
|
||||
DIALOG ATTRIBUTES(UNBUFFERED, FIELD ORDER FORM)
|
||||
## SE PREPARA EL CRITERIO PARA CONSULTAR/MODIFICAR UN REGISTRO
|
||||
CONSTRUCT CRITERIO ON a.tipo_doc,a.num_doc,a.tipo_cliente,a.sec_cliente,
|
||||
a.cod_emp_sec
|
||||
FROM tipo_doc,num_doc,tipo_cliente,sec_cliente,cod_emp_sec
|
||||
ON ACTION buscar
|
||||
LET selec =
|
||||
"SELECT UNIQUE a.tipo_doc,a.num_doc,a.tipo_cliente, ",
|
||||
" a.sec_cliente,a.cod_emp_sec,CONVERT(CHAR(10),a.fecha_orig,103) ",
|
||||
"FROM cctb00001 a ",
|
||||
"WHERE ",criterio clipped,
|
||||
" and a.tipo_doc NOT IN ('FE','FT','DE','PC') AND ",
|
||||
" a.status_t is null ORDER BY CONVERT(CHAR(10),a.fecha_orig,103)"
|
||||
|
||||
PREPARE busca FROM selec
|
||||
DECLARE datos SCROLL CURSOR FOR busca
|
||||
OPEN datos
|
||||
|
||||
FETCH FIRST datos INTO recibo.*
|
||||
IF status = NOTFOUND THEN
|
||||
LET numero_msg = 3
|
||||
CALL msg(numero_msg)
|
||||
RETURN
|
||||
END IF
|
||||
|
||||
CALL informacion()
|
||||
|
||||
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
|
||||
|
||||
CALL informacion()
|
||||
|
||||
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
|
||||
|
||||
CALL informacion()
|
||||
|
||||
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
|
||||
|
||||
CALL informacion()
|
||||
|
||||
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
|
||||
|
||||
CALL informacion()
|
||||
|
||||
COMMAND "Ver"
|
||||
|
||||
IF recibo.tipo_doc = "PG" THEN
|
||||
LET selec =
|
||||
"SELECT a.num_doc,a.aplica_a,a.valor,a.monto_desc,a.valor FROM cctb00001 a ",
|
||||
"WHERE a.tipo_cliente = ? and a.sec_cliente = ? and (a.tipo_doc = ? OR ",
|
||||
" a.tipo_doc = 'DE') AND a.num_cheque = ? AND a.status_t IS NULL ",
|
||||
" ORDER BY aplica_a,num_doc "
|
||||
ELSE
|
||||
LET selec =
|
||||
"SELECT num_doc,aplica_a,valor,monto_desc,valor FROM cctb00001 ",
|
||||
"WHERE tipo_cliente = ? and sec_cliente = ? and tipo_doc = ? AND ",
|
||||
" num_cheque = ? AND status_t IS NULL ORDER BY num_doc,aplica_A "
|
||||
END IF
|
||||
|
||||
PREPARE comando FROM selec
|
||||
DECLARE buscar1 CURSOR FOR comando
|
||||
OPEN buscar1 USING recibo.tipo_cliente,recibo.sec_cliente,recibo.tipo_doc,
|
||||
recibo.num_doc
|
||||
|
||||
LET idx = 1
|
||||
WHILE STATUS != NOTFOUND
|
||||
FETCH buscar1 INTO arr_recibo[idx].*
|
||||
|
||||
IF STATUS = NOTFOUND THEN
|
||||
EXIT WHILE
|
||||
END IF
|
||||
|
||||
IF arr_recibo[idx].num_nc = recibo.num_doc THEN
|
||||
LET arr_recibo[idx].num_nc = null
|
||||
END IF
|
||||
IF recibo.tipo_doc != "ND" OR recibo.tipo_doc='OD' THEN
|
||||
LET arr_recibo[idx].valor_pen = arr_recibo[idx].valor_pen * -1
|
||||
ELSE
|
||||
IF arr_recibo[idx].valor_pen < 0 THEN
|
||||
LET arr_recibo[idx].valor_pen = arr_recibo[idx].valor_pen *-1
|
||||
END IF
|
||||
END IF
|
||||
LET arr_recibo[idx].valor_pag = arr_recibo[idx].valor_pen
|
||||
LET arr_recibo[idx].valor_pen = 0
|
||||
LET arr_recibo[idx].desc_p = arr_recibo[idx].desc_p * -1
|
||||
|
||||
SELECT sum(valor+monto_desc) INTO valor2 FROM cctb00001
|
||||
WHERE tipo_cliente = recibo.tipo_cliente and
|
||||
sec_cliente = recibo.sec_cliente and
|
||||
aplica_a = arr_recibo[idx].aplica_a and
|
||||
status_t is null AND num_cheque = recibo.num_doc
|
||||
|
||||
LET arr_recibo[idx].valor_pen = valor2
|
||||
LET idx = idx + 1
|
||||
END WHILE
|
||||
|
||||
CALL set_count(idx - 1)
|
||||
|
||||
## AQUI SE MODIFICAN/ACTUALIZAN LOS CAMPOS DEL ARREGLO
|
||||
DISPLAY ARRAY arr_recibo TO s_recibo.*
|
||||
ON ACTION productos
|
||||
IF recibo.tipo_doc = 'ND' OR recibo.tipo_doc='OD' OR recibo.tipo_doc='NC' OR recibo.tipo_doc='OC' THEN
|
||||
CALL productos(arr_recibo[arr_curr()].aplica_a)
|
||||
END IF
|
||||
AFTER DISPLAY
|
||||
EXIT DISPLAY
|
||||
END DISPLAY
|
||||
COMMAND "Retornar"
|
||||
CLEAR FORM
|
||||
EXIT MENU
|
||||
END MENU
|
||||
ON ACTION CANCEL
|
||||
LET INT_FLAG=FALSE
|
||||
EXIT PROGRAM
|
||||
AFTER CONSTRUCT
|
||||
|
||||
END CONSTRUCT
|
||||
END DIALOG
|
||||
END FUNCTION
|
||||
|
||||
FUNCTION informacion()
|
||||
IF recibo.tipo_doc = "PG" THEN
|
||||
SELECT SUM((a.valor)*-1) INTO valor_ctrl FROM cctb00001 a
|
||||
WHERE a.tipo_cliente = recibo.tipo_cliente AND
|
||||
a.sec_cliente = recibo.sec_cliente AND
|
||||
a.tipo_doc = "PG" AND
|
||||
a.num_doc = recibo.num_doc AND
|
||||
a.cod_emp_sec = recibo.cod_emp_sec AND
|
||||
a.status_t IS NULL
|
||||
|
||||
SELECT SUM((a.valor)*-1) INTO valor_nc FROM cctb00001 a
|
||||
WHERE a.tipo_cliente = recibo.tipo_cliente AND
|
||||
a.sec_cliente = recibo.sec_cliente AND
|
||||
a.tipo_doc = "AV" AND
|
||||
a.num_cheque = recibo.num_doc AND
|
||||
a.cod_emp_sec = recibo.cod_emp_sec AND
|
||||
a.status_t IS NULL
|
||||
|
||||
IF valor_nc IS NULL THEN
|
||||
LET valor_nc = 0
|
||||
END IF
|
||||
|
||||
LET valor_ctrl = valor_ctrl - valor_nc
|
||||
ELSE
|
||||
SELECT SUM((a.valor)*-1) INTO valor_ctrl FROM cctb00001 a
|
||||
WHERE a.tipo_cliente = recibo.tipo_cliente AND
|
||||
a.sec_cliente = recibo.sec_cliente AND
|
||||
a.tipo_doc = recibo.tipo_doc AND
|
||||
a.num_cheque = recibo.num_doc AND
|
||||
a.cod_emp_sec = recibo.cod_emp_sec AND
|
||||
a.status_t IS NULL
|
||||
END IF
|
||||
|
||||
IF valor_ctrl IS NULL THEN
|
||||
LET valor_ctrl = 0
|
||||
END IF
|
||||
|
||||
IF recibo.tipo_doc = "ND" OR recibo.tipo_doc = 'OD' THEN
|
||||
SELECT DISTINCT a.num_doc INTO pnum_doc FROM iptb00006 a
|
||||
WHERE a.fact_no
|
||||
LET valor_ctrl = valor_ctrl * -1
|
||||
IF valor_ctrl < 0 THEN
|
||||
LET valor_ctrl = valor_ctrl * -1
|
||||
END IF
|
||||
END IF
|
||||
|
||||
SELECT nombre INTO nom_cli FROM vetb00004
|
||||
WHERE tipo_cliente = recibo.tipo_cliente and
|
||||
sec_cliente = recibo.sec_cliente
|
||||
|
||||
SELECT nom1_emp,apell1_emp INTO descrip2,descrip3 FROM adtb00003
|
||||
WHERE num_emp = recibo.cod_emp_sec
|
||||
|
||||
LET nombre_emp = descrip2 clipped," ",descrip3 clipped
|
||||
DISPLAY BY NAME recibo.*,nom_cli,nombre_emp,valor_ctrl,nombre_cta
|
||||
|
||||
END FUNCTION
|
||||
Reference in New Issue
Block a user