{
-------------------------------------------------------------------
 PROGRAMA          : DSMNMT000
 OBJETIVO          : Menu de Mantenimientos del Sistema 
                     de Documentacion.     
 PROGRAMADOR       : Tadeo A. Ferreras F.
 FECHA REALIZACION : Junio 09, 1995.
--------------------------------------------------------------------
}

GLOBALS "dsprgb000.4gl"

FUNCTION dsmnmt000()

   DEFINE p_user CHAR(9)
   DEFINE luz CHAR(5)

OPTIONS 
    PROMPT LINE 8, 
    MESSAGE LINE 24 
    CLEAR SCREEN 
    CALL pantalla()

    DISPLAY "Mantenimientos" AT 6,33 ATTRIBUTE(BLACK)
    DISPLAY "dsmnmt000"                            AT 4,3 ATTRIBUTE(RED)
    DISPLAY "1- Maestra de Sistema           dsprmt001" AT 10,1
    DISPLAY "2- Documentacion de Programas   dsprmt002" AT 11,1 
    DISPLAY "3- Relacion Sistema y Menu      dsprmt003" AT 12,1
    DISPLAY "4- Creacion/Documentacion Tabla dsprmt004" AT 13,1
    DISPLAY "S- Retorna Menu Anterior         " AT 16,1  
                ATTRIBUTE (BLACK)
    LET opcion = NULL 
    LABEL vuelve:
    PROMPT " OPCION: " FOR opcion HELP 2 
    LET opcion = upshift(opcion)

       IF opcion != "S" THEN
           SELECT unique usuario INTO p_user FROM seg0001
           WHERE usuario = user
           CALL seg000(opcion,"dsmnmt000") RETURNING luz
           IF luz = "roja" THEN
              ERROR "NO TIENE PERMISO PARA UTILIZAR OPCION"
            #GOTO vuelve
           END IF
       END IF

    CASE     
       WHEN opcion = "1"
            CALL  dsprmt001()
            CLEAR SCREEN
            CALL  dsmnmt000()
       WHEN opcion = "2"
            CALL  dsprmt002()
            CLEAR SCREEN
            CALL  dsmnmt000()
       WHEN opcion = "3"
            CALL  dsprmt003()
            CLEAR SCREEN
            CALL  dsmnmt000()
       WHEN opcion = "4"
            CLEAR SCREEN
            CALL  dsprmt004()
            CLEAR SCREEN
            CALL  dsmnmt000()
       WHEN opcion = "S" 
            RETURN
       OTHERWISE 
            CALL dsmnmt000()
    END CASE

END FUNCTION

FUNCTION prd()

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)
{IF a_ano != c_ano THEN
   LET numero_msg = 59
   CALL msg(numero_msg)
   LET bandera = 1
   RETURN
END IF}

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
SELECT a.usuario FROM seg0003 a
WHERE a.usuario = USER

IF status != notfound THEN
   LET fecha_c = fecha_c + dia
END IF

 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

END FUNCTION
