Files
MBS/MOVIL401/MBSinventario/appmain_1.4gl
T

200 lines
7.9 KiB
Plaintext

IMPORT util
TYPE t_sync_cmd RECORD
oper STRING,
data STRING
END RECORD
MAIN
DEFINE archivo STRING
CALL init_mobile_log("err_gm_maps.log")
TRY
DATABASE dbmbs
CATCH
CREATE DATABASE dbmbs
END TRY
DATABASE dbmbs
CALL menu_principal()
END MAIN
FUNCTION menu_principal()
call ui.Interface.loadStyles("menu")
case frontend()
when "GMA" call ui.Interface.loadActionDefaults("menu_android")
# CALL fgl_winmessage(" ","GMA","info")
when "GMI" call ui.Interface.loadActionDefaults("menu_ios")
otherwise call ui.Interface.loadActionDefaults("menu")
end CASE
CALL execute()
END FUNCTION
function execute()
open window splash with form "splash"
call splash()
close window splash
end function
private function splash()
define splash string
define l_result,fecha_crea STRING,
kusuario,kclave VARCHAR(50),
fecha_date DATETIME YEAR TO MINUTE
DEFINE id_num,idx INT,
url STRING,
estado BOOLEAN,
tipo_inventario VARCHAR(100),
chk_tramo,chk_productos,chk_seccion,chk_bodegas,chk_usuarios,chk_fechaConteo SMALLINT,
cuenta_existencia,cuenta_productos,cuenta_bodegas,cuenta_secciones,cuenta_tramos,cuenta_fechaConteo INT,
arrayOfCalendars dynamic ARRAY OF STRING,
tipo,pfecha CHAR(70)
DEFINE arr_info DYNAMIC ARRAY OF RECORD
xtipo,xfecha STRING
END RECORD
CALL conexion() RETURNING url
call inicio(url) RETURNING kusuario,kclave
IF kusuario = "demo" THEN
CALL conexion_demo() RETURNING url
END IF
call ui.interface.frontcall("webcomponent","call",["formonly.splash","setById","root",splash_html()],l_result)
input by name splash attributes(unbuffered, without defaults=true, cancel=false, accept=false)
before input
-- set to false before deployment
call dialog.setActionActive("settings", TRUE)
on ACTION settings
menu "" attributes(style="dialog")
ON ACTION inventario ATTRIBUTE(TEXT="Gestion Inventario")
CALL CONTEO(kusuario)
ON ACTION sincroniza ATTRIBUTE(TEXT="Download Data")
OPEN WINDOW ws1 WITH FORM "sincroniza"
INPUT BY NAME tipo_inventario,chk_productos,chk_tramo,chk_seccion,chk_bodegas,chk_usuarios,
chk_fechaConteo
BEFORE INPUT
IF LENGTH(url) > 1 THEN
DISPLAY "SERVIDOR ACTIVO" TO url
ELSE
DISPLAY "SERVIDOR INACTIVO" TO url
END IF
SELECT COUNT(*) INTO cuenta_productos FROM productos
SELECT COUNT(*) INTO cuenta_secciones FROM secciones
SELECT COUNT(*) INTO cuenta_bodegas FROM bodegas
SELECT COUNT(*) INTO cuenta_tramos FROM tramos
SELECT COUNT(*) INTO cuenta_fechaConteo FROM intb00044
SELECT COUNT(*) INTO cuenta_existencia FROM existencia
DISPLAY BY NAME cuenta_productos
DISPLAY BY NAME cuenta_secciones
DISPLAY BY NAME cuenta_bodegas
DISPLAY BY NAME cuenta_tramos
DISPLAY BY NAME cuenta_fechaConteo
DISPLAY BY NAME cuenta_existencia
AFTER INPUT
IF int_flag THEN
EXIT INPUT
END IF
CALL valida_usuario(kusuario,kclave,"ABIERTA",url) RETURNING estado,id_num
IF chk_usuarios = 1 THEN
CALL usuarios_download(url)
END IF
IF chk_productos = 1 THEN
IF tipo_inventario IS NOT NULL THEN
CALL productos_download(url,tipo_inventario)
ELSE
CALL fgl_winmessage("ERROR","FAVOR DE ELEJIR INVENTARIO","INFO")
NEXT FIELD tipo_inventario
END IF
END IF
IF chk_bodegas = 1 THEN
CALL bodegas_download(url)
END IF
IF chk_seccion = 1 THEN
CALL seccion_download(url)
END if
IF chk_tramo = 1 THEN
CALL tramo_download(url)
END IF
IF chk_fechaConteo = 1 THEN
CALL fechaConteo_download(url)
END IF
CALL valida_usuario(kusuario,kclave,"CERRAR",url) RETURNING estado,id_num
END INPUT
CLOSE WINDOW ws1
# ON ACTION visualiza ATTRIBUTE(TEXT="view")
# SELECT a.* INTO tipo,Pfecha FROM intb00044 a
# OPEN WINDOW w10 WITH FORM "form"
# DISPLAY tipo TO record1[1].edit1
# DISPLAY pfecha TO record1[1].edit2
# CLOSE WINDOW w10
# ON ACTION actualiza ATTRIBUTE(TEXT="CONSULTA PRODUCTOS")
{ LET fecha_date = CURRENT
LET fecha_crea = fecha_date
CALL fgl_winmessage("info",fecha_crea,"info")
UPDATE iptb00012 SET fech_crea = fecha_crea}
# OPEN WINDOW w20 WITH FORM "form"
# DECLARE busca_fecha CURSOR FOR
# SELECT a.descrip_esp,a.codid FROM productos a WHERE
# a.tipo_inventario = 'REPUESTOS'
# LET idx = 1
# FOREACH busca_fecha INTO arr_info[idx].*
# LET idx = idx +1
# END FOREACH
# DISPLAY ARRAY arr_info TO record1.*
# CLOSE WINDOW w20
ON ACTION crea_index ATTRIBUTE(TEXT="Crear Index")
CALL db_add_indexes()
ON ACTION etiquetas ATTRIBUTE(TEXT="Impresion Etiquetas")
CALL imp_etiquetas(url)
ON ACTION descargar ATTRIBUTE(TEXT="Descargar Data")
CALL valida_usuario(kusuario,kclave,"ABIERTA",url) RETURNING estado,id_num
IF estado THEN
CALL descargar(url)
CALL valida_usuario(kusuario,kclave,"CERRAR",url) RETURNING estado,id_num
ELSE
CALL fgl_winmessage("INFO","CONEXION INEXISNTETE, CONTACTE AL ADMINISTRADOR","INFO")
CONTINUE MENU
END IF
ON ACTION limpia_conteo ATTRIBUTES(TEXT="Borrar Datos")
CALL borra_info()
on action CANCEL ATTRIBUTE(TEXT="Salir Aplicacion")
exit program
end menu
# on action help
# call browser.browser("Help","https://demo.4js.com/gas/help.htm")
-- this could use a PDF but the PDF is slow to load when it contains images
-- could also consider embedding PDF inside application
#call browser.browser("help","https://demo.4js.com/gas/help.pdf")
on action about
call show_message(about_text(), true)
end input
if int_flag then
let int_flag = 0
end if
end function
function frontend()
define l_frontend string
call ui.Interface.frontCall("standard","feinfo","fename",l_frontend)
return l_frontend
end FUNCTION