lunes, 6 de octubre de 2014

Entrada 11

Conclusiones del proyecto:


Aprendizaje de SQL sintaxis

¿Qué es?

SQL (Structured Query Language) es un lenguaje orientado a trabajar con bases de datos relacionales. Es de fácil aprendizaje y es muy popular.

Tipos de Datos utilizados.

·         +Varchar (largo): Almacena cadenas de caracteres de tamaño menor o igual al largo.
·         +Int: Variable que funciona para guardar tipos de datos numéricos con una capacidad similar a la de un entero en C.
·         +Bit: Sería el equivalente a lo que en Java un tipo de dato booleano 1 si true 0 si false.
·         +Money: Es el tipo de dato por excelencia para almacenar datos numéricos que ocupan una gran precisión.
·         +Date: Guarda los datos de la fecha actual como mes, hora, día, año, etc.

·         +Nchar (largo): Al igual que varchar almacena una cadena de datos sin embargo este tiene un tamaño estrictamente igual al largo indicado.

a




Palabras Reservadas más importantes:

·         +Select: Genera una vista de cierta
·         +From: Indica de que tabla se desean sacar los resultados.
·         +Where: Sirve para extraer aquellos datos que cumplen con la condición.
·         +Update: Sirve para actualizar los datos en una determinada table.
·         + Insert into: Ingresa nuevos datos o registros en la tabla.
·         +Declare: Es una manera de declarar las variables locales.
·         + BEGIN TRANSACTION: Nos indica el inicio de una transacción local.
·         +Set: Cambia el valor de una variable local o de una tabla.

FFunciones Agregadas Utilizadas:

     + GetDate() : una de las funciones mas utilizadas en el proyecto y sirve para obtener la fecha actual del sistema.

     + DateAdd(datepart,number,date) : utilizada para incrementar el atributo ultimoCorte de la empresas en el procedure que genera las planillas.

     + DateName(datepart,date): utilizado tambien en el procedure de planillas para verificar que hoy fuera el dia de corte y poder realizar el procedure.

     + Convert(type,value): esta funcion se empleo en casi la mayoria de procedures que involucran la lectura de archivos para poder convertir los valores recibidos a los necesarios en la base de datos.

     + ISNULL(expression, newvalue): utilizada en el generador de planillas para evitar problemas con posibles nulls que puedan surgir

     + SUM(tableRow)esta funcion fue necesaria para sumar todas las horas de los movimientos de cada empleado para obtener el total de horas trabajadas de cada tipo.

     + Count(rows) con esta funcion se cuentan las filas de una tabla y nos sirvio para poder iterar en las tablas variantes.

     CHARINDEX(char,expression)  esta funcion fue necesaria para la lectura de archivos en la cual los datos estaba separados por un '/' pues asi se obtenia el indice de dicho caracter en un varchar dado.

     SUBSTRING(expression,start,end) empleada de igual manera en la lectura de archivos, para una vez obtenido el start   y end utilizando la funcion anterior ya con esta funcion se podian extraer los datos.


Stored Procedures

¿Qué son los stored Procedures?
·         Los Stored Procedures o procedimientos almacenados son  procesos que se almacenan en las bases de datos. Fueron  de gran ayuda en la tarea programada debido a que hicieron de la aplicación de escritorio una aplicación con un código más limpio para poder evitar los “software smells”.

Y en total se crearon 26 procedimientos almacenados:


Diagramado (Modelo de datos)

El diagramado fue la clave principal para resolver el problema ya que se va estructurando de una manera ordenada la solución. El uso de patrones de diseño en la base fue de gran ayuda para pensar en la solución del problema, claramente, hubo que hacer pequeñas modificaciones en el proceso de la construcción de bases sin embargo no fueron tantas como si no se hubiera hecho el diagrama desde el principio. En el proceso de construcción primero se analizó el mapa conceptual brindado por el profesor en clase después de varias horas de discusión y análisis, se pasó a la construcción del modelo físico el cual fue construido minuciosamente para no tener problemas posteriormente con valores nulos(para evitarlos para optimizar la consulta) foreign keys y Primary keys. El diagrama final quedó así y para su confección se utilizó el SQL Server 2012:


Herramientas de SQL Server 2012

