{ ------------------------------------------------------------------ PROGRAMA : ACPRMT003 OBJETIVO : Dar de baja o Liquidar un activo2 Fijo. PROGRAMADOR : Tadeo A. Ferreras. FECHA REALIZACION : Sept. 27, 1993. ------------------------------------------------------------------ } GLOBALS "acprgb000.4gl" DEFINE activo2 RECORD codigo SMALLINT, descripcion CHAR(30), fech_compra DATE, fech_elim DATE END RECORD MAIN DEFER INTERRUPT CALL ARG_VAL(1) RETURNING usuarios CALL ARG_VAL(2) RETURNING clave CONNECT to "smarmotech" user usuarios USING clave SELECT a.* INTO p_companias.* FROM companias a CALL acprmt003() END MAIN FUNCTION acprmt003() # WHENEVER ERROR CONTINUE CLEAR SCREEN OPTIONS FORM LINE 9, ERROR LINE 23, COMMENT LINE 21 OPEN FORM acfmmt003 FROM "acfmmt003" DISPLAY FORM acfmmt003 # CALL pantalla() DISPLAY "acprmt003" AT 4,3 DISPLAY "Liquidar o Dar de Baja Un Activo Fijo" AT 6,21 MENU "OPCIONES" COMMAND "Actualizar" " Adiciona Registro Cancela Operacion" LET int_flag = FALSE CLEAR FORM CALL acact003() COMMAND "Salir" "Retorna Menu Anterior" EXIT MENU CLEAR FORM END MENU END FUNCTION FUNCTION acact003() #WHENEVER ERROR CONTINUE ## Captura los datos que va a contener el registro LET int_flag = false INPUT BY NAME activo2.* ## Verifica que el codigo exista en el catalogo de activo2. Si existe, ## entonces despliega los datos del registro existente. AFTER FIELD codigo IF activo2.codigo is null then LET numero_msg = 16 CALL msg(numero_msg) NEXT FIELD codigo END IF #### Verifica que el el codigo asignado al activo2 no exista SELECT a.descripcion,CONVERT(VARCHAR(10),a.fech_compra,103) INTO activo2.descripcion,activo2.fech_compra FROM actb00001 a WHERE a.codigo = activo2.codigo AND a.status_t IS NULL IF status = NOTFOUND OR activo2.fech_compra IS NULL THEN LET numero_msg = 3 CALL msg(numero_msg) DISPLAY BY NAME activo2.descripcion,activo2.fech_compra NEXT FIELD codigo END IF DISPLAY BY NAME activo2.descripcion BEFORE FIELD fech_elim IF activo2.fech_elim IS NULL THEN LET activo2.fech_elim = TODAY END IF DISPLAY BY NAME activo2.fech_elim AFTER FIELD fech_elim IF activo2.fech_elim IS NULL THEN LET numero_msg = 16 CALL msg(numero_msg) NEXT FIELD fech_elim END IF IF activo2.fech_elim < activo2.fech_compra OR activo2.fech_elim > TODAY THEN LET numero_msg = 149 CALL msg(numero_msg) NEXT FIELD fech_elim END IF END INPUT IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) LET int_flag = FALSE RETURN END IF #### Proceso para actualizar la informacion en las tablas necesarias LET opt= fgl_winquestion("INFO","ESTA SEGURO DE DESACTIVAR ESTE ACTIVO?","NO","YES|NO","QUESTION",0) IF opt = "YES" THEN UPDATE actb00001 SET (fech_compra,fech_elim,status_t,us_mod,fech_mod) = (activo2.fech_elim,activo2.fech_elim,"B", usuarios,getdate()) WHERE @codigo = activo2.codigo LET numero_msg = 13 CALL msg(numero_msg) END IF END FUNCTION