{ ---------------------------------------------------------------------------- PROGRAMA : PRD OBJETIVO : Controlar las operaciones que se hagan anterior a una fecha de corte. REALIZADO POR : Ing. Juan Fco. Soto. FECHA : Noviembre 4, 1992. 829-642-9627 MODIFICADA POR : ING. JUAN SOTO FECHA MOD. : 2/11/2012 OBJETIVO : SE COPIO DE LA FUNCION PRD PARA NO MODIFICAR ESTA FUNCION, YA QUE PARA EL CLIENTE MARMOTECH PODIA TERNER PROBLEMAS, EL PROGRAMA QUE ESTA UTILIZANDO ESTA FUNCION ES EL CCPRMT001 --------------------------------------------------------------------------- } FUNCTION prd(p_fechas,puser) DEFINE c_ano,a_ano INT, mes_control,mes_calc,numero_msg,bandera,dia SMALLINT, p_fechas,fecha_c,comp_fech,comp_fech1 DATE, puser CHAR(50) LET a_ano = year(p_fechas) LET mes_control = MONTH(today) LET mes_calc = mes_control IF mes_calc = 01 THEN LET mes_calc = 13 LET a_ano = year(today - 32) END IF #Aqui la funcion se posicionaba en dos meses para el control del documento #LET mes_calc = mes_calc - 2 IF mes_calc <= 0 THEN LET mes_calc = 12 LET a_ano = year(today) - 1 END IF LET c_ano = year(today) SELECT MIN(fecha_corte) INTO fecha_c FROM prdtable WHERE fecha_corte >= p_fechas IF status = notfound THEN LET numero_msg = 58 CALL msg(numero_msg) LET bandera = 1 END IF SELECT MIN(dias_gracia) INTO dia FROM prdtable WHERE fecha_corte = fecha_c IF dia IS NULL THEN LET dia = 0 END IF DISPLAY " fecha",fecha_c," usuario ",puser," dias ",dia SELECT a.nom_puesto FROM seg0003 a WHERE a.usuario = puser AND a.nom_puesto IN ('ADMINISTRATOR','FINANZAS') IF STATUS <> NOTFOUND THEN LET fecha_c = fecha_c + dia END IF DISPLAY "fecha ",fecha_c LET comp_fech = fecha_c LET comp_fech1 = TODAY IF comp_fech < comp_fech1 THEN LET numero_msg = 57 CALL msg(numero_msg) LET bandera = 1 END IF RETURN bandera END FUNCTION