Professional Documents
Culture Documents
Gua para la
Administracin y
Parametrizacin
A S E S O R E S E N I N F O R M T I C A , S . A . D E C . V.
Administracin y Parametrizacin
Visual HUR versin 3.1
Tabla de Contenidos
Herramientas de Soporte
6
7
8
9
Herramientas de Parametrizacin
13
13
15
19
21
24
24
27
35
36
37
37
37
38
45
53
54
61
A D M I N I S T R A C I N
PAR A M E T R I Z A C I N
Herramientas de Soporte
Introduccin a las herramientas de
soporte de Visual HUR
A D M I N I S T R A C I N
PAR A M E T R I Z A C I N
Microsoft Office 2000 o superior (se requiere para clientes que tendrn permisos de
generar cartas y constancias o de utilizar el asistente para la generacin de Consultas)
Microsoft ActiveX Data Objects versin 2.7 o superior (ya viene instalado en
Windows XP)
Sistema Operativo Windows 2000 SP4 o superior (se recomienda Windows 2003 Server)
Espaol
Ingls
A D M I N I S T R A C I N
PAR A M E T R I Z A C I N
\Soporte\MsScript\Script
Control
OCX\sct10en.exe
Este componente instala el OCX para
manejo del Script Engine desde Visual
Basic (no es requerido instalarlo para
Windows 2000 o superior)
Microsoft
Windows
Script
5.6
para
Windows 9x, Me o NT
\Soporte\MsScript\Win
9x
NT4\scr56en.exe (en ingls)
\Soporte\MsScript\Win
9x
NT4\scr56es.exe (en espaol)
Microsoft
Windows
Script
5.6
para
Windows 2000 o XP
\Soporte\MsScript\Win2000
XP\scr56en.exe (en ingls)
\Soporte\MsScript\Win2000
XP\scr56es.exe (en espaol)
Me
Me
y
y
y
A D M I N I S T R A C I N
PAR A M E T R I Z A C I N
A D M I N I S T R A C I N
PAR A M E T R I Z A C I N
Recuerde que cada usuario que tiene acceso a Visual HUR debe
estar registrado en el Mdulo de Seguridad a travs de su
usuario de red.
Ms adelante en este documento se explica el funcionamiento
del Mdulo de Seguridad.
Modalidades de Instalacin de Visual HUR
A D M I N I S T R A C I N
PAR A M E T R I Z A C I N
A D M I N I S T R A C I N
PAR A M E T R I Z A C I N
A D M I N I S T R A C I N
PAR A M E T R I Z A C I N
A D M I N I S T R A C I N
PAR A M E T R I Z A C I N
Activacin de la Aplicacin
El programa RHLockApp.Exe que se encuentra en el
directorio de Instalacin de Visual HUR en la carpeta de
A D M I N I S T R A C I N
PAR A M E T R I Z A C I N
10
A D M I N I S T R A C I N
PAR A M E T R I Z A C I N
Mdulo de Seguridad
El programa Seguridad.exe que se encuentra en el
directorio de Instalacin de Visual HUR en la carpeta de
Administracin, permite establecer los permisos de seguridad
que tienen los usuarios de Visual HUR.
Determina a travs de roles de seguridad, compuestos por uno o
mas usuarios, que mdulos pueden ejecutarse, que opciones de
cada mdulo estn activas (determinando permisos de consulta,
insercin, actualizacin, eliminacin y autorizacin.
Tambin permite establecer que secciones del expediente del
empleado son visibles para cada rol de seguridad.
Adicionalmente el mdulo de seguridad permite especificar a
que empresas tiene acceso un rol de seguridad y dentro de cada
una de ellas, determina que unidades administrativas puede ver.
Esto permite que un rol de seguridad pueda ver expedientes y
acciones de personal de empleados que pertenecen a las
unidades administrativas a las cuales se le ha dado permiso a los
roles de seguridad.
Tambin es posible determinar seguridad a nivel de Tipo de
Planilla, de tal manera que se pueda restringir el acceso de los
usuarios a los empleados que pertenecen a un Tipo de Planilla
especfico.
Al ejecutar este programa primero se
solicitar del usuario la contrasea
correspondiente para poder ejecutar este
programa. Esta contrasea es especificada
por el administrador de la aplicacin.
Si la contrasea es correcta, a continuacin se muestra la
pantalla principal de ste mdulo.
11
A D M I N I S T R A C I N
PAR A M E T R I Z A C I N
12
A D M I N I S T R A C I N
PAR A M E T R I Z A C I N
13
A D M I N I S T R A C I N
PAR A M E T R I Z A C I N
14
Herramientas de
Parametrizacin
Introduccin a las herramientas de
Parametrizacin de Visual HUR
A D M I N I S T R A C I N
PAR A M E T R I Z A C I N
16
A D M I N I S T R A C I N
PAR A M E T R I Z A C I N
Descripcin
Field Key
Prompt
Tipo
Tamao
Default
17
A D M I N I S T R A C I N
PAR A M E T R I Z A C I N
Tipo de Lista
Lista | FROM
Order By
Use
Data
Item
Expr.
Data
Item
First Letter
Alignment
Formato
18
A D M I N I S T R A C I N
PAR A M E T R I Z A C I N
Mximo
WrapText
Si el tipo de lista es List (lista constante) entonces la lista de valores debe tener
secuencias as:
[Cdigo1|]Valor1;[Cdigo2|]Valor2;...;[CdigoN|]ValorN
Por ejemplo:
Diario;Mensual
1|Sin Lista;2|Lista Constante;3|Lista con SELECT
Si el tipo de lista es Select (lista con una instruccin SELECT) este campo contiene la
instruccin SELECT para obtener la lista de valores. Por ejemplo:
select afp_codigo, afp_nombre from pla_afp_afps order
select uni_codigo, uni_nombre from pla_uni_unidad where uni_codcia =
<<CODCIA>>
Si en la instruccin select se halla la secuencia <<CODCIA>> o <<CODGRC>> o
<<USER>> estas sern reemplazadas por el cdigo de la empresa o el cdigo de grupo o el
username del usuario que utiliza la aplicacin, respectivamente.
NO DEBEN INCLUIRSE CLUSULAS ORDER BY.
19
A D M I N I S T R A C I N
PAR A M E T R I Z A C I N
20
A D M I N I S T R A C I N
PAR A M E T R I Z A C I N
Descripcin
FormName
Desc. Forma
SelectFieldLi
st
21
A D M I N I S T R A C I N
PAR A M E T R I Z A C I N
SelectTableLi
st
SelectJoinCla
use
SelectOderCl
ause
Descripcin
No.
Prompt
FieldName
FieldKey
UseDatePick
er
DefaultExp
FieldType
List Source
Use
Format
22
A D M I N I S T R A C I N
PAR A M E T R I Z A C I N
23
A D M I N I S T R A C I N
PAR A M E T R I Z A C I N
Descripcin
Nombre de la
Forma
Descripcin
de la Forma
Nombre del
Control
FieldKey
DefaultExp
24
A D M I N I S T R A C I N
PAR A M E T R I Z A C I N
25
A D M I N I S T R A C I N
PAR A M E T R I Z A C I N
Descripcin
Nombre de la
Forma
Nombre del
Grid
Key de la
Columna
FieldKey
Descripcin
de la Forma
DefaultExp
26
A D M I N I S T R A C I N
PAR A M E T R I Z A C I N
27
A D M I N I S T R A C I N
PAR A M E T R I Z A C I N
Descripcin
Nombre de la
Forma
Descripcin
de la Forma
Nombre del
Grid
Key de la
Columna
Nombre del
SubGrid
ndice de la
columna
Enlace
Instruccin
Select del
SubGrid
28
A D M I N I S T R A C I N
PAR A M E T R I Z A C I N
29
A D M I N I S T R A C I N
PAR A M E T R I Z A C I N
30
A D M I N I S T R A C I N
PAR A M E T R I Z A C I N
2.
3.
Descripcin
ID
Nombre de la
Tabla
Descripcin de la
Tabla
Descripcin
ndice
31
A D M I N I S T R A C I N
PAR A M E T R I Z A C I N
No.
Nombre de la
Columna
Tipo
Tamao
CanBeNull?
Llave Primaria?
Descripcin
No.
Categora
No
Empresa
Ttulo o
descripcin del
campo
Nombre de la
Columna
FieldOnTable
Tipo
32
A D M I N I S T R A C I N
PAR A M E T R I Z A C I N
Tamao
Formato
Default
Regla de
Validacin
Error de
Validacin
CanBeNull?
EditMode
Visible
Control de
Lectura
Multiline
# Lines
Select?
Lista de Valores
Cdigo para el
evento BeforeEdit
Cdigo para el
evento AfterEdit
33
A D M I N I S T R A C I N
PAR A M E T R I Z A C I N
Si el tipo de lista es List (lista constante) entonces la lista de valores debe tener
secuencias as:
[Cdigo1|]Valor1;[Cdigo2|]Valor2;...;[CdigoN|]ValorN
Por ejemplo:
Diario;Mensual
1|Sin Lista;2|Lista Constante;3|Lista con SELECT
Si el tipo de lista es Select (lista con una instruccin SELECT) este campo contiene la
instruccin SELECT para obtener la lista de valores. Por ejemplo:
select afp_codigo, afp_nombre from pla_afp_afps order
select uni_codigo, uni_nombre from pla_uni_unidad where uni_codcia =
<<CODCIA>>
Si en la instruccin select se halla la secuencia <<CODCIA>> o <<CODGRC>> o
<<USER>> estas sern reemplazadas por el cdigo de la empresa o el cdigo de grupo o el
username del usuario que utiliza la aplicacin, respectivamente.
34
A D M I N I S T R A C I N
PAR A M E T R I Z A C I N
35
A D M I N I S T R A C I N
PAR A M E T R I Z A C I N
36
A D M I N I S T R A C I N
PAR A M E T R I Z A C I N
37
A D M I N I S T R A C I N
PAR A M E T R I Z A C I N
Else
errMsg = "Error: " & Err.Number & " - " & Err.Description
End If
oRS.Close
conn.Close
Else
errMsg = "Error: " & Err.Number & " - " & Err.Description
End If
On Error GoTo 0
if errMsg <> "" then
MsgBox errMsg & vblf & vblf & xSQL
end if
end function
ConnectString as String
DataAccessLayer as
rhDataAccessLayer
UsuarioWindows as String
Count as Long
Clear ()
38
A D M I N I S T R A C I N
PAR A M E T R I Z A C I N
Remove (vntIndexKey)
rhPGCategory
Expanded as Boolean
Index as Integer
Prompt as String
Ttulo de la categora
Rows as rhPGRows
rhPGRows
Count as Long
Clear ()
Remove (vntIndexKey)
rhPGRow
Actualizado as Boolean
AfterEditCode as String
BeforeEditCode as String
CanBeNull as Boolean
DefaultValue as Variant
FieldOnTable as Boolean
39
A D M I N I S T R A C I N
PAR A M E T R I Z A C I N
HasValueList as Boolean
Index as Integer
InputControl as
pg_InputControlConstants
Multiline as Boolean
Prompt
SelectExpression as String
Tag as Variant
TextValue as String
ValidateRule as String
ValidationErrorMsg as String
Value as Variant
ValueList as rhPGValueItems
Visible as Boolean
VisibleLines as Integer
rhPGValueItems
Count as Long
Item (vntIndexKey) as
rhPGValueItem
Clear ()
Remove (vntIndexKey)
rhPGValueItem
Description as String
Index as Integer
40
A D M I N I S T R A C I N
PAR A M E T R I Z A C I N
Tag as Variant
Value as Variant
Valor de la Lista
pg_EditModeConstants
pg_Edit = 0
pg_NoEdit = 1
pg_NoEditAndDisabled = 2
pg_FieldTypeConstants
pg_Booleano = 6
pg_Byte = 0
pg_Doble = 4
pg_Entero = 1
pg_EnteroLargo = 2
pg_Fecha = 5
pg_Memo = 8
pg_Simple = 3
pg_Texto = 7
pg_InputControlConstants
pg_ComboBox = 2
Utiliza un ComboBox
pg_DatePicker = 1
pg_TextBox = 0
Utiliza el TextBox
41
A D M I N I S T R A C I N
PAR A M E T R I Z A C I N
42
A D M I N I S T R A C I N
PAR A M E T R I Z A C I N
En este panel aparece una tabla que muestra los reportes que
han sido integrados a Visual HUR, el panel muestra las
siguientes columnas:
Propiedad
Descripcin
SetID
Nombre del
Reporte
Nombre del
Archivo RPT
Archivo?
Tipo Cursor
Nombre
Procedimiento
43
A D M I N I S T R A C I N
PAR A M E T R I Z A C I N
En este panel se listan los roles de seguridad para los cuales est
visible el reporte seleccionado en el panel 1. Para agregar roles
de seguridad se posiciona el cursor en la fila (*) de la tabla y se
selecciona el rol deseado.
Panel con Mdulos por Reporte
Descripcin
Orden
Nombre del
Campo
Referencia al
FieldKey
Referencia
(FieldKey).
Prompt
CodCia?
Fecha?
Mensaje?
al
Diccionario
de
Listas
de
Valores
44
A D M I N I S T R A C I N
PAR A M E T R I Z A C I N
Cuando se utiliza un campo que proviene de una vista en la base datos se deben encerrar
entre llaves y se debe anteponer al nombre del campo, el nombre del proveedor de base de
datos utilizado para crear el reporte. Por ejemplo: {ado.inn_codcia} significa que se est
utilizando ADO como proveedor para los datos el reporte y se desea filtrar utilizando el
cdigo de empresa de la tabla cuyo nombre es INN_CODCIA.
El tercer tipo de parmetros es cuando se desea filtrar el reporte utilizando una frmula
creada a nivel del reporte, en este caso se utiliza el nombre de la frmula y no se encierra
entre llaves ni se especifica el proveedor de base de datos, Por ejemplo,
FECHA_REPORTE para pasar al reporte la fecha de generacin que se desea utilizar.
Ejemplo
45
A D M I N I S T R A C I N
PAR A M E T R I Z A C I N
Archivo? = No
46
A D M I N I S T R A C I N
PAR A M E T R I Z A C I N
Referencia al
Fieldkey
Prompt
CodCi
a?
Fech
a?
Mensa
je?
{ado.emp_codcia}
DefaultSmallInt
CodCIA
No
No
{ado.uni_codigo}
Unidad
Unidad Admin.
No
No
No
{@Antiguedad}
DefaultSmallInt
Antigedad
(meses)
No
No
No
47
A D M I N I S T R A C I N
PAR A M E T R I Z A C I N
48
A D M I N I S T R A C I N
PAR A M E T R I Z A C I N
49
A D M I N I S T R A C I N
PAR A M E T R I Z A C I N
Descripcin
DataSet ID
Nombre del
Conjunto de
Datos
Destino
Nombre de la
Tabla o Vista de la
base de datos
Agrega al Where
Descripcin del
conjunto de datos
Nombre Default
Ttulo Default
Subttulo Default
Valor a ingresar
DataSet ID
rhds_acc99
Nombre
Destino
Excel Worksheet
Nombre Tabla o
estadisticas_incapacidades
50
A D M I N I S T R A C I N
PAR A M E T R I Z A C I N
Vista
Agrega al Where
ixe_codcia = <<CODCIA>>
Descripcin del
Conjunto de Datos
Nombre Default
Ttulo Default
Subtitulo Default
Descripcin
Area ID
Orden
Prompt
Valor a ingresar
rea ID
Orden
Prompt
Incapacidades
Note que debe seleccionar el rea recin creada para agregar los campos de
la vista en el panel 5
Panel con Mdulos para Utilizacin del Conjunto de Datos (panel 3)
51
A D M I N I S T R A C I N
PAR A M E T R I Z A C I N
En este panel se listan los roles de seguridad para los cuales est
visible el conjunto de datos seleccionado en el panel 1. Para
agregar roles de seguridad se posiciona el cursor en la fila (*) de
la tabla y se selecciona el rol deseado.
Para fines del ejemplo que se est desarrollando debe agregarse
el rol Administradores a este panel.
Panel con los Campos de la Vista contenidas en el Conjunto de Datos
(panel 5)
Descripcin
Field Name
Field ID
Prompt
Orden
GroupBy
Filter In
Replace Values
SQL Expression
52
A D M I N I S T R A C I N
PAR A M E T R I Z A C I N
Group
By
Filter
In
Replace
Values
Ao
Si
Where
No
DefaultSmallI
nt
Mes
Where
No
ixe_tipo
DefaultString
Tipo Incapacidad
Where
No
ixe_frecuencia
DefaultSmallI
nt
Frecuencia
Where
No
ixe_dias_person
a
DefaultSmallI
nt
Das Incapacidad
Where
No
Promedio Das
Evento
Where
No
Field Name
Field ID
Prompt
ixe_anio_inicio
DefaultSmallI
nt
ixe_mes_inicio
ixe_dias_promed DefaultSmallI
io
nt
53
A D M I N I S T R A C I N
PAR A M E T R I Z A C I N
Debe ser posible crear una vista en la base de datos en la que cada registro debe coincidir
con una constancia o carta que se desea generar. Esto significa que no puede crearse una
vista en donde ms de un registro sea requerido para formar el documento (no es posible
generar cartas o constancias en donde la vista genera una relacin maestro/detalle).
La plantilla debe tener el texto que ser generado en cada carta o constancia, no
importando si ocupa una o ms pginas por cada una.
Puede utilizarse toda la gama de opciones de presentacin y formateo vlidas para los
documentos de Word.
La Plantilla de Word no debe contener macros que sean ejecutados al crear documentos a
partir de la plantilla.
Para ubicar los campos de la vista dentro del texto de la plantilla se utilizar la siguiente
notacin:
<%=nombre_columna_de_la_vista%>
Se identifica la ubicacin de los campos de la vista encerrando su nombre entre los
signos "<%=" y "%>" sin espacios en blanco dentro de los delimitadores. Por ejemplo:
54
A D M I N I S T R A C I N
PAR A M E T R I Z A C I N
55
A D M I N I S T R A C I N
PAR A M E T R I Z A C I N
56
A D M I N I S T R A C I N
PAR A M E T R I Z A C I N
57
A D M I N I S T R A C I N
PAR A M E T R I Z A C I N
En este panel aparece una tabla que muestra las plantillas que
han sido integradas a Visual HUR, el panel muestra las
siguientes columnas:
Propiedad
Descripcin
SetID
Nombre del
Reporte
Nombre de la
Plantilla
Vista /
Procedimiento
Descripcin
Orden
Nombre del
campo
Referencia al
FieldKey
Prompt
Filtro?
CodCia?
58
A D M I N I S T R A C I N
PAR A M E T R I Z A C I N
Lee al Generar?
Conv. Letras?
Nombre del
Campo
Referencia al
Prompt
Fieldkey
codcia
DefaultInt
Filtr
o?
CodCi Visibl
a?
e?
Conv
Lee al
.
Gener
Letra
ar?
s?
Empresa
No
No
No
No
nombre_empre
DefaultString
sa
Nombre
Empresa
No
No
No
No
No
cst_codemp
Empleado
Cdigo de
Empleado
No
No
No
nombre_emple
ado
DefaultString
Nombre
Empleado
No
No
No
No
fecha_ingreso
DefaultDate
Fecha
Ingreso
No
No
No
No
salario
DefaultCurren
Salario
cy
No
No
No
No
firmante
DefaultString
Firmante
No
No
No
No
No
cst_primer_ape
EmpPrimerAp
e
Primer
Apellido
No
No
No
No
cst_segundo_a
pe
EmpSegundoA Segundo
pe
Apellido
No
No
No
No
10
cst_apellido_ca EmpApellidoC
s
as
Apellido
de
Casada
No
No
No
No
11
cst_primer_no
m
Primer
Nombre
No
No
No
No
EmpPrimerNo
m
59
A D M I N I S T R A C I N
PAR A M E T R I Z A C I N
12
cst_segundo_n
om
EmpSegundo
Nom
Segundo
Nombre
No
No
No
No
13
No
No
No
No
14
cst_salario
DefuaultCurre
Salario
ncy
No
No
No
No
15
fecha_letras
DefaultString
Fecha de
Carta
No
No
16
destinatario
DefaultString
Destinati
ario
No
No
En este panel se listan los roles de seguridad para los cuales est
visible el reporte seleccionado en el panel 1. Para agregar roles
de seguridad se posiciona el cursor en la fila (*) de la tabla y se
selecciona el rol deseado.
Para fines del ejemplo que se est desarrollando debe agregarse
el rol Administradores a este panel.
Panel con Mdulos por Reporte
60
A D M I N I S T R A C I N
PAR A M E T R I Z A C I N
61
A D M I N I S T R A C I N
PAR A M E T R I Z A C I N
Descripcin
SetID
Nombre del
Proceso
Nombre
Procedimiento /
DTS
Tipo Cursor
62
A D M I N I S T R A C I N
PAR A M E T R I Z A C I N
Propiedad
Descripcin
Orden
Nombre del
Campo
Referencia al
FieldKey
Referencia
(FieldKey).
Prompt
CodCia?
Fecha?
Mensaje?
al
Diccionario
de
Listas
de
Valores
En este panel se listan los roles de seguridad para los cuales est
visible el procedimiento seleccionado en el panel 1. Para agregar
roles de seguridad se posiciona el cursor en la fila (*) de la tabla
y se selecciona el rol deseado.
Panel con Mdulos desde los cuales se puede ejecutar el
Procedimiento o DTS
63
A D M I N I S T R A C I N
PAR A M E T R I Z A C I N
64
A D M I N I S T R A C I N
PAR A M E T R I Z A C I N
Los cursores para obtener informacin y que se abren en modo de lectura exclusivamente.
Los cursores para almacenar resultados de los clculos y que se abren en modo de
lectura y escritura.
65
A D M I N I S T R A C I N
PAR A M E T R I Z A C I N
66
A D M I N I S T R A C I N
PAR A M E T R I Z A C I N
Instruccin SELECT para ejecutar el clculo: Se especifica una instruccin SELECT que
retorna los registros que se desean obtener y que se procesarn con las frmulas de clculo
de planillas. Debe tener un listado de campos igual al de la instruccin SELECT anterior,
esta instruccin es la que efectivamente se ejecuta cuando se est realizando el proceso de
clculo.
Note que en la clusula WHERE de esta instruccin SELECT se pueden especificar las
secuencias <<CODCIA>>, <<CODTPL>> y <<CODPLA>> que al momento de ejecutar
los clculos de planilla son sustituidas por el cdigo de la empresa, cdigo del tipo de
planilla y cdigo del perodo de pago de la planilla que se est ejecutando.
67
A D M I N I S T R A C I N
PAR A M E T R I Z A C I N
Se requiere especificar cual es el nombre del campo que almacena el cdigo de la empresa
(CODCIA), el cdigo del tipo de planilla (CODTPL), el cdigo del perodo de pago de la
planilla (CODPLA) y el cdigo del empleado (CODEMP). Si alguno de estos campos no
existe en el SELECT especificado, simplemente se deja en blanco.
Este Cursor es el Principal para Generar el Clculo: Determina si este es el cursor que
define el universo de empleados existentes y que podran participar de un clculo.
Solamente puede haber un cursor marcado como el Principal.
68
A D M I N I S T R A C I N
PAR A M E T R I Z A C I N
Generar un archivo texto con los factores creados para este clculo de planillas en un
archivo .BAS
Botones para subir y bajar el factor seleccionado en el panel 4, definiendo de esta manera
la precedencia en la ejecucin de los factores.
69
A D M I N I S T R A C I N
PAR A M E T R I Z A C I N
Botones para marcar todos o desmarcar todos o invertir la marca de todos los factores
del panel 4. La marca que aparece a la izquierda del nombre del factor en el panel 4
determina si cada factor se almacena o no en la tabla temporal definida en el panel 2.
Panel sobre la Tabla Temporal para Almacenar los resultados de la ejecucin de los
factores de clculo (panel 2)
70
A D M I N I S T R A C I N
PAR A M E T R I Z A C I N
71
A D M I N I S T R A C I N
PAR A M E T R I Z A C I N
Identificador: Nombre del Factor (no puede contener espacios en blanco ni caracteres que
sean letras o nmeros o el signo "_".
72
A D M I N I S T R A C I N
PAR A M E T R I Z A C I N
el campo "Largo", que permite determinar el tamao del texto que retornar para poder ser
creado correctamente en la tabla temporal.
Descripcin: Permite ingresar una descripcin ms amplia del objetivo del factor.
73
A D M I N I S T R A C I N
PAR A M E T R I Z A C I N
Insertar Columna: Este botn permite insertar en la posicin donde se encuentra ubicado el
cursor en la funcin VBScript la columna seleccionada en el panel 3.
74
A D M I N I S T R A C I N
PAR A M E T R I Z A C I N
Elimina los datos existentes en las tablas con el historial de ingresos y descuentos (tablas
pla_inn_ingresos y pla_dss_descuentos) utilizando el cdigo de empresa, cdigo de tipo de
planilla y cdigo de perodo de pago especificados en la forma de generacin
Carga en el Script Engine las frmulas definidas para el clculo de planillas seleccionado y
el archivo de procedimientos globales proc_genpla.vbs que se encuentra en el directorio
BIN del directorio de instalacin de Visual HUR.
75
A D M I N I S T R A C I N
PAR A M E T R I Z A C I N
Abre los cursores para clculo de planilla definidos para este proceso. Los cursores que son
marcados como modificables se abren en modo escritura, mientras que el resto de cursores
se abren en modo lectura nicamente.
Ejecuta la frmula definida como filtro para saber si el empleado participa en este
clculo de planillas. Si el valor de retorno es verdadero contina la ejecucin de
frmulas de lo contrario avanza al siguiente registro.
Ejecuta de una en una las frmulas definidas para el clculo de planillas en el orden de
precedencia que se ha definido. Se enva a cada frmula los cursores como parmetro,
pero antes de enviarse se establece un filtro para que nicamente pasen registros
correspondientes al empleado que est participando del clculo.
Cierra los cursores abiertos. En el caso de los cursores modificables ejecuta una
instruccin de sincronizacin para escribir en la base de datos las modificaciones
realizadas al cursor.
76
A D M I N I S T R A C I N
PAR A M E T R I Z A C I N
Marca todos los ingresos y descuentos eventuales ingresados como procesados o pagados.
Marca las cuotas de descuento cclicos como aplicadas en un perodo de pago de planillas.
Marca las horas extras, tiempos no trabajados, suspensiones por amonestacin como
procesadas.
Count as Long
Item (vntIndexKey) as
rhSalFactor
Add([ID As String],
Agrega un elemento a la coleccin
[Descripcion As String],
[Precedencia As Integer],
[vbScript As String], [Tipo As
String = "R"], [Size As Byte],
[SalvadoEnTabla As Boolean
= True], [CodTipoIngreso],
[CodTipoDescuento], [sKey As
String]) As rhSalFactor
Clear ()
Remove (vntIndexKey)
rhSalFactor
CampoActualizar as
rhSalTDCCCampoConst
77
A D M I N I S T R A C I N
PAR A M E T R I Z A C I N
CodTipoIngreso as Variant
Descripcin as String
ID as String
Index as Integer
Key as String
Parametros as
rhSalFacParametros
Precedencia as Integer
SalvadoEnTabla as Boolean
Size as Integer
Tipo as String
Value as Variant
vbScript as String
GetCode() as String
HaveCodTipoDescuento as
Boolean
HaveCodTipoIngreso as
Boolean
rhSalFacParametros
Count as Long
Item (vntIndexKey) as
rhSalFacParametro
Add([Index As Integer],
[Nombre As String], [Tipo As
String], [sKey As String]) As
rhSalFacParametro
Clear ()
Remove (vntIndexKey)
rhSalFacParametro
78
A D M I N I S T R A C I N
PAR A M E T R I Z A C I N
Index as Integer
Nombre as String
Tipo as String
Count as Long
Item (vntIndexKey) as
rhSalAgrupador
Remove (vntIndexKey)
ResetValues()
SumaRubro(sTipo As String,
CodigoRubro As Long,
ValorRubro As Double)
rhSalAgrupador
Codigo As Long
Index as Integer
Key as String
Nombre as String
Rubros As
RHSalRubrosAgrupador
ResetValues()
SumaAlRubro(sTipo As
Suma el valor (parmetro ValorRubro) de un ingreso
String, CodigoRubro As Long, o descuento (dependiendo si el parmetro sTipo es
ValorRubro As Double)
igual a I o D respectivamente), identificado por su
cdigo (parmetro CodigoRubro) al total del
79
A D M I N I S T R A C I N
PAR A M E T R I Z A C I N
agrupador
Value() As Double
rhSalRubrosAgrupador
Count as Long
Item(vntIndexKey) As
RHSalRubroAgrupador
Exists(vntIndexKey) As
Boolean
Remove (vntIndexKey)
ResetValues()
Value() As Double
RHSalRubroAgrupador
Codigo As Long
Index as Integer
Key as String
Nombre as String
Porcentaje As Single
TipoRubro As String
Value As Double
esDescuento() As Boolean
esIngreso() As Boolean
80
A D M I N I S T R A C I N
PAR A M E T R I Z A C I N
Descripcin
SalarioMensual
DescuentoIncapa
Regresa el valor a descontar en concepto de incapacidades
cidad
DescuentoTNT
IngresosEventual
Calcula los ingresos eventuales que ha tenido el empleado
es
SalarioBruto
DescuentoISSS
DescuentoAFP
DescuentoISR
DescuentosCiclic
os
DescuentosEvent
Calcula los descuentos eventuales
uales
SalarioNeto
81
A D M I N I S T R A C I N
PAR A M E T R I Z A C I N
pla_ide_ident_emp.*,
plz_codpue, plz_coduni,
plz_cen_costo, plz_codcpu,
plz_codubi
FROM pla_plz_plaza full
JOIN pla_emp_empleado
LEFT JOIN pla_dpl_datos_planilla
ON (emp_codcia = dpl_codcia AND emp_codigo = dpl_codemp)
LEFT JOIN pla_ide_ident_emp
on (emp_codcia = ide_codcia and emp_codigo = ide_codemp)
ON (plz_codcia = emp_codcia AND plz_codigo = emp_codplz)
WHERE emp_estado <> 'R'
and emp_codcia = <<CODCIA>>
Emp_Incapacidades
Regresa la informacin de los perodos de incapacidad que debe aplicar
SELECT IXE_CODCIA, IXE_CODTPL, PIE_CODPLA,
IXE_CODTXI, IXE_CODEMP, IXE_RIESGO,
PIE_INICIO, PIE_FINAL, PIE_DIAS,
PIE_PROCESADA,
CASE WHEN PIE_INICIO = IXE_INICIO
THEN 'S' ELSE 'N' END PIE_ES_PRIMERA,
PIE_VALOR_TOTAL, PIE_VALOR_A_PAGAR,
pie_valor_total - pie_valor_a_pagar PIE_VALOR_A_DESCONTAR,
pie_porcentaje_descuento, pie_ajuste_sobre_sal_maximo
FROM PLA_IXE_INCAP_EMPLEADO, PLA_PIE_PRORROGA_INCAP
WHERE IXE_CODCIA = PIE_CODCIA AND IXE_NUMERO = PIE_NUMERO
AND PIE_PROCESADA = 'N'
and ixe_codcia = <<CODCIA>> and ixe_codtpl = <<CODTPL>>
and pie_codpla = <<CODPLA>>
Emp_TmpNoTrabajado
Regresa la informacin de los perodos de incapacidad que debe aplicar
SELECT * FROM pla_tnn_tiempo_no_trab
WHERE tnn_estado = 'A'
and tnn_codcia = <<CODCIA>>
and tnn_codtpl= <<CODTPL>>
and tnn_codpla = <<CODPLA>>
Emp_OtrosIngresos
Regresa los registros de ingresos eventuales que debe aplicar
select * from pla_oin_otros_ingresos
where oin_estado = 'R'
and oin_codcia = <<CODCIA>>
and oin_codtpl = <<CODTPL>>
and oin_codpla = <<CODPLA>>
DescuentosCiclicos
Regresa los descuentos cclicos que debe aplicar en el perodo de pago de la planilla
SELECT pla_pre_prestamo.*,
ppl_codpla pre_codpla,
tpr_codtdc pre_codtdc,
CASE WHEN pre_monto_indefinido <> 'S'
THEN pre_monto - pre_pagado ELSE 9999999.99 END AS pre_saldo
FROM pla_pre_prestamo
join pla_ppl_param_plani
on pre_codcia = ppl_codcia and pre_codtpl = ppl_codtpl
join pla_tpr_tipo_prestamo
82
A D M I N I S T R A C I N
PAR A M E T R I Z A C I N
83
A D M I N I S T R A C I N
PAR A M E T R I Z A C I N
84
A D M I N I S T R A C I N
PAR A M E T R I Z A C I N
ID: DescuentoIncapacidad
Tipo: Real
Descripcin: Determina la cantidad a descontar por incapacidad
' Variable para los das de incapacidad
di = 0
' Variable para el descuento de incapacidad
vi = 0
' Loop para obtener los das incapacitados y el valor a descontar
if not Emp_Incapacidades.EOF then
Emp_Incapacidades.MoveFirst
do while not Emp_Incapacidades.EOF
di = di + Emp_Incapacidades.Fields("PIE_DIAS").Value
vi = vi + round(Emp_Incapacidades.Fields("PIE_VALOR_A_DESCONTAR").Value, 2)
Emp_Incapacidades.MoveNext
Loop
end if
' Verifica no descontar ms del salario mensual
if vi > Factores("SalarioMensual").Value then
vi = Factores("SalarioMensual").Value
end if
' Salva en el historial de descuentos
' el procedimiento agrega_descuentos_historila se encuentra en e
' archivo proc_genpla.vbs del directorio BIN de Visual HUR
if not isnull(Factores("DescuentoIncapacidad").CodTipoDescuento) and _
Factores("DiasIncapacidad").Value > 0 then
agrega_descuentos_historial DescuentosEstaPlanilla, _
Pla_Periodo.Fields("PPL_CODCIA").Value, _
Emp_InfoSalario.Fields("EMP_CODIGO").Value, _
Pla_Periodo.Fields("TPL_CODIGO").Value, _
Pla_Periodo.Fields("PPL_CODPLA").Value, _
Factores("DescuentoIncapacidad").CodTipoDescuento, _
0, 0, 0, di
end if
' Retorna el valor del descuento
DescuentoIncapacidad = vi
ID: DescuentoTNT
Tipo: Real
Descripcin: Determina el descuento que debe hacer los empleados que tienen tiempos no
trabajados.
' Variable para almacenar el descuento por TNT
tnt = 0
' Variable para almacenar los das no trabajados
dnt = 0
' Loop para obtener los dias no trabajados y el valor de descuento
If Emp_TmpNoTrabajado.RecordCount > 0 Then
Emp_TmpNoTrabajado.MoveFirst
Do Until Emp_TmpNoTrabajado.EOF
85
A D M I N I S T R A C I N
PAR A M E T R I Z A C I N
' Verifica que los das de descuento no sean mayores que el perodo de planilla
if Emp_InfoSalario.Fields("EMP_FECHA_INGRESO").Value > _
Pla_Periodo.Fields("PPL_FECHA_INI").Value then
dnt = dnt + (Emp_InfoSalario.Fields("EMP_FECHA_INGRESO").Value Pla_Periodo.Fields("PPL_FECHA_INI").Value)
end if
' Almacena los das no trabajados en el historial de descuentos
if not isnull(Factores("DescuentoTNT").CodTipoDescuento) then
agrega_descuentos_historial DescuentosEstaPlanilla, _
Pla_Periodo.Fields("PPL_CODCIA").Value, _
Emp_InfoSalario.Fields("EMP_CODIGO").Value, _
Pla_Periodo.Fields("TPL_CODIGO").Value, _
Pla_Periodo.Fields("PPL_CODPLA").Value, _
Factores("DescuentoTNT").CodTipoDescuento, _
0, 0, 0, dnt
end if
' Valor de retorno de la funcin
DescuentoTNT = tnt
ID: IngresosEventuales
Tipo: Real
Descripcin: Determina el total de ingresos percibidos de manera eventual
' Variable para sumar los ingresos
o=0
' Loop para obtener los ingresos y salvarlos en el historial de ingresos
if Emp_OtrosIngresos.RecordCount > 0 then
Emp_OtrosIngresos.MoveFirst
do until Emp_OtrosIngresos.EOF
agrega_ingresos_historial IngresosEstaPlanilla, _
Pla_Periodo.Fields("PPL_CODCIA").Value, _
Emp_InfoSalario.Fields("EMP_CODIGO").Value, _
Pla_Periodo.Fields("TPL_CODIGO").Value, _
Pla_Periodo.Fields("PPL_CODPLA").Value, _
Emp_OtrosIngresos.Fields("OIN_CODTIG").Value, _
Emp_OtrosIngresos.Fields("oin_codffi").Value, _
Emp_OtrosIngresos.Fields("OIN_CODCCO").Value, _
round(Emp_OtrosIngresos.Fields("OIN_VALOR").Value, 2)
o = o + round(Emp_OtrosIngresos.Fields("OIN_VALOR").Value, 2)
Emp_OtrosIngresos.MoveNext
loop
end if
' Valor de retorno de la funcin
IngresosEventuales= o
ID: SalarioBruto
Tipo: Real
Descripcin: Salario Bruto a pagar al empleado
' Determina el salario bruto del empleado
sal = Factores("SalarioMensual").Value + _
Factores("IngresosEventuales").Value - _
Factores("DescuentoIncapacidad").Value - _
Factores("DescuentoTNT").Value
86
A D M I N I S T R A C I N
end if
PAR A M E T R I Z A C I N
Pla_Periodo.Fields("PPL_CODPLA").Value, _
Factores("Ordinario").CodTipoIngreso, _
Emp_InfoSalario.Fields("dpl_codffi").Value, _
Emp_InfoSalario.Fields("plz_cen_costo").Value, _
sal
87
A D M I N I S T R A C I N
PAR A M E T R I Z A C I N
if isnull(Emp_InfoSalario.Fields("ide_codAFP").Value) then
salq = 0
elseif Emp_InfoSalario.Fields("ide_codAFP").Value <= 0 then
salq = 0
else
' Determina parmetros de AFP
AFPs.Filter = "afp_codigo = " & Emp_InfoSalario.Fields("ide_codAFP").Value
if AFPs.EOF then
salq = 0
elseif not isnull( AFPs.Fields("afp_sal_minimo").Value ) and _
not isnull( AFPs.Fields("afp_sal_maximo").Value ) then
if salq < AFPs.Fields("afp_sal_minimo").Value then
salq = 0
elseif salq > AFPs.Fields("afp_sal_maximo").Value then
salq = AFPs.Fields("afp_sal_maximo").Value
end if
end if
end if
' Determina las cuotas a descontar dependiendo del AFP al que cotiza
if salq > 0 then
if not isnull( AFPs.Fields("afp_por_ahorro").Value ) then _
ahorroAFP = round(salq * AFPs.Fields("afp_por_ahorro").Value / 100, 2)
if not isnull( AFPs.Fields("afp_por_comision").Value ) then _
comisionAFP = round(salq * AFPs.Fields("afp_por_comision").Value / 100, 2)
if not isnull( AFPs.Fields("afp_por_patronal").Value ) then _
patronalAFP = round(salq * AFPs.Fields("afp_por_patronal").Value / 100, 2)
end if
' Inserta el registro en la tabla de descuentos
if not isnull(Factores("DescuentoAFP").CodTipoDescuento) then
agrega_descuentos_historial DescuentosEstaPlanilla, _
Pla_Periodo.Fields("PPL_CODCIA").Value, _
Emp_InfoSalario.Fields("EMP_CODIGO").Value, _
Pla_Periodo.Fields("TPL_CODIGO").Value, _
Pla_Periodo.Fields("PPL_CODPLA").Value, _
Factores("DescuentoAFP").CodTipoDescuento, _
ahorroAFP + comisionAFP, patronalAFP, salq, 0
end if
' Valor de retorno de la funcin
DescuentoAFP = ahorroAFP + comisionAFP
ID: DescuentoISR
Tipo: Real
Descripcin: Determina la cuota de descuento de impuesto sobre la renta
' Ingreso afecto a renta
salq = Factores("SalarioBruto").Value - _
Factores("DescuentoAFP").Value
' Variables para los parametros
valor = 0
excedente = 0
porciento = 0
88
A D M I N I S T R A C I N
PAR A M E T R I Z A C I N
89
A D M I N I S T R A C I N
PAR A M E T R I Z A C I N
dc = 0
vc = 0
lFilter = ""
' Loop para inspeccionar los descuentos cclicos del empleado
if DescuentosCiclicos.RecordCount > 0 then
DescuentosCiclicos.MoveFirst
do until DescuentosCiclicos.EOF
' Filtra la tabla de cuotas para investigar si aplican en este periodo
lFilter = CuotasDescuentosCiclicos.Filter
CuotasDescuentosCiclicos.Filter = lFilter & " and cdc_codpre = " & _
DescuentosCiclicos.Fields("PRE_CODIGO").Value
if not CuotasDescuentosCiclicos.EOF then
' Loop para procesar las cuotas a descontar en este periodo
do until CuotasDescuentosCiclicos.EOF
vc = round(CuotasDescuentosCiclicos.Fields("CDC_VAL_CUOTA").Value, 2)
' Si aun queda lquido descuenta la cuota
if (liquido - vc) > 0 then
liquido = liquido - vc
dc = dc + vc
CuotasDescuentosCiclicos.Fields("CDC_VENCIMIENTO").Value = _
Pla_Periodo.Fields("PPL_FECHA_PAGO").Value
CuotasDescuentosCiclicos.Fields("CDC_APLICADA").Value = "S"
agrega_descuentos_historial DescuentosEstaPlanilla, _
Pla_Periodo.Fields("PPL_CODCIA").Value, _
Emp_InfoSalario.Fields("EMP_CODIGO").Value, _
Pla_Periodo.Fields("TPL_CODIGO").Value, _
Pla_Periodo.Fields("PPL_CODPLA").Value, _
DescuentosCiclicos.Fields("pre_codtdc").Value, _
vc, 0, 0, 0
else
' NO queda liquido para descontar informa al usuario
CuotasDescuentosCiclicos.Fields("CDC_VENCIMIENTO").Value = null
CuotasDescuentosCiclicos.Fields("CDC_APLICADA").Value = "N"
msgbox "El salario del empleado " & _
Emp_InfoSalario.Fields("EMP_CODIGO").Value & _
" no alcanza para descontar la cuota " & _
CuotasDescuentosCiclicos.Fields("CDC_NUM_CUOTA").Value & _
" del descuentos cclico " & _
DescuentosCiclicos.Fields("PRE_CODIGO").Value
end if
CuotasDescuentosCiclicos.MoveNext
loop
end if
CuotasDescuentosCiclicos.Filter = lFilter
DescuentosCiclicos.MoveNext
loop
end if
' Valor de retorno de la funcin
DescuentosCiclicos = dc
ID: SalarioNeto
Tipo: Real
Descripcin: Determina el salario liquido que se pagar al empleado
SalarioNeto = Factores("SalarioBruto").Value - _
Factores("DescuentoISSS").Value - _
Factores("DescuentoAFP").Value - _
Factores("DescuentoISR").Value - _
Factores("DescuentosEventuales").Value - _
90
A D M I N I S T R A C I N
PAR A M E T R I Z A C I N
Factores("DescuentosCiclicos").Value
91