GLOBALS "ctprgb000.4gl" MAIN DEFER INTERRUPT CALL ARG_VAL(1) RETURNING usuarios CALL ARG_VAL(2) RETURNING clave CALL ARG_VAL(3) RETURNING impresor CONNECT to "smarmotech" USER usuarios USING clave SELECT a.* INTO p_compania.* FROM companias a CALL ctprmt006() END MAIN FUNCTION ctprmt006() DEFINE fechap,fechaproduccion DATE, responde CHAR(3) OPEN WINDOW ctfmwd006 WITH FORM "ctfmwd006" INPUT BY NAME fechap,fechaproduccion BEFORE FIELD fechap LET selec = "SELECT CONVERT(CHAR(10),a.fecha_inicio_costo,103) FROM cttb00004 a " PREPARE comando FROM selec EXECUTE comando INTO fechap DISPLAY BY NAME fechap AFTER FIELD fechap IF fechap IS NULL THEN CALL msg(16) NEXT FIELD fechap END IF AFTER INPUT IF Int_flag THEN CALL msg(2) LET int_flag = false RETURN END IF IF fechaproduccion < fechap THEN CALL msg(64) NEXT FIELD fechap END IF EXIT INPUT END INPUT LET responde = fgl_winquestion("INFO","ESTA SEGURO DE ACTUALIZAR COSTOS","no","yes|no","QUESTION",0) LET responde = UPSHIFT(responde) IF responde = "YES" THEN BEGIN WORK update cttb00003 set costo_lab = (select AVG(costo_lab) from cttb00034 where cttb00003.cod_prod = cttb00034.cod_prod and fecha >= fechap and status_t is null), costo_gasto = (select avg(costo_ga) from cttb00034 where cttb00003.cod_prod = cttb00034.cod_prod and fecha >= fechap and status_t is null) where fecha > fechaproduccion IF STATUS < 0 THEN CALL fgl_winmessage("ACTUALIZA", "ERROR ACTUALIZANDO", "stop") ROLLBACK WORK RETURN ELSE COMMIT WORK CALL fgl_winmessage("ACTUALIZA", "ACTUALIZACION EXITOSA", "stop") END IF END IF END FUNCTION