138 lines
4.1 KiB
Plaintext
138 lines
4.1 KiB
Plaintext
IMPORT OS
|
|
|
|
GLOBALS "prprgb000.4gl"
|
|
|
|
DEFINE l_file,tmpdir_file STRING
|
|
|
|
|
|
FUNCTION busca_imagen_conduces(xnum_oc)
|
|
DEFINE nombre_cliente,vendedor CHAR(60),
|
|
documentos DYNAMIC ARRAY OF RECORD
|
|
idx INT,
|
|
tipo_file CHAR(20),
|
|
bodega SMALLINT,
|
|
num_doc INT,
|
|
nombre_file VARCHAR(100),
|
|
filedestino BYTE,
|
|
envio_correo CHAR(10)
|
|
|
|
END RECORD,
|
|
p_res,i SMALLINT,
|
|
xnum_oc,cuenta INT
|
|
|
|
LET i = 1
|
|
|
|
# VERIFICA QUE LA ORDEN TENGA DIBUJOS
|
|
SELECT ISNULL(COUNT(*),0) INTO cuenta FROM prtb00029 a WHERE a.num_oc = xnum_oc AND a.tipo_file = 'CO'
|
|
IF cuenta = 0 THEN
|
|
CALL fgl_winmessage("info","ORDEN NO TIENE CONDUCES ESCANEADOS","INFO")
|
|
RETURN
|
|
END IF
|
|
|
|
OPEN WINDOW w1 WITH FORM "prfmwd012"
|
|
|
|
CALL documentos.clear()
|
|
|
|
|
|
DECLARE busca_dibujo CURSOR FOR
|
|
SELECT a.id,a.tipo_file,a.bodega,a.num_doc,a.nombre_file,
|
|
a.documento,a.envio_notificacion
|
|
FROM prtb00029 a
|
|
WHERE a.num_oc =xnum_oc AND a.tipo_file = 'CO'
|
|
ORDER BY a.id
|
|
LET idx = 1
|
|
LOCATE documentos[idx].filedestino IN MEMORY
|
|
FOREACH busca_dibujo INTO documentos[idx].*
|
|
LET idx = idx + 1
|
|
LOCATE documentos[idx].filedestino IN MEMORY
|
|
|
|
END FOREACH
|
|
|
|
|
|
DISPLAY ARRAY documentos TO sdibujo.*
|
|
BEFORE DISPLAY
|
|
|
|
SELECT a.cotizacion_no,b.nombre,a.sec_vend,ISNULL(c.nom1_emp,' ')+ISNULL(c.apell1_emp,' '),
|
|
a.tipo_cliente,a.sec_cliente
|
|
INTO kprtb12.cotizacion_no,nombre_cliente,kprtb12.sec_vend,vendedor,
|
|
kprtb12.tipo_cliente,kprtb12.sec_cliente
|
|
FROM prtb00012 a,vetb00004 b,adtb00003 c
|
|
WHERE a.num_oc = xnum_oc AND
|
|
a.tipo_cliente = b.tipo_cliente AND
|
|
a.sec_cliente = b.sec_cliente AND
|
|
a.sec_vend = c.num_emp
|
|
|
|
DISPLAY BY NAME kprtb12.num_oc,kprtb12.cotizacion_no,nombre_cliente,vendedor
|
|
|
|
|
|
ON ACTION abrir
|
|
WHENEVER ERROR CONTINUE
|
|
TRY
|
|
LET tmpdir_file = "tmp\\",usuarios CLIPPED,documentos[arr_curr()].nombre_file
|
|
|
|
CALL documentos[arr_curr()].filedestino.writeFile(tmpdir_file)
|
|
|
|
CALL ui.Interface.frontCall("standard","getenv", ["TEMP"], [l_file] )
|
|
|
|
LET l_file = l_file CLIPPED,"\\",documentos[arr_curr()].nombre_file
|
|
CALL fgl_putfile(tmpdir_file,l_file)
|
|
|
|
CALL ui.Interface.frontCall("standard","shellexec", [l_file],[p_res])
|
|
|
|
CATCH
|
|
CALL fgl_winmessage("ERROR",err_get(STATUS),"INFO")
|
|
END TRY
|
|
AFTER DISPLAY
|
|
IF INT_FLAG THEN
|
|
|
|
EXIT DISPLAY
|
|
END IF
|
|
EXIT DISPLAY
|
|
END DISPLAY
|
|
LET INT_FLAG = FALSE
|
|
CLOSE WINDOW w1
|
|
END FUNCTION
|
|
|
|
{FUNCTION showDir(path)
|
|
DEFINE path STRING
|
|
DEFINE child STRING
|
|
DEFINE h INTEGER,
|
|
contenido DYNAMIC ARRAY OF STRING,
|
|
exito BOOLEAN
|
|
|
|
OPEN WINDOW w2 WITH FORM "prtest"
|
|
IF NOT os.Path.exists(path) THEN
|
|
CALL fgl_winmessage("NO",path,"info")
|
|
RETURN
|
|
END IF
|
|
IF NOT os.Path.isdirectory(path) THEN
|
|
DISPLAY " ", os.Path.basename(path)
|
|
RETURN
|
|
END IF
|
|
LET contenido[1]="[",path,"]"
|
|
LET idx = 1
|
|
CALL os.Path.dirsort("name", 1)
|
|
LET h = os.Path.diropen(path)
|
|
WHILE h > 0
|
|
LET child = os.Path.dirnext(h)
|
|
IF child IS NULL THEN EXIT WHILE END IF
|
|
IF child == "." OR child == ".." THEN CONTINUE WHILE END IF
|
|
LET contenido[idx] = os.Path.join( path, child )
|
|
LET idx = idx + 1
|
|
END WHILE
|
|
CALL os.Path.dirclose(h)
|
|
DISPLAY ARRAY contenido TO scontenido.*
|
|
ON ACTION borrar
|
|
CALL os.Path.delete(contenido[arr_curr()]) RETURNING exito
|
|
IF NOT exito THEN
|
|
CALL fgl_winmessage("E","NO BORRE EL FILE","INFO")
|
|
CONTINUE DISPLAY
|
|
END IF
|
|
AFTER DISPLAY
|
|
IF INT_FLAG THEN
|
|
EXIT PROGRAM
|
|
END IF
|
|
EXIT DISPLAY
|
|
END DISPLAY
|
|
CLOSE WINDOW w2
|
|
END FUNCTION} |