117 lines
3.4 KiB
Plaintext
117 lines
3.4 KiB
Plaintext
{
|
|
============================================================================
|
|
PROGRAMA : COPRMT013
|
|
OBJETIVO : BORRAR LAS ORDENES DE COMPRAS DE UN ANO ESPECIFICO
|
|
PROGRAMADOR: JUAN F. SOTO
|
|
FECHA : DICIEMBRE 19, 1994.
|
|
============================================================================
|
|
}
|
|
GLOBALS
|
|
"coprgb000.4gl"
|
|
DEFINE tabla14 RECORD LIKE cotb00014.*
|
|
DEFINE tabla15 RECORD LIKE cotb00015.*
|
|
DEFINE tabla25 RECORD LIKE cotb00025.*
|
|
DEFINE fecha1,fecha2 DATE
|
|
DEFINE p_ano SMALLINT
|
|
DEFINE reg INTEGER
|
|
FUNCTION coprmt013()
|
|
OPTIONS
|
|
ERROR LINE 24,
|
|
PROMPT LINE 12
|
|
|
|
CLEAR SCREEN
|
|
CALL pantalla()
|
|
DISPLAY "coprmt013" AT 4,3
|
|
DISPLAY "Borra Ordenes Cerradas" AT 6,29
|
|
|
|
LET p_ano = year(today) - 1
|
|
PROMPT "Entre Ano a Limpiar? " FOR p_ano
|
|
|
|
IF int_flag THEN
|
|
LET numero_msg = 2
|
|
CALL msg(numero_msg)
|
|
LET int_flag = FALSE
|
|
RETURN
|
|
END IF
|
|
|
|
PROMPT "Esta Seguro de Proseguir (S/N)? " FOR decide
|
|
LET decide = upshift(decide)
|
|
IF decide = "N" THEN
|
|
RETURN
|
|
END IF
|
|
SELECT fecha_inicio INTO fecha1
|
|
FROM prdtable
|
|
WHERE mes = 1 and ano = p_ano
|
|
|
|
SELECT fecha_corte INTO fecha2
|
|
FROM prdtable
|
|
WHERE mes = 12 and ano = p_ano
|
|
{
|
|
# Copia de seguridad
|
|
DISPLAY "ESTOY SACANDO DATOS DE LA TABLA COTB00014" AT 23,1
|
|
UNLOAD TO "cotb00014.ld" SELECT *FROM cotb00014
|
|
WHERE fech_oc <= fecha2
|
|
|
|
DISPLAY "ESTOY SACANDO DATOS DE LA TABLA COTB00015" AT 23,1
|
|
UNLOAD TO "cotb00015.ld" SELECT a.* FROM cotb00015 a,cotb00014 b
|
|
WHERE b.fech_oc <= fecha2 and
|
|
a.tipo = b.tipo and
|
|
a.num_oc = b.num_oc and
|
|
b.cierre = "S"
|
|
|
|
DISPLAY "ESTOY SACANDO DATOS DE LA TABLA COTB00025" AT 23,1
|
|
UNLOAD TO "cotb00025.ld" SELECT a.* FROM cotb00025 a,cotb00014 b
|
|
WHERE b.fech_oc <= fecha2 and
|
|
a.tipo = b.tipo and
|
|
a.num_oc = b.num_oc and
|
|
b.cierre = "S"
|
|
}
|
|
SELECT unique a.cierre FROM cotb00014 a
|
|
WHERE a.fech_oc <= fecha2 and
|
|
a.cierre = "S"
|
|
|
|
IF status = notfound THEN
|
|
ERROR "NO HAY INFORMACIONES EN ESTE ANO O SE REALIZO PROC. FIN DE ANO"
|
|
RETURN
|
|
END IF
|
|
|
|
DECLARE busca CURSOR FOR
|
|
SELECT * FROM cotb00014
|
|
WHERE fech_oc <= fecha2 and
|
|
cierre = "S"
|
|
|
|
DISPLAY "Estoy Actualizando Historico Datos Generales " at 23 ,1
|
|
FOREACH busca INTO tabla14.*
|
|
INSERT INTO cotb00033 VALUES (tabla14.*)
|
|
END FOREACH
|
|
|
|
DECLARE busca1 CURSOR FOR
|
|
SELECT a.rowid,a.* FROM cotb00015 a,cotb00014 b
|
|
WHERE b.fech_oc <= fecha2 and
|
|
a.tipo = b.tipo and
|
|
a.num_oc = b.num_oc and
|
|
b.cierre = "S"
|
|
|
|
DISPLAY "Estoy Actualizando Historico Datos Detallados" at 23 ,1
|
|
FOREACH busca1 INTO reg,tabla15.*
|
|
INSERT INTO cotb00034 VALUES (tabla15.*)
|
|
DELETE FROM cotb00015 WHERE rowid = reg
|
|
END FOREACH
|
|
|
|
DECLARE busca2 CURSOR FOR
|
|
SELECT a.rowid,a.* FROM cotb00025 a,cotb00014 b
|
|
WHERE a.tipo = b.tipo and
|
|
a.num_oc = b.num_oc and
|
|
b.fech_oc <= fecha2 and
|
|
b.cierre = "S"
|
|
|
|
DISPLAY "Estoy Actualizando Historico Entregas Parciales" at 23 ,1
|
|
FOREACH busca2 INTO reg,tabla25.*
|
|
INSERT INTO cotb00035 VALUES (tabla25.*)
|
|
DELETE FROM cotb00025 WHERE rowid = reg
|
|
END FOREACH
|
|
|
|
DELETE FROM cotb00014 WHERE fech_oc <= fecha2 and
|
|
cierre = "S"
|
|
END FUNCTION
|