Files
MBS/PROYECTO/nodir/noprrp044.4gl
T

207 lines
7.7 KiB
Plaintext

{
PROGRAMA : noprmt044.4gl
DESARROLLADO POR: ING. JUAN SOTO
OBJETIVO : Impresion Carnets Empleados
FECHA DESARROLLO: Agosto 9, 2021
}
GLOBALS
"noprgb000.4gl"
DEFINE ubicacionhtml STRING,
direccion_suc,telefono_suc VARCHAR(100),
cuenta_desde,cuenta_hasta INT,
tipo_cardnet,provincia VARCHAR(60),
xpais CHAR(10)
MAIN
DEFER INTERRUPT
CALL ARG_VAL(1) RETURNING usuarios
CALL ARG_VAL(2) RETURNING clave
CONNECT to "smarmotech" USER usuarios USING clave
SELECT a.* INTO p_companias.* FROM companias a
CALL noprrp044()
END MAIN
FUNCTION noprrp044()
DEFINE foto BYTE,
tmpfile STRING
OPEN WINDOW w1 WITH FORM "nofmrp044"
INPUT BY NAME tipo_cardnet
AFTER INPUT
IF int_flag THEN
LET int_flag = FALSE
EXIT PROGRAM
END IF
EXIT INPUT
END INPUT
IF tipo_cardnet = 'EMPLEADOS' THEN
CONSTRUCT criterio ON a.departamento,a.num_emp,a.nom1_emp,a.apell1_emp
FROM departamento,num_emp,nom1_emp,apell1_emp
BEFORE CONSTRUCT
CALL departamentos()
AFTER CONSTRUCT
IF int_flag THEN
LET int_flag = FALSE
RETURN
END IF
EXIT CONSTRUCT
END CONSTRUCT
LET SELEC = "SELECT
a.nom1_emp,
a.apell1_emp,
a.num_emp,
a.cedula,
b.nom_puesto,
a.foto_empleado,
c.direccion,
c.telefono,
e.abreviatura,
f.nombre_provincia
FROM adtb00003 a
LEFT JOIN adtb00004 b ON a.cod_puesto = b.cod_puesto
LEFT JOIN sucursales c ON c.sucid = a.sucid
LEFT JOIN vetb00017 e ON e.codigo = c.pais
LEFT JOIN vetb00020 f ON f.cod_provincia = c.cod_provincia
WHERE ",criterio CLIPPED,
" AND a.status_t IS NULL"
PREPARE comando FROM selec
DECLARE buscar CURSOR FOR comando
LET idx = 1
LET r_filename = 'noprrp044.4rp'
LET ubicacionhtml="https://shop.marmotech.com.do"
LET tmpfile = '.\\TMP\\tmpfoto.jpg'
LOCATE foto IN MEMORY
FOREACH buscar INTO datos_cheque.nom1_emp,datos_cheque.apell1_emp,datos_cheque.num_emp,
datos_cheque.cedula,puesto.nom_puesto,foto,direccion_suc,
p_Companias.telefono,xpais,provincia
IF idx = 1 THEN
IF fgl_report_loadCurrentSettings(r_filename) THEN -- load the .4rp file
LET preview=1
LET r_output = 'SVG'
CALL fgl_report_selectDevice(r_output) -- changing default
CALL fgl_report_selectPreview(preview) -- changing default
CALL fgl_report_setPrinterSides("two-sided-short-edge")
LET handler = fgl_report_commitCurrentSettings() -- commit changes
END IF
IF handler IS NOT NULL THEN -- report engine was configured ok
START REPORT reporte TO XML HANDLER handler
END IF
END IF
LET idx = idx +1
IF foto IS NOT NULL THEN
CALL foto.writeFile(tmpfile)
ELSE
LET tmpfile='.\\TMP\\fotodefault.jpg'
END IF
OUTPUT TO REPORT reporte(tmpfile)
END FOREACH
IF idx > 1 THEN
FINISH REPORT reporte
END IF
ELSE
CALL generacardnet()
END IF
CLOSE WINDOW w1
END FUNCTION
REPORT reporte(xtmpfile)
DEFINE xtmpfile STRING
FORMAT
ON EVERY ROW
#DISPLAY "ubicacion ",ubicacionhtml
IF direccion_suc IS NOT NULL THEN
LET p_companias.direccion = direccion_suc
ELSE
SELECT c.direccion,c.telefono
INTO direccion_suc,p_companias.telefono
FROM sucursales c WHERE sucid = 1
END IF
PRINTX datos_cheque.nom1_emp,datos_cheque.apell1_emp,datos_cheque.num_emp,
direccion_suc,p_Companias.telefono,datos_cheque.cedula,
puesto.nom_puesto,xtmpfile,
xpais,provincia
END REPORT
FUNCTION generacardnet()
DEFINE etiqueta VARCHAR(100),
ubicacion VARCHAR(30)
INPUT BY NAME cuenta_desde,cuenta_hasta,ubicacion,etiqueta
AFTER INPUT
IF int_flag THEN
EXIT INPUT
END IF
IF cuenta_desde IS NULL THEN
CALL msg(16)
NEXT FIELD cuenta_Desde
END IF
IF cuenta_hasta IS NULL THEN
CALL msg(16)
NEXT FIELD cuenta_hasta
END IF
IF etiqueta IS NULL THEN
CALL msg(16)
NEXT FIELD etiqueta
END IF
IF ubicacion IS NULL THEN
CALL msg(16)
NEXT FIELD ubicacion
END IF
IF cuenta_hasta < cuenta_desde THEN
CALL msg(1012)
NEXT FIELD cuenta_desde
END IF
IF ubicacion = 'DCM' THEN
SELECT c.direccion,c.telefono INTO p_companias.direccion,p_companias.telefono
FROM sucursales c WHERE sucid = 2
ELSE
SELECT c.direccion,c.telefono INTO p_companias.direccion,p_companias.telefono
FROM sucursales c WHERE sucid = 1
END IF
LET idx = 1
LET r_filename = 'noprrp044_1.4rp'
LET ubicacionhtml="https://shop.marmotech.com.do"
IF fgl_report_loadCurrentSettings(r_filename) THEN -- load the .4rp file
LET preview=1
LET r_output = 'SVG'
CALL fgl_report_selectDevice(r_output) -- changing default
CALL fgl_report_selectPreview(preview) -- changing default
CALL fgl_report_setPrinterSides("two-sided-short-edge")
LET handler = fgl_report_commitCurrentSettings() -- commit changes
END IF
IF handler IS NOT NULL THEN -- report engine was configured ok
START REPORT reporte1 TO XML HANDLER handler
END IF
FOR idx = 1 TO cuenta_hasta
OUTPUT TO REPORT reporte1(idx,etiqueta)
END FOR
FINISH REPORT reporte1
EXIT INPUT
END INPUT
END FUNCTION
REPORT reporte1(xidx,xetiqueta)
DEFINE xidx INT,
xetiqueta VARCHAR(100)
FORMAT
ON EVERY ROW
PRINTX xidx,xetiqueta,p_companias.nombre,p_companias.telefono,p_companias.direccion
END REPORT