Repositorio Universidad de Guayaquil: Página de...

543
1 AGRADECIMIENTO Agradecemos infinitamente a Dios por darnos las bendiciones necesarias para realizar esta tarea, y a todas las personas que aportaron con su granito de arena en el desarrollo del sistema.

Transcript of Repositorio Universidad de Guayaquil: Página de...

Page 1: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

1

AGRADECIMIENTO

Agradecemos infinitamente a Dios por darnos las bendiciones necesarias para

realizar esta tarea, y a todas las personas que aportaron con su granito de

arena en el desarrollo del sistema.

Page 2: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

2

DEDICATORIA

Dedico mi tesis a Dios, nuestro Señor que con sus bendiciones guía mi vida, a

mis Padres, hermanos que día a día me daban fuerza, a mi abuelita que con

sus tiernas palabras me daba fuerza y aliento y ahora que está en el cielo me

guiará por el camino correcto y a la culminación de una de mis metas que es

ser Ingeniera de Sistemas.

Jenny Grace Bayas Ch.

Un agradecimiento muy especial a Dios porque nunca se apartó de mi lado, a

mi Familia por el apoyo que me brindaron.

Félix Enrique Zamora T.

Page 3: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

3

TRIBUNAL DE GRADUACIÓN

__________________ _________________ Ing. Fernando Abad Montero Ing. Fanny Arguello Decano Director de Tesis

__________________ _________________ Ing. Abel Alarcón Ing. Miguel Molina Vocal Principal Vocal Principal

__________________ Ab. Juan José Júpiter Secretario

Page 4: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

4

DECLARACIÓN EXPRESA

“La autoría de la tesis de grado corresponde exclusivamente al suscrito(s),

perteneciendo a la Universidad de Guayaquil los derechos que generen la

aplicación de la misma”

(Reglamento de Graduación de la Carrera de Ingeniería en Sistemas

Computacionales, Art. 26).

Page 5: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

5

CAPITULO 1

1.1 Introducción

La parte primordial de toda Empresa o Institución es el Recurso Humano, por

eso es importante la existencia de un departamento que se encargue de velar

por el bienestar Social, Laboral y Humano de los mismos, y más aún si este

departamento de Recursos Humanos cuenta con la ayuda de un Sistema

Informático que le permita gestionar un control sobre todos los aspectos que

rodea este recurso.

Situación Actual

➢ La división de personal se puede decir que es el departamento de

Recursos Humanos, que se preocupa por el bienestar del empleado y el

crecimiento del mismo, esta división se encuentra repartido en cinco

áreas que son Recepción, Social, Admisión, Legal y Control cada una

con tareas específicas.

➢ El departamento de Admisión realiza la toma de Test para la selección

de personal, los mismos que se dan de manera tradicional y no tienen

Page 6: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

6

registro de las personas que accedieron a los mismos y de tal manera

crear una Base de Datos de posibles candidatos.

También se registra los datos del personal (Datos Personales, cargas

familiares, estudios realizados, experiencia laboral, etc.) que labora ya

sea contratado o con partida propia.

➢ La Capacitación se da por sugerencia de cada jefe de departamento,

cuando debe ser el área de Recursos Humanos quien mantenga

información de los cursos e Instituciones que los brinda; realmente no

hay un control, ya que el sistema actual no contempla estos parámetros

sino que no existe la debida preocupación por parte de los empleados,

esto se lleva como una simple actualización de datos.

➢ Todo trámite que ocurre en la Universidad se realiza por medio de

oficios, por ello la Recepción del departamento de División de Personal,

se encarga de repartir estos oficios provenientes de distintas entidades

hacia los interesados, pero previamente se envía el oficio al jefe de la

División solamente para conocimiento y luego al día siguiente se envía

al interesado el mismo que debe retornar el oficio a Recepción para que

este vuelva a dirigirlo al transcurso requerido, previamente enviado al

jefe del personal para realizar una nueva revisión la que conlleva a

consumir demasiado tiempo para realizar un trámite, sin contar la

Page 7: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

7

cantidad excesiva de papeles que deja el respectivo tramite por la copia

que se archiva por cada puesto que recorrió el oficio; cave recalcar que

el papeleo puede causar que se pierdan ciertos oficios.

➢ El área Social, se encarga de llevar a través de fichas llenadas

manualmente sobre la salud del personal en el cual se indica las citas

médicas que generaron permisos a través del respectivo oficio y un

detalle sobre las citas.

➢ La División de Personal de la Universidad de Guayaquil consta

actualmente con un Sistema basado en FoxPro para DOS, este Sistema

trabaja por módulos separados, la que hace los procedimientos de

Novedades de Rol, Admisión y Selección de Personal entre otros sean

un poco tediosos y no cumplen con los requerimientos nuevos.

1.2 METODOLOGÍA APLICADA

Tomando como pautas las técnicas adquiridas en nuestros años de estudios

hemos tratado de apegarnos a las etapas clásicas del desarrollo de un sistema,

creando un horario de trabajo y determinando los pasos a seguir, por ello

identificamos los siguientes puntos:

Etapa de Análisis (Identificación de Requerimientos o Problemática).-

Page 8: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

8

La entrevista con usuarios de edad un poco avanzada se desarrolló lentamente

debido a la desconfianza que genera la implantación de un nuevo software,

sobre todo integrado; Esta etapa se vio desde el punto de vista de los usuarios

y desde la perspectiva de los desarrolladores del sistema anterior creado en

Fox pro para DOS.

Durante el desarrollo del análisis pudimos constatar las necesidades y

requerimientos de los usuarios (tanto en Hardware como en Software) que

permitan dar un mejor servicio al personal de la Universidad de Guayaquil en

distintas índoles.

Diseño y Planificación (Planificación en Tiempo y Generación de estructuras)

Tomando en cuenta la recopilación de información generada en el análisis lo

que nos permitió ver la realidad sobre el desarrollo del sistema, reformulamos

un calendario de trabajo, sobre los módulos que integrarían este sistema,

valiéndonos de pequeñas estructuras para dar forma al mismo, se desarrolló un

pequeño demo para validar con el usuario cada una de sus Necesidades

Reales, el cual durante el proceso sería depurado , además con la tabulación

de los datos recogidos se comenzó a moldear una base parametrizada, que

pudiera ser flexible y permitir manejar el flujo de la información de una forma

correcta e integrada con las demás áreas de la división, en donde se evite

hacer tareas repetitivas y tediosas.

Page 9: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

9

Desarrollo (Realización del diseño)

Basados en técnicas de programación que nos proporcionaron en el Centro de

Computo de la Universidad de Guayaquil, se realizó la implementación del

sistema de la mano con las exigencias de los usuarios y los requisitos técnicos

y de seguridad de los mismo.

Prueba (Verificación de Procesos)

Mediante una entrevista con los involucrados se probó de manera particular

cada módulo para asegurarnos que se cumplan con las necesidades de los

usuarios.

Seguridades

La seguridad del sistema a nivel de redes y a nivel del Software son implantado

por el Centro de Computo de la Universidad, para ello se nos entregó un

estándar en el nombre de los objetos que se utilizaron en la realización del

sistema. Ya que ellos asignan el uso de estos objetos a los usuarios

correspondientes.

1.3 EVALUACIONES TECNOLÓGICAS

Durante el análisis del proyecto se realizó un estudio de las tecnologías que se

usarían sobre la implementación del sistema, para ello tomamos en cuenta las

Page 10: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

10

licencias que posee el Centro de Computo, para de esta forma no generar

gastos a la Universidad en la adquisición de las mismas, además cabe recalcar

que esta fue una solicitud previa al desarrollo del sistema.

El enfoque de nuestras necesidades se daba en cuanto ha:

➢ Base de Datos

➢ Ambiente de Desarrollo

➢ Reportes

1.3.1 Base de Datos

Existe actualmente una diversidad de herramientas que permiten el manejo de

la información pero tomando en cuenta, la solicitud mencionada en el punto

anterior nos centramos en el uso de SQL Server 7.0

SQL SERVER 7.0

El lenguaje de consulta estructurado (SQL) es un lenguaje de Base de Datos

normalizado, utilizado por el motor de Base de Datos de Microsoft Jet.

SQL se utiliza para crear objetos QueryDef, como el argumento de origen del

método OpenRecordSet y como la propiedad RecordSource del control de

datos. También se puede utilizar con el método Execute para crear y manipular

Page 11: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

11

directamente las bases de datos Jet y crear consultas SQL para manipular

bases de datos remotas cliente – servidor.

La estrategia de Microsoft es la de hacer que SQL Server sea la base de datos

más fácil de utilizar para construir, administrar e implementar aplicaciones de

negocios.

Esto significa tener que poner a disposición un modelo de programación rápido

y sencillo para desarrolladores, eliminando la administración de base de datos

para operaciones estándar, y suministrando herramientas sofisticadas para

operaciones más complejas.

VENTAJAS

✓ Escalabilidad: Se adapta a las necesidades de la empresa, soportando

desde unos pocos usuarios a varios miles. Empresas centralizadas u

oficinas distribuidas, replicando ciertos de sitios.

✓ Gestión: Con un completo interfaz gráfico que reduce la complejidad

innecesaria de las tareas de administración y gestión de la base de

datos.

✓ Potencia: Microsoft SQL Server es la mejor base de datos para

Windows NT Server. Posee los mejores registros de los benchmarks

Page 12: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

12

independientes (TCP) tanto en transacciones totales como en coste por

transacción.

✓ Plataforma de desarrollo fácil y abierto.

✓ Mínimo Coste de Propiedad: La sencillez de la instalación, y la

potencia de sus herramientas de gestión y el menor coste de toda la

industria para entornos Internet, hacen de Microsoft SQL Server la mejor

opción con el menor coste.

✓ Potente y Escalable: Microsoft SQL Server es la única base de datos

cuyo rendimiento sobre Internet está publicado, ofreciendo registros

espectaculares.

✓ Durabilidad: La propiedad de SQL Server asegura que sus efectos

persistirán aun en el caso de que se produzca un fallo del sistema.

✓ Seguridad: SQL Server proporciona numerosos niveles de seguridad.

En la capa más externa, la seguridad de inicio de sesión (logon), de SQL

Server, está integrada directamente con la seguridad de Windows NT, lo

que permite que un servidor Windows NT autentifique a los usuarios.

DESVENTAJAS

✓ Su obsoleto sistema de triggers impone restricciones.

✓ Consume muchos recursos.

✓ Se vuelve inseguro si no se configura con seriedad y conocimiento.

Page 13: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

13

✓ Las acciones de los triggers no son atómicas.

✓ Los triggers, además se ejecutan siempre después de la instrucción, no

antes.

✓ Los triggers son siempre a nivel de instrucción, no de fila.

✓ En SQL no se pueden especificar borrados o actualizaciones en

cascada para las relaciones de integridad referencial.

1.3.2 Ambiente de Desarrollo

Los lenguajes de programación que permiten implementar un sistema son

variados, los hay incluso sin costo de licencia, vamos ha explorar un poco

sobre cada uno de ellos a demás de exponer el por que de nuestra elección.

Visual FoxPro

Es un lenguaje de programación que, con un lenguaje sencillo, simplifica el

manejo de datos para que los usuarios puedan construir rápidamente sus

aplicaciones. Visual FoxPro se maneja mediante ventanas. Las ventanas de

Visual FoxPro tienen una serie de controles que son comunes.

Visual FoxPro es un gestor de base de datos, orientado a la programación de

objetos.

Page 14: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

14

VENTAJAS

✓ Permite el acceso simultáneo a componentes de base de datos.

✓ El modelo de eventos de Visual FoxPro elimina la necesidad de usar

READ de fundación o escribir controladores de eventos.

✓ Puede compartir datos con otras aplicaciones, como Microsoft Excel y

Microsoft Word, utiliza objetos de otras aplicaciones y controlar otras

aplicaciones mediante Automatización.

✓ La programación orientada a objetos acelera la programación de

aplicaciones mediante características como la creación de subclases.

DESVENTAJAS

✓ Los reportes son difíciles de configurar y no pueden ser exportados a

formatos como PDF.

✓ Si la carpeta donde están los DBF no está protegida por otro programa,

pueden ser copiados y abiertos con cualquier otro manejador de BD, la

información no es segura.

✓ Si hay un bajón de luz y se encuentra manipulando la BD el contenedor

de la BD se daña y hay que regenerarlo.

Page 15: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

15

✓ Los archivos de índice se pierden.

✓ Los archivos son de gran vulnerabilidad.

✓ La depuración de código orientado a objeto es algo más compleja que la

depuración de código estructurado.

Visual Basic

Es uno de los lenguajes de programación que más entusiasmo despiertan entre

los programadores de PCs, tanto expertos como novatos. En el caso de los

programadores expertos por la facilidad con la que desarrollan aplicaciones

complejas en poquísimo tiempo. En el caso de los programadores novatos por

el hecho de ver de lo que son capaces a los pocos minutos de empezar su

aprendizaje. El precio que hay que pagar por utilizar Visual Basic 6.0 es una

menor velocidad o eficiencia en las aplicaciones.

Además de que la Universidad está pasando por una etapa de automatización

de sus procesos y los realiza en Visual Basic 6.0 por eso optamos por no salir

de la línea que está siguiendo, aunque recientemente adquirió las licencias

para Visual punto Net, y tal vez apunte su desarrollo hacia el uso de ese

software.

VENTAJAS

Page 16: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

16

✓ Potente porque se puede construir aplicaciones en relativamente poco

tiempo.

✓ Inserta controles ActiveX, archivos de sonido, crea tablas… etc.

✓ Accede fácilmente a Base de Datos.

✓ Ofrece un entorno gráfico sencillo y ameno.

DESVENTAJAS

✓ Necesita de archivos adicionales dependiendo de los objetos además

del ejecutable.

✓ Tiene características de un lenguaje Orientado a Objetos, pero no

maneja Herencia, sin embargo puede simularse, aunque su

implementación no es simple.

✓ Depende completamente de la plataforma Windows.

CONCLUSIÓN

Diversas son las herramientas compatibles con SQL Server por ejemplo: Visual

Basic, Visual FoxPro, Java; Pero como la automatización que se encuentra

realizando el Centro de Computo de la Universidad de Guayaquil en las demás

Page 17: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

17

divisiones está orientado al uso de Visual Basic 6.0, creímos conveniente

adoptar este lenguaje.

1.3.3 Reportes

Crystal Reports

Crystal Reports está diseñado para trabajar con su base de datos para

ayudarlo a analizar e interpretar información importante. Cristal Reports facilita

la creación de informes simples y dispone también de herramientas poderosas

necesarias para generar informes complejos o especializados.

El producto proporciona muchas características y utilidades, como son:

➢ El diseñador de consultas

➢ Un editor de fórmulas

➢ Una completa API para generación de informes en tiempo de ejecución.

➢ Un componente para servidores Web que permite la generación de

informes para navegadores.

➢ Además de multitud de asistentes y “Reporte Experto” para facilitar el

trabajo.

Crystal Reports está diseñado para generar el informe que desea desde

prácticamente cualquier fuente de datos.

Page 18: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

18

VENTAJAS

✓ Posibilidad de la agrupación jerárquica de datos en informes.

✓ Para los informes generados para Internet se proporcionan seis visores

diferentes: un control ActiveX para Internet Explorer, un Plug-In para

Netscape Navigator, una applet Java, un componente JavaBean, HTML

dinámico con marcos y HTML sin marcos.

✓ Proporciona multisubproceso.

DESVENTAJAS

✓ No pueden deshacer cambios de formatos que se realicen en los

campos del informe durante la etapa de diseño.

✓ Las capacidades para informes OLAP están bien pero son algo

limitadas.

Page 19: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

19

CAPITULO 2

ANALISIS DEL PROYECTO

2.1 Objetivos

“Inicialmente arrancamos con una propuesta que se aprobó por el consejo de la

facultad de Matemáticas y Físicas, Carrera de Ingeniería en Sistema

Computacionales, pero que debido a circunstancias externas que se generaron

en la división de centro de computo resultó que el módulo inicial de nuestra

propuesta para controlar los horario de los trabajadores se cambió por el de

nómina ya que el módulo de asistencia se necesitaba de urgencia para que

trabaje conjuntamente con un dispositivo electrónico”

2.1.1 Objetivos Generales

Principalmente presentar una estructura de cómo se deben procesar las

diferentes novedades que influyen en la remuneración, con respecto al

trabajador, y demás actividades que rodean la división de personal o

departamento de Recursos Humanos mediante el uso del Sistema que le

Page 20: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

20

permitan al usuario la manipulación de los datos dentro de los parámetros

establecidos para una institución pública.

2.1.2 Objetivos Específicos

➢ Creación de un Sistema que se ajuste a las necesidades del usuario

➢ Que sea Parametrizado de tal forma que se pueda ajustar a nuevas

demandas, como por ejemplo la creación de nuevos cargo, categorías

de cargos e incluso una sub. Categoría.

➢ Controlar las diferentes áreas o (módulos) presentes a través de un

sistema de Automatizado de acuerdo al flujo de la información.

➢ El manejo de herramientas que permitan el control acceso a los

diferentes módulos (aplicaciones).

➢ Reducir la carga de trabajo y el control de datos.

➢ Dar seguridad al usuario.

2.2 BENEFICIOS

➢ Permitir evaluar al personal vinculado con la Institución, o posibles

aspirantes a través de evaluaciones de conocimiento y la toma de

evaluaciones psicológicas (el resultado de esta evaluación debe ser

Page 21: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

21

Interpretado o Tabulado por un experto, recomendaciones por el dpto.

de estudio de la Facultad de Psicología de la Institución).

➢ Vincular al personal con cursos que permiten su desarrollo intelectual, y

generar un historial de los mismos, para poder medir el crecimiento del

trabajador y de tal forma revisar si estos conocimientos lo hacen

merecedor de un posible ascenso.

➢ Representar las gestiones de contrataciones, según lo establecido por

la ley de Instituciones públicas (Creación y distribución de partidas de

cualquier índole).

➢ Controlar los procesos de cálculos de rubros para los distintos ingresos

y egresos de cada trabajador.

➢ Actualización de sueldos en distintos niveles, es decir por Cargo, por

Unidades o por Partidas.

➢ Realizar cortes de rol por fechas establecidas y cambios en el pago de

las mismas.

➢ Proporcionar manejo de información solicitada por los trámites a través

de un control en la recepción de oficios.

Page 22: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

22

➢ Proporciona información sobre los detalles de salud para evaluar si el

puesto del trabajador (Administrativo ó Docente) va de acuerdo a sus

capacidades Físicas.

2.3 Alcance del Proyecto

El Sistema de Recursos Humanos tiene como alcance manejar los siguientes

puntos.

(Específicamente los Módulos de la Tesis).

➢ Controlar el flujo de los oficios y evitar el excesivo gasto que genera un

trámite en la División del Personal.

➢ Realizar una selección del personal a través de la toma de test de

manera automática para obtener los resultados de forma inmediata.

➢ Integrar el sistema para controlar que la información sea única y

confiable.

➢ Mantener información veraz sobre los cursos que permitan brindar una

excelente capacitación para el personal.

➢ Generar novedades de manera automática a través del sistema.

Page 23: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

23

➢ Mantenimiento de cargos (creación, actualización y eliminación)

dispuestos por las ley de entidades públicas.

➢ Dar un servicio social a través del Módulo de Salud Laboral que me

permita llevar un registro médico del personal y brindar ayuda de ser

necesaria.

➢ Controlar la creación de partidas, y una correcta distribución entre las

unidades y cargos que soliciten las mismas.

➢ Llevar un verdadero control sobre la creación de los Rubros que influyen

en los cargos y que soliciten las autoridades.

➢ Controlar otros tipos de novedades que se generan entre empleados y

organizaciones externas.

➢ Generar los Reportes con la información entendible y necesaria.

2.4 RECURSOS

2.4.1 Recurso Físico Actual

Page 24: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

24

IBM

Pentium IV

IBM

Pentium III

IBM

Pentium II

Disco duro 20GB

Disco duro 8GB Disco duro 4GB

Procesador

Pentium 1.6Mhz

Procesador

Pentium 300Mhz

Procesador

Pentium 120Mhz

Ram de 128 MB

Ram de 64 MB Ram de 32MB

Sistema Operativo

XP Profesional

Sistema Operativo

Windows 98

Sistema Operativo

Windows 98

2.4.2 Recurso Físico a Utilizar

Estos recursos son adquiridos por la Universidad para el nuevo Sistema.

Cliente

LENOVO

Pentium D

HP

Pentium D

Disco duro 120GB Disco duro 120GB

Procesador Procesador

Page 25: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

25

Servidor

Las características del Servidor todavía no han sido proporcionadas por el

Centro de Cómputo, pero podemos sugerir lo siguiente:

Características

Servidor

Procesador Pentium III o Superior

Memoria Ram de 512

Disco Duro de 40GB

Sistema Operativo para Servidor Windows

2000 o Windows 2003 Server

SQL 2000 Server Edición Estándar

2.5 ETAPA DE DESARROLLO

Etapa I:

Pentium 1.8Ghz Pentium 1.8Ghz

Ram de 1 GB Ram de 512MB

Sistema Operativo

XP Profesional

Sistema Operativo

XP Profesional

Page 26: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

26

Elaboración de Análisis, con el Objetivo principal de entender en que consisten

los procesos, para luego tabular esta información y convertirlas en lo que será

una Base de datos Robusta Estructurada y confiable.

Etapa II:

Basándonos en la información recopilada se plasman las necesidades en

diseños de pantalla, para hacer una presentación con el usuario, con la

finalidad de revisar si se Omitió algún requerimiento.

Etapa III:

Desarrollo del problema utilizando una forma parametrizada en el diseño de

procedimientos, vista y tablas de la base de datos, de esta manera se logra

trabajar con dos bases una que será común para los sistemas que se han

instalado actual en la Unidad.

Y la otra que se dedicará a satisfacer las necesidades del sistema de Recursos

Humanos y en gran parte al sistema de Contabilidad que se está desarrollando

en la actualidad.

Etapa IV:

Desarrollo del sistema utilizando parámetros adecuados, ya que esto se nos

sugirió debido al sistema particular de seguridad que poseen.

Etapa V:

Elaboración de los Reportes sugeridos.

Page 27: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

27

CAPITULO 3

“Recursos Humanos Segunda Etapa”

3.1 ESPECIFICACIONES FUNCIONALES

3.1.1 Módulo de Admisión

En el Módulo de Admisión se realizan todas las transacciones ligadas con el

empleado por contratarse o de planta, está dividido en tres sub. Módulos.

✓ Admisión

✓ Selección

✓ Capacitación

Admisión

Este sub.Módulo fue creado por el departamento de Cómputo de la Universidad

de Guayaquil y realiza las tareas básicas de registro de Datos del Personal

(Nombre, Apellido, Dirección, Información sobre su familia etc.).

Page 28: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

28

Selección

Este sub.Módulo lo pensamos con el afán de hacer más fácil la selección de

personal que se va a contratar para las diversas actividades, de esta manera

identificamos dos tipos grandes de Test, uno que va orientado al conocimiento

y otro sobre su perfil Psicológico; este sub.Módulo está compuesto por

pequeños programas o ventanas que aseguran el funcionamiento

parametrizado de este sub.Módulo así podríamos anotar entonces:

➢ Creación de Materia.- Está orientado al mantenimiento de materia es

decir crear, consultar, actualizar y eliminar.

➢ Creación de Preguntas.- Va ligado con la creación de la materia, se

podría decir que son como módulos hijos para materia.

➢ Mantenimiento de Test.- Está orientado a establecer un test, creando

un conjunto de preguntas y materias puede llevar puntuación individual o

darle un mismo valor al test en pregunta.

➢ Test Psicológico.- Este tipo de test difiere un poco del anterior, primero

un comité de la facultad de Psicología nos hizo la observación de que

siempre debe haber un Psicólogo para evaluar o determinar los

resultados.

Page 29: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

29

➢ Ejecución de los Test.- Para ello los aspirantes deben registrarse y

luego accederán a los test que el encargado les designe, para el caso de

las calificaciones el test de conocimiento va comparando las respuestas

con las opciones y genera automáticamente la puntuación que obtendrá,

esto se puede observar en un reporte, para el caso del Psicológico un

experto debe evaluar las pruebas.

Capacitación

En el Módulo de Capacitación, se controla información sobre los cursos que

ofrecen la misma Universidad u otras entidades, además de la información

sobre el curso también se podrá apreciar el desarrollo profesional que va

teniendo el trabajador durante su permanencia en la Universidad.

➢ Ingreso de Cursos.- Consiste en listar los posibles cursos a los que

asistirán los trabajadores, según sea su necesidad en su puesto o

simplemente desee hacer el curso voluntariamente, se especificará la

entidad que lo ofrece, el tipo de curso (seminario, taller, maestría, etc.) la

cantidad de hora que este demanda.

➢ Ingreso de Curso a Cada Empleado.- Consiste simplemente en

distribuir los cursos para los distintos trabajadores que asistieron y la

calificación que obtuvieron, estos cursos contribuyen al alza de nuestros

Page 30: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

30

ingresos, a través de un rubro que se denomina estímulo profesional

(esto dependerá por su puesto del tipo de curso que se ha realizado).

➢ Historial.- Se puede apreciar las distintas formas en que el empleado

ha crecido intelectualmente desde sus inicios en nuestro Institución.

3.1.2 Módulo de Recepción

En este Módulo el área de Recepción de oficio tiene la responsabilidad de

repartir los Oficios correspondiente a cada trámite o notificación que vienen

muchas veces de organizaciones externas a la institución para ello hemos

dispuesto un pequeño sistema de correo para manejar el problema de la

abundancia de papel y sobre todo tratar de disminuir el tiempo en el desarrollo

del tramite.

El usuario debe crear una cuenta a la que se dirigirán los oficios de una forma

privada, los mismos que tendrán que devolverlos hacia el otro destino si lo

hubiera, para esto se manejan estados en el oficio (tramitar, informe, proceso,

etc.).

Está compuesto por un módulo principal de administración de estos oficios

controlados por Recepción y las tareas de usuarios y cuenta manejado por el

resto del personal.

Page 31: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

31

➢ Creación de Cuenta.- Le permite crear las cuentas de usuario para que

pueda recibir o enviar oficios dentro de la división de personal.

➢ Correo.- Permite ver los mensajes “Oficios”, para ponerme al tanto del

trabajo o tareas que debo realizar, se consultan tanto como archivos

actuales o anteriores.

➢ Distribuir Oficios.- El usuario de Recepción lo utiliza para generar este

envío de oficios a través de un scanner, digitaliza el oficio y este es

enviado de esta manera a los distintos usuarios que lo solicitan.

➢ Seguimiento de Trámite.- El usuario puede acercarse a Recepción

para verificar en que situación se encuentra su solicitud.

➢ Consulta de Oficios.- Permite verificar o constatar trámites anteriores y

sus oficios correspondientes.

3.1.3 Salud Laboral

El Módulo de Salud Laboral tiene como tarea hacer un seguimiento hacia los

diversos contratiempo de salud que presenta el personal, de esta forma puedo

tomar decisiones de si debe o no trabajar en esas condiciones con tales

causas, en fin realmente no buscamos profundizar mucho en este aspecto

porque no es ningún sistema hospitalario o clínico.

Page 32: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

32

➢ Creación de Ficha.- Con la creación de ficha podemos llevar un registro

médico del personal de la Universidad de Guayaquil, con el cual se

pretende realizar un seguimiento sobre el estado de salud y hacer

cumplir las sugerencias médicas del caso.

➢ Consultas Médicas.- Se registran las distintas actividades que se

generan por los inconvenientes de salud que presentan los empleados.

➢ Opciones.- Se parametrizan los síntomas creando un listado de ellos

para poderlos utilizarlos en distintos casos.

3.1.4 Control

El Módulo de Control es el más fuerte ya que controla las actividades

principales que permite que se genere el Rol correspondiente a cada

dependencia, para ello se ha integrado un Módulo denominado presupuesto en

el cual se realizan las siguientes tareas.

➢ Creación y Mantenimiento de Cargo

Se genera un listado de los cargos presupuestado por el estado.

➢ Mantenimiento de Sueldo

En esta parte se tiende a dar un proceso de aumento o actualización del

sueldo, a través de factores definidos por el usuario o simplemente se dan

Page 33: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

33

incrementos dispuestos por la Ley, además se registra un historial de las

actualizaciones de los sueldos para generar reportes y poder apreciar los

incrementos.

➢ Clasificador

Permite generar a través de una forma parametrizada las denominadas

partidas, para nuestro caso solo las de egresos.

Una partida está compuesta por una cadena numérica que detallaremos a

continuación.

La parte principal se denomina gasto y consta de 12 caracteres, a raíz de esta

cadena se van añadiendo una parte denominada grupo que ocupará una

posición especifica, a continuación se añadirá los dígitos de sub. Grupo, de

igual forma tiene una extensión y posición especifica y por último se agrega el

denominado Ítem que de igual forma ocupara su lugar y posición definida con

anterioridad, en el sistema se puede cambiar estas posiciones y dimensiones

con ingresar a la opción de propiedades del clasificador.

Gasto : “GASTOS CORRIENTES” 500000.000.5

Grupo :” GASTOS EN PERSONAL” 510000.000.5

Subgrupo: “REMUNERACIONES BÁSICAS” 510100.000.5

Ítem: “SUELDOS” 510101.000.5

Page 34: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

34

➢ Distribución de Partidas

En este Módulo se reparten las partidas según la necesidad de cada

departamento, están categorizadas en tres grupos.

Administrativo – Docente y uno especial para los Institutos de

Investigaciones todo esto a nivel de presupuestos permitido por el gobierno o

para carreras Autofinanciadas.

➢ Creación de Rubro

En la Creación de Rubro tenemos un formulario que me permite distribuir ya

sea en fórmula o un valor, el líquido a cobrar por actividad a cada empleado.

Este Módulo se encuentra parametrizado por cada cargo independiente del

departamento, como el sistema trabaja integradamente y una de las novedades

se dan de manera automática el resto se lleva a cargo a través de las tareas,

otros ingresos se pagan como valores pendientes.

➢ Vacaciones

Lleva un control sobre la disponibilidad de tiempo que se acumula por las

vacaciones, llega a un límite de 90 días dependiendo del tipo de personal

estos días se consideran calendarios o laborales, a demás se toma en cuenta

que estos días se pueden devengar sea o no temporada de las vacaciones del

empleado, también se debe controlar los días faltas del empleado los puede

desviar hacia sus vacaciones para evitar las sanciones por falta.

➢ Descuento

Page 35: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

35

Provienen de distintas actividades que desarrolla el trabajador, se da de

manera individual y por lo general se utiliza información provenientes de

organismos externos como cooperativas, IESS, tribunal de menores, etc.

➢ Gremios

Vinculación de trabajador con grupos laborales que se generan y la cual se

afilian y esto conlleva a movimientos en sus Roles.

➢ Suspensión de Sueldos

Sanción que se da al trabajador por ciertos motivos lo que hará que no se le

pague hasta solucionar su situación.

➢ Liquidación

Pago de contratos que no se dan por Rol o algunos Rubros faltantes en los

Roles anteriores.

3.5 DICCIONARIO DE ESTRUCTURAS DE LA BASE DE DATOS

El diccionario de estructuras de la “Migración, Optimización y Mejoramiento de

los Módulos de Admisión, Formación, Control de Asistencia, Salud Laboral y

Análisis Estadístico del Sistema Actual de Administración Central y Ambiente

Consola (FOX PRO para DOS) al ambiente (Visual Basic 6.0 y SQL), Recursos

Humanos Segunda Etapa”, está constituido por unas series de tablas, cuyas

Page 36: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

36

descripciones, su estructura y la definición de la misma se muestran a

continuación.

RESEÑA:

El sistema de Recursos Humanos de la Universidad de Guayaquil consta de

dos partes, la primera realizada por el departamento de Computo de la Unidad

(Admisión, Legal o Contratos, Seguridades y Control de Asistencia) esta

información la vamos a mencionar de manera general ya que nosotros

interactuamos con esta información y la segunda parte se da por medio de la

tesis (Recepción, Selección, Capacitación, Salud Laboral, Presupuesto y

Control).

DIAGRAMA DE ADMISION (VER ANEXO A)

Básicamente en el siguiente conjunto de tablas relacionadas se guarda la

Información sobre la situación de estabilidad laboral del trabajador si está por

contrato, nombramiento o a su vez por Partida Propia o Autofinanciada, etc.

DIAGRAMA DE CONTRATO (VER ANEXO A)

Consiste en información detallada sobre la permanencia del trabajador en la

institución así se genera un historial de la situación laboral y se mantiene un

apoyo reglamentado de la contratación de una persona en distintas índoles de

partidas, cargos, unidades (Administrativas o Facultades).

Page 37: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

37

DIAGRAMA CONTROL DE ASISTENCIA (VER ANEXO A)

Se registra el ingreso del personal a la Institución para verificar si cumple o no

el horario establecido en su contrato y de esta forma se va generando

novedades como horas extras, atrasos, faltas justificadas e injustificadas,

permisos, etc. que tiene retribuciones negativo o positivo al momento de

generar el Rol.

DIAGRAMA DATOS PERSONAL (VER ANEXO A)

Se registran el ingreso o actualizan datos del personal que labora en la

institución, esta información va desde los papeles necesarios que debe

presentar para ingresar a la institución incluyendo sus datos generales

(nombres, cédula, dirección, etc.) hasta información relacionada con su familia

sus estudios etc.

DIAGRAMA CONTROL DE USUARIOS (VER ANEXO A)

Son parámetro que me permiten controlar el ingreso de los diferentes usuarios,

en los distintos módulos a través de la tabla TB_AUDITORIA, también

podemos encontrar otras funciones destinadas para el funcionamiento del

Sistema como la Fecha, rango de datos entre otros.

Page 38: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

38

DIAGRAMA DE POSESION (VER ANEXO A)

Es una forma de llevar el control sobre la estabilidad laboral del empleado en

donde se indica claramente las condiciones sobre las cuales el está laborando.

DIAGRAMA DE CARGO (VER ANEXO A)

TB_CATEGORIA_CARGO

Es una descripción sobre el tipo de cargo (Administrativo, Docente, Servicios u

Otros).

Estructura de la Tabla

Corrida de Tabla

Page 39: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

39

TB_CARGO

Es un listado general de cargos existentes en la Universidad de Guayaquil,

dispuestos por la Ley de Organizaciones Públicas.

Estructura de la Tabla

Corrida de Tabla

TB_CATEGORIA_DCTE

Contiene sub. Clasificación del cargo, actualmente se lo usa para los cargos de

docentes, pero se lo puede utilizar para las otras denominaciones de cargo.

Estructura de la Tabla

Page 40: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

40

Corrida de Tabla

TB_CFR.

Se encuentra vinculados los cargos con las distintas Funciones y Requisitos.

Estructura de la tabla

TB_FUNREQ

En esta Tabla se guarda todas las Funciones y Requisitos creados por el

usuario, los cuales serán designados por cada cargo.

Estructura de la Tabla

Page 41: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

41

Corrida de la Tabla

NOMBRE_ESCALA

En esta Tabla se guarda la definición de Sueldos Presupuestados.

Estructura de la Tabla

Corrida de la Tabla

VALOR_ESCALA

Se guarda la cantidad de sueldo básico que representa esta escala.

Page 42: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

42

Estructura de la Tabla

Corrida de la Tabla

TB_TABLA_SLDO

Es la tabla donde se almacena los valores que se utilizan para los cargos

Autofinanciados.

Estructura de la Tabla

Page 43: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

43

TB_CONDICION_ACTI

Es la relación entre los valores de la tabla sueldo y las actividades.

Estructura de la Tabla

Corrida de la Tabla

Page 44: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

44

TB_ACTIVIDAD_SLDO

Son las condiciones que se utilizan en la creación de valores para la tabla de

sueldos Autofinanciado.

Estructura de la Tabla

Corrida de la Tabla

DIAGRAMA DE BASE DE DATOS (VER ANEXO A)

TB_ENTREVISTADO

Se ingresan los datos esenciales de los aspirantes a cargos dentro de la

Universidad, que permitirán localizarlo en caso de ser seleccionado.

Page 45: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

45

Estructura de la Tabla

Corrida de Tabla

TB_ENTREVISTADO_RESPUESTA

La información generada del test se almacena en esta tabla, indicando el test al

que tuvo acceso y la puntuación en el mismo si es de conocimiento, por que si

es el psicológico necesitará la interpretación de un profesional en el área.

Estructura de la Tabla

Page 46: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

46

TB_MATERIA_TEST

Esta tabla contiene la relación que se da al crear un Test de Conocimiento.

Estructura de la Tabla

Corrida de Tabla

TB_MATERIA

Descripción de todas las materias que pertenecerán al test mediante las

preguntas generadas sobre la misma.

Estructura de la Tabla

Page 47: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

47

Corrida de Tabla

TB_PREGUNTA

Detalla o contenido de la pregunta, sus posibles opciones de contestación y su

respuesta verdadera.

Estructura de la Tabla

Corrida de Tabla

Page 48: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

48

TB_TEST

Contiene la cabecera y los datos generales del Test.

Estructura de la Tabla

Corrida de Tabla

TB_ORIENTACION

Tiene como contenido el tipo de personal al que va dirigido el Test.

Estructura de la Tabla

Page 49: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

49

Corrida de Tabla

TB_PREGUNTA_PSICO

Contiene las preguntas psicológicas que se formularon para el test puede ser

de tipo estándar o Múltiple, básicamente dependerá del Autor.

Estructura de la Tabla

Corrida de Tabla

Page 50: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

50

TB_ESTANDAR_PS

Contiene las opciones estándar de los Test psicológico.

Estructura de la Tabla

Corrida de Tabla

TB_MULTIPLES_PS

Contiene las opciones Múltiples de los Test psicológico.

Estructura de la Tabla

Page 51: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

51

Corrida de Tabla

TB_OPCIONES_PREGTA

Contiene las opciones o las alternativas de respuestas de tipo múltiples.

Estructura de la Tabla

Corrida de la Tabla

Page 52: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

52

DIAGRAMA DE CAPACITACION (VER ANEXO A)

TB_CURSOS_PERSONAS

Se liga la información entre los trabajadores y los cursos que existen.

Estructura de la Tabla

Corrida de Tabla

Page 53: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

53

TB_CURSO_CARGO

Tabla relación entre los datos correspondiente a Cursos y a TB_CARGO

Estructura de la Tabla

Corrida de Tabla

TB_CURSO_ENTIDAD

Tabla relación entre los datos correspondiente a Cursos y a una entidad

Estructura de la Tabla

Page 54: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

54

Corrida de Tabla

TB_CURSOS

Contiene información sobre los cursos que se ofrecen a los trabajadores.

Estructura de la Tabla

Corrida de Tabla

TB_CURSO_TITULO

Relación entre las tablas cursos y títulos, se crea cada vez que se crea un

curso.

Page 55: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

55

Estructura de la Tabla

Corrida de Tabla

TB_TITULOS

Diferentes nombres o asignaciones para los cursos.

Estructura de la Tabla

Corrida de Tabla

Page 56: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

56

TB_HORASCLASE

Determina las diferentes horas para el curso.

Estructura de la Tabla

Corrida de Tabla

TB_HC Es una tabla relacionar entre los cursos capacitación y los horarios.

Page 57: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

57

Estructura de la tabla

Corrida de datos de la Tabla

TB_PC

Es la tabla relacional entre los cursos de capacitación y los distintos periodos.

Estructura de la Tabla

Page 58: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

58

Corrida de Tabla

TB_PERIODOS

Se guarda la descripción del periodo del curso a realizar.

Estructura de la Tabla

Corrida de Tabla

Page 59: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

59

CONDICION_CREADA

Son excepciones que se dan en distintos rubros, ya sea de ingresos o egresos

e incluso que distinga del tipo del personal.

Estructura de la Tabla

Corrida de la Tabla

TB_OTROS_RUBRO

Estructura de la Tabla

Page 60: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

60

TB_ESTANDAR_RENTA

Es un histórico de la renta que se ha cobrado basado en las especificaciones

del centro de computo.

Estructura de la Tabla

Corrida de la Tabla

Page 61: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

61

TB_FORMULA

Donde se almacena las fórmulas de los distintos rubros.

Estructura de la Tabla

Corrida de la Tabla

RUBRO_ACTIVO

Una tabla que maneja el histórico de todos los rubros al igual que la tabla

listado rubro, pero con la diferencia que este maneja puros índices y además

permite relación con múltiples tablas.

Estructura de la Tabla

Page 62: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

62

Corrida de la Tabla

TB_GSI

Contiene las cédulas presupuestarias (para nuestra utilización solo la de

gasto).

Estructura de la Tabla

Corrida de la Tabla

Page 63: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

63

TB_RUBRO_CARGO

Almacena la relación que existen entre los rubros que son aplicables

únicamente a ciertos cargos.

Estructura de la Tabla

Corrida de la Tabla

TB_LISTADO_RUBRO

Almacena información general de los rubros que existen tanto de ingreso como

egreso.

Estructura de la Tabla

Page 64: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

64

ORIGEN_RUBRO

Es una tabla estática que me permite clasificar la creación de los rubros en

distintos submódulos del sistema.

Estructura de la Tabla

Corrida de la Tabla

TB_TIPORUBRO

Es una tabla que contiene valores estáticos para las creaciones de los

procesos.

Estructura de la Tabla

Page 65: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

65

Corrida de la Tabla

TB_PARAMETRO_RUBRO

Almacenan información sobre valores que no son rubros pero que se utilizan

para el cálculo de los mismos pueden ser de distintos tipos, constante,

condicionados, consultas (ya que interactua con la tabla Query).

Estructura de la Tabla

Corrida de la Tabla

QUERYS_TABLAS

Almacena ciertas consultas de la tabla parámetro.

Page 66: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

66

Estructura de la Tabla

Corrida de la Tabla

DIAGRAMA DE PARTIDAS (VER ANEXO A)

TB_PARAMETROS_PARTIDA

Valores constantes que se utilizan en la creación de las cédulas

presupuestadas conocidas como: Gastos, Grupo, Subgrupo e Items.

Estructura de la Tabla

Page 67: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

67

Corrida de Tabla

TB_TIPO_PARTIDA

El estándar con que se maneja los egresos del presupuesto, se pueden incluir

tambien los estándar para crear los ingresos pero esto no es objeto de nuestro

estudio.

Estructura de la Tabla

Corrida de Tabla

Page 68: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

68

TB_PARTI_CARGO

Almacena los datos de la distribución de las partidas de las distintas unidades.

Estructura de la Tabla

Corrida de Tabla

TB_H_S_P_C

Esta tabla fue diseñada para contener el historial en el incremento del sueldo

por partida.

Page 69: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

69

Estructura de la Tabla

Corrida de Tabla

TB_TIPO_FINANCIAMIENTO

Me indica de qué manera se obtiene el dinero para generar las partidas.

Estructura de la Tabla

Page 70: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

70

Corrida de Tabla

TB_PARTIDA

Esta tabla contiene la información de las partidas que están distribuidas en

distintas unidades y por distintos destino.

Estructura de la Tabla

TB_DESTINATARIO

Esta tabla tiene el contenido del destino al que se va a orientar la partida que

se va a crear.

Estructura de la Tabla

Page 71: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

71

Corrida de Tabla

TB_GSI

Esta tabla contiene las partidas de Grupo, sub.-grupo e Ítem

Estructura de la Tabla

Page 72: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

72

Corrida de Tabla

DIAGRAMA DE RECEPCION (VER ANEXO A)

TB_PREGUNTA_CORREO

Contiene la pregunta secreta para recuperar la contraseña de mi usuario.

Estructura de la Tabla

Corrida de Tabla

Page 73: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

73

TB_CUENTA

Contiene el registro de todos los usuarios que acceden al correo de oficios

Estructura de la Tabla

Corrida de Tabla

TB_INGRESO_OFICIO

Se almacenará la información básica correspondiente a los oficios ingresados,

ya que los usuarios podrán ver el mismo accedieron a el a través de su correo.

Page 74: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

74

Estructura de la Tabla

Corrida de Tabla

TB_OFICIO_CORREO

Podemos encontrar información sobre los oficios relacionados con ciertos

usuarios y Temas revisado en Materias.

Estructura de la Tabla

Page 75: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

75

Corrida de Tabla

TB_IMAGEN_OFICIO

Esta tabla permite guardar los oficios.

Estructura de la Tabla

Corrida de Tabla

TB_INVOL_OFICIO

Page 76: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

76

Es una tabla que almacena la relación entre un oficio y las personas

involucradas con el mismo (interesado con algun tramite).

Estructura de la Tabla

Corrida de Tabla

TB_ESTADO_OFICIO

Almacena los distintos estados en que se puede encontrar un trámite.

Estructura de la Tabla

Corrida de Tabla

Page 77: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

77

TMP_INVOL_DESTINO

Se almacena los distintos puntos sobre los oficios circulados.

Estructura de la Tabla

Corrida de Tabla

TITULO_PERSONAL

Permite generar índices secuenciales basados en años y mes para los oficios

que no poseen numeración.

Estructura de la Tabla

Page 78: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

78

Corrida de Tabla

TB_FICHAM

Esta tabla crea las fichas del personal.

Estructura de la Tabla

Corrida de Tabla

Page 79: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

79

TB_CONSULTAS

Permite consultar las fichas de los pacientes.

Estructura de la Tabla

Corrida de Tabla

EMPLEADO_OI

Se registran las novedades de otros ingresos de cada empleado a través del

uso del índice para cada rubro.

Estructura de la Tabla

Page 80: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

80

Corrida de la Tabla

EMPLEADO_SUBROGADO

Almacena la información de las novedades de subrogación, incluyendo los

valores por la novedad (diferencia de sueldos, diferencias de tres R).

Estructura de la Tabla

Corrida de la Tabla

TB_NOVED_ASIST

Page 81: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

81

Detalla el almacen de asistencia de cada trabajador mediante el cual se puede

descontar los atrasos y controlar las horas extras.

Estructura de la Tabla

Corrida de la Tabla

TIPO_SUBRROGA

Almacena información estática que permiten definir un periodo de subrogación.

Estructura de la Tabla

Page 82: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

82

Corrida de la Tabla

DESCUENTO_PERSONAL

Almacena información sobre todos los descuentos a los gremios los que tienen

acceso los trabajadores en las distintas quincenas.

Estructura de la Tabla

Corrida de la Tabla

Page 83: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

83

EMPLEADO_LICENCIA

Almacena información por permiso de licencia sin sueldo por los que se pueden

otorgar a los trabajadores.

Estructura de la Tabla

Corrida de la Tabla

EMPLEADO_ADSCRITO

Almacena información sobre los docentes que laboran en una unidad como

adscrito a su nombramiento original.

Estructura de la Tabla

Page 84: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

84

TB_LISUS

Estructura de la Tabla

Corrida de la Tabla

Page 85: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

85

TB_PTMO

Es una estructura general en donde se crean los distintos tipos por préstamos

que otorga la entidad y son descontados a manera de anticipo.

Estructura de la Tabla

Corrida de la Tabla

TB_GREMIO

Se almacena información sobre los gremios existentes.

Estructura de la Tabla

Page 86: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

86

Corrida de la Tabla

TB_PP

Es un listado general de todas las personas que trabajan en la Unidad a través

de partidas presupuestadas sobre la cual se definirán el préstamo por anticipo

que posee.

Estructura de la Tabla

Page 87: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

87

Corrida de la Tabla

TB_PTMO_DETALLE

Es el cuerpo mismo del préstamo por anticipo, contiene información sobre los

valores, intereses y fechas de cobro.

Estructura de la Tabla

Corrida de la Tabla

Page 88: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

88

NOVEDAD_R

Son las columnas de los gremios que se descuenta y además utilizan como

rubros de egresos.

Esctructura de la Tabla

Corrida de la Tabla

TB_CABECERA_DSCTO

Page 89: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

89

Son las etiquetas de las columnas que aparecen en el descuento por cada

gremio en distintas quincena.

Estructura de la Tabla

Carrida da la Tabla

TB_DSCTO_GREMIO

Son las columnas de los descuentos, pero a nivel de índices a demás se

especifican si es principal o no.

Estructura de la Tabla

Page 90: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

90

Corrida de la Tabla

DIAGRAMA DE PROCESOS DE ROL (VER ANEXO A)

TB_ANUAL

Almacena información histórica sobre el porcentaje de antigüedad cada vez

que se ejecutan los procesos principales (PQA y SQD).

Estructura de la Tabla

Page 91: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

91

Carrida de la Tabla

PQA

Primera quincena de administrativos se registran todos los ingresos, egresos y

totales del cálculo de la primera quincena.

Estructura de la Tabla

Page 92: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

92

SQD

Segunda quincena docente, guarda los valores de ingreso, egresos y

totales de los pagos a docentes.

Estructura de la Tabla

Corrida de la Tabla

RUB_CC

Es una tabla relacional entre los procesos y los rubros existentes.

Estructura de la Tabla

Page 93: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

93

Corrida de la Tabla

TB_PROCESOS

Almacena información general sobre los distintos procesos de pagos para el

personal de la unidad.

Estructura de la Tabla

Corrida de la Tabla

TIEMPO_PROCESO

Almacena la información sobre el tiempo de pago de todo proceso.

Page 94: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

94

Estructura de la Tabla

Corrida de la Tabla

Revisaremos las funciones por cada módulo:

Ingreso al Sistema:

Para Ingresar al contenedor principal de opciones del Sistema se debe pasar

por un pequeño módulo de conexión que verifica que el usuario que intenta

acceder es válido así tenemos el detalle del proceso a través de las funciones

que lo compone.

Page 95: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

95

Los siguientes procedimientos sirven para realizar un ajuste en la presentación

de las pantallas iniciales, reciben como parámetro el Formulario con el que se

va a trabajar (Se encuentran localizadas en MdlResolucion).

Entrada: objeto (Formulario)

Proceso: Acomodar los elementos del formulario.

Salida: Presentación del formulario.

Public Sub Centrar(Optional F As Form) If IsMissing(F) Then Set F = Screen.ActiveForm Ajustar F F.Move (Screen.Width - F.Width) / 2, (Screen.Height - F.Height) / 2 End Sub Public Sub Ajustar(F As Form) FactorX = Pantalla.Ancho * Screen.TwipsPerPixelX / Screen.Width FactorY = Pantalla.Alto * Screen.TwipsPerPixelY / Screen.Height If (FactorX = 1 And FactorY = 1) Or F.Ajustado Then Exit Sub F.Visible = False Dim C As Object If F.WindowState = vbNormal Then AjusteNormal F End If For Each C In F.Controls On Error GoTo Sig Select Case LCase(TypeName(C.Container)) Case LCase(F.Name) Select Case LCase(TypeName(C)) Case "label" AjusteNormal C C.AutoSize = C.AutoSize Case "line" C.X1 = C.X1 / FactorX C.X2 = C.X2 / FactorX C.Y1 = C.Y1 / FactorY

Page 96: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

96

C.Y2 = C.Y2 / FactorY Case "picturebox" AjusteNormal C 'C.Align = C.Align Case "shape" AjusteNormal C 'No se ha detectado nada Case "textbox" AjusteNormal C 'No se ha detectado nada excepto la escalabilidad de la fuente Case Else 'Shape AjusteNormal C End Select Case "sstab" Dim T As Integer T = C.Container.Tab C.Container.Tab = 0 Do If Left$(Str(C.Left), 1) = "-" Then C.Container.Tab = C.Container.Tab + 1 Else Exit Do End If Loop AjusteNormal C C.Container.Tab = T Case Else AjusteNormal C End Select Sig: Next F.Ajustado = True F.Visible = True End Sub Public Sub Ajustar(F As Form) FactorX = Pantalla.Ancho * Screen.TwipsPerPixelX / Screen.Width FactorY = Pantalla.Alto * Screen.TwipsPerPixelY / Screen.Height If (FactorX = 1 And FactorY = 1) Or F.Ajustado Then Exit Sub F.Visible = False Dim C As Object If F.WindowState = vbNormal Then

Page 97: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

97

AjusteNormal F End If For Each C In F.Controls On Error GoTo Sig Select Case LCase(TypeName(C.Container)) Case LCase(F.Name) Select Case LCase(TypeName(C)) Case "label" AjusteNormal C C.AutoSize = C.AutoSize Case "line" C.X1 = C.X1 / FactorX C.X2 = C.X2 / FactorX C.Y1 = C.Y1 / FactorY C.Y2 = C.Y2 / FactorY Case "picturebox" AjusteNormal C 'C.Align = C.Align Case "shape" AjusteNormal C 'No se ha detectado nada Case "textbox" AjusteNormal C 'No se ha detectado nada excepto la escalabilidad de la fuente Case Else 'Shape AjusteNormal C End Select Case "sstab" Dim T As Integer T = C.Container.Tab C.Container.Tab = 0 Do If Left$(Str(C.Left), 1) = "-" Then C.Container.Tab = C.Container.Tab + 1 Else Exit Do End If Loop AjusteNormal C C.Container.Tab = T Case Else AjusteNormal C End Select

Page 98: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

98

Sig: Next F.Ajustado = True F.Visible = True End Sub Private Sub AjusteNormal(C2 As Object) On Error Resume Next C2.Font.Size = C2.FontSize / FactorX C2.Height = C2.Height / FactorY C2.Width = C2.Width / FactorX C2.Left = C2.Left / FactorX C2.Top = C2.Top / FactorY End Sub Luego de todos los acomodos comienza la tarea de censo, mediante la cual

verifica la conexión con el servidor y los datos del usuario los cuales se

descargan localmente a una base datos de Access llamada

CONFIGURACION, esto se realiza de manera Inicial con cada acceso al

Sistema.

Public Sub GP_Coneccion_Access() On Error GoTo MENSAJE_ACCESS If GcnxAccess.State = 1 Then GcnxAccess.Close End If GVQuery = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & "C:\RHumano\DATOS\BdConfiguracion.mdb;id=Usuario;password=Contraseña" GcnxAccess.Open GVQuery Exit Sub MENSAJE_ACCESS: MsgBox Err.Description, vbCritical, "Alerta!" End Sub Cuando realizamos Clic en el botón Aceptar para confirmar que hemos

Ingresados los datos requeridos se activa la siguiente función Booleana

Page 99: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

99

Entrada: Valor Bolean Falso

Proceso: Verifica el llenado de los requerimientos

Salida: Valor Bolean Falso o Verdadero según el proceso

Function FBF_Verifica_Campos() As Boolean If Me.TxtUsuario = "" Then MsgBox "Por favor, Ingrese Nombre de Usuario.", , "Alerta!" FBF_Verifica_Campos = False Me.TxtUsuario.SetFocus Exit Function End If If Me.TxtContraseña = "" Then MsgBox "Por favor, Ingrese la Contraseña de Usuario.", , "Alerta!" FBF_Verifica_Campos = False Me.TxtContraseña.SetFocus Exit Function End If FBF_Verifica_Campos = True End Function

En la revisión de los datos encontramos esta function que permite verificar la

contraseña ingresada por el usuario.

Entrada: Contraseña

Proceso: llamar a una Función para desencriptar la clave ingresada y validar si

es correcta.

Salida: si la clave es correcta un arroja un acceso al contenedor de opcines,

caso contrario arroja un mensaje de error.

Function GSF_Encriptar(PVClave As String) As String Dim PNContador As Integer Dim PVEncriptado As String On Error GoTo L_ERROR PVClave = Trim(PVClave) PVEncriptado = ""

Page 100: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

100

PNContador = 1 While PNContador <= Len(PVClave) PVEncriptado = PVEncriptado & GP_Llena_Caracteres(Mid(PVClave, PNContador, 1), "E") PNContador = PNContador + 1 Wend GSF_Encriptar = PVEncriptado Exit Function L_ERROR: XYER = MsgBox("Error " & Err & ": " & Error, vbCritical + vbOKOnly, "Visual Basic") XNSQL_ERR = 1 Exit Function End Function Entrada: Carácter y tipo de carácter que contiene la contraseña

Proceso: Formar una cadena desencriptada con cada carácter recibido

Salida: cadena desencriptada.

Function GP_Llena_Caracteres(PVCaracter As String, PVTipo As String) As String Dim PVACaracter() As Variant Dim PVASimbolo() As Variant PVACaracter = Array("0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", _ "f", "g", "h", "i", "j", "k", "l", "m", "n", "ñ", "o", "p", "q", "r", "s", _ "t", "u", "v", "w", "x", "y", "z", "A", "B", "C", "D", "E", "F", "G", "H", _ "I", "J", "K", "L", "M", "N", "Ñ", "O", "P", "Q", "R", "S", "T", "U", "V", _ "W", "X", "Y", "Z") PVASimbolo = Array("°", "!", ">", "^", "~", "*", "<", ")", "?", "w", "£", "±", "+", "-", "|", _ "¤", "¢", "¥", "¡", "¦", "¨", "®", "©", "´", "µ", "¶", "·", "Î", "Ø", "Þ", _ "ß", "â", "ç", "ê", "ã", "å", "ä", "è", "ë", "ð", "õ", "÷", "1", "2", "3", _ "0", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f", "g", "h", _ "j", "k", "m", "p") For PNContador = 0 To 63 If PVTipo = "E" Then If PVCaracter = PVACaracter(PNContador) Then GP_Llena_Caracteres = PVASimbolo(PNContador)

Page 101: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

101

Exit For End If Else If PVCaracter = PVASimbolo(PNContador) Then GP_Llena_Caracteres = PVACaracter(PNContador) Exit For End If End If Next End Function

Si los requerimientos Ingresados son correctos se revisa que la selección del

servidor con el que deseamos conectarnos es correcto para esto se ejecuta la

siguiente Función:

Entrada: Servidor, Usuario, Contraseña, Base

Proceso: Verifica Existencia y Validez de los datos ingresados en la

configuración, para realizar la apertura de la conexión mediante un objeto

ODBC de Tipo SQL.

Salida: El estado de la Conexión que era validado por el siguiente proceso y/o

función.

Public Function GF_Coneccion_SqlServer(PFVSource As String, PFVUser As String, PFVPassword As String, PFVBaseDatos As String) 'Si la conexión está abierta entonces la cierro On Error GoTo mensaje If GcnxConeccion.State = 1 Then GcnxConeccion.Close End If GVQuery = "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=" & PFVUser & ";PassWord=" & PFVPassword & ";Data Source=" & PFVSource 'Abrir la conexión GcnxConeccion.Open GVQuery GcnxConeccion.DefaultDatabase = PFVBaseDatos

Page 102: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

102

GF_Coneccion_SqlServer = 3 Exit Function mensaje: MsgBox Err.Description, vbCritical, "Alerta!" GP_Coneccion_SqlServer = 0 End Function Esta función es la que interactúa siempre entre los requerimientos del sistema

y los valores contenidos en la base, recibe de entrada una consulta a manera

de Querys y retorna los valores generados por la consulta.

Para el inicio del sistema recibe los datos del usuario que interactúa con el

sistema para de tal forma asignarle permisos sobre las funcionalidades del

sistema (botones, combos, viñetas, etc).

Function GrdsF_Recupera_Datos(PFSSql As String) As ADODB.Recordset Dim PFrdsTmp As New ADODB.Recordset PFrdsTmp.CursorLocation = adUseClient PFrdsTmp.Open Trim(PFSSql), GcnxConeccion, adOpenKeyset, adLockOptimistic, adCmdText Set GrdsF_Recupera_Datos = PFrdsTmp End Function

Antes de realizar el ingreso Total al sistema se realiza un registro del usuario

que está acensando para realizar Auditorias.

Sub GP_Manipula_Datos(PFSSql As String, PFSAuditoria As String) If PFSSql <> "" Then GcnxConeccion.Execute PFSSql End If If PFSAuditoria <> "" Then GcnxConeccion.Execute PFSAuditoria End If End Sub

Page 103: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

103

Módulos y Procedimientos Globales

Para extraer Información de las Facultades existentes

Entrada: Formulario que requiere la Información

Proceso: Interactúa con SQL, ejecuta la Vista VS_ADMIN_ACADEM

Salida: Mostrar información de las Unidades.

Sub GP_RolFacultad(PFrmForma As Form) Dim rs1 As New ADODB.Recordset Load FrmDependencia If PFrmForma.FVTipo = "G" Then GVQuery = "SELECT CODIGO, ISNULL(COD_DEPEND_OTROS, ' ') COD_DEPEND_OTROS, ISNULL(CARRERA, ' ') [AREA/SECCION/OTROS], ISNULL(ESCUELA, ' ') DIVISION, UNID_ADMIN_ACADEM DEPARTAMENTO " GVQuery = GVQuery & "FROM BdAlmacenDatos..VS_UNIDAD_ADMINISTRATIVA " GVQuery = GVQuery & "WHERE COD_UNIVERSIDAD = '01' " GVrtNombreCampo = Array("SECUENCIA", "CODIGO", "AREA/SECCION/OTROS", "DIVISION", "DEPARTAMENTO") FrmDependencia.Campo_Filtro = "AREA/SECCION/OTROS" Else GVQuery = "SELECT CODIGO, DEP_CARRERA, CARRERA, ESCUELA, UNID_ADMIN_ACADEM " GVQuery = GVQuery & "FROM BdAlmacenDatos..VS_UNIDAD_ACADEMICA " GVQuery = GVQuery & "WHERE COD_UNIVERSIDAD = '01' " GVrtNombreCampo = Array("SECUENCIA", "CODIGO", "CARRERA", "ESCUELA", "FACULTAD") FrmDependencia.Campo_Filtro = "CARRERA" End If 'GVQuery = GVQuery & GFV_Add_Perfil FrmDependencia.FVTipo = PFrmForma.FVTipo GVrtAnchoCampo = Array("0", "1100", "4000", "4000", "4000") Set rs1 = GrdsF_Recupera_Datos(GVQuery) GP_Cargar_Msfgrid True, FrmDependencia.MFGHelp, GVrtNombreCampo, GVrtAnchoCampo, 5, rs1

Page 104: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

104

FrmDependencia.MFGHelp.Col = 1 FrmDependencia.MFGHelp.Sort = 5 Set FrmDependencia.RS = rs1 FrmDependencia.OptOtrosCar = True FrmDependencia.Caption = "Dependencia." FrmDependencia.Show 1 If Not FrmDependencia.Cancelar Then If FrmDependencia.MFGHelp.Row > 0 Then 'validacion de los option If FrmDependencia.OptUndad Then PFrmForma.COD_UNIDAD = FrmDependencia.MFGHelp.TextMatrix(FrmDependencia.MFGHelp.Row, 0) PFrmForma.NOM_UNIDAD = FrmDependencia.TxtDescripcion ElseIf FrmDependencia.OptDptoEsc Then PFrmForma.COD_UNIDAD = FrmDependencia.MFGHelp.TextMatrix(FrmDependencia.MFGHelp.Row, 0) PFrmForma.NOM_UNIDAD = FrmDependencia.TxtDescripcion & " - " & FrmDependencia.MFGHelp.TextMatrix(FrmDependencia.MFGHelp.Row, 2) Else PFrmForma.COD_UNIDAD = FrmDependencia.MFGHelp.TextMatrix(FrmDependencia.MFGHelp.Row, 1) PFrmForma.NOM_UNIDAD = FrmDependencia.TxtDescripcion & " ( " & FrmDependencia.MFGHelp.TextMatrix(FrmDependencia.MFGHelp.Row, 3) & " - " & FrmDependencia.MFGHelp.TextMatrix(FrmDependencia.MFGHelp.Row, 4) & " )" End If PFrmForma.GVAdmin_Academ = FVF_Extrae_PK_Depend(PFrmForma.COD_UNIDAD, PFrmForma.FVTipo) End If End If FrmDependencia.Cancelar = False rs1.Close Set rs1 = Nothing Unload FrmDependencia End Sub En SQL se ejecutan las siguientes vistas de manera secuenciales, que permiten presentar la información de las Unidades solicitadas. La Universidad está dividida en 2 secciones que son Unidad Administrativa y Unidad Académica, dependiendo de la selección del usuario se ejecutaran las llamadas principales VS_UNIDAD_ACADEMICA ó VS_UNIDAD_ADMINISTRATIVA

Page 105: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

105

CREATE VIEW VS_UNIDAD_ACADEMICA AS SELECT O.COD_FACULTAD + SUBSTRING(O.COD_ESCUELA, 3, 2) + (CASE LEN(O.COD_CARRERA) WHEN 4 THEN SUBSTRING(O.COD_CARRERA, 3, 2) WHEN 6 THEN SUBSTRING(O.COD_CARRERA, 5, 2) END) + '000000' CODIGO, O.COD_UNIVERSIDAD , ISNULL((Select LTRIM(RTRIM(NOMBRE)) From BdAlmacenDatos..TB_FACULTAD (Index = KEY_FACULTAD_COD_FACULTAD) Where COD_FACULTAD = O.COD_FACULTAD), '-') UNID_ADMIN_ACADEM, ISNULL((Select LTRIM(RTRIM(DEPENDENCIA)) From BdAlmacenDatos..TB_FACULTAD (Index = KEY_FACULTAD_COD_FACULTAD) Where COD_FACULTAD = O.COD_FACULTAD), '-') DEP_ADMIN_ACADEM, ISNULL((Select LTRIM(RTRIM(NOMBRE)) From BdAlmacenDatos..TB_ESCUELA (Index = KEY_ESCUELA_COD_ESCUELA) Where COD_ESCUELA = O.COD_ESCUELA), '-') ESCUELA, ISNULL((Select LTRIM(RTRIM(DEPENDENCIA)) From BdAlmacenDatos..TB_ESCUELA (Index = KEY_ESCUELA_COD_ESCUELA) Where COD_ESCUELA = O.COD_ESCUELA), '-') DEP_ESCUELA, ISNULL((Select LTRIM(RTRIM(NOMBRE)) From BdAlmacenDatos..TB_CARRERA (Index = KEY_CARRERA_COD_CARRERA) Where COD_CARRERA = O.COD_CARRERA), '-') CARRERA, ISNULL((Select LTRIM(RTRIM(DEPENDENCIA)) From BdAlmacenDatos..TB_CARRERA (Index = KEY_CARRERA_COD_CARRERA) Where COD_CARRERA = O.COD_CARRERA), '-') DEP_CARRERA FROM BdAlmacenDatos..TB_ORGANIGRAMA O WHERE O.COD_FACULTAD <> '00'

CREATE VIEW VS_UNIDAD_ADMINISTRATIVA AS SELECT O.COD_CARRERA + O.COD_DISTRIBUCION + O.COD_TIPO_DISTRIB CODIGO, O.COD_UNIVERSIDAD,

ISNULL(D.DEPARTAMENTO, '-') UNID_ADMIN_ACADEM, D.COD_DEPEND_DPTO, ISNULL(D.DIVISION, '-') ESCUELA,

D.COD_DEPEND_DIV, ISNULL(D.OTROS, '-') CARRERA, D.COD_DEPEND_OTROS, D.SUPERIOR FROM TB_ORGANIGRAMA O, VS_DISTRIBUCION D WHERE O.COD_DISTRIBUCION + O.COD_TIPO_DISTRIB = D.CODIGO AND O.COD_DISTRIBUCION <> '0000'

Page 106: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

106

Luego se tendrá una Unión de las distintas partes con que consta una Unidad

es decir departamentos, divisiones, secciones.

CREATE VIEW VS_DISTRIBUCION AS SELECT CODIGO, SUPERIOR, DEPARTAMENTO, DEPENDENCIA COD_DEPEND_DPTO, '-' DIVISION, '-' COD_DEPEND_DIV, '-' OTROS, '-' COD_DEPEND_OTROS, ACTIVIDAD FROM VS_DEPARTAMENTO UNION SELECT CODIGO, D.SUPERIOR, (SELECT DEPARTAMENTO FROM VS_DEPARTAMENTO WHERE CODIGO = D.SUPERIOR) DEPARTAMENTO, (SELECT DEPENDENCIA FROM VS_DEPARTAMENTO WHERE CODIGO = D.SUPERIOR) COD_DEPEND_DPTO, D.DIVISION, D.DEPENDENCIA COD_DEPEND_DIV, '-' OTROS, '-' COD_DEPEND_OTROS, D.ACTIVIDAD FROM VS_DIVISION D UNION SELECT O.CODIGO, O.SUPERIOR, (SELECT DEPARTAMENTO FROM VS_DEPARTAMENTO WHERE CODIGO = D.SUPERIOR) DEPARTAMENTO, (SELECT DEPENDENCIA FROM VS_DEPARTAMENTO WHERE CODIGO = D.SUPERIOR) COD_DEPEND_DPTO, D.DIVISION, D.DEPENDENCIA COD_DEPEND_DIV, OTROS, O.DEPENDENCIA COD_DEPEND_OTROS, D.ACTIVIDAD FROM VS_OTROS O, VS_DIVISION D WHERE O.SUPERIOR = D.CODIGO UNION SELECT O.CODIGO, O.SUPERIOR, (SELECT DEPARTAMENTO FROM VS_DEPARTAMENTO WHERE CODIGO = D.SUPERIOR) DEPARTAMENTO, (SELECT DEPENDENCIA FROM VS_DEPARTAMENTO WHERE CODIGO = D.SUPERIOR) COD_DEPEND_DPTO, '-' DIVISION, '-' COD_DEPEND_DIV, OTROS, O.DEPENDENCIA COD_DEPEND_OTROS, D.ACTIVIDAD FROM VS_OTROS O, VS_DEPARTAMENTO D WHERE O.SUPERIOR = D.CODIGO

Page 107: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

107

CREATE VIEW VS_DEPARTAMENTO AS SELECT D.COD_DISTRIBUCION + D.COD_TIPO_DISTRIB CODIGO, D.SUPERIOR, LTRIM(RTRIM(D.NOMBRE)) DEPARTAMENTO, D.DEPENDENCIA, D.ACTIVIDAD FROM dbo.TB_DISTRIBUCION D WHERE D.COD_DISTRIBUCION IN (SELECT SUBSTRING(SUPERIOR,1, 4) FROM TB_DISTRIBUCION) AND D.COD_TIPO_DISTRIB IN (SELECT SUBSTRING(SUPERIOR,5, 2) FROM TB_DISTRIBUCION) AND D.COD_TIPO_DISTRIB IN ('01' , '05') CREATE VIEW VS_DIVISION AS SELECT COD_DISTRIBUCION + COD_TIPO_DISTRIB CODIGO, SUPERIOR, LTRIM(RTRIM(NOMBRE)) DIVISION, DEPENDENCIA, D.ACTIVIDAD FROM TB_DISTRIBUCION D WHERE /*D.COD_DISTRIBUCION IN (SELECT SUBSTRING(SUPERIOR,1, 4) FROM TB_DISTRIBUCION) AND*/ D.COD_TIPO_DISTRIB IN (SELECT SUBSTRING(SUPERIOR,5, 2) FROM TB_DISTRIBUCION) AND D.COD_TIPO_DISTRIB = '02' CREATE VIEW VS_OTROS AS SELECT COD_DISTRIBUCION + COD_TIPO_DISTRIB CODIGO, SUPERIOR, LTRIM(RTRIM(NOMBRE)) OTROS, DEPENDENCIA, D.ACTIVIDAD FROM TB_DISTRIBUCION D WHERE D.COD_TIPO_DISTRIB IN ('03', '04') Finalmente se Tiene la ejecución de la Vista Principal mencionada al Inicio de

este tema.

CREATE VIEW VS_ADMIN_ACADEM AS SELECT O.COD_FACULTAD + SUBSTRING(O.COD_ESCUELA, 3, 2) + (CASE LEN(O.COD_CARRERA) WHEN 4 THEN SUBSTRING(O.COD_CARRERA, 3, 2) WHEN 6 THEN SUBSTRING(O.COD_CARRERA, 5, 2) END) + '000000' CODIGO, O.COD_UNIVERSIDAD , ISNULL((Select LTRIM(RTRIM(NOMBRE)) From BdAlmacenDatos..TB_FACULTAD (Index =

Page 108: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

108

KEY_FACULTAD_COD_FACULTAD) Where COD_FACULTAD = O.COD_FACULTAD), '-') UNID_ADMIN_ACADEM, ISNULL((Select LTRIM(RTRIM(DEPENDENCIA)) From BdAlmacenDatos..TB_FACULTAD (Index = KEY_FACULTAD_COD_FACULTAD) Where COD_FACULTAD = O.COD_FACULTAD), '-') COD_DEPEND_DPTO, ISNULL((Select LTRIM(RTRIM(NOMBRE)) From BdAlmacenDatos..TB_ESCUELA (Index = KEY_ESCUELA_COD_ESCUELA) Where COD_ESCUELA = O.COD_ESCUELA), '-') ESCUELA, ISNULL((Select LTRIM(RTRIM(DEPENDENCIA)) From BdAlmacenDatos..TB_ESCUELA (Index = KEY_ESCUELA_COD_ESCUELA) Where COD_ESCUELA = O.COD_ESCUELA), '-') COD_DEPEND_DIV, ISNULL((Select LTRIM(RTRIM(NOMBRE)) From BdAlmacenDatos..TB_CARRERA (Index = KEY_CARRERA_COD_CARRERA) Where COD_CARRERA = O.COD_CARRERA), '-') CARRERA, ISNULL((Select LTRIM(RTRIM(DEPENDENCIA)) From BdAlmacenDatos..TB_CARRERA (Index = KEY_CARRERA_COD_CARRERA) Where COD_CARRERA = O.COD_CARRERA), '-') COD_DEPEND_OTROS , ' ' SUPERIOR, ISNULL((Select ACT_ESCUELA From BdAlmacenDatos..TB_ESCUELA (Index = KEY_ESCUELA_COD_ESCUELA) Where COD_ESCUELA = O.COD_ESCUELA), (Select ACT_FACULTAD From BdAlmacenDatos..TB_FACULTAD (Index = KEY_FACULTAD_COD_FACULTAD) Where COD_FACULTAD = O.COD_FACULTAD)) ACTIVIDAD FROM BdAlmacenDatos..TB_ORGANIGRAMA O WHERE O.COD_FACULTAD <> '00' UNION SELECT O.COD_CARRERA + O.COD_DISTRIBUCION + O.COD_TIPO_DISTRIB CODIGO, O.COD_UNIVERSIDAD, D.DEPARTAMENTO UNID_ADMIN_ACADEM, D.COD_DEPEND_DPTO DEP_ADMIN_ACADEM, D.DIVISION ESCUELA, D.COD_DEPEND_DIV DEP_ADMIN_ACADEM, D.OTROS CARRERA, D.COD_DEPEND_OTROS DEP_OTR_CAR, D.SUPERIOR, D.ACTIVIDAD FROM TB_ORGANIGRAMA O, VS_DISTRIBUCION D WHERE O.COD_DISTRIBUCION + O.COD_TIPO_DISTRIB = D.CODIGO AND O.COD_DISTRIBUCION <> '0000' Este procedimiento presenta la consulta realizada en Grillas

Public Sub GP_Cargar_Msfgrid(PBNuevo As Boolean, PMGrid As MSFlexGrid, PVNombreCampo As Variant, PVAnchoCampo As Variant, PINum_Campo As Integer, PrdsDatos As ADODB.Recordset) Dim PIFilas As Integer

Page 109: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

109

Dim PrdsTmp As New ADODB.Recordset Dim LIContador As Integer Set PrdsTmp = PrdsDatos If PBNuevo Then PMGrid.Clear PMGrid.Row = 0 PMGrid.Cols = PINum_Campo For LIContador = 0 To PINum_Campo - 1 PMGrid.Col = LIContador PMGrid.Text = PVNombreCampo(LIContador) PMGrid.ColWidth(LIContador) = PVAnchoCampo(LIContador) Next End If PrdsTmp.Filter = adFilterNone PIFilas = PrdsTmp.RecordCount If PIFilas > 0 Then PMGrid.Rows = PIFilas + 1 PMGrid.Row = 1 PMGrid.Col = 0 PMGrid.RowSel = PMGrid.Rows - 1 PMGrid.ColSel = PMGrid.Cols - 1 PrdsTmp.MoveFirst If Not PrdsTmp.EOF Then PMGrid.Clip = PrdsTmp.GetString(adClipString, PIFilas, , , "Nulo") End If PMGrid.RowSel = 1 PMGrid.ColSel = 0 Else PMGrid.Rows = 1 End If End Sub Incrementar los índices secuenciales, que trabajan con una tabla de índices por

cada estación de trabajo.

Entrada: el valor máximo actual disponible

Proceso: Incrementar este valor en uno

Salida: Índice incrementado.

Function GVF_Inc_Codigo_Sec(PVSql As String) As Long

Page 110: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

110

Dim PrdsDatos As New ADODB.Recordset Set PrdsDatos = GrdsF_Recupera_Datos(PVSql) If Not PrdsDatos.EOF Then If Not IsNull(PrdsDatos.Fields(0)) Then GVF_Inc_Codigo_Sec = Val(Trim(PrdsDatos.Fields(0))) + 1 Else GVF_Inc_Codigo_Sec = 1 End If PrdsDatos.Close End If End Function '***************************************************************************************** 'Verificar Cédula Function GNF_Verifica_Cedula(cedula As String) As Integer Dim var_tmp Dim I, J, numero As Integer Dim suma, suma1, num, div_rem As Integer Dim val_cédula(10) As Integer

' verificamos si la cédula tiene 10 caracteres If Len(Trim$(cedula)) < 10 Then GNF_Verifica_Cedula = 2 Exit Function End If ' movemos cada caracter de la cédula a un arreglo For I = 1 To 10 val_cedula(I - 1) = Val(Mid$(cedula, I, 1)) Next I ' verificamos el código de la provincia If (val_cedula(0) <= 1) And (val_cedula(1) <= 9) Then GNF_Verifica_Cedula = 1 Else If (val_cedula(0) = 2) And (val_cedula(1) <= 1) Then GNF_Verifica_Cedula = 1 Else GNF_Verifica_Cedula = 4 Exit Function End If End If

Page 111: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

111

‘sumamos los números de las posiciones pares I = 0 For J = 1 To 5 numero = val_cedula(I) * 2 If numero > 9 Then numero = numero - 9 End If suma = suma + numero I = I + 2 Next J 'sumamos los números de las posiciones impares I = 1 For J = 1 To 4 suma1 = suma1 + val_cedula(I) I = I + 2 Next J suma1 = suma1 + suma div_rem = suma1 Mod 10 If div_rem <> 0 Then J = 10 - div_rem Else J = div_rem End If ' hacemos la comprobacion del digito verificador If val_cedula(9) = J Then GNF_Verifica_Cedula = 1 Else GNF_Verifica_Cedula = 5 Exit Function End If End Function Function GBF_Valida_Cedula(GVCedula As String, FrmForma As Form) As Boolean Select Case GNF_Verifica_Cedula(GVCedula) Case 4 MsgBox "# de Cédula no pertenece a ninguna Provincia.", , "Alerta!" GBF_Valida_Cedula = False Case 5 MsgBox "Por favor ingrese un N° de Cédula válido.", , "Alerta!" GBF_Valida_Cedula = False Case Else

Page 112: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

112

GBF_Valida_Cedula = True End Select End Function Public Function Calcula_Edad(DTPFechaNac As DTPicker) As String If DTPFechaNac < Date Then Calcula_Edad = DateDiff("YYYY", DTPFechaNac, Format(CDate(GVFecha_Server), "dd/mm/yyyy")) If Not Format(CDate(GVFecha_Server), "mmdd") >= Format(DTPFechaNac, "mmdd") Then Calcula_Edad = Calcula_Edad - 1 End If Else MsgBox "Fecha de nacimiento no debe " & Chr(10) & "ser mayor a la fecha actal.", vbInformation, "Alerta!" End If End Function Public Function CalculaEdad(DTPFechaNac As Date) As String If DTPFechaNac < Date Then CalculaEdad = DateDiff("YYYY", DTPFechaNac, Format(CDate(GVFecha_Server), "dd/mm/yyyy")) If Not Format(CDate(GVFecha_Server), "mmdd") >= Format(DTPFechaNac, "mmdd") Then CalculaEdad = CalculaEdad - 1 End If Else MsgBox "Fecha de nacimiento no debe " & Chr(10) & "ser mayor a la fecha actal.", vbInformation, "Alerta!" End If End Function Sub GP_Cargar_Msfgrid_Admis(MFGRID As MSFlexGrid, SQL As String, Filas As Integer) Dim RS As New ADODB.Recordset Set RS = GrdsF_Recupera_Datos(SQL) If Filas > 0 Then MFGRID.Rows = Filas + 1 MFGRID.Row = 1 MFGRID.Col = 0 MFGRID.RowSel = MFGRID.Rows - 1 MFGRID.ColSel = MFGRID.Cols - 1 If Not RS.EOF Then MFGRID.Clip = RS.GetString(adClipString, Filas, , , "Nulo") End If

Page 113: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

113

MFGRID.RowSel = 1 MFGRID.ColSel = 0 End If RS.Close Set RS = Nothing End Sub Function FVRecupera_UbicGeog(PVInstEmp As String, PVBand As String, PVUbic As String, Optional PVEmp As String, Optional PVTabla As String, Optional PVFiltro As String) As String Dim RS As New ADODB.Recordset Dim PVAux As String GVQuery = "SELECT P.COD_PAIS, E.COD_ESTADO, C.COD_CIUDAD FROM BdAlmacenDatos..TB_PAIS P, BdAlmacenDatos..TB_ESTADO E, " If PVBand = 1 Then GVQuery = GVQuery & "BdAlmacenDatos..TB_CIUDAD C, TB_ESCUELA_PRIMARIA I " PVAux = "AND STR(I.COD_ESCUELA_PK) = STR('" & PVInstEmp & "')" End If If PVBand = 2 Then GVQuery = GVQuery & "BdAlmacenDatos..TB_CIUDAD C, BdAlmacenDatos..TB_COLEGIO I " PVAux = "AND STR(I.COD_COLEGIO) = STR('" & PVInstEmp & "')" End If If PVBand = 3 Then GVQuery = GVQuery & "BdAlmacenDatos..TB_CIUDAD C, BdAlmacenDatos..TB_UNIVERSIDAD I " PVAux = "AND I.COD_UNIVERSIDAD = '" & Format(PVInstEmp, "0#") & "'" End If If PVBand = "4" Then GVQuery = GVQuery & "BdAlmacenDatos..TB_CIUDAD C, " & PVTabla & " " PVAux = PVFiltro End If If PVEmp = "1" Then GVQuery = GVQuery & "BdAlmacenDatos..TB_CIUDAD C, INSTITUCION_EMPRESA I " PVAux = "AND STR(I.ID_EMPRESA) = STR('" & PVInstEmp & "')" End If GVQuery = GVQuery & "WHERE P.COD_PAIS = E.COD_PAIS " GVQuery = GVQuery & "AND E.COD_ESTADO = C.COD_ESTADO " GVQuery = GVQuery & "AND C.COD_CIUDAD = I.COD_UBIGEO " GVQuery = GVQuery & PVAux

Page 114: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

114

Set RS = GrdsF_Recupera_Datos(GVQuery) If Not RS.EOF Then Select Case PVUbic Case 1 FVRecupera_UbicGeog = RS!Cod_Pais Case 2 FVRecupera_UbicGeog = RS!Cod_Estado Case 3 FVRecupera_UbicGeog = RS!Cod_Ciudad End Select End If RS.Close Set RS = Nothing End Function Sub GP_CmdFacultad_AcPsnal(PFrmForma As Form) Dim rs1 As New ADODB.Recordset Load FrmDependencia FrmDependencia.FVTipo = PFrmForma.FVTipo FrmDependencia.OptOtrosCar_Click GVrtAnchoCampo = Array("0", "1100", "4000", "4000", "4000") Set rs1 = GrdsF_Recupera_Datos(GVQuery) GP_Cargar_Msfgrid True, FrmDependencia.MFGHelp, GVrtNombreCampo, GVrtAnchoCampo, 5, rs1 FrmDependencia.MFGHelp.Col = 1 FrmDependencia.MFGHelp.Sort = 5 Set FrmDependencia.RS = rs1 FrmDependencia.OptOtrosCar = True FrmDependencia.Caption = "Dependencia." FrmDependencia.Show 1 If Not FrmDependencia.Cancelar Then If FrmDependencia.MFGHelp.Row > 0 Then If FrmDependencia.OptUndad Then PFrmForma.TxtCodFacultad = FrmDependencia.MFGHelp.TextMatrix(FrmDependencia.MFGHelp.Row, 0) PFrmForma.TxtNombreFacultad.Text = FrmDependencia.TxtDescripcion ElseIf FrmDependencia.OptDptoEsc Then PFrmForma.TxtCodFacultad = FrmDependencia.MFGHelp.TextMatrix(FrmDependencia.MFGHelp.Row, 0) PFrmForma.TxtNombreFacultad.Text = FrmDependencia.TxtDescripcion & " - " & FrmDependencia.MFGHelp.TextMatrix(FrmDependencia.MFGHelp.Row, 2) Else

Page 115: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

115

PFrmForma.TxtCodFacultad = FrmDependencia.MFGHelp.TextMatrix(FrmDependencia.MFGHelp.Row, 1) PFrmForma.TxtNombreFacultad.Text = FrmDependencia.TxtDescripcion & " ( " & FrmDependencia.MFGHelp.TextMatrix(FrmDependencia.MFGHelp.Row, 3) & " - " & FrmDependencia.MFGHelp.TextMatrix(FrmDependencia.MFGHelp.Row, 4) & " )" End If PFrmForma.FVAdmin_Academ = FVF_Extrae_PK_Depend(PFrmForma.TxtCodFacultad, PFrmForma.FVTipo) 'PFrmForma.CboGeneral.SetFocus Else PFrmForma.TxtCodFacultad.SetFocus End If Else PFrmForma.TxtCodFacultad.SetFocus End If FrmDependencia.Cancelar = False rs1.Close Set rs1 = Nothing Unload FrmDependencia End Sub Sub GP_TxtFacultad_AcPsnal(PFrmForma As Form) If PFrmForma.TxtCodFacultad <> "" Then PFrmForma.FVAdmin_Academ = FVF_Extrae_PK_Depend(PFrmForma.TxtCodFacultad, PFrmForma.FVTipo) PFrmForma.TxtNombreFacultad.Text = Trim(RECUPERA_FACULTAD(PFrmForma.FVAdmin_Academ, PFrmForma.FVTipo)) PFrmForma.TxtNombreFacultad.SetFocus Else PFrmForma.TxtNombreFacultad = "" End If End Sub Sub GP_CmdEmpleado_AcPsnal(PFrmForma As Form) Dim PVQuery, PVQuery1 As String Dim rs1 As New ADODB.Recordset Load FrmHelp FrmHelp.Caption = "Empleados." FPCad = "" If PFrmForma.CboBusqueda.ListIndex = 0 Then

Page 116: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

116

GVQuery = "SELECT MAX(A.IDADMISION), DP.APELLIDOS, DP.NOMBRES, DP.INDICE, DP.ID_DATOS_PERSONAL, " GVQuery = GVQuery & "(SELECT CASE CARRERA WHEN '-' THEN " GVQuery = GVQuery & " CASE ESCUELA WHEN '-' THEN UNID_ADMIN_ACADEM " GVQuery = GVQuery & " ELSE ESCUELA + ' - ' + UNID_ADMIN_ACADEM END " GVQuery = GVQuery & " ELSE CASE ESCUELA WHEN '-' THEN CARRERA + ' - ' + UNID_ADMIN_ACADEM " GVQuery = GVQuery & " ELSE CASE CARRERA WHEN '-' THEN ESCUELA + ' ( ' + UNID_ADMIN_ACADEM + ' ) ' " GVQuery = GVQuery & " ELSE CARRERA + ' ( ' + ESCUELA + ' - ' + UNID_ADMIN_ACADEM + ' ) ' END END " GVQuery = GVQuery & " END AS UNID_ADMIN_ACADEM " GVQuery = GVQuery & "FROM BdAlmacenDatos..VS_ADMIN_ACADEM U " GVQuery = GVQuery & "WHERE U.CODIGO = A.UNIDAD_UNIV ) " GVQuery = GVQuery & "FROM DATOS_PERSONAL DP, ADMISION A, BdAlmacenDatos..VS_ADMIN_ACADEM UA, TB_PERFIL_UNIDAD PU " GVQuery = GVQuery & "WHERE DP.ID_DATOS_PERSONAL = A.DATOS_PERSONAL AND ESTADOREG = 0 " GVQuery = GVQuery & "AND A.UNIDAD_UNIV = UA.CODIGO " GVQuery = GVQuery & "AND A.UNIDAD_UNIV = PU.COD_UNIDAD " GVrtNombreCampo = Array("# Admisión", "Apellidos", "Nombres", "Indice", "Fech. Acción", "Datos_Personal", "Unidad") GVrtAnchoCampo = Array("0", "3000", "3000", "1500", "0", "0", "10000") PFrmForma.TxtCodigo.MaxLength = 5 FPCad = "DP.INDICE" End If If PFrmForma.CboBusqueda.ListIndex = 1 Then GVQuery = "SELECT MAX(A.IDADMISION), DP.APELLIDOS, DP.NOMBRES, DP.CEDULA, DP.ID_DATOS_PERSONAL, " GVQuery = GVQuery & "(SELECT CASE CARRERA WHEN '-' THEN " GVQuery = GVQuery & " CASE ESCUELA WHEN '-' THEN UNID_ADMIN_ACADEM " GVQuery = GVQuery & " ELSE ESCUELA + ' - ' + UNID_ADMIN_ACADEM END " GVQuery = GVQuery & " ELSE CASE ESCUELA WHEN '-' THEN CARRERA + ' - ' + UNID_ADMIN_ACADEM " GVQuery = GVQuery & " ELSE CASE CARRERA WHEN '-' THEN ESCUELA + ' ( ' + UNID_ADMIN_ACADEM + ' ) ' " GVQuery = GVQuery & " ELSE CARRERA + ' ( ' + ESCUELA + ' - ' + UNID_ADMIN_ACADEM + ' ) ' END END " GVQuery = GVQuery & " END AS UNID_ADMIN_ACADEM "

Page 117: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

117

GVQuery = GVQuery & "FROM BdAlmacenDatos..VS_ADMIN_ACADEM U " GVQuery = GVQuery & "WHERE U.CODIGO = A.UNIDAD_UNIV ) " GVQuery = GVQuery & "FROM DATOS_PERSONAL DP, ADMISION A, BdAlmacenDatos..VS_ADMIN_ACADEM UA, TB_PERFIL_UNIDAD PU " GVQuery = GVQuery & "WHERE DP.ID_DATOS_PERSONAL = A.DATOS_PERSONAL AND ESTADOREG = 0 " GVQuery = GVQuery & "AND A.UNIDAD_UNIV = UA.CODIGO " GVQuery = GVQuery & "AND A.UNIDAD_UNIV = PU.COD_UNIDAD " GVrtNombreCampo = Array("# Admisión", "Apellidos", "Nombres", "Cedula", "Fech. Acción", "Datos_Personal", "Unidad") GVrtAnchoCampo = Array("0", "3000", "3000", "1500", "0", "0", "10000") PFrmForma.TxtCodigo.MaxLength = 10 FPCad = "DP.CEDULA" End If If PFrmForma.TxtCodFacultad <> "" Then PVQuery1 = GVQuery PVQuery = "AND UA.SUPERIOR IN (SELECT SUBSTRING(UA1.CODIGO, 7, 6) FROM BdAlmacenDatos..VS_ADMIN_ACADEM UA1 " PVQuery = PVQuery & "WHERE UA1.SUPERIOR = '" & Mid(PFrmForma.FVAdmin_Academ, 7, 6) & "' " PVQuery = PVQuery & "AND UA1.CODIGO NOT IN ( '000000' + (SELECT SUPERIOR FROM BdAlmacenDatos..VS_ADMIN_ACADEM " PVQuery = PVQuery & "WHERE CODIGO = '" & PFrmForma.FVAdmin_Academ & "'))) " PVQuery1 = PVQuery1 & PVQuery PVQuery1 = PVQuery1 & " GROUP BY DP.APELLIDOS, DP.NOMBRES, " & FPCad & ", DP.ID_DATOS_PERSONAL, A.UNIDAD_UNIV " PVQuery1 = PVQuery1 & " UNION " PVQuery = "AND UA.SUPERIOR = '" & Mid(PFrmForma.FVAdmin_Academ, 7, 6) & "' " PVQuery = PVQuery & "AND UA.CODIGO NOT IN ( '000000' + (SELECT SUPERIOR FROM BdAlmacenDatos..VS_ADMIN_ACADEM " PVQuery = PVQuery & "WHERE CODIGO = '" & PFrmForma.FVAdmin_Academ & "')) " PVQuery1 = PVQuery1 & GVQuery & PVQuery PVQuery1 = PVQuery1 & " GROUP BY DP.APELLIDOS, DP.NOMBRES, " & FPCad & ", DP.ID_DATOS_PERSONAL, A.UNIDAD_UNIV " PVQuery1 = PVQuery1 & " UNION " PVQuery = "AND UA.CODIGO = '" & PFrmForma.FVAdmin_Academ & "'" PVQuery1 = PVQuery1 & GVQuery & PVQuery PVQuery1 = PVQuery1 & " GROUP BY DP.APELLIDOS, DP.NOMBRES, " & FPCad & ", DP.ID_DATOS_PERSONAL, A.UNIDAD_UNIV "

Page 118: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

118

GVQuery = PVQuery1 Else GVQuery = GVQuery & GFV_Add_UserPerfil("AND", "UA.") GVQuery = GVQuery & " GROUP BY DP.APELLIDOS, DP.NOMBRES, " & FPCad & ", DP.ID_DATOS_PERSONAL, A.UNIDAD_UNIV " End If Set rs1 = GrdsF_Recupera_Datos(GVQuery) GP_Cargar_Msfgrid True, FrmHelp.MFGHelp, GVrtNombreCampo, GVrtAnchoCampo, 6, rs1 FrmHelp.MFGHelp.Col = 1 FrmHelp.MFGHelp.Sort = 5 Set FrmHelp.RS = rs1 FrmHelp.Campo_Filtro = "APELLIDOS" FrmHelp.Show 1 If Not FrmHelp.Cancelar Then If FrmHelp.MFGHelp.Row > 0 Then PFrmForma.FVAdmision = FrmHelp.MFGHelp.TextMatrix(FrmHelp.MFGHelp.Row, 0) PFrmForma.TxtCodigo = FrmHelp.MFGHelp.TextMatrix(FrmHelp.MFGHelp.Row, 3) PFrmForma.TxtNombre = FrmHelp.MFGHelp.TextMatrix(FrmHelp.MFGHelp.Row, 1) & " " & FrmHelp.MFGHelp.TextMatrix(FrmHelp.MFGHelp.Row, 2) PFrmForma.DATOS_PERSONAL = FrmHelp.MFGHelp.TextMatrix(FrmHelp.MFGHelp.Row, 4) RECUPERA_ADMISION_AcPsnal PFrmForma GPRecupera_SituacAct_AcPsnal PFrmForma PFrmForma.CmdEmpleado.SetFocus Else PFrmForma.TxtCodigo.SetFocus End If Else PFrmForma.TxtCodigo.SetFocus End If FrmHelp.Cancelar = False Unload FrmHelp rs1.Close End Sub Sub GP_TxtCodigo_AcPsnal(PFrmForma As Form) Dim PVQuery, PVQuery1 As String Dim rs1 As New ADODB.Recordset FPCad = ""

Page 119: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

119

If PFrmForma.TxtCodigo <> "" Then If PFrmForma.CboBusqueda.ListIndex = 0 Then PFrmForma.TxtCodigo.MaxLength = 5 FPCad = "DP.INDICE" GVQuery = "SELECT MAX(A.IDADMISION) ADMISION, DP.APELLIDOS, DP.NOMBRES, DP.INDICE, DP.ID_DATOS_PERSONAL, " GVQuery = GVQuery & "(SELECT CASE CARRERA WHEN '-' THEN " GVQuery = GVQuery & " CASE ESCUELA WHEN '-' THEN UNID_ADMIN_ACADEM " GVQuery = GVQuery & " ELSE ESCUELA + ' - ' + UNID_ADMIN_ACADEM END " GVQuery = GVQuery & " ELSE CASE ESCUELA WHEN '-' THEN CARRERA + ' - ' + UNID_ADMIN_ACADEM " GVQuery = GVQuery & " ELSE CASE CARRERA WHEN '-' THEN ESCUELA + ' ( ' + UNID_ADMIN_ACADEM + ' ) ' " GVQuery = GVQuery & " ELSE CARRERA + ' ( ' + ESCUELA + ' - ' + UNID_ADMIN_ACADEM + ' ) ' END END " GVQuery = GVQuery & " END AS UNID_ADMIN_ACADEM " GVQuery = GVQuery & "FROM BdAlmacenDatos..VS_ADMIN_ACADEM U " GVQuery = GVQuery & "WHERE U.CODIGO = A.UNIDAD_UNIV ) " GVQuery = GVQuery & "FROM DATOS_PERSONAL DP, ADMISION A, BdAlmacenDatos..VS_ADMIN_ACADEM UA, TB_PERFIL_UNIDAD PU " GVQuery = GVQuery & "WHERE DP.ID_DATOS_PERSONAL = A.DATOS_PERSONAL AND ESTADOREG = 0 " GVQuery = GVQuery & "AND A.UNIDAD_UNIV = UA.CODIGO " GVQuery = GVQuery & "AND A.UNIDAD_UNIV = PU.COD_UNIDAD " GVQuery = GVQuery & "AND INDICE = '" & PFrmForma.TxtCodigo & "' " End If If PFrmForma.CboBusqueda.ListIndex = 1 Then PFrmForma.TxtCodigo.MaxLength = 10 FPCad = "DP.CEDULA" GVQuery = "SELECT MAX(A.IDADMISION) ADMISION, DP.APELLIDOS, DP.NOMBRES, DP.CEDULA, DP.ID_DATOS_PERSONAL, " GVQuery = GVQuery & "(SELECT CASE CARRERA WHEN '-' THEN " GVQuery = GVQuery & " CASE ESCUELA WHEN '-' THEN UNID_ADMIN_ACADEM " GVQuery = GVQuery & " ELSE ESCUELA + ' - ' + UNID_ADMIN_ACADEM END " GVQuery = GVQuery & " ELSE CASE ESCUELA WHEN '-' THEN CARRERA + ' - ' + UNID_ADMIN_ACADEM " GVQuery = GVQuery & " ELSE CASE CARRERA WHEN '-' THEN ESCUELA + ' ( ' + UNID_ADMIN_ACADEM + ' ) ' "

Page 120: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

120

GVQuery = GVQuery & " ELSE CARRERA + ' ( ' + ESCUELA + ' - ' + UNID_ADMIN_ACADEM + ' ) ' END END " GVQuery = GVQuery & " END AS UNID_ADMIN_ACADEM " GVQuery = GVQuery & "FROM BdAlmacenDatos..VS_ADMIN_ACADEM U " GVQuery = GVQuery & "WHERE U.CODIGO = A.UNIDAD_UNIV ) " GVQuery = GVQuery & "FROM DATOS_PERSONAL DP, ADMISION A, BdAlmacenDatos..VS_ADMIN_ACADEM UA, TB_PERFIL_UNIDAD PU " GVQuery = GVQuery & "WHERE DP.ID_DATOS_PERSONAL = A.DATOS_PERSONAL AND ESTADOREG = 0 " GVQuery = GVQuery & "AND A.UNIDAD_UNIV = UA.CODIGO " GVQuery = GVQuery & "AND A.UNIDAD_UNIV = PU.COD_UNIDAD " GVQuery = GVQuery & "AND DP.CEDULA = '" & PFrmForma.TxtCodigo & "' " End If If PFrmForma.TxtCodFacultad <> "" Then PVQuery1 = GVQuery PVQuery = "AND UA.SUPERIOR IN (SELECT SUBSTRING(UA1.CODIGO, 7, 6) FROM BdAlmacenDatos..VS_ADMIN_ACADEM UA1 " PVQuery = PVQuery & "WHERE UA1.SUPERIOR = '" & Mid(PFrmForma.FVAdmin_Academ, 7, 6) & "' " PVQuery = PVQuery & "AND UA1.CODIGO NOT IN ( '000000' + (SELECT SUPERIOR FROM BdAlmacenDatos..VS_ADMIN_ACADEM " PVQuery = PVQuery & "WHERE CODIGO = '" & PFrmForma.FVAdmin_Academ & "'))) " PVQuery1 = PVQuery1 & PVQuery PVQuery1 = PVQuery1 & " GROUP BY DP.APELLIDOS, DP.NOMBRES, " & FPCad & ", DP.ID_DATOS_PERSONAL, A.UNIDAD_UNIV " PVQuery1 = PVQuery1 & " UNION " PVQuery = "AND UA.SUPERIOR = '" & Mid(PFrmForma.FVAdmin_Academ, 7, 6) & "' " PVQuery = PVQuery & "AND UA.CODIGO NOT IN ( '000000' + (SELECT SUPERIOR FROM BdAlmacenDatos..VS_ADMIN_ACADEM " PVQuery = PVQuery & "WHERE CODIGO = '" & PFrmForma.FVAdmin_Academ & "')) " PVQuery1 = PVQuery1 & GVQuery & PVQuery PVQuery1 = PVQuery1 & " GROUP BY DP.APELLIDOS, DP.NOMBRES, " & FPCad & ", DP.ID_DATOS_PERSONAL, A.UNIDAD_UNIV " PVQuery1 = PVQuery1 & " UNION " PVQuery = "AND UA.CODIGO = '" & PFrmForma.FVAdmin_Academ & "'"

Page 121: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

121

PVQuery1 = PVQuery1 & GVQuery & PVQuery PVQuery1 = PVQuery1 & " GROUP BY DP.APELLIDOS, DP.NOMBRES, " & FPCad & ", DP.ID_DATOS_PERSONAL, A.UNIDAD_UNIV " GVQuery = PVQuery1 Else GVQuery = GVQuery & GFV_Add_UserPerfil("AND", "UA.") GVQuery = GVQuery & " GROUP BY DP.APELLIDOS, DP.NOMBRES, " & FPCad & ", DP.ID_DATOS_PERSONAL, A.UNIDAD_UNIV " End If Set rs1 = GrdsF_Recupera_Datos(GVQuery) If Not rs1.EOF Then PFrmForma.FVAdmision = rs1!ADMISION PFrmForma.TxtNombre = rs1!NOMBRES & " " & rs1!APELLIDOS PFrmForma.DATOS_PERSONAL = rs1!ID_DATOS_PERSONAL If PFrmForma.FraEmp_Busq.Visible Then PFrmForma.CmdEmpleado.SetFocus Else PFrmForma.DTPDesde.SetFocus End If Else MsgBox "Empleado no existe.", vbInformation, "Alerta!" SendKeys "{Home}+{end}" PFrmForma.TxtCodigo = "" PFrmForma.TxtNombre = "" PFrmForma.TxtCodigo.SetFocus End If rs1.Close Else PFrmForma.TxtNombre = "" End If End Sub Sub GPRecupera_SituacAct_AcPsnal(PFrmForma As Form) On Error GoTo mensaje Dim rs1 As New ADODB.Recordset 'Recupero el codigo de Admisiòn de la ùltima situaciòn GVQuery = "SELECT DISTINCT IDADMISION FROM ADMISION " GVQuery = GVQuery & "WHERE DATOS_PERSONAL = '" & PFrmForma.DATOS_PERSONAL & "' " GVQuery = GVQuery & "ORDER BY IDADMISION " Set rs1 = GrdsF_Recupera_Datos(GVQuery) If Not rs1.EOF Then rs1.MoveNext

Page 122: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

122

If rs1.EOF Then If PFrmForma.FVAdmision2 = "0" Then PFrmForma.FVAdmision2 = PFrmForma.FVAdmision End If Else PFrmForma.FVAdmision2 = rs1!IDADMISION End If End If 'Recupero datos de la ùltima situaciòn GVQuery = "SELECT * FROM ADMISION " GVQuery = GVQuery & "WHERE IDADMISION = '" & PFrmForma.FVAdmision2 & "'" Set rs1 = GrdsF_Recupera_Datos(GVQuery) If Not rs1.EOF Then If Not IsNull(rs1!UNIDAD_UNIV) Then If Mid(rs1!UNIDAD_UNIV, 1, 6) = "000000" Then PFrmForma.CboDependencia2.ListIndex = 0 PFrmForma.FVTipo2 = "G" ElseIf Mid(rs1!UNIDAD_UNIV, 7, 6) = "000000" Then PFrmForma.CboDependencia2.ListIndex = 1 PFrmForma.FVTipo2 = "F" End If PFrmForma.FVAdmin_Academ2 = rs1!UNIDAD_UNIV PFrmForma.TxtCodFacultad2 = FVF_Extrae_Cod_Depend(rs1!UNIDAD_UNIV, PFrmForma.FVTipo2) PFrmForma.TxtNombreFacultad2 = RECUPERA_FACULTAD(CStr(PFrmForma.FVAdmin_Academ2), PFrmForma.FVTipo2) If Not IsNull(rs1!CARGO) Then Dim RS3 As New ADODB.Recordset Dim TIPO_FF As String PFrmForma.CboCargo2.Clear PFrmForma.CboCargo2.AddItem ("") PFrmForma.CboCargo2.ItemData(0) = rs1!CARGO GVQuery = "SELECT DISTINCT C.COD_CARGO, C.NOMBRE, PC.SUELDO, C.COD_CAT_CARGO " GVQuery = GVQuery & "FROM BdAlmacenDatos..TB_CARGO C, BdAlmacenDatos..TB_CATEGORIA_CARGO CC, " GVQuery = GVQuery & "TB_PARTI_CARGO PC, BdAlmacenDatos..VS_ADMIN_ACADEM UA " GVQuery = GVQuery & "WHERE C.COD_CAT_CARGO = CC.COD_CAT_CARGO "

Page 123: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

123

GVQuery = GVQuery & "AND C.SECUENCIAL = PC.COD_CARGO " GVQuery = GVQuery & "AND C.SECUENCIAL = '" & PFrmForma.CboCargo2.ItemData(0) & "' " GVQuery = GVQuery & "AND CC.COD_CAT_CARGO = '" & rs1!CATEG_CARGO & "' " GVQuery = GVQuery & "AND PC.UNIDAD_UNIV = UA.CODIGO " PVQuery1 = GVQuery PVQuery = "AND UA.SUPERIOR IN (SELECT SUBSTRING(UA1.CODIGO, 7, 6) FROM BdAlmacenDatos..VS_ADMIN_ACADEM UA1 " PVQuery = PVQuery & "WHERE UA1.SUPERIOR = '" & Mid(PFrmForma.FVAdmin_Academ2, 7, 6) & "' " PVQuery = PVQuery & "AND UA1.CODIGO NOT IN ( '000000' + (SELECT SUPERIOR FROM BdAlmacenDatos..VS_ADMIN_ACADEM " PVQuery = PVQuery & "WHERE CODIGO = '" & PFrmForma.FVAdmin_Academ2 & "'))) " PVQuery1 = PVQuery1 & PVQuery PVQuery1 = PVQuery1 & " GROUP BY C.COD_CARGO, C.NOMBRE, PC.SUELDO, C.COD_CAT_CARGO " PVQuery1 = PVQuery1 & " UNION " PVQuery = "AND UA.SUPERIOR = '" & Mid(PFrmForma.FVAdmin_Academ2, 7, 6) & "' " PVQuery = PVQuery & "AND UA.CODIGO NOT IN ( '000000' + (SELECT SUPERIOR FROM BdAlmacenDatos..VS_ADMIN_ACADEM " PVQuery = PVQuery & "WHERE CODIGO = '" & PFrmForma.FVAdmin_Academ2 & "')) " PVQuery1 = PVQuery1 & GVQuery & PVQuery PVQuery1 = PVQuery1 & " GROUP BY C.COD_CARGO, C.NOMBRE, PC.SUELDO, C.COD_CAT_CARGO " PVQuery1 = PVQuery1 & " UNION " PVQuery = "AND UA.CODIGO = '" & PFrmForma.FVAdmin_Academ2 & "'" PVQuery1 = PVQuery1 & GVQuery & PVQuery PVQuery1 = PVQuery1 & " GROUP BY C.COD_CARGO, C.NOMBRE, PC.SUELDO, C.COD_CAT_CARGO " GVQuery = PVQuery1 Set RS3 = GrdsF_Recupera_Datos(GVQuery) If Not RS3.EOF Then If Not IsNull(RS3!nombre) Then PFrmForma.CboCargo2.Clear PFrmForma.CboCargo2.List(0) = RS3!COD_CARGO PFrmForma.CboCargo2.ListIndex = 0 PFrmForma.TxtNmbCargo2 = RS3!nombre PFrmForma.TxtSueldo2 = RS3!SUELDO

Page 124: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

124

End If For I = 0 To PFrmForma.CboCatCargo2.ListCount - 1 If PFrmForma.CboCatCargo2.ItemData(I) = RS3!COD_CAT_CARGO Then PFrmForma.CboCatCargo2.ListIndex = I Exit For End If Next GVQuery = "SELECT DESCRIPCION " GVQuery = GVQuery & "FROM BdAlmacenDatos..TB_CATEGORIA_DCTE " GVQuery = GVQuery & "WHERE COD_CAT_DCTE = '" & rs1!CAT_DCTE & "'" Set RS3 = GrdsF_Recupera_Datos(GVQuery) If Not RS3.EOF Then If Not IsNull(RS3!DESCRIPCION) Then PFrmForma.CboCatDcte2.Clear PFrmForma.CboCatDcte2.AddItem (RS3!DESCRIPCION) PFrmForma.CboCatDcte2.ListIndex = 0 End If End If RS3.Close End If Set RS3 = Nothing End If If Not IsNull(rs1!Partida) Then Set RS3 = GrdsF_Recupera_Datos("SELECT TIPO_PARTIDA, PARTIDA FROM TB_PARTIDA WHERE COD_PARTIDA = '" & rs1!Partida & "'") If Not RS3.EOF Then PFrmForma.TxtPartida2 = RS3!Partida End If End If End If End If rs1.Close Set rs1 = Nothing Exit Sub mensaje: MsgBox Err.Description, vbInformation, "Alerta!" End Sub Public Sub RECUPERA_ADMISION_AcPsnal(PFrmForma As Form) Dim rs1 As New ADODB.Recordset

Page 125: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

125

GVQuery = "SELECT * FROM ADMISION " GVQuery = GVQuery & "WHERE IDADMISION = '" & PFrmForma.FVAdmision & "' " Set rs1 = GrdsF_Recupera_Datos(GVQuery) If rs1.State = 1 Then If Not rs1.EOF Then PFrmForma.DATOS_PERSONAL = rs1!DATOS_PERSONAL GVQuery_FOTO PFrmForma.Image2, PFrmForma.DATOS_PERSONAL, "C:\Rhumano\Datos\Imagen_tmp.bmp" GVQuery = "SELECT * " GVQuery = GVQuery & "FROM DATOS_PERSONAL DP " GVQuery = GVQuery & "WHERE ID_DATOS_PERSONAL = '" & PFrmForma.DATOS_PERSONAL & "' " Dim RS As New ADODB.Recordset Set RS = GrdsF_Recupera_Datos(GVQuery) If RS.State = 1 Then If Not RS.EOF Then If PFrmForma.CboBusqueda.ListIndex = 0 Then If Not IsNull(RS!indice) Then PFrmForma.TxtCodigo = RS!indice End If End If If PFrmForma.CboBusqueda.ListIndex = 1 Then If Not IsNull(RS!cedula) Then PFrmForma.TxtCodigo = RS!cedula End If End If If Not IsNull(RS!NOMBRES) Then PFrmForma.TxtNombre = FVF_Recupera_Emp(PFrmForma.DATOS_PERSONAL, RS!SEXO, RS!ESTADO_CIVIL) & " " & RS!NOMBRES & " " & RS!APELLIDOS End If End If End If If Not IsNull(rs1!CARGO) Then Dim RS3 As New ADODB.Recordset Dim TIPO_FF As String PFrmForma.CboCargo.Clear PFrmForma.CboCargo.AddItem ("") PFrmForma.CboCargo.ItemData(0) = rs1!CARGO GVQuery = "SELECT DISTINCT C.COD_CARGO, C.NOMBRE, PC.SUELDO, C.COD_CAT_CARGO " GVQuery = GVQuery & "FROM BdAlmacenDatos..TB_CARGO C, BdAlmacenDatos..TB_CATEGORIA_CARGO CC, "

Page 126: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

126

GVQuery = GVQuery & "TB_PARTI_CARGO PC, BdAlmacenDatos..VS_ADMIN_ACADEM UA " GVQuery = GVQuery & "WHERE C.COD_CAT_CARGO = CC.COD_CAT_CARGO " GVQuery = GVQuery & "AND C.SECUENCIAL = PC.COD_CARGO " GVQuery = GVQuery & "AND C.SECUENCIAL = '" & PFrmForma.CboCargo.ItemData(0) & "' " GVQuery = GVQuery & "AND CC.COD_CAT_CARGO = '" & rs1!CATEG_CARGO & "' " GVQuery = GVQuery & "AND PC.UNIDAD_UNIV = UA.CODIGO " PVQuery1 = GVQuery PVQuery = "AND UA.SUPERIOR IN (SELECT SUBSTRING(UA1.CODIGO, 7, 6) FROM BdAlmacenDatos..VS_ADMIN_ACADEM UA1 " PVQuery = PVQuery & "WHERE UA1.SUPERIOR = '" & Mid(PFrmForma.FVAdmin_Academ, 7, 6) & "' " PVQuery = PVQuery & "AND UA1.CODIGO NOT IN ( '000000' + (SELECT SUPERIOR FROM BdAlmacenDatos..VS_ADMIN_ACADEM " PVQuery = PVQuery & "WHERE CODIGO = '" & PFrmForma.FVAdmin_Academ & "'))) " PVQuery1 = PVQuery1 & PVQuery PVQuery1 = PVQuery1 & " GROUP BY C.COD_CARGO, C.NOMBRE, PC.SUELDO, C.COD_CAT_CARGO " PVQuery1 = PVQuery1 & " UNION " PVQuery = "AND UA.SUPERIOR = '" & Mid(PFrmForma.FVAdmin_Academ, 7, 6) & "' " PVQuery = PVQuery & "AND UA.CODIGO NOT IN ( '000000' + (SELECT SUPERIOR FROM BdAlmacenDatos..VS_ADMIN_ACADEM " PVQuery = PVQuery & "WHERE CODIGO = '" & PFrmForma.FVAdmin_Academ & "')) " PVQuery1 = PVQuery1 & GVQuery & PVQuery PVQuery1 = PVQuery1 & " GROUP BY C.COD_CARGO, C.NOMBRE, PC.SUELDO, C.COD_CAT_CARGO " PVQuery1 = PVQuery1 & " UNION " PVQuery = "AND UA.CODIGO = '" & PFrmForma.FVAdmin_Academ & "'" PVQuery1 = PVQuery1 & GVQuery & PVQuery PVQuery1 = PVQuery1 & " GROUP BY C.COD_CARGO, C.NOMBRE, PC.SUELDO, C.COD_CAT_CARGO " GVQuery = PVQuery1 Set RS3 = GrdsF_Recupera_Datos(GVQuery) If Not RS3.EOF Then If Not IsNull(RS3!nombre) Then PFrmForma.CboCargo.Clear

Page 127: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

127

PFrmForma.CboCargo.List(0) = RS3!COD_CARGO PFrmForma.CboCargo.ListIndex = 0 PFrmForma.TxtNmbCargo = RS3!nombre PFrmForma.TxtSueldo = RS3!SUELDO End If For I = 0 To PFrmForma.CboCatCargo.ListCount - 1 If PFrmForma.CboCatCargo.ItemData(I) = RS3!COD_CAT_CARGO Then PFrmForma.CboCatCargo.ListIndex = I Exit For End If Next GVQuery = "SELECT DESCRIPCION " GVQuery = GVQuery & "FROM BdAlmacenDatos..TB_CATEGORIA_DCTE " GVQuery = GVQuery & "WHERE COD_CAT_DCTE = '" & rs1!CAT_DCTE & "'" Set RS3 = GrdsF_Recupera_Datos(GVQuery) If Not RS3.EOF Then If Not IsNull(RS3!DESCRIPCION) Then PFrmForma.CboCatDcte.Clear PFrmForma.CboCatDcte.AddItem (RS3!DESCRIPCION) PFrmForma.CboCatDcte.ListIndex = 0 End If End If RS3.Close End If Set RS3 = Nothing End If If Not IsNull(rs1!Partida) Then Set RS3 = GrdsF_Recupera_Datos("SELECT TIPO_PARTIDA, PARTIDA FROM TB_PARTIDA WHERE COD_PARTIDA = '" & rs1!Partida & "'") If Not RS3.EOF Then PFrmForma.TxtPartida = RS3!Partida GVQuery = "SELECT NOMBRE_TP " End If End If RS.Close Set RS = Nothing PFrmForma.SSTab1.SetFocus End If End If rs1.Close

Page 128: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

128

Set rs1 = Nothing End Sub Sub GP_CmdFacultad_Nomb(PFrmForma As Form) Dim rs1 As New ADODB.Recordset Load FrmDependencia FrmDependencia.FVTipo = PFrmForma.FVTipo FrmDependencia.OptOtrosCar_Click GVrtAnchoCampo = Array("0", "1100", "4000", "4000", "4000") Set rs1 = GrdsF_Recupera_Datos(GVQuery) GP_Cargar_Msfgrid True, FrmDependencia.MFGHelp, GVrtNombreCampo, GVrtAnchoCampo, 5, rs1 FrmDependencia.MFGHelp.Col = 1 FrmDependencia.MFGHelp.Sort = 5 Set FrmDependencia.RS = rs1 FrmDependencia.OptOtrosCar = True FrmDependencia.Caption = "Dependencia." FrmDependencia.Show 1 If Not FrmDependencia.Cancelar Then If FrmDependencia.MFGHelp.Row > 0 Then If FrmDependencia.OptUndad Then PFrmForma.TxtCodFacultad = FrmDependencia.MFGHelp.TextMatrix(FrmDependencia.MFGHelp.Row, 0) PFrmForma.TxtNombreFacultad.Text = FrmDependencia.TxtDescripcion ElseIf FrmDependencia.OptDptoEsc Then PFrmForma.TxtCodFacultad = FrmDependencia.MFGHelp.TextMatrix(FrmDependencia.MFGHelp.Row, 0) PFrmForma.TxtNombreFacultad.Text = FrmDependencia.TxtDescripcion & " - " & FrmDependencia.MFGHelp.TextMatrix(FrmDependencia.MFGHelp.Row, 2) Else PFrmForma.TxtCodFacultad = FrmDependencia.MFGHelp.TextMatrix(FrmDependencia.MFGHelp.Row, 1) PFrmForma.TxtNombreFacultad.Text = FrmDependencia.TxtDescripcion & " ( " & FrmDependencia.MFGHelp.TextMatrix(FrmDependencia.MFGHelp.Row, 3) & " - " & FrmDependencia.MFGHelp.TextMatrix(FrmDependencia.MFGHelp.Row, 4) & " )" End If PFrmForma.FVAdmin_Academ = FVF_Extrae_PK_Depend(PFrmForma.TxtCodFacultad, PFrmForma.FVTipo) 'PFrmForma.CboGeneral.SetFocus Else

Page 129: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

129

PFrmForma.TxtCodFacultad.SetFocus End If Else PFrmForma.TxtCodFacultad.SetFocus End If FrmDependencia.Cancelar = False rs1.Close Set rs1 = Nothing Unload FrmDependencia End Sub Sub GP_TxtFacultad_Nomb(PFrmForma As Form) If PFrmForma.TxtCodFacultad <> "" Then PFrmForma.FVAdmin_Academ = FVF_Extrae_PK_Depend(PFrmForma.TxtCodFacultad, PFrmForma.FVTipo) PFrmForma.TxtNombreFacultad.Text = Trim(RECUPERA_FACULTAD(PFrmForma.FVAdmin_Academ, PFrmForma.FVTipo)) PFrmForma.TxtNombreFacultad.SetFocus Else PFrmForma.TxtNombreFacultad = "" End If End Sub Sub GP_CmdEmpleado_Nomb(PFrmForma As Form) Dim PVQuery, PVQuery1 As String Dim rs1 As New ADODB.Recordset Load FrmHelp FrmHelp.Caption = "Empleados." FPCad = "" If PFrmForma.CboBusqueda.ListIndex = 0 Then GVQuery = "SELECT MAX(A.IDADMISION), DP.APELLIDOS, DP.NOMBRES, DP.INDICE, DP.ID_DATOS_PERSONAL, " GVQuery = GVQuery & "(SELECT CASE CARRERA WHEN '-' THEN " GVQuery = GVQuery & " CASE ESCUELA WHEN '-' THEN UNID_ADMIN_ACADEM " GVQuery = GVQuery & " ELSE ESCUELA + ' - ' + UNID_ADMIN_ACADEM END " GVQuery = GVQuery & " ELSE CASE ESCUELA WHEN '-' THEN CARRERA + ' - ' + UNID_ADMIN_ACADEM " GVQuery = GVQuery & " ELSE CASE CARRERA WHEN '-' THEN ESCUELA + ' ( ' + UNID_ADMIN_ACADEM + ' ) ' " GVQuery = GVQuery & " ELSE CARRERA + ' ( ' + ESCUELA + ' - ' + UNID_ADMIN_ACADEM + ' ) ' END END "

Page 130: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

130

GVQuery = GVQuery & " END AS UNID_ADMIN_ACADEM " GVQuery = GVQuery & "FROM BdAlmacenDatos..VS_ADMIN_ACADEM U " GVQuery = GVQuery & "WHERE U.CODIGO = A.UNIDAD_UNIV) " GVQuery = GVQuery & "FROM DATOS_PERSONAL DP, ADMISION A, BdAlmacenDatos..VS_ADMIN_ACADEM UA, TB_PERFIL_UNIDAD PU " GVQuery = GVQuery & "WHERE DP.ID_DATOS_PERSONAL = A.DATOS_PERSONAL AND ESTADOREG = 0 " GVQuery = GVQuery & "AND A.UNIDAD_UNIV = UA.CODIGO " GVQuery = GVQuery & "AND A.UNIDAD_UNIV = PU.COD_UNIDAD " GVrtNombreCampo = Array("# Admisión", "Apellidos", "Nombres", "Indice", "Fech. Acción", "Datos_Personal", "Unidad") GVrtAnchoCampo = Array("0", "3000", "3000", "1500", "0", "10000") PFrmForma.TxtCodigo.MaxLength = 5 FPCad = "DP.INDICE" End If If PFrmForma.CboBusqueda.ListIndex = 1 Then GVQuery = "SELECT MAX(A.IDADMISION), DP.APELLIDOS, DP.NOMBRES, DP.CEDULA, DP.ID_DATOS_PERSONAL, " GVQuery = GVQuery & "(SELECT CASE CARRERA WHEN '-' THEN " GVQuery = GVQuery & " CASE ESCUELA WHEN '-' THEN UNID_ADMIN_ACADEM " GVQuery = GVQuery & " ELSE ESCUELA + ' - ' + UNID_ADMIN_ACADEM END " GVQuery = GVQuery & " ELSE CASE ESCUELA WHEN '-' THEN CARRERA + ' - ' + UNID_ADMIN_ACADEM " GVQuery = GVQuery & " ELSE CASE CARRERA WHEN '-' THEN ESCUELA + ' ( ' + UNID_ADMIN_ACADEM + ' ) ' " GVQuery = GVQuery & " ELSE CARRERA + ' ( ' + ESCUELA + ' - ' + UNID_ADMIN_ACADEM + ' ) ' END END " GVQuery = GVQuery & " END AS UNID_ADMIN_ACADEM " GVQuery = GVQuery & "FROM BdAlmacenDatos..VS_ADMIN_ACADEM U " GVQuery = GVQuery & "WHERE U.CODIGO = A.UNIDAD_UNIV ) " GVQuery = GVQuery & "FROM DATOS_PERSONAL DP, ADMISION A, BdAlmacenDatos..VS_ADMIN_ACADEM UA, TB_PERFIL_UNIDAD PU " GVQuery = GVQuery & "WHERE DP.ID_DATOS_PERSONAL = A.DATOS_PERSONAL AND ESTADOREG = 0 " GVQuery = GVQuery & "AND A.UNIDAD_UNIV = UA.CODIGO " GVQuery = GVQuery & "AND A.UNIDAD_UNIV = PU.COD_UNIDAD " GVrtNombreCampo = Array("# Admisión", "Apellidos", "Nombres", "Cedula", "Fech. Acción", "Datos_Personal", "Unidad") GVrtAnchoCampo = Array("0", "3000", "3000", "1500", "0", "10000") PFrmForma.TxtCodigo.MaxLength = 10

Page 131: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

131

FPCad = "DP.CEDULA" End If If PFrmForma.TxtCodFacultad <> "" Then PVQuery1 = GVQuery PVQuery = "AND UA.SUPERIOR IN (SELECT SUBSTRING(UA1.CODIGO, 7, 6) FROM BdAlmacenDatos..VS_ADMIN_ACADEM UA1 " PVQuery = PVQuery & "WHERE UA1.SUPERIOR = '" & Mid(PFrmForma.FVAdmin_Academ, 7, 6) & "' " PVQuery = PVQuery & "AND UA1.CODIGO NOT IN ( '000000' + (SELECT SUPERIOR FROM BdAlmacenDatos..VS_ADMIN_ACADEM " PVQuery = PVQuery & "WHERE CODIGO = '" & PFrmForma.FVAdmin_Academ & "'))) " PVQuery1 = PVQuery1 & PVQuery PVQuery1 = PVQuery1 & " GROUP BY DP.APELLIDOS, DP.NOMBRES, " & FPCad & ", DP.ID_DATOS_PERSONAL, A.UNIDAD_UNIV " PVQuery1 = PVQuery1 & " UNION " PVQuery = "AND UA.SUPERIOR = '" & Mid(PFrmForma.FVAdmin_Academ, 7, 6) & "' " PVQuery = PVQuery & "AND UA.CODIGO NOT IN ( '000000' + (SELECT SUPERIOR FROM BdAlmacenDatos..VS_ADMIN_ACADEM " PVQuery = PVQuery & "WHERE CODIGO = '" & PFrmForma.FVAdmin_Academ & "')) " PVQuery1 = PVQuery1 & GVQuery & PVQuery PVQuery1 = PVQuery1 & " GROUP BY DP.APELLIDOS, DP.NOMBRES, " & FPCad & ", DP.ID_DATOS_PERSONAL, A.UNIDAD_UNIV " PVQuery1 = PVQuery1 & " UNION " PVQuery = "AND UA.CODIGO = '" & PFrmForma.FVAdmin_Academ & "'" PVQuery1 = PVQuery1 & GVQuery & PVQuery PVQuery1 = PVQuery1 & " GROUP BY DP.APELLIDOS, DP.NOMBRES, " & FPCad & ", DP.ID_DATOS_PERSONAL, A.UNIDAD_UNIV " GVQuery = PVQuery1 Else GVQuery = GVQuery & GFV_Add_UserPerfil("AND", "UA.") GVQuery = GVQuery & " GROUP BY DP.APELLIDOS, DP.NOMBRES, " & FPCad & ", DP.ID_DATOS_PERSONAL, A.UNIDAD_UNIV " End If Set rs1 = GrdsF_Recupera_Datos(GVQuery) GP_Cargar_Msfgrid True, FrmHelp.MFGHelp, GVrtNombreCampo, GVrtAnchoCampo, 6, rs1 FrmHelp.MFGHelp.Col = 1 FrmHelp.MFGHelp.Sort = 5 Set FrmHelp.RS = rs1

Page 132: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

132

FrmHelp.Campo_Filtro = "APELLIDOS" FrmHelp.Show 1 If Not FrmHelp.Cancelar Then If FrmHelp.MFGHelp.Row > 0 Then PFrmForma.FVAdmision = FrmHelp.MFGHelp.TextMatrix(FrmHelp.MFGHelp.Row, 0) PFrmForma.TxtCodigo = FrmHelp.MFGHelp.TextMatrix(FrmHelp.MFGHelp.Row, 3) PFrmForma.TxtNombre = FrmHelp.MFGHelp.TextMatrix(FrmHelp.MFGHelp.Row, 1) & " " & FrmHelp.MFGHelp.TextMatrix(FrmHelp.MFGHelp.Row, 2) PFrmForma.DATOS_PERSONAL = FrmHelp.MFGHelp.TextMatrix(FrmHelp.MFGHelp.Row, 4) RECUPERA_ADMISION_Nomb PFrmForma PFrmForma.CmdEmpleado.SetFocus Else PFrmForma.TxtCodigo.SetFocus End If Else PFrmForma.TxtCodigo.SetFocus End If FrmHelp.Cancelar = False Unload FrmHelp rs1.Close End Sub Sub GP_TxtCodigo_Nomb(PFrmForma As Form) Dim PVQuery, PVQuery1 As String Dim rs1 As New ADODB.Recordset FPCad = "" If PFrmForma.TxtCodigo <> "" Then If PFrmForma.CboBusqueda.ListIndex = 0 Then PFrmForma.TxtCodigo.MaxLength = 5 FPCad = "DP.INDICE" GVQuery = "SELECT MAX(A.IDADMISION) ADMISION, DP.APELLIDOS, DP.NOMBRES, DP.INDICE, DP.ID_DATOS_PERSONAL, " GVQuery = GVQuery & "(SELECT CASE CARRERA WHEN '-' THEN " GVQuery = GVQuery & " CASE ESCUELA WHEN '-' THEN UNID_ADMIN_ACADEM " GVQuery = GVQuery & " ELSE ESCUELA + ' - ' + UNID_ADMIN_ACADEM END " GVQuery = GVQuery & " ELSE CASE ESCUELA WHEN '-' THEN CARRERA + ' - ' + UNID_ADMIN_ACADEM "

Page 133: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

133

GVQuery = GVQuery & " ELSE CASE CARRERA WHEN '-' THEN ESCUELA + ' ( ' + UNID_ADMIN_ACADEM + ' ) ' " GVQuery = GVQuery & " ELSE CARRERA + ' ( ' + ESCUELA + ' - ' + UNID_ADMIN_ACADEM + ' ) ' END END " GVQuery = GVQuery & " END AS UNID_ADMIN_ACADEM " GVQuery = GVQuery & "FROM BdAlmacenDatos..VS_ADMIN_ACADEM U " GVQuery = GVQuery & "WHERE U.CODIGO = A.UNIDAD_UNIV) " GVQuery = GVQuery & "FROM DATOS_PERSONAL DP, ADMISION A, BdAlmacenDatos..VS_ADMIN_ACADEM UA, TB_PERFIL_UNIDAD PU " GVQuery = GVQuery & "WHERE DP.ID_DATOS_PERSONAL = A.DATOS_PERSONAL AND ESTADOREG = 0 " GVQuery = GVQuery & "AND A.UNIDAD_UNIV = UA.CODIGO " GVQuery = GVQuery & "AND A.UNIDAD_UNIV = PU.COD_UNIDAD " GVQuery = GVQuery & "AND INDICE = '" & PFrmForma.TxtCodigo & "' " End If If PFrmForma.CboBusqueda.ListIndex = 1 Then PFrmForma.TxtCodigo.MaxLength = 10 FPCad = "DP.CEDULA" GVQuery = "SELECT MAX(A.IDADMISION) ADMISION, DP.APELLIDOS, DP.NOMBRES, DP.CEDULA, DP.ID_DATOS_PERSONAL, " GVQuery = GVQuery & "(SELECT CASE CARRERA WHEN '-' THEN " GVQuery = GVQuery & " CASE ESCUELA WHEN '-' THEN UNID_ADMIN_ACADEM " GVQuery = GVQuery & " ELSE ESCUELA + ' - ' + UNID_ADMIN_ACADEM END " GVQuery = GVQuery & " ELSE CASE ESCUELA WHEN '-' THEN CARRERA + ' - ' + UNID_ADMIN_ACADEM " GVQuery = GVQuery & " ELSE CASE CARRERA WHEN '-' THEN ESCUELA + ' ( ' + UNID_ADMIN_ACADEM + ' ) ' " GVQuery = GVQuery & " ELSE CARRERA + ' ( ' + ESCUELA + ' - ' + UNID_ADMIN_ACADEM + ' ) ' END END " GVQuery = GVQuery & " END AS UNID_ADMIN_ACADEM " GVQuery = GVQuery & "FROM BdAlmacenDatos..VS_ADMIN_ACADEM U " GVQuery = GVQuery & "WHERE U.CODIGO = A.UNIDAD_UNIV ) " GVQuery = GVQuery & "FROM DATOS_PERSONAL DP, ADMISION A, BdAlmacenDatos..VS_ADMIN_ACADEM UA, TB_PERFIL_UNIDAD PU " GVQuery = GVQuery & "WHERE DP.ID_DATOS_PERSONAL = A.DATOS_PERSONAL AND ESTADOREG = 0 " GVQuery = GVQuery & "AND A.UNIDAD_UNIV = UA.CODIGO " GVQuery = GVQuery & "AND A.UNIDAD_UNIV = PU.COD_UNIDAD "

Page 134: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

134

GVQuery = GVQuery & "AND DP.CEDULA = '" & PFrmForma.TxtCodigo & "' " End If If PFrmForma.TxtCodFacultad <> "" Then PVQuery1 = GVQuery PVQuery = "AND UA.SUPERIOR IN (SELECT SUBSTRING(UA1.CODIGO, 7, 6) FROM BdAlmacenDatos..VS_ADMIN_ACADEM UA1 " PVQuery = PVQuery & "WHERE UA1.SUPERIOR = '" & Mid(PFrmForma.FVAdmin_Academ, 7, 6) & "' " PVQuery = PVQuery & "AND UA1.CODIGO NOT IN ( '000000' + (SELECT SUPERIOR FROM BdAlmacenDatos..VS_ADMIN_ACADEM " PVQuery = PVQuery & "WHERE CODIGO = '" & PFrmForma.FVAdmin_Academ & "'))) " PVQuery1 = PVQuery1 & PVQuery PVQuery1 = PVQuery1 & " GROUP BY DP.APELLIDOS, DP.NOMBRES, " & FPCad & ", DP.ID_DATOS_PERSONAL, A.UNIDAD_UNIV " PVQuery1 = PVQuery1 & " UNION " PVQuery = "AND UA.SUPERIOR = '" & Mid(PFrmForma.FVAdmin_Academ, 7, 6) & "' " PVQuery = PVQuery & "AND UA.CODIGO NOT IN ( '000000' + (SELECT SUPERIOR FROM BdAlmacenDatos..VS_ADMIN_ACADEM " PVQuery = PVQuery & "WHERE CODIGO = '" & PFrmForma.FVAdmin_Academ & "')) " PVQuery1 = PVQuery1 & GVQuery & PVQuery PVQuery1 = PVQuery1 & " GROUP BY DP.APELLIDOS, DP.NOMBRES, " & FPCad & ", DP.ID_DATOS_PERSONAL, A.UNIDAD_UNIV " PVQuery1 = PVQuery1 & " UNION " PVQuery = "AND UA.CODIGO = '" & PFrmForma.FVAdmin_Academ & "'" PVQuery1 = PVQuery1 & GVQuery & PVQuery PVQuery1 = PVQuery1 & " GROUP BY DP.APELLIDOS, DP.NOMBRES, " & FPCad & ", DP.ID_DATOS_PERSONAL, A.UNIDAD_UNIV " GVQuery = PVQuery1 Else GVQuery = GVQuery & GFV_Add_UserPerfil("AND", "UA.") GVQuery = GVQuery & " GROUP BY DP.APELLIDOS, DP.NOMBRES, " & FPCad & ", DP.ID_DATOS_PERSONAL, A.UNIDAD_UNIV " End If Set rs1 = GrdsF_Recupera_Datos(GVQuery) If Not rs1.EOF Then

Page 135: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

135

PFrmForma.FVAdmision = rs1!ADMISION PFrmForma.TxtNombre = rs1!NOMBRES & " " & rs1!APELLIDOS PFrmForma.DATOS_PERSONAL = rs1!ID_DATOS_PERSONAL If PFrmForma.FraEmp_Busq.Visible Then PFrmForma.CmdEmpleado.SetFocus Else PFrmForma.DTPDesde.SetFocus End If Else MsgBox "Empleado no existe.", vbInformation, "Alerta!" SendKeys "{Home}+{end}" PFrmForma.TxtCodigo = "" PFrmForma.TxtNombre = "" PFrmForma.TxtCodigo.SetFocus End If rs1.Close Else PFrmForma.TxtNombre = "" End If End Sub Public Sub RECUPERA_ADMISION_Nomb(PFrmForma As Form) Dim rs1 As New ADODB.Recordset GVQuery = "SELECT * FROM ADMISION " GVQuery = GVQuery & "WHERE IDADMISION = " & PFrmForma.FVAdmision & " " Set rs1 = GrdsF_Recupera_Datos(GVQuery) If rs1.State = 1 Then If Not rs1.EOF Then PFrmForma.DATOS_PERSONAL = rs1!DATOS_PERSONAL GVQuery_FOTO PFrmForma.Image2, PFrmForma.DATOS_PERSONAL, "C:\Rhumano\Datos\Imagen_tmp.bmp" GVQuery = "SELECT * " GVQuery = GVQuery & "FROM DATOS_PERSONAL DP " GVQuery = GVQuery & "WHERE ID_DATOS_PERSONAL = '" & PFrmForma.DATOS_PERSONAL & "' " Dim RS As New ADODB.Recordset Set RS = GrdsF_Recupera_Datos(GVQuery) If RS.State = 1 Then If Not RS.EOF Then If PFrmForma.CboBusqueda.ListIndex = 0 Then If Not IsNull(RS!indice) Then PFrmForma.TxtCodigo = RS!indice End If

Page 136: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

136

End If If PFrmForma.CboBusqueda.ListIndex = 1 Then If Not IsNull(RS!cedula) Then PFrmForma.TxtCodigo = RS!cedula End If End If If Not IsNull(RS!NOMBRES) Then PFrmForma.TxtNombre = FVF_Recupera_Emp(PFrmForma.DATOS_PERSONAL, RS!SEXO, RS!ESTADO_CIVIL) & " " & RS!NOMBRES & " " & RS!APELLIDOS End If End If End If If Not IsNull(rs1!CARGO) Then Dim RS3 As New ADODB.Recordset Dim TIPO_FF As String PFrmForma.CboCargo.Clear PFrmForma.CboCargo.AddItem ("") PFrmForma.CboCargo.ItemData(0) = rs1!CARGO GVQuery = "SELECT DISTINCT C.COD_CARGO, C.NOMBRE, PC.SUELDO, C.COD_CAT_CARGO " GVQuery = GVQuery & "FROM BdAlmacenDatos..TB_CARGO C, BdAlmacenDatos..TB_CATEGORIA_CARGO CC, " GVQuery = GVQuery & "TB_PARTI_CARGO PC, BdAlmacenDatos..VS_ADMIN_ACADEM UA " GVQuery = GVQuery & "WHERE C.COD_CAT_CARGO = CC.COD_CAT_CARGO " GVQuery = GVQuery & "AND C.SECUENCIAL = PC.COD_CARGO " GVQuery = GVQuery & "AND C.SECUENCIAL = '" & PFrmForma.CboCargo.ItemData(0) & "' " GVQuery = GVQuery & "AND CC.COD_CAT_CARGO = '" & rs1!CATEG_CARGO & "' " GVQuery = GVQuery & "AND PC.UNIDAD_UNIV = UA.CODIGO " PVQuery1 = GVQuery PVQuery = "AND UA.SUPERIOR IN (SELECT SUBSTRING(UA1.CODIGO, 7, 6) FROM BdAlmacenDatos..VS_ADMIN_ACADEM UA1 " PVQuery = PVQuery & "WHERE UA1.SUPERIOR = '" & Mid(PFrmForma.FVAdmin_Academ, 7, 6) & "' " PVQuery = PVQuery & "AND UA1.CODIGO NOT IN ( '000000' + (SELECT SUPERIOR FROM BdAlmacenDatos..VS_ADMIN_ACADEM " PVQuery = PVQuery & "WHERE CODIGO = '" & PFrmForma.FVAdmin_Academ & "'))) " PVQuery1 = PVQuery1 & PVQuery

Page 137: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

137

PVQuery1 = PVQuery1 & " GROUP BY C.COD_CARGO, C.NOMBRE, PC.SUELDO, C.COD_CAT_CARGO " PVQuery1 = PVQuery1 & " UNION " PVQuery = "AND UA.SUPERIOR = '" & Mid(PFrmForma.FVAdmin_Academ, 7, 6) & "' " PVQuery = PVQuery & "AND UA.CODIGO NOT IN ( '000000' + (SELECT SUPERIOR FROM BdAlmacenDatos..VS_ADMIN_ACADEM " PVQuery = PVQuery & "WHERE CODIGO = '" & PFrmForma.FVAdmin_Academ & "')) " PVQuery1 = PVQuery1 & GVQuery & PVQuery PVQuery1 = PVQuery1 & " GROUP BY C.COD_CARGO, C.NOMBRE, PC.SUELDO, C.COD_CAT_CARGO " PVQuery1 = PVQuery1 & " UNION " PVQuery = "AND UA.CODIGO = '" & PFrmForma.FVAdmin_Academ & "'" PVQuery1 = PVQuery1 & GVQuery & PVQuery PVQuery1 = PVQuery1 & " GROUP BY C.COD_CARGO, C.NOMBRE, PC.SUELDO, C.COD_CAT_CARGO " GVQuery = PVQuery1 Set RS3 = GrdsF_Recupera_Datos(GVQuery) If Not RS3.EOF Then If Not IsNull(RS3!nombre) Then PFrmForma.CboCargo.Clear PFrmForma.CboCargo.List(0) = RS3!COD_CARGO PFrmForma.CboCargo.ListIndex = 0 PFrmForma.TxtNmbCargo = RS3!nombre PFrmForma.TxtSueldo = RS3!SUELDO End If For I = 0 To PFrmForma.CboCatCargo.ListCount - 1 If PFrmForma.CboCatCargo.ItemData(I) = RS3!COD_CAT_CARGO Then PFrmForma.CboCatCargo.ListIndex = I Exit For End If Next GVQuery = "SELECT DESCRIPCION " GVQuery = GVQuery & "FROM BdAlmacenDatos..TB_CATEGORIA_DCTE " GVQuery = GVQuery & "WHERE COD_CAT_DCTE = '" & rs1!CAT_DCTE & "'" Set RS3 = GrdsF_Recupera_Datos(GVQuery) If Not RS3.EOF Then If Not IsNull(RS3!DESCRIPCION) Then PFrmForma.CboCatDcte.Clear

Page 138: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

138

PFrmForma.CboCatDcte.AddItem (RS3!DESCRIPCION) PFrmForma.CboCatDcte.ListIndex = 0 End If End If RS3.Close End If Set RS3 = Nothing End If If Not IsNull(rs1!Partida) Then Set RS3 = GrdsF_Recupera_Datos("SELECT TIPO_PARTIDA, PARTIDA FROM TB_PARTIDA WHERE COD_PARTIDA = '" & rs1!Partida & "'") If Not RS3.EOF Then PFrmForma.TxtPartida = RS3!Partida End If End If RS.Close Set RS = Nothing PFrmForma.SSTab1.SetFocus End If End If rs1.Close Set rs1 = Nothing End Sub Sub GP_CmdEmpleado_Posesion(PFrmForma As Form) Dim PVQuery, PVQuery1 As String Dim rs1 As New ADODB.Recordset Load FrmHelp FrmHelp.Caption = "Empleados." FPCad = "" If PFrmForma.CboBusqueda.ListIndex = 0 Then GVQuery = "SELECT MAX(A.IDADMISION), DP.APELLIDOS, DP.NOMBRES, DP.INDICE, DP.ID_DATOS_PERSONAL " GVrtNombreCampo = Array("# Admisión", "Apellidos", "Nombres", "Indice", "Fech. Acción", "Datos_Personal", "Unidad") GVrtAnchoCampo = Array("0", "3000", "3000", "1500", "0", "0", "10000") PFrmForma.TxtCodigo.MaxLength = 5 FPCad = "DP.INDICE" End If If PFrmForma.CboBusqueda.ListIndex = 1 Then GVQuery = "SELECT MAX(A.IDADMISION), DP.APELLIDOS, DP.NOMBRES, DP.CEDULA, DP.ID_DATOS_PERSONAL "

Page 139: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

139

GVrtNombreCampo = Array("# Admisión", "Apellidos", "Nombres", "Cedula", "Datos_Personal", "Unidad") GVrtAnchoCampo = Array("0", "3000", "3000", "1500", "0", "10000") PFrmForma.TxtCodigo.MaxLength = 10 FPCad = "DP.CEDULA" End If GVQuery = GVQuery & "FROM DATOS_PERSONAL DP, ADMISION A, BdAlmacenDatos..VS_ADMIN_ACADEM UA " GVQuery = GVQuery & "WHERE DP.ID_DATOS_PERSONAL = A.DATOS_PERSONAL AND ESTADOREG = 0 " GVQuery = GVQuery & "AND A.UNIDAD_UNIV = UA.CODIGO " Select Case PFrmForma.CboClase.ItemData(PFrmForma.CboClase.ListIndex) Case 1 GVQuery = GVQuery & "AND A.IDADMISION IN (SELECT ADMISION FROM TB_ACCION) " Case 2 GVQuery = GVQuery & "AND A.IDADMISION IN (SELECT ADMISION FROM TB_NOMBRAMIENTO) " Case 3 GVQuery = GVQuery & "AND A.IDADMISION IN (SELECT ADMISION FROM CONTRATO " GVQuery = GVQuery & "WHERE ESTADO_CONTRATO = 1 AND TIPO = '" & PFrmForma.FVTipoContrato & "') " Case 4 GVQuery = GVQuery & "AND A.IDADMISION IN (SELECT ADMISION FROM CONTRATO " GVQuery = GVQuery & "WHERE ESTADO_CONTRATO = 2 AND TIPO = '" & PFrmForma.FVTipoContrato & "') " End Select If PFrmForma.TxtCodFacultad <> "" Then PVQuery1 = GVQuery PVQuery = "AND UA.SUPERIOR IN (SELECT SUBSTRING(UA1.CODIGO, 7, 6) FROM BdAlmacenDatos..VS_ADMIN_ACADEM UA1 " PVQuery = PVQuery & "WHERE UA1.SUPERIOR = '" & Mid(PFrmForma.FVAdmin_Academ, 7, 6) & "' " PVQuery = PVQuery & "AND UA1.CODIGO NOT IN ( '000000' + (SELECT SUPERIOR FROM BdAlmacenDatos..VS_ADMIN_ACADEM " PVQuery = PVQuery & "WHERE CODIGO = '" & PFrmForma.FVAdmin_Academ & "'))) " PVQuery1 = PVQuery1 & PVQuery PVQuery1 = PVQuery1 & " GROUP BY DP.APELLIDOS, DP.NOMBRES, " & FPCad & ", DP.ID_DATOS_PERSONAL, A.UNIDAD_UNIV "

Page 140: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

140

PVQuery1 = PVQuery1 & " UNION " PVQuery = "AND UA.SUPERIOR = '" & Mid(PFrmForma.FVAdmin_Academ, 7, 6) & "' " PVQuery = PVQuery & "AND UA.CODIGO NOT IN ( '000000' + (SELECT SUPERIOR FROM BdAlmacenDatos..VS_ADMIN_ACADEM " PVQuery = PVQuery & "WHERE CODIGO = '" & PFrmForma.FVAdmin_Academ & "')) " PVQuery1 = PVQuery1 & GVQuery & PVQuery PVQuery1 = PVQuery1 & " GROUP BY DP.APELLIDOS, DP.NOMBRES, " & FPCad & ", DP.ID_DATOS_PERSONAL, A.UNIDAD_UNIV " PVQuery1 = PVQuery1 & " UNION " PVQuery = "AND UA.CODIGO = '" & PFrmForma.FVAdmin_Academ & "'" PVQuery1 = PVQuery1 & GVQuery & PVQuery PVQuery1 = PVQuery1 & " GROUP BY DP.APELLIDOS, DP.NOMBRES, " & FPCad & ", DP.ID_DATOS_PERSONAL, A.UNIDAD_UNIV " GVQuery = PVQuery1 Else GVQuery = GVQuery & " GROUP BY DP.APELLIDOS, DP.NOMBRES, " & FPCad & ", DP.ID_DATOS_PERSONAL " End If Set rs1 = GrdsF_Recupera_Datos(GVQuery) GP_Cargar_Msfgrid True, FrmHelp.MFGHelp, GVrtNombreCampo, GVrtAnchoCampo, 6, rs1 FrmHelp.MFGHelp.Col = 1 FrmHelp.MFGHelp.Sort = 5 Set FrmHelp.RS = rs1 FrmHelp.Campo_Filtro = "APELLIDOS" FrmHelp.Show 1 If Not FrmHelp.Cancelar Then If FrmHelp.MFGHelp.Row > 0 Then PFrmForma.FVAdmision = FrmHelp.MFGHelp.TextMatrix(FrmHelp.MFGHelp.Row, 0) PFrmForma.TxtCodigo = FrmHelp.MFGHelp.TextMatrix(FrmHelp.MFGHelp.Row, 3) PFrmForma.TxtNombre = FrmHelp.MFGHelp.TextMatrix(FrmHelp.MFGHelp.Row, 1) & " " & FrmHelp.MFGHelp.TextMatrix(FrmHelp.MFGHelp.Row, 2) PFrmForma.DATOS_PERSONAL = FrmHelp.MFGHelp.TextMatrix(FrmHelp.MFGHelp.Row, 4) RECUPERA_ADMISION_Nomb PFrmForma PFrmForma.CmdEmpleado.SetFocus Else PFrmForma.TxtCodigo.SetFocus End If

Page 141: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

141

Else PFrmForma.TxtCodigo.SetFocus End If FrmHelp.Cancelar = False Unload FrmHelp rs1.Close End Sub Sub GP_TxtCodigo_Posesion(PFrmForma As Form) Dim PVQuery, PVQuery1 As String Dim rs1 As New ADODB.Recordset FPCad = "" If PFrmForma.TxtCodigo <> "" Then If PFrmForma.CboBusqueda.ListIndex = 0 Then GVQuery = "SELECT MAX(A.IDADMISION) ADMISION, DP.APELLIDOS, DP.NOMBRES, DP.INDICE, DP.ID_DATOS_PERSONAL " GVrtNombreCampo = Array("# Admisión", "Apellidos", "Nombres", "Indice", "Fech. Acción", "Datos_Personal", "Unidad") GVrtAnchoCampo = Array("0", "3000", "3000", "1500", "0", "0", "10000") PFrmForma.TxtCodigo.MaxLength = 5 FPCad = "DP.INDICE" End If If PFrmForma.CboBusqueda.ListIndex = 1 Then GVQuery = "SELECT MAX(A.IDADMISION) ADMISION, DP.APELLIDOS, DP.NOMBRES, DP.CEDULA, DP.ID_DATOS_PERSONAL " GVrtNombreCampo = Array("# Admisión", "Apellidos", "Nombres", "Cedula", "Datos_Personal", "Unidad") GVrtAnchoCampo = Array("0", "3000", "3000", "1500", "0", "10000") PFrmForma.TxtCodigo.MaxLength = 10 FPCad = "DP.CEDULA" End If GVQuery = GVQuery & "FROM DATOS_PERSONAL DP, ADMISION A, BdAlmacenDatos..VS_ADMIN_ACADEM UA " GVQuery = GVQuery & "WHERE DP.ID_DATOS_PERSONAL = A.DATOS_PERSONAL AND ESTADOREG = 0 " GVQuery = GVQuery & "AND A.UNIDAD_UNIV = UA.CODIGO " GVQuery = GVQuery & "AND " & FPCad & " = '" & PFrmForma.TxtCodigo & "' " Select Case PFrmForma.CboClase.ItemData(PFrmForma.CboClase.ListIndex) Case 1 GVQuery = GVQuery & "AND A.IDADMISION IN (SELECT ADMISION FROM TB_ACCION "

Page 142: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

142

Case 2 GVQuery = GVQuery & "AND A.IDADMISION IN (SELECT ADMISION FROM TB_NOMBRAMIENTO " Case 3 GVQuery = GVQuery & "AND A.IDADMISION IN (SELECT ADMISION FROM CONTRATO " GVQuery = GVQuery & "AND ESTADO_CONTRATO = 1 AND TIPO = '" & PFrmForma.FVTipoContrato & "') " Case 4 GVQuery = GVQuery & "AND A.IDADMISION IN (SELECT ADMISION FROM CONTRATO " GVQuery = GVQuery & "WHERE ESTADO_CONTRATO = 2 AND TIPO = '" & PFrmForma.FVTipoContrato & "') " End Select GVQuery = GVQuery & GFV_Add_Perfil_2(PFrmForma.FVTipo) If PFrmForma.TxtCodFacultad <> "" Then PVQuery1 = GVQuery PVQuery = "AND UA.SUPERIOR IN (SELECT SUBSTRING(UA1.CODIGO, 7, 6) FROM BdAlmacenDatos..VS_ADMIN_ACADEM UA1 " PVQuery = PVQuery & "WHERE UA1.SUPERIOR = '" & Mid(PFrmForma.FVAdmin_Academ, 7, 6) & "' " PVQuery = PVQuery & "AND UA1.CODIGO NOT IN ( '000000' + (SELECT SUPERIOR FROM BdAlmacenDatos..VS_ADMIN_ACADEM " PVQuery = PVQuery & "WHERE CODIGO = '" & PFrmForma.FVAdmin_Academ & "'))) " PVQuery1 = PVQuery1 & PVQuery PVQuery1 = PVQuery1 & " GROUP BY DP.APELLIDOS, DP.NOMBRES, " & FPCad & ", DP.ID_DATOS_PERSONAL, A.UNIDAD_UNIV " PVQuery1 = PVQuery1 & " UNION " PVQuery = "AND UA.SUPERIOR = '" & Mid(PFrmForma.FVAdmin_Academ, 7, 6) & "' " PVQuery = PVQuery & "AND UA.CODIGO NOT IN ( '000000' + (SELECT SUPERIOR FROM BdAlmacenDatos..VS_ADMIN_ACADEM " PVQuery = PVQuery & "WHERE CODIGO = '" & PFrmForma.FVAdmin_Academ & "')) " PVQuery1 = PVQuery1 & GVQuery & PVQuery PVQuery1 = PVQuery1 & " GROUP BY DP.APELLIDOS, DP.NOMBRES, " & FPCad & ", DP.ID_DATOS_PERSONAL, A.UNIDAD_UNIV " PVQuery1 = PVQuery1 & " UNION " PVQuery = "AND UA.CODIGO = '" & PFrmForma.FVAdmin_Academ & "'"

Page 143: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

143

PVQuery1 = PVQuery1 & GVQuery & PVQuery PVQuery1 = PVQuery1 & " GROUP BY DP.APELLIDOS, DP.NOMBRES, " & FPCad & ", DP.ID_DATOS_PERSONAL, A.UNIDAD_UNIV " GVQuery = PVQuery1 Else GVQuery = GVQuery & " GROUP BY DP.APELLIDOS, DP.NOMBRES, " & FPCad & ", DP.ID_DATOS_PERSONAL " End If Set rs1 = GrdsF_Recupera_Datos(GVQuery) If Not rs1.EOF Then PFrmForma.FVAdmision = rs1!ADMISION PFrmForma.TxtNombre = rs1!NOMBRES & " " & rs1!APELLIDOS PFrmForma.DATOS_PERSONAL = rs1!ID_DATOS_PERSONAL RECUPERA_ADMISION_Nomb PFrmForma PFrmForma.CmdEmpleado.SetFocus Else MsgBox "Empleado no existe.", vbInformation, "Alerta!" SendKeys "{Home}+{end}" PFrmForma.TxtCodigo = "" PFrmForma.TxtNombre = "" PFrmForma.TxtCodigo.SetFocus End If rs1.Close Else PFrmForma.TxtNombre = "" End If End Sub Sub GP_OtrasUniversidad(PFrmForma As Form, PVUniversidad As String) Dim rs1 As New ADODB.Recordset Load FrmOtraUniv GVQuery = "SELECT CODIGO, DEP_CARRERA, CARRERA, ESCUELA, UNID_ADMIN_ACADEM " GVQuery = GVQuery & "FROM BdAlmacenDatos..VS_UNIDAD_ACADEMICA " GVQuery = GVQuery & "WHERE COD_UNIVERSIDAD = '" & PVUniversidad & "'" GVrtNombreCampo = Array("SECUENCIA", "CODIGO", "CARRERA", "ESCUELA", "FACULTAD") FrmOtraUniv.Campo_Filtro = "CARRERA" FrmOtraUniv.FNUniversidad = PVUniversidad FrmOtraUniv.FVTipo = "F" GVrtAnchoCampo = Array("0", "1100", "4000", "4000", "4000")

Page 144: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

144

Set rs1 = GrdsF_Recupera_Datos(GVQuery) Set FrmOtraUniv.RS = rs1 GP_Cargar_Msfgrid True, FrmOtraUniv.MFGHelp, GVrtNombreCampo, GVrtAnchoCampo, 5, rs1 FrmOtraUniv.MFGHelp.Col = 2 FrmOtraUniv.MFGHelp.Sort = 5 FrmOtraUniv.OptOtrosCar = True FrmOtraUniv.Caption = "Dependencia." FrmOtraUniv.Show 1 If Not FrmOtraUniv.Cancelar Then If FrmOtraUniv.MFGHelp.Row > 0 Then If FrmOtraUniv.OptUndad Then PFrmForma.TxtCodFacultad = FrmOtraUniv.MFGHelp.TextMatrix(FrmOtraUniv.MFGHelp.Row, 0) PFrmForma.TxtNombreFacultad.Text = FrmOtraUniv.TxtDescripcion ElseIf FrmOtraUniv.OptDptoEsc Then PFrmForma.TxtCodFacultad = FrmOtraUniv.MFGHelp.TextMatrix(FrmOtraUniv.MFGHelp.Row, 0) PFrmForma.TxtNombreFacultad.Text = FrmOtraUniv.TxtDescripcion & " - " & FrmOtraUniv.MFGHelp.TextMatrix(FrmOtraUniv.MFGHelp.Row, 2) Else PFrmForma.TxtCodFacultad = FrmOtraUniv.MFGHelp.TextMatrix(FrmOtraUniv.MFGHelp.Row, 1) PFrmForma.TxtNombreFacultad.Text = FrmOtraUniv.TxtDescripcion & " ( " & FrmOtraUniv.MFGHelp.TextMatrix(FrmOtraUniv.MFGHelp.Row, 3) & " - " & FrmOtraUniv.MFGHelp.TextMatrix(FrmOtraUniv.MFGHelp.Row, 4) & " )" End If PFrmForma.FVAdmin_Academ = FVF_Extrae_PK_Depend(PFrmForma.TxtCodFacultad, PFrmForma.FVTipo, PVUniversidad) 'PFrmForma.CboGeneral.SetFocus Else PFrmForma.TxtCodFacultad.SetFocus End If Else PFrmForma.TxtCodFacultad.SetFocus End If FrmOtraUniv.Cancelar = False rs1.Close Set rs1 = Nothing Unload FrmOtraUniv End Sub

Page 145: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

145

Sub GP_CmdFacultad(PFrmForma As Form) Dim rs1 As New ADODB.Recordset Load FrmDependencia FrmDependencia.OptOtrosCar_Click FrmDependencia.FVTipo = PFrmForma.FVTipo GVrtAnchoCampo = Array("0", "1100", "4000", "4000", "4000") Set rs1 = GrdsF_Recupera_Datos(GVQuery) Set FrmDependencia.RS = rs1 GP_Cargar_Msfgrid True, FrmDependencia.MFGHelp, GVrtNombreCampo, GVrtAnchoCampo, 5, rs1 FrmDependencia.MFGHelp.Col = 1 FrmDependencia.MFGHelp.Sort = 5 FrmDependencia.OptOtrosCar = True FrmDependencia.Caption = "Dependencia." FrmDependencia.Show 1 If Not FrmDependencia.Cancelar Then If FrmDependencia.MFGHelp.Row > 0 Then If FrmDependencia.OptUndad Then PFrmForma.TxtCodFacultad = FrmDependencia.MFGHelp.TextMatrix(FrmDependencia.MFGHelp.Row, 0) PFrmForma.TxtNombreFacultad.Text = FrmDependencia.TxtDescripcion ElseIf FrmDependencia.OptDptoEsc Then PFrmForma.TxtCodFacultad = FrmDependencia.MFGHelp.TextMatrix(FrmDependencia.MFGHelp.Row, 0) PFrmForma.TxtNombreFacultad.Text = FrmDependencia.TxtDescripcion & " - " & FrmDependencia.MFGHelp.TextMatrix(FrmDependencia.MFGHelp.Row, 2) Else PFrmForma.TxtCodFacultad = FrmDependencia.MFGHelp.TextMatrix(FrmDependencia.MFGHelp.Row, 1) PFrmForma.TxtNombreFacultad.Text = FrmDependencia.TxtDescripcion & " ( " & FrmDependencia.MFGHelp.TextMatrix(FrmDependencia.MFGHelp.Row, 3) & " - " & FrmDependencia.MFGHelp.TextMatrix(FrmDependencia.MFGHelp.Row, 4) & " )" End If PFrmForma.FVAdmin_Academ = FVF_Extrae_PK_Depend(PFrmForma.TxtCodFacultad, PFrmForma.FVTipo) 'PFrmForma.CboGeneral.SetFocus Else PFrmForma.TxtCodFacultad.SetFocus End If Else

Page 146: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

146

PFrmForma.TxtCodFacultad.SetFocus End If FrmDependencia.Cancelar = False rs1.Close Set rs1 = Nothing Unload FrmDependencia End Sub Sub GP_TxtFacultad(PFrmForma As Form) If PFrmForma.TxtCodFacultad <> "" Then PFrmForma.FVAdmin_Academ = FVF_Extrae_PK_Depend(PFrmForma.TxtCodFacultad, PFrmForma.FVTipo) PFrmForma.TxtNombreFacultad.Text = Trim(RECUPERA_FACULTAD(PFrmForma.FVAdmin_Academ, PFrmForma.FVTipo)) PFrmForma.TxtNombreFacultad.SetFocus Else PFrmForma.TxtNombreFacultad = "" End If End Sub Sub GP_CmdEmpleado(PFrmForma As Form) Dim PVQuery, PVQuery1 As String Dim rs1 As New ADODB.Recordset Load FrmHelp FrmHelp.Caption = "Empleados." FPCad = "" If PFrmForma.CboBusqueda.ListIndex = 0 Then GVQuery = "SELECT MAX(A.IDADMISION), DP.APELLIDOS, DP.NOMBRES, DP.INDICE, DP.ID_DATOS_PERSONAL, " GVQuery = GVQuery & "(SELECT CASE CARRERA WHEN '-' THEN " GVQuery = GVQuery & " CASE ESCUELA WHEN '-' THEN UNID_ADMIN_ACADEM " GVQuery = GVQuery & " ELSE ESCUELA + ' - ' + UNID_ADMIN_ACADEM END " GVQuery = GVQuery & " ELSE CASE ESCUELA WHEN '-' THEN CARRERA + ' - ' + UNID_ADMIN_ACADEM " GVQuery = GVQuery & " ELSE CASE CARRERA WHEN '-' THEN ESCUELA + ' ( ' + UNID_ADMIN_ACADEM + ' ) ' " GVQuery = GVQuery & " ELSE CARRERA + ' ( ' + ESCUELA + ' - ' + UNID_ADMIN_ACADEM + ' ) ' END END " GVQuery = GVQuery & " END AS UNID_ADMIN_ACADEM " GVQuery = GVQuery & "FROM BdAlmacenDatos..VS_ADMIN_ACADEM U "

Page 147: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

147

GVQuery = GVQuery & "WHERE U.CODIGO = A.UNIDAD_UNIV ) " GVQuery = GVQuery & "FROM DATOS_PERSONAL DP, ADMISION A, BdAlmacenDatos..VS_ADMIN_ACADEM UA, TB_PERFIL_UNIDAD PU " GVQuery = GVQuery & "WHERE DP.ID_DATOS_PERSONAL = A.DATOS_PERSONAL AND ESTADOREG = 0 " GVQuery = GVQuery & "AND A.UNIDAD_UNIV = UA.CODIGO " GVQuery = GVQuery & "AND A.UNIDAD_UNIV = PU.COD_UNIDAD " GVrtNombreCampo = Array("# Admisión", "Apellidos", "Nombres", "Indice", "Fech. Acción", "Datos_Personal", "Unidad") GVrtAnchoCampo = Array("0", "3000", "3000", "1500", "0", "10000") PFrmForma.TxtCodigo.MaxLength = 5 FPCad = "DP.INDICE" End If If PFrmForma.CboBusqueda.ListIndex = 1 Then GVQuery = "SELECT MAX(A.IDADMISION), DP.APELLIDOS, DP.NOMBRES, DP.CEDULA, DP.ID_DATOS_PERSONAL, " GVQuery = GVQuery & "(SELECT CASE CARRERA WHEN '-' THEN " GVQuery = GVQuery & " CASE ESCUELA WHEN '-' THEN UNID_ADMIN_ACADEM " GVQuery = GVQuery & " ELSE ESCUELA + ' - ' + UNID_ADMIN_ACADEM END " GVQuery = GVQuery & " ELSE CASE ESCUELA WHEN '-' THEN CARRERA + ' - ' + UNID_ADMIN_ACADEM " GVQuery = GVQuery & " ELSE CASE CARRERA WHEN '-' THEN ESCUELA + ' ( ' + UNID_ADMIN_ACADEM + ' ) ' " GVQuery = GVQuery & " ELSE CARRERA + ' ( ' + ESCUELA + ' - ' + UNID_ADMIN_ACADEM + ' ) ' END END " GVQuery = GVQuery & " END AS UNID_ADMIN_ACADEM " GVQuery = GVQuery & "FROM BdAlmacenDatos..VS_ADMIN_ACADEM U " GVQuery = GVQuery & "WHERE U.CODIGO = A.UNIDAD_UNIV) " GVQuery = GVQuery & "FROM DATOS_PERSONAL DP, ADMISION A, BdAlmacenDatos..VS_ADMIN_ACADEM UA, TB_PERFIL_UNIDAD PU " GVQuery = GVQuery & "WHERE DP.ID_DATOS_PERSONAL = A.DATOS_PERSONAL AND ESTADOREG = 0 " GVQuery = GVQuery & "AND A.UNIDAD_UNIV = UA.CODIGO " GVQuery = GVQuery & "AND A.UNIDAD_UNIV = PU.COD_UNIDAD " GVrtNombreCampo = Array("# Admisión", "Apellidos", "Nombres", "Cedula", "Fech. Acción", "Datos_Personal", "Unidad") GVrtAnchoCampo = Array("0", "3000", "3000", "1500", "0", "10000") PFrmForma.TxtCodigo.MaxLength = 10 FPCad = "DP.CEDULA" End If If PFrmForma.TxtCodFacultad <> "" Then

Page 148: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

148

PVQuery1 = GVQuery PVQuery = "AND UA.SUPERIOR IN (SELECT SUBSTRING(UA1.CODIGO, 7, 6) FROM BdAlmacenDatos..VS_ADMIN_ACADEM UA1 " PVQuery = PVQuery & "WHERE UA1.SUPERIOR = '" & Mid(PFrmForma.FVAdmin_Academ, 7, 6) & "' " PVQuery = PVQuery & "AND UA1.CODIGO NOT IN ( '000000' + (SELECT SUPERIOR FROM BdAlmacenDatos..VS_ADMIN_ACADEM " PVQuery = PVQuery & "WHERE CODIGO = '" & PFrmForma.FVAdmin_Academ & "'))) " PVQuery1 = PVQuery1 & PVQuery PVQuery1 = PVQuery1 & " GROUP BY DP.APELLIDOS, DP.NOMBRES, " & FPCad & ", DP.ID_DATOS_PERSONAL, A.UNIDAD_UNIV " PVQuery1 = PVQuery1 & " UNION " PVQuery = "AND UA.SUPERIOR = '" & Mid(PFrmForma.FVAdmin_Academ, 7, 6) & "' " PVQuery = PVQuery & "AND UA.CODIGO NOT IN ( '000000' + (SELECT SUPERIOR FROM BdAlmacenDatos..VS_ADMIN_ACADEM " PVQuery = PVQuery & "WHERE CODIGO = '" & PFrmForma.FVAdmin_Academ & "')) " PVQuery1 = PVQuery1 & GVQuery & PVQuery PVQuery1 = PVQuery1 & " GROUP BY DP.APELLIDOS, DP.NOMBRES, " & FPCad & ", DP.ID_DATOS_PERSONAL, A.UNIDAD_UNIV " PVQuery1 = PVQuery1 & " UNION " PVQuery = "AND UA.CODIGO = '" & PFrmForma.FVAdmin_Academ & "'" PVQuery1 = PVQuery1 & GVQuery & PVQuery PVQuery1 = PVQuery1 & " GROUP BY DP.APELLIDOS, DP.NOMBRES, " & FPCad & ", DP.ID_DATOS_PERSONAL, A.UNIDAD_UNIV " GVQuery = PVQuery1 Else 'GVQuery = GVQuery & GFV_Add_UserPerfil("AND", "UA.") GVQuery = GVQuery & " GROUP BY DP.APELLIDOS, DP.NOMBRES, " & FPCad & ", DP.ID_DATOS_PERSONAL, A.UNIDAD_UNIV " End If Set rs1 = GrdsF_Recupera_Datos(GVQuery) GP_Cargar_Msfgrid True, FrmHelp.MFGHelp, GVrtNombreCampo, GVrtAnchoCampo, 6, rs1 FrmHelp.MFGHelp.Col = 1 FrmHelp.MFGHelp.Sort = 5 Set FrmHelp.RS = rs1 FrmHelp.Campo_Filtro = "APELLIDOS" FrmHelp.Show 1 If Not FrmHelp.Cancelar Then If FrmHelp.MFGHelp.Row > 0 Then

Page 149: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

149

PFrmForma.TxtCodigo = FrmHelp.MFGHelp.TextMatrix(FrmHelp.MFGHelp.Row, 3) PFrmForma.TxtNombre = FrmHelp.MFGHelp.TextMatrix(FrmHelp.MFGHelp.Row, 1) & " " & FrmHelp.MFGHelp.TextMatrix(FrmHelp.MFGHelp.Row, 2) PFrmForma.DATOS_PERSONAL = FrmHelp.MFGHelp.TextMatrix(FrmHelp.MFGHelp.Row, 4) PFrmForma.CmdEmpleado.SetFocus Else PFrmForma.TxtCodigo.SetFocus End If Else PFrmForma.TxtCodigo.SetFocus End If FrmHelp.Cancelar = False Unload FrmHelp rs1.Close End Sub Sub GP_TxtCodigo(PFrmForma As Form) Dim PVQuery, PVQuery1 As String Dim rs1 As New ADODB.Recordset FPCad = "" If PFrmForma.TxtCodigo <> "" Then If PFrmForma.CboBusqueda.ListIndex = 0 Then PFrmForma.TxtCodigo.MaxLength = 5 FPCad = "DP.INDICE" GVQuery = "SELECT MAX(A.IDADMISION), DP.APELLIDOS, DP.NOMBRES, DP.INDICE, DP.ID_DATOS_PERSONAL, " GVQuery = GVQuery & "(SELECT CASE CARRERA WHEN '-' THEN " GVQuery = GVQuery & " CASE ESCUELA WHEN '-' THEN UNID_ADMIN_ACADEM " GVQuery = GVQuery & " ELSE ESCUELA + ' - ' + UNID_ADMIN_ACADEM END " GVQuery = GVQuery & " ELSE CASE ESCUELA WHEN '-' THEN CARRERA + ' - ' + UNID_ADMIN_ACADEM " GVQuery = GVQuery & " ELSE CASE CARRERA WHEN '-' THEN ESCUELA + ' ( ' + UNID_ADMIN_ACADEM + ' ) ' " GVQuery = GVQuery & " ELSE CARRERA + ' ( ' + ESCUELA + ' - ' + UNID_ADMIN_ACADEM + ' ) ' END END " GVQuery = GVQuery & " END AS UNID_ADMIN_ACADEM " GVQuery = GVQuery & "FROM BdAlmacenDatos..VS_ADMIN_ACADEM U " GVQuery = GVQuery & "WHERE U.CODIGO = A.UNIDAD_UNIV) "

Page 150: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

150

GVQuery = GVQuery & "FROM DATOS_PERSONAL DP, ADMISION A, BdAlmacenDatos..VS_ADMIN_ACADEM UA, TB_PERFIL_UNIDAD PU " GVQuery = GVQuery & "WHERE DP.ID_DATOS_PERSONAL = A.DATOS_PERSONAL AND ESTADOREG = 0 " GVQuery = GVQuery & "AND A.UNIDAD_UNIV = UA.CODIGO " GVQuery = GVQuery & "AND A.UNIDAD_UNIV = PU.COD_UNIDAD " GVQuery = GVQuery & "AND INDICE = '" & PFrmForma.TxtCodigo & "' " End If If PFrmForma.CboBusqueda.ListIndex = 1 Then PFrmForma.TxtCodigo.MaxLength = 10 FPCad = "DP.CEDULA" GVQuery = "SELECT MAX(A.IDADMISION), DP.APELLIDOS, DP.NOMBRES, DP.CEDULA, DP.ID_DATOS_PERSONAL, " GVQuery = GVQuery & "(SELECT CASE CARRERA WHEN '-' THEN " GVQuery = GVQuery & " CASE ESCUELA WHEN '-' THEN UNID_ADMIN_ACADEM " GVQuery = GVQuery & " ELSE ESCUELA + ' - ' + UNID_ADMIN_ACADEM END " GVQuery = GVQuery & " ELSE CASE ESCUELA WHEN '-' THEN CARRERA + ' - ' + UNID_ADMIN_ACADEM " GVQuery = GVQuery & " ELSE CASE CARRERA WHEN '-' THEN ESCUELA + ' ( ' + UNID_ADMIN_ACADEM + ' ) ' " GVQuery = GVQuery & " ELSE CARRERA + ' ( ' + ESCUELA + ' - ' + UNID_ADMIN_ACADEM + ' ) ' END END " GVQuery = GVQuery & " END AS UNID_ADMIN_ACADEM " GVQuery = GVQuery & "FROM BdAlmacenDatos..VS_ADMIN_ACADEM U " GVQuery = GVQuery & "WHERE U.CODIGO = A.UNIDAD_UNIV ) " GVQuery = GVQuery & "FROM DATOS_PERSONAL DP, ADMISION A, BdAlmacenDatos..VS_ADMIN_ACADEM UA, TB_PERFIL_UNIDAD PU " GVQuery = GVQuery & "WHERE DP.ID_DATOS_PERSONAL = A.DATOS_PERSONAL AND ESTADOREG = 0 " GVQuery = GVQuery & "AND A.UNIDAD_UNIV = UA.CODIGO " GVQuery = GVQuery & "AND A.UNIDAD_UNIV = PU.COD_UNIDAD " GVQuery = GVQuery & "AND DP.CEDULA = '" & PFrmForma.TxtCodigo & "' " End If If PFrmForma.TxtCodFacultad <> "" Then PVQuery1 = GVQuery PVQuery = "AND UA.SUPERIOR IN (SELECT SUBSTRING(UA1.CODIGO, 7, 6) FROM BdAlmacenDatos..VS_ADMIN_ACADEM UA1 "

Page 151: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

151

PVQuery = PVQuery & "WHERE UA1.SUPERIOR = '" & Mid(PFrmForma.FVAdmin_Academ, 7, 6) & "' " PVQuery = PVQuery & "AND UA1.CODIGO NOT IN ( '000000' + (SELECT SUPERIOR FROM BdAlmacenDatos..VS_ADMIN_ACADEM " PVQuery = PVQuery & "WHERE CODIGO = '" & PFrmForma.FVAdmin_Academ & "'))) " PVQuery1 = PVQuery1 & PVQuery PVQuery1 = PVQuery1 & " GROUP BY DP.APELLIDOS, DP.NOMBRES, " & FPCad & ", DP.ID_DATOS_PERSONAL, A.UNIDAD_UNIV " PVQuery1 = PVQuery1 & " UNION " PVQuery = "AND UA.SUPERIOR = '" & Mid(PFrmForma.FVAdmin_Academ, 7, 6) & "' " PVQuery = PVQuery & "AND UA.CODIGO NOT IN ( '000000' + (SELECT SUPERIOR FROM BdAlmacenDatos..VS_ADMIN_ACADEM " PVQuery = PVQuery & "WHERE CODIGO = '" & PFrmForma.FVAdmin_Academ & "')) " PVQuery1 = PVQuery1 & GVQuery & PVQuery PVQuery1 = PVQuery1 & " GROUP BY DP.APELLIDOS, DP.NOMBRES, " & FPCad & ", DP.ID_DATOS_PERSONAL, A.UNIDAD_UNIV " PVQuery1 = PVQuery1 & " UNION " PVQuery = "AND UA.CODIGO = '" & PFrmForma.FVAdmin_Academ & "'" PVQuery1 = PVQuery1 & GVQuery & PVQuery PVQuery1 = PVQuery1 & " GROUP BY DP.APELLIDOS, DP.NOMBRES, " & FPCad & ", DP.ID_DATOS_PERSONAL, A.UNIDAD_UNIV " GVQuery = PVQuery1 Else GVQuery = GVQuery & GFV_Add_UserPerfil("AND", "UA.") GVQuery = GVQuery & " GROUP BY DP.APELLIDOS, DP.NOMBRES, " & FPCad & ", DP.ID_DATOS_PERSONAL, A.UNIDAD_UNIV " End If Set rs1 = GrdsF_Recupera_Datos(GVQuery) If Not rs1.EOF Then PFrmForma.TxtNombre = rs1!NOMBRES & " " & rs1!APELLIDOS PFrmForma.DATOS_PERSONAL = rs1!ID_DATOS_PERSONAL If PFrmForma.FraEmp_Busq.Visible Then PFrmForma.CmdEmpleado.SetFocus Else PFrmForma.DTPDesde.SetFocus End If Else

Page 152: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

152

MsgBox "Empleado no existe.", vbInformation, "Alerta!" SendKeys "{Home}+{end}" PFrmForma.TxtCodigo = "" PFrmForma.TxtNombre = "" PFrmForma.TxtCodigo.SetFocus End If rs1.Close Else PFrmForma.TxtNombre = "" End If End Sub Sub GP_Inserta_dias_NoLaborables() Dim PRdsDia_Feriado As New ADOR.Recordset GVQuery = "SELECT * FROM DIA_FERIADO " Set PRdsDia_Feriado = GrdsF_Recupera_Datos(GVQuery) If Not PRdsDia_Feriado.EOF Then End If PRdsDia_Feriado.Close Set PRdsDia_Feriado = Nothing End Sub 'Realizar la conexión al Servidor SQL Public Function GF_Coneccion_SqlServer(PFVSource As String, PFVUser As String, PFVPassword As String, PFVBaseDatos As String) 'Si la conexión está abierta entonces la cierro On Error GoTo mensaje If GcnxConeccion.State = 1 Then GcnxConeccion.Close End If GVQuery = "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=" & PFVUser & ";PassWord=" & PFVPassword & ";Data Source=" & PFVSource 'Abrir la conexión GcnxConeccion.Open GVQuery GcnxConeccion.DefaultDatabase = PFVBaseDatos GF_Coneccion_SqlServer = 3 Exit Function mensaje: MsgBox Err.Description, vbCritical, "Alerta!" GP_Coneccion_SqlServer = 0 End Function Public Sub GP_ConeccionAccess() On Error GoTo MENSAJE_ACCESS

Page 153: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

153

If GcnxAccess.State = 1 Then GcnxAccess.Close End If 'GVQuery = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & "C:\Rhumano\DATOS\BdTesis.mdb;id=Admin;password=pleyeres" GVQuery = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & "C:\Rhumano\DATOS\BdTesis.mdb; ;password=pleyeres" GcnxAccess.Open GVQuery Exit Sub MENSAJE_ACCESS: MsgBox "Error en conexión a la Base de Datos Temporal. Consulte al Centro de Computo.", vbCritical, "Alerta!" End Sub '****************************************************************** Public Sub GP_Coneccion_Access() On Error GoTo MENSAJE_ACCESS If GcnxAccess.State = 1 Then GcnxAccess.Close End If GVQuery = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & "C:\RHumano\DATOS\BdConfiguracion.mdb;id=Admin;password=pleyeres" GcnxAccess.Open GVQuery Exit Sub MENSAJE_ACCESS: MsgBox Err.Description, vbCritical, "Alerta!" End Sub '*********************************************************************************************************************** 'Recuperar registros de las tablas de base de datos Function GrdsF_Recupera_Datos(PFSSql As String) As ADODB.Recordset Dim PFrdsTmp As New ADODB.Recordset PFrdsTmp.CursorLocation = adUseClient PFrdsTmp.Open Trim(PFSSql), GcnxConeccion, adOpenKeyset, adLockOptimistic, adCmdText Set GrdsF_Recupera_Datos = PFrdsTmp End Function '**********************************************************************

*************************************************

'Recuperar registros de las tablas de base de datos

Page 154: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

154

Function GrdsF_Recupera_Datos_Access(PFSSql As String) As ADODB.Recordset Dim PFrdsTmp As New ADODB.Recordset PFrdsTmp.CursorLocation = adUseClient PFrdsTmp.Open Trim(PFSSql), GcnxAccess, adOpenKeyset, adLockOptimistic, adCmdText Set GrdsF_Recupera_Datos_Access = PFrdsTmp End Function '*********************************************************************************************************************** 'Recuperar registros de las tablas de base de datos Sub GP_Manipula_Datos(PFSSql As String, PFSAuditoria As String) If PFSSql <> "" Then GcnxConeccion.Execute PFSSql End If If PFSAuditoria <> "" Then GcnxConeccion.Execute PFSAuditoria End If End Sub '/////////////////////////////////////////////// 'llenar combox Public Sub GP_Cargar_Combo_Lista(PPCControl As Control, PPSSql As String, Optional PBNada As Boolean) Dim PPrdsDatos As New ADODB.Recordset Dim PPBRecuperoDatos As Boolean PPBRecuperoDatos = False On Error GoTo KeyLst_Err If GcnxConeccion.State = 0 Then GF_Coneccion_SqlServer GVServidor, GVUsuario_Sql, GVPassword_Sql, GVBase_Sql End If Set PPrdsDatos = GrdsF_Recupera_Datos(PPSSql) With PPCControl .Clear If PPrdsDatos.State = 1 Then If Not PPrdsDatos.EOF Then If UCase(Mid(PPCControl.Name, 1, 3)) <> "LST" Then If PBNada Then .AddItem "<Nada>" .ItemData(.NewIndex) = 0 End If End If

Page 155: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

155

End If Do While Not PPrdsDatos.EOF If Not IsNull(PPrdsDatos(1)) Then .AddItem Trim(PPrdsDatos(1)) If Not IsNull(PPrdsDatos(0)) Then .ItemData(.NewIndex) = Trim(PPrdsDatos(0)) End If PPBRecuperoDatos = True End If PPrdsDatos.MoveNext Loop If PPBRecuperoDatos Then .ListIndex = 0 PPBRecuperoDatos = False End If End If End With Exit Sub KeyLst_Err: MsgBox "Error in GP_Cargar_Combo_Lista function..." & Error, , "Alerta.!" End Sub '*********************************************************************************************************************** 'Llenar MSFlexGrid automáticamente 'En los parámetros GVrtNombreCampo y GVrtAnchoCampo deben ser arreglos de datos. 'GVrtNombreCampo = Array("", "", ..N ) 'GVrtAnchoCampo = Array("", "", ..N ) Public Sub GP_Cargar_Msfgrid(PBNuevo As Boolean, PMGrid As MSFlexGrid, PVNombreCampo As Variant, PVAnchoCampo As Variant, PINum_Campo As Integer, PrdsDatos As ADODB.Recordset) Dim PIFilas As Integer Dim PrdsTmp As New ADODB.Recordset Dim LIContador As Integer Set PrdsTmp = PrdsDatos If PBNuevo Then PMGrid.Clear PMGrid.Row = 0 PMGrid.Cols = PINum_Campo For LIContador = 0 To PINum_Campo - 1 PMGrid.Col = LIContador

Page 156: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

156

PMGrid.Text = PVNombreCampo(LIContador) PMGrid.ColWidth(LIContador) = PVAnchoCampo(LIContador) Next End If PrdsTmp.Filter = adFilterNone PIFilas = PrdsTmp.RecordCount If PIFilas > 0 Then PMGrid.Rows = PIFilas + 1 PMGrid.Row = 1 PMGrid.Col = 0 PMGrid.RowSel = PMGrid.Rows - 1 PMGrid.ColSel = PMGrid.Cols - 1 PrdsTmp.MoveFirst If Not PrdsTmp.EOF Then PMGrid.Clip = PrdsTmp.GetString(adClipString, PIFilas, , , "Nulo") End If PMGrid.RowSel = 1 PMGrid.ColSel = 0 Else PMGrid.Rows = 1 End If End Sub Function GNF_ValidaTipoDato(PIValor As Integer, Optional PSTipoDato As String) As Integer GNF_ValidaTipoDato = PIValor% Select Case UCase(PSTipoDato$) '--------------------------------------------------------------- Case "NR" 'Numeros Reales '--------------------------------------------------------------- Select Case PIValor Case 48 To 57: GNF_ValidaTipoDato = Asc(Chr$(PIValor%)) Case 8, 46: GNF_ValidaTipoDato = Asc(Chr$(PIValor%)) Case 13: GNF_ValidaTipoDato = Asc(Chr$(PIValor%)) Case Else MsgBox "Caracter no válido.", , "Alerta!" GNF_ValidaTipoDato = 0 End Select '--------------------------------------------------------------- Case "NE" 'Numeros Enteros '--------------------------------------------------------------- Select Case PIValor Case 48 To 57: GNF_ValidaTipoDato = Asc(Chr$(PIValor%)) Case 8: GNF_ValidaTipoDato = Asc(Chr$(PIValor%))

Page 157: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

157

Case 13: GNF_ValidaTipoDato = Asc(Chr$(PIValor%)) Case 9: GNF_ValidaTipoDato = Asc(Chr$(PIValor%)) Case Else MsgBox "Caracter no válido.", , "Alerta!" GNF_ValidaTipoDato = 0 End Select '--------------------------------------------------------------- Case "SL" 'Solo letras (A-Z ; a-z ; á,é,í,ó,ú ; Á,É,Í,Ó,Ú ; ) '--------------------------------------------------------------- Select Case PIValor Case 65 To 90: GNF_ValidaTipoDato = Asc(Chr$(PIValor%)) Case 97 To 122: GNF_ValidaTipoDato = Asc(Chr$(PIValor%)) Case 8, 32, 180, 193, 201, 205, 209, 211, 218: GNF_ValidaTipoDato = Asc(Chr$(PIValor%)) Case 220, 225, 233, 237, 241, 243, 250, 252: GNF_ValidaTipoDato = Asc(Chr$(PIValor%)) Case 13: GNF_ValidaTipoDato = Asc(Chr$(PIValor%)) Case Else MsgBox "Caracter no válido.", , "Alerta!" GNF_ValidaTipoDato = 0 End Select '--------------------------------------------------------------- Case "AN" 'Alfanumerico '--------------------------------------------------------------- Select Case PIValor Case 65 To 90: GNF_ValidaTipoDato = Asc(Chr$(PIValor%)) Case 97 To 122: GNF_ValidaTipoDato = Asc(Chr$(PIValor%)) Case 48 To 57: GNF_ValidaTipoDato = Asc(Chr$(PIValor%)) Case 8, 32, 180, 193, 201, 205, 209, 211, 218: GNF_ValidaTipoDato = Asc(Chr$(PIValor%)) Case 220, 225, 233, 237, 241, 243, 250, 252: GNF_ValidaTipoDato = Asc(Chr$(PIValor%)) Case 13: GNF_ValidaTipoDato = Asc(Chr$(PIValor%)) Case Else MsgBox "Caracter no válido.", , "Alerta!" GNF_ValidaTipoDato = 0 End Select '--------------------------------------------------------------- Case "OT" 'Otros '--------------------------------------------------------------- Select Case PIValor Case 65 To 90: GNF_ValidaTipoDato = Asc(Chr$(PIValor%)) Case 97 To 122: GNF_ValidaTipoDato = Asc(Chr$(PIValor%)) Case 48 To 57: GNF_ValidaTipoDato = Asc(Chr$(PIValor%))

Page 158: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

158

Case 8, 32, 180, 193, 201, 205, 209, 211, 218: GNF_ValidaTipoDato = Asc(Chr$(PIValor%)) Case 220, 225, 233, 237, 241, 243, 250, 252: GNF_ValidaTipoDato = Asc(Chr$(PIValor%)) Case 33 To 47: GNF_ValidaTipoDato = Asc(Chr$(PIValor%)) Case 58 To 64: GNF_ValidaTipoDato = Asc(Chr$(PIValor%)) Case 91 To 95: GNF_ValidaTipoDato = Asc(Chr$(PIValor%)) Case 123 To 126: GNF_ValidaTipoDato = Asc(Chr$(PIValor%)) Case 161: GNF_ValidaTipoDato = Asc(Chr$(PIValor%)) Case 13: GNF_ValidaTipoDato = Asc(Chr$(PIValor%)) Case Else MsgBox "Caracter no válido.", , "Alerta!" GNF_ValidaTipoDato = 0 End Select End Select End Function '***************************************************************************** 'Encripta la clave de usuario Function GSF_Encriptar(PVClave As String) As String Dim PNContador As Integer Dim PVEncriptado As String On Error GoTo L_ERROR PVClave = Trim(PVClave) PVEncriptado = "" PNContador = 1 While PNContador <= Len(PVClave) PVEncriptado = PVEncriptado & GP_Llena_Caracteres(Mid(PVClave, PNContador, 1), "E") PNContador = PNContador + 1 Wend GSF_Encriptar = PVEncriptado Exit Function L_ERROR: XYER = MsgBox("Error " & Err & ": " & Error, vbCritical + vbOKOnly, "Visual Basic") XNSQL_ERR = 1 Exit Function End Function Function GP_Llena_Caracteres(PVCaracter As String, PVTipo As String) As String Dim PVACaracter() As Variant

Page 159: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

159

Dim PVASimbolo() As Variant PVACaracter = Array("0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", _ "f", "g", "h", "i", "j", "k", "l", "m", "n", "ñ", "o", "p", "q", "r", "s", _ "t", "u", "v", "w", "x", "y", "z", "A", "B", "C", "D", "E", "F", "G", "H", _ "I", "J", "K", "L", "M", "N", "Ñ", "O", "P", "Q", "R", "S", "T", "U", "V", _ "W", "X", "Y", "Z") PVASimbolo = Array("°", "!", ">", "^", "~", "*", "<", ")", "?", "w", "£", "±", "+", "-", "|", _ "¤", "¢", "¥", "¡", "¦", "¨", "®", "©", "´", "µ", "¶", "·", "Î", "Ø", "Þ", _ "ß", "â", "ç", "ê", "ã", "å", "ä", "è", "ë", "ð", "õ", "÷", "1", "2", "3", _ "0", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f", "g", "h", _ "j", "k", "m", "p") For PNContador = 0 To 63 If PVTipo = "E" Then If PVCaracter = PVACaracter(PNContador) Then GP_Llena_Caracteres = PVASimbolo(PNContador) Exit For End If Else If PVCaracter = PVASimbolo(PNContador) Then GP_Llena_Caracteres = PVACaracter(PNContador) Exit For End If End If Next End Function '***************************************************************************** 'Desencripta la clave de usuario Public Function GSF_Desencriptar(PVClave As String) As String Dim PNContador As Integer Dim PVDesencriptado As String PVClave = Trim(PVClave) PVDesencriptado = "" PNContador = 1 While PNContador <= Len(PVClave) PVDesencriptado = PVDesencriptado & GP_Llena_Caracteres(Mid(PVClave, PNContador, 1), "D") PNContador = PNContador + 1 Wend GSF_Desencriptar = PVDesencriptado End Function

Page 160: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

160

'*********************************************************************************************************************** 'Habilitar Objetos Sub GP_Habilita_Objeto(PVObjeto As Variant, PBValor As Boolean) ' PVObjeto.Enabled = PBValor End Sub '*********************************************************************************************************************** 'Crear Códigos secuenciales Sub GP_Visualiza_Objeto(PVObjeto As Variant, PBValor As Boolean, I As Integer) PVObjeto.TlbMenu.Buttons(I).Visible = PBValor PVObjeto.TlbMenu.Buttons(I + 1).Visible = PBValor End Sub '*********************************************************************************************************************** 'Crear Códigos secuenciales Function GVF_Incrementar_Codigo(PVSql As String) As String Dim PrdsDatos As New ADODB.Recordset Set PrdsDatos = GrdsF_Recupera_Datos(PVSql) If Not PrdsDatos.EOF Then If Not IsNull(PrdsDatos.Fields(0)) Then GVF_Incrementar_Codigo = GVXFacultad & PrdsDatos.Fields(0) + 1 Else GVF_Incrementar_Codigo = GVXFacultad & 1 End If PrdsDatos.Close End If End Function Function GVF_ValidaTipoDato(PNVALOR As Integer, Optional PVTipoDato As String) As Integer GVF_ValidaTipoDato = PNVALOR% Select Case UCase(PVTipoDato$) '--------------------------------------------------------------- Case "NR" 'Numeros Reales '--------------------------------------------------------------- Select Case PNVALOR Case 48 To 57: GVF_ValidaTipoDato = Asc(Chr$(PNVALOR%)) Case 8, 46: GVF_ValidaTipoDato = Asc(Chr$(PNVALOR%)) Case 13: GVF_ValidaTipoDato = Asc(Chr$(PNVALOR%))

Page 161: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

161

Case Else MsgBox "Caracter no válido.", , "Alerta!" GVF_ValidaTipoDato = 0 End Select '--------------------------------------------------------------- Case "NE" 'Números Enteros '--------------------------------------------------------------- Select Case PNVALOR Case 48 To 57: GVF_ValidaTipoDato = Asc(Chr$(PNVALOR%)) Case 8: GVF_ValidaTipoDato = Asc(Chr$(PNVALOR%)) Case 13: GVF_ValidaTipoDato = Asc(Chr$(PNVALOR%)) Case Else MsgBox "Caracter no válido.", , "Alerta!" GVF_ValidaTipoDato = 0 End Select '--------------------------------------------------------------- Case "SL" 'Solo letras (A-Z ; a-z ; á,é,í,ó,ú ; Á,É,Í,Ó,Ú ; ) '--------------------------------------------------------------- Select Case PNVALOR Case 65 To 90: GVF_ValidaTipoDato = Asc(Chr$(PNVALOR%)) Case 97 To 122: GVF_ValidaTipoDato = Asc(Chr$(PNVALOR%)) Case 8, 32, 180, 193, 201, 205, 209, 211, 218: GVF_ValidaTipoDato = Asc(Chr$(PNVALOR%)) Case 220, 225, 233, 237, 241, 243, 250, 252: GVF_ValidaTipoDato = Asc(Chr$(PNVALOR%)) Case 13: GVF_ValidaTipoDato = Asc(Chr$(PNVALOR%)) Case Else MsgBox "Caracter no válido.", , "Alerta!" GVF_ValidaTipoDato = 0 End Select '--------------------------------------------------------------- Case "AN" 'Alfanumerico '--------------------------------------------------------------- Select Case PNVALOR Case 65 To 90: GVF_ValidaTipoDato = Asc(Chr$(PNVALOR%)) Case 97 To 122: GVF_ValidaTipoDato = Asc(Chr$(PNVALOR%)) Case 48 To 57: GVF_ValidaTipoDato = Asc(Chr$(PNVALOR%)) Case 8, 32, 180, 193, 201, 205, 209, 211, 218: GVF_ValidaTipoDato = Asc(Chr$(PNVALOR%)) Case 220, 225, 233, 237, 241, 243, 250, 252: GVF_ValidaTipoDato = Asc(Chr$(PNVALOR%)) Case 13: GVF_ValidaTipoDato = Asc(Chr$(PNVALOR%)) Case Else MsgBox "Caracter no válido.", , "Alerta!"

Page 162: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

162

GVF_ValidaTipoDato = 0 End Select '--------------------------------------------------------------- Case "OT" 'Otros '--------------------------------------------------------------- Select Case PNVALOR Case 65 To 90: GVF_ValidaTipoDato = Asc(Chr$(PNVALOR%)) Case 97 To 122: GVF_ValidaTipoDato = Asc(Chr$(PNVALOR%)) Case 48 To 57: GVF_ValidaTipoDato = Asc(Chr$(PNVALOR%)) Case 8, 32, 180, 193, 201, 205, 209, 211, 218: GVF_ValidaTipoDato = Asc(Chr$(PNVALOR%)) Case 220, 225, 233, 237, 241, 243, 250, 252: GVF_ValidaTipoDato = Asc(Chr$(PNVALOR%)) Case 33 To 47: GVF_ValidaTipoDato = Asc(Chr$(PNVALOR%)) Case 58 To 64: GVF_ValidaTipoDato = Asc(Chr$(PNVALOR%)) Case 91 To 95: GVF_ValidaTipoDato = Asc(Chr$(PNVALOR%)) Case 123 To 126: GVF_ValidaTipoDato = Asc(Chr$(PNVALOR%)) Case 161: GVF_ValidaTipoDato = Asc(Chr$(PNVALOR%)) Case 13: GVF_ValidaTipoDato = Asc(Chr$(PNVALOR%)) Case Else MsgBox "Caracter no válido.", , "Alerta!" GVF_ValidaTipoDato = 0 End Select End Select End Function '**********************************************************************

*************************************************

''Crear Códigos secuenciales 'Function GVF_Inc_Codigo_Sec(PVSql As String) As String ' Dim PrdsDatos As New ADODB.Recordset ' Set PrdsDatos = GrdsF_Recupera_Datos(PVSql) ' If Not PrdsDatos.EOF Then ' If Not IsNull(PrdsDatos.Fields(0)) Then ' GVF_Inc_Codigo_Sec = PrdsDatos.Fields(0) + 1 ' Else ' GVF_Inc_Codigo_Sec = 1 ' End If ' PrdsDatos.Close ' End If 'End Function

Page 163: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

163

'***********************************************************************************************************************} 'Presentar nombres de cantidades Function CIFRA_A_LETRAS(VALOR As String) As String Dim A() As String Dim Verif_Dec As Boolean ReDim A(11) Digitos = Array("0", "1", "2", "3", "4", "5", "6", "7", "8", "9") For I = 0 To 11 If Len(VALOR) - I > 0 Then A(I) = Mid(VALOR, Len(VALOR) - I, 1) Else A(I) = 0 End If Next 'NUMEROS DE MILES 999.999.99 Verif_Dec = False If A(6) = "." Or A(6) = "," Then CIFRA_A_LETRAS = CIFRA_A_LETRAS & VERIFICA_MILES(A(7), A(8), A(9), Digitos, Verif_Dec) Verif_Dec = False CIFRA_A_LETRAS = CIFRA_A_LETRAS & VERIFICA_CENTENA(A(3), A(4), A(5), Digitos, Verif_Dec) Verif_Dec = False Else 'NUMEROS DECENAS Y CENTENAS 999.99 CIFRA_A_LETRAS = CIFRA_A_LETRAS & VERIFICA_CENTENA(A(3), A(4), A(5), Digitos, Verif_Dec) Verif_Dec = False End If 'NUMEROS DECIMALES 0.99 If A(2) = "." Or A(2) = "," Then CIFRA_A_LETRAS = CIFRA_A_LETRAS & VERIFICA_DECIMALES(A(0), A(1), Digitos, Verif_Dec) End If End Function Public Function CENTENA(VALOR As String, Dig As Variant) Dim CEN3 As Variant

Page 164: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

164

CEN3 = Array("CIEN ", "CIENTO ", "DOSCIENTOS ", "TRESCIENTOS ", "CUATROCIENTOS ", _ "QUINIENTOS ", "SEISCIENTOS ", "SETECIENTOS ", "OCHOCIENTOS ", "NOVECIENTOS ") For I = 0 To 9 If Dig(I) = VALOR Then CENTENA = CENTENA & CEN3(I) Exit Function End If Next End Function Public Function UNIDAD(VALOR As String, Dig As Variant) Dim uni3 As Variant uni3 = Array(" ", "UN ", "DOS ", "TRES ", "CUATRO ", "CINCO ", "SEIS ", "SIETE ", "OCHO ", "NUEVE ") For I = 0 To 9 If Dig(I) = VALOR Then UNIDAD = UNIDAD & uni3(I) Exit Function End If Next End Function Public Function DECENA(VALOR1 As String, Valor2 As String, Dig As Variant, ByRef Verif_Dec As Boolean) Dim compu As Variant Dim dec3 As Variant If VALOR1 = 1 And Valor2 <> "0" Then compu = Array(" ", "ONCE ", "DOCE ", "TRECE ", "CATORCE ", "QUINCE ", "DIECISEIS ", _ "DIECISIETE ", "DIECIOCHO ", "DIECINUEVE ") For I = 0 To 9 If Dig(I) = Valor2 Then DECENA = DECENA & compu(I) End If Next Verif_Dec = True Else If VALOR1 <> 0 Then dec3 = Array(" ", "DIEZ ", "VEINTE ", "TREINTA ", "CUARENTA ", "CINCUENTA ", "SESENTA ", _ "SETENTA ", "OCHENTA ", "NOVENTA ") For I = 0 To 9

Page 165: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

165

If Dig(I) = VALOR1 Then DECENA = DECENA & dec3(I) End If Next Verif_Dec = False End If End If End Function Function VERIFICA_MILES(VALOR1 As String, Valor2 As String, valor3 As String, Digitos As Variant, Verif_Dec As Boolean) As String If valor3 = 1 And Valor2 = 0 And VALOR1 = 0 Then VERIFICA_MILES = VERIFICA_MILES & CENTENA(0, Digitos) Else If VALOR1 = 1 Then Else If valor3 <> 0 Then VERIFICA_MILES = VERIFICA_MILES & CENTENA(valor3, Digitos) End If If Valor2 <> 0 Then VERIFICA_MILES = VERIFICA_MILES & DECENA(Valor2, VALOR1, Digitos, Verif_Dec) End If If Not Verif_Dec Then If UNIDAD(VALOR1, Digitos) = " " Then VERIFICA_MILES = VERIFICA_MILES & UNIDAD(VALOR1, Digitos) Else If Valor2 <> 0 Then VERIFICA_MILES = VERIFICA_MILES & "Y " & UNIDAD(VALOR1, Digitos) Else VERIFICA_MILES = VERIFICA_MILES & UNIDAD(VALOR1, Digitos) End If End If End If End If End If VERIFICA_MILES = VERIFICA_MILES & "MIL " End Function

Page 166: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

166

Function VERIFICA_CENTENA(VALOR1 As String, Valor2 As String, valor3 As String, Digitos As Variant, Verif_Dec As Boolean) As String If valor3 = 1 And Valor2 = 0 And VALOR1 = 0 Then VERIFICA_CENTENA = VERIFICA_CENTENA & CENTENA(0, Digitos) Else If valor3 <> 0 Then VERIFICA_CENTENA = VERIFICA_CENTENA & CENTENA(valor3, Digitos) End If VERIFICA_CENTENA = VERIFICA_CENTENA & DECENA(Valor2, VALOR1, Digitos, Verif_Dec) If Not Verif_Dec Then If UNIDAD(VALOR1, Digitos) = " " Then VERIFICA_CENTENA = VERIFICA_CENTENA & UNIDAD(VALOR1, Digitos) Else If Valor2 <> 0 Then VERIFICA_CENTENA = VERIFICA_CENTENA & "Y " & UNIDAD(VALOR1, Digitos) Else VERIFICA_CENTENA = VERIFICA_CENTENA & UNIDAD(VALOR1, Digitos) End If End If End If End If If valor3 = 0 And Valor2 = 0 And VALOR1 = 1 Then VERIFICA_CENTENA = VERIFICA_CENTENA & "DOLAR " Else If Not (valor3 = 0 And Valor2 = 0 And VALOR1 = 0) Then VERIFICA_CENTENA = VERIFICA_CENTENA & "DOLARES " Else VERIFICA_CENTENA = "DOLARES " End If End If End Function Function VERIFICA_DECIMALES(VALOR1 As String, Valor2 As String, Digitos As Variant, Verif_Dec As Boolean) As String If Not (Valor2 = 0 And VALOR1 = 0) Then VERIFICA_DECIMALES = VERIFICA_DECIMALES & "CON " & DECENA(Valor2, VALOR1, Digitos, Verif_Dec) End If If Not Verif_Dec Then

Page 167: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

167

If UNIDAD(VALOR1, Digitos) = " " Then VERIFICA_DECIMALES = VERIFICA_DECIMALES & UNIDAD(VALOR1, Digitos) Else If Valor2 <> 0 Then VERIFICA_DECIMALES = VERIFICA_DECIMALES & "Y " & UNIDAD(VALOR1, Digitos) Else VERIFICA_DECIMALES = VERIFICA_DECIMALES & UNIDAD(VALOR1, Digitos) End If End If End If If Valor2 = 0 And VALOR1 = 1 Then VERIFICA_DECIMALES = VERIFICA_DECIMALES & "CENTAVO" Else If Not (Valor2 = 0 And VALOR1 = 0) Then VERIFICA_DECIMALES = VERIFICA_DECIMALES & "CENTAVOS" End If End If End Function '*********************************************************************************************************************** 'Recupera el nombre de la DEPENDENCIA con el código nuevo. Public Function RECUPERA_FACULTAD(PVFacultad As String, FVTipo As String) As String RECUPERA_FACULTAD = GVF_Descripcion_Dependencia(PVFacultad, FVTipo) End Function Function FVF_Extrae_Cod_Depend(PVDependencia As String, PVTipo As String, Optional PVUniversidad As String) As String GVQuery = "SELECT DISTINCT CASE COD_DEPEND_OTROS WHEN '-' THEN " GVQuery = GVQuery & " CASE ESCUELA WHEN '-' THEN " GVQuery = GVQuery & " COD_DEPEND_DPTO " GVQuery = GVQuery & " ELSE COD_DEPEND_DIV END " GVQuery = GVQuery & " ELSE " GVQuery = GVQuery & " COD_DEPEND_OTROS " GVQuery = GVQuery & " END AS DEPENDENCIA "

Page 168: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

168

GVQuery = GVQuery & "FROM BdAlmacenDatos..VS_ADMIN_ACADEM O " GVQuery = GVQuery & "WHERE O.CODIGO = '" & PVDependencia & "' " 'GVQuery = GVQuery & GFV_Add_Perfil(PVTipo) Set RS = GrdsF_Recupera_Datos(GVQuery) If Not RS.EOF Then If Not IsNull(RS!DEPENDENCIA) Then FVF_Extrae_Cod_Depend = RS!DEPENDENCIA End If Else FVF_Extrae_Cod_Depend = "" End If End Function Function FVF_Extrae_PK_Depend(PVDependencia As String, PVTipo As String, Optional PVUniversidad As String) As String Dim PRdsDependencia As New ADOR.Recordset If PVTipo = "G" Then GVQuery = "SELECT COD_CARRERA + COD_DISTRIBUCION + COD_TIPO_DISTRIB CODIGO " ElseIf PVTipo = "F" Then GVQuery = "SELECT COD_FACULTAD + SUBSTRING(COD_ESCUELA, 3, 2) + SUBSTRING(COD_CARRERA, 5, 2) + COD_DISTRIBUCION + COD_TIPO_DISTRIB CODIGO " Else GVQuery = "SELECT COD_FACULTAD + SUBSTRING(COD_ESCUELA, 3, 2) + SUBSTRING(COD_CARRERA, 5, 2) + COD_DISTRIBUCION + COD_TIPO_DISTRIB CODIGO " End If GVQuery = GVQuery & "FROM BdAlmacenDatos..TB_ORGANIGRAMA O " If PVUniversidad <> "" Then GVQuery = GVQuery & "WHERE O.COD_UNIVERSIDAD = '" & PVUniversidad & "'" Else GVQuery = GVQuery & "WHERE O.COD_UNIVERSIDAD = '01'" End If 'GVQuery = GVQuery & GFV_Add_Perfil(PVTipo) GVQuery = GVQuery & "AND O.DEPENDENCIA = '" & PVDependencia & "' " Set PRdsDependencia = GrdsF_Recupera_Datos(GVQuery) If Not PRdsDependencia.EOF Then FVF_Extrae_PK_Depend = PRdsDependencia!CODIGO End If PRdsDependencia.Close Set PRdsDependencia = Nothing End Function

Page 169: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

169

Function FVF_AddCondicion_Dependencia(PVDependencia As String, PVCodicion As String, PVCad_Sql As String) As String If Mid(PVDependencia, 1, 6) = "000000" Then If Mid(PVDependencia, 9, 6) = "000000" Then FVF_AddCondicion_Dependencia = PVCodicion & "SUBSTRING(" & PVCad_Sql & ", 1, 8) = '" & Mid(PVDependencia, 1, 8) & "' " ElseIf Mid(PVDependencia, 11, 4) = "0000" Then FVF_AddCondicion_Dependencia = PVCodicion & "SUBSTRING(" & PVCad_Sql & ", 1, 10) = '" & Mid(PVDependencia, 1, 10) & "' " ElseIf Mid(PVDependencia, 13, 2) = "00" Then FVF_AddCondicion_Dependencia = PVCodicion & "SUBSTRING(" & PVCad_Sql & ", 1, 12) = '" & Mid(PVDependencia, 1, 12) & "' " Else FVF_AddCondicion_Dependencia = PVCodicion & PVCad_Sql & " = '" & PVDependencia & "' " End If ElseIf Mid(PVDependencia, 8, 6) = "000000" Then If Mid(PVDependencia, 3, 4) & Mid(PVDependencia, 13, 2) = "000000" Then FVF_AddCondicion_Dependencia = PVCodicion & "SUBSTRING(" & PVCad_Sql & ", 1, 2) = '" & Mid(PVDependencia, 1, 2) & "' " ElseIf Mid(PVDependencia, 5, 2) & Mid(PVDependencia, 13, 2) = "0000" Then FVF_AddCondicion_Dependencia = PVCodicion & "SUBSTRING(" & PVCad_Sql & ", 1, 4) = '" & Mid(PVDependencia, 1, 4) & "' " ElseIf Mid(PVDependencia, 13, 2) = "00" Then FVF_AddCondicion_Dependencia = PVCodicion & "SUBSTRING(" & PVCad_Sql & ", 1, 6) = '" & Mid(PVDependencia, 1, 6) & "' " Else FVF_AddCondicion_Dependencia = PVCodicion & PVCad_Sql & " = '" & PVDependencia & "' " End If End If End Function Function GVF_Set_Tipo(PVDependencia As String) As String If Mid(PVDependencia, 1, 6) = "000000" Then GVF_Set_Tipo = "G" ElseIf Mid(PVDependencia, 8, 6) = "000000" Then GVF_Set_Tipo = "F" End If End Function

Page 170: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

170

'*********************************************************************************************************************** ' Sub Llena_CboDependencia(PCboCombo As ComboBox, Optional PVRecupera As String, Optional PVTipo As String) If PVRecupera = "T" Then PCboCombo.AddItem ("Unidad Administrativa") PCboCombo.ItemData(0) = 1 PCboCombo.AddItem ("Unidad Académica") PCboCombo.ItemData(1) = 2 Else If PVTipo = "G" Then PCboCombo.AddItem ("Unidad Administrativa") PCboCombo.ItemData(0) = 1 End If If PVTipo = "F" Then PCboCombo.AddItem ("Unidad Académica") PCboCombo.ItemData(0) = 2 End If End If PCboCombo.ListIndex = 0 End Sub '*********************************************************************************************************************** Function GVF_Descripcion_Dependencia(PV_Codigo As String, Optional PVTipo As String) As String Dim RS As New ADODB.Recordset GVQuery = "SELECT CASE CARRERA WHEN '-' THEN " GVQuery = GVQuery & " CASE ESCUELA WHEN '-' THEN UNID_ADMIN_ACADEM " GVQuery = GVQuery & " ELSE ESCUELA + ' - ' + UNID_ADMIN_ACADEM END " GVQuery = GVQuery & "ELSE " GVQuery = GVQuery & " CASE ESCUELA WHEN '-' THEN CARRERA + ' - ' + UNID_ADMIN_ACADEM " GVQuery = GVQuery & "ELSE " GVQuery = GVQuery & " CASE CARRERA WHEN '-' THEN ESCUELA + ' ( ' + UNID_ADMIN_ACADEM + ' ) ' " GVQuery = GVQuery & " ELSE CARRERA + ' ( ' + ESCUELA + ' - ' + UNID_ADMIN_ACADEM + ' ) ' END END " GVQuery = GVQuery & "END AS UNID_ADMIN_ACADEM " GVQuery = GVQuery & "FROM BdAlmacenDatos..VS_ADMIN_ACADEM U " GVQuery = GVQuery & "WHERE U.CODIGO = '" & PV_Codigo & "' "

Page 171: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

171

'GVQuery = GVQuery & GFV_Add_Perfil(PVTipo) GVMensaje = "Código de Sección no válido." Set RS = GrdsF_Recupera_Datos(GVQuery) If RS.State = 1 Then If Not RS.EOF Then If Not IsNull(RS!UNID_ADMIN_ACADEM) Then GVF_Descripcion_Dependencia = RS!UNID_ADMIN_ACADEM End If Else GVF_Descripcion_Dependencia = "" End If End If End Function '*********************************************************************************************************************** 'Verificar que el ingreso de filas no se repitan en la misma columna en un MSFlexGrid Public Function VERIFICAR_DUPLICIDAD_MFGRID(MFGRID As MSFlexGrid, Texto As String, Col As Integer) As Boolean For I = 0 To MFGRID.Rows - 1 If MFGRID.TextMatrix(I, Col) = Texto Then VERIFICAR_DUPLICIDAD_MFGRID = True Exit For Else VERIFICAR_DUPLICIDAD_MFGRID = False End If Next End Function '*********************************************************************************************************************** 'Retorna el nombre del mes Public Function NOMBRE_MES(mes As Integer) As String Select Case mes Case 1 NOMBRE_MES = "enero" Case 2 NOMBRE_MES = "febrero" Case 3 NOMBRE_MES = "marzo"

Page 172: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

172

Case 4 NOMBRE_MES = "abril" Case 5 NOMBRE_MES = "mayo" Case 6 NOMBRE_MES = "junio" Case 7 NOMBRE_MES = "julio" Case 8 NOMBRE_MES = "agosto" Case 9 NOMBRE_MES = "septiembre" Case 10 NOMBRE_MES = "octubre" Case 11 NOMBRE_MES = "noviembre" Case 12 NOMBRE_MES = "diciembre" End Select End Function '*********************************************************************************************************************** Public Sub FILTRAR_MSFGRID(MFGRID As MSFlexGrid, Filtro As String, Campo_Filtro As String, PM_RS As ADODB.Recordset) Dim RS As New ADODB.Recordset Set RS = PM_RS If Filtro <> "%" Then If Filtro <> "" And Campo_Filtro <> "" Then RS.Filter = Campo_Filtro & " LIKE '" & Filtro & "%'" Else RS.Filter = adFilterNone End If If RS.State = 1 Then Filas = RS.RecordCount End If If MFGRID.Rows = 1 Then MFGRID.Rows = 2 End If MFGRID.Row = 1 If Filas > 0 Then MFGRID.Rows = Filas + 1 MFGRID.Row = 1

Page 173: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

173

MFGRID.Col = 0 MFGRID.RowSel = MFGRID.Rows - 1 MFGRID.ColSel = MFGRID.Cols - 1 If Not RS.EOF Then MFGRID.Clip = RS.GetString(adClipString, MFGRID.Rows - 1, , , "Nulo") End If MFGRID.RowSel = 1 MFGRID.ColSel = 0 Else MFGRID.Rows = 1 End If End If End Sub '*********************************************************************************************************************** 'Ingresa una imágen en la Base de Datos. Public Sub INSERTAR_IMAGEN(IMAGEN As String, SQL As String, DATOS_PERSONAL As String, tipo As String) Dim RS As New ADODB.Recordset Dim lnNumero Dim F As Long, I As Long Dim fragment As Long Dim Chunks Dim varChunk() As Byte RS.Open SQL, GcnxConeccion, adOpenKeyset, adLockOptimistic ', adCmdTable If IMAGEN <> "" Then If RS.EOF Then RS.AddNew Select Case tipo Case "E" RS!DATOS_PERSONAL = DATOS_PERSONAL Case Else RS!ASPIRANTE = DATOS_PERSONAL End Select End If ' Abrimos el fichero para poder subirlo lnNumero = FreeFile Open IMAGEN For Binary Access Read As lnNumero ' El fichero hay que partirlo en trozos....

Page 174: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

174

F = LOF(lnNumero) ' Longitud de los datos en el archivo If F = 0 Then Close lnNumero: Exit Sub Chunks = F \ 16384 fragment = F Mod 16384 ' limpiamos el campo por si acaso... RS!FOTO.AppendChunk Null ReDim varChunk(fragment) ' Tomo un trozo del tamaño necesario Get lnNumero, , varChunk() RS!FOTO.AppendChunk varChunk() ReDim varChunk(16384) ' y ahora los trozos que quedan todos igualitos ... For I = 1 To Chunks Get lnNumero, , varChunk() RS!FOTO.AppendChunk varChunk() Next I Close lnNumero RS.Update End If ' Cerramos el fichero, actualizamos y listo..... RS.Close End Sub '*********************************************************************************************************************** 'Recupera una Imagen de la Base de Datos Function RECUPERA_IMAGEN(SQL As String, Ruta As String) As String Dim RS As New ADODB.Recordset Dim F As Long, I As Long Dim fragment As Long Dim Chunks Dim varChunk() As Byte ' Abrimos la información en el registro que nos interesa.... RS.Open SQL, GcnxConeccion, adOpenKeyset, adLockOptimistic ', adCmdTable If Not RS.EOF Then ' Si no existiese el registro no hay nada que devolver.... 'Pasos para recuperar una imágen desde un campo de una tabla de base de datos en SQL SERVER

Page 175: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

175

F = RS!FOTO.ActualSize If F = 0 Then Exit Function Open Ruta For Binary Access Write As #1 Chunks = F \ 16384 fragment = F Mod 16384 ReDim varChunk(fragment) varChunk() = RS!FOTO.GetChunk(fragment) Put #1, , varChunk() For I = 1 To Chunks ReDim varChunk(16384) varChunk() = RS!FOTO.GetChunk(16384) Put #1, , varChunk() Next I Close #1 RECUPERA_IMAGEN = Ruta Else Kill Ruta Open Ruta For Binary Access Write As #1 Close #1 End If RS.Close End Function Function GVQuery_FOTO(IMAGEN As Image, DATOS_PERSONAL As String, Ruta As String) As String GVQuery = "SELECT * FROM FOTO_PERSONAL " GVQuery = GVQuery & "WHERE DATOS_PERSONAL = '" & DATOS_PERSONAL & "' " GVQuery_FOTO = RECUPERA_IMAGEN(GVQuery, Ruta) IMAGEN.Picture = LoadPicture(GVQuery_FOTO) End Function '***************************************************************************************** 'Verificar Cédula Function Valida_Cedula(cedula As String) As Integer Dim var_tmp Dim I, J, numero As Integer Dim suma, suma1, num, div_rem As Integer Dim val_cedula(10) As Integer ' verificamos si la cédula tiene 10 caracteres If Len(Trim$(cedula)) < 10 Then

Page 176: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

176

Valida_Cedula = 2 Exit Function End If ' movemos cada carácter de la cédula a un arreglo For I = 1 To 10 val_cedula(I - 1) = Val(Mid$(cedula, I, 1)) Next I

' verificamos el código de la provincia If (val_cedula(0) <= 1) And (val_cedula(1) <= 9) Then Valida_Cedula = 1 Else If (val_cedula(0) = 2) And (val_cedula(1) <= 1) Then Valida_Cedula = 1 Else Valida_Cedula = 4 Exit Function End If End If ' sumamos los números de las posiciones pares I = 0 For J = 1 To 5 numero = val_cedula(I) * 2 If numero > 9 Then numero = numero - 9 End If suma = suma + numero I = I + 2 Next J ' sumamos los números de las posiciones impares I = 1 For J = 1 To 4 suma1 = suma1 + val_cedula(I) I = I + 2 Next J suma1 = suma1 + suma div_rem = suma1 Mod 10 If div_rem <> 0 Then J = 10 - div_rem Else

Page 177: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

177

J = div_rem End If ' hacemos la comprobacion del digito verificador If val_cedula(9) = J Then Valida_Cedula = 1 Else Valida_Cedula = 5 Exit Function End If End Function Function LLAMAR_VALIDA_CEDULA(cedula As String, FORMA As Form, Optional TP As String) As Boolean Select Case Valida_Cedula(cedula) Case 1, 2 If TP = "G" Then FORMA.RECUPERA_EMPLEADO Else FORMA.RECUPERA_EMPLEADO End If Case 4 MsgBox "# de Cédula no pertenece a ninguna Provincia.", , "Alerta!" LLAMAR_VALIDA_CEDULA = True Case 5 MsgBox "Por favor ingrese un N° de Cédula válido.", , "Alerta!" LLAMAR_VALIDA_CEDULA = True Case Else LLAMAR_VALIDA_CEDULA = False End Select End Function '*********************************************************************************************************************** 'Retorna el día del mes verificando si el año es Bisiesto Function DIAS_MES(FECHA As Date) As Integer Select Case Format(FECHA, "mm") Case 1 DIAS_MES = 31 Case 2 If Val(Format(FECHA, "yyyy")) Mod 4 = 0 Then

Page 178: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

178

DIAS_MES = 29 Else If (Val(Format(FECHA, "yyyy")) Mod 100 = 0) And (Val(Format(FECHA, "yyyy")) Mod 400 <> 0) Then DIAS_MES = 29 Else DIAS_MES = 28 End If End If Case 3 DIAS_MES = 31 Case 4 DIAS_MES = 30 Case 5 DIAS_MES = 31 Case 6 DIAS_MES = 30 Case 7 DIAS_MES = 31 Case 8 DIAS_MES = 31 Case 9 DIAS_MES = 30 Case 10 DIAS_MES = 31 Case 11 DIAS_MES = 30 Case 12 DIAS_MES = 31 End Select End Function '******************************************************************************************* 'Verificar en la tabla TB_DETALLE_PERFIL cuales son los permisos correspondientes del usuario Public Sub GP_Verifica_Permisos(PVModulo As String, PVForma As String, PFrmForma As Form) GVQuery = "SELECT DISTINCT COD_FORMA FROM TB_DETALLE_PERFIL " GVQuery = GVQuery & "WHERE COD_PERFIL = '" & GVPerfil_User & "'" GVQuery = GVQuery & "AND COD_MODULO = " & PVModulo & " " GVQuery = GVQuery & "AND COD_FORMA = " & PVForma & " " Set FrdsDatos = GrdsF_Recupera_Datos(GVQuery)

Page 179: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

179

While Not FrdsDatos.EOF GP_Verfica_Funcion FrdsDatos!COD_FORMA, PFrmForma FrdsDatos.MoveNext Wend End Sub '******************************************************************************************* 'Deshabilitar los controles para realizar procesos (Inserción. eliminación, e impresión) Sub GP_Deshabilita_Objetos(PFrmForma As Form, Optional PVNumButton As Integer) Dim PNContador As Integer PNContador = 0 While PNContador < PFrmForma.Count On Error GoTo CONTINUAR Select Case PFrmForma(PNContador).Name Case "FraAplicar" GP_Habilita_Objeto PFrmForma(PNContador), False Case "FraEliminar" GP_Habilita_Objeto PFrmForma(PNContador), False Case "FraImprimir" GP_Habilita_Objeto PFrmForma(PNContador), False Case "TlbMenu" For I = 4 To PVNumButton - 3 Step 2 GP_Visualiza_Objeto PFrmForma, False, Val(I) Next End Select CONTINUAR: PNContador = PNContador + 1 Wend End Sub '******************************************************************************************* 'Habilitar los controles para realizar procesos (Inserción. eliminación, e impresión) Sub GP_Verfica_Funcion(PVPantalla As String, PFrmForma As Form) Dim PrdsFuncion As New ADODB.Recordset Dim PNContador As Integer GVQuery = "SELECT * FROM TB_FUNCION F, TB_DETALLE_PERFIL DP "

Page 180: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

180

GVQuery = GVQuery & "WHERE F.COD_FUNCION = DP.COD_FUNCION AND DP.COD_FORMA = '" & PVPantalla & "' " GVQuery = GVQuery & "AND F.COD_FORMA = '" & PVPantalla & "' " GVQuery = GVQuery & "AND DP.COD_PERFIL = '" & GVPerfil_User & "' " Set PrdsFuncion = GrdsF_Recupera_Datos(GVQuery) PNContador = 0 If Not PrdsFuncion.EOF Then While PNContador < PFrmForma.Count PrdsFuncion.MoveFirst While Not PrdsFuncion.EOF On Error GoTo CONTINUAR If PFrmForma(PNContador).Name = PrdsFuncion!nombre Then GP_Habilita_Objeto PFrmForma.Controls(PNContador), True ElseIf PFrmForma(PNContador).Name = Mid(PrdsFuncion!nombre, 1, 7) Then GP_Visualiza_Objeto PFrmForma, True, Val(Mid(PrdsFuncion!nombre, InStr(1, PrdsFuncion!nombre, "(") + 1, Len(PrdsFuncion!nombre))) End If PrdsFuncion.MoveNext Wend CONTINUAR: PNContador = PNContador + 1 Wend End If PrdsFuncion.Close End Sub Function GFV_Add_Perfil(PVTipo As String) As String If GVPerfil_User <> 1 Then If PVTipo = "G" Then GFV_Add_Perfil = " AND COD_CARRERA + COD_DISTRIBUCION + COD_TIPO_DISTRIB IN " Else GFV_Add_Perfil = " AND COD_FACULTAD + SUBSTRING(COD_ESCUELA, 3, 2) + SUBSTRING(COD_CARRERA, 5, 2) + COD_DISTRIBUCION + COD_TIPO_DISTRIB IN " End If GFV_Add_Perfil = GFV_Add_Perfil & " (SELECT DISTINCT LTRIM(RTRIM(COD_UNIDAD)) " GFV_Add_Perfil = GFV_Add_Perfil & " FROM TB_PERFIL_UNIDAD PU " GFV_Add_Perfil = GFV_Add_Perfil & " WHERE COD_PERFIL = '" & GVPerfil_User & "') "

Page 181: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

181

End If End Function Function GFV_Add_UserPerfil(PVCondicion As String, PVAlias As String) As String If GVPerfil_User <> "0000000002011" Then GFV_Add_UserPerfil = GFV_Add_UserPerfil & " " & PVCondicion & " " & PVAlias & " CODIGO IN (SELECT DISTINCT LTRIM(RTRIM(COD_UNIDAD)) " GFV_Add_UserPerfil = GFV_Add_UserPerfil & " FROM TB_PERFIL_UNIDAD PU " GFV_Add_UserPerfil = GFV_Add_UserPerfil & " WHERE COD_PERFIL = '" & GVPerfil_User & "') " End If End Function Function GFV_Add_Perfil_2(PVTipo As String) As String If GVPerfil_User <> "0000000002011" Then If PVTipo = "G" Then GFV_Add_Perfil2 = " AND COD_UNIDAD IN " Else GFV_Add_Perfil2 = " AND COD_FACULTAD + SUBSTRING(COD_ESCUELA, 3, 2) + SUBSTRING(COD_CARRERA, 5, 2) + COD_DISTRIBUCION + COD_TIPO_DISTRIB ) IN " End If GFV_Add_Perfil2 = GFV_Add_Perfil2 & " (SELECT DISTINCT LTRIM(RTRIM(COD_UNIDAD)) " GFV_Add_Perfil2 = GFV_Add_Perfil2 & " FROM TB_PERFIL_UNIDAD PU " GFV_Add_Perfil2 = GFV_Add_Perfil2 & " WHERE COD_PERFIL = '" & GVPerfil_User & "') " End If End Function Function GFV_AddPmtr_Instalacion(PVAlias As String, PVCondicion As String, PVUnidad As String) As String If GVPerfil_User <> "0000000002011" Then GFV_AddPmtr_Instalacion = " " & PVCondicion & " " & "SUBSTRING(" & PVAlias & PVUnidad & ", 1, 12) IN (SELECT UNIDAD FROM TB_PMTR_UNIDAD " GFV_AddPmtr_Instalacion = GFV_AddPmtr_Instalacion & "WHERE COD_PERFIL = '" & GVPerfil_User & "') " End If End Function

Page 182: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

182

Sub GP_Habilita_Toolbar(PTblToolBar As Toolbar, PNDesde As Integer, PNHasta As Integer, PBValor As Boolean) For I = PNDesde To PNHasta PTblToolBar.Buttons(I).Enabled = PBValor Next End Sub Sub GP_CargaPmtr_Sistema() Dim PrdsDatos As New ADODB.Recordset GVQuery = "SELECT GETDATE() " Set PrdsDatos = GrdsF_Recupera_Datos(GVQuery) If Not PrdsDatos.EOF Then GVFecha_Server = PrdsDatos.Fields(0) End If PrdsDatos.Close GVQuery = "SELECT * FROM TB_PARAMETRO WHERE NOMBRE_VARIABLE = 'GVRUTA_REPORTE'" Set PrdsDatos = GrdsF_Recupera_Datos(GVQuery) If Not PrdsDatos.EOF Then GVRutaReporte = PrdsDatos.Fields!CONTENIDO End If PrdsDatos.Close GVQuery = "SELECT * FROM TB_PARAMETRO WHERE N_ID = 3" Set RS_PMTR = GrdsF_Recupera_Datos(GVQuery) If Not RS_PMTR.EOF Then GVxmin_permitido_E = RS_PMTR.Fields!CONTENIDO End If RS_PMTR.Close GVQuery = "SELECT * FROM TB_PARAMETRO WHERE N_ID = 4" Set RS_PMTR = GrdsF_Recupera_Datos(GVQuery) If Not RS_PMTR.EOF Then GVxmin_permitido_S = RS_PMTR.Fields!CONTENIDO End If RS_PMTR.Close GVQuery = "SELECT * FROM TB_PARAMETRO WHERE N_ID = 5" Set RS_PMTR = GrdsF_Recupera_Datos(GVQuery) If Not RS_PMTR.EOF Then GVmulta_no_marca_S = RS_PMTR.Fields!CONTENIDO End If RS_PMTR.Close End Sub Sub PV_Recupera_Autoridad(FrmCboAutoridad As ComboBox, PVEstado As String, PVCargo As String)

Page 183: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

183

Dim PRdsAutoridad As New ADOR.Recordset GVQuery = "SELECT DISTINCT CONVERT(NUMERIC(10), SUBSTRING(PA.COD_PMTR_AUTORIDAD, 13, LEN(PA.COD_PMTR_AUTORIDAD))) COD_PMTR_AUTORIDAD, DP.NOMBRES + ' ' + DP.APELLIDOS + SPACE(50) + 'Pk=' + PA.COD_PMTR_AUTORIDAD AUTORIDAD, DP.ID_DATOS_PERSONAL, DP.SEXO, DP.ESTADO_CIVIL " GVQuery = GVQuery & "FROM TB_PMTR_AUTORIDAD PA, DATOS_PERSONAL DP, TB_AUTORID_VISUAL AV " GVQuery = GVQuery & "WHERE PA.DATOS_PERSONAL = DP.ID_DATOS_PERSONAL " GVQuery = GVQuery & "AND PA.COD_PMTR_AUTORIDAD = AV.COD_PMTR_AUTORIDAD " If PVEstado <> "" Then GVQuery = GVQuery & "AND ESTADO = '" & PVEstado & "' " End If If PVCargo <> "" Then GVQuery = GVQuery & "AND CARGO = '" & PVCargo & "' " End If Set PRdsAutoridad = GrdsF_Recupera_Datos(GVQuery) FrmCboAutoridad.Clear If Not PRdsAutoridad.EOF Then FrmCboAutoridad.List(0) = FVF_Recupera_Emp(PRdsAutoridad!ID_DATOS_PERSONAL, PRdsAutoridad!SEXO, PRdsAutoridad!ESTADO_CIVIL) & " " & PRdsAutoridad!Autoridad FrmCboAutoridad.ItemData(0) = PRdsAutoridad!COD_PMTR_AUTORIDAD FrmCboAutoridad.ListIndex = 0 End If PRdsAutoridad.Close Set PRdsAutoridad = Nothing End Sub Function FVF_Recupera_Emp(PVCodEmp As String, PNSexo As Integer, PNEstadoCivil As Integer) As String Dim PRdsEmp As New ADOR.Recordset GVQuery = "SELECT TITULO_PROF FROM EDUCACION_DP E WHERE E.ADJ_TIT_NMB = 'A' " GVQuery = GVQuery & "AND DATOS_PERSONAL = '" & PVCodEmp & "' " Set PRdsEmp = GrdsF_Recupera_Datos(GVQuery) If Not PRdsEmp.EOF Then FVF_Recupera_Emp = FVFRecupera_TitProfesional(PRdsEmp!TITULO_PROF)

Page 184: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

184

Else Select Case PNSexo Case 1 If PNEstadoCivil = 0 Then GVQuery = "SELECT PARENTESCO FROM DATOS_FAMILIAR " GVQuery = GVQuery & "WHERE DATOS_PERSONAL = '" & PVCodEmp & "' AND PARENTESCO = 5 " Set PRdsEmp = GrdsF_Recupera_Datos(GVQuery) If Not PRdsEmp.EOF Then FVF_Recupera_Emp = FVFRecupera_TitPersonal(1) Else FVF_Recupera_Emp = FVFRecupera_TitPersonal(2) End If Else FVF_Recupera_Emp = FVFRecupera_TitPersonal(1) End If Case 2 FVF_Recupera_Emp = FVFRecupera_TitPersonal(1) End Select End If PRdsEmp.Close Set PRdsEmp = Nothing End Function Function FVFRecupera_TitPersonal(PNCodTitPers As Integer) As String Dim PRdsTitPers As New ADOR.Recordset GVQuery = "SELECT DESCRIPCION FROM BdAlmacenDatos..TB_TIT_PERSONAL " GVQuery = GVQuery & "WHERE COD_TIT_PERSONAL = '" & PNCodTitPers & "' " Set PRdsTitPers = GrdsF_Recupera_Datos(GVQuery) If Not PRdsTitPers.EOF Then FVFRecupera_TitPersonal = PRdsTitPers!DESCRIPCION End If PRdsTitPers.Close Set PRdsTitPers = Nothing End Function Function FVFRecupera_TitProfesional(PNCodTitPers As String) As String Dim PRdsTitProf As New ADOR.Recordset FVFRecupera_TitProfesional = "" GVQuery = "SELECT INICIAL FROM BdAlmacenDatos..TB_TITULO_PROFESIONAL "

Page 185: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

185

GVQuery = GVQuery & "WHERE COD_TITULO = '" & PNCodTitPers & "' " Set PRdsTitProf = GrdsF_Recupera_Datos(GVQuery) If Not PRdsTitProf.EOF Then FVFRecupera_TitProfesional = Trim(PRdsTitProf!INICIAL) End If PRdsTitProf.Close Set PRdsTitProf = Nothing End Function Public Sub actualizaprogress(pb As Control, ByVal percent) Dim num$ ' porcentaje 'el autoredraw debe estar a = true pb.Cls pb.ScaleWidth = 100 pb.DrawMode = 10 num$ = Format(percent, "##") + "%" pb.FontSize = 18 pb.CurrentX = 50 - pb.TextWidth(num$) / 2 pb.CurrentY = (pb.ScaleHeight - pb.TextHeight(num$)) / 2 pb.Print num$ pb.Line (0, 0)-(percent, pb.ScaleHeight), , BF pb.Refresh End Sub Public Sub pausa() Dim controlar Dim comenzar comenzar = Timer Do Until controlar >= comenzar + 0.2 controlar = Timer DoEvents Loop End Sub Function GF_CodigoCombo(CboCombo As ComboBox) As String GF_CodigoCombo = Mid(CboCombo.Text, InStr(CboCombo.Text, "Pk=") + 3, Len(CboCombo.Text)) End Function Function GFS_Recupera_DetTabla(FSTabla As String, FSNombre_Campo As String, FSCampo_Comparar As String, FLCodigo As String) As String Dim PrdsDet As New ADODB.Recordset Dim PVQuery As String

Page 186: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

186

PVQuery = "SELECT " & FSNombre_Campo & " AS CAMPO FROM " & FSTabla & " " PVQuery = PVQuery & "WHERE " & FSCampo_Comparar & " = '" & FLCodigo & "' " Set PrdsDet = GrdsF_Recupera_Datos(PVQuery) If Not PrdsDet.EOF Then If Not IsNull(PrdsDet!CAMPO) Then GFS_Recupera_DetTabla = PrdsDet!CAMPO End If End If PrdsDet.Close Set PrdsDet = Nothing End Function Public Sub INSERTAR_OFICIO(IMAGEN As String, SQL As String, ID_NUM As String, ID_SEC As String) Dim RS4 As New ADODB.Recordset Dim lnNumero Dim F As Long, I As Long Dim fragment As Long Dim Chunks Dim varChunk() As Byte RS4.Open SQL, GcnxConeccion, adOpenKeyset, adLockOptimistic ', adCmdTable If IMAGEN <> "" Then If RS4.EOF Or BandOfi = True Then RS4.AddNew End If ' Abrimos el fichero para poder subirlo lnNumero = FreeFile Open IMAGEN For Binary Access Read As lnNumero ' El fichero hay que partirlo en trozos.... F = LOF(lnNumero) ' Longitud de los datos en el archivo If F = 0 Then Close lnNumero: Exit Sub Chunks = F \ 16384 fragment = F Mod 16384 ' limpiamos el campo por si acaso... RS4!OFICIO.AppendChunk Null ReDim varChunk(fragment) ' Tomo un trozo del tamaño necesario Get lnNumero, , varChunk() RS4!OFICIO.AppendChunk varChunk()

Page 187: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

187

ReDim varChunk(16384) ' y ahora los trozos que quedan todos igualitos ... For I = 1 To Chunks Get lnNumero, , varChunk() RS4!OFICIO.AppendChunk varChunk() Next I Close lnNumero RS4!ID_SEC_IO = ID_NUM RS4!NUM_OFICIO = ID_SEC RS4.Update End If ' Cerramos el fichero, actualizamos y listo..... RS4.Close End Sub 'Funcion 1 de Jenny Sub GP_RolFacultad(PFrmForma As Form) Dim rs1 As New ADODB.Recordset Load FrmDependencia If PFrmForma.FVTipo = "G" Then GVQuery = "SELECT CODIGO, ISNULL(COD_DEPEND_OTROS, ' ') COD_DEPEND_OTROS, ISNULL(CARRERA, ' ') [AREA/SECCION/OTROS], ISNULL(ESCUELA, ' ') DIVISION, UNID_ADMIN_ACADEM DEPARTAMENTO " GVQuery = GVQuery & "FROM BdAlmacenDatos..VS_UNIDAD_ADMINISTRATIVA " GVQuery = GVQuery & "WHERE COD_UNIVERSIDAD = '01' " GVrtNombreCampo = Array("SECUENCIA", "CODIGO", "AREA/SECCION/OTROS", "DIVISION", "DEPARTAMENTO") FrmDependencia.Campo_Filtro = "AREA/SECCION/OTROS" Else GVQuery = "SELECT CODIGO, DEP_CARRERA, CARRERA, ESCUELA, UNID_ADMIN_ACADEM " GVQuery = GVQuery & "FROM BdAlmacenDatos..VS_UNIDAD_ACADEMICA " GVQuery = GVQuery & "WHERE COD_UNIVERSIDAD = '01' " GVrtNombreCampo = Array("SECUENCIA", "CODIGO", "CARRERA", "ESCUELA", "FACULTAD") FrmDependencia.Campo_Filtro = "CARRERA" End If 'GVQuery = GVQuery & GFV_Add_Perfil FrmDependencia.FVTipo = PFrmForma.FVTipo GVrtAnchoCampo = Array("0", "1100", "4000", "4000", "4000")

Page 188: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

188

Set rs1 = GrdsF_Recupera_Datos(GVQuery) GP_Cargar_Msfgrid True, FrmDependencia.MFGHelp, GVrtNombreCampo, GVrtAnchoCampo, 5, rs1 FrmDependencia.MFGHelp.Col = 1 FrmDependencia.MFGHelp.Sort = 5 Set FrmDependencia.RS = rs1 FrmDependencia.OptOtrosCar = True FrmDependencia.Caption = "Dependencia." FrmDependencia.Show 1 If Not FrmDependencia.Cancelar Then If FrmDependencia.MFGHelp.Row > 0 Then 'validacion de los option If FrmDependencia.OptUndad Then PFrmForma.COD_UNIDAD = FrmDependencia.MFGHelp.TextMatrix(FrmDependencia.MFGHelp.Row, 0) PFrmForma.NOM_UNIDAD = FrmDependencia.TxtDescripcion ElseIf FrmDependencia.OptDptoEsc Then PFrmForma.COD_UNIDAD = FrmDependencia.MFGHelp.TextMatrix(FrmDependencia.MFGHelp.Row, 0) PFrmForma.NOM_UNIDAD = FrmDependencia.TxtDescripcion & " - " & FrmDependencia.MFGHelp.TextMatrix(FrmDependencia.MFGHelp.Row, 2) Else PFrmForma.COD_UNIDAD = FrmDependencia.MFGHelp.TextMatrix(FrmDependencia.MFGHelp.Row, 1) PFrmForma.NOM_UNIDAD = FrmDependencia.TxtDescripcion & " ( " & FrmDependencia.MFGHelp.TextMatrix(FrmDependencia.MFGHelp.Row, 3) & " - " & FrmDependencia.MFGHelp.TextMatrix(FrmDependencia.MFGHelp.Row, 4) & " )" End If PFrmForma.GVAdmin_Academ = FVF_Extrae_PK_Depend(PFrmForma.COD_UNIDAD, PFrmForma.FVTipo) End If End If FrmDependencia.Cancelar = False rs1.Close Set rs1 = Nothing Unload FrmDependencia End Sub Function GVQuery_OFICIO(IMAGEN As Image, SEC As String, NUM_OFI As String, Ruta As String) As String GVQuery = "SELECT * FROM TB_IMAGEN_OFICIO " GVQuery = GVQuery & "WHERE ID_SEC_IO = '" & Trim(SEC) & "' AND NUM_OFICIO= '" & Trim(NUM_OFI) & "'"

Page 189: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

189

GVQuery_OFICIO = RECUPERA_OFICIO(GVQuery, Ruta) IMAGEN.Picture = LoadPicture(GVQuery_OFICIO) End Function Function RECUPERA_OFICIO(SQL As String, Ruta As String) As String Dim RS As New ADODB.Recordset Dim F As Long, I As Long Dim fragment As Long Dim Chunks Dim varChunk() As Byte ' Abrimos la información en el registro que nos interesa.... RS.Open SQL, GcnxConeccion, adOpenKeyset, adLockOptimistic ', adCmdTable If Not RS.EOF Then ' Si no existiese el registro no hay nada que devolver.... 'Pasos para recuperar una imágen desde un campo de una tabla de base de datos en SQL SERVER F = RS!OFICIO.ActualSize If F = 0 Then Exit Function Open Ruta For Binary Access Write As #1 Chunks = F \ 16384 fragment = F Mod 16384 ReDim varChunk(fragment) varChunk() = RS!OFICIO.GetChunk(fragment) Put #1, , varChunk() For I = 1 To Chunks ReDim varChunk(16384) varChunk() = RS!OFICIO.GetChunk(16384) Put #1, , varChunk() Next I Close #1 RECUPERA_OFICIO = Ruta End If RS.Close End Function Public Declare Function SetParent Lib "user32" (ByVal hWndChild As Long, ByVal hWndNewParent As Long) As Long Public Declare Function SendMessageAny Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal msg As Long, ByVal wParam As Long, lParam As Any) As Long Public Type RECT Left As Long Top As Long

Page 190: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

190

Right As Long Bottom As Long End Type Public Const WM_USER As Long = &H400 Public Const SB_GETRECT As Long = (WM_USER + 10) 'Incrementar Codigos Secuenciales en la tabla TB_IDSEC Function GVF_NewIndice(PVSql As String, Condicion As String) As Long Dim PrdsDatos As New ADODB.Recordset Set PrdsDatos = GrdsF_Recupera_Datos(PVSql) If Not PrdsDatos.EOF Then If Not IsNull(PrdsDatos.Fields(0)) Then GVF_NewIndice = Val(Trim(PrdsDatos.Fields(0))) + 1 GVQuery = "EXEC SP_IDSEC U, " GVQuery = GVQuery & "'" & Trim(GVF_NewIndice) & "' ," GVQuery = GVQuery & "'" & Trim(Condicion) & "' " GrdsF_Recupera_Datos (GVQuery) Else GVF_NewIndice = 0 End If PrdsDatos.Close End If End Function 'Decrementa Codigos Secuenciales en la tabla TB_IDSEC Public Sub GVF_DecIndi(Indi As String, Condi As String) Dim PVSql As String Dim PrdsDatos As New ADODB.Recordset PVSql = "SELECT INDICE FROM TB_IDSEC WHERE CONDICION = '" & Condi & "' " Set PrdsDatos = GrdsF_Recupera_Datos(PVSql) If Not PrdsDatos.EOF Then If Not IsNull(PrdsDatos.Fields(0)) Then If Val(PrdsDatos.Fields(0)) = Val(Indi) Then GVQuery = "EXEC SP_IDSEC U, " GVQuery = GVQuery & "'" & Val(Indi) - 1 & "' ," GVQuery = GVQuery & "'" & Trim(Condi) & "' " GrdsF_Recupera_Datos (GVQuery) End If End If PrdsDatos.Close End If End Sub

Page 191: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

191

'Crear Códigos secuenciales: COMO ENTERO Function GVF_Inc_Codigo_Sec(PVSql As String) As Long Dim PrdsDatos As New ADODB.Recordset Set PrdsDatos = GrdsF_Recupera_Datos(PVSql) If Not PrdsDatos.EOF Then If Not IsNull(PrdsDatos.Fields(0)) Then GVF_Inc_Codigo_Sec = Val(Trim(PrdsDatos.Fields(0))) + 1 Else GVF_Inc_Codigo_Sec = 1 End If PrdsDatos.Close End If End Function Public Sub ACTIVAR(PFrmForma As Form) Select Case PFrmForma.activa Case 0 'Proceso de Inicio 'Fase de activar PFrmForma.MnuOpen.Enabled = True PFrmForma.TlbMenu.Buttons(4).Enabled = True PFrmForma.MnuNew.Enabled = True PFrmForma.TlbMenu.Buttons(2).Enabled = True 'Fase de desactivar PFrmForma.MnuSave.Enabled = False PFrmForma.TlbMenu.Buttons(6).Enabled = False PFrmForma.MnuUpdate.Enabled = False PFrmForma.TlbMenu.Buttons(7).Enabled = False PFrmForma.MnuDelete.Enabled = False PFrmForma.TlbMenu.Buttons(8).Enabled = False PFrmForma.FraGeneral.Enabled = False Case 1 'Proceso Nuevo 'Fase de activar PFrmForma.MnuNew.Enabled = True PFrmForma.TlbMenu.Buttons(2).Enabled = True PFrmForma.MnuSave.Enabled = True PFrmForma.TlbMenu.Buttons(6).Enabled = True PFrmForma.FraGeneral.Enabled = True 'Fase de desactivar PFrmForma.MnuOpen.Enabled = False PFrmForma.TlbMenu.Buttons(4).Enabled = False PFrmForma.MnuUpdate.Enabled = False PFrmForma.TlbMenu.Buttons(7).Enabled = False PFrmForma.MnuDelete.Enabled = False

Page 192: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

192

PFrmForma.TlbMenu.Buttons(8).Enabled = False Case 2 'Proceso Abrir 'Fase de activar PFrmForma.MnuOpen.Enabled = True PFrmForma.TlbMenu.Buttons(4).Enabled = True PFrmForma.MnuUpdate.Enabled = True PFrmForma.TlbMenu.Buttons(7).Enabled = True PFrmForma.MnuDelete.Enabled = True PFrmForma.TlbMenu.Buttons(8).Enabled = True 'Fase de desactivar PFrmForma.MnuNew.Enabled = False PFrmForma.TlbMenu.Buttons(2).Enabled = False PFrmForma.MnuSave.Enabled = False PFrmForma.TlbMenu.Buttons(6).Enabled = False PFrmForma.FraGeneral.Enabled = False Case 3 'Proceso Actualizar 'Fase de activar PFrmForma.MnuUpdate.Enabled = True PFrmForma.TlbMenu.Buttons(7).Enabled = True PFrmForma.MnuSave.Enabled = True PFrmForma.TlbMenu.Buttons(6).Enabled = True PFrmForma.FraGeneral.Enabled = True 'Fase de desactivar PFrmForma.MnuNew.Enabled = False PFrmForma.TlbMenu.Buttons(2).Enabled = False PFrmForma.MnuOpen.Enabled = False PFrmForma.TlbMenu.Buttons(4).Enabled = False PFrmForma.MnuDelete.Enabled = False PFrmForma.TlbMenu.Buttons(8).Enabled = False End Select End Sub

Módulo de Recepción de Oficio Añadir Personas que se encuentran Detalladas en el Oficio ó el destino a

donde se enviará, para esto el procedimiento de vb envía datos al

Procedimiento de SQL que ejecuta las ordenes basados en Un tipo definido por

Page 193: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

193

el programador I (inserción), U (actualización), D (eliminar), H (histórico), Etc.

Trabajando con una tabla temporal.

Sub LLENAR_TEMPORAL() GVQuery = "SP_TMP_INVOLDESTINO" GVQuery = GVQuery & " '" & GVtiposqlTMP & "', " GVQuery = GVQuery & "'" & secuencialTMP & "', " GVQuery = GVQuery & "'" & Trim(ID_SEC) & "', " GVQuery = GVQuery & "'" & Trim(I) & "', " GVQuery = GVQuery & "'" & Trim(tipo) & "', " GVQuery = GVQuery & "'" & EstadoTMP & "'," GVQuery = GVQuery & "'" & origen & "' " GrdsF_Recupera_Datos (GVQuery) End sub

CREATE PROCEDURE SP_TMP_INVOLDESTINO(

@TIPO AS CHAR(2),

@VID_SEC_INVOL AS numeric,

@NUM_OFICIO AS numeric,

@VID_PERSONAL AS varchar(20),

@VTIPO AS char(10),

@VESTADO AS char(1),

@VORIGEN AS varchar(100))

AS

BEGIN TRANSACTION

--INSERCIONES

IF @TIPO = 'I'

BEGIN

INSERT INTO TMP_INVOL_DESTINO

VALUES (@VID_SEC_INVOL,

@NUM_OFICIO,

@VID_PERSONAL,

@VTIPO,

@VESTADO,

@VORIGEN )

IF (@@ERROR <> 0)

BEGIN

ROLLBACK TRANSACTION

RETURN(99)

END

Page 194: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

194

END

--ACTUALIZACIONES

IF @TIPO = 'U'

BEGIN

UPDATE TMP_INVOL_DESTINO SET

ESTADO = @VESTADO

WHERE ID_PERSONAL = @VID_PERSONAL

AND NUM_OFICIO = @NUM_OFICIO

IF (@@ERROR <> 0)

BEGIN

ROLLBACK TRANSACTION

RETURN(99)

END

END

--ELIMINACIONES

IF @TIPO = 'D'

BEGIN

DELETE TMP_INVOL_DESTINO

WHERE ID_PERSONAL = @VID_PERSONAL

AND NUM_OFICIO = @NUM_OFICIO

AND ORIGEN = @VORIGEN

IF (@@ERROR <> 0)

BEGIN

ROLLBACK TRANSACTION

RETURN(99)

END

END

IF @TIPO = 'R'

BEGIN

DELETE TMP_INVOL_DESTINO

WHERE NUM_OFICIO = @NUM_OFICIO

AND ORIGEN = @VORIGEN

IF (@@ERROR <> 0)

BEGIN

ROLLBACK TRANSACTION

RETURN(99)

END

END

Page 195: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

195

--RETROCESO

IF (@@ERROR <> 0)

ROLLBACK TRANSACTION

ELSE

COMMIT TRANSACTION

GO

Ingreso de Oficio en la base (tareas de inserción, actualización y eliminación) Private Sub INGRESO_OFICIO() GVQuery = "SP_INGRESO_OFICIO" GVQuery = GVQuery & "'" & GVtiposql & "', " GVQuery = GVQuery & "'" & ID_SEC & "', " GVQuery = GVQuery & "'" & Me.Txb_oficio & "', " GVQuery = GVQuery & "'" & UNIDAD & "', " GVQuery = GVQuery & "'" & relacion & "', " GVQuery = GVQuery & "'" & Me.Txb_observacion & "', " GVQuery = GVQuery & "'" & Format(Me.DTP_FECHA, "yyyy/mm/dd") & "', " GVQuery = GVQuery & "'" & GVestado & "' " GrdsF_Recupera_Datos (GVQuery) End sub CREATE PROCEDURE SP_INGRESO_OFICIO( @TIPO AS CHAR(1),@VID_SEC AS NUMERIC, @VNUM_OFICIO AS VARCHAR(20), @VUNIDAD AS VARCHAR(12), @VOFICIO_RELACION AS NUMERIC,@VNOTA AS VARCHAR(500), @VFECHA_INGRESO AS DATETIME,@VTRAMITE AS VARCHAR(1) ) AS BEGIN TRANSACTION IF @TIPO = 'I' BEGIN INSERT INTO TB_INGRESO_OFICIO VALUES ( @VID_SEC, @VNUM_OFICIO, @VUNIDAD, @VOFICIO_RELACION, @VNOTA, @VFECHA_INGRESO, @VTRAMITE ) IF (@@ERROR <> 0) BEGIN

Page 196: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

196

ROLLBACK TRANSACTION RETURN(99) END END

IF @TIPO = 'U' BEGIN UPDATE TB_INGRESO_OFICIO SET NUM_OFICIO=@VNUM_OFICIO, UNIDAD=@VUNIDAD, OFICIO_RELACION=@VOFICIO_RELACION, NOTA=@VNOTA, FECHA_INGRESO=@VFECHA_INGRESO, TRAMITE=@VTRAMITE WHERE ID_SEC = @VID_SEC IF (@@ERROR <> 0) BEGIN ROLLBACK TRANSACTION RETURN(99) END END IF @TIPO = 'D' BEGIN DELETE TB_INVOL_OFICIO WHERE NUM_OFICIO =@VID_SEC DELETE TB_IMAGEN_OFICIO WHERE NUM_OFICIO =@VID_SEC DELETE TB_OFICIO_CORREO WHERE OFICIO =@VID_SEC DELETE TB_INGRESO_OFICIO WHERE ID_SEC =@VID_SEC

Page 197: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

197

IF (@@ERROR <> 0) BEGIN ROLLBACK TRANSACTION RETURN(99) END END

IF (@@ERROR <> 0) ROLLBACK TRANSACTION ELSE COMMIT TRANSACTION GO Private Sub OFICIO_IMAGEN() ID_NUM = GVF_Inc_Codigo_Sec("select max(ID_SEC_IO) from TB_IMAGEN_OFICIO") GVQuery = "SELECT * FROM TB_IMAGEN_OFICIO " GVQuery = GVQuery & "WHERE NUM_OFICIO = '" & ID_SEC & "'" INSERTAR_OFICIO ruta_foto, GVQuery, Str(ID_NUM), Str(ID_SEC) End Sub Public Sub INSERTAR_OFICIO(IMAGEN As String, SQL As String, ID_NUM As String, ID_SEC As String) Dim RS4 As New ADODB.Recordset Dim lnNumero Dim F As Long, I As Long Dim fragment As Long Dim Chunks Dim varChunk() As Byte RS4.Open SQL, GcnxConeccion, adOpenKeyset, adLockOptimistic ', adCmdTable If IMAGEN <> "" Then If RS4.EOF Or BandOfi = True Then RS4.AddNew End If ' Abrimos el fichero para poder subirlo lnNumero = FreeFile Open IMAGEN For Binary Access Read As lnNumero ' El fichero hay que repartirlos en tramas F = LOF(lnNumero) ' Longitud de los datos en el archivo If F = 0 Then Close lnNumero: Exit Sub Chunks = F \ 16384 fragment = F Mod 16384

Page 198: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

198

' limpiamos el campo por si acaso... RS4!OFICIO.AppendChunk Null ReDim varChunk(fragment) ' Tomo un trama del tamaño necesario Get lnNumero, , varChunk() RS4!OFICIO.AppendChunk varChunk() ReDim varChunk(16384) For I = 1 To Chunks Get lnNumero, , varChunk() RS4!OFICIO.AppendChunk varChunk() Next I Close lnNumero RS4!ID_SEC_IO = ID_NUM RS4!NUM_OFICIO = ID_SEC RS4.Update End If ' Cerramos el fichero, actualizamos y listo..... RS4.Close End Sub Private Sub INSERTAR_DESTINO() REVISADO = "NR" Dim J As Integer For J = 1 To Me.Msf_Destino.Rows - 1 GVQuery3 = "EXEC SP_OFICIO_CORREO " GVQuery3 = GVQuery3 & "'" & GVtiposql & "', " GVQuery3 = GVQuery3 & "'" & GVF_Inc_Codigo_Sec("SELECT max(ID_SEC) FROM TB_OFICIO_CORREO") & "', " GVQuery3 = GVQuery3 & "'" & Val(Me.Msf_Destino.TextMatrix(J, 1)) & "'," 'GVQuery3 = GVQuery3 & "'" & FrmIngresoOficio.Msf_Destino.TextMatrix(FrmIngresoOficio.Msf_Destino.Row, 1) & "', " GVQuery3 = GVQuery3 & "'" & ID_SEC & "', " GVQuery3 = GVQuery3 & "'" & Me.Txb_asunto & "', " GVQuery3 = GVQuery3 & "'" & (Me.Cbb_destino.ItemData(Me.Cbb_destino.ListIndex)) & "', " GVQuery3 = GVQuery3 & "'" & Format(Me.DTP_FECHA, "yyyy/mm/dd") & "', " GVQuery3 = GVQuery3 & "'" & REVISADO & "', " GVQuery3 = GVQuery3 & "'" & Format(Me.DTP_FECHA, "yyyy/mm/dd") & "', " GVQuery3 = GVQuery3 & "'" & origen & "' " GrdsF_Recupera_Datos (GVQuery3)

Page 199: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

199

Next J End Sub

CREATE PROCEDURE SP_OFICIO_CORREO( @TIPO AS CHAR(1), @VID_SEC AS numeric, @VDESTINO AS numeric, @VOFICIO AS numeric, @VASUNTO AS VARCHAR(300), @VTRAMITE AS numeric, @VFECHA_REGISTRO AS datetime, @VREVISADO AS CHAR(2), @VFECHA_REVISADO AS DATETIME, @VORIGEN AS VARCHAR(50)) AS BEGIN TRANSACTION IF @TIPO = 'I' BEGIN INSERT INTO TB_OFICIO_CORREO VALUES (@VID_SEC, @VDESTINO, @VOFICIO, @VASUNTO, @VTRAMITE, @VFECHA_REGISTRO, @VREVISADO, @VFECHA_REVISADO, @VORIGEN ) IF (@@ERROR <> 0) BEGIN ROLLBACK TRANSACTION RETURN(99) END END IF @TIPO = 'U' BEGIN

Page 200: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

200

UPDATE TB_OFICIO_CORREO SET ASUNTO = @VASUNTO, REVISADO=@VREVISADO, FECHA_REVISADO=@VFECHA_REVISADO WHERE ID_SEC=@VID_SEC AND OFICIO=@VOFICIO IF (@@ERROR <> 0) BEGIN ROLLBACK TRANSACTION RETURN(99) END END IF (@@ERROR <> 0) ROLLBACK TRANSACTION ELSE COMMIT TRANSACTION GO Creación de cuentas para uso del correo, esto por lo general se dará hacia los

destinatarios involucrados en las distintas etapas de un trámite.

Private Sub BASE_USUARIO_CORREO() GVQuery = "SP_CUENTA_USUARIO" GVQuery = GVQuery & "'" & GVtiposql & "', " GVQuery = GVQuery & "'" & ID_SEC & "', " GVQuery = GVQuery & "'" & personal & "', " GVQuery = GVQuery & "'" & Me.Txb_user & "', " GVQuery = GVQuery & "'" & Me.TxtContraseña & "', " GVQuery = GVQuery & "'" & (Me.Cbb_pgta.ItemData(Me.Cbb_pgta.ListIndex)) & "', " GVQuery = GVQuery & "'" & Me.Txb_respuesta & "', " GVQuery = GVQuery & "'" & Me.Txb_seccion & "', " 'GVQuery = GVQuery & "'" & Format(Me.DTP_FECHA, "dd/mm/yyyy") & "', " GVQuery = GVQuery & "'" & Format(Me.DTP_FECHA, "yyyy/mm/dd") & "', " GVQuery = GVQuery & "'" & GVestado & "' " GrdsF_Recupera_Datos (GVQuery) End Sub

CREATE PROCEDURE SP_CUENTA_USUARIO(

Page 201: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

201

@TIPO AS CHAR(1), @VID_SEC AS numeric, @VID_DATOS_PERSONAL AS varchar(20), @VUSUARIO AS varchar(30), @VCONTRASEÑA AS varchar(30), @VPREGUNTA_SECRETA AS int, @VRESPUESTA AS varchar(300), @VSECCION AS varchar(100), @VFC AS datetime, @VESTADO AS varchar(1) ) AS BEGIN TRANSACTION IF @TIPO = 'I' BEGIN INSERT INTO TB_CUENTA VALUES (@VID_SEC, @VID_DATOS_PERSONAL, @VUSUARIO, @VCONTRASEÑA, @VPREGUNTA_SECRETA , @VRESPUESTA, @VSECCION, @VFC, @VESTADO ) IF (@@ERROR <> 0) BEGIN ROLLBACK TRANSACTION RETURN(99) END END IF @TIPO = 'U' BEGIN UPDATE TB_CUENTA SET USUARIO=@VUSUARIO, CONTRASEÑA=@VCONTRASEÑA, PREGUNTA_SECRETA=@VPREGUNTA_SECRETA ,

Page 202: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

202

RESPUESTA=@VRESPUESTA, SECCION=@VSECCION WHERE ID_SEC=@VID_SEC AND ID_DATOS_PERSONAL=@VID_DATOS_PERSONAL IF (@@ERROR <> 0) BEGIN ROLLBACK TRANSACTION RETURN(99) END END IF @TIPO = 'D' BEGIN UPDATE TB_CUENTA SET ESTADO = @VESTADO WHERE ID_SEC=@VID_SEC AND ID_DATOS_PERSONAL=@VID_DATOS_PERSONAL IF (@@ERROR <> 0) BEGIN ROLLBACK TRANSACTION RETURN(99) END END IF (@@ERROR <> 0) ROLLBACK TRANSACTION ELSE COMMIT TRANSACTION GO

Módulo de Admisión Se crea el registro de aspirante para poder realizar el respectivo test de ingreso

(Conocimiento y Psicológico).

Page 203: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

203

Private Sub SaveAspirante() GVQuery = "SP_INGRESO_ASPIRANTE" GVQuery = GVQuery & "'I', " GVQuery = GVQuery & "'" & Me.Txb_cedula & "', " GVQuery = GVQuery & "'" & Me.Txb_Nombres & "', " GVQuery = GVQuery & "'" & Me.Txb_Apellidos & "', " GVQuery = GVQuery & "'" & Me.Txb_Fono & "', " GVQuery = GVQuery & "'" & Me.Txb_Celular & "', " GVQuery = GVQuery & "'" & Me.Txb_Correo & "' ," GVQuery = GVQuery & "'" & Format(Me.DTP_FECHA, "yyyy/mm/dd") & "' " ' GVQuery = GVQuery & "'" & Format(Me.DTPicker1, "dd/mm/yyyy") & "' " GrdsF_Recupera_Datos (GVQuery) MsgBox "Registro Creado Correctamente ", vbInformation, "FELICIDADES" End Sub CREATE PROCEDURE SP_INGRESO_ASPIRANTE( @TIPO AS CHAR(1), @VCI AS VARCHAR(10), @VNOMBRES AS VARCHAR(50), @VAPELLIDOS AS VARCHAR(50), @VTELEFONO AS VARCHAR(12), @VCELULAR AS VARCHAR(12), @VCORREO AS VARCHAR(30), @VINGRESO AS DATETIME ) AS BEGIN TRANSACTION IF @TIPO = 'I' BEGIN INSERT INTO TB_ENTREVISTADO VALUES ( @VCI, @VNOMBRES, @VAPELLIDOS, @VTELEFONO, @VCELULAR, @VCORREO, @VINGRESO ) IF (@@ERROR <> 0) BEGIN

Page 204: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

204

ROLLBACK TRANSACTION RETURN(99) END END IF @TIPO = 'U' BEGIN UPDATE TB_ENTREVISTADO SET NOMBRES=@VNOMBRES, APELLIDOS=@VAPELLIDOS, TELEFONO=@VTELEFONO, CELULAR=@VCELULAR, CORREO=@VCORREO, INGRESO=@VINGRESO WHERE CI=@VCI IF (@@ERROR <> 0) BEGIN ROLLBACK TRANSACTION RETURN(99) END END IF @TIPO = 'D' BEGIN DELETE TB_ENTREVISTADO WHERE CI=@VCI IF (@@ERROR <> 0) BEGIN ROLLBACK TRANSACTION RETURN(99) END END

Page 205: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

205

IF (@@ERROR <> 0) ROLLBACK TRANSACTION ELSE COMMIT TRANSACTION GO Private Sub GUARDAR_RESULTADO() 'Gvtipo = "I" GVQuery = "SP_ENTREVISTADO_RESPUESTA" GVQuery = GVQuery & " '" & Gvtipo & "' , " GVQuery = GVQuery & "'" & cedul & "', " 'GVQuery = GVQuery & "'" & Trim(FrmAdmInicioTest.Txb_cedula) & "', " GVQuery = GVQuery & "'" & NumeroTest & "', " 'GVQuery = GVQuery & "'" & FrmAdmInicioTest.Cbb_elegir.ItemData(FrmAdmInicioTest.Cbb_elegir.ListIndex) & "', " GVQuery = GVQuery & "'" & Trim(PRE) & "' ," GVQuery = GVQuery & "'" & Trim(Me.MfgOPciones.TextMatrix(Me.MfgOPciones.Row, 0)) & "', " GVQuery = GVQuery & "'" & Format(Me.DTP_FECHA, "yyyy/mm/dd") & "' ," 'GVQuery = GVQuery & "'" & Format(Me.DTP_FECHA, "dd/mm/yyyy") & "' ," GVQuery = GVQuery & "'" & Trim(punto) & "' " GrdsF_Recupera_Datos (GVQuery) End Sub

CREATE PROCEDURE SP_ENTREVISTADO_RESPUESTA( @TIPO AS CHAR(1), @VENTREVISTADO AS varchar(10), @VID_TEST AS INT, @VID_PREGUNTA AS NUMERIC, @VRESPUESTA_ENTREVISTADO AS NUMERIC, @VFC AS DATETIME, @VPUNTAJE AS CHAR (10)) AS

Page 206: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

206

BEGIN TRANSACTION IF @TIPO = 'I' BEGIN INSERT INTO TB_ENTREVISTADO_RESPUESTA VALUES (@VENTREVISTADO, @VID_TEST, @VID_PREGUNTA, @VRESPUESTA_ENTREVISTADO, @VFC, @VPUNTAJE ) IF (@@ERROR <> 0) BEGIN ROLLBACK TRANSACTION RETURN(99) END END IF @TIPO = 'U' BEGIN UPDATE TB_ENTREVISTADO_RESPUESTA SET RESPUESTA_ENTREVISTADO = @VRESPUESTA_ENTREVISTADO WHERE ID_PREGUNTA = @VID_PREGUNTA IF (@@ERROR <> 0) BEGIN ROLLBACK TRANSACTION RETURN(99) END END IF @TIPO = 'D' BEGIN DELETE TB_ENTREVISTADO_RESPUESTA WHERE ENTREVISTADO =@VENTREVISTADO AND ID_TEST = @VID_TEST IF (@@ERROR <> 0) BEGIN ROLLBACK TRANSACTION

Page 207: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

207

RETURN(99) END END IF (@@ERROR <> 0) ROLLBACK TRANSACTION ELSE COMMIT TRANSACTION GO Private Sub GUARDAR_MATERIA() GVQuery = "SP_MATERIA" GVQuery = GVQuery & "'" & tipo & "', " GVQuery = GVQuery & "'" & Trim(IdMateria) & "', " GVQuery = GVQuery & "'" & Format(FECHA, "yyyy/mm/dd") & "', " GVQuery = GVQuery & "'" & Trim(UCase(Txb_materia.Text)) & "' " GrdsF_Recupera_Datos (GVQuery) End Sub CREATE PROCEDURE SP_MATERIA( @TIPO AS CHAR(1), @VID_MATERIA AS INT, @VFECHA_CREACION AS DATETIME, @VNOMBRE_MATERIA AS VARCHAR(50)) AS BEGIN TRANSACTION IF @TIPO = 'I' BEGIN SET @VID_MATERIA = (SELECT count(ID_MATERIA) + 1 FROM TB_MATERIA) INSERT INTO TB_MATERIA VALUES( @VID_MATERIA, @VFECHA_CREACION, @VNOMBRE_MATERIA, '1' ) IF (@@ERROR <> 0) BEGIN ROLLBACK TRANSACTION RETURN(99) END END

Page 208: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

208

IF @TIPO = 'U' BEGIN UPDATE TB_MATERIA SET FECHA_CREACION = @VFECHA_CREACION, NOMBRE_MATERIA = @VNOMBRE_MATERIA WHERE ID_MATERIA =@VID_MATERIA IF (@@ERROR <> 0) BEGIN ROLLBACK TRANSACTION RETURN(99) END END IF @TIPO = 'D' BEGIN DELETE TB_MATERIA_TEST WHERE ID_MATERIA =@VID_MATERIA DELETE TB_PREGUNTA WHERE ID_MATERIA =@VID_MATERIA DELETE TB_MATERIA WHERE ID_MATERIA =@VID_MATERIA IF (@@ERROR <> 0) BEGIN ROLLBACK TRANSACTION RETURN(99) END END IF (@@ERROR <> 0) ROLLBACK TRANSACTION ELSE COMMIT TRANSACTION GO

Page 209: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

209

CREATE PROCEDURE SP_PREGUNTA_SOLUCION( @TIPO VARCHAR(1), @ID_PREGUNTA AS numeric, @ID_MATERIA AS int, @DESCRIPCION AS varchar(300), @SOLUCION AS numeric) AS BEGIN TRANSACTION IF @TIPO = 'I' BEGIN INSERT INTO TB_PREGUNTA VALUES (@ID_PREGUNTA, @ID_MATERIA, @DESCRIPCION, @SOLUCION) IF (@@ERROR <> 0) BEGIN ROLLBACK TRANSACTION RETURN(99) END END IF @TIPO = 'U' BEGIN UPDATE TB_PREGUNTA SET DESCRIPCION = @DESCRIPCION, SOLUCION = @SOLUCION WHERE ID_PREGUNTA = @ID_PREGUNTA AND ID_MATERIA = @ID_MATERIA IF (@@ERROR <> 0) BEGIN ROLLBACK TRANSACTION RETURN(99) END END IF @TIPO = 'D' BEGIN DELETE FROM TB_PREGUNTA WHERE ID_PREGUNTA = @ID_PREGUNTA IF (@@ERROR <> 0) BEGIN ROLLBACK TRANSACTION RETURN(99)

Page 210: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

210

END END IF (@@ERROR <> 0) ROLLBACK TRANSACTION ELSE COMMIT TRANSACTION GO Private Sub GUARDAR_CURSOS() GVQuery = "SP_CURSOS" GVQuery = GVQuery & "'" & tipo & "', " GVQuery = GVQuery & "'" & Me.Txb_CODIGO & "', " GVQuery = GVQuery & "'" & UCase(Me.Txb_Curso) & "', " GVQuery = GVQuery & "'" & UCase(Me.Txb_Objetivo) & "', " GVQuery = GVQuery & "'" & UCase(ESTADO) & "', " GVQuery = GVQuery & "'" & Trim(Txb_valor.Text) & "', " GVQuery = GVQuery & "'" & Format(Me.DTP_FECHA, "yyyy/mm/dd") & "' " GrdsF_Recupera_Datos (GVQuery) End Sub

CREATE PROCEDURE SP_CURSOS( @TIPO AS CHAR(1), @VID_CURSO AS numeric, @VNOMBRE AS varchar(100), @VOBJETIVO AS TEXT, @VESTADO AS CHAR(1), @VALOR AS CHAR(10), @VFC AS DATETIME) AS BEGIN TRANSACTION IF @TIPO = 'I' BEGIN INSERT INTO TB_CURSOS VALUES (@VID_CURSO,

Page 211: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

211

@VNOMBRE, @VOBJETIVO, @VESTADO, @VALOR, @VFC) IF (@@ERROR <> 0) BEGIN ROLLBACK TRANSACTION RETURN(99) END END IF @TIPO = 'U' BEGIN UPDATE TB_CURSOS SET NOMBRE=@VNOMBRE, OBJETIVO=@VOBJETIVO, VALOR = @VALOR WHERE ID_CURSO=@VID_CURSO IF (@@ERROR <> 0) BEGIN ROLLBACK TRANSACTION RETURN(99) END END IF @TIPO = 'D' BEGIN /* 'CAMBIO DE ESTADO AL REGISTRO EN LA TABLA MATERIA

PARA SIMULAR UNA ELIMINACION'*/

UPDATE TB_CURSOS SET

ESTADO=@VESTADO

WHERE ID_CURSO=@VID_CURSO

IF (@@ERROR <> 0)

BEGIN

Page 212: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

212

ROLLBACK TRANSACTION

RETURN(99)

END END IF @TIPO = 'T' BEGIN DELETE TB_CURSO_CARGO WHERE CURSO=@VID_CURSO /* EXISTENCIA DE CARGOS*/ DELETE TB_HC WHERE CURSO=@VID_CURSO DELETE TB_PC WHERE CURSO=@VID_CURSO DELETE TB_CURSO_ENTIDAD WHERE CURSO=@VID_CURSO DELETE TB_CURSO_TITULO WHERE CURSO=@VID_CURSO DELETE TB_CURSOS WHERE ID_CURSO=@VID_CURSO IF (@@ERROR <> 0) BEGIN ROLLBACK TRANSACTION RETURN(99) END END IF (@@ERROR <> 0) ROLLBACK TRANSACTION ELSE COMMIT TRANSACTION GO

Private Sub SavePeriodo() GVQuery = "SP_PERIODOS" GVQuery = GVQuery & "'" & tipo & "', " GVQuery = GVQuery & "'" & Me.Txb_CODIGO & "', " GVQuery = GVQuery & "'" & UCase(Me.Txb_Periodo) & "' "

Page 213: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

213

GrdsF_Recupera_Datos (GVQuery) End Sub

CREATE PROCEDURE SP_PERIODOS( @TIPO AS CHAR(1), @VID_PERIODO AS INT, @VDESCRIPCION AS varchar(150)) AS BEGIN TRANSACTION IF @TIPO = 'I' BEGIN INSERT INTO TB_PERIODOS VALUES (@VID_PERIODO, @VDESCRIPCION ) IF (@@ERROR <> 0) BEGIN ROLLBACK TRANSACTION RETURN(99) END END IF @TIPO = 'U' BEGIN UPDATE TB_PERIODOS SET DESCRIPCION=@VDESCRIPCION WHERE ID_PERIODO = @VID_PERIODO IF (@@ERROR <> 0) BEGIN ROLLBACK TRANSACTION RETURN(99) END END IF @TIPO = 'D' BEGIN

Page 214: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

214

/* 'CAMBIO DE ESTADO AL REGISTRO EN LA TABLA MATERIA PARA SIMULAR UNA ELIMINACION'*/ DELETE TB_PERIODOS WHERE ID_PERIODO = @VID_PERIODO IF (@@ERROR <> 0) BEGIN ROLLBACK TRANSACTION RETURN(99) END END IF (@@ERROR <> 0) ROLLBACK TRANSACTION ELSE COMMIT TRANSACTION GO Private Sub GUARDAR_TITULO() GVQuery = "SP_TITULOS" GVQuery = GVQuery & "'" & tipo & "', " GVQuery = GVQuery & "'" & Me.Txb_CODIGO & "', " GVQuery = GVQuery & "'" & UCase(Me.Txb_Titulo) & "', " GVQuery = GVQuery & "'" & Format(Me.DTP_FECHA, "yyyy/mm/dd") & "', " GVQuery = GVQuery & "'" & VNOVEDAD & "' " GrdsF_Recupera_Datos (GVQuery) End Sub

CREATE PROCEDURE SP_TITULOS( @TIPO AS CHAR(1), @VID_SEC AS numeric, @VNOMBRE AS varchar(50), @VFC AS DATETIME, @VNOVEDAD AS CHAR(2) ) AS BEGIN TRANSACTION IF @TIPO = 'I' BEGIN INSERT INTO TB_TITULOS VALUES (@VID_SEC,

Page 215: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

215

@VNOMBRE, @VFC, @VNOVEDAD) IF (@@ERROR <> 0) BEGIN ROLLBACK TRANSACTION RETURN(99) END END IF @TIPO = 'U' BEGIN UPDATE TB_TITULOS SET NOMBRE=@VNOMBRE, NOVEDAD=@VNOVEDAD WHERE ID_SEC = @VID_SEC IF (@@ERROR <> 0) BEGIN ROLLBACK TRANSACTION RETURN(99) END END IF @TIPO = 'D' BEGIN /* 'CAMBIO DE ESTADO AL REGISTRO EN LA TABLA MATERIA PARA SIMULAR UNA ELIMINACION'*/ DELETE TB_TITULOS WHERE ID_SEC = @VID_SEC IF (@@ERROR <> 0) BEGIN ROLLBACK TRANSACTION RETURN(99) END END IF (@@ERROR <> 0) ROLLBACK TRANSACTION ELSE COMMIT TRANSACTION GO Private Sub GUARDAR_CURSOS() GVQuery = " SP_CURSOS_PERSONAS " GVQuery = GVQuery & "'" & GVtiposql & "', "

Page 216: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

216

GVQuery = GVQuery & "'" & Trim(Val(Me.Txb_ficha)) & "', " GVQuery = GVQuery & "'" & Trim(personal) & "', " GVQuery = GVQuery & "'" & Trim(Val(id_c)) & "', " GVQuery = GVQuery & "'" & Format(Me.DTPFechaIni, "yyyy/mm/dd") & "', " GVQuery = GVQuery & "'" & Format(Me.DTPFechaFin, "yyyy/mm/dd") & "', " GVQuery = GVQuery & "'" & Me.Txb_Calificacion & "', " GVQuery = GVQuery & "'" & Me.TxbCritcas & "', " GVQuery = GVQuery & "'" & Me.Txb_Financiamiento & "' ," GVQuery = GVQuery & "'" & Format(Me.DTP_FECHA, "yyyy/mm/dd") & "' " GrdsF_Recupera_Datos (GVQuery) End Sub CREATE PROCEDURE SP_CURSOS_PERSONAS( @TIPO AS CHAR(1), @VID_CURPER AS NUMERIC, @VDATOS_PERSONAL AS VARCHAR(20), @VCURSOS AS numeric, @VF_I AS datetime, @VF_F AS datetime, @VCALIFICACION AS char(10), @VCOMENTARIO AS varchar(300), @VFINANCIAMIENTO AS varchar(200), @VFC AS DATETIME) AS BEGIN TRANSACTION IF @TIPO = 'I' BEGIN INSERT INTO TB_CURSOS_PERSONAS VALUES (@VID_CURPER, @VDATOS_PERSONAL, @VCURSOS, @VF_I, @VF_F, @VCALIFICACION, @VCOMENTARIO, @VFINANCIAMIENTO, @VFC)

Page 217: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

217

IF (@@ERROR <> 0) BEGIN ROLLBACK TRANSACTION RETURN(99) END END IF @TIPO = 'U' BEGIN UPDATE TB_CURSOS_PERSONAS SET F_I=@VF_I, F_F=@VF_F, CALIFICACION=@VCALIFICACION, COMENTARIO=@VCOMENTARIO, FINANCIAMIENTO=@VFINANCIAMIENTO WHERE ID_CURPER=@VID_CURPER AND CURSOS=@VCURSOS AND DATOS_PERSONAL=@VDATOS_PERSONAL IF (@@ERROR <> 0) BEGIN ROLLBACK TRANSACTION RETURN(99) END END

IF @TIPO = 'D' BEGIN DELETE FROM TB_CURSOS_PERSONAS WHERE ID_CURPER=@VID_CURPER IF (@@ERROR <> 0) BEGIN ROLLBACK TRANSACTION RETURN(99) END END

Page 218: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

218

IF (@@ERROR <> 0) ROLLBACK TRANSACTION ELSE COMMIT TRANSACTION GO

Salud Laboral

Private Sub GUARDAR_BASE() GVQuery = "SP_FICHAM " GVQuery = GVQuery & "'" & GVtiposql & "', " GVQuery = GVQuery & "'" & Me.Txb_ficha & "', " GVQuery = GVQuery & "'" & personal & "', " GVQuery = GVQuery & "'" & Me.Txb_estatura & "', " GVQuery = GVQuery & "'" & Me.Txb_peso & "', " GVQuery = GVQuery & "'" & Me.Txb_PreAr & "', " GVQuery = GVQuery & "'" & Me.Txb_sugerencias & "', " GVQuery = GVQuery & "'" & Me.Txb_tsangre & "' " GrdsF_Recupera_Datos (GVQuery) End Sub CREATE PROCEDURE SP_FICHA_MEDICA ( @TIPO AS CHAR(1), @VNUM_FICHA AS INT, @VINDICE AS NUMERIC, @VID_TIPER NUMERIC , @VFECHA_INGRESO AS DATETIME, @VTIPO_SANGRE AS VARCHAR(10), @VPRESION_ARTERIAL AS VARCHAR(10), @VDIAGNOSTICO AS VARCHAR(200), @VUserSystem AS VARCHAR(15), @VEstacion AS VARCHAR(15) ) AS DECLARE @VDetalle VARCHAR(300) BEGIN TRANSACTION IF @TIPO = 'I' BEGIN SET @VDetalle = 'Inserciòn en TB_FICHA_MEDICA (' + RTRIM(LTRIM(STR(@VNUM_FICHA)))+ ' /' + RTRIM(LTRIM(STR(@VINDICE))) + ' /' +RTRIM(LTRIM(STR(@VID_TIPER)))+ '/'

Page 219: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

219

+CONVERT(VARCHAR(10), @VFECHA_INGRESO)+ ' /'+@VTIPO_SANGRE+ '/'+@VPRESION_ARTERIAL+ '/' + @VDIAGNOSTICO + ')' INSERT INTO TB_FICHA_MEDICA VALUES ( @VNUM_FICHA, @VINDICE, @VID_TIPER, @VFECHA_INGRESO, @VTIPO_SANGRE, @VPRESION_ARTERIAL, @VDIAGNOSTICO ) IF (@@ERROR <> 0) BEGIN ROLLBACK TRANSACTION RETURN(99) END END IF @TIPO = 'U' BEGIN SET @VDetalle = 'Actualizacion en TB_FICHA_MEDICA (' + ' /' +RTRIM(LTRIM(STR(@VID_TIPER)))+ '/'+CONVERT(VARCHAR(10), @VFECHA_INGRESO)+ ' /'+@VTIPO_SANGRE+ '/' +@VPRESION_ARTERIAL+ '/' + @VDIAGNOSTICO + ')' UPDATE TB_FICHA_MEDICA SET ID_TIPER = @VID_TIPER, FECHA_INGRESO = @VFECHA_INGRESO, TIPO_SANGRE = @VTIPO_SANGRE, PRESION_ARTERIAL = @VPRESION_ARTERIAL, DIAGNOSTICO = @VDIAGNOSTICO WHERE NUM_FICHA = @VNUM_FICHA IF (@@ERROR <> 0) BEGIN ROLLBACK TRANSACTION RETURN(99) END END

Page 220: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

220

IF @TIPO = 'D' BEGIN SET @VDetalle = 'eliminación en TB_FICHA_MEDICA (' + RTRIM(LTRIM(STR(@VNUM_FICHA)))+' /' + RTRIM(LTRIM(STR(@VINDICE))) + ' /' +@VID_TIPER+ '/' +CONVERT(VARCHAR(10), @VFECHA_INGRESO)+ ' /'+@VTIPO_SANGRE+ '/'+@VPRESION_ARTERIAL+ '/' + @VDIAGNOSTICO + ')' DELETE TB_FICHA_MEDICA WHERE NUM_FICHA = @VNUM_FICHA IF (@@ERROR <> 0) BEGIN ROLLBACK TRANSACTION RETURN(99) END END EXECUTE SP_AUDITORIA @VDetalle , @VUserSystem, @VEstacion IF (@@ERROR <> 0) ROLLBACK TRANSACTION ELSE COMMIT TRANSACTION GO

Private Sub GUARDAR_BASE_REGISTRO_CLINICO() GVQuery = "SP_CONSULTA " GVQuery = GVQuery & "'" & GVtiposql & "', " GVQuery = GVQuery & "'" & num_Consulta & "', " GVQuery = GVQuery & "'" & Me.Txb_ficha & "', " GVQuery = GVQuery & "'" & Format(Me.DTP_FECHA, "yyyy/mm/dd") & "' ," GVQuery = GVQuery & "'" & Trim(TxbDiagnostico.Text) & "' ," GVQuery = GVQuery & "'" & Trim(TxbSugerencia.Text) & "' ," GVQuery = GVQuery & "'" & Format(Me.DtpFechaConsulta, "yyyy/mm/dd") & "' "

Page 221: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

221

'GVQuery = GVQuery & "'" & Format(Me.DtpFechaConsulta, "dd/mm/yyyy") & "' " GrdsF_Recupera_Datos (GVQuery) End Sub

CREATE PROCEDURE SP_CONSULTA( @TIPO AS CHAR(1), @VID_CONSULTAS AS numeric, @VID_FICHA AS numeric, @VFECHAS_REGISTRO AS datetime, @VDIAGNOSTICO AS varchar(2000), @VSUGERENCIAS AS varchar(2000), @VFECHA_CONSULTA AS datetime ) AS BEGIN TRANSACTION IF @TIPO = 'I' BEGIN INSERT INTO TB_CONSULTAS VALUES (@VID_CONSULTAS, @VID_FICHA, @VFECHAS_REGISTRO, @VDIAGNOSTICO, @VSUGERENCIAS, @VFECHA_CONSULTA) IF (@@ERROR <> 0) BEGIN ROLLBACK TRANSACTION RETURN(99) END END IF @TIPO = 'U' BEGIN UPDATE TB_CONSULTAS SET DIAGNOSTICO = @VDIAGNOSTICO, SUGERENCIAS = @VSUGERENCIAS, FECHA_CONSULTA=@VFECHA_CONSULTA WHERE

Page 222: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

222

ID_CONSULTAS = @VID_CONSULTAS IF (@@ERROR <> 0) BEGIN ROLLBACK TRANSACTION RETURN(99) END END IF @TIPO = 'D' BEGIN DELETE FROM TB_CONSULTAS WHERE ID_CONSULTAS = @VID_CONSULTAS IF (@@ERROR <> 0) BEGIN ROLLBACK TRANSACTION RETURN(99) END END IF (@@ERROR <> 0) ROLLBACK TRANSACTION ELSE COMMIT TRANSACTION GO

Módulo de Control:

Public Sub GuardarCargo(Gvtipo As String, IdSec As Integer, IndiCar As String, CARGO As String, tipo As String, Categoria As String, Escala As String, FECHA As Date, ESTADO As String, Orientacion As Integer, TT As Integer, CH As String) GVQuery = " " GVQuery = "BdAlmacenDatos..SP_CREAR_CARGO " GVQuery = GVQuery & "'" & Trim(Gvtipo) & "', "

Page 223: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

223

GVQuery = GVQuery & "'" & Trim(IdSec) & "', " GVQuery = GVQuery & "'" & Trim(IndiCar) & "', " GVQuery = GVQuery & "'" & Trim(UCase(CARGO)) & "', " GVQuery = GVQuery & "'" & Trim(tipo) & "', " GVQuery = GVQuery & "'" & Trim(Categoria) & "', " GVQuery = GVQuery & "'" & Trim(Escala) & "', " 'GVQuery = GVQuery & "'" & Format(FECHA, "yyyy/mm/dd") & "', " GVQuery = GVQuery & "'" & Format(FECHA, "yyyy/mm/dd") & "', " GVQuery = GVQuery & "'" & Trim(ESTADO) & "', " GVQuery = GVQuery & "'" & Trim(Orientacion) & "' ," GVQuery = GVQuery & "'" & Trim(TT) & "', " GVQuery = GVQuery & "'" & Trim(CH) & "' " GrdsF_Recupera_Datos (GVQuery) End Sub

CREATE PROCEDURE SP_CREAR_CARGO( @TIPO AS CHAR(1), @VSECUENCIAL AS numeric, @VCOD_CARGO AS numeric, @VNOMBRE AS varchar(60), @VCOD_CAT_CARGO AS int, @VCATEGORIA AS int, @VESCALA AS NUMERIC, @VFECHA_CREACION AS datetime, @VESTADOVIDA AS char(1), @VORIENTACION AS int, @VTT AS int, @CANTIDAD_HRS AS int) AS BEGIN TRANSACTION IF @TIPO = 'I' BEGIN INSERT INTO TB_CARGO VALUES (@VSECUENCIAL, @VCOD_CARGO, @VNOMBRE, @VCOD_CAT_CARGO , @VCATEGORIA, @VESCALA, @VFECHA_CREACION, @VESTADOVIDA, @VORIENTACION, @VTT,

Page 224: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

224

@CANTIDAD_HRS) IF (@@ERROR <> 0) BEGIN ROLLBACK TRANSACTION RETURN(99) END END IF @TIPO = 'U' BEGIN UPDATE TB_CARGO SET COD_CARGO = @VCOD_CARGO, NOMBRE = @VNOMBRE, COD_CAT_CARGO = @VCOD_CAT_CARGO, CATEGORIA = @VCATEGORIA, ESCALA = @VESCALA, TT = @VTT, CANTIDAD_HRS = @CANTIDAD_HRS WHERE SECUENCIAL = @VSECUENCIAL --AND ORIENTACION = @VORIENTACION IF (@@ERROR <> 0) BEGIN ROLLBACK TRANSACTION RETURN(99) END END IF @TIPO = 'D' BEGIN DELETE TB_CARGO WHERE SECUENCIAL = @VSECUENCIAL IF (@@ERROR <> 0) BEGIN ROLLBACK TRANSACTION RETURN(99) END END IF @TIPO = 'H' BEGIN

Page 225: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

225

UPDATE TB_CARGO SET ESTADOVIDA=@VESTADOVIDA WHERE SECUENCIAL = @VSECUENCIAL IF (@@ERROR <> 0) BEGIN ROLLBACK TRANSACTION RETURN(99) END END IF (@@ERROR <> 0) ROLLBACK TRANSACTION ELSE COMMIT TRANSACTION GO

Private Sub FRCargo() GVQuery = "BdAlmacenDatos..SP_RELACION_CARGO" GVQuery = GVQuery & " '" & GVtiposql & "', " GVQuery = GVQuery & "'" & Val(IdCargo) & "', " GVQuery = GVQuery & "'" & Val(IdFR) & "', " 'GVQuery = GVQuery & "'" & Format(FrmCargos.DTP_FECHA, "yyyy/mm/dd") & "' " GVQuery = GVQuery & "'" & Format(FrmCargos.DTP_FECHA, "yyyy/mm/dd") & "' " GrdsF_Recupera_Datos (GVQuery) End Sub

CREATE PROCEDURE SP_RELACION_CARGO( @TIPO AS CHAR(2), @VCARGO AS NUMERIC, @VRELACION AS INT, @VFC AS DATETIME) AS BEGIN TRANSACTION --INSERCIONES IF @TIPO = 'IF' BEGIN INSERT INTO TB_CFR

Page 226: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

226

VALUES (@VCARGO, @VRELACION,@VFC ) IF (@@ERROR <> 0) BEGIN ROLLBACK TRANSACTION RETURN(99) END END IF @TIPO = 'IR' BEGIN INSERT INTO TB_CFR VALUES (@VCARGO, @VRELACION, @VFC ) IF (@@ERROR <> 0) BEGIN ROLLBACK TRANSACTION RETURN(99) END END --ACTUALIZACIONES IF @TIPO = 'UF' BEGIN UPDATE TB_CFR SET FR = @VRELACION, FC = @VFC WHERE CARGO = @VCARGO IF (@@ERROR <> 0) BEGIN ROLLBACK TRANSACTION RETURN(99) END END IF @TIPO = 'UR' BEGIN UPDATE TB_CFR SET FR = @VRELACION, FC = @VFC WHERE CARGO = @VCARGO IF (@@ERROR <> 0) BEGIN ROLLBACK TRANSACTION

Page 227: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

227

RETURN(99) END END --ELIMINACIONES IF @TIPO = 'DF' BEGIN DELETE TB_CFR WHERE FR = @VRELACION AND CARGO = @VCARGO IF (@@ERROR <> 0) BEGIN ROLLBACK TRANSACTION RETURN(99) END END IF @TIPO = 'DR' BEGIN DELETE TB_CFR WHERE FR = @VRELACION AND CARGO = @VCARGO IF (@@ERROR <> 0) BEGIN ROLLBACK TRANSACTION RETURN(99) END END IF (@@ERROR <> 0) ROLLBACK TRANSACTION ELSE COMMIT TRANSACTION GO

Private Sub Mnusave_Click() Dim respaldo As String If FraPrimero.Enabled = True Then respaldo = GVtiposql GVtiposql = Trim(GVtiposql & Opcion)

Page 228: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

228

Select Case respaldo Case "I" Select Case Opcion Case "TC" OpIndi = GVF_Inc_Codigo_Sec("SELECT MAX(COD_CAT_CARGO) FROM BdAlmacenDatos..TB_CATEGORIA_CARGO ") Case "CC" OpIndi = GVF_Inc_Codigo_Sec("SELECT MAX(COD_CAT_DCTE) FROM BdAlmacenDatos..TB_CATEGORIA_DCTE ") Case "FC" OpIndi = GVF_NewIndice(("SELECT MAX(INDICE) FROM TB_IDSEC WHERE CONDICION = 'FR' "), "FR") Case "RC" OpIndi = GVF_NewIndice(("SELECT MAX(INDICE) FROM TB_IDSEC WHERE CONDICION = 'FR' "), "FR") End Select Verifica_Opcion Case "U" Mensaje = " Registro Actualizado con Éxito" EXISTE = False Case "D" Mensaje = " Registro Eliminado con Éxito" EXISTE = False End Select If EXISTE = True Then MsgBox "Atención: Este Registro ya Existe", vbExclamation Else GVQuery = " " GVQuery = " BdAlmacenDatos..SP_CREAR_OPCIONES " GVQuery = GVQuery & "'" & GVtiposql & "', " GVQuery = GVQuery & "'" & OpIndi & "', " If Opcion = "FC" Or Opcion = "RC" Then GVQuery = GVQuery & "'" & Trim(Opcion) & "', " Else GVQuery = GVQuery & "'" & Trim(TxtNG.Text) & "', " End If GVQuery = GVQuery & "'" & Trim(Txb_Descripcion.Text) & "', " GVQuery = GVQuery & "'" & Format(Me.DTP_FECHA, "yyyy/mm/dd") & "' ," If Len(Trim(Cbb_Tipo_Cargo.Text)) > 0 Then GVQuery = GVQuery & "'" & Me.Cbb_Tipo_Cargo.ItemData(Me.Cbb_Tipo_Cargo.ListIndex) & "' " Else GVQuery = GVQuery & "'0' "

Page 229: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

229

End If GrdsF_Recupera_Datos (GVQuery) MsgBox Mensaje, vbInformation End If GVtiposql = respaldo Consulta_Opcion activa = 0 ACTIVAR Me End If End Sub

CREATE PROCEDURE SP_CREAR_OPCIONES( @TIPO AS CHAR(3), @VSECUENCIAL AS INT, @VNOMBRE AS VARCHAR(200), @VDESCRIPCION AS VARCHAR(60), @VFC AS DATETIME, @VCOD_CAT_CARGO AS INT) AS BEGIN TRANSACTION --INSERCIONES IF @TIPO = 'ITC' BEGIN INSERT INTO TB_CATEGORIA_CARGO VALUES (@VSECUENCIAL, @VNOMBRE, @VDESCRIPCION ) IF (@@ERROR <> 0) BEGIN ROLLBACK TRANSACTION RETURN(99) END END IF @TIPO = 'ICC' BEGIN INSERT INTO TB_CATEGORIA_DCTE VALUES (@VSECUENCIAL,@VDESCRIPCION ,@VCOD_CAT_CARGO ) IF (@@ERROR <> 0) BEGIN ROLLBACK TRANSACTION RETURN(99) END END

Page 230: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

230

IF @TIPO = 'IFC' BEGIN INSERT INTO TB_FUNREQ VALUES (@VSECUENCIAL,@VDESCRIPCION ,@VNOMBRE, @VFC ) IF (@@ERROR <> 0) BEGIN ROLLBACK TRANSACTION RETURN(99) END END IF @TIPO = 'IRC' BEGIN INSERT INTO TB_FUNREQ VALUES (@VSECUENCIAL,@VDESCRIPCION ,@VNOMBRE, @VFC ) IF (@@ERROR <> 0) BEGIN ROLLBACK TRANSACTION RETURN(99) END END --ACTUALIZACIONES IF @TIPO = 'UTC' BEGIN UPDATE TB_CATEGORIA_CARGO SET NOMBRE = @VDESCRIPCION , DESCRIPCION = @VNOMBRE WHERE COD_CAT_CARGO = @VSECUENCIAL IF (@@ERROR <> 0) BEGIN ROLLBACK TRANSACTION RETURN(99) END END IF @TIPO = 'UCC' BEGIN UPDATE TB_CATEGORIA_DCTE SET DESCRIPCION = @VDESCRIPCION WHERE COD_CAT_DCTE = @VSECUENCIAL AND CAT_CARGO = @VCOD_CAT_CARGO IF (@@ERROR <> 0)

Page 231: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

231

BEGIN ROLLBACK TRANSACTION RETURN(99) END END IF @TIPO = 'UFC' BEGIN UPDATE TB_FUNREQ SET NOMBRE = @VDESCRIPCION WHERE ID_FR = @VSECUENCIAL IF (@@ERROR <> 0) BEGIN ROLLBACK TRANSACTION RETURN(99) END END IF @TIPO = 'URC' BEGIN UPDATE TB_FUNREQ SET NOMBRE = @VDESCRIPCION WHERE ID_FR = @VSECUENCIAL IF (@@ERROR <> 0) BEGIN ROLLBACK TRANSACTION RETURN(99) END END --ELIMINACION IF @TIPO = 'DTC' BEGIN DELETE TB_CATEGORIA_CARGO WHERE COD_CAT_CARGO = @VSECUENCIAL IF (@@ERROR <> 0) BEGIN ROLLBACK TRANSACTION RETURN(99) END END IF @TIPO = 'DCC' BEGIN DELETE TB_CATEGORIA_DCTE WHERE COD_CAT_DCTE = @VSECUENCIAL

Page 232: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

232

AND CAT_CARGO = @VCOD_CAT_CARGO IF (@@ERROR <> 0) BEGIN ROLLBACK TRANSACTION RETURN(99) END END IF @TIPO = 'DFC' BEGIN DELETE TB_FUNREQ WHERE ID_FR = @VSECUENCIAL IF (@@ERROR <> 0) BEGIN ROLLBACK TRANSACTION RETURN(99) END END IF @TIPO = 'DRC' BEGIN DELETE TB_FUNREQ WHERE ID_FR = @VSECUENCIAL IF (@@ERROR <> 0) BEGIN ROLLBACK TRANSACTION RETURN(99) END END IF (@@ERROR <> 0) ROLLBACK TRANSACTION ELSE COMMIT TRANSACTION GO

Private Sub Mnusave_Click() GVQuery = " " GVQuery = " BdAlmacenDatos..SP_NOMBRE_ESCALA " GVQuery = GVQuery & "'" & GVtiposql & "', " GVQuery = GVQuery & "'" & Val(IE) & "', " GVQuery = GVQuery & "'" & Val(IVE) & "', "

Page 233: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

233

GVQuery = GVQuery & "'0', " GVQuery = GVQuery & "'" & UCase(Trim(Txt_Escala.Text)) & "', " GVQuery = GVQuery & "'" & EstE & "', " GVQuery = GVQuery & "'" & DESTINO & "', " GVQuery = GVQuery & "'" & Trim(Txt_ValorEscala.Text) & "', " GVQuery = GVQuery & "'" & Format(Me.DTP_FECHA, "yyyy/mm/dd") & "' " GrdsF_Recupera_Datos (GVQuery) End Sub

CREATE PROCEDURE SP_NOMBRE_ESCALA( @TIPO AS CHAR(1), @ID_ESCALA AS numeric, @ID_SEC AS numeric, @TC AS int, @CC AS int, @ESCALA AS varchar(100), @ESTADO AS char(1), @DESTINO AS char(10), @VALOR AS char(10), @AÑO AS char(4), @FC AS smalldatetime) AS BEGIN TRANSACTION DECLARE @ANTERIOR AS CHAR(10) DECLARE @CARGO AS NUMERIC IF @TIPO = 'I' BEGIN SET @ID_ESCALA = (SELECT MAX(ID_ESCALA) + 1 FROM NOMBRE_ESCALA ) INSERT INTO NOMBRE_ESCALA VALUES (@ID_ESCALA, @TC, @CC, @ESCALA, @ESTADO, @DESTINO, @FC)

SET @ID_SEC = (SELECT MAX(ID_SEC) + 1 FROM VALOR_ESCALA) INSERT INTO VALOR_ESCALA

Page 234: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

234

VALUES(@ID_SEC, @ID_ESCALA, @AÑO, @VALOR, @ESTADO, @FC) IF (@@ERROR <> 0) BEGIN ROLLBACK TRANSACTION RETURN(99) END END IF @TIPO = 'U' BEGIN UPDATE NOMBRE_ESCALA SET ESCALA = @ESCALA, DESTINO = @DESTINO WHERE ID_ESCALA = @ID_ESCALA AND TC = @TC AND CC = @CC UPDATE VALOR_ESCALA SET VALOR = @VALOR WHERE ID_SEC = @ID_SEC AND ESCALA = @ID_ESCALA AND AÑO = @AÑO --ACTUALIZAR PARTICARGO DECLARE PARTICARGO CURSOR LOCAL FOR SELECT C.SECUENCIAL, VE.VALOR FROM NOMBRE_ESCALA NE, VALOR_ESCALA VE, TB_CARGO C WHERE VE.ESCALA = NE.ID_ESCALA AND C.ESCALA = NE.ID_ESCALA AND NE.ID_ESCALA = @ID_ESCALA AND VE.ESCALA = @ID_ESCALA AND C.ESCALA = @ID_ESCALA AND C.ORIENTACION ='2' AND VE.ESTADO = '1' AND C.ESTADOVIDA ='1' ORDER BY NE.ID_ESCALA OPEN PARTICARGO FETCH NEXT FROM PARTICARGO INTO @CARGO, @ANTERIOR

Page 235: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

235

WHILE @@FETCH_STATUS = 0 BEGIN UPDATE TB_PARTI_CARGO SET SUELDO = @ANTERIOR WHERE COD_CARGO = @CARGO AND LEN(COD_PARTIDA)< 10 AND ESTADO ='1' FETCH NEXT FROM PARTICARGO INTO @CARGO, @ANTERIOR END CLOSE PARTICARGO DEALLOCATE PARTICARGO IF (@@ERROR <> 0) BEGIN ROLLBACK TRANSACTION RETURN(99) END END IF @TIPO = 'D' BEGIN DELETE VALOR_ESCALA WHERE ID_SEC = @ID_SEC AND ESCALA = @ID_ESCALA AND AÑO = @AÑO DELETE NOMBRE_ESCALA WHERE ID_ESCALA = @ID_ESCALA AND TC = @TC AND CC = @CC IF (@@ERROR <> 0) BEGIN ROLLBACK TRANSACTION RETURN(99) END END IF (@@ERROR <> 0) ROLLBACK TRANSACTION ELSE

Page 236: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

236

COMMIT TRANSACTION GO Public Sub GuardarPartida(Gvtipo As String, CodPar As String, Unid As String, Partida As String, Indi As Integer, Fnte As Integer, Des As String, Nota As String, FECHA As Date, Presu As String, ESTADO As String, Orientacion As Integer) GVQuery = " " GVQuery = "SP_CREAR_PARTIDAS " GVQuery = GVQuery & "'" & Trim(Gvtipo) & "', " GVQuery = GVQuery & "'" & Trim(CodPar) & "', " GVQuery = GVQuery & "'" & Trim(Unid) & "', " GVQuery = GVQuery & "'" & Trim(Partida) & "', " GVQuery = GVQuery & "'" & Trim(Indi) & "', " GVQuery = GVQuery & "'" & Trim(Fnte) & "', " GVQuery = GVQuery & "'" & Trim(Des) & "', " GVQuery = GVQuery & "'" & Trim(Nota) & "', " 'GVQuery = GVQuery & "'" & Format(FECHA, "yyyy/mm/dd") & "', " GVQuery = GVQuery & "'" & Format(FECHA, "yyyy/mm/dd") & "', " GVQuery = GVQuery & "'" & Trim(Presu) & "' ," GVQuery = GVQuery & "'" & Trim(ESTADO) & "', " GVQuery = GVQuery & "'" & Trim(Orientacion) & "' " GrdsF_Recupera_Datos (GVQuery) End Sub

CREATE PROCEDURE SP_CREAR_PARTIDAS( @TIPO AS CHAR(1), @COD_PARTIDA AS varchar(30), @UNIDAD AS varchar(12), @PARTIDA AS varchar(12), @GSI AS numeric, @FTE_FINAN AS int, @DESTINO AS char(2), @DESCRIPCION AS varchar(100), @FC AS datetime, @PRESUPUESTO AS char(10), @ESTADO AS char(1), @TIPO_PARTIDA AS int) AS

Page 237: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

237

BEGIN TRANSACTION IF @TIPO = 'I' BEGIN INSERT INTO TB_PARTIDA VALUES (@COD_PARTIDA, @UNIDAD, @PARTIDA, @GSI, @FTE_FINAN, @DESTINO, @DESCRIPCION, @FC, @PRESUPUESTO, @ESTADO, @TIPO_PARTIDA) IF (@@ERROR <> 0) BEGIN ROLLBACK TRANSACTION RETURN(99) END END IF @TIPO = 'U' BEGIN UPDATE TB_PARTIDA SET DESCRIPCION=@DESCRIPCION, PRESUPUESTO=@PRESUPUESTO WHERE COD_PARTIDA = @COD_PARTIDA AND UNIDAD = @UNIDAD IF (@@ERROR <> 0) BEGIN ROLLBACK TRANSACTION RETURN(99) END END IF @TIPO = 'H'

Page 238: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

238

BEGIN /* 'CAMBIO DE ESTADO AL REGISTRO EN LA TABLA MATERIA PARA SIMULAR UNA ELIMINACION'*/ UPDATE TB_PARTIDA SET ESTADO=@ESTADO WHERE COD_PARTIDA = @COD_PARTIDA AND UNIDAD = @UNIDAD IF (@@ERROR <> 0) BEGIN ROLLBACK TRANSACTION RETURN(99) END END IF @TIPO = 'D' BEGIN DELETE TB_PARTI_CARGO WHERE COD_PARTIDA = @COD_PARTIDA AND UNIDAD_PARTIDA = @UNIDAD DELETE TB_PARTIDA WHERE COD_PARTIDA = @COD_PARTIDA AND UNIDAD = @UNIDAD IF (@@ERROR <> 0) BEGIN ROLLBACK TRANSACTION RETURN(99) END END IF (@@ERROR <> 0) ROLLBACK TRANSACTION ELSE COMMIT TRANSACTION GO Public Sub GuardarGasto(Gvtipo As String, IDG As Integer, CodG As String, NombreG As String, DesG As String, FECHA As Date) GVQuery = " " GVQuery = "SP_INDICADOR_GASTO " GVQuery = GVQuery & "'" & Trim(Gvtipo) & "', " GVQuery = GVQuery & "'" & IDG & "', " GVQuery = GVQuery & "'" & Trim(CodG) & "', "

Page 239: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

239

GVQuery = GVQuery & "'" & Trim(NombreG) & "', " GVQuery = GVQuery & "'" & Trim(DesG) & "', " 'GVQuery = GVQuery & "'" & Format(Fecha, "yyyy/mm/dd") & "' " GVQuery = GVQuery & "'" & Format(FECHA, "yyyy/mm/dd") & "' " GrdsF_Recupera_Datos (GVQuery) End Sub

CREATE PROCEDURE SP_INDICADOR_GASTO( @TIPO AS CHAR(1), @VID_SEC_IG AS int, @VCODIGO AS varchar (50), @VNOMBRE AS varchar (150), @VDESCRIPCION AS varchar(400), @VFECHA_C AS datetime, @VESTADO AS char (1)) AS BEGIN TRANSACTION IF @TIPO = 'I' BEGIN INSERT INTO TB_INDICADOR_GASTOS VALUES (@VID_SEC_IG, @VCODIGO, @VNOMBRE, @VDESCRIPCION, @VFECHA_C, @VESTADO ) IF (@@ERROR <> 0) BEGIN ROLLBACK TRANSACTION RETURN(99) END END IF @TIPO = 'U' BEGIN UPDATE TB_INDICADOR_GASTOS SET CODIGO = @VCODIGO,

Page 240: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

240

NOMBRE = @VNOMBRE, DESCRIPCION = @VDESCRIPCION WHERE ID_SEC_IG = @VID_SEC_IG IF (@@ERROR <> 0) BEGIN ROLLBACK TRANSACTION RETURN(99) END END IF @TIPO = 'H' BEGIN UPDATE TB_INDICADOR_GASTOS SET ESTADO=@VESTADO WHERE ID_SEC_IG = @VID_SEC_IG IF (@@ERROR <> 0) BEGIN ROLLBACK TRANSACTION RETURN(99) END END IF @TIPO = 'D' BEGIN DELETE TB_INDICADOR_GASTOS WHERE ID_SEC_IG = @VID_SEC_IG IF (@@ERROR <> 0) BEGIN ROLLBACK TRANSACTION RETURN(99) END END IF (@@ERROR <> 0) ROLLBACK TRANSACTION ELSE COMMIT TRANSACTION GO Public Sub GuardarGSI(Gvtipo As String, IDH As Integer, IDP As Integer, CodGSI As String, NombreGSI As String, DesGSI As String, FECHA As Date, TH As String) GVQuery = " " GVQuery = "SP_GRUPO_GASTO " GVQuery = GVQuery & "'" & Trim(Gvtipo) & "', " GVQuery = GVQuery & "'" & IDH & "', "

Page 241: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

241

GVQuery = GVQuery & "'" & IDP & "', " GVQuery = GVQuery & "'" & Trim(CodGSI) & "', " GVQuery = GVQuery & "'" & Trim(NombreGSI) & "', " GVQuery = GVQuery & "'" & Trim(DesGSI) & "', " 'GVQuery = GVQuery & "'" & Format(FECHA, "yyyy/mm/dd") & "' ," GVQuery = GVQuery & "'" & Format(FECHA, "yyyy/mm/dd") & "', " GVQuery = GVQuery & "'" & Trim(TH) & "' " GrdsF_Recupera_Datos (GVQuery) End Sub

CREATE PROCEDURE SP_GRUPO_GASTO( @TIPO AS CHAR(1), @VID_SEC_GRU int, @VGASTOS int, @VINDICE as char(2), @VCODIGO AS varchar(50), @VNOMBRE AS varchar(150), @VDESCRIPCION AS varchar(200), @VFECHA_CG AS datetime, @VESTADO AS char(1), @VIDENTIFICADOR AS CHAR(2)) AS

BEGIN TRANSACTION IF @TIPO = 'I' BEGIN INSERT INTO TB_GSI VALUES (@VID_SEC_GRU, @VGASTOS, ltrim(rtrim(@VINDICE)), @VCODIGO, @VNOMBRE, @VDESCRIPCION, @VFECHA_CG, @VESTADO, @VIDENTIFICADOR ) IF (@@ERROR <> 0) BEGIN ROLLBACK TRANSACTION

Page 242: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

242

RETURN(99) END END IF @TIPO = 'U' BEGIN UPDATE TB_GSI SET INDICE = @VINDICE, CODIGO = @VCODIGO, NOMBRE = @VNOMBRE, DESCRIPCION = @VDESCRIPCION, FECHA_CG =@VFECHA_CG WHERE ID_SEC = @VID_SEC_GRU IF (@@ERROR <> 0) BEGIN ROLLBACK TRANSACTION RETURN(99) END END IF @TIPO = 'D' BEGIN UPDATE TB_GSI SET ESTADO=@VESTADO WHERE ID_SEC = @VID_SEC_GRU IF (@@ERROR <> 0) BEGIN ROLLBACK TRANSACTION RETURN(99) END END IF (@@ERROR <> 0) ROLLBACK TRANSACTION ELSE COMMIT TRANSACTION GO Private Sub TODO_BASE() GVQuery = "SP_FINANCIAMIENTO " GVQuery = GVQuery & "'" & GVtiposql & "', " GVQuery = GVQuery & "'" & indice & "', " GVQuery = GVQuery & "'" & Me.Txb_CODIGO & "', " GVQuery = GVQuery & "'" & Me.Txb_nombre & "', "

Page 243: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

243

GVQuery = GVQuery & "'" & Me.Txb_descripcion & "', " GVQuery = GVQuery & "'" & Me.Txb_estado & "' ," GVQuery = GVQuery & "'" & Format(Me.DTP_FECHA, "yyyy/mm/dd") & "' ," GVQuery = GVQuery & "'" & Format(Me.DTP_FECHA, "yyyy/mm/dd") & "' " GrdsF_Recupera_Datos (GVQuery)

End Sub CREATE PROCEDURE SP_FINANCIAMIENTO( @TIPO AS CHAR(1),@VINDICE AS INT,@VCOD_TIPO AS VARCHAR(2),@VNOMBRE AS VARCHAR(70),@VDESCRIPCION AS VARCHAR(100),@VESTADO CHAR(1), @VFECHA_INI AS DATETIME,@VFECHA_FIN AS DATETIME) AS BEGIN TRANSACTION IF @TIPO = 'I' BEGIN INSERT INTO TB_TIPO_FINANCIAMIENTO VALUES (@VINDICE, @VCOD_TIPO, @VNOMBRE, @VDESCRIPCION, @VESTADO, @VFECHA_INI, @VFECHA_FIN ) IF (@@ERROR <> 0) BEGIN ROLLBACK TRANSACTION RETURN(99) END END IF @TIPO = 'U' BEGIN UPDATE TB_TIPO_FINANCIAMIENTO SET

Page 244: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

244

COD_TIPO=@VCOD_TIPO, NOMBRE=@VNOMBRE, DESCRIPCION=@VDESCRIPCION, FECHA_FIN =@VFECHA_FIN, ESTADO=@VESTADO WHERE ID_TF = @VINDICE IF (@@ERROR <> 0) BEGIN ROLLBACK TRANSACTION RETURN(99) END END IF @TIPO = 'D' BEGIN DELETE FROM TB_TIPO_FINANCIAMIENTO WHERE ID_TF = @VINDICE IF (@@ERROR <> 0) BEGIN ROLLBACK TRANSACTION RETURN(99) END END

IF @TIPO = 'H' BEGIN UPDATE TB_TIPO_FINANCIAMIENTO SET ESTADO=@VESTADO, FECHA_FIN=@VFECHA_FIN WHERE ID_TF = @VINDICE IF (@@ERROR <> 0) BEGIN ROLLBACK TRANSACTION RETURN(99) END END

Page 245: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

245

IF (@@ERROR <> 0) ROLLBACK TRANSACTION ELSE COMMIT TRANSACTION GO Private Sub CmdGuardar_Click() Dim Admi As String ' Extraer el Registro de Admision GVQuery = "SELECT IDADMISION FROM ADMISION WHERE DATOS_PERSONAL ='" & CP & "' AND UNIDAD_UNIV = '" & CUA & "' AND ESTADOREG ='0' " Set RSU = GrdsF_Recupera_Datos(GVQuery) If RSU.RecordCount > 0 Then 'Guardar el Registro Admi = Trim(RSU!IDADMISION) GVQuery = "" GVQuery = "SELECT MAX(CONVERT(NUMERIC(10), SUBSTRING(IDADMISION, 13, LEN(IDADMISION)))) FROM ADMISION " GVQuery = GVQuery & "WHERE SUBSTRING(IDADMISION, 1, 12) = '" & GVXFacultad & "'" INA = GVF_Incrementar_Codigo(GVQuery) 'INA = GVF_Incrementar_Codigo(GVQuery) GVQuery = " " If MsgBox("Está seguro(a) que desa Realizar los cambios ", vbYesNo + vbQuestion + vbDefaultButton2) = vbYes Then GVQuery = "SP_MOVIMIENTOS I," GVQuery = GVQuery & "'" & GVF_NewIndice("SELECT MAX(INDICE) FROM TB_IDSEC WHERE CONDICION ='M'", "M") & "', " GVQuery = GVQuery & "'" & Trim(Admi) & "', " GVQuery = GVQuery & "'" & Trim(INA) & "', " GVQuery = GVQuery & "'0', " GVQuery = GVQuery & "'" & Me.CbbMovimientos.ItemData(Me.CbbMovimientos.ListIndex) & "', " GVQuery = GVQuery & "'" & TxtOfi.Text & "', " GVQuery = GVQuery & "'" & Format(FrmMantenimiento.DTP_FECHA, "yyyy/mm/dd") & "' ," If Len(Trim(TxtCF.Text)) > 0 Then GVQuery = GVQuery & "'" & Trim(Unidad) & "', " Else GVQuery = GVQuery & "'" & Trim(CUA) & "', " End If If Len(Trim(TxtCargo.Text)) > 0 Then GVQuery = GVQuery & "'" & Trim(IC) & "' ,"

Page 246: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

246

Else GVQuery = GVQuery & "'0', " End If GVQuery = GVQuery & "'" & Trim(CP) & "', " GVQuery = GVQuery & "'" & Trim(PC) & "' " GrdsF_Recupera_Datos (GVQuery) Else Exit Sub End If Else MsgBox "Error" End If End Sub CREATE PROCEDURE SP_MOVIMIENTOS( @TIPO AS char(1), @ID_SEC AS numeric, @IAA AS varchar(20), @INA AS varchar(20), @INFORME AS numeric, @MOVIMIENTO AS int, @OFICIO AS char(50), @FC AS smalldatetime, @UNIDAD AS VARCHAR(12), @CARGO AS NUMERIC, @DATOS_PERSONAL as varchar(20), @PARTIDA AS varchar(30)) AS BEGIN TRANSACTION DECLARE @CE AS VARCHAR(10), @CUENTA AS VARCHAR(18), @BANCO AS VARCHAR(20) DECLARE @TIPO_CUENTA AS int, @CATEG_CARGO AS int, @CAT_DCTE AS int, @TIPO_PARTIDA AS int, @ESTADOREG AS numeric, @TIPOI AS numeric IF @TIPO = 'I' BEGIN --OBTENER EL LISTADO DE LAS PERSONAS DECLARE UPDATETI CURSOR LOCAL FOR

Page 247: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

247

SELECT CUENTA, TIPO_CUENTA, BANCO, ESTADOREG, TIPOI, CEDULA, TIPO_PARTIDA FROM ADMISION WHERE IDADMISION = @IAA AND DATOS_PERSONAL = @DATOS_PERSONAL OPEN UPDATETI FETCH NEXT FROM UPDATETI INTO @CUENTA, @TIPO_CUENTA, @BANCO, @ESTADOREG, @TIPOI, @CE, @TIPO_PARTIDA WHILE @@FETCH_STATUS = 0 BEGIN --PRIMERO EXTRAER DATOS DE CARGO SI ES QUE HAY IF LEN(LTRIM(RTRIM(@CARGO))) > 1 BEGIN SET @CATEG_CARGO = (SELECT COD_CAT_CARGO FROM BdAlmacenDatos..TB_CARGO WHERE SECUENCIAL = @CARGO) SET @CAT_DCTE = (SELECT CATEGORIA FROM BdAlmacenDatos..TB_CARGO WHERE SECUENCIAL = @CARGO) END ELSE IF LEN(LTRIM(RTRIM(@CARGO))) <= 1 BEGIN SET @CARGO = (SELECT CARGO FROM ADMISION WHERE IDADMISION =@IAA AND DATOS_PERSONAL = @DATOS_PERSONAL) SET @CATEG_CARGO = (SELECT CATEG_CARGO FROM ADMISION WHERE IDADMISION =@IAA AND DATOS_PERSONAL = @DATOS_PERSONAL ) SET @CAT_DCTE = (SELECT CAT_DCTE FROM ADMISION WHERE IDADMISION =@IAA AND DATOS_PERSONAL = @DATOS_PERSONAL ) END --PRIMERO EXTRAER DATOS DE UNIDAD SI ES QUE HAY UPDATE ADMISION SET ESTADOREG = 11 WHERE IDADMISION = @IAA AND DATOS_PERSONAL = @DATOS_PERSONAL INSERT INTO ADMISION VALUES(@INA, @CE, @DATOS_PERSONAL, @UNIDAD, @CATEG_CARGO,

Page 248: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

248

@CARGO, @TIPO_PARTIDA, @PARTIDA, @CAT_DCTE, @TIPOI, @ESTADOREG, @BANCO, @TIPO_CUENTA, @CUENTA, @FC) FETCH NEXT FROM UPDATETI INTO @CUENTA, @TIPO_CUENTA, @BANCO, @ESTADOREG, @TIPOI, @CE, @TIPO_PARTIDA END CLOSE UPDATETI DEALLOCATE UPDATETI INSERT INTO TB_MOVIMIENTOS VALUES(@ID_SEC, @IAA, @INA, @INFORME, @MOVIMIENTO, @OFICIO, @FC) IF (@@ERROR <> 0) BEGIN ROLLBACK TRANSACTION RETURN(99) END END IF (@@ERROR <> 0) ROLLBACK TRANSACTION ELSE COMMIT TRANSACTION GO

Page 249: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

249

Private Sub GuardarInforme () GVQuery = "SP_INFORME" GVQuery = GVQuery & " '" & GVtiposql & "', " GVQuery = GVQuery & "'" & Val(NI) & "', " GVQuery = GVQuery & "'" & Trim(Me.MfgLMI.TextMatrix(Me.MfgLMI.Row, 1)) & "', " GVQuery = GVQuery & "'" & Trim(TxtTT.Text) & "', " GVQuery = GVQuery & "'" & Trim(TxtCAnt.Text) & "', " GVQuery = GVQuery & "'" & Trim(TxtCAct.Text) & "', " GVQuery = GVQuery & "'" & Trim(TxtPO.Text) & "', " GVQuery = GVQuery & "'" & Trim(TxtCH.Text) & "', " GVQuery = GVQuery & "'" & Trim(TxtA.Text) & "', " GVQuery = GVQuery & "'" & Trim(TxtR.Text) & "', " GVQuery = GVQuery & "'" & Trim(TxtObservacion.Text) & "', " GVQuery = GVQuery & "'" & Format(FrmMantenimiento.DTP_FECHA, "yyyy/mm/dd") & "', " GVQuery = GVQuery & "'" & Trim(Me.MfgLMI.TextMatrix(Me.MfgLMI.Row, 0)) & "' " GrdsF_Recupera_Datos (GVQuery) End Sub

CREATE PROCEDURE SP_INFORME( @TIPO AS CHAR(1), @ID_SEC AS numeric, @NUMERO AS varchar(10), @A AS varchar(300), @B AS varchar(300), @C AS varchar(300), @D AS varchar(300), @E AS varchar(300), @F AS varchar(300), @G AS varchaR(300), @H as varchar(400), @FC AS DATETIME, @NUMRELA AS numeric ) AS BEGIN TRANSACTION IF @TIPO = 'I' BEGIN

Page 250: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

250

SET @ID_SEC =(SELECT MAX(INDICE)+1 FROM TB_IDSEC WHERE CONDICION = 'IN') INSERT INTO TB_INFORME VALUES (@ID_SEC, @NUMERO, @A, @B, @C, @D, @E, @F, @G, @H, @FC ) UPDATE TB_MOVIMIENTOS SET INFORME = @ID_SEC WHERE ID_SEC = @NUMRELA IF (@@ERROR <> 0) BEGIN ROLLBACK TRANSACTION RETURN(99) END END IF @TIPO = 'U' BEGIN UPDATE TB_INFORME SET NUMERO = @NUMERO, A = @A, B = @B, C =@C, D = @D, E = @E, F = @F, G = @G, H = @H, FC = @FC WHERE ID_SEC=@ID_SEC IF (@@ERROR <> 0) BEGIN

Page 251: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

251

ROLLBACK TRANSACTION RETURN(99) END END IF @TIPO = 'D' BEGIN DELETE TB_INFORME WHERE ID_SEC=@ID_SEC IF (@@ERROR <> 0) BEGIN ROLLBACK TRANSACTION RETURN(99) END END IF (@@ERROR <> 0) ROLLBACK TRANSACTION ELSE COMMIT TRANSACTION GO

Listado de Descuentos

Public Sub GuardarODL(Gvtipo As String, ID As String, IDP As String, TIPASO As Integer, DESCUENTO As Integer, Unidad As String, TIPER As Integer, OFICIO As String, VM As String, ESTADO As String, FECHA As Date, con As String) GVQuery = " " GVQuery = " SP_DL " GVQuery = GVQuery & "'" & Gvtipo & "', " GVQuery = GVQuery & "'" & ID & "', " GVQuery = GVQuery & "'" & IDP & "', " GVQuery = GVQuery & "'" & TIPASO & "', " GVQuery = GVQuery & "'" & DESCUENTO & "', " GVQuery = GVQuery & "'" & Unidad & "', "

Page 252: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

252

GVQuery = GVQuery & "'" & TIPER & "', " GVQuery = GVQuery & "'" & Trim(OFICIO) & "', " GVQuery = GVQuery & "'" & Format(Trim(VM), ".00") & "', " GVQuery = GVQuery & "'0', " GVQuery = GVQuery & "'" & Format(Trim(VM), ".00") & "', " 'FECHAS INICIALES GVQuery = GVQuery & "'" & Month(Format(FECHA, "yyyy/mm/dd")) & "', " GVQuery = GVQuery & "'" & Year(Format(FECHA, "yyyy/mm/dd")) & "', " 'FECHAS FINALES GVQuery = GVQuery & "'" & Month(Format(FECHA, "yyyy/mm/dd")) & "', " GVQuery = GVQuery & "'" & Year(Format(FECHA, "yyyy/mm/dd")) & "', " GVQuery = GVQuery & "'" & Trim(ESTADO) & "', " GVQuery = GVQuery & "'" & Format(FECHA, "yyyy/mm/dd") & "', " GVQuery = GVQuery & "'" & Format(FECHA, "yyyy/mm/dd") & "', " 'GVQuery = GVQuery & "'" & Format(FECHA, "yyyy/mm/dd") & "', " GVQuery = GVQuery & "'" & Trim(con) & "' " GrdsF_Recupera_Datos (GVQuery) End Sub CREATE PROCEDURE SP_DL( @TIPO AS CHAR(1), @ID_SEC AS numeric, @ID_PERSONAL AS varchar(20), @TIPASO AS int, @DESCUENTO AS numeric, @UNIDAD AS varchar(12), @TIPER AS int, @OFICIO AS numeric, @VALINDI AS char(10), @CANTPAGOS AS int, @VALMES AS char(10), @MI AS int, @AI AS char(4), @MF AS int, @AF AS char(4), @ESTADO AS char(1), @FC AS smalldatetime, @FF AS smalldatetime, @CONSIDERAR AS char(1)) AS

Page 253: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

253

BEGIN TRANSACTION IF @TIPO = 'I' BEGIN IF @CANTPAGOS = 0 BEGIN SET @MF = 0 SET @AF = ' 0' END SET @ID_SEC =(SELECT ISNULL (MAX(ID_SEC) ,1)FROM TB_DL WHERE ID_PERSONAL = @ID_PERSONAL AND TIPASO = @TIPASO AND TIPER = @TIPER AND DESCUENTO = @DESCUENTO )+1 INSERT INTO TB_DL VALUES (@ID_SEC, @ID_PERSONAL, @TIPASO, @DESCUENTO, @UNIDAD, @TIPER, @OFICIO, @VALINDI, @CANTPAGOS, @VALMES, @MI, @AI, @MF, @AF, @ESTADO, @FC, @FF, @CONSIDERAR) IF (@@ERROR <> 0) BEGIN ROLLBACK TRANSACTION RETURN(99) END END IF @TIPO = 'U' BEGIN UPDATE TB_DL SET OFICIO = @OFICIO,

Page 254: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

254

VALINDI = @VALINDI , CANTPAGOS = @CANTPAGOS, VALMES = @VALMES, MF = @MF, AF = @AF, ESTADO =@ESTADO, CONSIDERAR = @CONSIDERAR WHERE ID_PERSONAL = @ID_PERSONAL AND TIPASO = @TIPASO AND DESCUENTO = @DESCUENTO AND UNIDAD = @UNIDAD IF (@@ERROR <> 0) BEGIN ROLLBACK TRANSACTION RETURN(99) END END IF @TIPO = 'H' BEGIN UPDATE TB_DL SET MF = @MF, AF = @AF, ESTADO =@ESTADO WHERE ID_SEC = @ID_SEC AND ID_PERSONAL = @ID_PERSONAL AND TIPASO = @TIPASO AND DESCUENTO = @DESCUENTO AND UNIDAD = @UNIDAD IF (@@ERROR <> 0) BEGIN ROLLBACK TRANSACTION RETURN(99) END END IF @TIPO = 'D' BEGIN /* 'CAMBIO DE ESTADO AL REGISTRO EN LA TABLA MATERIA PARA SIMULAR UNA ELIMINACION'*/ DELETE TB_DL WHERE ID_SEC = @ID_SEC

Page 255: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

255

AND ID_PERSONAL = @ID_PERSONAL AND TIPASO = @TIPASO AND DESCUENTO = @DESCUENTO AND UNIDAD = @UNIDAD IF (@@ERROR <> 0) BEGIN ROLLBACK TRANSACTION RETURN(99) END END IF (@@ERROR <> 0) ROLLBACK TRANSACTION ELSE COMMIT TRANSACTION GO

Descuentos por Préstamos

Public Sub GuardarPTMO(Gvtipo As String, IDR As Integer, MI As Integer, NombrePTMO As String, DetallePTMO As String, VALPTMO As String, Interes As String, Cuota As Integer, FECHA As Date) GVQuery = " " GVQuery = "SP_PTMO " GVQuery = GVQuery & "'" & Trim(Gvtipo) & "', " GVQuery = GVQuery & "'" & IDR & "', " GVQuery = GVQuery & "'" & MI & "', " GVQuery = GVQuery & "'" & Year(FECHA) & "', " GVQuery = GVQuery & "'" & Trim(NombrePTMO) & "', " GVQuery = GVQuery & "'" & Trim(DetallePTMO) & "', " GVQuery = GVQuery & "'" & Trim(VALPTMO) & "', " GVQuery = GVQuery & "'" & Trim(Interes) & "', " GVQuery = GVQuery & "'" & Trim(Cuota) & "', " GVQuery = GVQuery & "'" & Format(FECHA, "yyyy/mm/dd") & "' " GrdsF_Recupera_Datos (GVQuery) End Sub

CREATE PROCEDURE SP_PTMO( @TIPO AS CHAR(1), @ID_PTMO AS int,

Page 256: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

256

@MI AS integer, @ANIO AS char(4), @NOMBRE AS varchar(50), @DETALLE AS varchar(300), @VALOR AS char(10), @INTERES AS char(10), @CUOTAS AS int, @FC AS smalldatetime) AS BEGIN TRANSACTION IF @TIPO = 'I' BEGIN set @ID_PTMO = (SELECT ISNULL( max(ID_PTMO)+1,1) from TB_PTMO ) INSERT INTO TB_PTMO VALUES (@ID_PTMO, @MI, @ANIO, @NOMBRE, @DETALLE, @VALOR, @INTERES, @CUOTAS, @FC) IF (@@ERROR <> 0) BEGIN ROLLBACK TRANSACTION RETURN(99) END END IF (@@ERROR <> 0) ROLLBACK TRANSACTION ELSE COMMIT TRANSACTION GO

Page 257: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

257

Private Sub GuardarPersonaPtmo() GVQuery = "SP_PP" GVQuery = GVQuery & " '" & Trim(GVtiposql & DOS) & "', " GVQuery = GVQuery & "'" & Val(Trim(NUMR)) & "', " GVQuery = GVQuery & "'" & Year(FP) & "', " GVQuery = GVQuery & "'0', " GVQuery = GVQuery & "'0', " GVQuery = GVQuery & "'" & Me.CbbDscto.ItemData(Me.CbbDscto.ListIndex) & "', " GVQuery = GVQuery & "'" & Format(FP, "yyyy/mm/dd") & "' " GrdsF_Recupera_Datos (GVQuery) End Sub

CREATE PROCEDURE SP_PP( @TIPO AS CHAR(2), @NUMREG AS numeric, @ANIO AS char(4), @DATOS_PERSONAL AS varchar(20), @TIPER AS int, @PTMO AS int, @FP AS smalldatetime) AS

BEGIN TRANSACTION --INGRESAR COLUMNAS --COLUMNA 1 IF @TIPO = 'I1' BEGIN SET @NUMREG = (SELECT ISNULL( max(NUMREG)+1,1) FROM TB_PP ) INSERT INTO TB_PP VALUES (@NUMREG, @ANIO, @DATOS_PERSONAL, @TIPER, @PTMO, @FP, '0', @FP, '0', @FP, '0',@FP) IF (@@ERROR <> 0) BEGIN ROLLBACK TRANSACTION RETURN(99) END END --COLUMNA 2 IF @TIPO = 'I2'

Page 258: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

258

BEGIN SET @NUMREG = (SELECT ISNULL( max(NUMREG)+1,1) FROM TB_PP ) INSERT INTO TB_PP VALUES (@NUMREG, @ANIO, @DATOS_PERSONAL, @TIPER, '0', @FP, @PTMO, @FP, '0', @FP, '0',@FP) IF (@@ERROR <> 0) BEGIN ROLLBACK TRANSACTION RETURN(99) END END --COLUMNA 3 IF @TIPO = 'I3' BEGIN SET @NUMREG = (SELECT ISNULL( max(NUMREG)+1,1) FROM TB_PP ) INSERT INTO TB_PP VALUES (@NUMREG, @ANIO, @DATOS_PERSONAL, @TIPER, '0', @FP, '0', @FP, @PTMO, @FP, '0',@FP) IF (@@ERROR <> 0) BEGIN ROLLBACK TRANSACTION RETURN(99) END END --COLUMNA 4 IF @TIPO = 'I4' BEGIN SET @NUMREG = (SELECT ISNULL( max(NUMREG)+1,1) FROM TB_PP ) INSERT INTO TB_PP VALUES (@NUMREG, @ANIO, @DATOS_PERSONAL, @TIPER, '0', @FP, '0', @FP, '0', @FP, @PTMO,@FP) IF (@@ERROR <> 0) BEGIN ROLLBACK TRANSACTION RETURN(99) END END

Page 259: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

259

--ACTUALIZAR COLUMNAS IF @TIPO = 'U1' BEGIN UPDATE TB_PP SET PTMO1 = @PTMO, FP1 = @FP WHERE NUMREG = @NUMREG IF (@@ERROR <> 0) BEGIN ROLLBACK TRANSACTION RETURN(99) END END IF @TIPO = 'U2' BEGIN UPDATE TB_PP SET PTMO2 = @PTMO, FP2 = @FP WHERE NUMREG = @NUMREG IF (@@ERROR <> 0) BEGIN ROLLBACK TRANSACTION RETURN(99) END END IF @TIPO = 'U3' BEGIN UPDATE TB_PP SET PTMO3 = @PTMO, FP3 = @FP WHERE NUMREG = @NUMREG IF (@@ERROR <> 0) BEGIN ROLLBACK TRANSACTION RETURN(99) END END IF @TIPO = 'U4' BEGIN UPDATE TB_PP SET

Page 260: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

260

PTMO4 = @PTMO, FP4 = @FP WHERE NUMREG = @NUMREG IF (@@ERROR <> 0) BEGIN ROLLBACK TRANSACTION RETURN(99) END END --ELEMINACION DE REGISTROS IF @TIPO = 'D' BEGIN DELETE TB_PP WHERE NUMREG = @NUMREG IF (@@ERROR <> 0) BEGIN ROLLBACK TRANSACTION RETURN(99) END END IF (@@ERROR <> 0) ROLLBACK TRANSACTION ELSE COMMIT TRANSACTION GO

Descuentos Gremiales

Private sub GuardarRegistrosDG () GVQuery = "SP_DSCTO_PERSONAL" GVQuery = GVQuery & " '" & GVtiposql & "', " GVQuery = GVQuery & "'" & IDP & "', " 'GVQuery = GVQuery & "'" & UNIDAD & "', " GVQuery = GVQuery & "'" & Me.Cbb_Tipo_Cargo.ItemData(Me.Cbb_Tipo_Cargo.ListIndex) & "', " GVQuery = GVQuery & "'" & Me.Cbb_Gremios.ItemData(Me.Cbb_Gremios.ListIndex) & "', " GVQuery = GVQuery & "'" & Me.CbbQuincena.ItemData(Me.CbbQuincena.ListIndex) & "', " GVQuery = GVQuery & "'" & Month(DTP_FECHA) & "', "

Page 261: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

261

GVQuery = GVQuery & "'" & Year(DTP_FECHA) & "', " GVQuery = GVQuery & "'" & ChkPG.Value & "', " GVQuery = GVQuery & "'" & Me.CbbServidor.ItemData(Me.CbbServidor.ListIndex) & "', " GVQuery = GVQuery & "'" & NomCol & "', " GVQuery = GVQuery & "'" & Trim(ValDscto) & "' " GrdsF_Recupera_Datos (GVQuery) End Sub CREATE PROCEDURE SP_DSCTO_PERSONAL ( @TIPO AS CHAR(1), @ID_PERSONAL AS varchar(20), --@FACULTAD AS varchar(12), @TIPER AS int, @TIPASO AS int, @QUINCENA AS int, @MES AS int, @ANIO AS char(4), @PG AS char(1), @ER AS char(1), @COLUMNA AS VARCHAR(40), @VALCOL AS char(10)) AS BEGIN TRANSACTION DECLARE @exec1 nvarchar(1024) DECLARE @DTOL AS char(10) DECLARE @CV AS VARCHAR(100) --cadena de valores para la insercion IF @TIPO = 'I' BEGIN --INSERTANDO EL PRIMER REGISTRO INSERT INTO DESCUENTO_PERSONAL VALUES ( @ID_PERSONAL , --@FACULTAD , @TIPER, @TIPASO, @QUINCENA, @MES, @ANIO , @PG, @ER ,

Page 262: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

262

'0.00', '0.00', '0.00', '0.00', '0.00', '0.00', '0.00', '0.00', '0.00', '0.00', '0.00', '0.00', '0.00', '0.00') --ACTUALIZANDO EL VALOR INGRESADO SET @exec1 =' UPDATE DESCUENTO_PERSONAL SET ' + @COLUMNA + ' = ''' + @VALCOL + ''' ' + ' WHERE ID_PERSONAL = ''' + @ID_PERSONAL + ''''+ --' AND FACULTAD = ''' + @FACULTAD + ''' '+ ' AND TIPER = ''' +CONVERT(CHAR(1), @TIPER) + ''' '+ ' AND TIPASO = ''' + RTRIM(LTRIM(CONVERT(CHAR(2), @TIPASO))) + ''' '+ ' AND QUINCENA = ''' + CONVERT(CHAR(1),@QUINCENA) + ''' '+ ' AND MES = ''' + RTRIM(LTRIM(CONVERT(CHAR(2),@MES))) + ''' AND ANIO = ''' + @ANIO + ''' ' EXECUTE (@exec1) --ACTUALIZANDO TOTAL POR INGRESO SET @DTOL = (SELECT RTRIM(LTRIM(CONVERT(DECIMAL(9,2),DESC1) + CONVERT(DECIMAL(9,2),DESC2) + CONVERT(DECIMAL(9,2),DESC3) + CONVERT(DECIMAL(9,2),DESC4) + CONVERT(DECIMAL(9,2),DESC5) + CONVERT(DECIMAL(9,2),DESC6) + CONVERT(DECIMAL(9,2),DESC7) + CONVERT(DECIMAL(9,2),DESC8) + CONVERT(DECIMAL(9,2),DESC9) + CONVERT(DECIMAL(9,2),DESC10))) FROM DESCUENTO_PERSONAL WHERE ID_PERSONAL = @ID_PERSONAL /*AND FACULTAD = @FACULTAD*/ AND TIPER = @TIPER AND TIPASO = @TIPASO AND QUINCENA = @QUINCENA AND MES = @MES AND ANIO = @ANIO ) UPDATE DESCUENTO_PERSONAL SET DTOTAL = @DTOL WHERE ID_PERSONAL = @ID_PERSONAL -- AND FACULTAD = @FACULTAD AND TIPER = @TIPER AND TIPASO = @TIPASO AND QUINCENA = @QUINCENA AND MES = @MES AND ANIO = @ANIO IF (@@ERROR <> 0)

Page 263: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

263

BEGIN ROLLBACK TRANSACTION RETURN(99) END END IF @TIPO = 'U' BEGIN SET @exec1 =' UPDATE DESCUENTO_PERSONAL SET ' + @COLUMNA + ' = ''' + @VALCOL + ''' ' + ' WHERE ID_PERSONAL = ''' + @ID_PERSONAL + ''''+ --' AND FACULTAD = ''' + @FACULTAD + ''' '+ ' AND TIPER = ''' +CONVERT(CHAR(1), @TIPER) + ''' '+ ' AND TIPASO = ''' + RTRIM(LTRIM(CONVERT(CHAR(2), @TIPASO))) + ''' '+ ' AND QUINCENA = ''' + CONVERT(CHAR(1),@QUINCENA) + ''' '+ ' AND MES = ''' + RTRIM(LTRIM(CONVERT(CHAR(2),@MES))) + ''' AND ANIO = ''' + @ANIO + ''' ' EXECUTE (@exec1) SET @DTOL = (SELECT RTRIM(LTRIM(CONVERT(DECIMAL(9,2),DESC1) + CONVERT(DECIMAL(9,2),DESC2) + CONVERT(DECIMAL(9,2),DESC3) + CONVERT(DECIMAL(9,2),DESC4) + CONVERT(DECIMAL(9,2),DESC5) + CONVERT(DECIMAL(9,2),DESC6) + CONVERT(DECIMAL(9,2),DESC7) + CONVERT(DECIMAL(9,2),DESC8) + CONVERT(DECIMAL(9,2),DESC9) + CONVERT(DECIMAL(9,2),DESC10))) FROM DESCUENTO_PERSONAL WHERE ID_PERSONAL = @ID_PERSONAL /*AND FACULTAD = @FACULTAD*/ AND TIPER = @TIPER AND TIPASO = @TIPASO AND QUINCENA = @QUINCENA AND MES = @MES AND ANIO = @ANIO ) UPDATE DESCUENTO_PERSONAL SET DTOTAL = @DTOL WHERE ID_PERSONAL = @ID_PERSONAL -- AND FACULTAD = @FACULTAD AND TIPER = @TIPER AND TIPASO = @TIPASO AND QUINCENA = @QUINCENA AND MES = @MES AND ANIO = @ANIO IF (@@ERROR <> 0)

Page 264: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

264

BEGIN ROLLBACK TRANSACTION RETURN(99) END END IF @TIPO = 'D' BEGIN SET @VALCOL = '0.00' SET @exec1 =' UPDATE DESCUENTO_PERSONAL SET ' + @COLUMNA + ' = ''' + @VALCOL + ''' ' + ' WHERE ID_PERSONAL = ''' + @ID_PERSONAL + ''''+ -- ' AND FACULTAD = ''' + @FACULTAD + ''' '+ ' AND TIPER = ''' +CONVERT(CHAR(1), @TIPER) + ''' '+ ' AND TIPASO = ''' + RTRIM(LTRIM(CONVERT(CHAR(2), @TIPASO))) + ''' '+ ' AND QUINCENA = ''' + CONVERT(CHAR(1),@QUINCENA) + ''' '+ ' AND MES = ''' + RTRIM(LTRIM(CONVERT(CHAR(2),@MES))) + ''' AND ANIO = ''' + @ANIO + ''' ' EXECUTE (@exec1) SET @DTOL = (SELECT RTRIM(LTRIM(CONVERT(DECIMAL(9,2),DESC1) + CONVERT(DECIMAL(9,2),DESC2) + CONVERT(DECIMAL(9,2),DESC3) + CONVERT(DECIMAL(9,2),DESC4) + CONVERT(DECIMAL(9,2),DESC5) + CONVERT(DECIMAL(9,2),DESC6) + CONVERT(DECIMAL(9,2),DESC7) + CONVERT(DECIMAL(9,2),DESC8) + CONVERT(DECIMAL(9,2),DESC9) + CONVERT(DECIMAL(9,2),DESC10))) FROM DESCUENTO_PERSONAL WHERE ID_PERSONAL = @ID_PERSONAL /* AND FACULTAD = @FACULTAD*/ AND TIPER = @TIPER AND TIPASO = @TIPASO AND QUINCENA = @QUINCENA AND MES = @MES AND ANIO = @ANIO ) IF CONVERT(NUMERIC(9,2), @DTOL) <= 0 BEGIN DELETE DESCUENTO_PERSONAL WHERE ID_PERSONAL = @ID_PERSONAL -- AND FACULTAD = @FACULTAD AND TIPER = @TIPER AND TIPASO = @TIPASO AND QUINCENA = @QUINCENA

Page 265: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

265

AND MES = @MES AND ANIO = @ANIO END ELSE BEGIN UPDATE DESCUENTO_PERSONAL SET DTOTAL = @DTOL WHERE ID_PERSONAL = @ID_PERSONAL -- AND FACULTAD = @FACULTAD AND TIPER = @TIPER AND TIPASO = @TIPASO AND QUINCENA = @QUINCENA AND MES = @MES AND ANIO = @ANIO END IF (@@ERROR <> 0) BEGIN ROLLBACK TRANSACTION RETURN(99) END END IF (@@ERROR <> 0) ROLLBACK TRANSACTION ELSE COMMIT TRANSACTION GO

Descuentos Gremiales subidos desde algún dispositivo

Sub CARGAR_DESCUENTO_GREMIO() Dim FACULTAD As String, DP As String, DT As String RegSub = "0" TolSub = "0" Dim MA As String, DL As String On Error GoTo B_ERROR Picture1.ForeColor = RGB(0, 0, 255) 'Set DbFox = OpenDatabase(Mid(Me.TxtArchivo, 1, InStr(1, Me.TxtArchivo, Me.CdgAbrir.FileTitle) - 1), False, True, "FoxPro 2.5") Set DbFox = OpenDatabase(Mid(Me.TxtArchivo, 1, InStr(1, Me.TxtArchivo, Base) - 1), False, True, "FoxPro 2.5") GVQuery = "SELECT COUNT(*) AS TOTAL From " & Base 'Me.CdgAbrir.FileTitle

Page 266: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

266

Set RsFox = DbFox.OpenRecordset(GVQuery) If Not RsFox.EOF Then NumReg = RsFox.Fields(0) End If RsFox.Close 'OBTENER DATOS DEL DBF GVQuery = "SELECT * " GVQuery = GVQuery & "FROM " & Trim(Me.TxtArchivo) & " " ' GVQuery = GVQuery & "FROM " & Me.CdgAbrir.FileTitle & " " Set RsFox = DbFox.OpenRecordset(GVQuery) If Not RsFox.EOF Then If Me.Cbb_Gremios.ItemData(Me.Cbb_Gremios.ListIndex) = Val(RsFox!DTIPASO) Then MsgBox "Se ingresaran" & Space(2) & NumReg & Space(2) & "Registros", vbInformation Else MsgBox "El Gremio seleccionado no corresponde con el del Dispositivo", vbExclamation, "Atención" Screen.MousePointer = 0 RsFox.Close DbFox.Close TlbAceptar.Buttons(2).Enabled = False TlbCancel.Buttons(2).Enabled = False CmdAbrir.Enabled = True Abrir = False TxtArchivo.Text = " " Exit Sub End If End If I = 1 Reg = 1 q = Val(Trim(RsFox!DQCNA)) M = Val(Trim(RsFox!DMES)) 'LLAMAR LISTADO DE PERSONAL GVQuery = " " GVQuery = " SELECT DISTINCT MAX(IDADMISION),A.DATOS_PERSONAL AS DPER, A.UNIDAD_UNIV AS UNI, D.INDICE AS INDIC, " GVQuery = GVQuery & " A.CATEG_CARGO AS CC, A.ESTADOREG AS E FROM ADMISION A, DATOS_PERSONAL D " GVQuery = GVQuery & " WHERE A.DATOS_PERSONAL = D.ID_DATOS_PERSONAL AND D.INDICE <>'0' "

Page 267: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

267

GVQuery = GVQuery & " GROUP BY A.DATOS_PERSONAL, A.UNIDAD_UNIV, D.INDICE, A.CATEG_CARGO , A.ESTADOREG ORDER BY D.INDICE " Set PrdsDatos = GrdsF_Recupera_Datos(GVQuery) While Not RsFox.EOF DP = "0" Abrir = True Band = False PrdsDatos.MoveFirst 'If Len(Trim(FACULTAD)) > 0 Then If Not IsNull(RsFox!DINDICE) Then For ini = 1 To PrdsDatos.RecordCount If (Val(Trim(RsFox!DINDICE)) = Val(Trim(PrdsDatos!Indic))) And (Trim(PrdsDatos!CC) = Trim(RsFox!DTIPERS)) Then ' And (Trim(PrdsDatos!E) = Trim(RsFox!ESTADREG)) DP = Trim(PrdsDatos!DPER) Exit For Else DP = "0" End If PrdsDatos.MoveNext Next ini If DP = "0" Then Gvtipo = "I" Indi = Trim(RsFox!DINDICE) NA = Trim(RsFox!APELLIDO) & Trim(RsFox!nombre) DT = Trim(RsFox!DTOTAL) RegistrosMalos End If End If 'End If If Abrir = True Then If Val(DP) > 0 Then

GVQuery = " " GVQuery = "INSERT INTO DB_RRHH..DESCUENTO_PERSONAL " GVQuery = GVQuery & "VALUES ( " GVQuery = GVQuery & "'" & DP & "', " 'GVQuery = GVQuery & "'" & Trim(FACULTAD) & "', " 'DEPENDENCIA GVQuery = GVQuery & "'" & Trim(RsFox!DTIPERS) & "', "

Page 268: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

268

GVQuery = GVQuery & "'" & Trim(RsFox!DTIPASO) & "', " GVQuery = GVQuery & "'" & Trim(RsFox!DQCNA) & "', " GVQuery = GVQuery & "'" & Trim(RsFox!DMES) & "', " GVQuery = GVQuery & "'" & CStr(Mid(Format(Me.DTP_FECHA, "yyyy/mm/dd"), 1, 4)) & "', " If Not IsNull(RsFox!CODAFIL) And Len(Trim(RsFox!CODAFIL)) > 0 Then 'pg GVQuery = GVQuery & "'" & Format(Trim(RsFox!CODAFIL), "0.00") & "', " Else GVQuery = GVQuery & "'1', " End If 'GVQuery = GVQuery & "'" & Trim(RsFox!CODAFIL) & "', " 'DPG GVQuery = GVQuery & "'" & Trim(RsFox!ESTADREG) & "', " If Not IsNull(RsFox!Ahorro) And Len(Trim(RsFox!Ahorro)) > 0 Then 'AHORRO If Band = False Then GVQuery = GVQuery & "'" & Format(Trim(RsFox!Ahorro), "0.00") & "', " End If Band = False Else GVQuery = GVQuery & "'0.00', " End If If Not IsNull(RsFox!Ayuda) And Len(Trim(RsFox!Ayuda)) > 0 Then 'AYUDA If Band = False Then GVQuery = GVQuery & "'" & Format(Trim(RsFox!Ayuda), "0.00") & "', " End If Band = False Else GVQuery = GVQuery & "'0.00', " End If If Not IsNull(RsFox!Cuota) And Len(Trim(RsFox!Cuota)) > 0 Then ' CUOTA If Band = False Then GVQuery = GVQuery & "'" & Format(Trim(RsFox!Cuota), "0.00") & "', " End If Band = False Else GVQuery = GVQuery & "'0.00', "

Page 269: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

269

End If 'Creditos de los Gremios en Distintas Columnas If Not IsNull(RsFox!DESC1) And Len(Trim(RsFox!DESC1)) > 0 Then If Band = False Then GVQuery = GVQuery & "'" & Format(Trim(RsFox!DESC1), "0.00") & "', " End If Band = False Else GVQuery = GVQuery & "'0.00', " End If If Not IsNull(RsFox!DESC2) And Len(Trim(RsFox!DESC2)) > 0 Then If Band = False Then GVQuery = GVQuery & "'" & Format(Trim(RsFox!DESC2), "0.00") & "', " End If Band = False Else GVQuery = GVQuery & "'0.00', " End If If Not IsNull(RsFox!DESC3) And Len(Trim(RsFox!DESC3)) > 0 Then If Band = False Then GVQuery = GVQuery & "'" & Format(Trim(RsFox!DESC3), "0.00") & "', " End If Band = False Else GVQuery = GVQuery & "'0.00', " End If If Not IsNull(RsFox!DESC4) And Len(Trim(RsFox!DESC4)) > 0 Then If Band = False Then GVQuery = GVQuery & "'" & Format(Trim(RsFox!DESC4), "0.00") & "', " End If Band = False Else GVQuery = GVQuery & "'0.00', " End If If Not IsNull(RsFox!DESC5) And Len(Trim(RsFox!DESC5)) > 0 Then If Band = False Then

Page 270: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

270

GVQuery = GVQuery & "'" & Format(Trim(RsFox!DESC5), "0.00") & "', " End If Band = False Else GVQuery = GVQuery & "'0.00', " End If If Not IsNull(RsFox!DESC6) And Len(Trim(RsFox!DESC6)) > 0 Then If Band = False Then GVQuery = GVQuery & "'" & Format(Trim(RsFox!DESC6), "0.00") & "', " End If Band = False Else GVQuery = GVQuery & "'0.00', " End If If Not IsNull(RsFox!DESC7) And Len(Trim(RsFox!DESC7)) > 0 Then If Band = False Then GVQuery = GVQuery & "'" & Format(Trim(RsFox!DESC7), "0.00") & "', " End If Band = False Else GVQuery = GVQuery & "'0.00', " End If If Not IsNull(RsFox!DESC8) And Len(Trim(RsFox!DESC8)) > 0 Then If Band = False Then GVQuery = GVQuery & "'" & Format(Trim(RsFox!DESC8), "0.00") & "', " End If Band = False Else GVQuery = GVQuery & "'0.00', " End If If Not IsNull(RsFox!DESC9) And Len(Trim(RsFox!DESC9)) > 0 Then If Band = False Then GVQuery = GVQuery & "'" & Format(Trim(RsFox!DESC9), "0.00") & "', " End If Band = False

Page 271: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

271

Else GVQuery = GVQuery & "'0.00', " End If If Not IsNull(RsFox!DESC10) And Len(Trim(RsFox!DESC10)) > 0 Then If Band = False Then GVQuery = GVQuery & "'" & Format(Trim(RsFox!DESC10), "0.00") & "', " End If Band = False Else GVQuery = GVQuery & "'0.00', " End If If Not IsNull(RsFox!DTOTAL) And Len(Trim(RsFox!DTOTAL)) > 0 Then Band = False DT = Trim(RsFox!DTOTAL) GVQuery = GVQuery & "'" & Format(Trim(DT), "0.00") & "') " Else GVQuery = GVQuery & "'0.00') " End If GcnxConeccion.Execute GVQuery RegSub = Val(RegSub) + 1 End If If Round(NumReg / 100) = Reg Then actualizaprogress Picture1, I I = I + 1 ElseIf Round(NumReg * I / 100) = Reg Then actualizaprogress Picture1, I I = I + 1 End If Reg = Reg + 1 Call pausa RsFox.MoveNext Else EliminarIngresados actualizaprogress Picture1, 0 FraCarga.Visible = False Exit Sub End If Wend Screen.MousePointer = 0 RsFox.Close

Page 272: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

272

DbFox.Close PrdsDatos.Close TlbAceptar.Buttons(2).Enabled = False TlbCancel.Buttons(2).Enabled = False CmdAbrir.Enabled = True Abrir = False Exit Sub B_ERROR: Band = True GVQuery = GVQuery & "'0.00', " Resume Next End Sub

Descuentos por Ayudas

Private Sub CmdGuardar_Click() Dim FECHA As Date FECHA = Format(CDate(GVFecha_Server), "yyyy/mm/dd") GVQuery = "SP_INGRESO_AYUDA " GVQuery = GVQuery & "'" & Gvtipo & "', " GVQuery = GVQuery & "'" & Me.Cbb_Gremios.ItemData(Me.Cbb_Gremios.ListIndex) & "', " GVQuery = GVQuery & "'" & Me.Cbb_Tipo_Cargo.ItemData(Me.Cbb_Tipo_Cargo.ListIndex) & "', " GVQuery = GVQuery & "'" & Me.CbbQuincena.ItemData(Me.CbbQuincena.ListIndex) & "', " GVQuery = GVQuery & "'" & Me.CbbMes.ItemData(Me.CbbMes.ListIndex) & "', " GVQuery = GVQuery & "'" & Year(FECHA) & "', " GVQuery = GVQuery & "'" & Format(Val(Trim(TxtValHelp.Text)), ".00") & "' " GrdsF_Recupera_Datos (GVQuery) End Sub

Guardar Subrogación

Public Sub GuardaSubRo(Gvtipo As String, IdSec As Integer, TS As Integer, OFICIO As String, E1 As String, CC1 As Integer, E2 As String, CC2 As Integer,

Page 273: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

273

FACUL As String, D As Date, H As Date, OJO As String, VS As String, F As String, GR As String, RS As String, FC As Date) GVQuery = " " GVQuery = "SP_EMPLEADO_SUBROGADO " GVQuery = GVQuery & "'" & Trim(Gvtipo) & "', " GVQuery = GVQuery & "'" & Trim(IdSec) & "', " GVQuery = GVQuery & "'" & TS & "', " GVQuery = GVQuery & "'" & OFICIO & "', " GVQuery = GVQuery & "'" & Trim(E1) & "', " GVQuery = GVQuery & "'" & Trim(CC1) & "', " GVQuery = GVQuery & "'" & Trim(E2) & "', " GVQuery = GVQuery & "'" & Trim(CC2) & "', " GVQuery = GVQuery & "'" & Trim(FACUL) & "', " GVQuery = GVQuery & "'" & Format(D, "yyyy/mm/dd") & "', " GVQuery = GVQuery & "'" & Format(H, "yyyy/mm/dd") & "', " GVQuery = GVQuery & "'" & Trim(OJO) & "', " GVQuery = GVQuery & "'" & Trim(VS) & "' ," GVQuery = GVQuery & "'" & Trim(F) & "', " GVQuery = GVQuery & "'" & Trim(GR) & "', " GVQuery = GVQuery & "'" & Trim(RS) & "', " GVQuery = GVQuery & "'" & Format(FC, "yyyy/mm/dd") & "', " GVQuery = GVQuery & "'1' " GrdsF_Recupera_Datos (GVQuery) End Sub

CREATE PROCEDURE SP_EMPLEADO_SUBROGADO( @TIPO AS CHAR(1), @ID_SUBROGA AS numeric, @TIPO_SR AS int, @OFICIO AS numeric, @EMPLEADO_AS AS varchar(20), @CARGO_AS AS numeric, @EMPLEADO_QS AS varchar(20), @CARGO_QS AS numeric, @UNIDAD AS varchar(12), @DESDE AS datetime, @HASTA AS datetime, @RECOMENDACION AS varchar(200), @VALOR AS char(10), @FUNCIONAL AS char(10), @REPRESENTACION AS char(10), @RESPONSABILIDAD AS char(10),

Page 274: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

274

@FC AS datetime, @ESTADO AS char(1)) AS BEGIN TRANSACTION IF @TIPO = 'I' BEGIN set @ID_SUBROGA = (select count(ID_SUBROGA) + 1 from EMPLEADO_SUBROGADO ) INSERT INTO EMPLEADO_SUBROGADO VALUES (@ID_SUBROGA, @TIPO_SR, @OFICIO, @EMPLEADO_AS, @CARGO_AS, @EMPLEADO_QS, @CARGO_QS, @UNIDAD, @DESDE, @HASTA , @RECOMENDACION, @VALOR, @FUNCIONAL, @REPRESENTACION, @RESPONSABILIDAD, @FC, @ESTADO) IF (@@ERROR <> 0) BEGIN ROLLBACK TRANSACTION RETURN(99) END END IF @TIPO = 'F' BEGIN UPDATE EMPLEADO_SUBROGADO SET OFICIO = @OFICIO, DESDE = @DESDE, HASTA = @HASTA WHERE ID_SUBROGA = @ID_SUBROGA

Page 275: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

275

AND UNIDAD = @UNIDAD IF (@@ERROR <> 0) BEGIN ROLLBACK TRANSACTION RETURN(99) END END IF @TIPO = 'U' BEGIN UPDATE EMPLEADO_SUBROGADO SET OFICIO = @OFICIO, RECOMENDACION = @RECOMENDACION WHERE ID_SUBROGA = @ID_SUBROGA AND UNIDAD = @UNIDAD IF (@@ERROR <> 0) BEGIN ROLLBACK TRANSACTION RETURN(99) END END IF @TIPO = 'H' BEGIN UPDATE EMPLEADO_SUBROGADO SET OFICIO = @OFICIO, HASTA = @HASTA WHERE ID_SUBROGA = @ID_SUBROGA AND UNIDAD = @UNIDAD IF (@@ERROR <> 0) BEGIN ROLLBACK TRANSACTION RETURN(99) END END

Page 276: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

276

IF @TIPO = 'D' BEGIN DELETE EMPLEADO_SUBROGADO WHERE ID_SUBROGA = @ID_SUBROGA --AND UNIDAD = @UNIDAD IF (@@ERROR <> 0) BEGIN ROLLBACK TRANSACTION RETURN(99) END END IF (@@ERROR <> 0) ROLLBACK TRANSACTION ELSE COMMIT TRANSACTION GO

Licencias de Empleados Private Sub Mnusave_Click() GVQuery = "SP_EMPLEADO_LICENCIA" GVQuery = GVQuery & " '" & GVtiposql & "', " GVQuery = GVQuery & "'" & LICENCIA & "', " GVQuery = GVQuery & "'" & Trim(personal) & "' ," GVQuery = GVQuery & "'" & Trim(Unidad) & "', " GVQuery = GVQuery & "'" & CARGO & "', " GVQuery = GVQuery & "'" & TIPER & "', " GVQuery = GVQuery & "'1', " 'oficio GVQuery = GVQuery & "'" & Format(Me.DtpDesde, "yyyy/mm/dd") & "' ," GVQuery = GVQuery & "'" & Format(Me.DtpHasta, "yyyy/mm/dd") & "' ," GVQuery = GVQuery & "'" & Trim(TxtObsrva.Text) & "', " GVQuery = GVQuery & "'" & Me.CbbLicencia.ItemData(Me.CbbLicencia.ListIndex) & "' " GrdsF_Recupera_Datos (GVQuery) End Sub CREATE PROCEDURE SP_EMPLEADO_LICENCIA( @TIPO AS CHAR(1), @LICENCIA AS int, @DATOS_PERSONAL AS varchar(20),

Page 277: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

277

@UNIDAD AS varchar(12), @CARGO AS numeric, @TIPER AS int, @OFICIO AS numeric, @FD AS smalldatetime, @FH AS smalldatetime, @OBSERVACION AS varchar(200), @ER AS INT) AS BEGIN TRANSACTION --DECLARE @ID_SEC AS NUMERIC IF @TIPO = 'I' BEGIN INSERT INTO EMPLEADO_LICENCIA VALUES (@LICENCIA , @DATOS_PERSONAL, @UNIDAD, @CARGO, @TIPER, @OFICIO, @FD, @FH, @OBSERVACION) UPDATE ADMISION SET ESTADOREG = @ER WHERE DATOS_PERSONAL = @DATOS_PERSONAL AND UNIDAD_UNIV= @UNIDAD AND ESTADOREG ='0' AND CATEG_CARGO = @TIPER IF @ER = 1 OR @ER = 4 BEGIN SET @LICENCIA = (SELECT MAX(ID_SEC) + 1 FROM TB_LISUS ) INSERT INTO TB_LISUS VALUES( @LICENCIA, @DATOS_PERSONAL, @TIPER, @OBSERVACION, @ER, @FD, @FH,

Page 278: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

278

'1') END IF (@@ERROR <> 0) BEGIN ROLLBACK TRANSACTION RETURN(99) END END IF @TIPO = 'U' BEGIN UPDATE EMPLEADO_LICENCIA SET LICENCIA = @LICENCIA, FD = @FD, FH = @FH, OBSERVACION = @OBSERVACION WHERE UNIDAD = @UNIDAD AND DATOS_PERSONAL = @DATOS_PERSONAL AND OFICIO = @OFICIO IF (@@ERROR <> 0) BEGIN ROLLBACK TRANSACTION RETURN(99) END END IF @TIPO = 'D' BEGIN DELETE EMPLEADO_LICENCIA WHERE UNIDAD = @UNIDAD AND DATOS_PERSONAL = @DATOS_PERSONAL AND OFICIO = @OFICIO IF (@@ERROR <> 0) BEGIN ROLLBACK TRANSACTION RETURN(99) END END IF (@@ERROR <> 0) ROLLBACK TRANSACTION ELSE

Page 279: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

279

COMMIT TRANSACTION GO

Mantenimiento de Rubros

Private Sub GUARDAR_LISTADO() Dim DTP_FB As Date GVQuery = "SP_LISTADO_RUBRO " GVQuery = GVQuery & "'" & GVtiposql & "', " GVQuery = GVQuery & "'" & SecRub & "', " GVQuery = GVQuery & "'" & ITEM & "', " GVQuery = GVQuery & "'" & Trim(Me.Cbb_tipo_rubro.ItemData(Me.Cbb_tipo_rubro.ListIndex)) & "', " GVQuery = GVQuery & "'" & Trim(Me.CbbOrigen.ItemData(Me.CbbOrigen.ListIndex)) & "', " If Chk_Tper.Value = 0 Then GVQuery = GVQuery & "'0', " Else GVQuery = GVQuery & "'" & Trim(Me.Cbb_Tipo_Cargo.ItemData(Me.Cbb_Tipo_Cargo.ListIndex)) & "', " End If If ChkPriori.Value = 0 Then GVQuery = GVQuery & "'0', " Else GVQuery = GVQuery & "'" & Trim(Txb_Proridad.Text) & "', " End If GVQuery = GVQuery & "'" & GVestado & "', " If Me.Cbb_tipo_rubro.ItemData(Me.Cbb_tipo_rubro.ListIndex) = 3 Then GVQuery = GVQuery & "'" & Trim(TxtGrupo.Text) & "', " Else GVQuery = GVQuery & "'0', " 'Liquidez del Rubro End If GVQuery = GVQuery & "'" & Trim(TxbAbrev.Text) & "', " GVQuery = GVQuery & "'NP', " GVQuery = GVQuery & "'" & Format(Me.DTP_FECHA, "yyyy/mm/dd") & "', " GVQuery = GVQuery & "'" & Format(DTP_FB, "yyyy/mm/dd") & "' " GrdsF_Recupera_Datos (GVQuery) End Sub

Page 280: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

280

CREATE PROCEDURE SP_LISTADO_RUBRO( @TIPO AS CHAR(1), @VID_LR AS numeric, @VITEM AS numeric, @VTIPRUB AS int, @ORIGEN AS int, @VTIPCAR AS int, @VPRIORIDAD as int, @VESTADO AS char(1), @VLIQUIDEZ AS int, @VABREVIATURA AS varchar(50), @VALOR AS char(10), @VFC AS datetime, @VFB AS datetime) AS BEGIN TRANSACTION IF @TIPO = 'I' BEGIN INSERT INTO TB_LISTADO_RUBRO VALUES (@VID_LR, @VITEM, @VTIPRUB, @ORIGEN, @VTIPCAR, @VPRIORIDAD, @VESTADO, @VLIQUIDEZ, @VABREVIATURA, @VALOR, @VFC, @VFB) IF (@@ERROR <> 0) BEGIN ROLLBACK TRANSACTION RETURN(99) END END IF @TIPO = 'U'

Page 281: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

281

BEGIN UPDATE TB_LISTADO_RUBRO SET TIPRUB = @VTIPRUB, TIPCAR = @VTIPCAR, ABREVIATURA =@VABREVIATURA, VALOR = @VALOR, PRIORIDAD = @VPRIORIDAD WHERE ID_LR = @VID_LR AND ITEM = @VITEM AND ESTADO ='1' IF (@@ERROR <> 0) BEGIN ROLLBACK TRANSACTION RETURN(99) END END IF @TIPO = 'V' BEGIN UPDATE TB_LISTADO_RUBRO SET LIQUIDEZ = @VLIQUIDEZ, VALOR = @VALOR WHERE ID_LR = @VID_LR AND ITEM = @VITEM AND ESTADO ='1' IF (@@ERROR <> 0) BEGIN ROLLBACK TRANSACTION RETURN(99) END END IF @TIPO = 'H' BEGIN UPDATE TB_LISTADO_RUBRO SET ESTADO=@VESTADO

Page 282: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

282

WHERE ID_LR = @VID_LR AND ITEM = @VITEM IF (@@ERROR <> 0) BEGIN ROLLBACK TRANSACTION RETURN(99) END END IF @TIPO = 'D' BEGIN DELETE TB_LISTADO_RUBRO WHERE ID_LR = @VID_LR AND ITEM = @VITEM IF (@@ERROR <> 0) BEGIN ROLLBACK TRANSACTION RETURN(99) END END IF (@@ERROR <> 0) ROLLBACK TRANSACTION ELSE COMMIT TRANSACTION GO Private Sub BASE_RUBROCARGO() GVQuery = " SP_RUBROCARGO " GVQuery = GVQuery & "'" & GVtiposql & "', " GVQuery = GVQuery & "'" & SEC_CARGO & "', " GVQuery = GVQuery & "'" & RA & "', " GVQuery = GVQuery & "'" & ValRuCar & "', " GVQuery = GVQuery & "'" & Format(Me.DTP_FECHA, "yyyy/mm/dd") & "', " GVQuery = GVQuery & "'" & EstRC & "' " GrdsF_Recupera_Datos (GVQuery) End Sub CREATE PROCEDURE SP_RUBROCARGO( @TIPO AS CHAR(1),

Page 283: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

283

@VCARGO AS numeric, @VRUBRO AS numeric, @VVALOR AS char(10), @VFC AS DATETIME, @VESTADO AS CHAR(1)) AS BEGIN TRANSACTION IF @TIPO = 'I' BEGIN INSERT INTO TB_RUBROCARGO VALUES (@VCARGO, @VRUBRO, CONVERT(CHAR(10), CONVERT(DECIMAL(9, 2),@VVALOR )), @VFC, '1' ) IF (@@ERROR <> 0) BEGIN ROLLBACK TRANSACTION RETURN(99) END END IF @TIPO = 'U' BEGIN UPDATE TB_RUBROCARGO SET VALOR= CONVERT(CHAR(10), CONVERT(DECIMAL(9, 2),@VVALOR )) WHERE CARGO=@VCARGO AND @VRUBRO = @VRUBRO IF (@@ERROR <> 0) BEGIN ROLLBACK TRANSACTION RETURN(99) END END IF @TIPO = 'D' BEGIN DELETE TB_RUBROCARGO WHERE CARGO=@VCARGO

Page 284: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

284

AND @VRUBRO = @VRUBRO IF (@@ERROR <> 0) BEGIN ROLLBACK TRANSACTION RETURN(99) END END IF (@@ERROR <> 0) ROLLBACK TRANSACTION ELSE COMMIT TRANSACTION GO

Private Sub BASE_RUBROUNIDAD() GVQuery = " SP_RUBROUNIDAD " GVQuery = GVQuery & "'" & GVtiposql & "', " GVQuery = GVQuery & "'" & RA & "', " GVQuery = GVQuery & "'" & Trim(UNIDAD_P) & "', " GVQuery = GVQuery & "'" & ID_PARTIDA & "', " GVQuery = GVQuery & "'" & SEC_CARGO & "', " GVQuery = GVQuery & "'" & Trim(ValRuCar) & "', " GVQuery = GVQuery & "'" & Format(Me.DTP_FECHA, "yyyy/mm/dd") & "', " GVQuery = GVQuery & "'" & EstRU & "' " GrdsF_Recupera_Datos (GVQuery) End Sub CREATE PROCEDURE SP_RUBROUNIDAD( @TIPO AS CHAR(1), @VRUBRO AS numeric, @VUNIDAD AS varchar(12), @VPARTIDA AS varchar(30), @VCARGO AS numeric, @VALOR AS char(10), @VFC AS DATETIME, @VESTADO AS CHAR(1)) AS BEGIN TRANSACTION

Page 285: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

285

IF @TIPO = 'I' BEGIN INSERT INTO TB_RUBROUNIDAD VALUES (@VRUBRO, @VUNIDAD, @VPARTIDA, @VCARGO, CONVERT(CHAR(10), CONVERT(DECIMAL(9, 2),@VALOR )), @VFC, @VESTADO)

IF (@@ERROR <> 0) BEGIN ROLLBACK TRANSACTION RETURN(99) END END IF @TIPO = 'U' BEGIN UPDATE TB_RUBROUNIDAD SET @VALOR = CONVERT(CHAR(10), CONVERT(DECIMAL(9, 2),@VALOR )), @VFC = FC WHERE RUBRO=@VRUBRO AND UNIDAD=@VUNIDAD AND PARTIDA=@VPARTIDA AND CARGO=@VCARGO IF (@@ERROR <> 0) BEGIN ROLLBACK TRANSACTION RETURN(99) END END IF @TIPO = 'D' BEGIN DELETE TB_RUBROUNIDAD WHERE RUBRO=@VRUBRO AND UNIDAD=@VUNIDAD AND PARTIDA=@VPARTIDA

Page 286: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

286

AND CARGO=@VCARGO IF (@@ERROR <> 0) BEGIN ROLLBACK TRANSACTION RETURN(99) END END IF (@@ERROR <> 0) ROLLBACK TRANSACTION ELSE COMMIT TRANSACTION GO

Mantenimiento de Procesos

Private Sub SaveContra () GVQuery = "SP_CONTRACHEQUES" GVQuery = GVQuery & " '" & GVtiposql & "', " GVQuery = GVQuery & "'" & IdCC & "', " GVQuery = GVQuery & "'" & Trim(Me.TxtContra) & "', " GVQuery = GVQuery & "'" & Trim(Me.Txb_Siglas) & "', " GVQuery = GVQuery & "'" & DESTINO & "' " GrdsF_Recupera_Datos (GVQuery) End Sub CREATE PROCEDURE SP_CONTRACHEQUES( @TIPO AS CHAR(1), @ID_REG AS int, @NOMBRE_CC AS varchar(100), @SIGLAS_CC AS varchar(50), @DESTINO AS int) AS BEGIN TRANSACTION

Page 287: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

287

IF @TIPO = 'I' BEGIN INSERT INTO TB_PROCESOS VALUES (@ID_REG, @NOMBRE_CC, @SIGLAS_CC, @DESTINO) IF (@@ERROR <> 0) BEGIN ROLLBACK TRANSACTION RETURN(99) END END IF @TIPO = 'U' BEGIN UPDATE TB_PROCESOS SET NOMBRE_CC = @NOMBRE_CC, SIGLAS_CC = @SIGLAS_CC, DESTINO = @DESTINO WHERE ID_REG = @ID_REG IF (@@ERROR <> 0) BEGIN ROLLBACK TRANSACTION RETURN(99) END END IF @TIPO = 'D' BEGIN DELETE RUB_CC WHERE CONTRACHEQUE = @ID_REG DELETE TB_PROCESOS WHERE ID_REG = @ID_REG DELETE TIEMPO_PROCESO WHERE PROCESO = @ID_REG

Page 288: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

288

IF (@@ERROR <> 0) BEGIN ROLLBACK TRANSACTION RETURN(99) END END IF (@@ERROR <> 0) ROLLBACK TRANSACTION ELSE COMMIT TRANSACTION GO

Private Sub Proces_Time() GVQuery = "SP_TIEMPO_PROCESO" GVQuery = GVQuery & " '" & GVtiposql & "', " GVQuery = GVQuery & "'" & Val(Trim(IdCC)) & "', " GVQuery = GVQuery & "'" & Val(Trim(Mess)) & "', " GVQuery = GVQuery & "'" & Val(Trim(Quin)) & "', " GVQuery = GVQuery & "'" & Format(Me.DTP_FECHA, "yyyy/mm/dd") & "' " GrdsF_Recupera_Datos (GVQuery) End Sub CREATE PROCEDURE SP_TIEMPO_PROCESO( @TIPO AS CHAR(1), @PROCESO AS int, @MES AS int, @QUINCENA AS int, @FC AS smalldatetime) AS BEGIN TRANSACTION IF @TIPO = 'I' BEGIN INSERT INTO TIEMPO_PROCESO VALUES(@PROCESO, @MES, @QUINCENA, @FC)

Page 289: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

289

IF (@@ERROR <> 0) BEGIN ROLLBACK TRANSACTION RETURN(99) END END IF @TIPO = 'D' BEGIN DELETE TIEMPO_PROCESO WHERE PROCESO = @PROCESO AND MES = @MES AND QUINCENA = @QUINCENA IF (@@ERROR <> 0) BEGIN ROLLBACK TRANSACTION RETURN(99) END END IF (@@ERROR <> 0) ROLLBACK TRANSACTION ELSE COMMIT TRANSACTION GO Private Sub BASE_RCC() GVQuery = " SP_RUB_CC " GVQuery = GVQuery & "'" & GVtiposql & "', " GVQuery = GVQuery & "'" & SecRub & "', " GVQuery = GVQuery & "'" & CC & "', " GVQuery = GVQuery & "'" & Me.Cbb_tipo_rubro.ItemData(Me.Cbb_tipo_rubro.ListIndex) & "', " GVQuery = GVQuery & "'1' ," GVQuery = GVQuery & "'" & Trim(TxtPorcenReso.Text) & "' ," GVQuery = GVQuery & "'" & Trim(Me.PosX) & "' ," GVQuery = GVQuery & "'" & Trim(Me.PosY) & "' ," If Len(Trim(TxtDP.Text)) > 0 Then GVQuery = GVQuery & "'" & Trim(Me.TxtDP) & "' ," Else

Page 290: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

290

GVQuery = GVQuery & "'100' ," End If GVQuery = GVQuery & "'" & Trim(ESTADO) & "' " GrdsF_Recupera_Datos (GVQuery) End Sub CREATE PROCEDURE SP_RUB_CC( @TIPO AS CHAR(1), @RUBRO AS numeric, @CONTRACHEQUE AS int, @TIPO_R AS int, @RESOLUCION AS char(1), @PORCENRESO AS char(10), @POSICION_X AS int, @POSICION_Y AS int, @PORCENTAJE AS char(10), @ESTADO AS char(1)) AS BEGIN TRANSACTION IF @TIPO = 'I' BEGIN INSERT INTO RUB_CC VALUES (@RUBRO, @CONTRACHEQUE, @TIPO_R, @RESOLUCION, @PORCENRESO, @POSICION_X, @POSICION_Y, @PORCENTAJE, @ESTADO) IF (@@ERROR <> 0) BEGIN ROLLBACK TRANSACTION RETURN(99) END END IF @TIPO = 'U'

Page 291: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

291

BEGIN UPDATE RUB_CC SET RESOLUCION = @RESOLUCION, PORCENRESO = @PORCENRESO, POSICION_X = @POSICION_X, POSICION_Y = @POSICION_Y, PORCENTAJE = @PORCENTAJE WHERE RUBRO = @RUBRO AND CONTRACHEQUE = @CONTRACHEQUE IF (@@ERROR <> 0) BEGIN ROLLBACK TRANSACTION RETURN(99) END END IF @TIPO = 'E' BEGIN UPDATE RUB_CC SET POSICION_X = @POSICION_X, POSICION_Y = @POSICION_Y, ESTADO = @ESTADO WHERE RUBRO = @RUBRO AND CONTRACHEQUE = @CONTRACHEQUE IF (@@ERROR <> 0) BEGIN ROLLBACK TRANSACTION RETURN(99) END END IF @TIPO = 'D' BEGIN DELETE RUB_CC WHERE RUBRO = @RUBRO AND CONTRACHEQUE = @CONTRACHEQUE IF (@@ERROR <> 0) BEGIN ROLLBACK TRANSACTION

Page 292: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

292

RETURN(99) END END IF (@@ERROR <> 0) ROLLBACK TRANSACTION ELSE COMMIT TRANSACTION GO

Ejecución de Procesos

Private Sub Ejecuta_Ingresos() Dim VALS As String, ContadorReg 'NOMINA DE RUBROS QUE PERTENECEN AL PROCESO SELECCIONADO If TRU <= 6 And TRU > 0 Then IQuery = " " IQuery = " SELECT RC.RUBRO RU, LR.ABREVIATURA AS SIG, LR.VALOR AS VALOR, RC.PORCENTAJE AS PP, LR.TIPRUB AS TR, LR.LIQUIDEZ, LR.ITEM AS ITEM, " IQuery = IQuery & " RC.RESOLUCION R, RC.PORCENRESO PR, LR.PRIORIDAD PRIO FROM RUB_CC RC, TB_LISTADO_RUBRO LR, RUBRO_ACTIVO RA, TB_PROCESOS C " IQuery = IQuery & " WHERE RA.RUBRO = RC.RUBRO AND LR.ID_LR = RA.ID_LR AND LR.ITEM = RA.ITEM AND RC.CONTRACHEQUE ='" & Me.CbbCC.ItemData(Me.CbbCC.ListIndex) & "' " IQuery = IQuery & " AND LR.ESTADO ='1' AND C.ID_REG = RC.CONTRACHEQUE AND RC.ESTADO ='1' " Select Case TRU 'Permite indicar los tipos de rubros que se van a PROCESAR Case 1 IQuery = IQuery & " AND LR.TIPRUB = '1'" Case 2 IQuery = IQuery & " AND LR.TIPRUB = '2'" Case 3 If ChkNov.Value = 1 Then IQuery = IQuery & " AND LR.TIPRUB = '3'" Else IQuery = IQuery & " AND (LR.TIPRUB = '1' OR LR.TIPRUB = '2') " End If Case 4

Page 293: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

293

IQuery = IQuery & " AND (LR.TIPRUB = '1' OR LR.TIPRUB = '3') " Case 5 IQuery = IQuery & " AND (LR.TIPRUB = '3' OR LR.TIPRUB = '2') " Case 6 IQuery = IQuery & " AND (LR.TIPRUB = '3' OR LR.TIPRUB = '2' OR LR.TIPRUB = '1'OR LR.TIPRUB = '4') " End Select IQuery = IQuery & " ORDER BY LR.TIPRUB, LR.PRIORIDAD,LR.LIQUIDEZ, RC.RUBRO , LR.ABREVIATURA " Set RS_PROCESO = GrdsF_Recupera_Datos(IQuery) Else MsgBox "Debe Especificar las Tareas que desea Realizar ", vbExclamation Exit Sub End If 'NOMINA DE LOS SERVIDORES LIGADOS AL PROCESO GVQuery = " " GVQuery = "SELECT DISTINCT DATOS_PERSONAL AS DP, A.UNIDAD_UNIV AS U, MAX(IDADMISION) AS AD, A.CARGO AS C, PC.COD_PARTIDA AS CP, DAP.INDICE AS IP, " GVQuery = GVQuery & " CATEG_CARGO AS CACA FROM TB_PARTI_CARGO AS PC, ADMISION AS A, DATOS_PERSONAL AS DAP " GVQuery = GVQuery & " WHERE PC.SECUENCIA = A.PARTIDA AND A.UNIDAD_UNIV = PC.UNIDAD_UNIV AND DAP.ID_DATOS_PERSONAL = A.DATOS_PERSONAL" GVQuery = GVQuery & " AND DAP.ID_DATOS_PERSONAL = '" & cod_p & "'" GVQuery = GVQuery & " AND A.DATOS_PERSONAL = '" & cod_p & "'" GVQuery = GVQuery & " AND A.UNIDAD_UNIV = '" & Trim(Unidad) & "'" GVQuery = GVQuery & " AND A.ESTADOREG = '0'" GVQuery = GVQuery & " GROUP BY A.DATOS_PERSONAL, A.UNIDAD_UNIV, A.CARGO , PC.COD_PARTIDA, DAP.INDICE, A.CATEG_CARGO ORDER BY A.UNIDAD_UNIV" Set RsSer = GrdsF_Recupera_Datos(GVQuery) If RsSer.RecordCount > 0 Then '-------------------------------------------------- 'Cargando Listado de Personal y Rubros '-------------------------------------------------- LblMsg.Caption = "Cargando Listado de Personal del Proceso" ContadorReg = " " GVQuery = "SELECT count(CONVERT(NUMERIC,ID_SEC))+1 as Can FROM " & UCase(Trim(Tabla)) & " " & " " Set RS = GrdsF_Recupera_Datos(GVQuery) If RS.RecordCount > 0 Then ContadorReg = Trim(RS!Can)

Page 294: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

294

Else ContadorReg = 1 End If While Not RsSer.EOF ContadorReg = Trim(CStr(Val(ContadorReg) + 1)) 'Ingreso de los datos b Tarea = "INSERT INTO " & UCase(Trim(Tabla)) & " VALUES " & "(" GVQuery = " " GVQuery = " " & Tarea & " " GVQuery = GVQuery & "'" & ContadorReg & "', " 'GVQuery = GVQuery & "'" & GVF_Inc_Codigo_Sec("SELECT MAX(ID_SEC) FROM " & UCase(Trim(Tabla)) & " ") & "', " GVQuery = GVQuery & "'" & Trim(RsSer!AD) & "', " GVQuery = GVQuery & "'" & Trim(RsSer!DP) & "', " GVQuery = GVQuery & "'" & Trim(RsSer!U) & "', " GVQuery = GVQuery & "'" & Me.CbbM.ItemData(Me.CbbM.ListIndex) & "' ," GVQuery = GVQuery & "'" & Me.CbbQ.ItemData(Me.CbbQ.ListIndex) & "' ," GVQuery = GVQuery & "'" & Trim(Me.TxtAños.Text) & "' ," VALS = " " DQuery = "SELECT COUNT(RUBRO)AS C FROM RUB_CC WHERE CONTRACHEQUE ='" & Me.CbbCC.ItemData(Me.CbbCC.ListIndex) & "'" Set RS = GrdsF_Recupera_Datos(DQuery) For P = 1 To Trim(RS!C) If P = Trim(RS!C) Then VALS = Trim(VALS & Space(1) & " '0.00' ") Else VALS = Trim(VALS & Space(1) & " '0.00' ,") End If Next P GVQuery = GVQuery & " " & Trim(VALS) + ")" & " " GrdsF_Recupera_Datos (GVQuery) 'Llenado de Requerimientos '--------------------------------------------------- DIAS_EMPLEADO BUSCAR_SUELDO BUSCAR_SUBRROGA BUSCAR_RESOLUCION DATOS_TEMPORALES '--------------------------------------------------- RsSer.MoveNext RsSer.MoveFirst

Page 295: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

295

RS_PROCESO.MoveFirst ContadorReg = "0" LblMsg.Caption = "Actualizando los Valores de las Columnas" Actualiza_Ptmos 'AQUI ACTUALIZAR LA COLUMNA DESCUENTO POR TIPO 2 For I = 1 To RS_PROCESO.RecordCount While Not RsSer.EOF Percen = RS_PROCESO!PP ContadorReg = CStr(Val(ContadorReg) + 1) 'ACUMULA DESCUENTOS POR IGUALDAD If (RS_PROCESO!TR) = "3" And (RS_PROCESO!PRIO) = "20" Then LblMsg.Caption = "Descontando Igualdades" Do While (RS_PROCESO!TR) = "3" And (RS_PROCESO!PRIO) = "20" RS_PROCESO.MoveNext Loop RS_PROCESO.MovePrevious AcumulaDscto RS_PROCESO.MoveNext ElseIf (RS_PROCESO!TR) = "4" Then LblMsg.Caption = "Generando Totales" BanDscto = True UpdateTI BanDscto = False Exit Sub End If 'valores de rubros DINER = Trim(RS_PROCESO!VALOR) DATOS_RUBROS DINER = Format(CStr(Val(DINER) * (Val(Percen) / 100)), "0.00") If Val(RS_PROCESO!Pr) > 0 Then RPRR End If '------------------------------------------------------------------- 'Nombre de Columnas NomCol = Trim(RS_PROCESO!SIG) Verificar_Nombre '------------------------------------------------------------------- Select Case Val(RS_PROCESO!TR) Case 1 LblMsg.Caption = "Actualizando los Valores del Rubro" & Space(2) & Trim(RS_PROCESO!SIG)

Page 296: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

296

Case 2 LblMsg.Caption = "Actualizando los Valores del Rubro" & Space(2) & Trim(RS_PROCESO!SIG) If BanDscto = True Then TipoUV = "UI" UpdateTI 'OBTENER EL TOTAL DE INGRESO PARA COMENZAR A DESCONTAR BanDscto = False End If If BanDscto = False Then TipoUV = "ST" UpdateTI TipoUV = "UT" End If Case 3 LblMsg.Caption = "Actualizando los Valores del Rubro" & Space(2) & Trim(RS_PROCESO!SIG) If TipoUV = "UT" Then BanDscto = True UpdateTI TipoUV = "UA" UpdateTI TipoUV = "UD" BanDscto = False End If If BanDscto = False Then TipoUV = "UD" UpdateTI TipoUV = "CT" End If End Select If PorCargo = True And Val(RS_PROCESO!TR) < 4 Then 'Actualizando campo del Proceso Tarea = "UPDATE " & UCase(Trim(Tabla)) & " SET " GVQuery = " " & Tarea & " " GVQuery = GVQuery & " " & UCase(NomCol) + "=" & " " GVQuery = GVQuery & " '" & DINER & "'" GVQuery = GVQuery & " WHERE MES = '" & Me.CbbM.ItemData(Me.CbbM.ListIndex) & "'" GVQuery = GVQuery & " AND QUINCENA = '" & Me.CbbQ.ItemData(Me.CbbQ.ListIndex) & "'" GVQuery = GVQuery & " AND ANIO = '" & Me.TxtAños & "' "

Page 297: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

297

GVQuery = GVQuery & " AND DATOS_PERSONAL = '" & RsSer!DP & "' " GVQuery = GVQuery & " AND UNIDAD = '" & RsSer!U & "' " GVQuery = GVQuery & " AND MAX_ADMISION = '" & RsSer!AD & "' " GrdsF_Recupera_Datos (GVQuery) End If RsSer.MoveNext RsSer.MoveFirst RS_PROCESO.MoveNext Next I MsgBox "El Proceso ha Culminado", vbInformation Else MsgBox "El tipo de personal elegido no corresponde con el Proceso", vbExclamation End If End Sub Private Sub BUSCAR_SUELDO() GVQuery = " SELECT DISTINCT SUELDO FROM TB_PARTI_CARGO " GVQuery = GVQuery & " WHERE COD_PARTIDA ='" & Trim(RsSer!CP) & "' " GVQuery = GVQuery & " AND COD_CARGO = '" & RsSer!C & "' " Set RS3 = GrdsF_Recupera_Datos(GVQuery) DINER = Trim(RS3!SUELDO) End Sub Sub BUSCAR_SUBRROGA() RUQuery = "SELECT VALOR FROM EMPLEADO_SUBROGADO " RUQuery = RUQuery & "WHERE EMPLEADO_QS = '" & Trim(RsSer!DP) & "' AND UNIDAD = '" & Trim(RsSer!U) & "'AND ESTADO ='1' " Set rs1 = GrdsF_Recupera_Datos(RUQuery) If Not rs1.EOF Then VALOR1 = Trim(rs1!VALOR) Else VALOR1 = "0.00" End If End Sub Sub BUSCAR_RESOLUCION() Dim DiaNotrabajo As String, Dtrabajo As String Dtrabajo = 0 DiaNotrabajo = 0 ' En la resolucion se debe considerar por los dias trabajados RUQuery = " " RUQuery = "SELECT PORCENTAJE FROM RESOLUCION_SUELDO "

Page 298: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

298

RUQuery = RUQuery & " WHERE DATOS_PERSONAL = '" & Trim(RsSer!DP) & "' " RUQuery = RUQuery & " AND UNIDAD = '" & Trim(RsSer!U) & "' AND ESTADO ='1'" Set rs1 = GrdsF_Recupera_Datos(RUQuery) If Not rs1.EOF Then OTRO = Format(CStr((Val(Trim(DINER)) + Val(Trim(VALOR1))) * Val(Trim(rs1!PORCENTAJE)) / 100), "0.000") RUQuery = " " RUQuery = "SELECT REFRIGERIO, VACACIONES FROM TB_NOVED_ASIST WHERE DATOS_PERSONAL = '" & Trim(RsSer!DP) & "' AND UNIDAD_UNIV = '" & Trim(RsSer!U) & "' " If Me.CbbM.ItemData(Me.CbbM.ListIndex) > 10 Then RUQuery = RUQuery & " AND ANIO = '" & Trim(TxtAños.Text) & "' AND MES = '" & Me.CbbM.ItemData(Me.CbbM.ListIndex) & "' " Else RUQuery = RUQuery & " AND ANIO = '" & Trim(TxtAños.Text) & "' AND MES = '" & 0 + Me.CbbM.ItemData(Me.CbbM.ListIndex) & "' " End If Set rs1 = GrdsF_Recupera_Datos(RUQuery) If rs1.RecordCount > 0 Then DiaNotrabajo = Val(Trim(rs1!REFRIGERIO)) + Val(Trim(rs1!VACACIONES)) RUQuery = "SELECT POSIBLE_VALOR FROM TB_PARAMETRO_RUBRO WHERE ID_PR = '5028' " Set rs1 = GrdsF_Recupera_Datos(RUQuery) If Not rs1.EOF Then Dtrabajo = Trim(rs1!POSIBLE_VALOR) OTRO = CStr(Val(OTRO) * (Val(Dtrabajo) - Val(DiaNotrabajo)) / Val(Dtrabajo)) End If End If Else OTRO = "0.00" End If End Sub

Private Sub DATOS_TEMPORALES() CALCULA_ANTIGUEDAD RUQuery = " INSERT INTO TB_ANUAL VALUES ( " RUQuery = RUQuery & "'" & Trim(RsSer!DP) & "', "

Page 299: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

299

RUQuery = RUQuery & "'" & Trim(RsSer!U) & "', " RUQuery = RUQuery & "'" & Trim(RsSer!CACA) & "', " RUQuery = RUQuery & "'" & Trim(TxtAños) & "', " RUQuery = RUQuery & "'" & Me.CbbM.ItemData(Me.CbbM.ListIndex) & "', " RUQuery = RUQuery & "'" & Me.CbbQ.ItemData(Me.CbbQ.ListIndex) & "', " RUQuery = RUQuery & "'" & Trim(DINER) & "', " RUQuery = RUQuery & "'" & Trim(VALOR1) & "', " 'sub roga RUQuery = RUQuery & "'" & Format(Trim(OTRO), ".00") & "', " 'resolucion RUQuery = RUQuery & "'" & Val(Trim(Jengra)) & "', " RUQuery = RUQuery & "'" & Trim(percent) & "', " 'RUQuery = RUQuery & "'" & Trim(percent) + "')" & ", " RUQuery = RUQuery & "'0.00', " RUQuery = RUQuery & "'0.00', " RUQuery = RUQuery & "'0.00' ) " GrdsF_Recupera_Datos (RUQuery) End Sub Private Sub CALCULA_ANTIGUEDAD() Dim C As Integer, sumyear As Integer Dim NF As Date C = 0 percent = 0 Tacho = "0" dias = 0 Alexa = 0 Jengra = 0 P = 0 p1 = 0 p2 = 0 años = "0" Vp = "0" 'BUSCAR MOVIMIENTOS GVQuery = " SELECT NOANTI, FI, FF FROM TB_MOVFECHA " GVQuery = GVQuery & " WHERE DATOS_PERSONAL ='" & Trim(RsSer!DP) & "' " GVQuery = GVQuery & " AND TIPER ='" & Trim(RsSer!CACA) & "' AND NOANTI ='0'ORDER BY FI " Set RS3 = GrdsF_Recupera_Datos(GVQuery) If RS3.RecordCount > 0 Then For C = 1 To RS3.RecordCount If Not IsNull(RS3!FI) Then If InStr(1, RS3!FI, "/") <> 0 Or InStr(1, RS3!FI, "-") <> 0 Then Select Case Month(CDate(RS3!FI)) Case 1

Page 300: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

300

Select Case C Case 1 fecha1 = Format(DateSerial((Year(CDate(RS3!FI))), 2, Day(CDate(RS3!FI))), "yyyy/mm/dd") Case Else fecha1 = Format(CDate(RS3!FI), "yyyy/mm/dd") End Select Case Else fecha1 = Format(CDate(RS3!FI), "yyyy/mm/dd") End Select End If End If If Not IsNull(RS3!FF) Then If InStr(1, RS3!FF, "/") <> 0 Or InStr(1, RS3!FF, "-") <> 0 Then fecha2 = Format(CDate(RS3!FF), "yyyy/mm/dd") End If Else fecha2 = Format(CDate(GVFecha_Server), "yyyy/mm/dd") End If Obtener_Porcentaje fecha1, fecha2 RS3.MoveNext Next C If percent >= 2.4 Then percent = 2.4 Else percent = CStr(Val(percent) + Val(p2)) If percent >= 2.4 Then percent = 2.4 End If End If Else Vp = "0" End If End Sub Private Function Obtener_Porcentaje(Fech1 As Date, Fech2 As Date) As String Dim J As Integer, AL As Integer Dim F As Date, O_FF As Date Dim salir As Boolean ban = True salir = False DiaLic = 0 If Fech2 = Format(DateSerial(1900, 1, 1), "yyyy/mm/dd") Then

Page 301: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

301

If RsSer!CACA = 2 Then Fech2 = Format(DateSerial((Year(DTP_FECHA)), (Month(DTP_FECHA)), 15), "yyyy/mm/dd") Else Fech2 = Format(CDate(GVFecha_Server), "yyyy/mm/dd") End If End If 'EXTRAER LAS FECHAS DE LA CONDICION GVQuery = " " GVQuery = " SELECT FECHA_1, FECHA_2, VALOR FROM CONDICION_CREADA " GVQuery = GVQuery & " WHERE PARAMETRO ='5004' AND ESTADO = '1' " Set rs1 = GrdsF_Recupera_Datos(GVQuery) If rs1.RecordCount > 0 Then 'EMPEZAR A CALCULAR LOS DIAS POR CADA RANGO DE FECHA For J = 1 To rs1.RecordCount F = CDate(Trim(rs1!FECHA_2)) If F = Format(DateSerial(1900, 1, 1), "yyyy/mm/dd") Then If RsSer!CACA = 2 Then F = Format(DateSerial((Year(DTP_FECHA)), (Month(DTP_FECHA)), 15), "yyyy/mm/dd") Else F = Format(CDate(GVFecha_Server), "yyyy/mm/dd") End If End If 'Extraer las Novedades de Licencias GVQuery = " SELECT * FROM TB_LISUS WHERE DATOS_PERSONAL ='" & Trim(RsSer!DP) & "' " GVQuery = GVQuery & " AND TIPER ='" & Trim(RsSer!CACA) & "' AND ESTADO ='1' " GVQuery = GVQuery & " AND FIL BETWEEN '" & Format(CDate(Trim(rs1!FECHA_1)), "yyyy/mm/dd") & "' AND '" & Format(F, "yyyy/mm/dd") & "'" Set RS2 = GrdsF_Recupera_Datos(GVQuery) If RS2.RecordCount > 0 Then GVQuery = " SELECT * FROM TB_LISUS WHERE DATOS_PERSONAL ='" & Trim(RsSer!DP) & "' " GVQuery = GVQuery & " AND TIPER ='" & Trim(RsSer!CACA) & "' AND ESTADO ='1' " GVQuery = GVQuery & " AND FFL BETWEEN '" & Format(CDate(Trim(rs1!FECHA_1)), "yyyy/mm/dd") & "' AND '" & Format(F, "yyyy/mm/dd") & "'"

Page 302: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

302

Set RS2 = GrdsF_Recupera_Datos(GVQuery) If RS2.RecordCount > 0 Then For AL = 1 To RS2.RecordCount If (CDbl(RS2!FIL) >= CDbl(Fech1)) And (CDbl(RS2!FIL) <= CDbl(Fech2)) Then If (CDbl(RS2!FFL) >= CDbl(Fech1)) And (CDbl(RS2!FFL) <= CDbl(Fech2)) Then DiaLic = Val(DiaLic) + (CDbl(RS2!FFL) - CDbl(RS2!FIL)) Else DiaLic = 0 End If Else DiaLic = 0 End If Next AL Else DiaLic = 0 End If Else GVQuery = " SELECT * FROM TB_LISUS WHERE DATOS_PERSONAL ='" & Trim(RsSer!DP) & "' " GVQuery = GVQuery & " AND TIPER ='" & Trim(RsSer!CACA) & "' AND ESTADO ='1' " GVQuery = GVQuery & " AND FFL BETWEEN '" & Format(CDate(Trim(rs1!FECHA_1)), "yyyy/mm/dd") & "' AND '" & Format(F, "yyyy/mm/dd") & "'" Set RS2 = GrdsF_Recupera_Datos(GVQuery) If RS2.RecordCount > 0 Then If RS2.RecordCount > 1 Then For AL = 1 To RS2.RecordCount If (CDbl(RS2!FIL) >= CDbl(Fech1)) And (CDbl(RS2!FIL) <= CDbl(Fech2)) Then If (CDbl(RS2!FFL) >= CDbl(Fech1)) And (CDbl(RS2!FFL) <= CDbl(Fech2)) Then DiaLic = Val(DiaLic) + (CDbl(RS2!FFL) - CDbl(RS2!FIL)) Else DiaLic = 0 End If Else DiaLic = 0 End If Next AL Else

Page 303: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

303

If (CDbl(RS2!FIL) >= CDbl(Fech1)) And (CDbl(RS2!FIL) <= CDbl(Fech2)) Then DiaLic = (CDbl(RS2!FIL) - CDbl(rs1!FECHA_1)) Else DiaLic = 0 End If End If Else DiaLic = 0 End If End If '****************************** If CDbl(Fech1) <= CDbl(F) Then If (CDbl(Fech2) <= CDbl(F)) Then If CDbl(Fech1) >= CDbl(rs1!FECHA_1) Then If ban = False Then dias = CStr((Val(CDbl(Fech1)) - Val(CDbl(rs1!FECHA_1))) + Val(Tacho) - Val(DiaLic)) DiaLic = 0 Else dias = CStr((Val(CDbl(Fech2)) - Val(CDbl(Fech1))) + Val(Tacho) - Val(DiaLic)) salir = True DiaLic = 0 End If Else dias = CStr((Val(CDbl(F)) - Val(CDbl(Fech1))) + Val(Tacho) - Val(DiaLic)) DiaLic = 0 End If If Val(dias) < 365 Then Tacho = dias dias = 0 Else Tacho = CStr(Val(dias) Mod 365) End If If Tacho > 365 Then Alexa = CStr(Val(dias) \ 365) Alexa = CStr(Val(Alexa) + (Val(Tacho) \ 365)) Jengra = CStr(Val(Jengra) + Val(Alexa)) Tacho = CStr(Val(Tacho) - 365)

Page 304: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

304

P = (Val(rs1!VALOR) / 100 * Val(Alexa)) Else If Val(dias) >= 365 Then Alexa = CStr(Val(dias) \ 365) Jengra = CStr(Val(Jengra) + Val(Alexa)) P = (Val(rs1!VALOR) / 100 * Val(Alexa)) End If End If rs1.MoveNext If Not (RS3.EOF And RS3.BOF) And Not (RS3.EOF) Then rs1.MovePrevious ban = False End If Else dias = CStr((Val(CDbl(F)) - Val(CDbl(Fech1))) + Val(Tacho) - Val(DiaLic)) DiaLic = 0 If Val(dias) < 365 Then Tacho = dias dias = 0 Else Tacho = CStr(Val(dias) Mod 365) End If If Tacho > 365 Then Alexa = CStr(Val(dias) \ 365) Alexa = CStr(Val(Alexa) + (Val(Tacho) \ 365)) Jengra = CStr(Val(Jengra) + Val(Alexa)) Tacho = CStr(Val(Tacho) - 365) P = (Val(rs1!VALOR) / 100 * Val(Alexa)) Else If Val(dias) >= 365 Then Alexa = CStr(Val(dias) \ 365) Jengra = CStr(Val(Jengra) + Val(Alexa)) P = (Val(rs1!VALOR) / 100 * Val(Alexa)) End If End If rs1.MoveNext If RS3.RecordCount = 1 Then If rs1.AbsolutePosition > 1 Then Fech1 = (rs1!FECHA_1)

Page 305: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

305

End If Else Fech1 = CDbl(F) + 1 End If End If Else rs1.MoveNext End If If Val(Pagar) = 0 Then If Val(Jengra) > 24 And Val(Jengra) <= 30 Then p2 = CStr(Val(Jengra) - 24) * 0.01 ElseIf Val(Jengra) > 30 Then p2 = 0.06 Else p2 = "0" End If percent = CStr(Val(percent) + Val(P)) P = 0 If percent <= 2.4 Then percent = Str(Val(percent) + 0) Else p1 = Str(Val(percent) - 2.4) percent = Str(Val(percent) - Val(p1)) End If Else P = 0 End If If salir = True Then Exit For End If Next J Obtener_Porcentaje = percent End If End Function Private Sub DATOS_RUBROS() Dim TmpTI As String If DINER = "0" Then 'Valor del Rubro es Por Cargo y/o Unidad BuscarPorCargo Exit Sub

Page 306: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

306

ElseIf DINER = "F" Then 'El valor del Rubro esta dado por una Formula Formula_GralCarUni 'validar por tipo de rubro ElseIf DINER = "NP" Then LblMsg.Caption = "No se ha establecido Valor o Forma de Calculo para este Rubro" DINER = "0.00" ElseIf DINER = "N" Then 'El valor del Rubro es una Novedad Select Case RS_PROCESO!TR Case 1 Select Case RS_PROCESO!RU Case 5 Buscar_SubRogado Case Else BuscarOI End Select Case 2 GVQuery = " " GVQuery = " SELECT DISTINCT DG.GREMIO AS GR, INGRESO FROM TB_DSCTO_GREMIO DG , NOVEDAD_R N " GVQuery = GVQuery & " WHERE DG.DESCUENTO = N.ID_SEC AND DG.ID_RELACION ='" & RS_PROCESO!ITEM & "' AND TIPER ='" & Trim(RsSer!CACA) & " '" Set rs1 = GrdsF_Recupera_Datos(GVQuery) If rs1.RecordCount > 0 Then Select Case rs1!Ingreso Case "L" Dsct_Ley (rs1!GR) Case "N" 'Dsct_Novedad Case Else DINER = "0.00" Exit Sub End Select Else PorCargo = False DINER = "0.00" Exit Sub End If Case 4 If TipoUV = "CT" Then BanDscto = True VALTI = "0" UpdateTI

Page 307: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

307

BanDscto = False TipoUV = "N" Else PorCargo = False Exit Sub End If End Select ElseIf DINER = "0.00" Then 'El valor del Rubro es el Sldo BUSCAR_SUELDO PorCargo = True Exit Sub Else

ValoresFijos 'El valor del rubro es un valor Fijo PorCargo = True End If End Sub Private Sub BuscarPorCargo() RUQuery = " SELECT VALOR FROM TB_RUBROUNIDAD WHERE RUBRO = '" & RS_PROCESO!RU & "' " RUQuery = RUQuery & " AND UNIDAD ='" & RsSer!U & "' AND CARGO = '" & RsSer!C & "'" RUQuery = RUQuery & " AND PARTIDA = '" & RsSer!CP & "' AND ESTADO = '1' " Set Ru_RS = GrdsF_Recupera_Datos(RUQuery) If Ru_RS.RecordCount > 0 Then PorCargo = True DINER = Trim(Ru_RS!VALOR) 'DINER = Format(CStr(Val(DINER) * (Val(Percen) / 100)), "0.00") PorCargo = True Else RUQuery = "SELECT VALOR FROM TB_RUBROCARGO WHERE RUBRO = '" & RS_PROCESO!RU & "' AND CARGO = '" & RsSer!C & "' " Set Ru_RS = GrdsF_Recupera_Datos(RUQuery) If Ru_RS.RecordCount > 0 Then DINER = Trim(Ru_RS!VALOR) 'DINER = Format(CStr(Val(DINER) * (Val(Percen) / 100)), "0.00") PorCargo = True Else DINER = "0.00" End If End If 'Buscar si la Persona esta subrrogando a alguien

Page 308: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

308

RUQuery = "" Select Case RS_PROCESO!RU Case 5 RUQuery = " SELECT FUNCIONAL AS NV " Case 7 RUQuery = " SELECT REPRESENTACION AS NV" Case 8 RUQuery = " SELECT RESPONSABILIDAD AS NV" End Select RUQuery = RUQuery & " FROM EMPLEADO_SUBROGADO WHERE EMPLEADO_QS = '" & RsSer!DP & "' " RUQuery = RUQuery & " AND UNIDAD ='" & RsSer!U & "' AND CARGO_QS = '" & RsSer!C & "'" RUQuery = RUQuery & " AND ESTADO = '1' " Set Ru_RS = GrdsF_Recupera_Datos(RUQuery) If Ru_RS.RecordCount > 0 Then DINER = Trim(Ru_RS!NV) Else DINER = 0 End If End Sub Private Sub Formula_GralCarUni() GVQuery = " " GVQuery = "SELECT FORMULA_R,FORMULA_ID FROM TB_FORMULA " GVQuery = GVQuery & "WHERE ID_RUBRO = '" & RS_PROCESO!RU & "' " Set RS_FORMU = GrdsF_Recupera_Datos(GVQuery) If RS_FORMU.RecordCount > 0 Then 'Revisar si hay casos por Unidad RUQuery = " SELECT VALOR FROM TB_RUBROUNIDAD WHERE RUBRO = '" & RS_PROCESO!RU & "' " RUQuery = RUQuery & " AND UNIDAD ='" & RsSer!U & "' AND CARGO = '" & RsSer!C & "'" RUQuery = RUQuery & " AND PARTIDA = '" & RsSer!CP & "' AND ESTADO = '1' " Set Ru_RS = GrdsF_Recupera_Datos(RUQuery) If Ru_RS.RecordCount > 0 Then If Val(Trim(Ru_RS!VALOR)) > 0 Then DINER = Trim(Ru_RS!VALOR) 'DINER = Format(CStr(Val(DINER) * (Val(Percen) / 100)), "0.00") PorCargo = True Else FORMU = Trim(RS_FORMU!FORMULA_R)

Page 309: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

309

FORMID = Trim(RS_FORMU!FORMULA_ID) Ejecutar_Formula DINER = DINER PorCargo = True End If Exit Sub Else 'Revisar si hay casos por Cargo RUQuery = "SELECT VALOR FROM TB_RUBROCARGO WHERE RUBRO = '" & RS_PROCESO!RU & "' AND CARGO = '" & RsSer!C & "' " Set Ru_RS = GrdsF_Recupera_Datos(RUQuery) If Ru_RS.RecordCount > 0 Then If Val(Trim(Ru_RS!VALOR)) > 0 Then DINER = Trim(Ru_RS!VALOR) 'DINER = Format(CStr(Val(DINER) * (Val(Percen) / 100)), "0.00") PorCargo = True Else FORMU = Trim(RS_FORMU!FORMULA_R) FORMID = Trim(RS_FORMU!FORMULA_ID) Ejecutar_Formula PorCargo = True End If Exit Sub Else FORMU = Trim(RS_FORMU!FORMULA_R) FORMID = Trim(RS_FORMU!FORMULA_ID) Ejecutar_Formula End If End If End If End Sub Private Sub Ejecutar_Formula() Dim TmpNom As String, BuscarItem As String, PorcentajePagado As String Dim TamaC1, TamaC2, c1, C2, TamaTmp As Integer BuscarItem = " " PorcentajePagado = " " C2 = 0 TamaTmp = 0 conR = 0 TamaC1 = Len(Trim(FORMU)) TamaC2 = Len(Trim(FORMID)) N = -1 'Indice de la Matriz

Page 310: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

310

ReDim MATRIZ_UNIDADES(TamaC2) 'Redimenciono la Matriz Temporal If TamaC1 > 0 And TamaC2 > 0 Then For c1 = 1 To TamaC1 C2 = C2 + 1 VF = Trim(Asc(Mid(FORMU, c1, 1))) VF1 = Trim(Asc(Mid(FORMID, C2, 1))) If VF = VF1 Then If VF <> 32 Then N = N + 1 MATRIZ_UNIDADES(N) = Mid(FORMID, C2, 1) 'Ingreso valores a la Matriz End If Else conR = 0 For TamaTmp = C2 To TamaC2 'Con este Lazo Barro C2 para extraer el Indice If (Asc(Mid(FORMID, TamaTmp, 1)) <> 32) Then conR = conR + 1 Else Exit For End If Next TamaTmp If conR > 0 Then VALOR1 = Mid(FORMID, C2, conR) If Val(VALOR1) < 5000 Then RUQuery = " " RUQuery = "SELECT LR.ABREVIATURA AS SIGLA, RC.PORCENTAJE AS POPA " RUQuery = RUQuery & " FROM RUB_CC RC, TB_LISTADO_RUBRO LR, RUBRO_ACTIVO RA " RUQuery = RUQuery & " WHERE RA.RUBRO = RC.RUBRO AND LR.ID_LR = RA.ID_LR AND LR.ITEM = RA.ITEM " RUQuery = RUQuery & " AND LR.ITEM = '" & VALOR1 & "' AND RA.ITEM = '" & VALOR1 & "' AND LR.ESTADO = '1'" Set Ru_RS = GrdsF_Recupera_Datos(RUQuery) If Ru_RS.RecordCount > 0 Then 'Obtener el valor Si el Rubro esta en la Misma Tabla TmpNom = NomCol 'Almaceno Temporalmnete el Rubro original NomCol = Trim(Ru_RS!SIGLA) Verificar_Nombre GVQuery = " " GVQuery = "SELECT " & UCase(NomCol) & " AS VC " GVQuery = GVQuery & " FROM " & UCase(Trim(Tabla)) & " "

Page 311: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

311

GVQuery = GVQuery & " WHERE MES = '" & Me.CbbM.ItemData(Me.CbbM.ListIndex) & "'" GVQuery = GVQuery & " AND QUINCENA = '" & Me.CbbQ.ItemData(Me.CbbQ.ListIndex) & "'" GVQuery = GVQuery & " AND ANIO = '" & Me.TxtAños & "' " GVQuery = GVQuery & " AND DATOS_PERSONAL = '" & RsSer!DP & "' " GVQuery = GVQuery & " AND UNIDAD = '" & RsSer!U & "' " GVQuery = GVQuery & " AND MAX_ADMISION = '" & RsSer!AD & "' " Set RS2 = GrdsF_Recupera_Datos(GVQuery) If RS2.RecordCount > 0 Then 'Hay que revertir el proceso de relacion entre el rubro y la Resolución BuscarItem = VALOR1 VALOR1 = Trim(RS2!VC) 'rubro relacionado con la resolucion PorcentajePagado = Trim(Ru_RS!POPA) '------------------------------------------------------------------------------------- 'Verificar que el Rubro y el proceso que estan corriendo no estan relacionados '------------------------------------------------------------------------------------- RUQuery = " " RUQuery = " SELECT R.PORCENRESO FROM RUB_CC R, RUBRO_ACTIVO RA WHERE RA.RUBRO = R.RUBRO AND R.RESOLUCION ='1'" RUQuery = RUQuery & " AND RA.ITEM = '" & BuscarItem & "' AND R.CONTRACHEQUE = '" & Me.CbbCC.ItemData(Me.CbbCC.ListIndex) & "'" Set rs1 = GrdsF_Recupera_Datos(RUQuery) If rs1.RecordCount > 0 Then 'DEBO OBTENER EL VALOR DE LA RESOLUCION 'rs1.Close RUQuery = " " RUQuery = " SELECT RESOLUCION FROM TB_ANUAL WHERE DATOS_PERSONAL = '" & RsSer!DP & "' AND UNIDAD = '" & RsSer!U & "' " RUQuery = RUQuery & " AND MES = '" & Me.CbbM.ItemData(Me.CbbM.ListIndex) & "' AND ANIO = '" & Me.TxtAños & "' " Set rs1 = GrdsF_Recupera_Datos(RUQuery) If rs1.RecordCount > 0 Then VALOR1 = CStr(Val(VALOR1) - Val(Trim(rs1!RESOLUCION))) 'OBTENGO EL PORCENTAJE EL RUBRO PAGADO

Page 312: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

312

VALOR1 = CStr((Val(Trim(VALOR1)) * 99.99) / Val(PorcentajePagado)) 'OBTENGO EL RUBRO AL 100% VALOR1 = Format(CStr(Val(VALOR1) + Val(Trim(rs1!RESOLUCION))), ".00") 'OBTENGO EL RUBRO MAS LA RESOLUCION Else VALOR1 = Format(CStr((Val(Trim(VALOR1)) * 99.9) / Val(PorcentajePagado)), ".00") 'OBTENGO EL RUBRO AL 100% End If Else 'VALOR1 = "121.72" VALOR1 = Format(CStr((Val(Trim(VALOR1)) * 99.999) / Val(PorcentajePagado)), ".00") 'OBTENGO EL RUBRO AL 100% End If 'VALOR1 = Format(CStr((Val(Trim(RS2!VC)) * 100) / Val(Ru_RS!POPA)), ".00") Else VALOR1 = "0" End If c1 = c1 + Len(Trim(Ru_RS!SIGLA)) - 1 RS2.Close Else '------------------------------------------------------ 'Buscar el Rubro Fuera de la Tabla del Proceso Obtener_Valor '------------------------------------------------------ If Ru_RS.RecordCount > 0 Then TmpNom = NomCol NomCol = Trim(Ru_RS!SIGLA) c1 = c1 + Len(Trim(Ru_RS!SIGLA)) - 1 If Trim(Ru_RS!TC) = "0" Then BuscarValor Else If Trim(Ru_RS!TC) = "2" Then If Trim(RsSer!CACA) = "2" Or Trim(RsSer!CACA) = "3" Then BuscarValor End If Else

If Trim(RsSer!CACA) = Trim(Ru_RS!TC) Then BuscarValor

Page 313: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

313

Else VALOR1 = "0.00" End If End If End If End If End If NomCol = TmpNom Else Generar_Querys c1 = c1 + Val(Tmp_C) - 1 End If C2 = TamaTmp - 1 'Actualizo Recorrido de la cadena 2 N = N + 1 'Actualizo Indice de la Matriz MATRIZ_UNIDADES(N) = Trim(VALOR1) 'Actualizo Contenido de la Matriz End If conR = 0 End If Next c1 End If 'PARA USAR ESTASFUNCIONES SI REALMENTE SE TRATA DE UNA FORMULA If Len(Trim(FORMID)) > 1 Then FORMAR_CADENA VALOR_NUMERO Else DINER = VALOR1 End If End Sub Private Sub Generar_Querys() Dim indice As String Dim X As Integer indice = Trim(VALOR1) GVQuery1 = " " GVQuery1 = "SELECT DESCRIPCION, ORIENTACION, POSIBLE_VALOR FROM TB_PARAMETRO_RUBRO WHERE ID_PR ='" & Trim(VALOR1) & "'" Set RS2 = GrdsF_Recupera_Datos(GVQuery1) If RS2.RecordCount > 0 Then Tmp_C = CStr(Len(Trim(RS2!DESCRIPCION))) GVQuery1 = " " VALOR1 = 0

Page 314: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

314

Select Case Mid(Trim(RS2!Orientacion), 1, 1) Case "P" ' Select Case indice ' Case 5004 ' CALCULA_ANTIGUEDAD ' VALOR1 = CStr(percent) ' End Select Case "V" Select Case indice Case 5037 'Decimo Quinto If (Me.CbbM.ItemData(Me.CbbM.ListIndex) < 12) And (Me.CbbM.ItemData(Me.CbbM.ListIndex) Mod 2 = 0) Then GVQuery1 = " " GVQuery1 = "SELECT ANIOSER FROM TB_ANUAL " GVQuery1 = GVQuery1 & " WHERE DATOS_PERSONAL = '" & Trim(RsSer!DP) & "' " GVQuery1 = GVQuery1 & " AND TIPER = '" & Trim(RsSer!CACA) & "' " GVQuery1 = GVQuery1 & " AND MES = '" & Me.CbbM.ItemData(Me.CbbM.ListIndex) & "' " GVQuery1 = GVQuery1 & " AND QUINCENA = '" & Me.CbbQ.ItemData(Me.CbbQ.ListIndex) & "'" GVQuery1 = GVQuery1 & " AND ANIO = '" & Trim(TxtAños.Text) & "' " Set rs1 = GrdsF_Recupera_Datos(GVQuery1) If rs1.RecordCount > 0 Then If Val(rs1!ANIOSER) > 1 Then VALOR1 = Trim(RS2!POSIBLE_VALOR) Else 'PAGO PROPORCIONAL VALOR1 = (Val(Trim(RS2!POSIBLE_VALOR)) / 12) * Val(rs1!ANIOSER) End If Else VALOR1 = "0" End If End If Case 5005 To 5007 GVQuery1 = " " GVQuery1 = "SELECT MAX(IDADMISION), TT.ID_TT AS T " GVQuery1 = GVQuery1 & " FROM BdAlmacenDatos..TB_TIEMPO_TRABAJO TT, BdAlmacenDatos..TB_CARGO C, ADMISION A " GVQuery1 = GVQuery1 & " WHERE A.CARGO = C.SECUENCIAL AND C.TT = TT.ID_TT "

Page 315: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

315

GVQuery1 = GVQuery1 & " AND A.DATOS_PERSONAL = '" & Trim(RsSer!DP) & "' GROUP BY TT.ID_TT" Set rs1 = GrdsF_Recupera_Datos(GVQuery1) If rs1.RecordCount Then Select Case Trim(rs1!T) Case 1 ' TIEMPO COMPLETO VALOR1 = Trim(RS2!POSIBLE_VALOR) Case 2 'MEDIO TIEMPO VALOR1 = CStr(Val(Trim(RS2!POSIBLE_VALOR)) / 2) End Select Else VALOR1 = "1" End If Case 5016 GVQuery1 = " " GVQuery1 = "SELECT MVACA FROM TB_MOVFECHA WHERE DATOS_PERSONAL = '" & Trim(RsSer!DP) & "' AND TIPER = '" & Trim(RsSer!CACA) & "' AND FF = '" & Format(CDate("01/01/1900"), "YYYY/MM/DD") & "' " Set rs1 = GrdsF_Recupera_Datos(GVQuery1) If rs1.RecordCount > 0 Then If Val(rs1!MVACA) = Me.CbbM.ItemData(Me.CbbM.ListIndex) Then VALOR1 = Trim(RS2!POSIBLE_VALOR) Else VALOR1 = "0" End If Else VALOR1 = "0" End If Case 5023 GVQuery1 = " " GVQuery1 = "SELECT COD_CARGO, TT FROM BdAlmacenDatos..TB_CARGO WHERE COD_CAT_CARGO ='" & RsSer!CACA & "' AND SECUENCIAL ='" & RsSer!C & "' " Set rs1 = GrdsF_Recupera_Datos(GVQuery1) If rs1.RecordCount Then Select Case RsSer!CACA Case 1 ' DOCENTE Select Case Trim(rs1!cod_cargo) Case "2247" 'T/C1 VALOR1 = Trim(RS2!POSIBLE_VALOR) Case "2248" 'T/C2 VALOR1 = Format(Val(Trim(RS2!POSIBLE_VALOR)) * 0.8, ".00") Case "2249" 'T/P1

Page 316: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

316

VALOR1 = Format(Val(Trim(RS2!POSIBLE_VALOR)) * 0.6, ".00") Case "2250" 'T/P2 VALOR1 = Format(Val(Trim(RS2!POSIBLE_VALOR)) * 0.4, ".00") Case "2251" 'HUERTA VALOR1 = Format(Val(Trim(RS2!POSIBLE_VALOR)) * 0.4, ".00") Case Else VALOR1 = Format(Val(Trim(RS2!POSIBLE_VALOR)) * 0.4, ".00") End Select Case 2 ' ADMINISTRATIVO Select Case Trim(rs1!TT) Case 1 'TC VALOR1 = Trim(RS2!POSIBLE_VALOR) Case 2 'MT VALOR1 = Format(Val(Trim(RS2!POSIBLE_VALOR)) / 2, ".00") Case Else VALOR1 = "0" End Select Case Else VALOR1 = "0" End Select Else VALOR1 = "0" End If Case 5027 'Dias de TRANSPORTES INGRESADOS POR MUÑIZ VALOR1 = Trim(RS2!POSIBLE_VALOR) Case 5028 'Dias de Refrigerio INGRESADOS POR MUÑIZ If UCase(RS_PROCESO!SIG) = "MOVILIZACION" Then 'Movilizacion VALOR1 = Trim(RS2!POSIBLE_VALOR) Else GVQuery1 = "" GVQuery1 = " SELECT TT from BdAlmacenDatos..TB_CARGO WHERE SECUENCIAL = '" & RsSer!C & "'" Set RS4 = GrdsF_Recupera_Datos(GVQuery1) If (RS4.RecordCount > 0) And (RS4!TT = 2) Then 'COMPARARR SI EL CARGO ES MEDIO TIEMPO GVQuery1 = "" GVQuery1 = " SELECT RESOLUCION FROM TB_ANUAL WHERE DATOS_PERSONAL = '" & Trim(RsSer!DP) & "' " GVQuery1 = GVQuery1 & " AND UNIDAD = '" & Trim(RsSer!U) & "' " GVQuery1 = GVQuery1 & " AND ANIO = '" & Trim(TxtAños.Text) & "' " GVQuery1 = GVQuery1 & " AND MES = '" & Me.CbbM.ItemData(Me.CbbM.ListIndex) & "' " Set RS4 = GrdsF_Recupera_Datos(GVQuery1) If RS4.RecordCount > 0 And (Val(RS4!RESOLUCION) > 0) Then

Page 317: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

317

VALOR1 = Trim(RS2!POSIBLE_VALOR) Else VALOR1 = 0 End If Else VALOR1 = Trim(RS2!POSIBLE_VALOR) RS4.Close End If End If End Select Case "Q" GVQuery1 = " " GVQuery1 = "SELECT DESCRIPCION FROM QUERYS_TABLAS WHERE ID_Q ='" & Trim(RS2!Orientacion) & "'" Set RS3 = GrdsF_Recupera_Datos(GVQuery1) If RS3.RecordCount > 0 Then GVQuery1 = " " GVQuery1 = " " & Trim(RS3!DESCRIPCION) & " " Select Case indice Case 5001 GVQuery1 = GVQuery1 & " 'M' AND DATOS_PERSONAL = '" & Trim(RsSer!DP) & "' " Set RS4 = GrdsF_Recupera_Datos(GVQuery1) If RS4.RecordCount > 0 Then VALOR1 = Trim(RS4!CANTIDAD) End If RS4.Close Case 5002 GVQuery1 = GVQuery1 & " 'C' AND DATOS_PERSONAL = '" & Trim(RsSer!DP) & "' " Set RS4 = GrdsF_Recupera_Datos(GVQuery1) If RS4.RecordCount > 0 Then If Val(Trim(RS4!CANTIDAD)) <= Val(Trim(RS2!POSIBLE_VALOR)) Then VALOR1 = Val(Trim(RS4!CANTIDAD)) Else VALOR1 = Trim(RS2!POSIBLE_VALOR) End If End If RS4.Close Case 5003 GVQuery1 = GVQuery1 & " WHERE DATOS_PERSONAL = '" & Trim(RsSer!DP) & "' "

Page 318: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

318

GVQuery1 = GVQuery1 & " AND UNIDAD_UNIV = '" & Trim(RsSer!U) & "' " ' AND STATUS_ROL = 'S'" If Me.CbbM.ItemData(Me.CbbM.ListIndex) > 10 Then GVQuery1 = GVQuery1 & " AND ANIO = '" & Trim(TxtAños.Text) & "' AND MES = '" & Me.CbbM.ItemData(Me.CbbM.ListIndex) & "' " Else GVQuery1 = GVQuery1 & " AND ANIO = '" & Trim(TxtAños.Text) & "' AND MES = '0" & Me.CbbM.ItemData(Me.CbbM.ListIndex) & "' " End If GVQuery1 = GVQuery1 & " AND CAT_CARGO = '" & Trim(RsSer!CACA) & "' " Set RS4 = GrdsF_Recupera_Datos(GVQuery1) If RS4.RecordCount > 0 Then Select Case RS_PROCESO!ITEM Case 330 'Dias de Refrigerio VALOR1 = CStr(Val(Trim(RS4!REFRIGERIO))) Case Else VALOR1 = CStr(Val(Trim(RS4!TRANSPORTE))) 'Case 361 'Dias Transporte ' VALOR1 = CStr(Val(Trim(RS4!TRANSPORTE))) 'Case Else ' VALOR1 = "0" End Select RS4.Close Else VALOR1 = "0" End If Case 5004 GVQuery1 = GVQuery1 & " WHERE DATOS_PERSONAL = '" & Trim(RsSer!DP) & "' " GVQuery1 = GVQuery1 & " AND UNIDAD = '" & Trim(RsSer!U) & "' " GVQuery1 = GVQuery1 & " AND ANIO = '" & Trim(TxtAños.Text) & "' " GVQuery1 = GVQuery1 & " AND MES = '" & Me.CbbM.ItemData(Me.CbbM.ListIndex) & "' " Set RS4 = GrdsF_Recupera_Datos(GVQuery1) If RS4.RecordCount > 0 Then VALOR1 = Trim(RS4!PERCEN_OLD) Else VALOR1 = 0 End If RS4.Close Case 5008 To 5010 GVQuery1 = GVQuery1 & " AND DATOS_PERSONAL = '" & Trim(RsSer!DP) & "' "

Page 319: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

319

GVQuery1 = GVQuery1 & " AND UNIDAD_UNIV = '" & Trim(RsSer!U) & "' " If Me.CbbM.ItemData(Me.CbbM.ListIndex) > 10 Then GVQuery1 = GVQuery1 & " AND ANIO = '" & Trim(TxtAños.Text) & "' AND MES = '" & Me.CbbM.ItemData(Me.CbbM.ListIndex) & "' " Else GVQuery1 = GVQuery1 & " AND ANIO = '" & Trim(TxtAños.Text) & "' AND MES = '0" & Me.CbbM.ItemData(Me.CbbM.ListIndex) & "' " End If Set RS4 = GrdsF_Recupera_Datos(GVQuery1) If RS4.RecordCount > 0 Then Select Case indice Case 5008 VALOR1 = Trim(RS4!EXTRA_25) Case 5009 VALOR1 = Trim(RS4!EXTRA_50) Case 5010 VALOR1 = Trim(RS4!EXTRA_100) End Select RS4.Close For X = 1 To Len(VALOR1) If Asc(Mid(VALOR1, X, 1)) = 58 Then Exit For End If Next X If (Val(Mid(Trim(VALOR1), 1, X - 1)) > 0) Or (Val(Mid(Trim(VALOR1), X + 1, Len(Trim(VALOR1))))) Then VALOR1 = Format(Val(Mid(Trim(VALOR1), 1, X - 1)) + Val((Mid(Trim(VALOR1), X + 1, Len(Trim(VALOR1)))) / 60), ".00") Else VALOR1 = "0" End If Else VALOR1 = 0 End If Case 5011 GVQuery1 = GVQuery1 & " WHERE DATOS_PERSONAL = '" & Trim(RsSer!DP) & "' " GVQuery1 = GVQuery1 & " AND TIPER = '" & Trim(RsSer!CACA) & "' " GVQuery1 = GVQuery1 & " AND MES = '" & Me.CbbM.ItemData(Me.CbbM.ListIndex) & "' " GVQuery1 = GVQuery1 & " AND QUINCENA = '" & Me.CbbQ.ItemData(Me.CbbQ.ListIndex) & "'" GVQuery1 = GVQuery1 & " AND ANIO = '" & Trim(TxtAños.Text) & "' "

Page 320: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

320

Set RS4 = GrdsF_Recupera_Datos(GVQuery1) If RS4.RecordCount > 0 Then If Not IsNull(RS4!ANIOSER) Then If Val(Trim(RS4!ANIOSER)) Mod 5 = 0 Then 'EXTARER DEL MES ANTERIOR GVQuery1 = "" GVQuery1 = "SELECT ANIOSER FROM TB_ANUAL" GVQuery1 = GVQuery1 & " WHERE DATOS_PERSONAL = '" & Trim(RsSer!DP) & "' " GVQuery1 = GVQuery1 & " AND TIPER = '" & Trim(RsSer!CACA) & "' " GVQuery1 = GVQuery1 & " AND MES = '" & Me.CbbM.ItemData(Me.CbbM.ListIndex) - 1 & "' " GVQuery1 = GVQuery1 & " AND QUINCENA = '" & Me.CbbQ.ItemData(Me.CbbQ.ListIndex) & "'" GVQuery1 = GVQuery1 & " AND ANIO = '" & Trim(TxtAños.Text) & "' " Set RS2 = GrdsF_Recupera_Datos(GVQuery1) If RS2.RecordCount > 0 Then If (Not IsNull(RS2!ANIOSER)) And Val(RS2!ANIOSER) >= 5 And Val(RS2!ANIOSER) <= 40 Then If Val(RS2!ANIOSER) = Val(Trim(RS4!ANIOSER)) Then VALOR1 = "0" Else If Val(Trim(RS4!ANIOSER)) = 40 Then ' cuando es 40 se considera solo 35 años de servicio para este rubro VALOR1 = 35 Else VALOR1 = Val(Trim(RS4!ANIOSER)) End If End If Else VALOR1 = "0" End If End If Else VALOR1 = "0" End If Else VALOR1 = "0" End If Else VALOR1 = "0" End If

Page 321: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

321

RS4.Close Case 5012 'Horas Faltas GVQuery1 = GVQuery1 & " WHERE DATOS_PERSONAL = '" & Trim(RsSer!DP) & "' " GVQuery1 = GVQuery1 & " AND CAT_CARGO = '" & Trim(RsSer!CACA) & "' " GVQuery1 = GVQuery1 & " AND UNIDAD_UNIV = '" & Trim(RsSer!U) & "' " If Me.CbbM.ItemData(Me.CbbM.ListIndex) > 10 Then GVQuery1 = GVQuery1 & " AND ANIO = '" & Trim(TxtAños.Text) & "' AND MES = '" & Me.CbbM.ItemData(Me.CbbM.ListIndex) & "' " Else GVQuery1 = GVQuery1 & " AND ANIO = '" & Trim(TxtAños.Text) & "' AND MES = '0" & Me.CbbM.ItemData(Me.CbbM.ListIndex) & "' " End If 'GVQuery1 = GVQuery1 & " AND MES = '" & Me.CbbM.ItemData(Me.CbbM.ListIndex) & "' " 'GVQuery1 = GVQuery1 & " AND '" & Format(FH, "YYYY/MM/DD") & "' BETWEEN FECHA_INICIO AND FECHA_FIN " Set RS4 = GrdsF_Recupera_Datos(GVQuery1) If RS4.RecordCount > 0 Then 'VALOR1 = Format(CStr(Val(Mid(RS4!ATRASO, 3, 2)) / 60), ".00") VALOR1 = Format(CStr(Val(Mid(RS4!ATRASO, Len(Trim(RS4!ATRASO)) - 1, 2)) / 60), ".00") VALOR1 = Format(CStr(Val(VALOR1) + Val(Mid(RS4!ATRASO, 1, Len(Trim(RS4!ATRASO)) - 3))), ".00") Else VALOR1 = "0" End If RS4.Close Case 5013 GVQuery1 = GVQuery1 & " WHERE DATOS_PERSONAL = '" & Trim(RsSer!DP) & "' " GVQuery1 = GVQuery1 & " AND TIPER = '" & Trim(RsSer!CACA) & "' " GVQuery1 = GVQuery1 & " AND UNIDAD = '" & Trim(RsSer!U) & "' " GVQuery1 = GVQuery1 & " AND ANIO = '" & Trim(TxtAños.Text) & "' " GVQuery1 = GVQuery1 & " AND MES = '" & Me.CbbM.ItemData(Me.CbbM.ListIndex) & "' " Set RS4 = GrdsF_Recupera_Datos(GVQuery1) If RS4.RecordCount > 0 Then VALOR1 = Trim(RS4!SUB_RROGA) Else VALOR1 = "0" End If

Page 322: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

322

RS4.Close Case 5014 'SUBSIDIO EDUCACIONAL If Me.CbbM.ItemData(Me.CbbM.ListIndex) = 4 Or Me.CbbM.ItemData(Me.CbbM.ListIndex) = 6 Or Me.CbbM.ItemData(Me.CbbM.ListIndex) = 11 Then If Me.CbbM.ItemData(Me.CbbM.ListIndex) = 4 Then VALOR1 = 6 'PARA EL MES DE ABRIL SE PAGA UN UNICO VALOR DE 6 DOLARES Else GVQuery1 = GVQuery1 & " 'E' AND DATOS_PERSONAL = '" & Trim(RsSer!DP) & "' " Set RS4 = GrdsF_Recupera_Datos(GVQuery1) If RS4.RecordCount > 0 Then VALOR1 = (RS4!CANTIDAD) Else VALOR1 = 0 End If RS4.Close End If End If Case 5017 GVQuery1 = GVQuery1 & " WHERE ID_PERSONAL = '" & Trim(RsSer!DP) & "' " 'GVQuery1 = GVQuery1 & " AND FACULTAD = '" & Trim(RsSer!U) & "' " GVQuery1 = GVQuery1 & " AND TIPER = '" & Trim(RsSer!CACA) & "' " GVQuery1 = GVQuery1 & " AND MES = '" & Me.CbbM.ItemData(Me.CbbM.ListIndex) & "' " GVQuery1 = GVQuery1 & " AND QUINCENA = '" & Me.CbbQ.ItemData(Me.CbbQ.ListIndex) & "'" GVQuery1 = GVQuery1 & " AND ANIO = '" & Trim(TxtAños.Text) & "' " GVQuery1 = GVQuery1 & " AND TIPASO = (SELECT DISTINCT GREMIO FROM TB_DSCTO_GREMIO WHERE ID_RELACION ='" & Trim(RS_PROCESO!ITEM) & "' )" Set RS4 = GrdsF_Recupera_Datos(GVQuery1) If RS4.RecordCount > 0 Then If Val(Trim(RS4!DTOTAL)) > 0 Then VALOR1 = Trim(RS4!DTOTAL) Else VALOR1 = "0" End If Else VALOR1 = "0" End If

Page 323: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

323

RS4.Close Case 5018 GVQuery1 = GVQuery1 & " WHERE DATOS_PERSONAL = '" & Trim(RsSer!DP) & "' " GVQuery1 = GVQuery1 & " AND TIPER = '" & Trim(RsSer!CACA) & "' " GVQuery1 = GVQuery1 & " AND UNIDAD = '" & Trim(RsSer!U) & "' " GVQuery1 = GVQuery1 & " AND ANIO = '" & Trim(TxtAños.Text) & "' " If Me.CbbM.ItemData(Me.CbbM.ListIndex) = 1 Then GVQuery1 = GVQuery1 & " AND MES = '" & Me.CbbM.ItemData(Me.CbbM.ListIndex) & "' " Else GVQuery1 = GVQuery1 & " AND MES = '" & Me.CbbM.ItemData(Me.CbbM.ListIndex) - 1 & "' " End If Set RS4 = GrdsF_Recupera_Datos(GVQuery1) If RS4.RecordCount > 0 Then VALOR1 = Val(Trim(RS4!SUELDO)) + Val(Trim(RS4!COMP)) Else VALOR1 = "0" End If RS4.Close Case 5019 'Calculo Complementaria GVQuery1 = GVQuery1 & " WHERE DATOS_PERSONAL = '" & Trim(RsSer!DP) & "' " GVQuery1 = GVQuery1 & " AND TIPER = '" & Trim(RsSer!CACA) & "' " GVQuery1 = GVQuery1 & " AND UNIDAD = '" & Trim(RsSer!U) & "' " GVQuery1 = GVQuery1 & " AND ANIO = '" & Trim(TxtAños.Text) & "' " GVQuery1 = GVQuery1 & " AND MES = '" & Me.CbbM.ItemData(Me.CbbM.ListIndex) & "' " Set RS4 = GrdsF_Recupera_Datos(GVQuery1) If RS4.RecordCount > 0 Then Select Case Trim(RsSer!CACA) Case 1 'Docente VALOR1 = Format((Val(Trim(RS4!SUELDO)) + Val(Trim(RS4!SUB_RROGA))) * Val(Trim(RS4!PERCEN_OLD)), ".00") Case 2 VALOR1 = " " VALOR1 = Format((Val(Trim(RS4!SUELDO)) + Val(Trim(RS4!SUB_RROGA)) + Val(Trim(RS4!RESOLUCION))) * Val(Trim(RS4!PERCEN_OLD)), ".00") Case Else VALOR1 = "0" End Select Else

Page 324: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

324

VALOR1 = "0" End If RS4.Close Case 5024 Select Case RsSer!CACA Case 1 GVQuery1 = GVQuery1 & " WHERE SECUENCIAL = '" & Trim(RsSer!C) & "' " Set RS4 = GrdsF_Recupera_Datos(GVQuery1) If RS4.RecordCount > 0 Then VALOR1 = Trim(RS4!CANTIDAD_HRS) Else VALOR1 = "0" End If RS4.Close Case 2 VALOR1 = Trim(RS2!POSIBLE_VALOR) Case Else End Select Case 5025 'sOLO sLDO revizar esta cosa GVQuery1 = GVQuery1 & " WHERE DATOS_PERSONAL = '" & Trim(RsSer!DP) & "' " GVQuery1 = GVQuery1 & " AND TIPER = '" & Trim(RsSer!CACA) & "' " GVQuery1 = GVQuery1 & " AND UNIDAD = '" & Trim(RsSer!U) & "' " GVQuery1 = GVQuery1 & " AND ANIO = '" & Trim(TxtAños.Text) & "' " GVQuery1 = GVQuery1 & " AND MES = '" & Me.CbbM.ItemData(Me.CbbM.ListIndex) & "' " If Me.CbbM.ItemData(Me.CbbM.ListIndex) = 1 Then Set RS4 = GrdsF_Recupera_Datos(GVQuery1) If RS4.RecordCount > 0 Then VALOR1 = Trim(RS4!SUELDO) Else VALOR1 = "0" End If RS4.Close Else VALOR1 = "0" End If Case 5026 'sOLO sLDO GVQuery1 = GVQuery1 & " WHERE DATOS_PERSONAL = '" & Trim(RsSer!DP) & "' " GVQuery1 = GVQuery1 & " AND UNIDAD = '" & Trim(RsSer!U) & "' " GVQuery1 = GVQuery1 & " AND ANIO = '" & Trim(TxtAños.Text) & "' "

Page 325: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

325

GVQuery1 = GVQuery1 & " AND MES = '" & Me.CbbM.ItemData(Me.CbbM.ListIndex) & "' " If Me.CbbM.ItemData(Me.CbbM.ListIndex) = 2 Then Set RS4 = GrdsF_Recupera_Datos(GVQuery1) If RS4.RecordCount > 0 Then VALOR1 = Trim(RS4!T_I) 'SI EL PROFESOR NO ES ADSCRITO Else VALOR1 = "0" End If RS4.Close Else VALOR1 = "0" End If Case 5029 'Rubros de Vacaciones GVQuery1 = GVQuery1 & " WHERE DATOS_PERSONAL = '" & Trim(RsSer!DP) & "' " GVQuery1 = GVQuery1 & " AND TIPER = '" & Trim(RsSer!CACA) & "' " GVQuery1 = GVQuery1 & " AND UNIDAD = '" & Trim(RsSer!U) & "' " GVQuery1 = GVQuery1 & " AND ANIO = '" & Trim(TxtAños.Text) & "' " GVQuery1 = GVQuery1 & " AND MES = '" & Me.CbbM.ItemData(Me.CbbM.ListIndex) & "' " ' If Me.CbbM.ItemData(Me.CbbM.ListIndex) = 1 Then Set RS4 = GrdsF_Recupera_Datos(GVQuery1) If RS4.RecordCount > 0 Then GVQuery = " " 'GVQuery = "SELECT MVACA FROM TB_MOVFECHA WHERE DATOS_PERSONAL = '" & Trim(RsSer!DP) & "' AND TIPER = '" & Trim(RsSer!CACA) & "' AND FF = '" & Format("01/01/1900", "YYYY/MM/DD") & "' " GVQuery = "SELECT DISTINCT MVACA FROM TB_MOVFECHA WHERE DATOS_PERSONAL = '" & Trim(RsSer!DP) & "' AND TIPER = '" & Trim(RsSer!CACA) & "' AND ID_SEC = (SELECT MAX(ID_SEC) FROM TB_MOVFECHA WHERE DATOS_PERSONAL = '" & Trim(RsSer!DP) & "' ) " Set RS2 = GrdsF_Recupera_Datos(GVQuery) If RS2.RecordCount > 0 Then If Val(RS2!MVACA) = Me.CbbM.ItemData(Me.CbbM.ListIndex) Then VALOR1 = Format((Val(Trim(RS4!SUELDO)) + Val(Trim(RS4!SUB_RROGA)) + Val(Trim(RS4!RESOLUCION))), ".00") Else VALOR1 = "0" End If Else VALOR1 = "0" End If

Page 326: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

326

Else VALOR1 = "0" End If RS4.Close Case 5030 'sOLO sLDO GVQuery1 = GVQuery1 & " WHERE DATOS_PERSONAL = '" & Trim(RsSer!DP) & "' " GVQuery1 = GVQuery1 & " AND TIPER = '" & Trim(RsSer!CACA) & "' " GVQuery1 = GVQuery1 & " AND UNIDAD = '" & Trim(RsSer!U) & "' " GVQuery1 = GVQuery1 & " AND ANIO = '" & Trim(TxtAños.Text) & "' " GVQuery1 = GVQuery1 & " AND MES = '" & Me.CbbM.ItemData(Me.CbbM.ListIndex) & "' " Set RS4 = GrdsF_Recupera_Datos(GVQuery1) If RS4.RecordCount > 0 Then VALOR1 = Format(Trim(RS4!SUELDO), ".00") Else VALOR1 = "0" End If RS4.Close Case 5031 GVQuery1 = GVQuery1 & " WHERE ID_PERSONAL = '" & Trim(RsSer!DP) & "' " GVQuery1 = GVQuery1 & " AND TIPER = '" & Trim(RsSer!CACA) & "' " GVQuery1 = GVQuery1 & " AND MES = '" & Me.CbbM.ItemData(Me.CbbM.ListIndex) & "' " GVQuery1 = GVQuery1 & " AND QUINCENA = '" & Me.CbbQ.ItemData(Me.CbbQ.ListIndex) & "'" GVQuery1 = GVQuery1 & " AND ANIO = '" & Trim(TxtAños.Text) & "' " GVQuery1 = GVQuery1 & " AND TIPASO = (SELECT DISTINCT GREMIO FROM TB_DSCTO_GREMIO WHERE ID_RELACION ='" & Trim(RS_PROCESO!ITEM) & "' )" Set RS4 = GrdsF_Recupera_Datos(GVQuery1) If RS4.RecordCount > 0 Then If Val(Trim(RS4!AYUD)) > 0 Then VALOR1 = Trim(RS4!AYUD) Else VALOR1 = "0" End If Else VALOR1 = "0" End If RS4.Close Case 5032

Page 327: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

327

GVQuery1 = GVQuery1 & " WHERE ID_PERSONAL = '" & Trim(RsSer!DP) & "' " 'GVQuery1 = GVQuery1 & " AND FACULTAD = '" & Trim(RsSer!U) & "' " GVQuery1 = GVQuery1 & " AND TIPER = '" & Trim(RsSer!CACA) & "' " GVQuery1 = GVQuery1 & " AND MES = '" & Me.CbbM.ItemData(Me.CbbM.ListIndex) & "' " GVQuery1 = GVQuery1 & " AND QUINCENA = '" & Me.CbbQ.ItemData(Me.CbbQ.ListIndex) & "'" GVQuery1 = GVQuery1 & " AND ANIO = '" & Trim(TxtAños.Text) & "' " GVQuery1 = GVQuery1 & " AND TIPASO = (SELECT DISTINCT GREMIO FROM TB_DSCTO_GREMIO WHERE ID_RELACION ='" & Trim(RS_PROCESO!ITEM) & "' )" Set RS4 = GrdsF_Recupera_Datos(GVQuery1) If RS4.RecordCount > 0 Then If Val(Trim(RS4!AHOR)) > 0 Then VALOR1 = Trim(RS4!AHOR) Else VALOR1 = "0" End If Else VALOR1 = "0" End If RS4.Close Case 5033 GVQuery1 = GVQuery1 & " WHERE DATOS_PERSONAL = '" & Trim(RsSer!DP) & "' " GVQuery1 = GVQuery1 & " AND UNIDAD = '" & Trim(RsSer!U) & "' " GVQuery1 = GVQuery1 & " AND RUBRO = '" & RS_PROCESO!RU & "' AND ESTADO ='1' " Set RS4 = GrdsF_Recupera_Datos(GVQuery1) If RS4.RecordCount > 0 Then If Val(Trim(RS4!VALOR)) > 0 Then VALOR1 = Trim(RS4!VALOR) Else VALOR1 = "0" End If Else VALOR1 = "0" End If RS4.Close Case 5034 GVQuery1 = GVQuery1 & " WHERE ID_PERSONAL = '" & Trim(RsSer!DP) & "' " GVQuery1 = GVQuery1 & " AND TIPER = '" & Trim(RsSer!CACA) & "' "

Page 328: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

328

GVQuery1 = GVQuery1 & " AND MES = '" & Me.CbbM.ItemData(Me.CbbM.ListIndex) & "' " GVQuery1 = GVQuery1 & " AND QUINCENA = '" & Me.CbbQ.ItemData(Me.CbbQ.ListIndex) & "'" GVQuery1 = GVQuery1 & " AND ANIO = '" & Trim(TxtAños.Text) & "' " GVQuery1 = GVQuery1 & " AND TIPASO = (SELECT DISTINCT GREMIO FROM TB_DSCTO_GREMIO WHERE ID_RELACION ='" & Trim(RS_PROCESO!ITEM) & "' )" Set RS4 = GrdsF_Recupera_Datos(GVQuery1) If RS4.RecordCount > 0 Then If Val(Trim(RS4!CUOT)) > 0 Then VALOR1 = Trim(RS4!CUOT) Else VALOR1 = "0" End If Else VALOR1 = "0" End If RS4.Close Case 5035 GVQuery1 = GVQuery1 & " WHERE DATOS_PERSONAL = '" & Trim(RsSer!DP) & "' " GVQuery1 = GVQuery1 & " AND UNIDAD_UNIV = '" & Trim(RsSer!U) & "' " ' AND STATUS_ROL = 'S'" If Me.CbbM.ItemData(Me.CbbM.ListIndex) > 10 Then GVQuery1 = GVQuery1 & " AND ANIO = '" & Trim(TxtAños.Text) & "' AND MES = '" & Me.CbbM.ItemData(Me.CbbM.ListIndex) & "' " Else GVQuery1 = GVQuery1 & " AND ANIO = '" & Trim(TxtAños.Text) & "' AND MES = '0" & Me.CbbM.ItemData(Me.CbbM.ListIndex) & "' " End If GVQuery1 = GVQuery1 & " AND CAT_CARGO = '" & Trim(RsSer!CACA) & "' " Set RS4 = GrdsF_Recupera_Datos(GVQuery1) If RS4.RecordCount > 0 Then VALOR1 = CStr(Val(Trim(RS4!MULTAS))) Else VALOR1 = "0" End If RS4.Close End Select SEMAFORO = "VERDE" Else VALOR1 = "0"

Page 329: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

329

Exit Sub End If End Select End If End Sub Private Sub FORMAR_CADENA() Dim TAMAÑO, I As Integer var = "" var1 = "" TAMAÑO = Len(Trim(FORMID)) For I = 0 To TAMAÑO If (MATRIZ_UNIDADES(I) = "") Then Exit For End If var = MATRIZ_UNIDADES(I) If I >= 0 Then If var1 <> "" Then var1 = var1 & var Else var1 = var End If End If Next I If (Asc(Mid(var1, Len(var1), 1)) = 37) Or (Asc(Mid(var1, Len(var1), 1)) = 42) Or (Asc(Mid(var1, Len(var1), 1)) = 43) Or (Asc(Mid(var1, Len(var1), 1)) = 45) Or (Asc(Mid(var1, Len(var1), 1)) = 47) Then varvalor = Mid(var1, 1, Len(var1) - 1) Else varvalor = var1 End If End Sub Private Sub VALOR_NUMERO() GVQuery = "SELECT dbo.VALOR_FORMULA(" & varvalor & ")" Set RS2 = GrdsF_Recupera_Datos(GVQuery) If RS2.RecordCount > 0 Then varvalor = RS2.Fields(0) Else varvalor = "0" End If DINER = varvalor

Page 330: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

330

End Sub CREATE FUNCTION VALOR_FORMULA(@CADENA AS DECIMAL (10,3)) RETURNS DECIMAL(10,3) AS BEGIN RETURN(@CADENA) END Private Sub UpdateTI() If BanDscto = False Then GVQuery = " " Select Case Val(RS_PROCESO!TR) Case 2 GVQuery = " SELECT TI AS TOL FROM TB_ANUAL " Case 3 GVQuery = " SELECT TI65 TOL FROM TB_ANUAL " End Select GVQuery = GVQuery & " WHERE MES = '" & Me.CbbM.ItemData(Me.CbbM.ListIndex) & "'" 'GVQuery = GVQuery & " AND QUINCENA = '" & Me.CbbQ.ItemData(Me.CbbQ.ListIndex) & "'" GVQuery = GVQuery & " AND ANIO = '" & Me.TxtAños & "' " GVQuery = GVQuery & " AND DATOS_PERSONAL = '" & RsSer!DP & "' " GVQuery = GVQuery & " AND UNIDAD = '" & RsSer!U & "' " Set RS_RUBRO = GrdsF_Recupera_Datos(GVQuery) If RS_RUBRO.RecordCount > 0 And Val(Trim(RS_RUBRO!TOL)) > 0 Then VALTI = Val(Trim(RS_RUBRO!TOL)) - Val(DINER) If Val(VALTI) <= 0 Then If Val(DINER) <= 0 Then SOBREGIROS Else DINER = Val(Trim(RS_RUBRO!TOL)) End If VALTI = "0.00" End If Else VALTI = "0" DINER = "0.00" End If Else VALTI = "0" End If GVQuery = " "

Page 331: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

331

GVQuery = " SP_UPDATE_ANUAL " GVQuery = GVQuery & "'" & TipoUV & "', " GVQuery = GVQuery & " '" & RsSer!DP & "' ," GVQuery = GVQuery & " '" & RsSer!CACA & "'," GVQuery = GVQuery & " '" & Trim(Me.TxtAños) & "' ," GVQuery = GVQuery & " '" & Me.CbbM.ItemData(Me.CbbM.ListIndex) & "', " GVQuery = GVQuery & " '" & Me.CbbQ.ItemData(Me.CbbQ.ListIndex) & "', " GVQuery = GVQuery & " '" & Me.CbbCC.ItemData(Me.CbbCC.ListIndex) & "', " GVQuery = GVQuery & " '" & VALTI & "' " GrdsF_Recupera_Datos (GVQuery) End Sub CREATE PROCEDURE SP_UPDATE_ANUAL( @TIPO AS CHAR(2), @DATOS_PERSONAL AS varchar(20), @TIPER AS int, @ANIO AS char(4), @MES AS int, @QUINCENA AS int, @PROCESO AS int, @VALOR AS char(10)) AS BEGIN TRANSACTION DECLARE @DP AS VARCHAR(20) , @VD AS CHAR(10) , @S AS CHAR(10), @PO AS CHAR(10), @VSA AS CHAR(10), @ACTUAL AS CHAR(10) , @SOBRANTE AS CHAR(10) DECLARE @TPA AS INT, @TIP AS INT, @CRN AS INT

IF @TIPO = 'ST' BEGIN UPDATE TB_ANUAL SET TI = @VALOR WHERE DATOS_PERSONAL = @DATOS_PERSONAL AND TIPER = @TIPER AND ANIO = @ANIO AND MES = @MES AND QUINCENA = @QUINCENA IF (@@ERROR <> 0) BEGIN ROLLBACK TRANSACTION

Page 332: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

332

RETURN(99) END END IF @TIPO = 'UD' BEGIN UPDATE TB_ANUAL SET TI65 = CONVERT(NUMERIC(9,2),@VALOR) WHERE DATOS_PERSONAL = @DATOS_PERSONAL AND TIPER = @TIPER AND ANIO = @ANIO AND MES = @MES AND QUINCENA = @QUINCENA IF (@@ERROR <> 0) BEGIN ROLLBACK TRANSACTION RETURN(99) END END IF @TIPO = 'UI' BEGIN --CURSOR QUE EXTRAE LOS DATOS DE LAS PERSONAS DECLARE UPDATETI CURSOR LOCAL FOR SELECT DATOS_PERSONAL FROM TB_ANUAL WHERE TIPER = @TIPER AND ANIO = @ANIO AND MES = @MES AND QUINCENA = @QUINCENA OPEN UPDATETI FETCH NEXT FROM UPDATETI INTO @DP WHILE @@FETCH_STATUS = 0 BEGIN IF @PROCESO = 1 BEGIN UPDATE TB_ANUAL SET TI = (SELECT CONVERT(NUMERIC(9,2), SUELDO) + CONVERT(NUMERIC(9,2), COMPLEM_)+ CONVERT(NUMERIC(9,2), S__COMIS_)+ CONVERT(NUMERIC(9,2), S__FAMI_)+ CONVERT(NUMERIC(9,2), FUNCIONAL)+ CONVERT(NUMERIC(9,2), S__VACAC_)+ CONVERT(NUMERIC(9,2), G__REPR) + CONVERT(NUMERIC(9,2), BONIFRES) + CONVERT(NUMERIC(9,2), AÑO_SERV) + CONVERT(NUMERIC(9,2), H__EXTRAS) + CONVERT(NUMERIC(9,2), S__REFR_)+

Page 333: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

333

CONVERT(NUMERIC(9,2), MOVILIZACION) + CONVERT(NUMERIC(9,2), SBR__SLDO)+ CONVERT(NUMERIC(9,2), BBCO_) FROM PQA WHERE ANIO = @ANIO AND MES = @MES AND DATOS_PERSONAL = @DP ) WHERE DATOS_PERSONAL = @DP AND TIPER = @TIPER AND ANIO = @ANIO AND MES = @MES AND QUINCENA = @QUINCENA END --ELSE IF @PROCESO = 2 FETCH NEXT FROM UPDATETI INTO @DP END CLOSE UPDATETI DEALLOCATE UPDATETI IF (@@ERROR <> 0) BEGIN ROLLBACK TRANSACTION RETURN(99) END END IF @TIPO = 'UT' BEGIN --CURSOR QUE EXTRAE LOS DATOS DE LAS PERSONAS DECLARE UPDATETI CURSOR LOCAL FOR SELECT DATOS_PERSONAL FROM TB_ANUAL WHERE TIPER = @TIPER AND ANIO = @ANIO AND MES = @MES AND QUINCENA = @QUINCENA OPEN UPDATETI FETCH NEXT FROM UPDATETI INTO @DP WHILE @@FETCH_STATUS = 0 BEGIN UPDATE TB_ANUAL SET TI35 =CONVERT(NUMERIC(9,2), CONVERT(NUMERIC(9,2),(SELECT TI FROM TB_ANUAL WHERE DATOS_PERSONAL = @DP AND TIPER = @TIPER AND ANIO = @ANIO AND MES = @MES AND QUINCENA = @QUINCENA) )*0.35) , TI65 =CONVERT(NUMERIC(9,2), CONVERT(NUMERIC(9,2),(SELECT TI FROM TB_ANUAL WHERE

Page 334: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

334

DATOS_PERSONAL = @DP AND TIPER = @TIPER AND ANIO = @ANIO AND MES = @MES AND QUINCENA = @QUINCENA) )*0.65) WHERE DATOS_PERSONAL = @DP AND TIPER = @TIPER AND ANIO = @ANIO AND MES = @MES AND QUINCENA = @QUINCENA FETCH NEXT FROM UPDATETI INTO @DP END CLOSE UPDATETI DEALLOCATE UPDATETI IF (@@ERROR <> 0) BEGIN ROLLBACK TRANSACTION RETURN(99) END END IF @TIPO = 'UA' BEGIN DECLARE AYUDA CURSOR LOCAL FOR SELECT TIPASO, VALDSCTO, TIPER FROM TB_AYUDAGREMIO WHERE TIPER = @TIPER AND ANIO = @ANIO AND MES = @MES OPEN AYUDA FETCH NEXT FROM AYUDA INTO @TPA, @VD, @TIP WHILE @@FETCH_STATUS = 0 BEGIN --AYUDAS DE LOS GREMIOS UPDATE DESCUENTO_PERSONAL SET AYUDA = CONVERT(DECIMAL(9,2),@VD ) --AYUDA = @VD WHERE TIPER = @TIP AND ANIO = @ANIO AND MES = @MES AND PG ='1' AND TIPASO = @TPA

Page 335: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

335

FETCH NEXT FROM AYUDA INTO @TPA, @VD, @TIP END CLOSE AYUDA DEALLOCATE AYUDA IF (@@ERROR <> 0) BEGIN ROLLBACK TRANSACTION RETURN(99) END END IF @TIPO = 'CT' BEGIN --CURSOR QUE EXTRAE LOS DATOS DE LAS PERSONAS DECLARE UPDATETI CURSOR LOCAL FOR SELECT DATOS_PERSONAL FROM TB_ANUAL WHERE TIPER = @TIPER AND ANIO = @ANIO AND MES = @MES AND QUINCENA = @QUINCENA OPEN UPDATETI FETCH NEXT FROM UPDATETI INTO @DP WHILE @@FETCH_STATUS = 0 BEGIN IF @PROCESO = 1 BEGIN UPDATE PQA SET T_I_ = (SELECT CONVERT(NUMERIC(9,2), SUELDO) + CONVERT(NUMERIC(9,2), COMPLEM_)+ CONVERT(NUMERIC(9,2), S__COMIS_)+ CONVERT(NUMERIC(9,2), S__FAMI_)+ CONVERT(NUMERIC(9,2), FUNCIONAL)+ CONVERT(NUMERIC(9,2), S__VACAC_)+ CONVERT(NUMERIC(9,2), G__REPR) + CONVERT(NUMERIC(9,2), BONIFRES) + CONVERT(NUMERIC(9,2), AÑO_SERV) + CONVERT(NUMERIC(9,2), H__EXTRAS) + CONVERT(NUMERIC(9,2), S__REFR_)+ CONVERT(NUMERIC(9,2), MOVILIZACION) + CONVERT(NUMERIC(9,2), SBR__SLDO)+ CONVERT(NUMERIC(9,2), BBCO_) FROM PQA WHERE ANIO = @ANIO AND MES = @MES AND DATOS_PERSONAL = @DP ), --DESCTOS DE LEY

Page 336: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

336

D_L_ = (SELECT CONVERT(NUMERIC(9,2), T_MENOR) + CONVERT(NUMERIC(9,2), ANTICIPO)+ CONVERT(NUMERIC(9,2), MULTAS)+ CONVERT(NUMERIC(9,2), REVISTA)+ CONVERT(NUMERIC(9,2), VAL_H_FTA)+ CONVERT(NUMERIC(9,2), GTOBANCO)+ CONVERT(NUMERIC(9,2), HOSPITAL) FROM PQA WHERE ANIO = @ANIO AND MES = @MES AND DATOS_PERSONAL = @DP ), --OTROS DESCUENTOS O_D_ = (SELECT CONVERT(NUMERIC(9,2), AEAUG) + CONVERT(NUMERIC(9,2), AYUD_AEAUG)+ CONVERT(NUMERIC(9,2), CUOT_AEAUG)+ CONVERT(NUMERIC(9,2), AHOR_AEAUG)+ CONVERT(NUMERIC(9,2), IMPRENTA)+ CONVERT(NUMERIC(9,2), COOPERAT)+ CONVERT(NUMERIC(9,2), ASOC_FAC)+ CONVERT(NUMERIC(9,2), LIBRERIA) + CONVERT(NUMERIC(9,2), ASSUG) + CONVERT(NUMERIC(9,2), AYUD_ASSUG) + CONVERT(NUMERIC(9,2), CUOT_ASSUG)+ CONVERT(NUMERIC(9,2), AHOR_ASSUG) + CONVERT(NUMERIC(9,2), CHOFERES)+ CONVERT(NUMERIC(9,2), AYUD_COOP) + CONVERT(NUMERIC(9,2), OT_DCT)+ CONVERT(NUMERIC(9,2), SUTUG) + CONVERT(NUMERIC(9,2), CUOT_SUTUG) + CONVERT(NUMERIC(9,2), CAMPUS) +CONVERT(NUMERIC(9,2), AYUD_SUTUG) + CONVERT(NUMERIC(9,2), INSTITUTO) + CONVERT(NUMERIC(9,2), AHOR_COOP) + CONVERT(NUMERIC(9,2), FARMACIA) + CONVERT(NUMERIC(9,2), VETERINA) FROM PQA WHERE ANIO = @ANIO AND MES = @MES AND DATOS_PERSONAL = @DP ) WHERE DATOS_PERSONAL = @DP AND ANIO = @ANIO AND MES = @MES AND QUINCENA = @QUINCENA --LIQUIDO A COBRAR UPDATE PQA SET LIQUIDO = (SELECT CONVERT(NUMERIC(9,2), T_I_) - ( CONVERT(NUMERIC(9,2), D_L_)+ CONVERT(NUMERIC(9,2), O_D_)) FROM PQA WHERE ANIO = @ANIO AND MES = @MES AND DATOS_PERSONAL = @DP ) WHERE DATOS_PERSONAL = @DP AND ANIO = @ANIO AND MES = @MES AND QUINCENA = @QUINCENA END IF @PROCESO = 4 BEGIN

Page 337: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

337

UPDATE PN SET T_I_ = (SELECT CONVERT(NUMERIC(9,2), SUELDO) + CONVERT(NUMERIC(9,2), BBCO_) FROM PN WHERE ANIO = @ANIO AND MES = @MES AND DATOS_PERSONAL = @DP ), --DESCTOS DE LEY D_L_ = (SELECT CONVERT(NUMERIC(9,2), GTOBANCO) FROM PN WHERE ANIO = @ANIO AND MES = @MES AND DATOS_PERSONAL = @DP ), --OTROS DESCUENTOS O_D_ = '0.00' --LIQUIDO A COBRAR UPDATE PN SET LIQUIDO = (SELECT CONVERT(NUMERIC(9,2), T_I_) - ( CONVERT(NUMERIC(9,2), D_L_)+ CONVERT(NUMERIC(9,2), O_D_)) FROM PN WHERE ANIO = @ANIO AND MES = @MES AND DATOS_PERSONAL = @DP ) WHERE DATOS_PERSONAL = @DP AND ANIO = @ANIO AND MES = @MES AND QUINCENA = @QUINCENA END --ELSE IF @PROCESO = 2 FETCH NEXT FROM UPDATETI INTO @DP END CLOSE UPDATETI DEALLOCATE UPDATETI IF (@@ERROR <> 0) BEGIN ROLLBACK TRANSACTION RETURN(99) END END IF (@@ERROR <> 0) ROLLBACK TRANSACTION ELSE COMMIT TRANSACTION

Page 338: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

338

GO CREATE PROCEDURE SP_UPDATE_DSCTGREMIO( @TIPO AS CHAR(2), @TIPER AS int, @ANIO AS char(4), @MES AS int, @QUINCENA AS int, @PROCESO AS int) AS BEGIN TRANSACTION DECLARE @DP AS VARCHAR(20) , @VALOR AS char(10) DECLARE @DSCTO AS VARCHAR(20) , @SOBRA AS char(10), @DESCON AS char(10) DECLARE @CANREGN AS int,@CANREG AS int DECLARE @ST AS DECIMAL IF @TIPO = 'UA' BEGIN --OBTENER EL LISTADO DE LAS PERSONAS DECLARE UPDATETI CURSOR LOCAL FOR SELECT DISTINCT DATOS_PERSONAL FROM TB_ANUAL WHERE TIPER = @TIPER AND ANIO = @ANIO AND MES = @MES AND QUINCENA = @QUINCENA OPEN UPDATETI FETCH NEXT FROM UPDATETI INTO @DP WHILE @@FETCH_STATUS = 0 BEGIN --REALIZAMOS PROCESO SI EL EMPLEADO TIENE DESCUENTOS DE IGUALDAD IF (SELECT COUNT(*) FROM TMP_DSCTOGREMIO WHERE DATOS_PERSONAL = @DP) > 0 BEGIN --IDENTIFICA QUE TODOS LOS DESCUENTOS SON NEGATIVOS IF (SELECT COUNT(*) FROM TMP_DSCTOGREMIO WHERE DATOS_PERSONAL = @DP AND EP='N' ) = (SELECT COUNT(*) FROM TMP_DSCTOGREMIO WHERE DATOS_PERSONAL = @DP AND CONVERT(DECIMAL(9,2),SOBRANTE) < 0 ) BEGIN UPDATE TMP_DSCTOGREMIO SET EP ='P' WHERE DATOS_PERSONAL = @DP

Page 339: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

339

AND CONVERT(DECIMAL(9,2),SOBRANTE)< 0 END ELSE --IDENTIFICA QUE TODOS LOS DESCUENTOS SON POSITIVOS IF (SELECT COUNT(*) FROM TMP_DSCTOGREMIO WHERE DATOS_PERSONAL = @DP AND CONVERT(DECIMAL(9,2),SOBRANTE) >= 0 ) = (SELECT COUNT(*) FROM TMP_DSCTOGREMIO WHERE DATOS_PERSONAL = @DP ) BEGIN UPDATE TMP_DSCTOGREMIO SET DESCONTADO = VALOR, EP ='P' WHERE DATOS_PERSONAL = @DP AND CONVERT(DECIMAL(9,2),SOBRANTE)>= 0 END ELSE BEGIN SET @CANREGN =(SELECT COUNT(*) FROM TMP_DSCTOGREMIO WHERE DATOS_PERSONAL = @DP AND CONVERT(DECIMAL(9,2),SOBRANTE) < 0 ) SET @ST = (SELECT SUM(CONVERT(DECIMAL(9,3),SOBRANTE)) FROM TMP_DSCTOGREMIO WHERE CONVERT(DECIMAL(9,2),SOBRANTE) > 0 AND DATOS_PERSONAL = @DP) WHILE @ST >= 0.00 BEGIN IF @CANREGN < = 0 BEGIN SET @CANREGN = 1 END UPDATE TMP_DSCTOGREMIO SET DESCONTADO = CONVERT(DECIMAL(9,2),CONVERT(DECIMAL(9,3),DESCONTADO) + (CONVERT(DECIMAL(9,3), @ST)/@CANREGN)) WHERE DATOS_PERSONAL = @DP AND CONVERT(DECIMAL(9,2),SOBRANTE)< 0 UPDATE TMP_DSCTOGREMIO SET SOBRANTE = 0, DESCONTADO = VALOR, EP ='P'

Page 340: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

340

WHERE DATOS_PERSONAL = @DP AND CONVERT(DECIMAL(9,2),SOBRANTE)> 0 UPDATE TMP_DSCTOGREMIO SET SOBRANTE = CONVERT(DECIMAL(9,2),DESCONTADO) -CONVERT(DECIMAL(9,2),VALOR) WHERE DATOS_PERSONAL = @DP AND CONVERT(DECIMAL(9,2),SOBRANTE)< 0 SET @ST = (SELECT SUM(CONVERT(DECIMAL(9,3),SOBRANTE)) FROM TMP_DSCTOGREMIO WHERE CONVERT(DECIMAL(9,2),SOBRANTE)> 0 AND DATOS_PERSONAL = @DP) SET @CANREGN =(SELECT COUNT(*) FROM TMP_DSCTOGREMIO WHERE DATOS_PERSONAL = @DP AND CONVERT(DECIMAL(9,2),SOBRANTE) < 0 ) END END UPDATE TB_ANUAL SET TI65 = CONVERT(DECIMAL(9,2),(SELECT TI65 FROM TB_ANUAL WHERE DATOS_PERSONAL = @DP AND TIPER = @TIPER AND ANIO = @ANIO AND MES = @MES AND QUINCENA = @QUINCENA )) - CONVERT(DECIMAL(9,2), (SELECT SUM(CONVERT(DECIMAL(9,2), DESCONTADO)) FROM TMP_DSCTOGREMIO WHERE DATOS_PERSONAL = @DP )) WHERE DATOS_PERSONAL = @DP AND TIPER = @TIPER AND ANIO = @ANIO AND MES = @MES AND QUINCENA = @QUINCENA END FETCH NEXT FROM UPDATETI INTO @DP END CLOSE UPDATETI DEALLOCATE UPDATETI EXECUTE SP_UPDATE_PROCESO @TIPO, @TIPER, @ANIO, @MES, @QUINCENA, @PROCESO IF (@@ERROR <> 0) BEGIN ROLLBACK TRANSACTION

Page 341: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

341

RETURN(99) END END IF (@@ERROR <> 0) ROLLBACK TRANSACTION ELSE COMMIT TRANSACTION GO CREATE PROCEDURE SP_UPDATE_PROCESO( @TIPO AS CHAR(2), @TIPER AS int, @ANIO AS char(4), @MES AS char(2), @QUINCENA AS char(1), @PROCESO AS int) AS BEGIN TRANSACTION DECLARE @DP AS VARCHAR(20), @NDSCTO AS VARCHAR(20), @VDSCTO AS CHAR(10), @SOBRANTE AS CHAR(10), @ACTUAL AS CHAR(10) DECLARE @exec1 nvarchar(1024) DECLARE @CRN AS INT IF @TIPO = 'UA' BEGIN --OBTENER EL LISTADO DE LAS PERSONAS DECLARE UPDATETI CURSOR LOCAL FOR SELECT DISTINCT DATOS_PERSONAL FROM TB_ANUAL WHERE TIPER = @TIPER AND ANIO = @ANIO AND MES = convert(int,@MES) AND QUINCENA = convert(int,@QUINCENA) OPEN UPDATETI FETCH NEXT FROM UPDATETI INTO @DP WHILE @@FETCH_STATUS = 0 BEGIN --REALIZAMOS PROCESO SI EL EMPLEADO TIENE DESCUENTOS DE IGUALDAD IF (SELECT COUNT(*) FROM TMP_DSCTOGREMIO WHERE DATOS_PERSONAL = @DP) > 0

Page 342: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

342

BEGIN DECLARE UPDATEPROC CURSOR LOCAL FOR SELECT RTRIM( LTRIM(DESCUENTO)), DESCONTADO FROM TMP_DSCTOGREMIO WHERE DATOS_PERSONAL = @DP OPEN UPDATEPROC FETCH NEXT FROM UPDATEPROC INTO @NDSCTO, @VDSCTO WHILE @@FETCH_STATUS = 0 BEGIN IF @PROCESO =1 BEGIN SET @exec1 =' UPDATE PQA SET ' + @NDSCTO + ' = ''' + @VDSCTO + ''' ' + 'WHERE DATOS_PERSONAL = ''' + @DP + ''''+ ' AND ANIO = ''' + @ANIO + ''' '+ 'AND MES = ''' + @MES + ''' AND QUINCENA = ''' + @QUINCENA + ''' ' EXECUTE (@exec1) END FETCH NEXT FROM UPDATEPROC INTO @NDSCTO, @VDSCTO END CLOSE UPDATEPROC DEALLOCATE UPDATEPROC END FETCH NEXT FROM UPDATETI INTO @DP END CLOSE UPDATETI DEALLOCATE UPDATETI --ACTUALIZAR EL 65% DECLARE UPDATE65I CURSOR LOCAL FOR SELECT DATOS_PERSONAL, TI35, TI65 FROM TB_ANUAL WHERE TIPER = @TIPER AND ANIO = @ANIO AND MES = @MES AND QUINCENA = @QUINCENA OPEN UPDATE65I

Page 343: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

343

FETCH NEXT FROM UPDATE65I INTO @DP, @ACTUAL , @SOBRANTE WHILE @@FETCH_STATUS = 0 BEGIN SET @CRN = (SELECT COUNT(*) FROM TMP_DSCTOGREMIO WHERE CONVERT(NUMERIC(9,2),SOBRANTE) < 0 AND DATOS_PERSONAL = @DP) --CANTIDA DE REGISTROS NEGATIVOS IF @CRN >= 1 BEGIN UPDATE TB_ANUAL SET TI35 = ( CONVERT(NUMERIC(9,2), @ACTUAL) + CONVERT(NUMERIC(9,2), @SOBRANTE) ), TI65='0.00' WHERE DATOS_PERSONAL = @DP AND TIPER = @TIPER AND ANIO = @ANIO AND MES = @MES AND QUINCENA = @QUINCENA END --ELSE IF @PROCESO = 2 FETCH NEXT FROM UPDATE65I INTO @DP, @ACTUAL , @SOBRANTE END CLOSE UPDATE65I DEALLOCATE UPDATE65I IF (@@ERROR <> 0) BEGIN ROLLBACK TRANSACTION RETURN(99) END END IF (@@ERROR <> 0) ROLLBACK TRANSACTION

Page 344: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

344

ELSE COMMIT TRANSACTION GO CREATE PROCEDURE SP_UPDATE_PTMO( @TIPO AS CHAR(2), @TIPER AS int, @ANIO AS char(4), @MES AS int, @QUINCENA AS int) AS BEGIN TRANSACTION DECLARE @DP AS VARCHAR(20), @PROCESO AS VARCHAR(20) DECLARE @P1 AS INT, @P2 AS INT, @P3 AS INT, @P4 AS INT,@CANTREG AS INT, @CC AS INT DECLARE @VM AS CHAR(10), @S AS CHAR(10), @PO AS CHAR(10), @VSA AS CHAR(10) IF @TIPO = 'IU' BEGIN --CURSOR QUE EXTRAE LOS DATOS DE LAS PERSONAS DECLARE UPDATETI CURSOR LOCAL FOR SELECT DATOS_PERSONAL FROM TB_ANUAL WHERE TIPER = @TIPER AND ANIO = @ANIO AND MES = @MES AND QUINCENA = @QUINCENA OPEN UPDATETI FETCH NEXT FROM UPDATETI INTO @DP WHILE @@FETCH_STATUS = 0 BEGIN SET @VM ='0' --VERIFICAR SI INSERTAMOS O ACTUALIZAMOS SET @PROCESO = CONVERT(INT,(SELECT ISNULL(COUNT(*),0) FROM DESCUENTO_PERSONAL WHERE ID_PERSONAL = @DP AND TIPASO ='8' AND TIPER = @TIPER AND ANIO = @ANIO AND MES = @MES AND QUINCENA = @QUINCENA )) --CANTIDA DE DESCUENTOS POR PERSONA

Page 345: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

345

SET @P1 = (SELECT PTMO1 FROM TB_PP WHERE ANIO = @ANIO AND TIPER = @TIPER AND DATOS_PERSONAL =@DP) IF @P1 > 0 BEGIN SET @VM = CONVERT(DECIMAL(9,2),@VM) + (SELECT ISNULL(SUM(CONVERT(DECIMAL(9,2),DSCTO_M)),0) FROM TB_PTMO_DETALLE WHERE PTMO = @P1 AND ANIO_F = @ANIO AND MES = @MES AND ED ='1' ) IF @TIPER ='2' BEGIN SET @VM =CONVERT(DECIMAL(9,2),CONVERT(DECIMAL(9,2), @VM)/@TIPER) END --POR ESTE MES FUNCIONARA ESTE PARCHE IF @MES ='11' BEGIN

SET @VM = 0.02+CONVERT(DECIMAL(9,2),@VM) END END SET @P2 = (SELECT PTMO2 FROM TB_PP WHERE ANIO = @ANIO AND TIPER = @TIPER AND DATOS_PERSONAL =@DP) IF @P2 > 0 BEGIN SET @VM = CONVERT(DECIMAL(9,2),@VM) + (SELECT ISNULL(SUM(CONVERT(DECIMAL(9,2),DSCTO_M)),0) FROM TB_PTMO_DETALLE WHERE PTMO = @P2 AND ANIO_F = @ANIO AND MES = @MES AND ED ='1' ) END SET @P3 = (SELECT PTMO3 FROM TB_PP WHERE ANIO = @ANIO AND TIPER = @TIPER AND DATOS_PERSONAL =@DP) IF @P3 > 0 BEGIN SET @VM = CONVERT(DECIMAL(9,2),@VM) + (SELECT ISNULL(SUM(CONVERT(DECIMAL(9,2),DSCTO_M)),0) FROM TB_PTMO_DETALLE WHERE PTMO = @P3 AND ANIO_F = @ANIO AND MES = @MES AND ED ='1' ) END SET @P4 = (SELECT PTMO4 FROM TB_PP WHERE ANIO = @ANIO AND TIPER = @TIPER AND DATOS_PERSONAL =@DP) IF @P4 > 0

Page 346: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

346

BEGIN SET @VM = CONVERT(DECIMAL(9,2),@VM) + (SELECT ISNULL(SUM(CONVERT(DECIMAL(9,2),DSCTO_M)),0) FROM TB_PTMO_DETALLE WHERE PTMO = @P4 AND ANIO_F = @ANIO AND MES = @MES AND ED ='1' ) END IF @PROCESO = 0 BEGIN if CONVERT(DECIMAL(9,2),@VM) > 0 begin --CREAR REGISTRO INSERT INTO DESCUENTO_PERSONAL VALUES( @DP, @TIPER, '8', @QUINCENA, @MES, @ANIO, '1', '0',--POR AHORA SOLO LOS ACTIVOS '0.00', '0.00','0.00',@VM, '0.00', '0.00','0.00','0.00', '0.00','0.00','0.00', '0.00','0.00',@VM) end END ELSE IF @PROCESO >= 1 BEGIN --ACTUALIZAR REGISTRO UPDATE DESCUENTO_PERSONAL SET DESC1 = @VM, DTOTAL = CONVERT(DECIMAL(9,2),@VM)+ CONVERT(DECIMAL(9,2),(SELECT DTOTAL FROM DESCUENTO_PERSONAL WHERE ID_PERSONAL = @DP AND TIPASO ='8' AND TIPER = @TIPER AND ANIO = @ANIO AND MES = @MES AND QUINCENA = @QUINCENA)) WHERE ID_PERSONAL = @DP AND TIPASO ='8' AND TIPER = @TIPER AND ANIO = @ANIO AND MES = @MES AND QUINCENA = @QUINCENA END FETCH NEXT FROM UPDATETI INTO @DP

Page 347: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

347

END CLOSE UPDATETI DEALLOCATE UPDATETI --ACTUALIZAR LAS CUOTAS DECLARE UPDATECUOTAS CURSOR LOCAL FOR SELECT DISTINCT AN.DATOS_PERSONAL, SUELDO, PERCEN_OLD, CAT_DCTE FROM TB_ANUAL AN, ADMISION A WHERE AN.DATOS_PERSONAL = A.DATOS_PERSONAL AND TIPER = @TIPER AND ANIO = @ANIO AND MES = @MES AND QUINCENA = @QUINCENA AND ESTADOREG =0 OPEN UPDATECUOTAS FETCH NEXT FROM UPDATECUOTAS INTO @DP, @S,@PO, @CC WHILE @@FETCH_STATUS = 0 BEGIN --CUOTA DE AEAUG SOLO ADMINISTRATIVO IF @QUINCENA =1 BEGIN SET @CANTREG = CONVERT(INT,(SELECT ISNULL(COUNT(*),0) FROM DESCUENTO_PERSONAL WHERE ID_PERSONAL = @DP AND TIPASO ='2' AND TIPER = @TIPER AND ANIO = @ANIO AND MES = @MES AND QUINCENA = @QUINCENA )) IF @CANTREG <= 0 BEGIN --CREAR REGISTRO IF @TIPER = '2' AND @CC ='7' BEGIN INSERT INTO DESCUENTO_PERSONAL VALUES( @DP, @TIPER, '2', @QUINCENA, @MES, @ANIO, '1', '0',--POR AHORA SOLO LOS ACTIVOS '0.00', '0.00',CONVERT(DECIMAL(9,2),(0.01 * CONVERT(DECIMAL(9,2), @S))),'0.00', '0.00', '0.00','0.00','0.00', '0.00','0.00','0.00', '0.00','0.00','0.00') END

Page 348: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

348

END ELSE BEGIN IF @TIPER = '2' AND @CC ='7' BEGIN UPDATE DESCUENTO_PERSONAL SET CUOTA= CONVERT(DECIMAL(9,2),(0.01 * CONVERT(DECIMAL(9,2), @S))) WHERE TIPER = @TIPER AND ANIO = @ANIO AND MES = @MES AND TIPASO = '2' AND ID_PERSONAL = @DP -- AND PG = '1' END ELSE IF @TIPER = '2' AND @CC ='6' BEGIN UPDATE DESCUENTO_PERSONAL SET CUOTA= CONVERT(DECIMAL(9,2),(0.01 * CONVERT(DECIMAL(9,2), @S))) WHERE TIPER = @TIPER AND ANIO = @ANIO AND MES = @MES AND TIPASO = '2' AND ID_PERSONAL = @DP AND PG = '1' END END --CUOTA SUTUG SOLO PERSONAL AFILIADO UPDATE DESCUENTO_PERSONAL SET CUOTA= CONVERT(DECIMAL(9,2),(0.02 * CONVERT(DECIMAL(9,2), @S))) WHERE TIPER = @TIPER AND ANIO = @ANIO AND MES = @MES AND PG ='1' AND TIPASO = '3' AND ID_PERSONAL = @DP END --CUOTA DEL ASSUG SOLO AFILIADO IF @QUINCENA =2 BEGIN

Page 349: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

349

SET @VSA = CONVERT(DECIMAL(9,2), CONVERT(DECIMAL(9,2),@S) + ( CONVERT(DECIMAL(9,2),@S) * CONVERT(DECIMAL(9,2),@PO))) UPDATE DESCUENTO_PERSONAL SET CUOTA= CONVERT(DECIMAL(9,2),(0.02 * CONVERT(DECIMAL(9,2), @VSA))) WHERE TIPER = @TIPER AND ANIO = @ANIO AND MES = @MES AND PG ='1' AND TIPASO = '5' AND ID_PERSONAL = @DP END FETCH NEXT FROM UPDATECUOTAS INTO @DP, @S,@PO, @CC END CLOSE UPDATECUOTAS DEALLOCATE UPDATECUOTAS IF (@@ERROR <> 0) BEGIN ROLLBACK TRANSACTION RETURN(99) END END IF (@@ERROR <> 0) ROLLBACK TRANSACTION ELSE COMMIT TRANSACTION GO

Page 350: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

350

CONCLUSIONES

El sistema depende del trabajo de común de los distintos departamentos

donde será instalados, esto se debe al que el sistema es integrado por ende

la información tienen un flujo secuencial, el cual si es interrumpido es muy

probable que los resultados que arroje el sistema sean erroneos,

recogiendo las opiniones de los usuarios que han interactuados con el

sistema confirman la confiabilidad el rápido y sencilla interación con el

mismo.

Si es cierto que existen puntos que se pueden mejorar, lo cual salió como

resultado de las múltiples pruebas que se realizaron el sistema soportaría

estos cambios sin tener que hacer un cambio de fondo con respecto a la

base de datos, para finalizar podemos decir que el sistema cumple con los

objetivos principales de la tesis y que deja las posibles migración a la

tecnología punto Net, ya que la fortaleza del mismo radica los múltiples

procedimientos creados en SQL y no tanto en el lenguaje de desarrollo

(visual Basic 6.0).

Page 351: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

351

RECOMENDACIONES

Las recomendaciones la hacemos con respecto a la utilización del sistema

comensando primero con el Módulo de Recepción se podría crear un círculo

entre toda la recepciones de los departamentos para agilitar los procesos

sobre los tramites.

Con relación a las dependencias de Autogestión se debería instalarse el

sistema de tal forma que ellos puedan manejar la distribución de sus

partidas Autofinanciadas, sin que dejen de lado a la división presupuestaria

ya que ellos serian los que proporcionen las condiciones y restricciones

necesarias para cada unidad.

De igual forma podría recomendarce instalar el sistema de los descuentos

en los distintos gremios para que ellos manejen el gran volúmen de

información por descuento que se generan por sus propias operaciones, en

todo caso las reglas de descuentos son aplicadas por el departamento de

computo es decir se les imposibilitaría realizar alguna mala acción.

Se recomienda una revisión en los estandares de la creación de rubros y los

procesos en los que intervienen.

Page 352: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

352

ANEXOS

Page 353: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

353

✓ ANEXO B-1 DIAGRAMA DE ENTIDAD RELACIÓN

Presenta Módulo

1

3

F

V

V

F

Inicio del Sistema

Inicio Usuario y

Contraseña

Verifica

existencia

usuario

Salir del

Sistema Fin

1

Page 354: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

354

✓ ANEXO B – 2

1

v

2

1

Elección de Módulos

Desplegar opciones

del Módulo

Salir del

Módulo

Elección de opción

del Módulo

2

F

Page 355: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

355

✓ ANEXO B – 3

Existe

Archivo

2

Trabajo

en el

Formular

io

Acción sobre este

Salir

del

Módulo

2

F

V

V

F

V

3

1

Page 356: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

356

✓ ANEXO B – 4

V

F

3

3

3

Cerrar

Sistema

Fin

Salir

del

Sistema

V

F

V

Page 357: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

357

✓ ANEXO C- 1 DIAGRAMA DE CONTEXTO

Ingresa

parámetros

Sobre los

rubros

Información

Para

Visualizar

Legaliza

trámite

De contratación

o

Renovación

Envíos de Oficios

ADMISION

LEGAL

CONTROL

PRESUPUESTO

RECEPCION

DIVISION DE PERSONAL

SISTEMA DE RRHH

Visualiza

Datos reales

de cada

trabajador

Mantenimiento sobre

Información de datos

Personal

Consultas

Procesos

Registro

Novedades

Recepci

ón

Oficios

Page 358: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

358

ANEXO D-1

LISTADO DE ACONTECIMIENTO PARA LA TAREA DE SELECCIÓN

1. El usuario ingresa a la base las preguntas y sus respectivas opciones

para crear el Test.

2. El entrevistado ingresa sus datos al sistema.

3. El entrevistado ingresa su número de cédula para comenzar el Test de

conocimiento y continuar con el psicológico. El entrevistado por cada

Test lee la pregunta y pone sus respuestas, lo que almacena en la base.

4. El usuario termina el Test y el Sistema le indica la fecha de la próxima

cita.

5. Se genera un reporte para ver el resultado de los Test.

Acontecimiento 1:

USER Archivos o Registros

De Test.

Registro

de Test

Page 359: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

359

Acontecimiento 2:

Acontecimiento 3:

Entrevistado

User

Archivos

(Entrevistado)

Registro

De

entrevistado

Datos

# C.I

Nombres

Datos a

recibir

# C.I.

Nombre

Entrevistado

Comienza

Test.

Archivo Test

Recibe

datos

Datos de Test

A recibir

Recibe respuesta

Test.

Page 360: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

360

Acontecimiento 4: Acontecimiento 5:

Entrevistado

Próxima

cita Archivo

Parámetros

Recibe indicaciones

Datos próxima cita

User

Consulta

Resultado

Sección Admisión Genera test

Conocimiento y

Psicológico

Test Psicológico

Test Conocimiento

Page 361: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

361

ANEXO D- 2 DIAGRAMA DE FLUJO DE DATOS

AREA SELECCIÓN

Datos del Test

USER

Datos del Test

Archivo de Test

Entrevistado

Archivo Entrevistado Archivo parámetro

Registro

Test.

Crea

nuevo

opción

Consulta

Resultado

Próxima

cita Registro

entrevista

do

Pregunta

Respuesta

Orientación

Consulta

Actualiza Guarda

Datos

Rinde prueba

Guardar

Presenta

Datos de

Test

(conoc y

psico)

Datos

Page 362: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

362

ANEXO D-2

LISTADO DE ACONTECIMIENTO PARA LA TAREA DE CAPACITACIÓN

1. Ingresa información de los cursos existentes.

2. Presenta información a trabajadores de Universidad

3. Trabajadores acceden a curso y realizan un pago por el mismo.

4. Trabajador aprueba o no el curso a través de su calificación, usuario

ingresa formas de financiamiento del curso, y la calificación obtenida por

el empleado.

5. Verifica si el curso se trata de estudios superiores y se genera novedad.

Acontecimiento 1:

User

Archivo Curso Registro

Curso

Actualiza datos

Ingreso datos

del curso

Recibe datos del curso

Entrega datos del curso

Page 363: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

363

Acontecimiento 2:

Acontecimiento 3:

Entrega factura

Entrega solicitud de curso

Recibe información

Sobre los cursos

Vincula curso con

Curso con trabajador

USER

Genera

reporte de

cursos

Archivos Cursos

Trabajadores

Presenta

reportes u

opciones

Solicita la información

Recibe la información

Trabajador

USER

Secretaria

Archivo curso

Realiza

Pago

Page 364: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

364

Acontecimiento 4:

Acontecimiento 5:

USER

Archivo Curso

Actualizar

información

Recibe información de

calificación.

Actualiza datos

Entrega

información

consultada.

USER

Archivo Curso Verifica

Tipo

Curso

Busca información

Se genera la

novedad si es

necesario.

Entrega parámetro

requerido

Page 365: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

365

ANEXO D- 3 DIAGRAMA DE FLUJO DE DATOS

AREA CAPACITACIÓN

USER

Personal

Archivo de Salud

Registro

Curso

Registro

Financiam

iento

Presenta

Reportes

Page 366: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

366

ANEXO D-4

LISTADO DE ACONTECIMIENTO PARA LA TAREA DE SALUD LABORAL

1. Creación de Ficha Médica.

2. Ingreso de consultas Clínicas.

3. Evaluación de la situación del trabajador para realizar sugerencias del

caso.

4. Generar listado de donantes.

Acontecimiento 1:

USER

Archivo Salud Laboral

Registro

Ficha

Médica

Consulta datos o existencia

Ingresa los datos

Clínicos que

requiere la ficha

Entrega datos

Generales del

Trabajador.

Recibe datos

clínicos generales

Page 367: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

367

Acontecimiento 2:

Acontecimiento 3:

USER

Archivo Salud Laboral

Registro

Consulta

Médica

Entrega la

Información

Recibe datos de la

Ficha médica.

Recibe datos de la

Consulta.

Entrega datos de la

Ficha médica

USER

Archivo Salud Laboral

Realizar

Evaluaciones

Genera informe

Consulta información

Page 368: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

368

Acontecimiento 4:

ANEXO E-1

LISTADO DE ACONTECIMIENTO PARA LA TAREA DE RECEPCIÓN

1. Se crean las cuentas de los usuarios para que reciban o envíen los

correos.

2. El usuario (Recepción) ingresa los oficios al sistema y los envía al

respectivo destinatario.

3. Los usuarios revisan su correo para ver si tienen oficios y realizan el

respectivo trámite si lo hay.

4. el usuario (Recepción) puede confirmar tramite del oficio.

5. El usuario indica fin de trámite.

USER

Archivo Salud

Generar

Reporte

Solicita Información

Presenta

información

requerida.

Page 369: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

369

Acontecimiento 1:

Acontecimiento 2:

Usuario

Archivo cuenta

Registro

Cuenta Envía

Datos

Ingresa Información Registro actualiza datos

Usuario

Archivo Oficio

Registro

Oficio

Consulta oficios

Ingresa Oficio

Envía oficio

Page 370: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

370

Acontecimiento 3: Acontecimiento 4:

Usuario 1

Usuario 2

Registra

Trámite Archivo Oficio

Envía a otro

usuario si es

necesario

Realiza Trámite

Consulta oficio

Envía a otro usuario

Recepción

Archivos Oficios

Revisa

Trámite

Realiza Seguimiento

Page 371: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

371

Acontecimiento 5:

Usuario

Estado

Trámite

Archivo oficio

Page 372: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

372

ANEXO E- 2 DIAGRAMA DE FLUJO DE DATOS

AREA RECEPCIÓN

Recepción

Usuario

Archivo Oficios

Estado

Tramite

Revisa

Cuenta

Registro

Oficio

Registra

Trámite

Revisa

Trámite

Page 373: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

1

INTRODUCCIÓN

ESTRUCTURA DEL DEPARTAMENTO DE RECURSOS HUMANOS.

Una organización necesita personal para diversos niveles: personal de apoyo y

operativo, personal administrativo y directivo. El dotar a la organización de

personal competente es fundamental para el éxito, por tanto, el trabajo del

departamento de Recursos Humanos reviste gran importancia. Cuando se crea

el departamento de personal, suele ser pequeño y depende de un ejecutivo

administrativo de nivel medio; a departamento de personal, éste aumenta su

importancia y su complejidad. Para afrontar el crecimiento y las nuevas

demandas, el personal de recursos humanos debe elevar su nivel de

especialización, conforme este departamento sigue ampliándose, puede

organizarse en secciones muy especializadas. La función de personal está

siendo muy importante en la administración de las organizaciones, hay varios

factores que contribuyen a este fenómeno:

Complejidad de puestos de gerentes de área.

Estos con frecuencia se vuelven más complejos. Enfrentándose a

responsabilidades adicionales, requieren que busquen ayuda en sus problemas

más sustantivos. Ya que este problema es de la naturaleza de los recursos

humanos, los gerentes de área recurren a especialistas en la materia,

Page 374: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

2

contribuyendo de este modo al establecimiento y desarrollo de la función de

personal.

Influencias Externas.

Estas han contribuido al desarrollo de la función de personal. La aprobación de

leyes y reglamentos (Ley Federal del Trabajo, Ley del Seguro Social) crea la

necesidad de gente que pueda interpretarlas y elaborar programas que

aseguren su cumplimiento. Los sindicatos y la influencia del mercado de trabajo

han representado un papel de importancia para el desarrollo de la función de

personal.

Necesidad de congruencia.

Confiar exclusivamente en el criterio de los gerentes de área en las decisiones

sobre personal, conduce invariablemente a un incongruente tratamiento de los

empleados (algunos gerentes pueden conceder aumentos de salario a sus

subalternos favoritos, otros, de acuerdo al desempeño logrado, las

incongruencias generarían sentimientos de injusticia).

Necesidad de pericia.

Todos los factores anteriores han creado complejidad en las funciones de

personal. Esta complejidad requiere pericia para tratar con ellas y en

consecuencia, casi todas las actividades requieren personas experimentadas

para administrarlas.

Page 375: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

3

Importancia de los Recursos Humanos.

Las organizaciones están reconociendo cada vez mas el insumo laboral (los

recursos humanos) vital para el éxito.

LA ADMINISTRACION DE PERSONAL COMO SISTEMA.

Todas las organizaciones constituyen sistemas (es decir, unidades integradas).

Los componentes de cualquier sistema o unidad, deben ser coordinados de

una manera lógica y eficiente de manera que pueda funcionar de una forma

total que beneficie tanto a la propia organización como a sus miembros

individuales.

De esta manera se pretende presentar a la función de personal no como una

serie de partes sueltas donde cada faceta es un fragmento aislado, sino como

un sistema en el que cada parte se interrelaciona con otras para realizar

acciones conjuntas.

Cuando las actividades están interrelacionadas forman un sistema. Un sistema

consta de dos o más partes (subsistemas) que interactúan, pero que poseen

respectivamente límites claros y precisos.

La concepción de la actividad de administración de personal en términos de

sistemas implica en primer lugar la limitación de las actividades. Estos límites

señalan el punto en que da principio al entorno externo. El entorno constituye

Page 376: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

4

un elemento importante por que la mayor parte de los sistemas son abiertos.

Un sistema abierto es aquel que es afectado por el entorno. Las organizaciones

son influidas por el entorno en que existen y, por tanto, son sistemas abiertos.

Así mismo, las actividades de administración de recursos humanos constituyen

un sistema abierto, ya que son influidas y dependen en gran medida del

entorno.

1.- Fundamentos y desafíos.

La administración de personal enfrenta desafíos múltiples en su labor. El

principal desafío consiste en ayudar a las organizaciones a mejorar su

efectividad y su eficiencia. Lograr esos objetivos requiere que los

departamentos de personal se organicen de manera adecuada. Otros desafíos

se originan en el entorno en que operan las organizaciones: la economía, las

alternativas del mercado y las disposiciones oficiales. Los desafíos surgen

también del interior de la organización. Por ejemplo, el departamento de

personal deberá competir con otros para obtener presupuestos adecuados. El

éxito del departamento de personal en su labor de asesoría y ayuda depende

de su capacidad de mantener siempre consciente de sus objetivos específicos

y de los objetivos de la organización.

2.- Planeación y selección.

En el corazón mismo del cuerpo de actividades que denominamos

administración de personal se encuentra la necesidad de disponer de una base

Page 377: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

5

de datos adecuada. Sin información precisa y oportuna los departamentos de

personal ver seriamente limitada su capacidad para enfrentar desafíos. Para

construir esta base de datos se obtiene información respecto a cada puesto y

respecto a las necesidades de recursos humanos a futuro. Mediante esta

información los especialistas en personal pueden asesorar a los ejecutivos de

otras áreas sobre el diseño de los puestos que supervisan. Los cálculos sobre

las futuras necesidades de recursos humanos permiten al departamento de

personal participar de manera activa en el reclutamiento y la selección de los

nuevos empleados.

3.- Desarrollo y evaluación.

Una vez contratados, los nuevos empleados reciben orientación sobre las

políticas y los procedimientos de la compañía. Se les asignan los puestos que

les correspondan y reciben la capacitación necesaria para ser productivos.

Merced a la salida base de información sobre recursos humanos, los

especialistas en personal pueden ayudar a determinar la orientación necesaria,

así como las necesidades de capacitación, desarrollo y asesoría profesional.

Gracias a estas actividades pueden llenarse muchas vacantes mediante

promociones internas, en vez de recurrir a contrataciones externas. A fin de

evaluar el desempeño de los empleados, se llevan a cabo evaluaciones

formales de manera periódica. Estas evaluaciones proporcionan

retroalimentación sobre el desempeño de cada trabajador, y sirven como guía

tanto para el empleado, quien desea saber como se juzga su trabajo, como

Page 378: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

6

para el departamento de personal, que puede identificar puntos de desempeño

que conviene mejorar.

4.- Compensaciones.

Un elemento vital para mantener y motivar a la fuerza de trabajo es la

compensación adecuada. Los empleados deben recibir un salario justo por su

contribución productiva. Cuando las compensaciones son demasiado bajas es

probable que surja una altas tasa de rotación de personal, así como otros

problemas. Si el pago que reciben los trabajadores es excesivamente alto, la

compañía podría ver debilitada su capacidad de competir. La administración

moderna de sus compensaciones va más allá. Las prestaciones constituyen un

elemento importante en cualquier paquete de compensaciones y deben

corresponder a la productividad del empleado para que la compañía conserve a

sus empleados y continúe siendo competitiva. Por otra parte, la organización

debe proteger a sus trabajadores de los riesgos de todo tipo, incluyendo en ese

campo la prevención de accidentes y la observancia de las normas adecuadas

de medicina preventiva para evitar la aparición de enfermedades profesionales.

Mediante sus programas de seguridad y salud los departamentos de personal

no sólo garantizan un entorno seguro, sino que también observan normas

vigentes al respecto, emitidas por entidades como el Seguro Social, la

Secretaría del Trabajo, la Defensa Nacional (para industrias de ciertas áreas),

la Secretaría de Comercio, la Secretaría de Salud y otras mas.

Page 379: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

7

5.- Servicio al personal.

Mantener una fuerza efectiva de trabajo requiere más que un pago justo,

prestaciones y condiciones laborales adecuadas. Los empleados necesitan ser

motivados, y el departamento de personal es -parcialmente- responsable de

garantizar la satisfacción de los empleados con el puesto. Los problemas de

personal y los relacionados con los puestos pueden llevar a tensiones de los

empleados y a la necesidad de que reciban asesoría o también normas

disciplinarias.

Con objeto de cumplir estas objetivos y de mantener informado a su persona,

mas y mas compañías consideran actualmente que los sistemas de

comunicación de recursos humanos son una forma efectiva de mejorar la

motivación de los empleados, así como de mantener alta su productividad.

6.- Relaciones con el Sindicato.

Los empleados y obreros de una organización pueden unirse para formar

sindicatos. En las empresas que tienen sindicatos los departamentos de

personal pueden tener la responsabilidad de atender los asuntos relacionados

con las cuestiones sindicales.

7.- Perspectiva general de la Administración de personal.

Como ocurre a cualquier otro organismo social actualmente, los departamentos

de personal necesitan recibir retroalimentación sobre su desempeño. Por esta

razón, los departamentos del personal se someten a verificaciones y

Page 380: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

8

comprobaciones, y adelantan investigaciones para identificar métodos más

efectivos de servir a su organización. Con frecuencia, esas investigaciones son

muy útiles para ayudar a la previsión de nuevos desafíos de todo tipo.

Concepto de sistemas aplicados:

Los subsistemas de personal se influyen recíprocamente y es preciso estar

consciente permanentemente de esta interdependencia. Probablemente, la

manera más efectiva para identificar las complicaciones que quizá surjan es

mediante la utilización de los conceptos de sistemas.

Un concepto de sistemas aplicados describe las actividades de personal en

términos de una transformación: la recepción de insumos (ingresos) y su

cambio a determinados egresos (productos de la actividad desarrollada). Una

vez cumplido el ciclo, el especialista verifica los resultados para cerciorarse de

que sean correctos. Este proceso de verificación produce retroalimentación,

información que ayuda a evaluar el éxito o el fracaso que se haya obtenido.

Page 381: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

9

REQUERIMIENTOS

“Para el funcionamiento se debe poseer una máquina que trabaje como

servidor (con las especificaciones de Servidor expuestas en el manual

Técnico), para poder instalar la Base de Datos”

1. Instale Microsoft SQL Server 7.0 en la máquina que realizará el trabajo

del Servidor.

2. Cree dos Base de Datos y restaure los servicios que se incluyen en el

CD BdAlmacenDatos y DB_RRHH.

3. Si no existe información migrada, deberá crear los registros de usuario

que tienen acceso al sistema.

Después de contar con el servicio de Base de Datos instale el sistema como se

indica a continuación.

Page 382: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

10

1.- Explore el CD, y ejecute el archivo Setup, para comenzar con la instalación

del sistema.

2.- Al iniciarse la instalación el sistema nos da la bienvenida, para comenzar,

presionamos el botón OK, o si deseamos podemos cancelar la instalación

presionando el botón Exit Setup.

Seleccione la ruta sobre la que se va a instalar el sistema, puede utilizar el

botón Change Directory, para buscar la ruta apropiada, se recomienda que la

Page 383: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

11

instalación se de directamente sobre el disco local, como se muestra en la

siguiente figura.

Adicione programas relacionados de ser necesarios, pero en todo caso puede

presionar simplemente el botón Continué para seguir con la instalación.

Page 384: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

12

El sistema comenzará a crear los iconos necesarios para ejecutar la aplicación.

Por último seleccionamos el botón deseado y presionamos Aceptar para

finalizar la instalación.

Page 385: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

13

--------------------------------

INICIANDO SisRRHH

---------------------------------

Se iniciará SisRRHH y aparecerá la pantalla de inicio de sesión en la cual se

solicitará el nombre de usuario y la contraseña previamente distribuido por el

Centro de Cómputo.

En esta ventana encontramos 3 opciones.

✓ Aplicar

✓ Configurar

✓ Cancelar

Page 386: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

14

Cancelar

Permite cerrar el sistema sin iniciar sesión

Configurar

Esta opción permite establecer la Base de Datos y el servidor con el que va a

trabajar el sistema.

Presionamos aplicar para guardar los cambios, como respuesta obtendremos

un mensaje que confirma la acción ó cancelar para cerrar la ventana.

Page 387: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

15

Aplicar

Presionando el botón aplicar de la ventana de inicio de sesión, se evaluará que

el usuario y contraseña ingresado sean correctos. Al registrar incorrectamente

estos valores se presentará un mensaje de alerta como se ilustra el siguiente

gráfico.

Page 388: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

16

Si los datos registrados son correctos se confirma el uso del Sistema y se

presenta el contenedor principal de las opciones del sistema.

Page 389: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

17

En la pantalla anterior encontramos un arreglo de botones los cuales

especifican los distintos módulos que componen el Sistema, cada usuario

ingresará al módulo conforme a sus funciones.

------------------------------------------

ESTANDARES DEL SISTEMA

-------------------------------------------

En su mayoría están compuestos por 8 opciones o tareas definidas que

normalmente emplea el usuario. Por lo general algunas ventanas o módulos

con los que intervienen el usuario están creados por un mismo estándar para el

manejo de sus necesidades, tanto en la barra de menú como en la barra de

herramienta detallaremos de forma rápida el uso de estos objetos.

Nuevo Consultar Eliminar Cancelar Fecha

Guardar Actualizar Imprimir Cerrar

Page 390: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

18

Barra de Menú

Consta de 2 Tareas clasificadas como:

✓ Archivo

✓ Edición

Las cuales permiten manipular el sistema al igual que la barra de herramienta,

se encuentran divididas en subtareas.

Nuevo

Permite crear un nuevo Registro.

Consultar

Permite una conexión con la Base de Datos para verificar los registros

existentes.

Guardar

Permite ingresar registro dentro de la Base de Datos cuando crea un registro

nuevo o cuando actualiza un registro existente.

Page 391: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

19

Imprimir

Esta opción permite presentar de manera de reporte la información generada

por el usuario.

Cerrar

Cierra la ventana actual y retorna la ventana anterior.

Edición

Permite realizar tareas que van relacionadas con un registro existente.

Actualizar

Podemos modificar información de registros existentes previamente

consultados.

Eliminar

Con la opción eliminar podemos realizar 2 acciones como:

Pasar a historial o eliminar completamente de la base.

Page 392: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

20

Cancelar

Esta opción permite suspender las acciones que se están realizando sobre la

ventana actual.

En algunos casos es posible habilitar archivos que se han eliminado (pasar a

historial) a través de la opción restaurar.

Opciones

Existen procesos que necesitan de cierta información que no se tiene a la

mano y me imposibilite la ejecución de la transacción que se está dando, esto

lo podemos evitar dándole al usuario la opción de crear parámetros, el campo

opciones varía según la ventana sobre la que se está trabajando.

Page 393: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

21

-------------------------------- Mensajes Estándares --------------------------------

A continuación se encuentran los siguientes mensajes estándares del sistema.

Guardar

Actualizar

Page 394: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

22

Cerrar

Continuando con el funcionamiento del sistema, explicaremos el contenido y

manejo del mismo.

Una vez revisado estas pequeñas definiciones estándar, comencemos a

explorar el sistema.

Page 395: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

23

-------------------------------- Módulo de Recepción -------------------------------- Permite controlar la distribución de oficios en la división de personal. Área de Recepción de Oficio:

Básicamente consiste en Distribuir los Oficios relacionados en un trámite, con

sus respectiva sección o destinatario en particular para de tal forma agilitar el

mismo.

Primero, encontramos una ventana que contiene las tareas que se van a definir

en esta sección.

Page 396: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

24

Con el Botón Oficios, el Usuario realiza la siguiente Opción:

Page 397: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

25

✓ Ingreso de Oficios

Previamente el usuario debe escanear el Oficio para poder enviarlo o

registrarlo a la base y de esta forma comenzar con el inicio del trámite;

Analizaremos este sencillo proceso a continuación.

Para ingresar un oficio damos clic sobre el botón Nuevo de la barra

de herramienta ó barra de Menú en Archivo.

Page 398: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

26

Inmediatamente comenzamos a ingresar el número de oficio ya sea redactado

por la entidad que lo envía

(Puede ser numérico o alfanumérico), ó generando el Índice de la siguiente

manera.

También podemos relacionar este oficio con algún trámite anterior a través del

campo Oficio R que utiliza un buscador para consultar los oficios anteriormente

ingresados.

Unidad:

Utilizamos el botón buscar unidades para extraer el nombre de la entidad que

envía el oficio, ya sea por Unidad Admin, Unidad Académica y otras

dependencias.

Page 399: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

27

Al seleccionar una de las tres opciones aparece la siguiente pantalla

Asunto:

Indica el porqué del oficio fue enviado.

Page 400: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

28

Estado oficio:

Como todo oficio pasa por un proceso, es necesario determinar el estado del

oficio en que se encuentra.

Observación:

Alguna sugerencia que se realice con el oficio.

Page 401: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

29

Involucrados en el oficio:

Presionamos el botón y llama a la pantalla de

Consulta (es decir las personas que han creado cuenta en el correo).

Botón añadir Involucrados: Permite añadir a un involucrado que esté en el oficio.

Page 402: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

30

Destinatario del Oficio:

Permite vincular el oficio con el personal responsable del trámite, utilizando el

botón Podemos cambiar de destino eliminando el

Anterior (remover destinatario) para añadir el nuevo destino.

Botón Remover Involucrados: Permite remover a un involucrado que no deseamos.

Page 403: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

31

Oficios:

Esta viñeta presenta las opciones capturar imágenes

(previamente escaneadas).

Al dar clic en el botón Capturar Imagen aparecerá la consulta para seleccionar

el oficio escaneado correspondiente.

Page 404: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

32

Una vez seleccionada la imagen se mostrará de la siguiente manera.

Al Ingresar un Oficio deberán realizar todas las tareas asignadas del mismo no

se podrá guardar sin haber realizado todas las tareas.

En caso que se necesite corregir algún tipo de información o imagen de oficio

podemos realizar una consulta

A través del Número de Oficio, Apellido y Cédula Involucrado ó un rango

de fecha.

Page 405: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

33

Una vez elegido uno de los parámetros de búsqueda, presionamos el botón OK

para que aparezca todos los Oficios ingresados y así poder realizar los

cambios necesarios.

Seleccionamos un oficio consultado y presionamos el botón Aceptar para

poder realizar los respectivos cambios. Y si no realizamos ninguna operación

damos clic en Cerrar.

Seleccionamos en Edición Añadir Imagen, para guardar otra imagen en el

oficio.

Page 406: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

34

A continuación tenemos la pantalla para añadir nueva imagen según el Oficio

seleccionado y también permite Listar Imagen Adjuntadas en el Oficio.

Page 407: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

35

En este botón buscamos el oficio que le

asignaremos la imagen o listar las diferentes imágenes escaneadas del oficio.

Al dar clic en este botón aparece una pantalla de búsqueda la

cual capturaremos la imagen deseada.

Al dar clic en Aceptar estamos aceptando que esa imagen será

guardada.

Si presionamos Cancelar, no se guardará nada se cancela toda

la operación.

Page 408: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

36

Listar Imagen Adjuntadas

Oficios relacionados con El oficio principal de la Búsqueda.

Son aquellas Imágenes Que se encuentran en los Oficios relacionados Permite imprimir el Oficio Lista todos los Oficios Al dar clic en podemos visualizar los oficios a buscar

Page 409: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

37

Una vez seleccionado el oficio se mostrará de la siguiente manera

Page 410: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

38

A continuación tenemos la Actualización de Trámite Oficio a Tramitar

Page 411: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

39

En la ventana tenemos dos funciones Consulta Oficio en la que buscaremos

el Oficio a Tramitar, podemos buscar por uno de los parámetros de búsqueda

una vez realizada la consulta damos clic en el botón Tramitar la que llevará a

la siguiente viñeta Tramitar Oficio.

Nombre de oficio

Usuario a tramitar Oficios.

✓ CUENTAS DE USUARIO Para poder acceder a los oficios el usuario debe poseer una cuenta. Si no tiene

puede acceder a una, siguiendo los pasos detallados a continuación:

Del Contenedor de opciones de la Ventana de Recepción seleccione

Parámetros- Crear Cuenta.

Page 412: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

40

Otra forma de Crear las Cuentas es utilizando la ventana de acceso a los

Oficios, haciendo con el Mouse clic izquierdo sobre la opción Obtener una

cuenta.

Cualquiera de los métodos que utilice para crear una cuenta nos lleva a la

siguiente pantalla, en donde procederemos registrar ciertos datos de

características generales.

Page 413: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

41

Crear Cuenta 1.- Ingresamos el Número de Cédula y presionamos el botón de Búsqueda

Page 414: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

42

Al realizar esta acción, si el empleado pertenece a la Institución sus datos

aparecerán de forma automática como se muestra en el siguiente gráfico.

2.- Luego Registramos información de carácter general, como Nombre de

usuario que nos identificará en el correo del Sistema y una clave que nos

permita el acceso a los Oficios que son dirigidos, El nombre de la Sección a la

que pertenecemos, además de la opción de recuperar la contraseña (en caso

de no recordarla), y por último grabamos el registro.

En caso de que necesite actualizar el nombre del usuario o su contraseña, u

otros campos de los requerimientos, bastaría consultar su existencia a través

de los requisitos anteriores (Usuario y Contraseña), luego presionamos el

Page 415: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

43

botón Aceptar para activar el área del Ingreso de requerimientos, al final

guardamos para conservar los cambios.

✓ Utilización del Correo

Luego de habernos registrado podemos comenzar a utilizar el Correo, y

aprovechar los beneficios de su uso, para ello introduzca el nombre de usuario

y contraseña.

Page 416: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

44

En caso de olvidar estos datos, podemos acceder a la viñeta Recordar en

donde debemos realizar los siguientes pasos para obtener nuestros parámetros

de entrada.

1.- Ingrese el número de cédula y presione el botón de búsqueda, si su

Número de cédula es correcto, a continuación se le realizará la pregunta que

UD seleccionó.

Page 417: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

45

2.- A continuación ingrese la respuesta de la pregunta y presione el botón

Aceptar.

3.- Si la respuesta es Correcta se le presentará su usuario y contraseña, de lo

contrario aparece el mensaje Respuesta Incorrecta.

Nota: Si el nombre de su usuario o contraseña son difíciles de recordar, no se

olvide que puede ratificar o cambiar estos datos.

Page 418: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

46

Una vez que se registraron los parámetros requeridos en la ventana Usuario,

nos encontraremos con la ventana principal de la Bandeja de Oficio, en ella se

muestra sobre la parte superior Izquierda los nombres del dueño de la cuenta y

del otro lado la fecha actual, que presenta el servidor. Está dividida en 2

marcos (Izquierdo y Derecho), el marco Izquierdo contiene las opciones del

Correo, y el derecho muestra cada una de las opciones, iremos analizando una

a una.

Page 419: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

47

La primera opción Oficios Nuevos, da un listado sobre los oficios que no se han

tramitado.

Al activar esta opción, brevemente se detalla un listado de los oficios, que se

Enviaron desde alguna sección de la División de personal, pero si deseamos

apreciar el Documento por pantalla se activa el botón Ver Oficio lo que

producirá que se levante la ventana de Cristal Report y desde ahí se podrá

enviar a imprimir el Oficio en caso de que se necesite el documento sobre un

papel, u otra necesidad.

Page 420: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

48

La siguiente opción es Oficio Leído, la cual me permite consultar Oficios

anteriormente revisados, para ello se debe especificar el rango de fecha , para

realizar la búsqueda, de igual forma que en la opción anterior, en la grilla se

indica un detalle del oficio para apreciar el documento debemos seleccionar el

botón ver Oficio.

Page 421: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

49

Si el oficio es simplemente un comunicado, el trámite llega a su fin pero si se

trata de un trámite que involucra una serie de procesos, el oficio puede ser

enviado de manera secuencial por cada uno de los puestos que se necesiten,

para ello se añadirá el nombre de los contactos que necesiten recibir el

documento.

Page 422: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

50

Si necesita algún tipo de comunicado especial se puede sumillar el oficio,

especificando el por que y para que, obvio indicar que la fecha de esta sumilla

será la misma que muestre el servidor en ese momento.

Para enviar un oficio, es necesario conocer el destino, por ello en la opción Ver

Contactos, se presenta un listado que contiene el nombre de los usuarios que

poseen cuenta.

La Recepción puede proporcionar Información sobre el trámite del Oficio, y

desde luego comunicar al o los Involucrados la evolución del mismo.

Page 423: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

51

1.- Para esto elija la Opción Estado de la barra de Herramienta, y de ahí

aparecerá la siguiente pantalla, la cual muestra el estado actual del Trámite, a

través del numero de Oficio.

Page 424: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

52

También podemos consultar los estados de oficios.

Page 425: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

53

-------------------------------- Módulo de Admisión -------------------------------- En el Módulo de Admisión encontramos dos submódulos importantes, como

son el de Selección y Capacitación a continuación veremos en detalle lo que

contiene cada uno.

Page 426: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

54

Antes de comenzar con la Selección a través del Test detallaremos como se

crean los mismos.

✓ Ventanas Selección

Como ya mencionamos con anterioridad las bases de una Organización y el

éxito de la misma van ligada al personal que labora en ella, he aquí la

importancia del Módulo de Selección de Personal, el cual proporciona las

herramientas necesarias que permiten realizar una evaluación desde la

perspectiva Psicológica y desde las perspectiva de los conocimientos que debe

poseer para ocupar el puesto en el que se necesita.

La realización de las pruebas es sencilla pero para una mejor comprensión

detallaremos este proceso paso a paso.

1.- Creación de Pruebas

Conocimientos: Concebimos la creación de las pruebas basados en que un

test puede tener preguntas de distintas índoles o materias, por lo que primero

habría que crear un conjunto de materias sobre la que se va a evaluar en el

Test, luego un banco de preguntas generales por cada materia, para poder

reutilizar estas preguntas en la creación de otro Test.

Page 427: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

55

Desarrollo paso a paso de un test de conocimiento:

1.- De la ventana principal de Admisión escogemos la opción Parámetros, a

continuación seleccionamos Mantenimiento de Materias.

Al realizar esta acción obtenemos como resultado la siguiente ventana.

Page 428: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

56

Como se puede observar esta ventana se basa en nuestro estándar propuesto,

es decir presiono el botón nuevo para comenzar a crear la materia, y

automáticamente se activa el botón guardar, luego ingreso el nombre de la

materia y por último presiono el botón guardar.

Es importante recordar que una vez que se ha creado el registro el mismo

puede ser modificado, o eliminado, dando doble clic en la materia que

queremos Actualizar o Eliminar se activarán los siguientes botones.

Actualizar Eliminar Ya creada la materia podríamos tranquilamente comenzar a generar el banco

de preguntas por cada materia, es importante tener en cuenta que todavía no

formamos ningún Test, apenas se ha realizado una especie de cuestionario por

materia.

2.- Para realizar la acción mencionada anteriormente, en la ventana principal

de Admisión escogemos la opción Parámetros, a continuación del menú que

se nos presenta seleccionamos Mantenimiento de Preguntas.

Page 429: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

57

Esto mostrará la siguiente pantalla que detallamos a continuación.

Page 430: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

58

Primero tenemos un listado de las materias existentes que se cargan en el

combo, sobre el cual al dar clic nos permitirá tener una vista de todas las

preguntas que existen por cada materia, de esta forma podríamos realizar una

Actualización o Eliminación, a demás, verificamos la existencia de las

preguntas (mediante las opciones: Mostrar Objetivas, Mostrar Múltiples

Alternativas, Mostrar Todas) antes de crearlas.

Revisando la barra de Herramientas en la parte superior encontramos tres

íconos los dos últimos lo revisamos al inicio del manual en la sección de

estándares del sistema por lo que revisaremos la funcionalidad del primer

botón.

Al dar clic sobre esta opción (Crear Preguntas) se mostrará la siguiente

pantalla que nos permitirá realizar la acción mencionada de la materia que se

indica en el combo, esta se presentará como una etiqueta en la ventana de

creación.

Crear Preguntas

Page 431: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

59

El sistema proporciona dos tipos de respuestas (Objetivas y Múltiples

Alternativas), por lo que el usuario deberá manejar cierta destreza al momento

de crear la pregunta.

A continuación mostraremos un ejemplo de una misma pregunta creada para

las dos opciones de respuestas.

Ejemplo Nº 1 (Múltiples Alternativas)

Después debemos especificar el tipo de respuesta que va a tener la pregunta

en este caso el contexto nos enfoca la opción de múltiples alternativas,

mediante la cual se nos presentarán las herramientas para ingresar cada una

de las opciones como se indica a continuación.

A

B

C

D

E

Page 432: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

60

A: área de texto donde se ingresa las alternativas.

B: botón añadir el cual se activa una vez que se digita la alternativa.

C: visualización de las alternativas cada vez que se realizan las tareas añadir,

modificar y eliminar.

D: botón remover el cual se activa dando clic sobre “C” en la alternativa que

deseamos eliminar.

E: botón modificar el cual se activa dando clic sobre “C”, en la alternativa

seleccionada.

Como se puede apreciar en la figura, la alternativa se copia en el área de texto

permitiendo al usuario realizar la corrección respectiva, la cual confirmará

haciendo clic sobre el botón Modificar.

Page 433: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

61

Para indicar la respuesta principal de entre todas las opciones ingresadas

basta con hacer doble clic, en la alternativa correcta, tal como se muestra en la

siguiente figura

Ejemplo Nº 2 (Objetivas)

En este caso el contexto nos enfoca la opción de Objetivas, mediante la cual

se nos presentarán la herramienta que contiene los valores de verdad.

Page 434: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

62

Finalmente presionamos el botón (Guardar) indiferentemente el

tipo de pregunta que se creó.

Presionamos el botón (Cerrar) si no deseamos crear mas

Preguntas ó ignorar la operación.

Una vez que contamos con preguntas relacionadas con la materia, podemos

utilizarlas en el desarrollo del Test de conocimiento que es un proceso sencillo,

primeramente nos dirigimos a la ventana principal de Admisión y

seleccionamos, Parámetros – Selección – Test Conocimiento.

En la creación se deben especificar parámetros de rigor, como son Nombre del

Test, Autor, Orientación (tipo de empleado que puede rendir el Test), una

pequeña descripción sobre el mismo y por último el tiempo que se tomará en

desarrollar el Test.

A continuación en la ventana muestra dos funciones Creación de Test y

Adjuntar Preguntas al Test

Page 435: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

63

En la Creación del Test debemos de llenar los campos como son: Nombre,

Autor, Orientación, Descripción y Tiempo de desarrollo. Una vez ingresado los

Datos Generales del test guardamos y seleccionamos el botón Adjuntar

Pregunta, lo que permitirá que se active la viñeta Adjuntar

Preguntas al Test que muestra el

Contenido de las preguntas que se van añadir.

Page 436: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

64

En esta pequeña ventana observamos como adjuntar preguntas al test,

seleccionando la materia en la que aparecerá un listado de preguntas. Al

escoger la pregunta y dando clic en el botón Añadir aparecerá en el Listado

de Preguntas Añadidas. Luego damos un puntaje a cada pregunta. Remover

(-) me desvincula la pregunta con el test y Modificar puedo deshacer la

operación realizando un nuevo ingreso.

Al igual que en otras ventanas podemos realizar consultas para modificar

información o en este caso añadir otra pregunta o eliminar alguna pregunta del

Test.

Page 437: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

65

Psicológico: Para crear un Test Psicológico nos dirigimos a la ventana

principal de Admisión y seleccionamos, Parámetros – Selección – Test

Psicológico.

En la creación del Test identificamos varios tipos, pero el sistema se centra en

la realización de test con Respuestas Múltiples, es decir que una sola

pregunta está ligado a distintas alternativas y Respuestas Estándar, es decir

que para todas las preguntas existirán las mismas alternativas.

Page 438: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

66

Primeramente en la creación del Test debemos Registrar los datos generales

como Nombre del Test, Autor, Orientación (tipo de empleado que puede rendir

el Test), una pequeña descripción sobre el mismo y por último el tiempo que se

tomará en desarrollar el Test (Tal como se muestra en la figura anterior).

Por último presionamos el botón guardar para registrar el Test, e

inmediatamente se presentará el siguiente mensaje:

Al presionar el botón Si, se habilitará la viñeta Cuerpo del Test, de esta forma

Se ingresaran las preguntas y si presionamos No, la pantalla regresará a su

forma inicial.

Para poder registrar las preguntas al Test ya sean por primera vez ó no

realizamos la consultas de los test existentes y seleccionamos con el que se

desea trabajar.

Page 439: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

67

Para comenzar a crear el cuerpo o contenido del Test, seleccionamos el tipo de

respuesta, luego la opción Adjuntar preguntas ya sea en la barra de menú o

en la barra de herramienta.

Se debe de seleccionar el tipo de respuesta sea Estándar o Múltiple.

Page 440: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

68

Una vez elegido el tipo de respuesta se escogerá una de las siguientes

alternativas.

Si elegimos Ingresar Opción tenemos que ingresar todas las opciones

posibles de pregunta a crear. Ingresamos la descripción y la adjuntamos con

el botón Añadir (+), si deseamos eliminar damos un clic en la descripción

(opción ingresada) y si queremos modificar damos doble clic sobre la

descripción.

Page 441: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

69

Si elegimos Ingresar Pregunta, tenemos que ingresar todas las preguntas

concernientes al test. Ingresamos la descripción y la adjuntamos con el botón

Añadir (+), si deseamos eliminar damos un clic en la descripción (opción

ingresada) y si queremos modificar damos doble clic sobre la descripción.

Hay que tener en cuenta la forma en que trabaja esta pantalla, se aconseja

hacerlo de forma ordenada para evitar alguna confusión.

Si se trata de respuestas tipo estándar, se aconseja ingresar todas las

opciones de respuestas y a continuación las preguntas.

Si se trata de respuestas múltiples, se aconseja ingresar cada pregunta con

sus respectivas opciones, en todo caso siempre tenemos una visión de lo que

se está ingresando.

Page 442: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

70

✓ Realización del Test

Antes de realizar los Test el aspirante debe registrar algunos datos, que

servirán para comunicarse en caso que sea el elegido.

Para realizar el respectivo registro nos dirigimos a la ventana principal de

Admisión y escogemos Selección- Registro Aspirante.

A continuación aparece una pantalla de Registro Aspirante en la que tendrán

que completar todos los campos tal como se muestra en la siguiente imagen.

Page 443: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

71

Al registrar su información si no existe ninguna Novedad, simplemente

aparecerá un mensaje indicándonos.

Bueno en este momento ya podemos comenzar a realizar los Test para ello, la

persona designada deberá adiestrar a los Aspirante; el Test se puede rendir

utilizando el sistema o de manera escrita (Ver Reportes).

Para comenzar a rendir los test previamente registrada la información de los

aspirante ingresaremos a la ventana principal de Admisión, escogemos

Selección – Comenzar Test y luego el tipo de Test que se va a realizar

(Psicológico o Conocimiento).

Page 444: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

72

Cualquiera que sea la decisión que seleccionamos, previamente se pedirá que

nos identifiquemos, a través del número de cédula.

Luego de ser identificados debemos elegir el Test que se va a rendir, el

encargado buscará la forma de hacerle llegar el nombre del Test al aspirante.

Funcionamiento del Test Psicológico:

Este campo refleja el tiempo de desarrollo

expuesto por el usuario que creó el Test, es decir que es el tiempo límite que el

usuario tiene para desarrollar el mismo.

Page 445: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

73

Este campo le muestra al usuario, el

tiempo que lleva transcurrido en contestar las preguntas y podrá realizar una

estimación del tiempo.

Muestra el avance del Test, es decir el número de

preguntas contestadas vs. El número de preguntas por contestar.

Estos botones me

permiten navegar en el Test.

Iniciar: Permite comenzar el Test, activa el botón siguiente y atrás y comienza

a capturar el tiempo de desarrollo del Aspirante.

Siguiente: Me permite avanzar una a una por cada pregunta y mostrando sus

respectivas alternativas de respuesta.

Anterior: Permite ver la pregunta anterior para poder modificar la respuesta

Cancelar: Cancela la realización del Test por parte del Aspirante.

Cerrar: Permite cerrar la ventana una vez transcurrido el tiempo o terminado el

Test.

Page 446: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

74

En esta pequeña área de texto muestra al aspirante la pregunta perteneciente

al Test que está realizando.

Esta Opción muestra las

alternativas que pertenecen a la pregunta o al Test (depende de su estructura),

como se puede apreciar en la figura el aspirante selecciona la opción según su

parecer y en este caso esta opción se pintará de amarillo, en caso de querer

cambiar de parecer lo puede hacer presionando la flecha atrás.

✓ Funcionamiento del Test de Conocimiento:

Es muy parecido al anterior, la diferencia radica en que según las estructuras

de la creación del Test tengo 2 opciones de alternativas, Múltiples 5 opciones

como máximo y Objetivas 2 opciones (Verdadero o Falso) , la respuesta se

elige dando clic sobre el objeto que se encuentra en la izquierda.

Page 447: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

75

Otra tarea que encontramos dentro del Módulo de Admisión es el de

Capacitación de Personal, tiene el objetivo de llevar un control sobre el

desarrollo intelectual y profesional del empleado, manejando información sobre

los cursos que proporciona la unidad a través de sus propios medios o por la

intervención de unidades externas.

Para ingresar a las tareas de capacitación, necesitamos acceder al contenedor

de opciones de Admisión luego seleccionamos Parámetros si deseamos crear

Page 448: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

76

algún curso o algo relacionado con el mismo, ó si deseamos relacionar cursos

con algún Empleado.

Detalle del manejo de Capacitación de Personal:

Primero creamos de manera general las posibles formas en que se puede

presentar una capacitación, es decir un curso intensivo, una Maestría, un

Doctorado, etc.

Título Curso

Creamos el título independientemente, ya que existe la posibilidad de que más

de una institución Ofrecen el mismo curso, además debemos especificar si la

capacitación que está recibiendo el trabajador merece alguna retribución

económica, para ello hacemos clic sobre la opción Generar Novedad.

Page 449: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

77

Título Curso

Como se puede observar mantenemos el estándar de la barra de herramientas

para manipular esta opción (Nuevo, Consultar, Guardar, Actualizar y Eliminar

Registros).

Creación de Horarios Podemos crear diferentes horarios para utilizarlos en los distintos cursos que

se dicten y controlar por ende la asistencia del trabajador en caso de este

horario coincida con la jornada laboral.

Como se puede observar mantenemos el estándar de la barra de herramientas

para manipular esta opción (Nuevo, Consultar, Guardar, Actualizar y Eliminar

Registros).

Horarios

Page 450: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

78

Periodos Consiste en crear las distintas secuencias con la que se pueda dictar un curso

sea o no de una misma entidad, de esta forma se puede proveer información

válida sobre la regularidad en que se dictan ciertos cursos.

Periodos

Como se puede observar mantenemos el estándar de la barra de herramientas

para manipular esta opción (Nuevo, Consultar, Guardar, Actualizar y Eliminar

Registros).

Crear Curso

Page 451: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

79

Una vez creados todos los parámetros( Títulos, Periodos, horarios), podríamos

comenzar a generar un listado de posibles cursos que servirán para validar

cual es el mas conveniente para mis trabajadores y económicamente para la

Institución.

La creación de cursos consiste en registrar cierto tipo de información

concerniente a Conocimientos que brindan ciertas Instituciones, como ya

hemos dicho al principio del manual el sistema se basa en los botones Nuevo,

Guardar, Consultar, Actualizar, Eliminar, Etc. para realizar las tareas

concernientes, es por eso que en este caso al presionar el botón nuevo

Page 452: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

80

Las formalidades existentes consisten en una visión general sobre las

diferentes formas en que dicha institución posee con respecto a tal curso.

Cada vez que un trabajador realiza un curso, este puede ser adjuntado a su

historial tal como se muestra en la figura, es decir ingresamos al Módulo de

Admisión y de la barra, seleccionamos Capacitación – Ingresar Cursos.

Aquí tenemos un ejemplo de la relación que se crea entre un trabajador y un

curso, se comienza consultando los datos del trabajador por medio de los

parámetros, Índice, Cédula ó Apellidos, luego se consulta el curso para

relacionarlo con empleados, además de otros datos necesarios para tener en

cuenta en futuros ascensos.

Page 453: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

81

En la viñeta Curso Realizado se muestran información de cursos anteriores

tomados por el trabajador al que se le van añadir los nuevos cursos.

Se puede agregar un comentario, sobre el curso que se está ligando con la

persona esto se lleva a cabo en la viñeta Observación.

Page 454: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

82

Hasta el momento hemos hablado de cómo relacionar un curso con un

empleado pero si es más de uno los empleados de una misma Unidad, Sección

o Departamento podemos añadir un grupo de personas con información en

común mediante la viñeta Registro Grupal.

Como se puede observar son los mismos requerimientos de un registro

individual solo que esta viñeta, muestra un listado de personas que pertenecen

a la Unidad selecciona y una vez especificado los datos del curso por medio del

botón añadir se crearan la relación entre el empleado y el curso.

Page 455: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

83

------------------------------------- Módulo de Salud Laboral -------------------------------------

Este Módulo me permite tener un registro Médico básico del personal que

labora en la unidad, para poder validar si las condiciones del trabajador

generadas por los esfuerzos relacionados con su cargo son apropiadas para el,

de esta forma podría evitar situaciones de riesgo para la salud de cualquiera de

los trabajadores.

Page 456: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

84

Como podemos observar el Módulo comprende dos tareas básicas,

empezaremos a revisar la utilización y manipulación de Registro Clínico.

✓ Creación Ficha:

Primeramente la Creación de una Ficha Médica por cada Trabajador,

comenzando así con la fase inicial del control de Salud del Trabajador.

Para ello presionamos el botón

Nuevo y realizamos una consulta sobre el Índice, Cédula y el apellido, Luego

presionamos el Botón de comparación “OK”, si no aparece problema alguno,

entonces será avisado por medio de un Mensaje.

Page 457: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

85

Como observamos los datos se visualizan al hacer clic en el botón OK, de tal

forma que el usuario se preocupará por registrar simplemente ciertos datos

clínicos.

Esos datos son de rigor para realizar un primer diagnóstico general sobre el

estado actual y una recomendación sobre su salud.

Page 458: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

86

Como podemos Observar existe una sub. Clasificación en la viñeta Datos

clínicos, así tenemos las opciones Datos Generales que observamos en la

figura anterior, en la cual se ingresan ciertos datos básicos pero de gran

importancia.

En la siguiente imagen encontramos la viñeta Datos Clínicos, en donde se

pueden añadir algunos datos del trabajador, e incluso una observación, esta

revisión podría realizarse por el departamento médico de la universidad y que

el usuario registre esta información para considerar en el desarrollo normal del

trabajo.

Page 459: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

87

✓ Registrar Tratamiento:

Creada la respectiva Ficha médica del trabajador, la empresa podría realizar un

seguimiento del estado de salud del trabajador por medio de un registro clínico,

en el cual se apuntarían las cosas más importantes sobre la salud actual del

trabajador.

Page 460: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

88

----------------------------- Módulo de Control -----------------------------

Page 461: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

89

El módulo de control permite realizar un seguimiento de cada empleado por

ejemplo, podemos detallar los prestamos que realiza los Gremios como

cooperativas, los prestamos que realiza como anticipos de sueldos, los valores

pendientes generados por pagos atrasados, etc.

En resumen cálculos exactos sobre los distintos rubros de ingresos y egresos,

y un control minucioso sobre las novedades, pero esto lo veremos

detalladamente a continuación.

Comenzaremos por revisar las opciones que se presentan en las Novedades

de Presupuesto.

Primeramente el Mantenimiento de Cargo, con esta opción podemos tener

una visualización rápida de los cargos Presupuestados y Autofinanciados, que

existen en la Universidad.

Page 462: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

90

Detallaremos a continuación el funcionamiento de esta tarea:

Cuando se levanta esta tarea, aparecen por defecto un listado de cargos, los

cuales se rigen por la orientación.

Page 463: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

91

y el estado del cargo indicado.

Cabe recalcar que no hacemos una presentación ordenada alfabéticamente por

que dotamos al usuario de algunos filtros para realizar una búsqueda en el

presente listado.

Y básicamente el usuario revisará el listado para realizar alguna tarea (Nuevo,

Actualizar, Eliminar, agregar Funciones o Requisitos) sobre el o simplemente

una consulta sobre la existencia.

Comencemos a revisar las tareas que van ligadas con esta pantalla.

Page 464: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

92

La creación de un nuevo cargo, para esto nos dirigimos a la barra de tarea y

presionamos el icono (opciones de Cargo).

Esto presenta el siguiente menú:

Observamos 4 botones que detallan tareas

distintas, pero solo uno está activado, mas adelante

detallaremos como activar el resto de los botones,

por el momento damos clic sobre el botón Nuevo

Cargo así se presentará la siguiente pantalla:

Page 465: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

93

Se presenta inicialmente un Índice de cargo que es un Número secuencial,

Pero este se puede cambiar por el número que el usuario desee ingresar

siempre y cuando no existan, en todo caso el sistema presentará un mensaje

de alerta al usuario, una vez que hemos resuelto lo del índice se procederán a

registrar los siguientes requisitos. Disponibilidad se tendrá que decidir entre T/C

(tiempo completo) ó M/T (medio tiempo) según lo designado por el

Departamento Financiero, luego se procederá a seleccionar el Tipo de Cargo

(Docente, Administrativo y Autoridades), cada tipo de cargo presupuestado

posee Categorías (Docente: “Principal, Auxiliar y Agregado” Administrativo:

“Personal de Servicio, Personal Técnico de Apoyo a la Labor Docencia y

Funcionarios”), tal y como se puede apreciar en la figura anterior.

Se especificará nombre del Cargo, el cual al momento de registrarse se

guarda en Mayúscula, Dependiendo de la orientación que se seleccionó se

activará las escalas de sueldos que van ligadas directamente a la creación del

cargo.

Para finalizar la tarea de la creación del cargo se Guarda el registro haciendo

clic sobre Guardar (este botón se activará si todos los requisitos anteriormente

mencionados se han completado).

Retomando el tema anterior sobre la activación de las tareas, debemos

recalcar que están van ligadas estrechamente al cargo seleccionado para lo

Page 466: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

94

cual el usuario debe dar doble clic sobre el registro en el que realizará la

acción.

Para una mejor comprensión de las tareas realizaremos un ejemplo:

1.-) Seleccionamos un cargo de la lista presente:

2) Observemos

Que existen opciones activadas el botón #2 (Actualizar) y el botón #3

(Eliminar), además si presionamos el botón #1(opciones de Cargo)

tendremos la siguiente reacción.

Podemos contemplar que el botón Nuevo Cargo se

encuentra deshabilitado, pero el resto de las

opciones no, es por lo que acabamos de mencionar

que estas tareas van ligadas directamente con el

cargo, empezaremos a detallar el uso de cada una.

Page 467: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

95

Denominación, se realizará para cargos que tienen el mismo código pero

distinta categoría básicamente es una función igual a la creación de nuevo

cargo, por lo general solo se da en la orientación presupuestadas pero en la

categoría Docente, esto no significa que no se pueda dar en otros caso,

pensamos que se puede dar esta aplicación en el Hospital Universitario y

podrían crearse distintas categorías del cargo Doctor.

Continuando con las opciones revisaremos el proceso de adjuntar Funciones y

Requisitos, para esto contamos con un listado general(funciones y requisitos)

del que se alimenta, en la sección de parámetros de cargo que detallaremos

mas adelante, en todo caso del listado general de funciones, se seleccionará

la que se desea añadir haciendo clic sobre el registro indicado se activa el

botón añadir representado por el icono, en caso de que se seleccionó un

registro equivocado, podemos eliminar el registro del listado Funciones del

Cargo, se activaría entonces el botón eliminar , al hacer clic sobre el mismo

eliminará el registro indicado.

Page 468: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

96

Continuando con la revisión, hablaremos sobre las alternativas actualización y

eliminación de cada uno de los cargos.

En realidad son tareas sencillas, la actualización presenta una ventana que me

permite cambiar cualquiera de los requerimientos revisados en la creación de

cargos tal y como mostramos en la siguiente pantalla:

Page 469: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

97

Para corregir cualquiera de la información que se muestra en la pantalla de

actualización, basta con hacer clic en las diferentes alternativas (Check), se

presentará un mensaje de confirmación si decide continuar se marcaran con

un visto permitiendo al usuario realizar el cambio.

En caso de que el usuario no este seguro vuelve a dar clic sobre el check para

quitar el visto lo que devolverá el valor anterior.

Page 470: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

98

Si decide aceptar los cambios realizados presionará el botón Aceptar, caso

contrario presionará el botón Cancelar y no se realizará ningún cambio sobre

el registro.

Para la Opción Eliminar se presenta una pantalla en donde el usuario tendrá

que decidir entre tres acciones (tal como se indica a continuación en la figura).

Si selecciona el botón Histórico el cargo se desactualizará, es decir pasar a ser

parte de los inactivos.

Si seleccionamos el botón eliminar el registro desaparecerá completamente de

la base.

Page 471: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

99

Estas acciones se pueden llevar a cabo siempre y cuando los cargos no estén

ligados con alguna función o requisito, o es mas a un no pertenezcan a una

partida, en todo caso el sistema maneja esta situación por medio de mensajes

oportunos.

Y presionará el botón cancelar para no realizar ninguna acción o cerrar la

ventana después de ejecutar la acción correspondiente.

Parámetros de Cargos

en la creación de cargos mencionamos varios términos como tipo de cargos,

categorías, funciones y requisitos pues bien esos términos se encuentran

parametrizados, es decir que se pueden cambiar su denominación, sin que

Page 472: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

100

esto afecte a la ejecución del sistema, además se pueden crear nuevos

parámetros (Funciones, Requisitos, Tipo de cargos, Categorías).

El funcionamiento es básico para todas las opciones se encuentra el menú y la

barra de herramientas Estándar.

Con la diferencia de que las opciones nuevo y consultar trabajan con un menú

En donde se detallan las tareas anteriormente mencionadas.

Al seleccionar Nuevo y la opción Tipo de Cargo se activa la pestaña

Mantenimiento, en ella se debe especificar, en el área de texto General el

nombre del tipo del cargo con el que se manejará en el resto del sistema, a

demás en la el área de texto descripción de tipo de cargo, de ser necesario se

registrará un nombre con el que se representará en e momento de presentar el

Rol.

Page 473: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

101

Seleccionamos Guardar para registrar el Tipo de Cargo y el sistema nos

responderá con un mensaje de confirmación (revisado al Inicio del manual) y

como muestra de la tarea realizada nos presenta un vistazo sobre el registro

creado, en la pestaña Vista previa tal como mostramos a continuación.

Page 474: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

102

Al seleccionar Nuevo y la opción Categoría de Cargo se carga el combo Tipo

de cargo, y el cursor se posesiona sobre el área de texto marcado como

Descripción de la Categoría de Cargo, lo primero es seleccionar el tipo de

cargo con el que se va a trabajar y luego se registrara la respectiva categoría.

Seleccionamos Guardar para registrar la Categoría del Cargo y el sistema nos

responderá con un mensaje de confirmación (revisado al Inicio del manual) y

como muestra de la tarea realizada nos presenta un vistazo sobre el registro

creado, en la pestaña Vista previa tal como mostramos a continuación.

Page 475: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

103

Al seleccionar Nuevo y la opción Función de Cargo, el cursor se posesiona

sobre el área de texto marcado como Descripción de Función, el área de texto

marcado como general se deshabilita.

Page 476: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

104

Seleccionamos Guardar para registrar la Función y el sistema nos responderá

con un mensaje de confirmación (revisado al Inicio del manual) y como muestra

de la tarea realizada nos presenta un vistazo sobre el registro creado, en la

pestaña Vista previa tal como mostramos a continuación.

Al seleccionar Nuevo y la opción Requisito de Cargo, el cursor se posesiona

sobre el área de texto marcado como Descripción de Requisito, el área de

texto marcado como general se deshabilita.

Page 477: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

105

Seleccionamos Guardar para registrar el Requisito y el sistema nos responderá

con un mensaje de confirmación (revisado al Inicio del manual) y como muestra

de la tarea realizada nos presenta un vistazo sobre el registro creado, en la

pestaña Vista previa tal como mostramos a continuación.

Las tareas sobre las que hemos tratado, se pueden Actualizar o Eliminar en

todo caso, para realizar alguna de esta acción primero se realiza una consulta,

y al seleccionar aun de las tareas se presentara la información sobre la vista

previa, de la cual al dar clic sobre algún registro se encenderán las funciones

de actualización y eliminación dependiendo de la necesidad del Usuario.

Escalas de Sueldos

Actualmente existen 2 clasificaciones de Escalas que se manejan en el

presupuesto de operación designado por el gobierno, para la contratación de

personal que son:

Page 478: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

106

La Escala SHDUG que se orientan a las contrataciones del Hospital de la

Universidad de Guayaquil y la Escala S. Básico con la que se realiza la

integración de nuevo personal en las distintas Unidades de la Institución.

Entonces como cada cargo se encuentra en una categoría definida por el

consejo Universitario, se parametrizó una tabla de donde se obtiene la

definición del sueldo básico que se registra en la creación del cargo.

La interfaz que permite crear las Escalas se encuentra gobernada por los mismos estándares que se trataron en el inicio de este manual, es decir que las barra de Herramientas y la barra de menú llevan el mismo contenido.

En esta sección aprenderemos a realizar las tareas típicas de creación,

Consulta, Actualización y Eliminación de Registros conocidos como

Escalas.

Como primer punto se debe seleccionar la opción Nuevo ya sea de la barra de

herramientas o del menú (Archivo - Nuevo).

Page 479: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

107

Como podemos observar en la imagen anterior al escoger la opción nuevo se

deshabilito la parte de la consulta y además aparece un pequeño menú con las

dos únicos tipos de denominaciones de escalas sobre los que hablamos hace

un momento, al escoger el tipo de escala los requerimientos siguientes son

iguales, Primeramente se debe seleccionar el Tipo de cargo e inmediatamente

una categoría si es que posee, procedemos a dar un nombre que indique un

Orden ( Primera, Segunda , etc ) y finalmente establecer el valor que

acompaña a dicho orden.

Es importante notar que después de seleccionar la acción tarea, nueva

creación de escala, entonces se presenta una vista previa, que se aconseja

revisar antes de proceder con la creación del nuevo registro.

Page 480: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

108

Aunque no es necesario por que al intentar guardar el registro creado, se

verifica posibles coincidencia, al final del ingreso de requerimientos para crear

una escala simplemente faltaría confirmar la creación de la escala presionando

el botón Guardar

Para activar las opciones de Actualización ó Eliminación, primero se realiza una

consulta y se navega en la grilla, hasta conseguir el registro sobre el que se

aplicarían estas tareas.

Page 481: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

109

Se realiza la tarea respectiva en el caso de que presionamos actualización

esta opción enciende a la de guardar la cual se encargaran de actualizar este

registro.

En la parte de la grilla de resultado observemos que existe un área de texto de

acuerdo que indica el ingreso de Año a consultar, esto me permite realizar

consultas históricas de actualización de sueldo.

Cuando el gobierno habla de incrementos saláriales la pantalla de escala

maneja una opción especial ubicada en la barra de menú Edición denominada

Actualizar Valores, esta tarea levanta la siguiente ventana.

Page 482: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

110

El usuario se podrá ajustar a las decisiones básicas de incremento si

selecciona la opción de Actualización “Ambas Escalas” , lo único que

necesitará es definir el Incremento dispuesto por el gobierno y después

simplemente hacer clic sobre la opción guardar(botón con la Imagen del

Disquete), el botón que se encuentra en el centro con la imagen de una BD

tachada, me indica que puedo deshacer el cambio del incremento.

Si las autoridades de la institución indica que el incremento es solo para una de

las tablas presupuestadas entonces se elige la indicada esto provoca que se

active el Frame Condicionar Actualización en caso de que el aumento salarial

básico sea específicamente a un tipo de cargo, luego se procede a indicar el

porcentaje de incremento y se confirma la acción guardando los cambios

efectuados.

Page 483: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

111

Tabla de Sueldos Autofinanciados

En la Universidad de Guayaquil existen 2 formas de contrataciones las

denominadas Presupuestadas que acabamos de revisar y las llamadas

Autofinanciadas que se mantienen con recursos por la autogestión de cada

Unidad pertenecientes a la Institución, el caso es muy similar al anterior se crea

una tabla general de valores por año es decir que se aprueba un incremento

por el consejo universitario, de esta manera se puede obtener el costo total

mensual que representa la contratación de un individuo en distintos rangos de

sueldo, el uso de los valores de la tabla no es abierto esta ligado con los

ingresos que generan las carreras autofinanciada de cada facultad.

Los valores descritos en la tabla son los que asoman en el contrato de la

persona, detallaremos el proceso de creación de un rubro para la tabla,

además de la actualización de valores de la misma.

Primeramente, se muestra una vista previa de todos los valores insertados

hasta el momento, si observamos la siguiente figura, notaremos que la consulta

esta directamente relacionada con el contenido del combo etiquetado como

actividad.

Page 484: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

112

Para la creación de una nueva Fila en esta tabla se selecciona la actividad,

luego se presiona el botón Nuevo (primer botón de la barra de herramientas), el

mismo que posesionaría el cursor en el área de texto denominada valor en

donde se ingrese el básico por ultimo presionamos guardar y podemos verificar

que el registro se creo por que debe reflejarse en la vista previa.

En la creación del registro existe una pequeña variación entre lo que es la

actividad Autofinanciamiento y la actividad PRE – Universitario, ya que en esta

ultima actividad durante la creación se activan nuevos requerimientos( Una

condición y Un cargo) para la creación de la fila tal como se muestra en el

grafico siguiente.

Page 485: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

113

Para concluir está parte, revizaremos los parametros que se encuentran detrás

de este control.

Básicamente esta opción permite realizar un cambio o actualización de los

valores que constan en la tabla, en especial los definidos por aportaciones,

Personales y Patronales a demás del sueldo básico asignado por el gobierno

que según la ley borda los $ 196.00.

Page 486: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

114

En fin como mencionamos al inicio del manual casi todas las tareas cuentas

con las operaciones básicas ( crear, actualizar, eliminar).

Creación y distribución de Partidas

Fijémonos bien como esta pantalla tiene una similitud con la principal de cargo,

al seleccionar la opción Creación y distribución de partidas de la barra de

Herramientas Novedades, se presenta una pantalla que como servicio inicial

nos muestra un listado de Partidas, el cual se somete a los valores, de Estado

de Partidas y de la Orientación de la partida.

Page 487: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

115

Por otra parte para navegar entre este listado el sistema es dotado con filtros

para buscar información particular dentro de un listado general.

Existen dos conceptos para esta ventana, el Uno se refiere a la creación de

Partidas (botón #1 de la barra de herramientas) y la distribución de partidas

(botón #4 de la barra de herramientas) entre los distintos cargos, según la

necesidad de las unidades siempre y cuando conste con la aprobación del

Dpto. División Presupuestaria.

Creación de partidas

Tenemos que al comenzar la creación de una partida nueva fijarnos bien en la

orientación de la pantalla principal ya que existe diferencia en cuanto a valores

en la creación, especialmente en la numeración de la partida.

Creación de partida Autofinanciada

Page 488: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

116

El código está conformado por las siguientes partes:

AAAA: hacen referencia a la actividad que existe en la Universidad de

Guayaquil.

Nótese que al hacer clic sobre el botón Actividad, se muestra el listado que

mencionamos hace un rato, y este afecta directamente al código de

presupuesto.

UUUUUUU: Es el código de rol que posee cada una de las facultades, de igual

forma que en el parámetro anterior podemos consultar la dependencia sobre la

que se va a crea la partida y obviamente este valor se refleja en el código de la

creación.

Page 489: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

117

La representación de la “IIIIII.III” se basa en la cantidad de dígitos que tiene

una cédula presupuestaria en este caso la de sueldos temporales, este

parámetro no solo interviene en la creación del código, sino también en la

numeración que repre4entara a esta partida.

por valor inmediato me pone la fuente de fianaciamiento con el valor de 1

reemplazando la F en el código mencionado, pero si está partida no se basa en

esa fuente, podemos seleccionar la necesaria.

Por ultimo se decide que clase de personal se desea contratar con la partida

recién creada. Llenado los espacios conformado por la letra DD

Page 490: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

118

Presionamos el botón Guardar para finiquitar la operación, y al cerrar esta

ventana inmediatamente se puede apreciar el resultado de estado operación.

Para este caso el ejemplo que hemos realizado, ha sido aplicado a las partidas

de Autogestión.

Para comenzar a distribuir la partida a nivel de cargos, damos doble clic sobre

la partida con la que queremos trabajar y luego notaremos como se activan

algunas funciones en la barra de herramientas en especialmente la opción de

Page 491: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

119

distribución (botón #4) que al hacer clic sobre esta opción se levanta la

siguiente ventana.

En este caso podremos solo añadir cargos Autofinanciados por que no se

permite el cruce de Datos, para dar comienzo a la distribución de partida,

presionamos el botón Cargos que inmediatamente presenta un listado de

cargos sobre el cual se hace una selección según la necesidad de la unidad.

Page 492: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

120

Una vez seleccionado el cargo se tiene que definir el valor que asomará en su

contrato.

De está forma el valor se obtiene de la tabla de Sueldos Autofinanciados que

revisamos anteriormente, Así presentan las Actividades y según la escogida se

mostraran los valores, en el caso de que la partida que se está distribuyendo

es Presupuestada en el botón sueldo asomaran las Opciones de las escalas

que también se trataron anteriormente.

Page 493: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

121

Entonces ya tenemos el cargo, el valor que se presenta en el contrato, por

ultimo definimos la disponibilidad y presionamos el botón Añadir, para este

ejemplo ficticio hemos decido tener 2 solicitudes para este cargo.

Y el proceso habrá finalizado, realizando una presentación en la matriz de

abajo.

En caso de que la creación no haya resultado según las expectativas, se puede

Eliminar o Actualizar el Registro haciendo doble clic sobre el listado de la

distribución de la partida. Para esto aparece un mensaje de verificación sobre

la decisión que hemos tomado.

Page 494: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

122

Presionamos Si, para realizar alguna acción y Obviamente presionamos No,

para cancelar la posible orden.

En este caso presionamos Si y como resultado se Activaron los botones de la

Actualización y Eliminación

Page 495: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

123

En el caso de que se quiere actualizar solo es en función de la cantidad. de

personas que ocuparan ese cargo(el área de texto Cant. Empleados).

En el caso de la Eliminación se borra el registro físicamente si no está

relacionado con algún trabajador ( no se produce ninguna asignación de la

partida), pero si existe una relación simplemente se deshabilita el registro en la

base es decir se lo podrá consultar como histórico.

Finalmente sobre la pantalla principal creación y distribución de partidas

tenemos la opción de Eliminar, Físicamente si e que no existe ninguna

distribución de la misma y lógicamente en caso de que se detecte alguna

relación.

Movimientos de Partidas

Esta fase consiste en Distribuir las partidas asignadas a las Unidades a

personal calificado que cumpla el perfil que sirve para ocupar estos cargos.

Estos movimientos pueden ser Contrato por primera vez, Renovación de

Contrato, Ascensos, Cambio de Unidad, Etc.

En todo caso el movimiento de partidas me permite verificar la disponibilidad de

un cargo en especial, para esto se utiliza un Kardex de personal, que presenta

la información de la utilización de los cargos, para esto se debe especificar

ciertos requisitos de rigor veamos el siguiente ejemplo:

Page 496: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

124

Primeramente se debe especificar la Orientación de la partida, luego definirle

Tipo de Cargo que se va a consultar, por ultimo la unidad/( si se conoce el

código de la unidad se puede digitar en el área de texto de lado derecho del

botón Unidad presionamos enter y aparecerá la información solicitada, ó se

presiona el botón el cual presenta un listado de las Unidades según la elección

del Usuario) de donde deseamos obtener información.

Para revisar la información de la disponibilidad hacemos clic sobre el registro a

consultar(tal como se muestra en la figura superior) y de forma inmediata se

cargan los datos de Sueldo básico, La cantidad de Cargos presupuestados, la

Page 497: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

125

cantidad de personas que actualmente están bajo la misma situación (mismo

cargo en la misma Unidad), y la cantidad de Vacantes que es el objeto del

informe.

Para comenzar a realizar los respectivos movimientos e informe de partidas se

valida la disponibilidad para esto vamos a contar con el siguiente ejemplo, al

registro seleccionado en la imagen anterior, se realizará un ascenso.

Primeramente seleccionamos el registro sobre el que se va a trabajar, haciendo

doble clic sobre el, luego el sistema pide una confirmación sobre la acción al

presionar si se activar la tarea Activos localizada en el menú de la barra de

Herramientas (botón #1).

Esta acción presenta una ventana sobre la cual se desarrolla, el movimiento indicado para nuestro ejemplo se trata de un ascenso y al mismo tiempo de una Reubicación.

Page 498: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

126

Como se puede apreciar los datos del registro seleccionado aparecen en la

parte superior, en la parte inferior se plantea al usuario requerimientos para

que realice el movimiento, seleccionara los datos que sean necesario, en este

caso el trabajador será trasladado de sección y además se le asigna un cargo

superior.

Presionamos el botón Guardar (imagen de disquete), para aceptar el Ascenso,

el sistema pide una confirmación de la tarea por medio de un mensaje.

Page 499: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

127

Al presionar el botón Si, se registra la nueva situación y esto se refleja en el

kárdex.

Una vez que se crea el nuevo movimiento, se debe crear el respectivo informe,

no de manera inmediata, ya que el sistema controla la situación pero se

aconseja hacerlo para que la posesión se cuanto antes.

Cuando que se ingresa a la opción de movimientos se realiza una búsqueda

de informes pendientes y presenta el siguiente mensaje si es que existen

movimientos

Page 500: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

128

Para crear un Informe o Revisar alguno existente, se debe levantar la ventana

que posee la tarea respectiva (botón #3) de la barra de herramienta.

Si presionamos el botón Nuevo podemos revisar los trámites pendientes por

cada uno de los movimientos, tomando el ejemplo anterior.

Se puede observar que los datos ingresado en el movimiento aparecen en el

listado

Para continuar creando el informe seleccionamos el registro haciendo doble clic

sobre el

y la información adicional a este registro, se ingresa en los Literales de la

parte inferior, el llenado de estos Literales esta directamente ligados con el

movimiento seleccionado.

Page 501: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

129

Las opciones a)Tipo de Tramite, b)Periodo de Contrato Anterior, c) Periodo de

Contrato Actual, d) Partida a Ocupar e)Carga Horaria, f)Autorización,

g)Referencia, h)Observación, son estándar y se puede añadir información

haciendo doble clic sobre cada una de las áreas de texto que deseemos.

Guardamos el Informe creado y nos presenta el siguiente mensaje:

Page 502: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

130

Presionando si el botón Imprimir Informe se activa, que al hacer clic sobre el

mismo, nos da una vista previa de cómo quedo el procesos realizado.

En caso de querer efectuar una corrección sobre el informe, nos dirigimos a la

ventana de Informe pero como ya lo guardamos, tendríamos que presionar

consultar.

Page 503: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

131

Nota: la mayoría de los movimientos tienen el mismo proceso, pero cuando se

trata de registro que se van a crear por primera vez, los movimientos se crean

desde otra ventana, ya que los datos del personal a contratar no existe,

entonces el proceso será el siguiente:

Primero se registran los Datos personales (exclusivamente los básico) del

trabajador, con la finalidad de poder crearle su registro laboral.

Cuando hablamos de los datos básicos nos referimos a Cedula, Apellidos y

Nombres, el resto de la información que aparece en la pantalla será

completado por el Departamento de Admisión.

Page 504: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

132

Después de ingresar los datos

básicos debe registrarse los datos

Laborales que indican bajo que

situación ingresa el nuevo personal

De igual forma solo debe especificar los datos básicos requeridos en la pestaña

Inf. Empleado, el resto de la información será actualizada por el departamento

de admisión.

Page 505: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

133

Novedades de Rol:

Hasta ahora se ha revisado varios proceso que son importantes, pero se

pueden considerar previos para el funcionamiento del sistema, la Opción

Novedades de Rol del módulo Control, me permite registrar los distintos

movimientos que infieren directamente en la retribución económica de cada

empleado, estos movimientos se conocen como novedades de rol se

encuentran de dos tipos (Ingreso y Egreso), a demás en este módulo

encontramos también la parte fundamental del proceso de nómina que es el

mantenimiento de los rubros que participan en los diferentes cálculos, iremos

detallando cada una de las distintas opciones que se encuentran en esta

opción.

Primero analizaremos las novedades de Descuentos que se generan cada

quincena:

Tribunal de Menores: Este descuento se registra por cada quincena, en la

primera es para el personal administrativo, y en la segunda para el personal

docente, básicamente este proceso se da cuando existe una demanda por

parte del tribunal el oficio llega a la Institución y se descuenta directamente del

rol de pagos.

Page 506: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

134

La ventana es de sencillo manejo, se debe completar los requerimientos Tipo

de personal (Docente ó Administrativo), Estado Actual (Activo ó Jubilado),

luego ingresamos el Índice o Cedula del trabajador para consultar su

existencia en la Unidad.

Se especifica el valor especificado en la demanda, registramos el numero de

oficio del juzgado, damos clic sobre el botón Guardar y finalizamos la operación

el registro añadido aparece automáticamente en el listado.

Page 507: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

135

El descuento se realizará mensualmente hasta que el registro sea dado de

baja; para dar de baja, actualizar o eliminar se debe hacer doble clic sobre el

registro en el que se va a trabajar, esto presenta una pequeña ventana que

mostraremos a continuación.

Prestamos al IESS

El funcionamiento es similar a la ventana anterior, pero para este caso se

deben hacer especificaciones sobre las cuotas que se van a cancelar, esto lo

podemos analizar en la pestaña Detallar Cuotas.

Page 508: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

136

Se debe indicar la fecha desde que el sistema comenzara a realizar los

descuentos, hasta cuando se finiquita el, a demás el valor total de préstamo y

de volverá como resultado, la cantidad de pagos.

El descuento se realizara mensualmente hasta que el registro sea dado de baja

según la Fecha final de cobro, se puede actualizar las fecha Inicial siempre y

cuando no se haya realizado ningún descuento y se pueden realizar cambios

en la fecha final mientras no haya caducado el préstamo.

Page 509: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

137

Créditos Otorgados por el Rectorado:

Estos préstamos se descuentan como anticipos de sueldos, pero el

departamento financiero establece las formas de pago y se crea una relación

entre los trabajadores que desean acceder al préstamo y el crédito.

En todo caso para manejar esta novedad realizamos lo siguiente: Ingresamos a las Novedades de Rol seleccionamos Préstamo-Anticipo, luego la opción Crear Préstamo, presentando la siguiente ventana

Los valores de los prestamos se ingresaran según lo dispuesto por el

departamento financiero, para ello lo que se hace es ingresar detalles de

préstamo, como nombre, Detalle, y otros requerimientos.

Page 510: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

138

El detalle de préstamo se activa cada vez que se añade un registro que

identifica una situación de pago como las que se muestran en Listado.

Relación Personal Préstamo:

Una vez Creado el préstamo y todas sus condiciones el siguiente paso es

relacionar o vincular a las trabajadores con el mismo, así tendríamos que

realizar la siguiente acción.

Page 511: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

139

Entonces, se presenta la siguiente ventana que permite llevar a cabo está tarea

Page 512: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

140

Primero seleccionamos el descuento, luego decidiremos que tipo de ingreso

realizaremos ya que tenemos dos formas de registrar el préstamo, la primera

es de una Forma General consiste en llenar un listado con todos las personas

que pertenecen a las partidas presupuestadas y luego el usuario tendrá que

remover a las que no desean el préstamo.

La otra forma es el Ingreso Particular, se da cuando el préstamo es limitado

para cierto número de personas, ó se desea reintegrar a alguien que en

primera instancia rechazo la oferta.

En este caso se realiza una búsqueda personal (por Índice o Cédula), una vez

que encontramos a la persona se activa el botón Guardar al hacer clic sobre el

mismo el registro aparece en el listado que se encuentra en la parte inferior de

la ventana.

Cada vez que se hace un reintegro de una persona al préstamo, después de

un tiempo prudencial, este asumirá el total vigente hasta el pago actual.

Page 513: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

141

Debido a las distintas agrupaciones sindicales que existen en la institución y los

créditos que proveen, se cuenta con un sub. módulo que permiten subir estos

valores, para poder realizar un descuento, en el proceso de pagos.

Los valores llegan al departamento de control de novedades, por medio de

listados impresos ó a través de un disquete como un archivo dbf, analizaremos

ambas opciones

Ingreso / Actualización:

Page 514: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

142

En esta ventana, el usuario debe especificar los requisitos generales, el gremio

y la columna (Descuento), con la que va a trabajar, esta ventana trabaja por

columna y por lo general los listados que se ingresan no son extenso.

Una vez ingresado, los requisitos generales se debe registrar los datos del

trabajador que posee el descuento, para ello se utiliza el índice que la Unidad

le asigno, hacemos enter sobre el área de texto en donde ingresamos el índice,

ó presionamos el botón que se encuentra a su derecha.

De igual forma que en las ventanas anteriores, encontramos un listado en

donde se muestran los registros que se añaden, en caso de querer realizar una

actualización de valor, o eliminar el registro hacemos clic sobre el registro y

trabajamos con una pequeña ventana dependiendo de la necesidad que tenga

el usuario.

Page 515: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

143

Para realizar el ingreso de los rubros que vienen en un dispositivo, utilizamos la

siguiente ventana.

Presionamos el botón #1, para cargar los gremios en el combo luego, hacemos

clic en el botón Buscar Archivo para seleccionar dicho archivo.

Para finalizar presionamos el botón Aceptar para comenzar a subir los

descuentos.

Page 516: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

144

El lado humanístico de los gremios preocupados por el bienestar de sus

integrantes, pactaron realizar una recolecta denominada ayudas, esta es

aprobada por las autoridades de la institución, actualmente llega al centro de

computo, indicando el valor a descontar por dicho rubro, entonces se lleva un

registro de todas las ayudas que se cargaran al momento de efectuar los

descuentos, para esto nos valemos de la siguiente ventana.

Al levantar esta opción observamos que los combos aparecen con la

información respectiva, en el combo Gremio, solo asoman aquellos a los que

se les permite cobrar este valor, el usuario debe simplemente seleccionar los

datos que necesite e ingresar el valor y se activara el botón Guardar para

grabar el registro.

Revisaremos ahora los valores generados por otros ingresos.

Sub. Rogación

La sub. Rogación son valores que se obtiene cuando un trabajador reemplaza

a otro de mayor o igual jerarquía, y por lo general por realizar esta tarea se

Page 517: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

145

adquieren derecho por la responsabilidad. Adquirida, el usuario de este

modulo, tienen una vista previa de todos los casos actuales

Para realizar estas tareas se debe primero seleccionar el Tipo de Sub.

Rogación, luego al dar clic sobre el botón #1, se levanta la siguiente pantalla.

Page 518: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

146

Para llenar este formulario el Usuario debe comenzar por, indicar el rango de

fechas al que pertenece esta novedad, luego se procede a ingresar los datos

del trabajador que se va a sub. Rogar, a continuación los datos del subrogante,

(la búsqueda de los datos de ambos trabajadores puede ser por el Índice o el

número de cedula) ello se da clic en el botón Índice, la Información resultante

se genera Automáticamente, se puede añadir algún comentario adicional en el

área de texto Observación.

Se pueden eliminar registro, haciendo clic sobre el listado de Información de

subrogantes, respecto a la actualización de valores solo se puede realizar

cambios en las fechas en cuanto no se haya realizado ningún pago.

Page 519: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

147

Ingresos por Movilización

Este valor se reparte a los trabajadores que por lo general se les encargan

tareas externas a las instalaciones de las institución, por lo general se paga

mensualmente excepto cuando el trabajador toma vacaciones.

El uso de esta ventana es deforma sencilla, ya que el usuario, registra solo los

valores por novedades que se presentan, para esto cada departamento envía

si es que hay un cambio con respecto al personal que se encargan de realizar

las gestiones entre la institución y otras dependencia.

El usuario debe constar con la información que va cambiar es decir los datos

básicos sobre el trabajador que es objeto de la novedad, asumimos que

siempre se va a conocer el índice o el numero de cedula, el cual debe ser

ingresado en el área de texto indicada, luego presionar enter en la misma área

de texto, ó hacer clic sobre el botón.

En caso de que el dato (índice ó cedula) sean incorrectos el sistema advertirá

lo que esta pasando por medio de un mensaje, después de que se verifico la

validez del datos se necesita ingresar el valor correspondiente(tal como se

muestra en la siguiente figura) para finalizar se debe guardar el registro

haciendo clic sobre el botón Guardar y como resultado final de está operación

tendremos el registro enlistado en la parte inferior de la ventana.

Page 520: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

148

Cundo se desea elimina un registro (tal vez por que se lo ingreso

erróneamente) o se desactualiza el registro por que ya no va a seguir ganando

este valor, o simplemente una actualización del valor que gana actualmente

necesitamos hacer doble clic sobre el registro y deforma inmediata aparece un

mensaje de confirmación de la posible tarea que piensa realizar si responde si

a la interrogante que plantea el sistema muestra la siguiente pantalla.

Page 521: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

149

Finalmente la decisión tendrá que ser revisada según la necesidad que se

presente.

Creación de Rubros

Hasta ahora hemos hablado de los descuentos y de los ingresos que se

generan por actividades, pero en el pago de los trabajadores por sus servicios

intervienen varios rubros algunos son valores constates, otro dependen de una

formula, otros dependen de parámetros, por lo que el sub. módulo que vamos a

analizar en este momento consideramos es uno de los mas importante que

tiene el sistema.

En el mismo menú de Novedades de Rol, encontramos la sección denominada

Rubros, esta ventana me permite crear rubros de distintas naturaleza (ingreso,

egresos, totales), además de especificar su contenido (Valor o Formula de

Cálculo) analizaremos paso a paso esta ventana.

Page 522: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

150

La parte superior de la ventana se encuentra realizada bajo los estándares

mencionaos al inicio de este manual (es decir la barra de herramientas y la

barra de menú contienen las tareas básica “nuevo”, “consultar”, “Actualizar”,

“Eliminar”).

Por lo que al iniciar la creación de un rubro, siguiendo lo indicado se debe

escoger la opción Nuevo ya sea de la barra de menú o de la barra de

herramientas.

Page 523: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

151

OH por ultimo usar las teclas de control mencionadas en el menú., en todo

caso la reacción que genera la opción Nuevo es cargar un listado de todos los

rubros que posee hasta el momento, pero esta lista obedece a los parámetros

Origen y Tipo de Rubro.

Tal como se muestra en la siguiente figura.

Page 524: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

152

Creación de un Rubro

Primeramente el usuario selecciona el origen del rubro tendrá que elegir entre

Presupuestados (rubros que aparecen en el Distributivo de Gastos) u Otros

(rubros que están definidos en el presupuesto por ejemplo los créditos de los

Gremio, o los Rubros Totales).

Como segundo paso debe seleccionar el Tipo de rubro que va a crear

(Ingresos, Egresos de Ley, Egresos ó Totales).

Como siguiente paso debe realizar una consulta del rubro (todos los rubros que

se van a crear deben tener un origen en el caso de los presupuestado nacen

en los gastos de presupuesto y para el caso de los que no son presupuestados

se registran en una tabla que se asemeja a los presupuestado.

Contando ya con el nombre del rubro, es obligación asignarle un sobre nombre

o abreviatura, el cual se recomienda de no ser de tamaño exagerado ya que

se identificara al rubro en la vinculación del proceso ó en la generación de una

formula con dicha abreviatura.

Se debe asignar prioridad al rubro solo si el tipo elegido es de Descuento, por

que existen estándares dispuestos por las autoridades que se deben respetar

al momento de realizar el descuento

Page 525: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

153

Se puede direccionar un rubro específicamente a un tipo de personal, si elige

dar clic en la opción Tipo de personal se llenara el combo con información

sobre la que el usuario decidirá entre administrativo ó docente.

Completo todos los requerimientos para la creación del Rubro, lo que sigue en

el proceso de creación es registra lo como tal, para eso presiona clic en

guardar y aparecerá en listado que se puede observar en la parte inferior, si

deseamos podemos establecer su forma de calculo o valor en este momento

simplemente haciendo clic sobre el registro para dirigirnos a la pestaña

Parámetros.

En todo caso si optamos por no crear su valor en ese momento podemos hacer

una consulta sobre el registro y aplicaríamos los mismos pasos mencionados

en el párrafo anterior.

Asignación de Valores

Page 526: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

154

En la pestaña encontramos las opciones:

Relacionar, por lo general se da esto en rubros que específicamente se

relaciona con algún cargo ó con un cargo en una determinada unidad.

Valor/Formula, que me indica como se obtiene su denominación económica,

sobre la que trataremos en este momento.

En la pantalla se le dan dos opciones al usuario, dependiendo de lo acordado

en el cálculo de este rubro elegirá la que se ajusta a su naturaleza,

examinemos primeramente la Opción Ingreso de Valor.

Page 527: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

155

Como podemos notar esta opción nos conduce a la dura tarea de elegir más

opciones pero que están fijadas de acuerdo al valor de los rubros. Para las tres

primeras opciones simplemente se presenta un icono de un Visto que indica

que el valor se le asignará según las consideraciones.

Si consideramos la última sugerencia de la Opción tendríamos el siguiente panorama.

Se nos presenta un área de texto sobre el que se espera se digite un valor que será constante por el resto de los cálculos.

En todo caso después de seleccionar la opción adecuada debemos realizar la

confirmación de estos valores dando clic en el botón Aceptar.

Si la opción para el cálculo del rubro es proporcionado por una fórmula

entonces debemos revisar la otra opción.

Esta opción me presenta una especie de calculadora en la que no únicamente

se utilizan números, sino también Rubros, e incluso ciertos parámetros

Page 528: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

156

estáticos, que se previeron en la etapa del Análisis de este Sub. Módulo, los

botones a simple vista indican su contenido, pero haremos una revisión rápida

comenzando de Izquierda a derecha tenemos el botón de retroceso que limpia

poco a poco lo que contiene el área de texto en donde se desarrolla la fórmula,

el siguiente botón que tiene las siglas inscrita R.I me presenta los rubros de

Ingresos que se hayan definido, incluso si estos rubros no están en el proceso,

el siguiente botón me presenta los parámetros que comentamos al inicio de

este sub. Módulo, seguido tenemos el botón marcado con las siglas R.E, me

permite seleccionar los rubros de egresos, por último tenemos el bloque de

teclas numéricas y el bloque de los signos matemáticos.

A continuación un pequeño ejemplo:

puede darse la situación de que el rubro que se esta creando tenga un valor

especifico por cargo entonces deberíamos realizar lo siguiente.

Page 529: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

157

De un clic tal como se muestra en el botón Relacionar, elija la opción a la que va a acceder en este caso R. Con Cargo, presenta un mensaje de confirmación para la tarea que ha elegido, si decide confirmar, entonces se habilita la pestaña Relación – Cargo.

Para completar la relación entre el rubro y el cargo , primero se realiza una

búsqueda del cargo, para ello hacemos clic sobre el botón Consulta cargo,

este desplegará el listado de todos los cargos activo, seleccionamos el

indicado y luego procedemos a ingresar el valor por último presionamos el

botón añadir para confirmar la relación, en caso de que se quiere eliminar o

modificar el valor del rubro, simplemente damos doble clic sobre la vista previa

de la relación que se muestra, y eliminamos con el botón activo Remover , en

caso de querer actualizar al dar doble clic sobre la vista previa los valores

actuales se pegan sobre cada una de las áreas de texto correspondiente,

Page 530: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

158

entonces en la parte del valor se cambiaria, y para guardar los cambios

presionamos el botón modificar

Para realizar la relación del rubro con la unidad, se debe escoger en el botón

relación la otra alternativa (R. Con Unidad) esto activara las opciones de la

pestaña Relación – Unidad siempre y cuando respondamos positivamente

sobre la confirmación que hace previamente el sistema.

Se deben completar los requerimiento (unidad, Tipo Partida, Partida) esto

conlleva a que se presente un registro de todos los cargos basados en los

requisitos, cada ves que se da doble clic sobre uno de los registro principales

se activa el botón añadir , pero antes de presionarlo debemos ingresar el valor

y obtendremos una vista previa (Grilla de la derecha ) de cada registro que se

va añadiendo, de la misma forma cuenta con las funciones de actualización y

eliminación que la pestaña anterior y se maneja bajo los mismos conceptos

Page 531: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

159

Añadir

La Ultima tarea del Menú Novedades de Rol, se refiere a los procesos, estas

tareas están compartidas en la creación de procesos, Ejecución de Procesos y

un proceso que va ligado a la ejecución que es la Transferencia Bancaria.

Revisaremos primero la creación de procesos:

Un proceso es un tipo de pago, que se realiza en un intervalo de tiempo esta

compuesto por rubros ordenados a manera de matriz, existen tres principales

por el contenido de rubros que son PQA con la que se realizan los pagos de la

primera quincena del personal Administrativo, SQA con la que se realizan lo

pagos de la segunda quincena del personal administrativo, y SQD con este se

realiza el pago mensual para el personal docente.

Existen otros procesos que no tienen mayor cantidad de rubros, por los que

son agrupados en una única denominación PA, pagos anuales para ejecutar

los procesos de pagos de aquellos rubros que se dan una sola vez en cada

año(decimos y otros beneficios).

Page 532: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

160

Ahora si retomemos el tema de la creación de estos proceso necesitaremos de

la siguiente ventana.

Para comenzar esta ventana se divide en dos tareas, la primera que se

encarga de la creación del proceso y de su definición de tiempo, observemos

que posee las tareas estándar en las barra de menú y en la barra de

herramienta.

El funcionamiento consiste en activar la opción nuevo de las distintas maneras

ya vistas en las otras tareas, se registra el nombre para el proceso y luego las

siglas el cual se recomienda que no contengas espacios en blanco ni

caracteres especiales, luego se procede a orientar el proceso si es que lo

amerita (seleccionar el tipo de personal al que esta orientado el proceso), se

guarda y luego se añaden las condiciones de tiempo es decir con que

periodicidad se ejecutará este proceso.

Page 533: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

161

Una vez creado el proceso tendríamos que comenzar a crear la matriz para

ello se adjuntan los rubros creados en la sección anterior pero se los debe ir

dando ciertas especificaciones de columnas y filas por que al mismo tiempo

esto reflejara el contra cheque impreso.

Ejecución de Procesos

Consiste en una ventana que recopila toda la información contenida en los

procesos, trabaja de manera independiente basada en ciertos requisitos, que

el usuario debe definir.

El proceso se puede llevar por partes en el ejemplo hemos seleccionado solo al

personal de la sección de actualización

Page 534: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

162

El proceso requiere de cierta información que son los filtros que tenemos en la

parte inferior, no es necesario ingresar todos pero si se recomienda, esto hace

que el proceso trabaje con cierta información ya depurada, además se debe

primeramente seleccionar las tareas que van a realizar para comenzar la

ejecución lo hacemos sobre el icono de Iniciar que se encuentra en el marco

derecho en la parte superior del logo de la Institución, si quisiéramos cancelar

el proceso se presiona la opción cancelar que se encuentra en la parte inferior

del logo de la Universidad

Transferencia Bancaria

Una vez culminado la ejecución de los procesos debemos realizar un proceso

que se conoce como transferencia bancaria el cual consiste en generar un

archivo con cierto tipo de información que se enviara al Banco Central del

Ecuador, para realizar los respectivos depósitos en las cuentas de los

trabajadores.

En este proceso se puede anular o retener el pago de algún trabador por

sanciones u otros motivos. El funcionamiento es sencillo primero se deben

seleccionar los datos es decir los procesos que se van a pagar además de

alimentar al sistema con un número de transferencia que otorga un software

externo, luego se escoge la opción generar listado con esto se evitan obtener

registros duplicados, por que existen trabajadores que poseen dos cargos (uno

por administrativo y otro por docente).

Page 535: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

163

Después de que se genero la consulta se procede hacer las anulaciones o

retenciones y como paso final se debe dar clic sobre el botón Generar Archivo.

El archivo es de extensión .xls, finalmente cerramos y esperamos a que se

vuelva a ejecutar los procesos.

Page 536: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

INDICE GENERAL

INTRODUCCIÓN………………………………………………………………………1

• Estructura del Departamento de Recursos Humanos……………………..1

• Complejidad de puestos de gerentes de área……………………………...1

• Influencias Externas…………………………………………………………...2

• Necesidad de Congruencias………………………………………………….2

• Necesidad de Pericia………………………………………………………….3

• Importancia de los Recursos Humanos………………………………….....3 La Administración de Personal como Sistema…………………………………….3

• Fundamentos y desafíos……………………………………………………..4

• Planeación y Selección……………………………………………………….4

• Desarrollo y Evaluación……………………………………………………….5

• Compensaciones………………………………………………………………6

• Servicio al personal……………………………………………………………7

• Relaciones con el Sindicato…………………………………………………..7

• Perspectiva general de la Administración de Personal……………………7

• Concepto de Sistemas aplicados…………………………………………….8 Requerimientos………………………………………………………………………..9 Iniciando SisRR_HH…………………………………………………………………13 Estándares del Sistema……………………………………………………………..17

Page 537: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

Mensajes Estándares………………………………………………………………..21 Módulo Recepción……………………………………………………………………23

• Área de Recepción de Oficio………………………………………………..23

• Ingresos de Oficios…………………………………………………………..23

• Cuentas de Usuarios………………………………………………………...39

• Utilización del Correo………………………………………………………..43 Módulo de Admisión…………………………………………………………………53

• Ventana de Selección……………………………………………………….54

• Creación de Pruebas………………………………………………………..54

• Desarrollo paso a paso de un Test de Conocimiento……………………55

• Psicológico……………………………………………………………………65

• Realización del Test………………………………………………………….70

• Funcionamiento del Test Psicológico………………………………………72

• Funcionamiento del Test de Conocimiento……………………………….74

• Detalle del manejo de capacitación de personal…………………………76 Módulo de Salud Laboral……………………………………………………………83

• Creación Ficha……………………………………………………………….84

• Registrar Tratamiento………………………………………………………..87 Módulo de Control…………………………………………………………………...88

• Creación de Cargos…………………………………………………………89

• Mantenimiento de Cargo……………………………………………………89

Page 538: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

• Denominación………………………………………………………………..95

• Parámetro de Cargo……….………………………………………………...99

• Escalas de Sueldo…….……………………………………………………195

• Tabla de Sueldos Autofinanciados……………………………………….111

• Creación y Distribución de Partidas……..……………………………….114

• Creación de Partidas……………………………………………………….115

• Creación de Partida Autofinanciada…..………………………………….115

• Movimientos de Partidas…………………………………………………..123

• Novedades de Rol………………………………………………………….133

• Tribunal de Menores……………………………………………………….133

• Prestamos al IESS………………………………………………………….136

• Relación Personal Préstamo………………………………………………138

• Ingreso Actualización………………………………………………………141

• Ingresos por Movilización………………………………………………….147

• Creación de Rubro…………………………………………………………149

• Transferencia Bancaria…………………………………………………….162

Anexos Reportes

Page 539: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

INDICE GENERAL

AGRADECIMIENTO…………………………………………………………………..1 DEDICATORIA…………………………………………………………………………2 TRIBUNAL DE GRADUACIÓN………………………………………………………3 DECLARACION EXPRESA…………………………………………………………..4 CAPITULO 1 1.1 INTRODUCCIÓN………………………………………………………………….5 1.2 METODOLOGÍA APLICADA……………………………………………………..7 1.3 EVALUACIONES TECNOLÓGICAS……………………………………………9 1.3.1 Base de Datos…..……………………………………………………………10 1.3.2 Ambiente de Desarrollo……………………………………………………...13 1.3.3 Reportes………………………………………………………………………17 CAPITULO 2 ANALISIS DEL PROYECTO 2.1 OBJETIVOS………………………………………………………………………19 2.1.1 Objetivos Generales…………………………………………………………..19 2.1.2 Objetivos Específicos…………………………………………………………20 2.2 BENEFICIOS…………………………………………………………………….20 2.3 ALCANCE DEL PROYECTO…………………………………………………..22 2.4 RECURSOS……………………………………………………………………...23

Page 540: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

2.4.1 Recurso Físico Actual…………………………………………………………23 2.4.2 Recurso Físico a Utilizar……………………………………………………...24 2.5 ETAPA DE DESARROLLO…………………………………………………….25 CAPITULO 3 3.1 ESPECIFICACIONES FUNCIONALES……………………………………….27 3.1.1 Módulo de Admisión…………………………………………………………..27 3.1.2 Módulo de Recepción…………………………………………………………30 3.1.3 Salud Laboral…………………………………………………………………..31 3.1.4 Control…………………………………………………………………………..32 3.5 DICCIONARIO DE ESTRUCTURAS DE LA BASE DE DATOS……………35 DIAGRAMAS Diagrama Admisión…………………………………………………………………..36 Diagrama Contrato…………………………………………………………………...36 Diagrama de Control de Asistencia………………………………………………...37 Diagrama Datos Personal…………………………………………………………...37 Diagrama Control de Usuario……………………………………………………….37 Diagrama de Posesión………………………………………………………………38 Diagrama de Cargo…………………………………………………………………..38 Diagrama de Base de Datos...……………………………………………………...44 Diagrama de Test…………………………………………………………………….44 Diagrama de Capacitación………………………………………………………….52 Diagrama de Partidas……………………………………………………………….66

Page 541: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

Diagrama de Recepción……………………………………………………………..72 Diagrama de Procesos Rol………….………………………………………………90 Ingreso al Sistema…………………….……………………………………………..95 Módulos y Procedimientos Globales………….………………………………….103 Módulo de Recepción de Oficios…………………………………………………193 Módulo de Admisión………………………………………………………………..203 Módulo de Salud Labora…………………………………………………………..219 Módulo de Control.………………………………………………………………….223 Listado de Descuentos……………………………………………………………..252 Descuentos por Préstamos………………………………………………………..256 Descuentos Gremiales……………………………………………………………..261 Descuentos por Ayudas……………………………………………………………273 Licencias por Empleados…………………………………………………………..277 Mantenimientos de Rubros………………………………………………………..280 Mantenimiento de Procesos……………………………………………………….287 Ejecución de Procesos……………………………………………………………..293 Conclusiones………………………………………………………………………..351 Recomendaciones………………………………………………………………….352 Anexos……………………………………………………………………………….353

Page 542: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

UNIVERSIDAD DE GUAYAQUIL

Facultad de Ciencias Matemáticas y Físicas

Carrera de Ingeniería en Sistemas Computacionales

“RECURSOS HUMANOS II ETAPA”

TESIS DE GRADO

Previo a la Obtención del Título de:

INGENIERO EN SISTEMAS COMPUTACIONALES

Autor(es):

Jenny Grace Bayas Chichande

Félix Enrique Zamora Triviño

GUAYAQUIL – ECUADOR

Año: 2008

Page 543: Repositorio Universidad de Guayaquil: Página de …repositorio.ug.edu.ec/bitstream/redug/19733/1/UG-FCMF-B...realizar esta tarea, y a todas las personas que aportaron con su granito

DIAGRAMA DE NOVEDADES