Files
MBS/PROYECTO/PRDIR/prprmt020_1.4gl
T

146 lines
4.7 KiB
Plaintext

{
PROGRAMA : prprmt020
OBJETIVO : Administrar los dibujos de las ordenes
PROGRAMADOR : ING. JUAN SOTO
}
GLOBALS "prprgb000.4gl"
DEFINE d_tipos,mensaje,f_tipos,imagen,filepath STRING,
inserte_dibujo BOOLEAN
MAIN
DEFER INTERRUPT
CALL STARTLOG("prmt020.log")
CALL ARG_VAL(1) RETURNING usuarios
CALL ARG_VAL(2) RETURNING clave
CONNECT to "smarmotech" USER usuarios USING clave
DECLARE buscacorreo CURSOR FOR
SELECT a.correo FROM seg0003 a
WHERE a.controldibujo = 'SI'
LET idx = 1
FOREACH buscacorreo INTO copiacorreo[idx]
LET copiaemail = copiaemail CLIPPED,";",copiacorreo[idx]
LET idx = idx + 1
END FOREACH
CALL prprmt020()
END MAIN
FUNCTION prprmt020()
DEFINE nombre_cliente,email,emailsubject,emailbody,procedimiento,vendedor,dir_file CHAR(60),
filedestino CHAR(100),
ruta DYNAMIC ARRAY OF CHAR(150)
OPEN WINDOW w1 WITH FORM "prfmmt012"
DIALOG ATTRIBUTES(UNBUFFERED,FIELD ORDER FORM)
INPUT BY NAME prtb08.num_oc
AFTER INPUT
LET d_tipos="Images"
LET f_tipos="*.jpg *.png *.gif"
LET mensaje=%"Elige Imagen"
SELECT a.cotizacion_no,b.nombre,a.sec_vend,ISNULL(c.nom1_emp,' ')+ISNULL(c.apell1_emp,' ')
INTO prtb08.cotizacion_no,nombre_cliente,prtb08.sec_vend,vendedor
FROM prtb00012 a,vetb00004 b,adtb00003 c
WHERE a.num_oc = prtb08.num_oc AND
a.tipo_cliente = b.tipo_cliente AND
a.sec_cliente = b.sec_cliente AND
a.sec_vend = c.num_emp
IF STATUS = NOTFOUND THEN
CALL msg(3)
NEXT FIELD num_oc
ELSE
DECLARE busca_dibujo CURSOR FOR
SELECT a.ruta_file FROM prtb00029 a
WHERE a.num_oc = prtb08.num_oc
LET idx = 1
FOREACH busca_dibujo INTO ruta[idx]
LET idx = idx + 1
END FOREACH
CALL set_count(idx-1)
END IF
DISPLAY BY NAME prtb08.cotizacion_no,nombre_cliente,vendedor
END INPUT
INPUT ARRAY ruta FROM sdibujo.* ATTRIBUTE(WITHOUT DEFAULTS)
BEFORE ROW
LET curr = arr_curr()
DISPLAY ruta[curr] TO imagen
ON ACTION actualiza
WHENEVER ERROR CONTINUE
BEGIN WORK
DELETE FROM prtb00029 WHERE num_oc = prtb08.num_oc
LET inserte_dibujo = FALSE
FOR idx = 1 TO arr_count()
IF ruta[idx] IS NOT NULL THEN
LET filedestino = FGL_GETENV("IMAGENNOMINA")
LET filedestino = filedestino CLIPPED,"\\DIBUJOSORDENES\\",idx USING "&&&","-",prtb08.num_oc USING "&&&&&&",".jpg"
# CALL fgl_winmessage("2",filedestino,"info")
# CALL fgl_winmessage("3",ruta[idx],"info")
CALL fgl_getfile(ruta[idx],filedestino)
INSERT INTO prtb00029 (num_oc,ruta_file,id)
VALUES (prtb08.num_oc,filedestino,idx)
IF STATUS < 0 THEN
ROLLBACK WORK
CALL fgl_winmessage("ERROR","NO ACTUALICE DIBUJO EN LA ORDEN","INFO")
EXIT FOR
ELSE
COMMIT WORK
END IF
LET inserte_dibujo = TRUE
LET filedestino = NULL
END IF
END FOR
IF inserte_dibujo THEN
SELECT a.email INTO email FROM seg0000 a
WHERE a.sec_vend = prtb08.sec_vend
LET emailsubject = "ACTUALIZACION DIBUJO ORDEN"
LET emailbody = " LA ORDEN ",prtb08.num_oc USING "&&&&&&"," TIENE EL DIBUJO DISPONIBLE PARA VERIFICAR"
LET procedimiento = "{ call cc_avisadespacho(?,?,?,?) }" CLIPPED
CALL envia_correo(email,copiaemail,emailbody,emailsubject,procedimiento)
CALL fgl_winmessage("Warning","Actualizacion Exitosa","info")
END IF
ON ACTION dibujo
LET curr = arr_curr()
CALL ui.Interface.frontCall("standard","openfile", [dir_file,d_tipos,f_tipos,mensaje], [filepath] )
IF filepath IS NOT NULL THEN
DISPLAY "filepath ",filepath
LET ruta[curr]= filepath CLIPPED
DISPLAY ruta[curr] TO imagen
END IF
AFTER ROW
LET curr = arr_curr()
IF ruta[curr] IS NOT NULL THEN
DISPLAY ruta[curr] TO imagen
END IF
END INPUT
ON ACTION CANCEL
LET INT_FLAG = FALSE
CALL msg(2)
EXIT DIALOG
CLOSE WINDOW w1
END DIALOG
END FUNCTION