Commit inicial: fuentes MBS ERP (Genero 6) + .gitignore + docs/SETUP_PC_MBS.md

This commit is contained in:
2026-08-18 20:59:52 -04:00
commit 454973e269
5978 changed files with 2664094 additions and 0 deletions
+356
View File
@@ -0,0 +1,356 @@
{
------------------------------------------------------------------
PROGRAMA : CCPRMT005
OBJETIVO : Eliminar registros de Movimientos de Cuentas X
Cobrar
PROGRAMADOR : JUAN SOTO
FECHA REALIZACION : Febrero 01, 1997
DIRECTOR PROYECTO : JOSE ALFREDO PAULINO ALEJO
------------------------------------------------------------------
}
GLOBALS "ccprgb000.4gl"
SCHEMA smarmotech
DEFINE cctb01 RECORD LIKE cctb00001.*
DEFINE nombre,apellido CHAR(15)
DEFINE nombre1 CHAR(30)
DEFINE vendedor,ult_numero,ult_numero1 INTEGER
DEFINE cctb02 RECORD LIKE cctb00002.*
DEFINE opcion2,opcion1 CHAR(1)
DEFINE tipo CHAR(2)
FUNCTION ccprmt005()
LET int_flag = FALSE
CLEAR SCREEN
OPTIONS
FORM LINE 8,
ERROR LINE 23,
PROMPT LINE 23,
COMMENT LINE 21
OPEN FORM ccfmmt005 FROM "ccfmmt005"
DISPLAY FORM ccfmmt005
CALL pantalla()
DISPLAY "ccprmt005" AT 4,3
DISPLAY "Eliminacion Fisica de Movimientos" at 6,23
# WHENEVER ERROR CONTINUE
## Captura los datos que va a contener el registro
MENU "OPCIONES"
COMMAND "Eliminar" "<Delete> Cancela Operacion"
CLEAR FORM
CALL ccprel005()
COMMAND "Activar" "<Delete> Cancela Operacion"
CLEAR FORM
CALL ccprac005()
COMMAND "Salir" "Retorna Menu Anterior"
EXIT MENU
END MENU
END FUNCTION
FUNCTION ccprel005()
LET int_flag = FALSE
INPUT BY NAME cctb01.num_cheque,cctb01.tipo_doc
AFTER FIELD num_cheque
IF cctb01.num_cheque IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD num_cheque
END IF
AFTER FIELD tipo_doc
IF cctb01.tipo_doc IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD tipo_doc
END IF
SELECT UNIQUE i.tipo_cliente,i.sec_cliente,i.cod_emp_sec,
i.fecha_orig,SUM(i.valor)
INTO cctb01.tipo_cliente,cctb01.sec_cliente,cctb01.cod_emp_sec,
cctb01.fecha_orig,cctb01.valor
FROM cctb00001 i
WHERE i.num_doc= cctb01.num_cheque AND i.tipo_doc= cctb01.tipo_doc and
i.status_t is null GROUP BY 1,2,3,4
IF STATUS = NOTFOUND THEN
LET numero_msg = 3
CALL msg(numero_msg)
NEXT FIELD num_cheque
END IF
IF cctb01.valor < 0 THEN
LET cctb01.valor = cctb01.valor * -1
END IF
SELECT a.nombre INTO nombre1 FROM vetb00004 a
WHERE a.tipo_cliente = cctb01.tipo_cliente and
a.sec_cliente = cctb01.sec_cliente
SELECT a.nom1_emp,a.apell1_emp INTO nombre,apellido
FROM adtb00003 a
WHERE a.num_emp = cctb01.cod_emp_sec
IF cctb01.tipo_doc = "PG" THEN
SELECT a.ult_recibo INTO ult_numero FROM cctb00003 a
WHERE a.tipo_doc = cctb01.tipo_doc AND
a.sec_vend = cctb01.cod_emp_sec
SELECT MAX(a.fecha) INTO cctb02.fecha FROM cctb00002 a
WHERE a.sec_vend = cctb01.cod_emp_sec
SELECT a.sec_de,a.sec_a INTO cctb02.sec_de,cctb02.sec_a
FROM cctb00002 a
WHERE a.fecha=cctb02.fecha AND a.sec_vend=cctb01.cod_emp_sec
DISPLAY BY NAME cctb01.sec_cliente,cctb01.cod_emp_sec,
cctb01.fecha_orig,cctb01.valor,nombre1,
nombre,apellido,ult_numero,cctb02.fecha,
cctb02.sec_de,cctb02.sec_a
IF cctb01.num_cheque <> ult_numero THEN
LET numero_msg = 230
CALL msg(numero_msg)
NEXT FIELD num_cheque
END IF
END IF
{SELECT a.ult_recibo INTO ult_numero FROM cctb00003 a
WHERE a.tipo_doc = cctb01.tipo_doc
IF ult_numero IS NULL THEN
SELECT MAX(a.num_doc) INTO ult_numero FROM cctb00001 a
WHERE a.tipo_doc = cctb01.tipo_doc
END IF
DISPLAY BY NAME cctb01.sec_cliente,cctb01.cod_emp_sec,
cctb01.fecha_orig,cctb01.valor,nombre1,
nombre,apellido,ult_numero
END IF}
LET p_fechas = cctb01.fecha_orig USING "ddmmyyyy"
CALL prd()
IF bandera = 1 THEN
SLEEP 5
LET bandera = 0
RETURN
END IF
END INPUT
IF int_flag THEN
LET int_flag = FALSE
LET numero_msg = 2
CALL msg(numero_msg)
RETURN
END IF
LET tipo = cctb01.tipo_doc
LET vendedor = cctb01.cod_emp_sec
LABEL pregunta:
PROMPT "Deseas Eliminar Registro [S/N]...? " FOR CHAR opcion2
LET opcion2 = UPSHIFT(opcion2)
IF (opcion2 IS NULL) THEN
GOTO pregunta
END IF
IF opcion2 != "S" AND opcion2 != "N" THEN
GOTO pregunta
END IF
IF opcion2 = "S" THEN
LABEL pregunta1:
PROMPT "Presiones S o N Para Confirmar Proceso" FOR CHAR opcion1
LET opcion1 = UPSHIFT(opcion1)
IF opcion1 IS NULL THEN
GOTO pregunta1
END IF
IF (opcion1 != "S" AND opcion1 != "N") THEN
GOTO pregunta1
END IF
IF opcion1 = "S" THEN
DECLARE busca CURSOR FOR
SELECT a.* FROM cctb00001 a
WHERE a.tipo_doc IN ("ND","NC","AV","PG","RC") AND
a.num_cheque = cctb01.num_cheque AND a.aplica_a != a.num_doc
FOREACH busca INTO cctb01.*
INSERT INTO cctb00004 VALUES(cctb01.*,cctb02.sec_de,
cctb02.sec_a,ult_numero)
END FOREACH
UPDATE cctb00004 SET (us_crea,fech_crea) = (USER,CURRENT)
WHERE @num_cheque = cctb01.num_cheque AND
@tipo_doc IN ("AV","PG","ND","NC","RC")
AND @aplica_a != @num_doc
IF cctb01.tipo_doc = "PG" THEN
UPDATE cctb00003 SET ult_recibo = ult_numero - 1
WHERE @sec_vend = vendedor AND @tipo_doc = tipo
ELSE
UPDATE cctb00003 SET ult_recibo = ult_numero - 1
WHERE @tipo_doc = tipo
END IF
DELETE FROM cctb00001
WHERE @num_cheque = cctb01.num_cheque AND
@tipo_doc IN ("AV","PG","ND","NC","RC") AND
@aplica_a != num_doc
LET numero_msg = 13
CALL msg(numero_msg)
END IF
END IF
END FUNCTION
FUNCTION ccprac005()
LET int_flag = FALSE
INPUT BY NAME cctb01.num_cheque,cctb01.tipo_doc
AFTER FIELD num_cheque
IF cctb01.num_cheque IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD num_cheque
END IF
AFTER FIELD tipo_doc
IF cctb01.tipo_doc IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD tipo_doc
END IF
SELECT UNIQUE i.tipo_cliente,i.sec_cliente,i.cod_emp_sec,
i.fecha_orig,SUM(i.valor)
INTO cctb01.tipo_cliente,cctb01.sec_cliente,cctb01.cod_emp_sec,
cctb01.fecha_orig,cctb01.valor
FROM cctb00004 i
WHERE i.num_doc =cctb01.num_cheque AND i.tipo_doc=cctb01.tipo_doc and
i.status_t is null GROUP BY 1,2,3,4
IF STATUS = NOTFOUND THEN
LET numero_msg = 3
CALL msg(numero_msg)
NEXT FIELD num_cheque
END IF
IF cctb01.valor THEN
LET cctb01.valor = cctb01.valor * -1
END IF
SELECT a.nombre INTO nombre1 FROM vetb00004 a
WHERE a.tipo_cliente = cctb01.tipo_cliente and
a.sec_cliente = cctb01.sec_cliente
SELECT a.nom1_emp,a.apell1_emp INTO nombre,apellido
FROM adtb00003 a
WHERE a.num_emp = cctb01.cod_emp_sec
IF cctb01.tipo_doc = "PG" THEN
SELECT a.ult_recibo INTO ult_numero FROM cctb00003 a
WHERE a.tipo_doc = cctb01.tipo_doc AND
a.sec_vend = cctb01.cod_emp_sec
SELECT MAX(a.fecha) INTO cctb02.fecha FROM cctb00002 a
WHERE a.sec_vend = cctb01.cod_emp_sec
SELECT a.sec_de,a.sec_a INTO cctb02.sec_de,cctb02.sec_a
FROM cctb00002 a
WHERE a.fecha=cctb02.fecha AND a.sec_vend=cctb01.cod_emp_sec
DISPLAY BY NAME cctb01.sec_cliente,cctb01.cod_emp_sec,
cctb01.fecha_orig,cctb01.valor,nombre1,
nombre,apellido,ult_numero,cctb02.fecha,
cctb02.sec_de,cctb02.sec_a
IF cctb01.num_cheque <> (ult_numero+1) THEN
LET numero_msg = 230
CALL msg(numero_msg)
NEXT FIELD num_cheque
END IF
END IF
{SELECT a.ult_recibo INTO ult_numero FROM cctb00003 a
WHERE a.tipo_doc = cctb01.tipo_doc
IF ult_numero IS NULL THEN
SELECT MAX(a.num_doc) INTO ult_numero FROM cctb00001 a
WHERE a.tipo_doc = cctb01.tipo_doc
END IF
DISPLAY BY NAME cctb01.sec_cliente,cctb01.cod_emp_sec,
cctb01.fecha_orig,cctb01.valor,nombre1,
nombre,apellido,ult_numero
END IF}
LET p_fechas = cctb01.fecha_orig USING "ddmmyyyy"
CALL prd()
IF bandera = 1 THEN
SLEEP 5
LET bandera = 0
RETURN
END IF
END INPUT
IF int_flag THEN
LET int_flag = FALSE
LET numero_msg = 2
CALL msg(numero_msg)
RETURN
END IF
LET tipo = cctb01.tipo_doc
LET vendedor = cctb01.cod_emp_sec
LABEL pregunta:
PROMPT "Deseas Activar Registro [S/N]...? " FOR CHAR opcion2
LET opcion2 = UPSHIFT(opcion2)
IF (opcion2 IS NULL) THEN
GOTO pregunta
END IF
IF opcion2 != "S" AND opcion2 != "N" THEN
GOTO pregunta
END IF
IF opcion2 = "S" THEN
LABEL pregunta1:
PROMPT "Presiones S o N Para Confirmar Proceso" FOR CHAR opcion1
LET opcion1 = UPSHIFT(opcion1)
IF opcion1 IS NULL THEN
GOTO pregunta1
END IF
IF (opcion1 != "S" AND opcion1 != "N") THEN
GOTO pregunta1
END IF
IF opcion1 = "S" THEN
DISPLAY "PROCESO CORRECTO" AT 23,10
SLEEP 5
DECLARE busca1 CURSOR FOR
SELECT a.* FROM cctb00004 a
WHERE a.num_cheque = cctb01.num_cheque AND
a.tipo_doc IN ("PG","AV","ND","NC","RC")
FOREACH busca1 INTO cctb01.*
INSERT INTO cctb00001 VALUES(cctb01.*)
END FOREACH
UPDATE cctb00004 SET (us_crea,fech_crea) = (USER,CURRENT)
WHERE @num_cheque = cctb01.num_cheque AND
@tipo_doc IN("AV","PG","NC","ND","RC")
IF cctb01.tipo_doc = "PG" THEN
UPDATE cctb00003 SET ult_recibo = cctb01.num_cheque
WHERE @sec_vend = vendedor AND @tipo_doc = tipo
ELSE
UPDATE cctb00003 SET ult_recibo = cctb01.num_cheque
WHERE @tipo_doc = tipo
END IF
UPDATE cctb00004 SET (status_t,us_mod,fech_mod) =
("E",USER,CURRENT)
WHERE @num_cheque = cctb01.num_cheque AND
@tipo_doc IN("AV","PG","NC","ND","RC")
LET numero_msg = 1
CALL msg(numero_msg)
END IF
END IF
END FUNCTION