192 lines
5.3 KiB
Plaintext
192 lines
5.3 KiB
Plaintext
IMPORT os
|
|
|
|
DEFINE d_tipos, mensaje, f_tipos, filepath, l_file, tmpdir_file STRING
|
|
DEFINE
|
|
dir_file CHAR(60),
|
|
idx INT,
|
|
p_res SMALLINT,
|
|
documentos DYNAMIC ARRAY OF RECORD
|
|
ruta_fisica VARCHAR(200),
|
|
filedestino VARCHAR(200),
|
|
nombreFileOriginal VARCHAR(100),
|
|
nombreFile VARCHAR(100)
|
|
END RECORD
|
|
|
|
FUNCTION AddDocs(
|
|
nombreCliente STRING, num_docc INT, tipo_doc CHAR(10), sucid SMALLINT)
|
|
|
|
OPEN WINDOW w2 WITH FORM "agregar_docs"
|
|
CALL fgl_settitle("Agregar archivos al documento")
|
|
|
|
CALL buscardocs(num_docc)
|
|
|
|
DISPLAY nombreCliente.trimLeft() TO nombre_cliente
|
|
DISPLAY num_docc TO num_doc
|
|
|
|
DIALOG ATTRIBUTES(UNBUFFERED)
|
|
|
|
DISPLAY ARRAY documentos TO Drecord.*
|
|
|
|
ON ACTION UploadBttn
|
|
CALL UploadDoc(num_docc, tipo_doc, sucid)
|
|
|
|
ON ACTION OpenBttn
|
|
CALL OpenDoc(num_docc)
|
|
|
|
ON ACTION salir ATTRIBUTES(TEXT = "Salir", IMAGE = "fa-power-off")
|
|
EXIT DIALOG
|
|
CLOSE WINDOW w2
|
|
|
|
END DISPLAY
|
|
|
|
END DIALOG
|
|
CLOSE WINDOW w2
|
|
|
|
END FUNCTION
|
|
|
|
FUNCTION buscardocs(num_docc INT)
|
|
INITIALIZE documentos TO NULL
|
|
|
|
DECLARE buscar CURSOR FOR
|
|
SELECT ruta_orig, ruta_fisica, nombreFileOriginal, nombreFile
|
|
FROM vetb00113
|
|
WHERE num_doc = num_docc
|
|
|
|
LET idx = 1
|
|
|
|
FOREACH buscar
|
|
INTO documentos[idx].ruta_fisica,
|
|
documentos[idx].filedestino,
|
|
documentos[idx].nombreFileOriginal,
|
|
documentos[idx].nombreFile
|
|
LET idx = idx + 1
|
|
END FOREACH
|
|
|
|
END FUNCTION
|
|
|
|
FUNCTION UploadDoc(num_docc INT, tipo_doc CHAR(10), sucid SMALLINT)
|
|
|
|
DEFINE answer, OriginalName, DocumentName STRING
|
|
DEFINE DocumentNumber INT
|
|
DEFINE buf base.StringBuffer
|
|
|
|
SELECT COUNT(*) INTO DocumentNumber FROM vetb00113 WHERE num_doc = num_docc
|
|
|
|
IF DocumentNumber IS NULL OR DocumentNumber = 0 THEN
|
|
LET DocumentNumber = 1
|
|
ELSE
|
|
LET DocumentNumber = DocumentNumber + 1
|
|
END IF
|
|
|
|
DISPLAY DocumentNumber
|
|
|
|
LET d_tipos = "PDF"
|
|
LET f_tipos = "*.pdf *.jpg *.png *.dwg *.dkf"
|
|
LET mensaje = %"Elige Documento"
|
|
|
|
CALL ui.Interface.frontCall(
|
|
"standard",
|
|
"openfile",
|
|
[dir_file, d_tipos, f_tipos, mensaje],
|
|
[filepath])
|
|
|
|
LET answer =
|
|
fgl_winquestion(
|
|
"Adjuntar archivo al documento",
|
|
"ESTA SEGURO QUE DESEA ADJUNTAR ESTE ARCHIVO AL DOCUMENTO "
|
|
|| num_docc
|
|
|| "?",
|
|
"YES",
|
|
"YES|NO",
|
|
"QUESTION",
|
|
0)
|
|
|
|
IF answer = 'YES' THEN
|
|
|
|
IF filepath IS NOT NULL THEN
|
|
IF downshift(os.Path.extension(filepath)) = "pdf"
|
|
OR downshift(os.Path.extension(filepath)) = "jpg"
|
|
OR downshift(os.Path.extension(filepath)) = "dwg"
|
|
OR downshift(os.Path.extension(filepath)) = "dxf"
|
|
OR downshift(os.Path.extension(filepath)) = "png" THEN
|
|
LET dir_file = os.Path.basename(filepath)
|
|
LET originalName = os.Path.baseName(filepath)
|
|
DISPLAY filepath TO ruta_orig
|
|
|
|
CALL documentos.appendElement()
|
|
|
|
IF idx IS NULL THEN
|
|
LET idx = 1
|
|
END IF
|
|
|
|
LET buf = base.StringBuffer.create()
|
|
CALL buf.append(DocumentNumber USING "&&&" CLIPPED)
|
|
CALL buf.trimRight()
|
|
CALL buf.append("-")
|
|
CALL buf.trimRight()
|
|
CALL buf.append(num_docc)
|
|
|
|
LET DocumentName =
|
|
buf.toString(), ".", os.Path.extension(filepath) CLIPPED
|
|
|
|
LET dir_file =
|
|
"archivos\\ordenes\\",
|
|
buf.toString(),
|
|
".",
|
|
os.Path.extension(filepath) CLIPPED
|
|
|
|
CALL fgl_getfile(filepath, dir_file)
|
|
|
|
-- CALL documentos[idx].filedestino.readFile(dir_file)
|
|
|
|
LET documentos[idx].nombreFileOriginal =
|
|
os.Path.basename(filepath)
|
|
|
|
LET documentos[idx].nombreFile = os.Path.baseName(dir_file)
|
|
|
|
LET documentos[idx].ruta_fisica = filepath
|
|
|
|
LET idx = idx + 1
|
|
|
|
ELSE
|
|
CALL fgl_winmessage(
|
|
"ERROR", "EL FILE DEBE SER PDF, JPG, PNG, DWG", "INFO")
|
|
END IF
|
|
|
|
END IF
|
|
|
|
ELSE
|
|
CALL msg(2)
|
|
END IF
|
|
|
|
INSERT INTO vetb00113
|
|
VALUES(num_docc,
|
|
tipo_doc,
|
|
sucid,
|
|
filepath,
|
|
dir_file,
|
|
originalName,
|
|
DocumentName)
|
|
|
|
END FUNCTION
|
|
|
|
FUNCTION OpenDoc(num_docc INT)
|
|
|
|
TRY
|
|
|
|
SELECT ruta_fisica INTO tmpdir_file FROM vetb00113 WHERE num_doc = num_docc
|
|
AND nombreFile = documentos[arr_curr()].nombreFile
|
|
|
|
CALL ui.Interface.frontCall("standard", "getenv", ["TEMP"], [l_file])
|
|
|
|
LET l_file = l_file CLIPPED, "\\", documentos[arr_curr()].nombreFile
|
|
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
|
|
|
|
END FUNCTION
|