El SQL Server 2012, puede ser una herramienta de gran utilidad si se saben utilizar todas sus herramientas, ya se mencionó anteriormente una el creador de diagramas, sin embargo existen otras herramientas como por ejemplo:

·         +Creador de Queries: O bien creador de consultas, esta herramienta es útil si se desea probar algún Stored Procedure o bien verificar la validez de los datos.

·         +Backups: La creación de Backups es una gran idea debido a que de vez en cuando pueden haber problemas con la base entonces tener un respaldo en la nube o bien en el escritorio es de gran ayuda.

·         +Entorno organizado: SQL Server 2012 basa su interfaz gráfica en Visual Studio 2012 lo que hace que este sea muy intuitivo para los usuarios que ya usaron este entorno, sin embargo hay que analizar más a fondo (pero no difícilmente) ya que no se trata de simples programas, ahora se trabaja con bases de datos.


Aprendizaje de un nuevo lenguaje C#

Se sabía de cursos anteriores el lenguaje de programación JAVA un lenguaje de alto nivel que por lo general su uso es bastante sencillo y uno de los lenguajes más utilizados a nivel mundial, sin embargo se presentaron muchas dificultades a la hora de unir la base de datos con la aplicación de escritorio, por lo tanto se buscaron recomendaciones de grupos de trabajo que anteriormente llevaron el curso con el profesor Franco Quirós, y recomendaron utilizaron C#, lenguaje que tiene la desventaja que solo funciona en Windows, sin embargo tiene la gran ventaja de que para conectar la aplicación de escritorio no se demora en escribir un par de líneas de código y realizar un par de ajustes en el proyecto de C# y listo! La base de datos se conectará sin ninguna complicación.

Trabajo en Grupo

Los primeros días de trabajo fueron duros para lograr por así decirlo una sincronización efectiva del grupo sin embargo con el paso del tiempo, fue siendo un grupo más compenetrado y organizado con su tiempo con las horas de trabajo, a pesar de la distancia se logró tener ciertas reuniones vía Skype para poder trabajar en conjunto.

Herramienta Visual Studio 2013

Visual Studio 2013 es el sucesor de Visual Studio 2012 y es el entorno con el que se trabajó con el lenguaje C#  J, como se utilizó Visual Studio 2012 para la base de datos se encontraron varias diferencias todas a favor de la versión nueva como por ejemplo:
La rapidez con la que ejecutaba las predicciones, al iniciar la aplicación se realizaron en casi la mitad del tiempo que se demoraba el VS 2012, esto es una característica importante debido a que hace al programador ganar segundos valiosos que antes no tenía así mejorar su rendimiento con su trabajo.

Posteriormente, para IDE’s como Netbeans y otros es muy incómodo desplazarse entre GUI y la parte del código de este por lo que en VS 2013 se propone al usuario la división de pantallas para darle solución a este problema.




Total de Horas trabajadas:


2 Horas 20 Minutos
2 horas 20 minutos 
2 20 horas
3 horas y 20 minutos
4 horas 
6 horas
2 horas 
2 horas
2 horas
5 horas
3 horas (conclusiones)

Para un total de 34.2 horas










Entrada 10

Acciones Realizadas:

- Por una decision del equipo de trabajo se decidio cambiar la pagina web de php y html5 a asp.net Esto para tener mayor facilidad a la hora de conectar la base de datos con la misma, ya que realizarla con php significaba la instalación y utilización  del programa wamp server, el cual se utiliza como servidor para poder utilizar php y esto le agregaba mucha mas complejidad al trabajo que se iba a realizar, ademas que en .net se cuenta con un elemento de la interfaz especializado para conectarse a una base de datos y ejecutar stored porcedures con mayor facilidad, estas fueron las principales razones para realizar el cambio, para poder realizarlo ademas se requirio aprender el lenguaje para lo cual se consultaron los siguientes links:

                + https://www.youtube.com/watch?v=sfzm9ajnVxk

                + http://msdn.microsoft.com/es-es/library/office/gg278645(v=office.15).aspx

                + http://es.slideshare.net/Benedeti/visual-basic

                + http://msdn.microsoft.com/es-es/library/ke6sh835.aspx

                + http://msdn.microsoft.com/es-es/library/cc464105(v=vs.71).aspx

