207 lines
7.7 KiB
Plaintext
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 |