Commit inicial: fuentes MBS ERP (Genero 6) + .gitignore + docs/SETUP_PC_MBS.md
This commit is contained in:
@@ -0,0 +1,902 @@
|
||||
{
|
||||
-------------------------------------------------------------------------------
|
||||
PROGRAMA : NOPRRP035
|
||||
OBJETIVO : PLANILLA VACACIONES DGT3 y DGT4
|
||||
PROGRAMADOR : Ing. JUAN F. SOTO
|
||||
FECHA REALIZACION : ENERO 18, 1999
|
||||
MODIFICADO POR : Ing. Juan Soto
|
||||
DETALLE MODIFICACION : Genera la planilla de la TSS DGT3 Y DGT4 a excel
|
||||
FECHA MODIFIA
|
||||
-------------------------------------------------------------------------------
|
||||
}
|
||||
GLOBALS "noprgb000.4gl"
|
||||
|
||||
DEFINE selec,rcol,arch_pc,fila_excel,prog,res,
|
||||
cmd2,dcmd2,d_tipos,mensaje,f_tipos,dir_file,nombreFile2 STRING,
|
||||
p_res INT,cuenta,xi,progreso SMALLINT,
|
||||
noregistro INT,
|
||||
|
||||
ciarnc CHAR(11),
|
||||
idioma_office VARCHAR,
|
||||
tipo_Reporte,tiposalida VARCHAR(10)
|
||||
|
||||
|
||||
DEFINE fecha_formulario DATE,
|
||||
registro_no,formulario_no INTEGER,
|
||||
tmpfecha CHAR(10),
|
||||
cnt SMALLINT
|
||||
|
||||
DEFINE fecha1,fecha2 DATE
|
||||
DEFINE m_cedula CHAR(12),
|
||||
fecha_c,fecha_entrada DATE
|
||||
MAIN
|
||||
DEFER INTERRUPT
|
||||
CALL ARG_VAL(1) RETURNING usuarios
|
||||
CALL ARG_VAL(2) RETURNING clave
|
||||
CALL ARG_VAL(3) RETURNING impresor
|
||||
CALL startlog("NORP35,txt")
|
||||
CONNECT to "smarmotech" USER usuarios USING clave
|
||||
SELECT a.* INTO p_companias.* FROM companias a
|
||||
CALL noprrp035()
|
||||
END MAIN
|
||||
|
||||
FUNCTION noprrp035()
|
||||
|
||||
DEFINE registro RECORD
|
||||
nomina LIKE adtb00003.nomina,
|
||||
num_emp LIKE adtb00003.num_emp,
|
||||
departamento LIKE adtb00003.departamento,
|
||||
nivel_emp LIKE adtb00003.nivel_emp,
|
||||
cod_puesto LIKE adtb00003.cod_puesto,
|
||||
nom1_emp CHAR(20),
|
||||
nom2_emp CHAR(20),
|
||||
apell1_emp CHAR(20),
|
||||
apell2_emp CHAR(20),
|
||||
cedula LIKE adtb00003.cedula,
|
||||
serie LIKE adtb00003.serie,
|
||||
fech_nac DATE,
|
||||
fech_efec DATE,
|
||||
sexo LIKE adtb00021.sexo,
|
||||
nacionalidad CHAR(10),
|
||||
nom_puesto LIKE adtb00004.otra_descripcion,
|
||||
sueldo_ac LIKE adtb00003.sueldo_ac,
|
||||
numero_tss LIKE adtb00003.cod_seg1,
|
||||
turno LIKE adtb00003.licencia,
|
||||
sucid LIKE adtb00003.sucid,
|
||||
puesto_real LIKE adtb00004.nom_puesto,
|
||||
novedad VARCHAR(20),
|
||||
fecha_sal DATE,
|
||||
desc_puesto VARCHAR(150),
|
||||
educacion VARCHAR(100),
|
||||
fecha_cambio DATE,
|
||||
tipo_documento VARCHAR(50),
|
||||
cod_puesto_sirla INT,
|
||||
cod_educa_sirla INT,
|
||||
fechainiciov date,
|
||||
fechafinvac date
|
||||
END RECORD
|
||||
|
||||
DEFINE l_fech_ini,l_fech_fin DATE,
|
||||
l_f_ini,l_f_fin CHAR(10),
|
||||
periodo CHAR(6)
|
||||
|
||||
## DEFINICION DEL REGISTRO DE BUSQUEDA CON LOS CAMPOS NECESARIOS PARA
|
||||
## EL REPORTE
|
||||
DEFINE extras RECORD
|
||||
num_emp LIKE adtb00003.num_emp,
|
||||
departamento LIKE adtb00003.departamento,
|
||||
nivel LIKE adtb00003.nivel_emp,
|
||||
cod_puesto LIKE adtb00003.cod_puesto,
|
||||
nom1_emp CHAR(20),
|
||||
nom2_emp CHAR(20),
|
||||
apell1_emp CHAR(20),
|
||||
apell2_emp CHAR(20),
|
||||
cedula LIKE adtb00003.cedula,
|
||||
serie LIKE adtb00003.serie,
|
||||
cod_mov LIKE notb00008.cod_mov,
|
||||
cantidad LIKE notb00008.cantidad,
|
||||
valor LIKE notb00008.valor
|
||||
END RECORD
|
||||
|
||||
# WHENEVER ERROR CONTINUE
|
||||
|
||||
OPTIONS
|
||||
FORM LINE 8,
|
||||
ERROR LINE 23,
|
||||
COMMENT LINE 21
|
||||
|
||||
CLEAR SCREEN
|
||||
|
||||
#LET formulario = formulario CLIPPED,"nofmrp035"
|
||||
OPEN FORM nofmrp035 FROM "nofmrp035"
|
||||
DISPLAY FORM nofmrp035
|
||||
#CALL pantalla()
|
||||
DISPLAY "noprnorp035" AT 4,3 ATTRIBUTE(RED)
|
||||
DISPLAY "Horas Extras Empleados" AT 6,32 ATTRIBUTE(BLACK)
|
||||
|
||||
|
||||
CONSTRUCT BY NAME criterio ON b.num_emp,b.departamento
|
||||
|
||||
## AQUI SE INDICA EL CRITERIO DE BUSQUEDA DEL REPORTE
|
||||
INPUT BY NAME registro_no,formulario_no,tipo_Reporte,tiposalida,
|
||||
fecha_formulario,fecha2,idioma_office
|
||||
|
||||
AFTER FIELD tipo_reporte
|
||||
IF tipo_reporte = 'DGT3' THEN
|
||||
NEXT FIELD tiposalida
|
||||
ELSE
|
||||
NEXT FIELD fecha_formulario
|
||||
END IF
|
||||
AFTER INPUT
|
||||
|
||||
IF int_flag THEN
|
||||
LET numero_msg = 2
|
||||
CALL msg(numero_msg)
|
||||
LET int_flag = FALSE
|
||||
RETURN
|
||||
END IF
|
||||
IF tipo_reporte = 'DGT4' THEN
|
||||
IF fecha_formulario IS NULL THEN
|
||||
CALL msg(16)
|
||||
NEXT FIELD fecha_formulario
|
||||
END IF
|
||||
IF fecha2 IS NULL THEN
|
||||
CALL msg(16)
|
||||
NEXT FIELD fecha2
|
||||
END IF
|
||||
IF fecha2 < fecha_formulario THEN
|
||||
CALL msg(86)
|
||||
NEXT FIELD fecha2
|
||||
END IF
|
||||
|
||||
END IF
|
||||
EXIT INPUT
|
||||
END INPUT
|
||||
|
||||
## SE SELECCIONAN LOS CAMPOS NECESARIOS PARA EL REPORTE
|
||||
LET prog = "EXCEL"
|
||||
IF idioma_office = "E" THEN
|
||||
LET fila_excel = "F"
|
||||
ELSE
|
||||
LET fila_excel = "R"
|
||||
END IF
|
||||
IF tiposalida = 'EXCEL' THEN
|
||||
CALL ui.Interface.frontCall("WINDDE","DDEFinishAll", [], [res] );
|
||||
|
||||
CALL ui.Interface.frontCall("standard","getenv", ["USDGT3Y4"], [file] )
|
||||
|
||||
|
||||
# LET arch_pc='"',FILE CLIPPED,'"' -- le agrega las comillas por si hay blancos (solo se necesita para shellexec)
|
||||
LET arch_pc = FILE CLIPPED
|
||||
CALL ui.Interface.frontCall("standard","shellexec", [arch_pc], [p_res] )
|
||||
CALL chqDdeError(p_res,"shellexec "||arch_pc)
|
||||
|
||||
CALL ui.Interface.frontCall("WINDDE","DDEConnect", [prog,arch_pc], [p_res] )
|
||||
CALL chqDdeError(p_res,"DDEConnect "||arch_pc)
|
||||
|
||||
|
||||
|
||||
START REPORT planilla TO "dummy"
|
||||
|
||||
END IF
|
||||
#REPLACE(CONVERT (VARCHAR,b.fech_nac,101),'/',''),REPLACE(CONVERT(VARCHAR,b.fech_efec,101),'/',''), ",
|
||||
|
||||
{ ESTE ES EL QUERY ANTERIOR QUE ESTABA PARA EL DGT3
|
||||
"SELECT distinct b.nomina,b.num_emp,b.departamento,b.nivel_emp,b.cod_puesto, ",
|
||||
"b.nom1_emp, b.nom2_emp,",
|
||||
"b.apell1_emp,b.apell2_emp,b.cedula,b.serie,
|
||||
b.fech_nac,b.fech_efec, ",
|
||||
"c.sexo,f.nom_nac,d.otra_descripcion,b.sueldo_ac,b.cod_seg1,'001',b.sucid, ",
|
||||
" d.nom_puesto ",
|
||||
"FROM adtb00003 b inner join notb00008 h ON (h.num_emp = b.num_emp ) and h.departamento = b.departamento
|
||||
right outer join adtb00021 c on (b.num_emp = c.num_emp)
|
||||
right outer join adtb00004 d on b.cod_puesto = d.cod_puesto
|
||||
right outer join adtb00007 f ON f.cod_nac = b.cod_nac ",
|
||||
" left outer join adtb00055 k ON (k.num_emp = b.num_emp) ",
|
||||
"WHERE ",
|
||||
|
||||
criterio CLIPPED,
|
||||
" and b.status_t is null and h.fecha between '",fecha_formulario USING 'mm/dd/yyyy', "' and '",fecha2 USING 'mm/dd/yyyy',"'",
|
||||
" ORDER BY b.departamento,b.cod_puesto "
|
||||
}
|
||||
IF tipo_reporte = 'DGT3' THEN
|
||||
LET selec =
|
||||
"SELECT b.nomina,b.num_emp,b.departamento,b.nivel_emp,b.cod_puesto, ",
|
||||
"b.nom1_emp, b.nom2_emp,",
|
||||
"b.apell1_emp,b.apell2_emp,b.cedula,b.serie,CONVERT (CHAR(10),b.fech_nac,103),CONVERT(CHAR(10),b.fech_efec,103), ",
|
||||
"c.sexo,f.nom_nac,d.otra_descripcion,b.sueldo_ac,b.cod_seg1,ISNULL(MAX(k.id_horario),1),x.sucid_sirla, ",
|
||||
" d.nom_puesto,'Ingreso',b.fecha_salida,ISNULL(RTRIM(d.funciones),d.nom_puesto)+' '+ISNULL(d.funcion1,' '), ",
|
||||
" e.nom_educa,b.fecha_ultimo_aumento, b.tipo_Documento,d.cod_puesto_sirla,e.cod_educa_sirla ",
|
||||
"FROM adtb00003 b
|
||||
left outer join adtb00021 c on c.num_emp=b.num_emp left outer join
|
||||
adtb00004 d on b.cod_puesto = d.cod_puesto left outer join adtb00005 e on e.cod_educa = b.nivel_emp ",
|
||||
" left outer join adtb00007 f ON f.cod_nac = b.cod_nac ",
|
||||
" left outer join adtb00055 k ON k.num_emp = b.num_emp ",
|
||||
" left outer join sucursales x ON x.sucid = b.sucid ",
|
||||
"WHERE ",
|
||||
" b.status_t IS NULL and b.estado_legal = 'ACTIVO' and ",criterio CLIPPED,#" and b.num_emp = 338 ",
|
||||
#" and h.fecha between '",fecha_formulario USING "mm/dd/yyyy","' and '",fecha2 USING "mm/dd/yyyy" ,"' ",
|
||||
"group by b.nomina,b.num_emp,b.departamento,b.nivel_emp,b.cod_puesto,
|
||||
b.nom1_emp, b.nom2_emp,
|
||||
b.apell1_emp,b.apell2_emp,b.cedula,b.serie,b.fech_nac,b.fech_efec,
|
||||
c.sexo,f.nom_nac,d.otra_descripcion,b.sueldo_ac,b.cod_seg1,x.sucid_sirla,
|
||||
d.nom_puesto,b.fecha_salida,d.funciones,d.funcion1,
|
||||
e.nom_educa,b.fecha_ultimo_aumento,b.tipo_documento,d.cod_puesto_sirla,e.cod_educa_sirla "
|
||||
ELSE
|
||||
LET selec =
|
||||
"SELECT b.nomina,b.num_emp,b.departamento,b.nivel_emp,b.cod_puesto, ",
|
||||
"b.nom1_emp, b.nom2_emp,",
|
||||
"b.apell1_emp,b.apell2_emp,b.cedula,b.serie,CONVERT (CHAR(10),b.fech_nac,103),CONVERT(CHAR(10),b.fech_efec,103), ",
|
||||
"c.sexo,f.nom_nac,d.otra_descripcion,b.sueldo_ac,b.cod_seg1,ISNULL(MAX(k.id_horario),1),x.sucid_sirla, ",
|
||||
" d.nom_puesto,'Ingreso',b.fecha_salida,RTRIM(d.funciones)+' '+ISNULL(d.funcion1,' '), ",
|
||||
" e.nom_educa,b.fecha_ultimo_aumento, b.tipo_Documento,d.cod_puesto_sirla,e.cod_educa_sirla ",
|
||||
"FROM adtb00003 b left outer join adtb00021 c on c.num_emp=b.num_emp left outer join
|
||||
adtb00004 d on b.cod_puesto = d.cod_puesto left outer join adtb00005 e on e.cod_educa = b.nivel_emp ",
|
||||
" left outer join adtb00007 f ON f.cod_nac = b.cod_nac ",
|
||||
" left outer join adtb00055 k ON k.num_emp = b.num_emp ",
|
||||
" left outer join sucursales x ON x.sucid = b.sucid ",
|
||||
"WHERE ",
|
||||
" b.status_t IS NULL and ",criterio CLIPPED,
|
||||
" and b.fech_efec between '",fecha_formulario USING "mm/dd/yyyy","' and '",fecha2 USING "mm/dd/yyyy" ,"' ",
|
||||
"group by b.nomina,b.num_emp,b.departamento,b.nivel_emp,b.cod_puesto,
|
||||
b.nom1_emp, b.nom2_emp,
|
||||
b.apell1_emp,b.apell2_emp,b.cedula,b.serie,b.fech_nac,b.fech_efec,
|
||||
c.sexo,f.nom_nac,d.otra_descripcion,b.sueldo_ac,b.cod_seg1,x.sucid_sirla,
|
||||
d.nom_puesto,b.fecha_salida,d.funciones,d.funcion1,
|
||||
e.nom_educa,b.fecha_ultimo_aumento,b.tipo_documento,d.cod_puesto_sirla,e.cod_educa_sirla ",
|
||||
|
||||
" UNION ",
|
||||
"SELECT b.nomina,b.num_emp,b.departamento,b.nivel_emp,b.cod_puesto, ",
|
||||
"b.nom1_emp, b.nom2_emp,",
|
||||
"b.apell1_emp,b.apell2_emp,b.cedula,b.serie,CONVERT (CHAR(10),b.fech_nac,103),CONVERT(CHAR(10),b.fech_efec,103), ",
|
||||
"c.sexo,f.nom_nac,d.otra_descripcion,b.sueldo_ac,b.cod_seg1,ISNULL(MAX(k.id_horario),1),x.sucid_sirla, ",
|
||||
" d.nom_puesto,'Salida',b.fecha_salida,RTRIM(d.funciones)+' '+ISNULL(d.funcion1,' '), ",
|
||||
" e.nom_educa,b.fecha_ultimo_aumento,b.tipo_Documento,d.cod_puesto_sirla,e.cod_educa_sirla ",
|
||||
"FROM adtb00003 b left outer join adtb00021 c on c.num_emp=b.num_emp left outer join
|
||||
adtb00004 d on b.cod_puesto = d.cod_puesto left outer join adtb00005 e on e.cod_educa = b.nivel_emp ",
|
||||
" left outer join adtb00007 f ON f.cod_nac = b.cod_nac ",
|
||||
" left outer join adtb00055 k ON k.num_emp = b.num_emp ",
|
||||
" left outer join sucursales x ON x.sucid = b.sucid ",
|
||||
"WHERE ",
|
||||
|
||||
" b.status_t IS NOT NULL and ",criterio CLIPPED,
|
||||
" and b.fecha_salida between '",fecha_formulario USING "mm/dd/yyyy","' and '",fecha2 USING "mm/dd/yyyy" ,"' ",
|
||||
"group by b.nomina,b.num_emp,b.departamento,b.nivel_emp,b.cod_puesto,
|
||||
b.nom1_emp, b.nom2_emp,
|
||||
b.apell1_emp,b.apell2_emp,b.cedula,b.serie,b.fech_nac,b.fech_efec,
|
||||
c.sexo,f.nom_nac,d.otra_descripcion,b.sueldo_ac,b.cod_seg1,x.sucid_sirla,
|
||||
d.nom_puesto,b.fecha_salida,d.funciones,d.funcion1,
|
||||
e.nom_educa,b.fecha_ultimo_aumento,b.tipo_documento,d.cod_puesto_sirla,e.cod_educa_sirla ",
|
||||
|
||||
" UNION ",
|
||||
"SELECT b.nomina,b.num_emp,b.departamento,b.nivel_emp,b.cod_puesto, ",
|
||||
"b.nom1_emp, b.nom2_emp,",
|
||||
"b.apell1_emp,b.apell2_emp,b.cedula,b.serie,CONVERT (CHAR(10),b.fech_nac,103),CONVERT(CHAR(10),b.fech_efec,103), ",
|
||||
"c.sexo,f.nom_nac,d.otra_descripcion,b.sueldo_ac,b.cod_seg1,ISNULL(MAX(k.id_horario),'1'),x.sucid_sirla, ",
|
||||
" d.nom_puesto,'Cambio',b.fecha_salida,RTRIM(d.funciones)+' '+ISNULL(d.funcion1,' '), ",
|
||||
" e.nom_educa,b.fecha_ultimo_aumento,b.tipo_Documento,d.cod_puesto_sirla,e.cod_educa_sirla ",
|
||||
"FROM adtb00003 b left outer join adtb00021 c on c.num_emp=b.num_emp left outer join
|
||||
adtb00004 d on b.cod_puesto = d.cod_puesto left outer join adtb00005 e on e.cod_educa = b.nivel_emp ",
|
||||
" left outer join adtb00007 f ON f.cod_nac = b.cod_nac ",
|
||||
" left outer join adtb00055 k ON k.num_emp = b.num_emp ",
|
||||
" left outer join sucursales x ON x.sucid = b.sucid ",
|
||||
"WHERE ",
|
||||
|
||||
" b.status_t IS NULL and ",criterio CLIPPED,
|
||||
" and b.fecha_ultimo_aumento between '",fecha_formulario USING "mm/dd/yyyy","' and '",fecha2 USING "mm/dd/yyyy" ,"' ",
|
||||
"group by b.nomina,b.num_emp,b.departamento,b.nivel_emp,b.cod_puesto,
|
||||
b.nom1_emp, b.nom2_emp,
|
||||
b.apell1_emp,b.apell2_emp,b.cedula,b.serie,b.fech_nac,b.fech_efec,
|
||||
c.sexo,f.nom_nac,d.otra_descripcion,b.sueldo_ac,b.cod_seg1,x.sucid_sirla,
|
||||
d.nom_puesto,b.fecha_salida,d.funciones,d.funcion1,
|
||||
e.nom_educa,b.fecha_ultimo_aumento,b.tipo_documento,d.cod_puesto_sirla,e.cod_educa_sirla ",
|
||||
" ORDER BY b.departamento,b.cod_puesto "
|
||||
|
||||
END IF
|
||||
|
||||
IF int_flag THEN
|
||||
LET numero_msg = 2
|
||||
CALL msg(numero_msg)
|
||||
LET int_flag = FALSE
|
||||
RETURN
|
||||
END IF
|
||||
|
||||
DISPLAY "Buscando Informacion ... Espere Por Favor" AT 19,14
|
||||
ATTRIBUTE (REVERSE,BOLD)
|
||||
|
||||
PREPARE comando FROM selec
|
||||
DECLARE buscar CURSOR FOR comando
|
||||
|
||||
IF tiposalida = 'EXCEL' THEN
|
||||
LET rcol ="C4"
|
||||
LET xi = 7
|
||||
CALL pru_new_dde(p_companias.rnc clipped,rcol,xi)
|
||||
|
||||
## SE BUSCA LA INFORMACION DE LOS CAMPOS DEL REGISTRO PARA DARLE
|
||||
## SALIDA AL REPORTE
|
||||
LET periodo = MONTH(fecha_formulario) USING "&&",YEAR(fecha_formulario)
|
||||
LET rcol ="C4"
|
||||
LET xi = 8
|
||||
CALL pru_new_dde(periodo,rcol,xi)
|
||||
|
||||
|
||||
LET rcol = "C4"
|
||||
LET xi = 9
|
||||
CALL pru_new_dde(tipo_reporte,rcol,xi)
|
||||
|
||||
LET cnt = 14
|
||||
FOREACH buscar INTO registro.*
|
||||
|
||||
IF tipo_Reporte = 'DGT3' THEN
|
||||
LET registro.novedad = 'Ingreso'
|
||||
END IF
|
||||
LET fecha_entrada = registro.fech_efec # ES PARA TENER LA FECHA EN UNA VRIABLE UNICA,
|
||||
# ESTO VA A SERVIR PARA CALCULAR LOS ANOS DEL
|
||||
# EMPLEADO.
|
||||
|
||||
LET tmpfecha = registro.fech_efec
|
||||
LET tmpfecha[7,10] = year (fecha_formulario) using "&&&&"
|
||||
LET fecha_c = tmpfecha
|
||||
|
||||
|
||||
# IF tipo_reporte = 'DGT3' THEN
|
||||
|
||||
CALL fechaV()
|
||||
|
||||
LET l_f_ini = tmpfecha
|
||||
LET l_f_fin = fecha_c
|
||||
# IF year(l_f_ini) = year(fecha2) THEN
|
||||
|
||||
DISPLAY "DATA: ",registro.nom1_emp
|
||||
OUTPUT TO REPORT planilla(registro.*,l_f_ini,l_f_fin,m_cedula)
|
||||
# END IF
|
||||
# END IF
|
||||
|
||||
END FOREACH
|
||||
FINISH REPORT planilla
|
||||
|
||||
CALL ui.Interface.frontCall("WINDDE","DDEFinishAll", [], [res] );
|
||||
ELSE
|
||||
DELETE FROM datosdgt
|
||||
FOREACH buscar INTO registro.*
|
||||
|
||||
IF tipo_Reporte = 'DGT3' THEN
|
||||
LET registro.novedad = 'Ingreso'
|
||||
END IF
|
||||
LET fecha_entrada = registro.fech_efec # ES PARA TENER LA FECHA EN UNA VRIABLE UNICA,
|
||||
# ESTO VA A SERVIR PARA CALCULAR LOS ANOS DEL
|
||||
# EMPLEADO.
|
||||
IF registro.turno = '6' THEN
|
||||
LET registro.turno = '1'
|
||||
END IF
|
||||
IF registro.turno = '5' THEN
|
||||
LET registro.turno = '1'
|
||||
END IF
|
||||
IF registro.turno = '10' THEN
|
||||
LET registro.turno = '1'
|
||||
END IF
|
||||
IF registro.fecha_cambio IS NULL THEN
|
||||
LET registro.fecha_cambio = fecha_formulario
|
||||
END IF
|
||||
IF YEAR(registro.fech_efec) <> YEAR(fecha_formulario) THEN
|
||||
LET tmpfecha = registro.fech_efec USING "ddmmyyyy"
|
||||
LET tmpfecha[5,8] = year (fecha_formulario) using "&&&&"
|
||||
LET fecha_c = tmpfecha
|
||||
|
||||
|
||||
# IF tipo_reporte = 'DGT3' THEN
|
||||
|
||||
CALL fechaV()
|
||||
|
||||
LET registro.fechainiciov = tmpfecha
|
||||
LET registro.fechafinvac = fecha_c
|
||||
# IF year(l_f_ini) = year(fecha2) THEN
|
||||
|
||||
ELSE
|
||||
LET registro.fechainiciov = registro.fech_efec + 365
|
||||
LET registro.fechafinvac = registro.fechainiciov +14
|
||||
END IF
|
||||
IF registro.fecha_sal IS NULL THEN
|
||||
LET registro.fecha_sal =registro.fechainiciov
|
||||
END IF
|
||||
INSERT INTO datosdgt VALUES (registro.*)
|
||||
|
||||
|
||||
# END IF
|
||||
# END IF
|
||||
|
||||
END FOREACH
|
||||
|
||||
LET cmd2 = FGL_GETENV("FGLSPOOL"),"\\DGT.TXT"
|
||||
|
||||
SELECT COUNT(*) INTO noregistro FROM datosdgt
|
||||
|
||||
IF noregistro > 0 THEN
|
||||
START REPORT atexto TO cmd2
|
||||
DECLARE buscadgt CURSOR FOR
|
||||
SELECT * FROM datosdgt
|
||||
|
||||
FOREACH buscadgt INTO registro.*
|
||||
OUTPUT TO REPORT atexto(registro.*,l_f_ini,l_f_fin,m_cedula)
|
||||
END FOREACH
|
||||
FINISH REPORT atexto
|
||||
|
||||
LET d_tipos="TXT"
|
||||
LET f_tipos="*.txt"
|
||||
LET mensaje=%"Elige Directorio"
|
||||
|
||||
CALL ui.Interface.frontCall("standard","opendir", [dir_file,mensaje], [dcmd2] )
|
||||
LET nombreFile2 = tipo_Reporte CLIPPED, '.txt'
|
||||
LET dcmd2 = dcmd2 CLIPPED,"\\",nombreFile2 CLIPPED
|
||||
|
||||
CALL fgl_putfile(cmd2,dcmd2)
|
||||
END IF
|
||||
END IF
|
||||
|
||||
END FUNCTION
|
||||
|
||||
## DEFINICION DEL REGISTRO DE IMPRESION CON LOS CAMPOS NECESARIOS PARA
|
||||
## EL REPORTE
|
||||
# REPORT planilla(x,p_fech_ini,p_fech_fin,p_cedula)
|
||||
REPORT planilla(x,fecha_ini_v,fecha_fin_v,p_cedula)
|
||||
|
||||
DEFINE x RECORD
|
||||
nomina LIKE adtb00003.nomina,
|
||||
num_emp LIKE adtb00003.num_emp,
|
||||
departamento LIKE adtb00003.departamento,
|
||||
nivel_emp LIKE adtb00003.nivel_emp,
|
||||
cod_puesto LIKE adtb00003.cod_puesto,
|
||||
nom1_emp CHAR(20),
|
||||
nom2_emp CHAR(20),
|
||||
apell1_emp CHAR(20),
|
||||
apell2_emp CHAR(20),
|
||||
cedula LIKE adtb00003.cedula,
|
||||
serie LIKE adtb00003.serie,
|
||||
fech_nac LIKE adtb00003.fech_nac,
|
||||
fech_efec LIKE adtb00003.fech_efec,
|
||||
sexo LIKE adtb00021.sexo,
|
||||
nacionalidad CHAR(10),
|
||||
nom_puesto LIKE adtb00004.otra_descripcion,
|
||||
sueldo_ac LIKE adtb00003.sueldo_ac,
|
||||
numero_tss LIKE adtb00003.cod_seg1,
|
||||
turno LIKE adtb00003.licencia,
|
||||
sucid LIKE adtb00003.sucid,
|
||||
puesto_real LIKE adtb00004.nom_puesto,
|
||||
novedad VARCHAR(20),
|
||||
fecha_salida DATE,
|
||||
desc_puesto VARCHAR(150),
|
||||
educacion VARCHAR(100),
|
||||
fecha_cambio DATE,
|
||||
tipo_documento VARCHAR(50),
|
||||
cod_puesto_sirla INT,
|
||||
cod_educa_sirla INT,
|
||||
fechainiciov DATE,
|
||||
fechafinvac DATE
|
||||
END RECORD,
|
||||
fecha_1 CHAR(8),
|
||||
fecha_ini_vac,fecha_fin_vac,fecha_sal,fecha_c CHAR(8)
|
||||
DEFINE p_fech_ini,p_fech_fin CHAR(8),
|
||||
p_f_ini,p_f_fin CHAR(8),
|
||||
p_cedula CHAR(12),
|
||||
xnumero_tss CHAR(25),
|
||||
fecha_ini_v,fecha_fin_v DATE,
|
||||
xsucid VARCHAR(3)
|
||||
|
||||
## DEFINICION DE LAS VARIABLES DE IMPRESION
|
||||
|
||||
DEFINE nombre_mes CHAR(15)
|
||||
|
||||
|
||||
DEFINE l smallint
|
||||
|
||||
DEFINE normal CHAR(2),
|
||||
nombres CHAR(60)
|
||||
|
||||
OUTPUT
|
||||
|
||||
## DEFINICION DE LOS MARGENES DE IMPRESION
|
||||
TOP MARGIN 0
|
||||
LEFT MARGIN 0
|
||||
BOTTOM MARGIN 3
|
||||
|
||||
FORMAT
|
||||
|
||||
|
||||
ON EVERY ROW
|
||||
LET fecha_ini_vac = fecha_ini_v USING "DDMMYYYY"
|
||||
LET fecha_fin_vac = fecha_fin_v USING "DDMMYYYY"
|
||||
LET fecha_1 = x.fech_efec USING "ddmmyyyy"
|
||||
LET p_f_ini = x.fech_nac USING "ddmmyyyy"
|
||||
LET fecha_sal = x.fecha_salida USING "ddmmyyyy"
|
||||
LET fecha_c = x.fecha_cambio USING "ddmmyyyy"
|
||||
LET xsucid = x.sucid USING "&&&"
|
||||
|
||||
LET rcol = "C2"
|
||||
LET xi = cnt
|
||||
CALL pru_new_dde(x.novedad,rcol,xi)
|
||||
|
||||
LET rcol = "C4"
|
||||
LET xi = cnt
|
||||
CALL pru_new_dde("C",rcol,xi)
|
||||
|
||||
LET rcol = "C5"
|
||||
LET xi = cnt
|
||||
CALL pru_new_dde(x.cedula,rcol,xi)
|
||||
|
||||
LET nombres = x.nom1_emp CLIPPED," ",x.nom2_emp CLIPPED
|
||||
LET rcol = "C6"
|
||||
LET xi = cnt
|
||||
CALL pru_new_dde(nombres,rcol,xi)
|
||||
|
||||
LET rcol = "C7"
|
||||
LET xi = cnt
|
||||
CALL pru_new_dde(x.apell1_emp,rcol,xi)
|
||||
|
||||
|
||||
LET rcol = "C8"
|
||||
LET xi = cnt
|
||||
CALL pru_new_dde(x.apell2_emp,rcol,xi)
|
||||
|
||||
|
||||
LET rcol = "C9"
|
||||
LET xi = cnt
|
||||
CALL pru_new_dde(x.sexo,rcol,xi)
|
||||
|
||||
LET rcol = "C10"
|
||||
LET xi = cnt
|
||||
CALL pru_new_dde(x.nacionalidad,rcol,xi)
|
||||
|
||||
LET rcol = "C11"
|
||||
LET xi = cnt
|
||||
CALL pru_new_dde(p_f_ini,rcol,xi)
|
||||
|
||||
LET rcol = "C12"
|
||||
LET xi = cnt
|
||||
CALL pru_new_dde(x.sueldo_ac,rcol,xi)
|
||||
IF x.novedad <> 'Salida' THEN
|
||||
LET rcol = "C13"
|
||||
LET xi = cnt
|
||||
CALL pru_new_dde(fecha_1,rcol,xi)
|
||||
END IF
|
||||
IF x.novedad = 'Salida' THEN
|
||||
LET rcol = "C14"
|
||||
LET xi = cnt
|
||||
CALL pru_new_dde(fecha_sal,rcol,xi)
|
||||
END IF
|
||||
|
||||
LET rcol = "C15"
|
||||
LET xi = cnt
|
||||
CALL pru_new_dde(x.nom_puesto,rcol,xi)
|
||||
|
||||
|
||||
LET rcol = "C16"
|
||||
LET xi = cnt
|
||||
CALL pru_new_dde(x.puesto_real,rcol,xi)
|
||||
|
||||
LET rcol = "C17"
|
||||
LET xi = cnt
|
||||
CALL pru_new_dde(fecha_ini_vac,rcol,xi)
|
||||
|
||||
|
||||
LET rcol = "C18"
|
||||
LET xi = cnt
|
||||
CALL pru_new_dde(fecha_fin_vac,rcol,xi)
|
||||
|
||||
|
||||
# AQUI SOLO SE ACTUALIZA SI EL FORMULARIO ES DGT-4
|
||||
LET rcol = "C19"
|
||||
LET xi = cnt
|
||||
CALL pru_new_dde(x.turno,rcol,xi)
|
||||
|
||||
LET rcol = "C20"
|
||||
LET xi = cnt
|
||||
CALL pru_new_dde(xsucid,rcol,xi)
|
||||
|
||||
|
||||
IF tipo_reporte = 'DGT4' THEN
|
||||
LET rcol = "C21"
|
||||
LET xi = cnt
|
||||
CALL pru_new_dde(fecha_c,rcol,xi)
|
||||
END IF
|
||||
LET rcol = "C32"
|
||||
LET xi = cnt
|
||||
CALL pru_new_dde(x.educacion,rcol,xi)
|
||||
|
||||
|
||||
LET rcol = "C33"
|
||||
LET xi = cnt
|
||||
CALL pru_new_dde('Ninguna-4714',rcol,xi)
|
||||
|
||||
LET cnt = cnt + 1
|
||||
END REPORT
|
||||
REPORT atexto(x,fecha_ini_v,fecha_fin_v,p_cedula)
|
||||
|
||||
DEFINE x RECORD
|
||||
nomina LIKE adtb00003.nomina,
|
||||
num_emp LIKE adtb00003.num_emp,
|
||||
departamento LIKE adtb00003.departamento,
|
||||
nivel_emp LIKE adtb00003.nivel_emp,
|
||||
cod_puesto LIKE adtb00003.cod_puesto,
|
||||
nom1_emp CHAR(20),
|
||||
nom2_emp CHAR(20),
|
||||
apell1_emp CHAR(20),
|
||||
apell2_emp CHAR(20),
|
||||
cedula LIKE adtb00003.cedula,
|
||||
serie LIKE adtb00003.serie,
|
||||
fech_nac LIKE adtb00003.fech_nac,
|
||||
fech_efec LIKE adtb00003.fech_efec,
|
||||
sexo LIKE adtb00021.sexo,
|
||||
nacionalidad CHAR(10),
|
||||
nom_puesto LIKE adtb00004.otra_descripcion,
|
||||
sueldo_ac LIKE adtb00003.sueldo_ac,
|
||||
numero_tss LIKE adtb00003.cod_seg1,
|
||||
turno LIKE adtb00003.licencia,
|
||||
sucid LIKE adtb00003.sucid,
|
||||
puesto_real LIKE adtb00004.nom_puesto,
|
||||
novedad VARCHAR(20),
|
||||
fecha_salida DATE,
|
||||
desc_puesto VARCHAR(150),
|
||||
educacion VARCHAR(100),
|
||||
fecha_cambio DATE,
|
||||
tipodocumento VARCHAR(50),
|
||||
cod_puesto_sirla INT,
|
||||
cod_educa_sirla INT,
|
||||
fechainiciov DATE,
|
||||
fechafinvac DATE
|
||||
END RECORD,
|
||||
fecha_1 CHAR(8),
|
||||
fecha_ini_vac,fecha_fin_vac,fecha_sal,fecha_c CHAR(8)
|
||||
DEFINE p_fech_ini,p_fech_fin CHAR(8),
|
||||
p_f_ini,p_f_fin CHAR(8),
|
||||
p_cedula CHAR(12),
|
||||
xnumero_tss CHAR(25),
|
||||
fecha_ini_v,fecha_fin_v DATE,
|
||||
xsucid VARCHAR(3)
|
||||
|
||||
DEFINE detalle RECORD
|
||||
tiponovedad CHAR(3),
|
||||
tipodocumento CHAR(1),
|
||||
numerodocumento CHAR(25),
|
||||
nombres CHAR(50),
|
||||
primerapellido ,
|
||||
segundoapellido CHAR(40),
|
||||
fechanacimiento CHAR(8),
|
||||
sexo CHAR(1),
|
||||
salario CHAR(16),
|
||||
fechaIngreso CHAR(8),
|
||||
fechasalida CHAR(8),
|
||||
ocupacion CHAR(6),
|
||||
ocupaciondescripcion CHAR(150),
|
||||
iniciovacaciones CHAR(8),
|
||||
finvacaciones CHAR(8),
|
||||
turno CHAR(6),
|
||||
localidad CHAR(6),
|
||||
nacionalidad CHAR(3),
|
||||
fechacambio CHAR(8),
|
||||
niveleducacion CHAR(5),
|
||||
discapacidad CHAR(50)
|
||||
END RECORD
|
||||
## DEFINICION DE LAS VARIABLES DE IMPRESION
|
||||
|
||||
|
||||
OUTPUT
|
||||
|
||||
PAGE LENGTH noregistro
|
||||
## DEFINICION DE LOS MARGENES DE IMPRESION
|
||||
TOP MARGIN 0
|
||||
LEFT MARGIN 0
|
||||
BOTTOM MARGIN 0
|
||||
PAGE LENGTH 650
|
||||
FORMAT
|
||||
FIRST PAGE HEADER
|
||||
IF tipo_reporte = 'DGT3' THEN
|
||||
|
||||
PRINT "E","T3"," 101521262",fecha2 USING "MMYYYY"
|
||||
LET noregistro = noregistro +1
|
||||
ELSE
|
||||
PRINT "E","T4"," 101521262",fecha2 USING "MMYYYY"
|
||||
LET noregistro = noregistro +1
|
||||
END IF
|
||||
ON EVERY ROW
|
||||
LET fecha_1 = x.fech_efec USING "ddmmyyyy"
|
||||
LET p_f_ini = x.fech_nac USING "ddmmyyyy"
|
||||
LET fecha_sal = x.fecha_salida USING "ddmmyyyy"
|
||||
LET fecha_c = x.fecha_cambio USING "ddmmyyyy"
|
||||
LET xsucid = x.sucid USING "&&&"
|
||||
|
||||
IF x.novedad = 'Ingreso' THEN
|
||||
LET detalle.tiponovedad = "NI"
|
||||
END IF
|
||||
IF x.novedad = 'Salida' THEN
|
||||
LET detalle.tiponovedad = "NS"
|
||||
END IF
|
||||
IF x.novedad = 'Cambio' THEN
|
||||
LET detalle.tiponovedad = "NC"
|
||||
END IF
|
||||
|
||||
|
||||
IF x.tipodocumento = "CEDULA" THEN
|
||||
LET detalle.tipodocumento = "C"
|
||||
END IF
|
||||
|
||||
LET detalle.numerodocumento = x.cedula CLIPPED
|
||||
LET detalle.nombres = x.nom1_emp CLIPPED," ",X.nom2_emp CLIPPED
|
||||
LET detalle.primerapellido = x.apell1_emp CLIPPED
|
||||
LET detalle.segundoapellido = x.apell2_emp CLIPPED
|
||||
|
||||
LET detalle.fechanacimiento = x.fech_nac USING "DDMMYYYY"
|
||||
LET detalle.sexo = x.sexo
|
||||
LET detalle.salario =x.sueldo_ac USING "&&&&&&&&&&&&&.##"
|
||||
LET detalle.fechaIngreso =x.fech_efec USING "ddmmyyyy"
|
||||
|
||||
IF X.fecha_salida IS NOT NULL THEN
|
||||
LET detalle.fechasalida = X.fecha_salida USING "ddmmyyyy"
|
||||
ELSE
|
||||
LET detalle.fechasalida = " "
|
||||
END IF
|
||||
|
||||
LET detalle.ocupacion = x.cod_puesto_sirla USING "&&&&&&"
|
||||
LET detalle.ocupaciondescripcion = x.desc_puesto CLIPPED
|
||||
LET detalle.iniciovacaciones = x.fechainiciov USING "DDMMYYYY"
|
||||
LET detalle.finvacaciones = x.fechafinvac USING "DDMMYYYY"
|
||||
LET detalle.turno = x.turno CLIPPED
|
||||
LET detalle.localidad = xsucid
|
||||
IF tipo_Reporte = "DGT4" THEN
|
||||
IF x.fecha_cambio IS NOT NULL THEN
|
||||
LET detalle.fechacambio = x.fecha_cambio USING "ddmmyyyy"
|
||||
ELSE
|
||||
LET detalle.fechacambio = " "
|
||||
END IF
|
||||
END IF
|
||||
IF tipo_reporte = 'DGT4' THEN
|
||||
LET detalle.nacionalidad = '001'
|
||||
ELSE
|
||||
LET detalle.nacionalidad = ' '
|
||||
LET detalle.fechacambio = ' '
|
||||
END IF
|
||||
DISPLAY "data: ",x.cod_educa_sirla
|
||||
LET detalle.niveleducacion = x.cod_educa_sirla USING "&&&&&"
|
||||
LET detalle.discapacidad = '4714'
|
||||
|
||||
IF tipo_Reporte = 'DGT4' THEN
|
||||
PRINT "D",detalle.*
|
||||
ELSE
|
||||
PRINT "D", detalle.tiponovedad ,
|
||||
detalle.tipodocumento ,
|
||||
detalle.numerodocumento ,
|
||||
detalle.nombres ,
|
||||
detalle.primerapellido ,
|
||||
detalle.segundoapellido ,
|
||||
detalle.fechanacimiento ,
|
||||
detalle.sexo ,
|
||||
detalle.salario ,
|
||||
detalle.fechaIngreso ,
|
||||
|
||||
detalle.ocupacion ,
|
||||
detalle.ocupaciondescripcion ,
|
||||
detalle.iniciovacaciones ,
|
||||
detalle.finvacaciones ,
|
||||
detalle.turno ,
|
||||
detalle.localidad ,
|
||||
' ',
|
||||
detalle.niveleducacion ,
|
||||
detalle.discapacidad
|
||||
|
||||
{ PRINT "D","|", detalle.tiponovedad ,"|",
|
||||
detalle.tipodocumento ,"|",
|
||||
detalle.numerodocumento ,"|",
|
||||
detalle.nombres ,"|",
|
||||
detalle.primerapellido ,"|",
|
||||
detalle.segundoapellido ,"|",
|
||||
detalle.fechanacimiento ,"|",
|
||||
detalle.sexo ,"|",
|
||||
detalle.salario ,"|",
|
||||
detalle.fechaIngreso ,"|",
|
||||
|
||||
detalle.ocupacion ,"|",
|
||||
detalle.ocupaciondescripcion ,"|",
|
||||
detalle.iniciovacaciones ,"|",
|
||||
detalle.finvacaciones ,"|",
|
||||
detalle.turno ,"|",
|
||||
detalle.localidad ,"|",
|
||||
|
||||
detalle.niveleducacion ,"|",
|
||||
detalle.discapacidad }
|
||||
END IF
|
||||
ON LAST ROW
|
||||
PRINT "S",noregistro USING "&&&&&&"
|
||||
END REPORT
|
||||
|
||||
FUNCTION fechaV()
|
||||
DEFINE dias_lab SMALLINT
|
||||
|
||||
|
||||
LET dias_lab = 0
|
||||
|
||||
WHILE dias_lab < 15
|
||||
SELECT a.dias FROM notb00012 a
|
||||
WHERE a.dias = day(fecha_c) AND a.cod_mes = MONTH(fecha_c)
|
||||
|
||||
IF STATUS = NOTFOUND THEN
|
||||
IF WEEKDAY(fecha_c) <> 0 THEN
|
||||
|
||||
LET dias_lab = dias_lab + 1
|
||||
END IF
|
||||
END IF
|
||||
|
||||
|
||||
LET fecha_c = fecha_c + 1
|
||||
|
||||
IF dias_lab > 13 THEN
|
||||
EXIT WHILE
|
||||
END IF
|
||||
|
||||
END WHILE
|
||||
|
||||
|
||||
END FUNCTION
|
||||
|
||||
FUNCTION pru_new_dde(xval,xcol,i)
|
||||
|
||||
DEFINE celda,rval,xval,xcol STRING
|
||||
DEFINE i INTEGER
|
||||
|
||||
|
||||
|
||||
LET celda = fila_excel,i USING "<<<<&",xcol CLIPPED
|
||||
LET rval = xval
|
||||
#CALL fgl_winmessage("PROGRAMA",prog,"stop")
|
||||
#CALL fgl_winmessage("FILE",arch_pc,"stop")
|
||||
# CALL fgl_winmessage("CELDA",celda,"stop")
|
||||
# CALL fgl_winmessage("rVAL",rval,"stop")
|
||||
|
||||
CALL ui.Interface.frontCall("WINDDE","DDEPoke", [prog,arch_pc,celda,rval], [p_res] )
|
||||
#CALL fgl_winmessage("P_RES",p_res,"stop")
|
||||
CALL chqDdeError(p_res,"DDEPoke "||celda)
|
||||
|
||||
{
|
||||
MESSAGE "Salvando la planilla ",file CLIPPED," !"
|
||||
CALL ui.Interface.refresh()
|
||||
|
||||
LET p_cmd="[save()]"
|
||||
CALL ui.Interface.frontCall("WINDDE","DDEExecute", [prog,file,p_cmd], [p_res] )
|
||||
IF p_res THEN
|
||||
CALL fgl_winmessage("Planilla salvada", "Nombre = "||file, "information")
|
||||
ELSE
|
||||
CALL chqDdeError(p_res,"DDEExecute save")
|
||||
END IF
|
||||
|
||||
CAL ui.Interface.frontCall("WINDDE","DDEFinish", [prog,file], [p_res] )
|
||||
CALL chqDdeError(p_res,"DDEFinish")
|
||||
|
||||
CALL ui.Interface.frontCall("WINDDE","DDEFinishAll", [], [p_res] )
|
||||
CALL chqDdeError(p_res,"DDEFinishAll")
|
||||
}
|
||||
END FUNCTION
|
||||
|
||||
|
||||
FUNCTION chqDdeError(p_res,p_msg)
|
||||
|
||||
DEFINE p_res INTEGER,
|
||||
p_msg STRING,
|
||||
m_err STRING,
|
||||
m_log STRING
|
||||
|
||||
IF p_res THEN
|
||||
RETURN
|
||||
END IF
|
||||
|
||||
CALL ui.Interface.frontCall("WINDDE","DDEError",[],[m_err])
|
||||
CALL ui.Interface.frontCall("WINDDE","DDEFinishAll", [], [p_res] )
|
||||
|
||||
LET m_log="DDE Error: ",m_err CLIPPED," (",p_msg,")"
|
||||
|
||||
#CALL errorlog(m_log)
|
||||
|
||||
LET m_log="Se ha producido un Error en '",p_msg CLIPPED,"'. Para mas detalle revise el LOG de errores."
|
||||
|
||||
CALL fgl_winmessage("DDE Error", m_log, "stop")
|
||||
|
||||
EXIT PROGRAM
|
||||
|
||||
END FUNCTION
|
||||
Reference in New Issue
Block a user