Estos Links permitieron el correcto aprendizaje del lenguaje para poder realizar con la mayor facilidad posible la pagina web, para mayor simplicidad se realizo toda la aplicación en una sola ventana, pero la misma, muestra su contenido dependiendo de lo que el usuario va a realizar, de esta manera se evita una posible perdida de información entre pagina y pagina , ademas de que se muestra un diseño mas elegante de la misma y mas simple de utilizar para el usuario que para efectos de este proyecto son los empleados de cada empresa, los cuales pueden ser de tipo Empleado normal , y ademas Administradores de empresa, este ultimo a pesar de ser administrador , no deja de ser miembro de la empresa y por lo tanto cuenta con sus planillas respectivas.


-Se realizo un cambio pequeño en el archivo de datos general que este grupo de trabajo se encarga de realizar, el cambio procedió el la inserción de  valores de configuración ya que a solicitud de otro grupo de trabajo se cambio a los valores expuestos por el profesor la clase 20 viernes  3 de Octubre, al final de la modificación el archivo fue subido nuevamente al grupo de google de la clase, y las lineas donde se realizaron los cambios fueron las que muestra la siguiente:


Anterior mente uno de estos valores era un entero con un valor fijo, esto lo pensé de esta manera para que el estudiante tuviera que programar casos para los posibles tipos de los valores de configuración para por el motivo explicado anteriormente tuve que cambiarlo nuevamente.

- Se realizaron algunos cambios en algunos store procedure de nuestra base de datos, esto porque los mismo fueron programados antes de implementar las aplicaciones de administrador y la de usuarios, al crear y empezar a conectar las mismas se requerían realizar algunos cambios, como por ejemplo el procedure SP_MostrarPlanillasAnteriores , que es el encargado de mostrar los datos de las planillas de los empleados en la pagina web, anteriormente recibía como parámetro únicamente la cédula del empleado que iba a consultar su planilla, pero debido a que el usuario solo ingresa su nombre de usuario y su contraseña en la pagina y el nombre de usuario NO es la cedula, entonces se cambiaron los parametros del mismo para que fueran el nombre de usuario y la contraseña, esto genera que en lugar de ser solo una condicion en el "where" fueran dos, y ademas la clave recibida se le debe aplicar la funcion agregada HASHBYTES para poder encritarla y compararla con la que se encuentra en el sistema, pero esto evita que se tenga que llamar a otro procedure para traer la cedula de empleado  poder pasarla como parametro.

Horas Trabajadas:
     3 horas y 20 minutos


Participantes:
     Jonathan Salazar Garcia
     Mariano Montero Muñoz

martes, 30 de septiembre de 2014

Entrada 9

Acciones realizadas:

-El día de ayer se trabajó arduamente con la aplicación de escritorio, hubo problemas pequeños a la hora de realizar ciertos metodos sin embargo gracias a que C# cuenta con una alta similitud con el lenguaje de  programación Java las soluciones surgieron de una muy similar que a como estuvieramos programando en este ultimo. Sin embargo no se finalizó la aplicación de Escritorio.

-Se terminó el store procedure que nos garantiza el correcto funcionar de la página web, este store procedure permite mostrar las planillas de los empleados. Y se implementara o al menos se tiene planeado implementarlo en horas de la tarde o bien horas de la noche.

-Además para que la Aplicación de Escritorio funcionara de una manera correcta hizo  falta implementar nuevos store procedures como por ejemplo el SP_ExtraerCedulaAdmin. Lo que hace que hasta el momento existan 26 stored procedures.




Horas Trabajas:  5 horas

Participantes: -Jonathan Salazar
                      -Mariano Montero


Entrada 8

Acciones Realizadas:
-Luego de un extenso trabajo se logro finalizar el Store Procedure de generar planilla, un método que es de más de 250 lineas de código.

Se trabajo el método en horas no continuas, a esto nos referimos a que el metodo se realizo tanto entre semana Jueves en horas de la noche(hasta media noche) y otras horas se trabajaron por aparte (Cartago y Guanacaste) lo cual no nos pareció tan efectivo como trabajar en conjunto ya que se lograba una mejor comunicación.

En el archivo adjunto se observan los resultados de ejecutar al store Procedure en su fase inicial de elaboracion:


