Commit inicial: fuentes MBS ERP (Genero 6) + .gitignore + docs/SETUP_PC_MBS.md
This commit is contained in:
@@ -0,0 +1,191 @@
|
||||
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
|
||||
Reference in New Issue
Block a user