592 lines
22 KiB
Plaintext
592 lines
22 KiB
Plaintext
{
|
|
------------------------------------------------------------------------
|
|
FORMULARIO : NOPRRP008
|
|
OBJETIVO : Reporte para imprimir los Volantes
|
|
PROGRAMADOR : Ing. Juan Soto.
|
|
FECHA REALIZACION : Noviembre 5, 1993
|
|
MODIFICADO POR : Ing. Juan Soto
|
|
FECHA : Marzo 11, 2003
|
|
DESCRIPCION : Volante de Los empleados por pagar la nomina automatica
|
|
en el BANCO POPULAR, EL CODIGO DE LA EMPRESA ES EL 3563.
|
|
-----------------------------------------------------------------------------
|
|
}
|
|
IMPORT JAVA javax.mail.Session
|
|
|
|
GLOBALS "noprgb000.4gl"
|
|
|
|
DEFINE genera CHAR(2),
|
|
xingresos,xdescuentos DEC(12,2),
|
|
num_Doc,email_err,cuenta_envio,num_nomi_ant INT,
|
|
estado_Envio VARCHAR(50),
|
|
vendedorEmail,emailCC VARCHAR(60),cuerpo_correo VARCHAR(2000),
|
|
subject VARCHAR(100), perfil,procedimiento VARCHAR(60),nombre_file,nombre_empleado VARCHAR(80)
|
|
|
|
DEFINE xusername,xsmtphost,xsmtpport,xpassword,respuesta,mensajes STRING
|
|
|
|
DEFINE meses ARRAY[12] OF CHAR(15)
|
|
|
|
|
|
DEFINE criterio10 CHAR(200)
|
|
|
|
MAIN
|
|
DEFER INTERRUPT
|
|
CALL STARTLOG("volantes.txt")
|
|
CALL ARG_VAL(1) RETURNING usuarios
|
|
CALL ARG_VAL(2) RETURNING clave
|
|
CALL ARG_VAL(3) RETURNING impresor
|
|
|
|
CONNECT to "smarmotech" USER usuarios USING clave
|
|
SELECT a.* INTO p_companias.* FROM companias a
|
|
CALL noprrp008()
|
|
END MAIN
|
|
#"file:///f:/master/IMAGENES/LOGO.JPG"
|
|
#"file:///C://Users//jsoto//Documents//PROYECTOS//BDL320//MARMOTECH//PROYECTO//bin//IMAGENES//LOGO_DCM.PNG"
|
|
|
|
FUNCTION noprrp008()
|
|
|
|
DEFINE handler om.SaxDocumentHandler, -- return value from fgl_report_commitCurrentSettings()
|
|
r_filename STRING, -- filename of Report Design Document including .4rp extension
|
|
r_output STRING, -- output format option
|
|
preview INTEGER -- TRUE/FALSE, to set preview option
|
|
DEFINE datos_recibo RECORD
|
|
num_emp LIKE adtb00003.num_emp,
|
|
departamento LIKE adtb00003.departamento,
|
|
nivel_emp LIKE adtb00003.nivel_emp,
|
|
cod_puesto LIKE adtb00003.cod_puesto,
|
|
nom1_emp LIKE adtb00003.nom1_emp,
|
|
apell1_emp LIKE adtb00003.nom1_emp,
|
|
nom2_emp LIKE adtb00003.nom1_emp,
|
|
apell2_emp LIKE adtb00003.nom1_emp,
|
|
cod_mov LIKE notb00008.cod_mov,
|
|
descrip_mov LIKE notb00002.segundo_enc,
|
|
tipo_d CHAR(1),
|
|
cantidad LIKE notb00008.cantidad,
|
|
valor LIKE notb00008.valor,
|
|
cuenta_no LIKE adtb00003.cuenta_no,
|
|
email CHAR(100),
|
|
nombre CHAR(80),
|
|
numero INTEGER,
|
|
fecha DATE,
|
|
acumulado DECIMAL(12,2),
|
|
neto DECIMAL(12,2)
|
|
|
|
END RECORD,
|
|
retorne BOOLEAN
|
|
|
|
|
|
OPTIONS
|
|
FORM LINE 9,
|
|
ERROR LINE 24,
|
|
COMMENT LINE 22
|
|
|
|
# Desplegue de pantalla y de formulario para la captura de informacion
|
|
#CALL pantalla()
|
|
#LET formulario = formulario CLIPPED,"nofmrp008"
|
|
OPEN FORM nofmrp008 FROM "nofmrp008"
|
|
DISPLAY FORM nofmrp008
|
|
#DISPLAY "noprrp008" AT 4,2 ATTRIBUTE(RED)
|
|
#DISPLAY "Volantes de Nomina" AT 6,31 ATTRIBUTE(BLACK)
|
|
|
|
INITIALIZE c_entra TO null
|
|
|
|
#Captura de informacion para el reporte: banco,numero de nomina,cheque_no
|
|
INPUT BY NAME c_entra.*,genera,imp_form
|
|
BEFORE INPUT
|
|
NEXT FIELD num_nomi
|
|
|
|
AFTER FIELD tipo_emp
|
|
IF c_entra.tipo_emp = "Q" THEN
|
|
LET c_entra.nombre_tipo = "QUINCENAL"
|
|
END IF
|
|
IF c_entra.tipo_emp = "S" THEN
|
|
LET c_entra.nombre_tipo = "SEMANAL"
|
|
END IF
|
|
IF c_entra.tipo_emp = "V" THEN
|
|
LET c_entra.nombre_tipo = "VENDEDORES"
|
|
END IF
|
|
# ESTE VALOR LO TENIA AL 18/09/2019 LET fecha_inicial = "01/01/2007"
|
|
LET fecha_inicial = "01/01/2010"
|
|
SELECT COUNT(*) INTO cuenta_emp FROM adtb00003
|
|
WHERE (status_t IS NULL OR
|
|
status_t = "I") AND nomina = c_entra.tipo_emp AND cuenta_no IS NOT NULL
|
|
|
|
# Monto Nomina
|
|
# Del monto total de la nomina se quitaran las fichas mas abajo mencionadas porque ellos tienen
|
|
# Problemas de credito en el banco.
|
|
SELECT SUM(a.valor) INTO p_valor FROM notb00008 a,adtb00003 b
|
|
WHERE a.num_nomi = c_entra.num_nomi AND
|
|
a.tipo_emp = c_entra.tipo_emp AND
|
|
a.cod_mov not in (100,101,102,98,50,54) AND
|
|
a.clase_mov not in ("F") AND
|
|
# a.num_emp NOT IN (560,564,609,614)
|
|
a.num_emp = b.num_emp AND b.cuenta_no IS NOT NULL AND
|
|
a.status_t IS NULL
|
|
|
|
DISPLAY BY NAME c_entra.nombre_tipo ATTRIBUTE (BOLD)
|
|
SELECT tipo_emp,CAST(fecha_del AS CHAR(10)),CAST(fecha_al AS CHAR(10))
|
|
INTO datos_peri.* FROM notb00010
|
|
WHERE num_nomi = c_entra.num_nomi and
|
|
tipo_emp = c_entra.tipo_emp
|
|
|
|
IF status = notfound THEN
|
|
LET numero_msg = 3
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD tipo_emp
|
|
END IF
|
|
|
|
DISPLAY BY NAME datos_peri.* ATTRIBUTE(BOLD)
|
|
AFTER INPUT
|
|
IF int_flag THEN
|
|
LET numero_msg = 2
|
|
CALL msg(numero_msg)
|
|
LET int_flag = false
|
|
RETURN
|
|
END IF
|
|
EXIT INPUT
|
|
END INPUT
|
|
CONSTRUCT BY NAME criterio10 ON a.departamento,a.num_emp
|
|
|
|
IF int_flag THEN
|
|
LET numero_msg = 2
|
|
CALL msg(numero_msg)
|
|
LET int_flag = false
|
|
RETURN
|
|
END IF
|
|
LET num_Doc = 0
|
|
|
|
LET selec10 =
|
|
"SELECT a.num_emp,a.departamento,a.nivel_emp,a.cod_puesto, ",
|
|
"a.nom1_emp,a.apell1_emp,a.nom2_emp,a.apell2_emp, ",
|
|
"b.cod_mov,c.ch_encabeza,b.clase_mov,ISNULL(b.cantidad,0),b.valor, ",
|
|
"a.cuenta_no,a.email ",
|
|
"FROM adtb00003 a,notb00008 b, notb00002 c ",
|
|
"WHERE a.num_emp = b.num_emp and ",
|
|
"b.num_nomi = ? and ",
|
|
"b.tipo_emp = ? and ",
|
|
"b.cod_mov = c.cod_mov and ",
|
|
criterio10 clipped," AND b.clase_mov not in ('F','T') and b.status_t is null ",
|
|
"ORDER BY a.departamento,a.num_emp,b.clase_mov DESC,b.cod_mov"
|
|
|
|
PREPARE comando FROM selec10
|
|
DECLARE busca CURSOR FOR comando
|
|
OPEN busca USING c_entra.num_nomi,c_entra.tipo_emp
|
|
|
|
IF int_flag THEN
|
|
LET numero_msg = 2
|
|
CALL msg(numero_msg)
|
|
LET int_flag = false
|
|
RETURN
|
|
END IF
|
|
|
|
-- configure report engine; the functions prefixed fgl that are called here are part of the GRW API
|
|
LET r_filename = 'noprrp008.4rp'
|
|
IF fgl_report_loadCurrentSettings(r_filename) THEN -- load the .4rp file
|
|
LET r_output='SVG'
|
|
LET preview=1
|
|
CALL fgl_report_selectDevice(r_output) -- changing default
|
|
CALL fgl_report_selectPreview(preview) -- changing default
|
|
LET handler = fgl_report_commitCurrentSettings() -- commit changes
|
|
END IF
|
|
--run the report
|
|
IF handler IS NOT NULL THEN -- report engine was configured ok
|
|
|
|
|
|
START REPORT cheque TO XML HANDLER handler
|
|
|
|
|
|
LET i = 1
|
|
LET idx = 1
|
|
LET siguie = "S"
|
|
#LET emp_ant = 0
|
|
#LET cuarta = "N"
|
|
|
|
|
|
WHILE STATUS != NOTFOUND
|
|
FETCH busca INTO datos_recibo.*
|
|
IF status = notfound THEN
|
|
EXIT WHILE
|
|
END IF
|
|
IF int_flag THEN
|
|
LET numero_msg = 2
|
|
CALL msg(numero_msg)
|
|
LET int_flag = false
|
|
RETURN
|
|
END IF
|
|
IF genera = "EM" AND datos_recibo.email IS NOT NULL THEN
|
|
CONTINUE WHILE
|
|
END IF
|
|
LET datos_recibo.nombre = datos_recibo.nom1_emp clipped," ",
|
|
datos_recibo.nom2_emp clipped," ",
|
|
datos_recibo.apell1_emp clipped," ",
|
|
datos_recibo.apell2_emp clipped
|
|
|
|
LET datos_recibo.acumulado = 0
|
|
|
|
# Busqueda de acumulados
|
|
SELECT a.* FROM notb00014 a
|
|
WHERE a.cod_mov = datos_recibo.cod_mov
|
|
|
|
IF STATUS != NOTFOUND THEN
|
|
SELECT sum(valor) INTO datos_recibo.acumulado FROM notb00008
|
|
WHERE num_emp = datos_recibo.num_emp and
|
|
cod_mov = datos_recibo.cod_mov and
|
|
fecha <= datos_peri.fecha_a AND
|
|
status_t IS NULL
|
|
|
|
ELSE
|
|
SELECT sum(valor) INTO datos_recibo.acumulado FROM notb00008
|
|
WHERE num_emp = datos_recibo.num_emp and
|
|
cod_mov = datos_recibo.cod_mov and
|
|
fecha >= fecha_inicial and
|
|
fecha <= datos_peri.fecha_a AND
|
|
status_t IS NULL
|
|
END IF
|
|
|
|
IF datos_recibo.cod_mov = 12 THEN
|
|
LET p_valor = 0
|
|
SELECT valor INTO p_valor FROM notb00008
|
|
WHERE num_nomi = c_entra.num_nomi and tipo_emp = c_entra.tipo_emp and
|
|
num_emp = datos_recibo.num_emp and
|
|
cod_mov = 110 AND status_t IS NULL
|
|
LET datos_recibo.valor = datos_recibo.valor + p_valor
|
|
END IF
|
|
|
|
# Busque del valor neto del empleado para que el programa tenga la oportunidad
|
|
# de buscar el valor en letras del cheque
|
|
|
|
SELECT sum(a.valor) INTO datos_recibo.neto FROM notb00008 a
|
|
WHERE
|
|
a.num_nomi = c_entra.num_nomi and
|
|
a.tipo_emp = c_entra.tipo_emp and
|
|
a.cod_mov not in (100,101,102,98,50,54) and
|
|
a.num_emp = datos_recibo.num_emp and
|
|
a.departamento = datos_recibo.departamento and clase_mov not in ('F') AND
|
|
a.status_t IS NULL
|
|
|
|
#-------------------------------------------------------------------------
|
|
LET datos_recibo.numero = c_entra.num_nomi
|
|
OUTPUT TO REPORT cheque(datos_recibo.*)
|
|
|
|
|
|
LET siguie = "N"
|
|
END WHILE
|
|
|
|
FINISH REPORT cheque
|
|
#CALL fgl_winmessage("r",imprime,"stop")
|
|
#RUN imprime
|
|
END IF
|
|
|
|
|
|
IF genera = "EM" THEN
|
|
#SELECT DISTINCT a.num_nomi INTO num_nomi_ant FROM volantes a
|
|
# IF num_nomi_ant = c_entra.num_nomi THEN
|
|
# LET respuesta = fgl_winquestion("VOLANTES","DESEA LIMPIAR LA TABLA DE LOS VOLANTES","QUESTION","YES|NO","NO",0)
|
|
# IF respuesta = "YES" THEN
|
|
DELETE FROM volantes
|
|
# END IF
|
|
# ELSE
|
|
# DELETE FROM volantes
|
|
# END IF
|
|
LET xusername ='nominas@marmotech.com.do'
|
|
LET xsmtphost ='smtp.office365.com'
|
|
LET xsmtpport = '587'
|
|
LET xpassword = 'Nuevo2018'
|
|
LET cuenta_Envio = 1
|
|
# LET procedimiento = "{ ? =call dbo.sp_enviacorreo_emp(?,?,?,?,?) }" CLIPPED
|
|
LET procedimiento = "{ call dbo.sp_enviacorreo_emp(?,?,?,?,?) }" CLIPPED
|
|
PREPARE smt FROM procedimiento
|
|
|
|
LET num_Doc = 0
|
|
LET selec =
|
|
"SELECT DISTINCT a.num_emp,a.departamento,a.nivel_emp,a.cod_puesto, ",
|
|
"a.nom1_emp,a.apell1_emp,a.nom2_emp,a.apell2_emp,RTRIM(a.email) ",
|
|
|
|
"FROM adtb00003 a,notb00008 b ",
|
|
"WHERE a.num_emp = b.num_emp and ",
|
|
"b.num_nomi = ? and ",
|
|
"b.tipo_emp = ? and ",
|
|
"a.email IS NOT NULL AND ",
|
|
"a.num_emp NOT IN (select k.num_emp FROM volantes k) AND ",
|
|
criterio10 clipped," AND b.clase_mov not in ('F','T') and b.status_t is null ",
|
|
"ORDER BY a.departamento DESC,a.num_emp "
|
|
|
|
PREPARE comando_emp1 FROM selec
|
|
DECLARE empleados CURSOR FOR comando_emp1
|
|
OPEN empleados USING c_entra.num_nomi,c_entra.tipo_emp
|
|
|
|
|
|
# LET perfil ='pnominas'
|
|
LET idx = 1
|
|
FOREACH empleados INTO datos_recibo.num_emp,datos_recibo.departamento,datos_recibo.nivel_emp,
|
|
datos_recibo.cod_puesto,datos_recibo.nom1_emp,datos_recibo.apell1_emp,
|
|
datos_recibo.nom2_emp,datos_recibo.apell2_emp,datos_recibo.email
|
|
-- configure report engine; the functions prefixed fgl that are called here are part of the GRW API
|
|
# LET r_filename = 'noprrp008.4rp'
|
|
# IF idx > 90 AND idx <= 180 THEN
|
|
# LET perfil = 'pnominas_1'
|
|
# END IF
|
|
# IF idx > 180 AND idx <= 270 THEN
|
|
# LET perfil = 'pnominas_2'
|
|
# END IF
|
|
LET xingresos = 0
|
|
LET xdescuentos=0
|
|
# LET subject = datos_recibo.nom1_emp CLIPPED," ",datos_recibo.apell1_emp CLIPPED,"(",datos_recibo.num_emp USING "<<<<",")"
|
|
LET subject = "MARMOTECH, S. A. VOLANTE PAGO CORRESPONDIENTE AL PERIODO DEL ",datos_peri.fecha_d,
|
|
" AL ",datos_peri.fecha_a
|
|
|
|
|
|
LET datos_recibo.nombre = datos_recibo.nom1_emp clipped," ",
|
|
datos_recibo.nom2_emp clipped," ",
|
|
datos_recibo.apell1_emp clipped," ",
|
|
datos_recibo.apell2_emp clipped
|
|
|
|
LET cuerpo_correo="<!DOCTYPE html><body>", "<b>",datos_recibo.nombre CLIPPED,"</b>"
|
|
LET cuerpo_correo =cuerpo_correo, "<table border='1'><tr><th>CODIGO</th><th>DESCRIPCION</th><th>CANTIDAD</th><th>VALOR</th>",
|
|
"<th>ACUMULADO</th></tr>"
|
|
LET nombre_file = "VOL",datos_recibo.num_emp USING "<<<<",".pdf"
|
|
|
|
# IF fgl_report_loadCurrentSettings(r_filename) THEN -- load the .4rp file
|
|
# LET r_output='PDF'
|
|
|
|
# CALL fgl_report_selectDevice(r_output) -- changing default
|
|
# CALL fgl_report_selectPreview(false)
|
|
|
|
# CALL fgl_report_setOutputFileName(nombre_file)
|
|
-- changing default
|
|
# LET handler = fgl_report_commitCurrentSettings() -- commit changes
|
|
#END IF
|
|
--run the report
|
|
#IF handler IS NOT NULL THEN -- report engine was configured ok
|
|
|
|
# START REPORT cheque TO XML HANDLER HANDLER
|
|
|
|
# END IF
|
|
|
|
|
|
LET datos_recibo.acumulado = 0
|
|
DECLARE busca_em CURSOR FOR
|
|
SELECT a.cod_mov,a.ch_encabeza,b.cantidad,b.valor FROM notb00002 a,notb00008 b
|
|
WHERE a.cod_mov = b.cod_mov AND
|
|
b.num_emp = datos_recibo.num_emp AND
|
|
b.num_nomi = c_entra.num_nomi AND
|
|
b.tipo_emp = c_entra.tipo_emp AND
|
|
b.clase_mov NOT IN ('F','T')
|
|
ORDER BY a.cod_mov
|
|
FOREACH busca_em INTO datos_recibo.cod_mov,datos_recibo.descrip_mov,datos_recibo.cantidad,
|
|
datos_recibo.valor
|
|
# Busqueda de acumulados
|
|
SELECT a.* FROM notb00014 a
|
|
WHERE a.cod_mov = datos_recibo.cod_mov
|
|
|
|
IF STATUS != NOTFOUND THEN
|
|
SELECT sum(valor) INTO datos_recibo.acumulado FROM notb00008
|
|
WHERE num_emp = datos_recibo.num_emp and
|
|
cod_mov = datos_recibo.cod_mov and
|
|
fecha <= datos_peri.fecha_a AND
|
|
status_t IS NULL
|
|
|
|
ELSE
|
|
SELECT sum(valor) INTO datos_recibo.acumulado FROM notb00008
|
|
WHERE num_emp = datos_recibo.num_emp and
|
|
cod_mov = datos_recibo.cod_mov and
|
|
fecha >= fecha_inicial and
|
|
fecha <= datos_peri.fecha_a AND
|
|
status_t IS NULL
|
|
END IF
|
|
IF datos_recibo.cod_mov = 12 THEN
|
|
LET p_valor = 0
|
|
SELECT valor INTO p_valor FROM notb00008
|
|
WHERE num_nomi = c_entra.num_nomi and tipo_emp = c_entra.tipo_emp and
|
|
num_emp = datos_recibo.num_emp and
|
|
cod_mov = 110 AND status_t IS NULL
|
|
LET datos_recibo.valor = datos_recibo.valor + p_valor
|
|
END IF
|
|
|
|
# Busque del valor neto del empleado para que el programa tenga la oportunidad
|
|
# de buscar el valor en letras del cheque
|
|
|
|
SELECT sum(a.valor) INTO datos_recibo.neto FROM notb00008 a
|
|
WHERE
|
|
a.num_nomi = c_entra.num_nomi and
|
|
a.tipo_emp = c_entra.tipo_emp and
|
|
a.cod_mov not in (100,101,102,98,50,54) and
|
|
a.num_emp = datos_recibo.num_emp and
|
|
a.departamento = datos_recibo.departamento and clase_mov not in ('F') AND
|
|
a.status_t IS NULL
|
|
|
|
#-------------------------------------------------------------------------
|
|
LET datos_recibo.numero = c_entra.num_nomi
|
|
IF datos_recibo.valor > 0 THEN
|
|
LET xingresos = xingresos + datos_recibo.valor
|
|
ELSE
|
|
LET xdescuentos = xdescuentos+datos_recibo.valor
|
|
END IF
|
|
# OUTPUT TO REPORT cheque(datos_recibo.*)
|
|
IF datos_recibo.cantidad IS NULL THEN
|
|
LET datos_recibo.cantidad = 0
|
|
END IF
|
|
LET cuerpo_correo=cuerpo_correo CLIPPED, "<tr><td>",datos_recibo.cod_mov,"</td>",
|
|
"<td>",datos_Recibo.descrip_mov CLIPPED,"</td>",
|
|
"<td> ",datos_recibo.cantidad USING "###.##","</td>",
|
|
"<td>",datos_recibo.valor USING "#,###,###.##" , "</td>",
|
|
"<td>",datos_recibo.acumulado USING "##,###,###.##","</td></tr>"
|
|
|
|
END FOREACH
|
|
# FINISH REPORT cheque
|
|
LET cuerpo_correo = cuerpo_correo CLIPPED,"<tr><th>INGRESOS :",xingresos USING "##,###,###.##","</th></tr>"
|
|
LET cuerpo_correo = cuerpo_correo CLIPPED,"<tr><th>DESCUENTOS:",xdescuentos USING "##,###,###.##","</th></tr>"
|
|
LET cuerpo_correo = cuerpo_correo CLIPPED,"<tr><th>NETO :",xingresos+xdescuentos USING "##,###,###.##","</th></tr></table></body>"
|
|
|
|
LET vendedoremail = datos_recibo.email
|
|
# LET vendedoremail = 'jsoto@marmotech.com.do'
|
|
LET nombre_file = "volante.pdf"
|
|
|
|
|
|
# EXECUTE smt USING email_err INOUT,vendedorEmail IN,emailCC IN,subject IN,cuerpo_correo IN,perfil IN
|
|
# EXECUTE smt USING vendedorEmail IN,emailCC IN,subject IN,cuerpo_correo IN,perfil IN
|
|
# los parametros son TO:, SUBJECT:, CUERPO:, ATTACHMENT
|
|
#LET cuerpo_correo = "ESTE ES EL PROBLEMA"
|
|
CALL enviaemail(vendedorEmail,subject,cuerpo_correo,NULL,xusername,xsmtphost,xsmtpport,xpassword) #RETURNING retorne
|
|
# IF NOT retorne THEN
|
|
# LET estado_Envio = 'ERROR ENVIO'
|
|
# ELSE
|
|
LET estado_envio = 'ENVIO SATISFACTORIO'
|
|
# END IF
|
|
LET nombre_empleado = datos_recibo.nom1_emp CLIPPED," ",datos_recibo.apell1_emp CLIPPED
|
|
INSERT INTO volantes
|
|
(num_nomi
|
|
,num_emp
|
|
,tipo_emp
|
|
,nombre
|
|
,correo
|
|
,estado
|
|
,perfil
|
|
,fecha_envio
|
|
,fecha_envio_sistema
|
|
,detalle)
|
|
VALUES
|
|
(c_entra.num_nomi, datos_recibo.num_emp,c_entra.tipo_emp, nombre_empleado,
|
|
datos_recibo.email,estado_envio,perfil,c_entra.fecha,
|
|
getdate(),'NO ESPECIFICADO')
|
|
LET cuenta_envio = cuenta_envio + 1
|
|
LET idx = idx +1
|
|
|
|
END FOREACH
|
|
LET mensajes= "NUMERO DE EMAILS ENVIADOS ",cuenta_envio USING "<<<"
|
|
CALL fgl_winmessage("INFO",mensajes,"INFO")
|
|
END IF
|
|
|
|
END FUNCTION
|
|
|
|
REPORT cheque(x)
|
|
|
|
DEFINE x RECORD
|
|
num_emp LIKE adtb00003.num_emp,
|
|
departamento LIKE adtb00003.departamento,
|
|
nivel_emp LIKE adtb00003.nivel_emp,
|
|
cod_puesto LIKE adtb00003.cod_puesto,
|
|
nom1_emp LIKE adtb00003.nom1_emp,
|
|
apell1_emp LIKE adtb00003.nom1_emp,
|
|
nom2_emp LIKE adtb00003.nom1_emp,
|
|
apell2_emp LIKE adtb00003.nom1_emp,
|
|
cod_mov LIKE notb00008.cod_mov,
|
|
descrip_mov LIKE notb00002.segundo_enc,
|
|
tipo_d CHAR(1),
|
|
cantidad LIKE notb00008.cantidad,
|
|
valor LIKE notb00008.valor,
|
|
cuenta_no LIKE adtb00003.cuenta_no,
|
|
email CHAR(100),
|
|
nombre CHAR(80),
|
|
numero INTEGER,
|
|
fecha DATE,
|
|
acumulado DECIMAL(12,2),
|
|
neto DECIMAL(12,2)
|
|
|
|
END RECORD
|
|
|
|
|
|
DEFINE ano CHAR(4)
|
|
DEFINE nombre_mes CHAR(10)
|
|
|
|
|
|
|
|
DEFINE k,in_mes INTEGER,
|
|
fecha_emision CHAR(50) ,
|
|
t_monto,t_desc,p_monto DECIMAL(12,2)
|
|
|
|
|
|
FORMAT
|
|
|
|
BEFORE GROUP OF x.num_emp
|
|
LET num_doc = num_doc + 1
|
|
LET t_desc = 0
|
|
LET t_monto = 0
|
|
LET in_mes = month(today)
|
|
CALL busca_mes()
|
|
LET nombre_mes = meses[in_mes]
|
|
LET p_monto = x.neto
|
|
LET ano = year(today) using "&&&&"
|
|
|
|
LET fecha_emision = day(today) using "&&",nombre_mes clipped,
|
|
ano
|
|
|
|
PRINTX c_entra.nombre_tipo,
|
|
datos_peri.fecha_d,
|
|
x.num_emp,
|
|
x.nombre,
|
|
datos_peri.fecha_a,
|
|
fecha_emision,num_doc
|
|
|
|
ON EVERY ROW
|
|
IF x.tipo_d = "I" OR x.tipo_d ="E" THEN
|
|
LET t_monto = t_monto + x.valor
|
|
END IF
|
|
IF x.tipo_d = "D" THEN
|
|
LET t_desc = t_desc + x.valor
|
|
END IF
|
|
|
|
PRINTX x.*,t_monto,t_desc
|
|
AFTER GROUP OF x.num_emp
|
|
SKIP TO TOP OF PAGE
|
|
{AFTER GROUP OF x.num_emp
|
|
|
|
SKIP 1 LINE
|
|
PRINT " VISION MISION "
|
|
PRINT "--------------------------------------------------------------------------------------------------------------"
|
|
PRINT "Ser Lider de Calidad Mundial en la Extracci�, |Marmotech es la Empresa que aporta el "
|
|
PRINT "Industrializaci� y Comercializaci� de Rocas |Elemento Natural a las necesidades de nuestros clientes en "
|
|
PRINT "Dimensionadas en Republica Dominicana, |la construcci�, ambientaci�, decoraci� y arquitectura de"
|
|
PRINT "asegurando una sostenida credibilidad en el |obras, tanto en nuestro pa� como en el extranjero, "
|
|
PRINT "mercado local y externo a trav� de productos y |a trav� del uso de la alta tecnolog� y del Talento Humano"
|
|
PRINT "servicios de alta calidad y rentabilidad, mediante|Calificado"
|
|
PRINT "el uso sustentable de nuestros Recursos Naturales |"
|
|
PRINT "--------------------------------------------------------------------------------------------------------------"
|
|
}
|
|
|
|
# Limpieza del arreglo
|
|
#ON LAST ROW
|
|
|
|
# UPDATE notb00010 set status_t = "P",
|
|
# us_mod = usuarios,
|
|
# fech_mod = getdate(),
|
|
# monto_nomina = p_valor
|
|
# WHERE num_nomi = c_entra.num_nomi and
|
|
# tipo_emp = c_entra.tipo_emp
|
|
|
|
END REPORT
|
|
|
|
|
|
FUNCTION busca_mes()
|
|
LET meses[1] = "ENERO"
|
|
LET meses[2] = "FEBRERO"
|
|
LET meses[3] = "MARZO"
|
|
LET meses[4] = "ABRIL"
|
|
LET meses[5] = "MAYO"
|
|
LET meses[6] = "JUNIO"
|
|
LET meses[7] = "JULIO"
|
|
LET meses[8] = "AGOSTO"
|
|
LET meses[9] = "SEPTIEMBRE"
|
|
LET meses[10] = "OCTUBRE"
|
|
LET meses[11] = "NOVIEMBRE"
|
|
LET meses[12] = "DICIEMBRE"
|
|
END FUNCTION |