y aqui esta el procedure al final de ejecutarse ya con todos los cambios realizados, correcciones, modificaciones y todo el trabajo realizado:





Horas Trabajadas: 2 horas.

Participantes: Jonathan Salazar
                       Mariano Montero


jueves, 25 de septiembre de 2014

Entrada 7

Acciones Realizadas:

- Para este momento se terminó la realización de dos de los 3 archivos de prueba para el proyecto, los mismos son datosgenerales.txt y movimientos3meses.xml el archivo xml se módifico debido a que se encontraron pequeñas pulgas como por ejemplo errores al cerrar nodos entre otros.


-Se terminaron de realizar algunos stored procedures como por ejemplo LLendoMovimiento3Meses, LecturaArchivosSemanal y BorradoBase. Este ultimo, si bien es cierto no es parte inmediata de la funcionalidad del proyecto, da un valor agregado cuando se realizan modificaciones en los campos con identity.

 Ademas se trabajo en corregir ciertos problemas de la aplicación de usuario para poder hacer la aplicación más "user-friendly". 

Se inicia lo conexión de la base de datos Planillas con la aplicación de escritorio escrita en C#.

Horas Trabajadas: 2 horas


Participantes:-Mariano Montero.
                      -Jonathan Salazar.

martes, 23 de septiembre de 2014

Entrada 6

Acciones Realizadas

-Se realizó el stored procedure de lectura de archivos de movimientos de 3 meses, para el mismo se utilizan 3 tables variantes para cada tipo de movimiento(Horas Normal, Horas Extra Simple, Horas Extra doble), una vez llenas las tablas variantes se procedio a iniciar la transaccion para insertar los datos en la base de datos de manera masiva.

-Se realizó la plantilla de la página web utilizando html y como css Semantic-UI para
un diseño agradable para el usuario.Se crearon dos archivos html uno de pagina para Loggearse y el otro para realizar las consultas de las planillas del empleado. Posteriormente se utilizara php para conectar la base de datos.

-Se realizaron cambios en el modelo agregando 3 nuevas tablas para cada tipo de movimiento y la tabla de planillaXempleado, las mismas se utilizarán para resolver problemas relacionados al foreign key hacia planillaXEmpleado que estaba en cada tabla de movimiento, puesto que en el modelo original habia un problema debido a que no podian existir movimientos que no estuvieran en planilla, ademas se agrego una tabla entre archivo de datos y a tabla planilla por el mismo motivo.




Horas trabajadas: 2 horas 18 minutos

Participantes:

Mariano Montero Muñoz 
Jonathan Salazar Garcia


sábado, 6 de septiembre de 2014

Entrada 5

Fecha: 05/09/2014

Hora de inicio: 7:00pm

Hora de Fin: 9:00pm

Acciones:

- Se comenzo y termino los bosetos iniciales para la interfaz grafica de la aplicacion de escritorio para el proyecto, dicha aplicacion sera utilizada tanto como para administradores de sistemas como para administradores de empresas puesto que ambos pueden realizar modificaciones de datos importantes ya sea datos de la empresa(administrador de sistemas) como tambien modificaciones para cada empleado(administrador de empresas) , la aplicacion sera realizada realizada en el lenguaje C# , este fue utilizado por su mayor facilidad para poder conectarse con SQL SERVER, aunque por el momento solo es un "cascaron" pues aun no esta conectada con la base de datos, las imagenes de la interfaz puede ser vista en la seccion de Fotos.


- Se realizaron Todos los stored procedures que corresponden a las acciones que puede realizar un administrador de sistemas dentro de la aplicacion de escritorio, de los stored procedures creados fueron implementados con transacciones de bases de datos solo los procedures que son UPDATE de la informacion de la base, todos aquellos que son unicamente SELECT no se implementaron con transacciones y esto es debido a lo visto en clases cuando el profesor dio las instrucciones sobre cuales procedures son transaccionales y cuales no, En la seccion de Fotos se muestran los nombres de los SP que actualmente tiene la base de datos.

Fotos:
                                                                       Interfaz Grafica:










Stored Procedures hasta el momento:



Horas trabajadas:    2 horas 


Participantes:

-Jonathan Salazar Garcia
-Mariano Montero Muñoz