{ ============================================================================ 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