67 lines
1.9 KiB
Plaintext
67 lines
1.9 KiB
Plaintext
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 |