146 lines
4.7 KiB
Plaintext
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
|