1
UNIVERSIDAD TECNOLÓGICA ISRAEL
FACULTAD DE SISTEMAS INFORMÁTICOS
TEMA: Desarrollo de un sistema de control de procesos de
entrada y salida de un producto mediante tecnología móvil
en empresas comerciales
Estudiante
María Eulalia Gutiérrez Tuapante
Tutor
Ing. Pablo Tamayo
Cuenca – Ecuador
Diciembre 2011
2
UNIVERSIDAD TECNOLÓGICA ISRAEL
FACULTAD DE SISTEMAS INFORMÁTICOS
CERTIFICADO DE AUTORÍA
El documento de tesis con título “Desarrollo de un sistema para el control
de entradas y salidas de un producto mediante tecnología móvil en
empresas comerciales” ha sido desarrollado por María Eulalia Gutiérrez
Tuapante con C.I Nº 010495243-7 persona que posee los derechos de autoría
y responsabilidad, restringiéndose la copia o utilización de cada uno de los
productos de esta tesis sin previa autorización.
María Eulalia Gutiérrez Tuapante
3
UNIVERSIDAD TECNOLÓGICA ISRAEL
FACULTAD DE SISTEMAS INFORMÁTICOS
CERTIFICADO DE RESPONSABILIDAD
Yo, Ing. Pablo Tamayo, certifico que la señora María Eulalia Gutiérrez
Tuapante con C.I, Nº. 010495243-7 realizó la presente tesis con el título
“Desarrollo de un sistema para el control de entradas y salidas de un
producto mediante tecnología móvil en empresas comerciales”, y que es
autor intelectual del mismo, que es original, auténtico y personal.
______________________________
Ing. Pablo Tamayo
4
UNIVERSIDAD TECNOLÓGICA ISRAEL
FACULTAD DE SISTEMAS INFORMÁTICOS
CERTIFICA:
Que el presente trabajo de investigación “Desarrollo de un sistema para el
control de entradas y salidas de un producto mediante tecnología móvil en
empresas comerciales”, realizado por la Sra. María Eulalia Gutiérrez Tuapante,
egresada de la facultad Sistemas Informáticos, se ajusta a los requerimientos
técnicos-metodológicos y legales establecidos por la Universidad Tecnológica
Israel, por lo que se autoriza su presentación.
Cuenca, 1 de Diciembre de 2011
___________________________
Ing. Pablo Tamayo
DIRECTOR DE TESIS
5
UNIVERSIDAD TECNOLÓGICA ISRAEL
FACULTAD DE SISTEMAS INFORMÁTICOS
ACTA DE CESIÓN DE DERECHOS
Yo, María Eulalia Gutiérrez Tuapante declaro conocer y aceptar la disposición
de la Normativa de la Universidad Tecnológica Israel que en su parte pertinente
textualmente dice: “Forma parte del Patrimonio de la Universidad la propiedad
intelectual de las investigaciones, trabajos científicos o técnicos y tesis de
grado que se realicen a través, o con el apoyo financiero, académico o
institucional (operativo) de la Universidad”.
Cuenca, Diciembre 1 del 2011
___________________________
María Eulalia Gutiérrez Tuapante
6
AGRADECIMIENTO
Quiero agradecer y reconocer la colaboración de todas las personas que
hicieron posible que esta tesis se realizara, es por ello que agradezco a todos
los profesores que durante el tiempo que he permanecido en esta Institución,
han plasmado sus enseñanzas en el contenido teórico y práctico en esta tesis,
pero en especial a mi Tutor el Ingeniero Pablo Tamayo, por todo su apoyo
brindado al desarrollo de este proyecto, que ayudó a que esta idea se convierta
en realidad, y quien con su colaboración, esfuerzo, paciencia y comprensión,
ha sido la coautor de este importante logro obtenido.
7
DEDICATORIA
La presente Tesis de Grado la dedico primeramente a Dios por guiarme en
cada instante de mi vida, por darme la salud y la fuerza para poder culminar
esta etapa de mi carrera y por ser el amigo incondicional que está siempre
junto a mí y que con su bondad me permitió alcanzar una meta más de las que
me he propuesto.
A mi esposo y mis padres quienes con sus sacrificios diarios se constituyeron
en los principales gestores del objetivo que hoy alcanzo, que con paciencia y
compresión ha permanecido a mi lado en buenos y malos momentos.
Gracias al apoyo de todos ellos conseguiré una educación que permitirá en el
futuro ser una profesional de provecho para mi familia y la sociedad.
8
TABLA DE CONTENIDO
Pág.
CAPITULO I
INTRODUCCIÓN
1
1.1 Tema de investigación
2
1.2 Planteamiento del Problema
2
1.2.1 Antecedentes
2
1.3 Diagnóstico o planteamiento de la problemática general
3
1.3.1 Causa
3
1.3.2 Efectos
3
1.4 Sistematización
4
1.4.1
Diagnostico
4
1.4.2
Pronostico.
4
1.4.3
Control del Pronóstico
5
1.
1.5 Objetivos
5
1.5.1
Objetivo general
5
1.5.2
Objetivos específicos
5
1.6 Justificación
6
1.6.1
Justificación Teórica
6
1.6.2
Justificación Práctica
6
1.6.3
Justificación Metodológica
7
1.7 Estudios de factibilidad
8
1.7.1
Factibilidad Técnica
8
1.7.2
Factibilidad Operativa
8
1.7.3
Factibilidad Económica
9
CAPITULO II
2.
MARCO DE REFERENCIA
10
2.1 Marco Conceptual
10
2.1.1 Definición de Empresa
10
2.1.2
10
Empresas Comerciales
9
2.1.3
Definición de Sistema Informático
10
2.1.4
Software de control de entradas y salidas
11
2.1.5
Tecnología Inalámbrica
12
2.1.5.1Ventajas de la Tecnología Inalámbrica
13
2.1.6
Red Inalámbrica
13
2.1.7
La seguridad en las WLAN
13
2.1.8
Dispositivos móviles
14
2.1.8.1PDA (Personal Digital Assistant)
14
2.1.8.2Pocket PC
17
2.1.8.3Handheld PC
18
2.1.8.4Tablet PC
18
2.1.8.5Smartphone
19
2.1.8.6Teléfonos celulares
20
2.1.9
20
Sistemas Operativos Móviles
2.1.9.1Windows Mobile
20
2.1.9.2Symbian
21
2.1.9.3Palm OS
23
2.1.9.4Android
24
2.1.10 Plataformas de desarrollo de aplicaciones móviles
24
2.1.10.1 J2ME
24
2.1.10.2 Microsoft .NET
25
2.1.11 Emuladores para Dispositivos Móviles
29
2.1.12 Centro de dispositivos de Windows Mobile
31
2.1.13 Gestores de Base de Datos
32
2.1.13.1 SQL Server 2005 Compact Edition
32
2.1.13.2 Oracle
32
2.1.13.3 MySQL
33
2.1.13.4 PostgreSQL
34
2.2 Marco Temporal/Espacial
35
CAPITULO III
3.
3.1.
METODOLOGÍA
Metodología de Investigación
36
36
10
3.1.1
Tipo de Investigación
36
3.1.2
Métodos
36
3.1.3
Técnicas
37
3.2.
Metodología de desarrollo de software
3.2.1
Proceso Unificado de Desarrollo
38
38
3.2.1.1 Descripción de RUP (Rational Unified Process)
39
3.2.1.2 Fases del RUP
40
3.3.
42
Tecnología
3.3.1
3.3.1.1
Sistemas Operativos para dispositivos móviles
42
Comparación de los detalles básicos y el funcionamiento de
los Sistemas Operativos
43
3.3.2
Herramientas para el desarrollo de la aplicación móvil
45
3.3.3
Software de Desarrollo
45
3.3.3.1 Visual Studio 2008
46
3.3.4
Funcionalidad del Emulador en Windows Mobile
47
3.3.5
Centro de dispositivos de Windows Mobile
50
3.3.6
Gestor de Base de Datos a desarrollo en la aplicación
51
3.3.6.1 SQL Server 2005 Compact Edition
3.3.6.2
51
Comparación de SQL Server con otros gestores de base de
53
datos
CAPITULO IV
4.
DESARROLLO
54
4.1 Perspectiva del sistema
54
4.2 Restricciones del sistema de entrada y salida
54
4.3 Interfaces externas
55
4.3.1
Interfaces de usuario
55
4.3.2
Interfaces hardware
55
4.3.3
Interfaces software
56
4.4 Flujo de trabajo (Workflow) del sistema
56
4.4.1
56
Fase de Inicio
4.4.1.1 Análisis del sistema actual
56
4.4.1.2 Descripción de Actores
58
11
4.4.1.3 Identificación de los casos de uso
58
4.4.1.4 Catálogo de Requerimientos del sistema
59
4.4.2
Fase de Elaboración
62
4.4.2.1 Modelado de Caso de Uso
62
4.4.2.1.1 Aplicación de Casos de Uso
63
4.4.2.1.1.1
Caso de uso Mantenimiento de Usuarios
63
4.4.2.1.1.2
Caso de uso Mantenimiento de Bodega
64
4.4.2.1.1.3
Caso de uso Mantenimiento de Producto
65
4.4.2.1.1.4
Caso de uso Mantenimiento de Proveedor
66
4.4.2.1.1.5
Caso de uso Movimiento de Entrada
67
4.4.2.1.1.6
Caso de uso Movimiento de Salida
68
4.4.2.1.2 Descripción de casos de uso
69
4.4.2.2 Diagrama de Actividad
81
4.4.2.2.1
Diagrama de Actividad Ingreso al Sistema
81
4.4.2.2.2
Diagrama de Actividad Movimiento de Entrada
82
4.4.2.2.3
Diagrama de Actividad Movimiento de Salida
83
4.4.2.2.4
Diagrama de Actividad Consultas de los Movimientos
84
4.4.2.3 Diagrama de Colaboración
85
4.4.2.3.1
Diagrama de Colaboración Inicio de Sesión
85
4.4.2.3.2
Diagrama de Colaboración del Movimiento de Entrada
85
4.4.2.3.3
Diagrama de Colaboración del Movimiento de Salida
86
4.4.2.4 Diseño del sistema
86
4.4.2.4.1
Descripción de las clases
86
4.4.2.4.2
Diccionario de clases
87
4.4.2.4.3
Diagrama de Clases
88
4.4.2.4.4
Diagrama de Secuencia
89
4.4.2.4.4.1 Diagrama de Secuencia Ingreso al Sistema
89
4.4.2.4.4.2 Diagrama de Secuencia Movimiento de Entrada
90
4.4.2.4.4.3 Diagrama de Secuencia Movimiento de Salida
91
4.4.2.4.5
92
Diagrama de Estado
4.4.2.4.5.1 Diagrama de Estado Inicio de Sesión
92
4.4.2.4.5.2 Diagrama de Estado de Ingreso de Productos
92
12
4.4.2.4.5.3 Diagrama de Estado de la Salida de Productos
93
4.4.2.4.6
94
Diseño de Interfaces
4.4.2.4.6.1 Pantalla Ingreso al Sistema
94
4.4.2.4.6.2 Menú Principal del Administrador
94
4.4.2.4.6.3 Mantenimiento de Proveedores
95
4.4.2.4.6.4 Mantenimiento de Bodega
95
4.4.2.4.6.5 Mantenimiento de Usuarios
96
4.4.2.4.6.6 Mantenimiento de Productos
96
4.4.2.4.6.7 Menú Principal del Bodeguero
97
4.4.2.4.6.8 Entrada de Mercadería
97
4.4.2.4.6.9 Salida de Mercadería
98
4.4.2.4.6.10
Consulta de los Movimiento de Entrada y Salida
98
4.4.2.4.6.11
Kardex del Producto
99
4.4.2.5 Implementación
99
4.4.2.5.1
Creación de tablas
99
4.4.2.5.2
Modelo Entidad Relación
100
4.4.3
Fase de Construcción
102
4.4.3.1 Plan de Prueba
102
4.4.3.2 Objetos Evaluados
103
4.4.3.3 Acciones de Prueba
103
CAPITULO IV
5.
CONCLUSIONES Y RECOMENDACIONES
106
5.1 Conclusiones
106
5.2 Recomendaciones
106
BIBLIOGRAFÍA
107
ANEXOS
108
13
LISTA DE CUADOR Y GRAFICOS
Pág.
Figura 1. Matriz de Hardware necesario para el sistema
9
Figura 2 Matriz de Software necesario para el sistema
9
Figura 3. Matriz del costos de la implementación del sistema
9
Figura 4. Gráfico de la Interfaz de la aplicación
11
Figura 5. Ejemplos de los PDA
16
Figura 6. Ejemplo de un Pocket PC
17
Figura 7. Ejemplo de un Handheld PC
18
Figura 8. Ejemplo de un Tablet PC
19
Figura 9. Ejemplos de Smartphones
19
Figura 10.
21
Vista del Sistema Operativo de Windows Mobile
Figura 11. Vista de la Plataforma S60
22
Figura 12. Vista de la Plataforma UIQ
22
Figura 13. Vista del Sistema Operativo de Palm OS
23
Figura 14. Vista del Sistema Operativo de Android
24
Figura 15. Esquema de Comunicación de J2ME
25
Figura 16. Componentes de Visual C#
29
Figura 17. Centro de dispositivos de Windows Mobile
31
Figura 18. Fases del RUP
40
Figura 19. Comparación de los detalles básicos entre los Sistemas
Operativos Móviles
Figura 20.
43
Comparación sobre el Funcionamiento de los Sistemas
Operativos Móviles
44
Figura 21 Dispositivos móviles que se pueden programar con .NET
47
Figura 22. Administrador de emuladores de dispositivos
48
Figura 23. Emulador del Pocket PC
49
Figura 24. Matriz comparativa de gestores de base de datos
53
Figura 25. Matriz de Interfaz con el Hardware
55
Figura 26. Diagrama de Flujo de datos
57
14
Figura 27. Matriz de Actores del sistema
58
Figura 28. Diagrama de caso de uso
62
Figura 29. Caso de uso control de usuarios
63
Figura 30. Caso de uso control de bodegas
64
Figura 31. Caso de uso control de producto
65
Figura 32. Caso de uso control de proveedores
66
Figura 33. Caso de uso movimiento entrada
67
Figura 34. Caso de uso movimiento salida
67
Figura 35. Diagrama de Actividad Ingreso al sistema
81
Figura 36. Diagrama de Actividad del Movimiento de Entrada
82
Figura 37. Diagrama de Actividad del Movimiento de Salida
83
Figura 38. Diagrama de Actividad sobre consulta de los movimientos
84
Figura 39. Diagrama de Colaboración de Inicio de Sesión
85
Figura 40. Diagrama de Colaboración del Movimiento de Entrada
85
Figura 41. Diagrama de Colaboración del Movimiento de Salida
86
Figura 42. Descripción de clases
86
Figura 43. Matriz Diccionario de clases
87
Figura 44. Diagrama de clases
88
Figura 45. Diagrama de Secuencia Ingreso al Sistema
89
Figura 46. Diagrama de Secuencia Movimiento de Entrada
90
Figura 47. Diagrama de Secuencia Movimiento de Salida
91
Figura 48. Diagrama de Estado de Inicio de Sesión
92
Figura 49. Diagrama de Estado de la Entrada de Productos
92
Figura 50. Diagrama de Estado de la Salida de Productos
93
Figura 51. Pantalla Ingreso al Sistema
94
Figura 52. Menú Principal del Administrador
94
Figura 53. Mantenimiento de Proveedores
95
Figura 54. Mantenimiento de Bodega
95
Figura 55. Mantenimiento de Usuarios
96
Figura 56. Mantenimiento de Productos
96
Figura 57. Menú Principal del Bodeguero
97
15
Figura 58. Entrada de Mercadería
97
Figura 59. Entrada de Mercadería
98
Figura 60. Consulta de los Movimiento de Entrada y Salida
98
Figura 61. Kardex de productos
99
Figura 62. Tabla Bodega
99
Figura 63. Tabla Producto
100
Figura 64. Tabla Movimiento Cabecera
100
Figura 65. Tabla Movimiento Detalle
100
Figura 66. Tabla Usuario
101
Figura 67. Tabla Proveedor
101
Figura 68. Tabla Proveedor
101
Figura 69. Diagrama de Entidad Relación
102
Figura 70. Caso de Prueba Entrada de Productos
103
Figura 71. Caso de Prueba Salida de Productos
104
Figura 72. Caso de Prueba Consulta de los movimientos
104
Figura 73. Caso de Prueba Kardex de los productos
105
16
RESUMEN
El presente tema de tesis tiene como objetivo el resolver la problemática que
afronta actualmente la distribuidora “Orellana”, el cual no dispone de ningún
tipo de automatización en el proceso de Control de entrada y salida de
producto, ya que al realizarlo de forma manual está propenso a que se
cometan muchos errores y pérdidas de información.
Se ha propuesto una alternativa efectiva y viable a este problema, la cual
soluciona de manera eficaz los contratiempos que en este momento afronta la
empresa.
La solución para automatizar y mejorar el Control de Inventario de bodega, es
desarrollar un software que realice este proceso de manera segura y confiable,
usando tecnología de punta y muy actual, como es el caso de los Asistentes
Personales Digitales, que accederán en tiempo real y de forma inalámbrica a la
base de datos de la aplicación, registrando de forma inmediata la información
necesaria para llevar correctamente el inventario de bodega de la empresa.
17
SUMMARY
The present thesis theme is to resolve the trouble that the enterprise "Orellana"
has right now, as they don’t have any software for the inventory control process
because when you do it by hand you can make a lot of mistakes and can miss
information.
Our proposal is a new effective choice for this problem, which solves effectively
all the problems that the enterprise has right now.
The solution to improve the control of the inventory of cellar, is development
software that makes this process trustful, using actual technology, like the
personal digital assistance (PDA´s), that will access in real time and wireless to
the database of the application, registering immediately the required information
to maintain the inventory of cellar of the company correctly.
18
1. INTRODUCCIÓN
Hoy en día, la informática en red se ha convertido en un factor importante en la
vida de una empresa la razón principal implica la cantidad de información que
actualmente se maneja, hace que el tratamiento automático de la información
sea realmente útil y necesario.
En la actualidad los sistemas de información están basados en computadoras
que son objetos de gran consideración en la toma de decisiones oportunas,
confiables y efectivas en cuanto a técnicas de planificación, programación y
administración con el fin de garantizar su éxito, limitar el riesgo y reducir costos
y aumentar las ganancias.
Debido a esta razón, nace la idea de automatizar el control de entradas y
salidas de los productos de una empresa; cabe mencionar el vertiginoso
avance de las telecomunicaciones y el progreso que han experimentado las
ciencias informáticas que permiten entrar al moderno mundo de la tecnología, y
ser más competitivos.
Mediante el análisis de las técnicas de investigación nos identifica claramente
falencias que afectan el funcionamiento de la empresa, situación que se ha
hecho evidente en la forma como se ejecuta el proceso de control de entrada y
salida de un artículo.
19
Por lo tanto, estos aspectos son importantes para la elaboración y diseño de
sistemas de información, así satisfacer los requerimientos de los usuarios y
mejoras las tareas de control del producto de la empresa.
Es importante en toda empresa, que se dedique a la comercialización de
productos, tener un sistema eficiente de control de artículos, el cual permita
saber, cuánto y cuándo se debe pedir para el reabastecimiento de la bodega de
mercaderías para la venta.
1.1 Tema de investigación
Desarrollo de un sistema para el control de entradas y salidas de un producto
mediante tecnología móvil en empresas comerciales.
1.2 Planteamiento del Problema
1.2.1 Antecedentes
La Distribuidora Orellana fue creada en el año 2005, actualmente está ubicada
en la calle Paseo de los Cañarís de la ciudad de Cuenca. Su objetivo es la
compra y venta de productos terminados,
Actualmente no mantienen datos actualizados de los niveles de stock la mayor
parte del tiempo, esto debido a que la empresa realiza sus controles de forma
manual, por lo que la entrada y salida de productos del inventario no son lo
suficientemente efectivos para poder controlar la información.
En conclusión si los procesos de carga y descarga del inventario no se realizan
directamente al sistema, si no que incluyen un proceso manual con papeleo se
20
genera una pérdida de tiempo que conlleva a la falta de información
actualizada y al desaprovechamiento de recursos humanos, de tiempo y
financieros
1.3 Diagnóstico o planteamiento de la problemática general
1.3.1 Causa
La inversión que debe realizar una empresa en adquirir un software para
el control de los procesos de entrada y salida del inventario es baja,
teniendo en cuanta que su principal capital está en sus activos que
posee.
Es por eso que la forma tradicional de manejar el control de inventarios
en un sistema manual es insegura ya que puede existir la modificación
o pérdida de información.
1.3.2 Efectos
La no inversión de tecnología en una empresa
que apoye a los
principales procesos disminuirá el nivel de competitividad y productividad
de una organización.
Al mantenerse con un sistema manual de procesos, no se tendrá un
soporte en la toma de decisiones, para ello necesitan llevar a cabo una
buena administración, por lo cual se propone desarrollar un sistema que
facilite la administración de los recursos y que a su vez proporcione
información veraz y oportuna en tiempo real.
21
1.4 Sistematización
1.4.1 Diagnostico
Mediante la investigación que se ha realizado dentro de la Distribuidora
“Orellana” se ha determinado el siguiente diagnóstico.
Esta empresa viene trabajando hace 6 años atrás, Su objetivo es la compra y
venta de productos terminados, actualmente maneja sus procesos de forma
manual, su visión es poder controlar sus procesos mediante un sistema
automatizado que le permita agilizar sus actividades.
En este momento la empresa maneja el proceso de entrada mediante una hoja
de Excel y en cuanto al proceso de salida lo realiza de forma manual, es decir
este control es registro en una hoja de papel, para luego realizar la descarga
del inventario. Esos controles actualmente no mantienen datos actuales y
conlleva a no tener una información oportuna.
1.4.2 Pronostico.
Una empresa al no utilizar un sistema informático, que le ayude a controlar
la
entrada y la salida de un producto, implica que no tendrá una información
oportuna de su mercancía y por ello no se pueda tomar decisiones para el
bienestar de la empresa. Es por ello que se propone desarrollar una aplicación
que cubra estos requerimientos, con el fin de automatizar y agilizar los
procesos.
22
1.4.3 Control del Pronóstico
Debido al pronóstico antes mencionado surge la idea de automatizar las
actividades de control de entradas y salidas de un producto; cabe mencionar el
vertiginoso avance de las telecomunicaciones y el progreso
que
experimentado las ciencias informáticas que obliga a estar a
tono y entrar
al moderno mundo de la tecnología, para poder ser competitivos.
Con
han
este
software se pretende controlar las entradas y salidas de los productos, también
se podrá realizar consultas sobre los producto. Este proyecto a su vez
optimizará los recursos materiales y tiempo, ya que el usuario se podrá
conectar en cualquier momento y lugar.
1.5 Objetivos
1.4.1 Objetivo general
Desarrollar un sistema de control de entradas y salidas de productos
mediante el uso de tecnología móvil en el área de bodega, permitiendo
automatizar y agilizar el proceso.
1.4.2 Objetivos específicos
Analizar y Diseñar un modelo de control de entradas de
productos.
Analizar y Diseñar un modelo de control de salida de productos
Control del movimiento de los productos de entrada y salida.
Generación de consultas de los movimientos de entrada y salida.
23
1.6 Justificación
1.5.1 Justificación Teórica
El software elegido a desarrollar previa la obtención del título de Ingeniería de
Sistemas se debe a los avances tecnológicos y además porque existen muchos
empresas comerciales que no cuentan con un sistema que les permita manejar
sus principales actividades de una manera eficaz y eficiente, dentro de nuestro
país muchas organizaciones ya disponen de un software que controle sus
productos, siendo este una gran ayuda para el profesional de esta rama.
La realización de este software se lo realizara Microsoft Visual Studio 2008
herramientas de actualidad y con una base de datos SQL Server C.E, estas
herramientas facilitaran el mejor desarrollo de programas. Con el fin de
solucionar el control de productos de una empresa.
El desarrollo del sistema permite plasmar cada uno de los conocimientos
adquiridos en clases y de esta manera también adquirir nuevos conocimientos
a través de la investigación.
1.5.2 Justificación Práctica
El presente tema de tesis tiene como objetivo el resolver la problemática que
afronta actualmente la Distribuidora Orellana, el cual no dispone de ningún tipo
de automatización en los procesos de Control de Entrada y Salida de sus
productos, ya que al realizarlo de forma manual está propenso a que se
cometan muchos errores y pérdidas de información.
24
Se ha propuesto una alternativa efectiva y viable a este problema, la cual
soluciona de manera eficaz los contratiempos que en este momento afronta el
almacén. La solución para automatizar y mejorar el Control de Entrada y Salida
es desarrollar un software que realice estos procesos de manera segura y
confiable, usando tecnología de punta y muy actual, como es el caso de los
Asistentes Personales Digitales (PDA’s), que accederán en tiempo real y de
forma inalámbrica a la base de datos de la aplicación, registrando de forma
inmediata la información necesaria para llevar correctamente el inventario de
bodega de la empresa.
1.5.3 Justificación Metodológica
El sistemas se lo realizar mediante una investigación aplicada, la que nos
permitirá conocer de manera amplia la problemática que se está viviendo
dentro de las empresas comerciales.
También se utilizara la metodología inductiva-deductiva para poder determinar
los requerimientos. Se empleara la técnica de las entrevistas, para recabar
información en forma verbal, ya que las opiniones, comentarios, ideas o
sugerencias en relación a como se podría hacer solucionar los problemas que
están surgiendo dentro del proceso de entrada y salida de los producto.
25
1.7 Estudios de factibilidad
1.6.1 Factibilidad Técnica
Dentro de la factibilidad técnica de este proyecto está la parte del hardware
necesario para el funcionamiento de la aplicación, como es un Pocket PC y una
PC Pentium IV 1.8 Ghz.
En cuanto al Software, para el desarrollo de la aplicación se usará el Visual
Studio .NET, con la cual tendremos la posibilidad de una vez desarrollada la
misma, cargarlo en el emulador de Microsoft Windows Mobile .NET
proporcionado por la Microsoft como Edición Gratuita, así comprobar su
funcionamiento. Además será necesario SQL Server 2005 Compact Edition
para la Base de datos.
1.6.2 Factibilidad Operativa
En cuanto a la factibilidad operativa, para el desarrollo de este proyecto, no
existe resistencia al cambio por parte de los usuarios al automatizar sus
procesos actuales, ya que estos cambios permitirá trabajar de manera óptima y
eficaz, con el fin de mejorar su productividad y atención y servicio al cliente.
1.6.3 Factibilidad Económica
En la factibilidad económica se establecen los costos y beneficios del proyecto.
A continuación se presenta un cuadro que muestra un resumen de los costos
de implantación del Sistema para el Control de Entrada y Salida.
26
Hardware
Cantidad
Descripción
Costo
1
Pocket PC
350
Costo del Hardware
350$
Figura 1. Matriz de Hardware necesario para el sistema
Software
Descripción
Costo
Visual Studio 2008 Professional
Windows Mobile 5.0
0
SQL Server 2005 Compact Edition
0
Costo del Software
$
Figura 2. Matriz de Software
Costo de la implementación del sistema
Descripción
Hardware
Costo
350
Software
Gastos de operación (Gastos de
200
papelería, impresión de
documentos, energía electica, otros
gastos)
Costo total de implementación
550$
Figura 3. Matriz del costos de la implementación del sistema
27
2. MARCO DE REFERENCIA
2.1 Marco Conceptual
2.1.1 Definición de Empresa
La empresa es la organización económico-social en la que el capital, el trabajo
y la dirección planifican y coordinan para realizar una producción socialmente
útil, de acuerdo con las exigencias de la sociedad que nos rodea.
El objetivo de una empresa es de satisfacer las necesidades del mercado
mediante la utilización de recursos materiales y humanos. Se encarga, por
tanto, de la organización de los factores de producción, capital y trabajo.
2.1.2 Empresas Comerciales
Estas empresas son aquellos intermediarios entre el productor y el consumidor,
su función principal es la compra y venta de productos terminados y sus
canales de distribución son los mercados mayoristas, minoristas o detallistas y
los comisionistas.
2.1.3 Definición de Sistema Informático
Un sistema informático, es el conjunto de elementos interconectados para el
procedimiento de la información, en el cual se incluyen elementos físicos
hardware y elementos lógicos como el software. Dentro del hardware están los
procesadores, memoria, sistemas de almacenamiento externo, etc. Y dentro
del software incluye al sistema operativo, firmware, aplicaciones, y los sistemas
de gestión de bases de datos.
28
2.1.4 Software de control de entradas y salidas
El software de control de entradas y salidas, es una herramienta que nos
permitirá controlar los productos ingresados a la área de bodega de la empresa
de igual manera el control de la salida del producto se lo llevara mediante el
traslado entre sucursales o almacenes registrados en el sistema. Hoy en día
mediante el uso de tecnología móvil, este sistema tiene la ventaja de realizar la
actualización y consulta de información en tiempo real, hacia la base de datos
del sistema de forma directa, lo cual agiliza las actividades de control de
entradas y salidas de productos. Esta aplicación nos permite saber la cantidad
de producto que disponemos y la que se ha trasladado a las respectivas
sucursales o almacenes. Mediante este sistema, las empresas comerciales
obtendrán información real de los proceso del inventario de bodega con que se
cuenta físicamente, el usuario tener información oportuna y actualizada para
poder tomar decisiones a bienestar de la empresa.
Figura 4. Gráfico de la Interfaz de la aplicación
29
2.1.5 Tecnología Inalámbrica
La tecnología inalámbrica ofrece una oportunidad extraordinaria para que las
empresas extiendan su información y servicios hasta los usuarios móviles. La
combinación de estos factores puede aumentar la productividad, reducir los
costes operativos e incrementar la satisfacción de los clientes.
Existen una gran cantidad de aplicaciones para la tecnología inalámbrica como
una aplicación de entradas y salidas de productos para una empresa comercial
mediante un dispositivo móvil, este tipo de aplicación nos permite saber la
cantidad exacta de productos que ingresan a bodega y los que son trasladados
a las diferentes sucursales
La implementación de este tipo de tecnología es gracias a los diferentes tipos
de equipos móviles que poseen funciones similares a las de un computador
personal, con esto los usuarios solo necesitan un dispositivo móvil para
acceder a las aplicaciones empresariales y por consiguiente a su información,
con lo que se verá incrementado su rendimiento y la velocidad de respuesta en
un proceso. Con la implementación de este tipo de aplicaciones se consigue la
disminución de costos, incremento en la satisfacción de sus clientes,
incremento en la velocidad de respuesta, mayor productividad de los
empleados e incremento en las utilidades de la empresa.
2.1.5.1 Ventajas de la Tecnología Inalámbrica
La tecnología inalámbrica aporta las siguientes ventajas:
Rapidez de instalación.
30
Desaparición del cableado.
Facilidad de funcionamiento.
Movilidad: Se debe de tomar en cuenta la zona de cobertura inalámbrica
(muy útil para PDAs, portátiles, etc.)
Bajo coste de adquisición y mantenimiento.
Escalabilidad: Se puede expandir a centenares de usuarios en una red
local inalámbrica.
Portabilidad: Se puede trasladar una red local sin depender de complejos
cableados fijos.
2.1.6 Red Inalámbrica
Una red inalámbrica es un sistema de comunicación de datos que proporciona
conexión inalámbrica entre equipos situados dentro de la misma área (interior o
exterior) de cobertura. En lugar de utilizar el par trenzado, el cable coaxial o la
fibra óptica, utilizado en las redes LAN convencionales, las redes inalámbricas
transmiten y reciben datos a través de ondas electromagnéticas, con esta
tecnología, los empleados de las empresas pueden permanecer conectados a
las aplicaciones de productividad y a los recursos informativos prácticamente
en todo momento y lugar.
2.1.7 La seguridad en las WLAN
El tema de la seguridad representa un gran inconveniente en este tipo de redes
pues es muy difícil controlar el acceso a ellas, pues, en redes con cables suele
contarse con un firewall que impide el acceso desde el exterior a personas no
autorizadas, y no puede saltearse este dispositivo porque el cable pasa por él y
31
no hay forma de eludirlo. En cambio, en una red inalámbrica, un firewall puede
esquivarse, pues las ondas viajan en todas direcciones, con lo cual un intruso
puede saltear esa protección. Por ello, para proteger estas redes se utiliza un
método de autentificación y cifrado. El primero impide el acceso a personas no
autorizadas mediante un nombre de usuario y una contraseña, y el segundo
impide que algún intruso que intercepte una comunicación pueda descifrarla.
2.1.8 Dispositivos móviles
Gran variedad de dispositivos móviles existen en la actualidad, cada uno con
diferentes funciones que se ajustan a las necesidades de los usuarios. Este
proyecto va dirigido a los Pocket PC
1
pero existen una gran variedad de
dispositivos que permiten utilizar aplicaciones inalámbricas. Entre estos
tenemos:
2.1.8.1 PDA (Personal Digital Assistant)
Es un pequeño ordenador de bolsillo equipado con pantalla de cristal líquido
que no posee teclado físico, tiene un lápiz digital que hace las veces de ratón y
teclado. Este incluye un conjunto de programas útiles para el control de las
actividades personales: lista de teléfonos, planificador de citas, bloc de notas,
calculadora, hoja de cálculo, etc. Estos dispositivos poseen un MODEM o
tarjeta inalámbrica tienen acceso a Internet con lo que es posible correr
aplicaciones móviles, algunos tienen incorporadas una pequeña cámara digital
y con esto es posible enviar imágenes mediante correo electrónico. También
1
Pocket PC: es un ordenador de bolsillo, también llamado PDA (Personal Digital Assistant)
32
permite almacenar correo electrónico que el usuario desee. Este dispositivo
utiliza las redes de telefonía celular para acceder a Internet y correr
aplicaciones móviles.
Ya que los PDA’s carecen de teclado, utilizan como método de introducción de
datos un sistema de reconocimiento de escritura. El usuario escribe sobre la
pantalla del PDA con un lápiz de plástico (Stylus), y la máquina interpreta sus
trazos y los convierte en las letras correspondientes.
Elementos básicos de un PDA
Sistema operativo. Los más frecuentes son:
-
PalmOS de Sony.
-
Windows Mobile, también conocido como Pocket PC.
Procesador. Los PDA basados en Palm OS están equipados con
procesadores de pocos Mhz (unos 16), pues resultan más que
suficientes para el tipo de aplicaciones que tienen que ejecutar, mientras
que los PDA basados en Windows u otros sistemas operativos incluyen
procesadores más potentes (hasta 150 Mhz).
Memoria. La memoria RAM de los PDA basados en Palm OS suele ser
de 2, 4 u 8 MB, y en muchas ocasiones no puede ampliarse; la de los
Pocket PC y Handheld PC, entre otros, es como mínimo de 16 ó 32 MB,
pudiendo generalmente ampliarse mediante tarjetas de memoria flash.
Puertos expansión. Es el término que hace referencia a las posibles
ranuras de expansión existentes en un PDA, es decir, los puertos en que
pueden conectarse las tarjetas de memoria o módems. Los PDA
33
basados en Palm OS no siempre disponen de una ranura para tarjetas
de memoria.
Pantalla. Supone casi el 80% de la superficie del aparato. Existen
pantallas monocromas y con pantallas a color. La resolución es otra
consideración clave. Generalmente se miden en píxeles horizontales por
verticales, determinando así el número de puntos en pantalla. Por
ejemplo las de 160 x 160 son de baja resolución, mientras que las 640 x
480 constituyen las mejores.
Peso y ergonomía. Debido al tipo de uso, su PDA está destinado a
convertirse en un acompañante diario. Por ello es necesario considerar
su peso. Generalmente, los modelos de más de 200 gr o demasiado
gruesos no son realmente funcionales. Es el peso óptimo se encuentra
alrededor de los 110 y los 130 gr. En lo que respecta al tamaño, debe
adaptarse lo mejor posible al de su mano.
Figura 5. Ejemplos de los PDA
34
2.1.8.2 Pocket PC
Una Pocket PC es un dispositivo que brinda al usuario las funciones más
comunes de un computador, diseñado para ocupar el mínimo espacio y ser
fácilmente transportable que ejecuta el sistema operativo Windows CE de
Microsoft entre otros, el cual le proporciona capacidades similares a los PC de
escritorio. Entre sus principales funciones son:
Organizador de tareas, permite organizar y recordar tareas pendientes
Bloc de notas, se puede almacenar cualquier tipo de nota.
Hoja de cálculo y editor de texto, da la facilidad de realizar cualquier tipo
de informe desde este dispositivo.
Permite reproducir archivos de audio y video
Acceso a Internet, se puede almacenar correo electrónico y correr
aplicaciones móviles desde este dispositivo.
Este no posee teclado, en su lugar posee un lápiz digital llamado stylus. De
igual manera que el PDA este tiene acceso mediante las redes de telefonía
celular a Internet y a las aplicaciones móviles.
Figura 6. Ejemplo de un Pocket PC
35
2.1.8.3 Handheld PC
Sus características son similares que un PDA y un Pocket PC, su diferencia
está en sus características físicas ya que estos poseen una pantalla más
grande y tienen incorporado un teclado. Estos dispositivos son ideales al
momento de redactar cualquier tipo de informes gracias a su teclado y su
software de edición de texto y hoja de cálculo. A diferencia de los dispositivos
anteriores este posee un módem el cual permite el acceso a Internet mediante
la línea telefónica convencional.
Figura 7. Ejemplo de un Handheld PC
2.1.8.4 Tablet PC
Estos dispositivos básicamente no poseen teclado pero tienen un puerto por el
cual es posible conectar un teclado para facilidad del usuario. Sus
características son similares a un computador personal por el software que
tiene instalado, de igual manera sus principales funciones son: organizador de
citas, libreta de direcciones, bloc de notas, editor de texto, hoja de cálculo,
administración de correo electrónico, etc.
36
Tienen acceso a redes inalámbricas mediante el protocolo 802.11
2
Wi-Fi, por
lo cual es posible correr aplicaciones móviles empresariales.
Figura 8. Ejemplo de un Tablet PC
2.1.8.5 Smartphone
Estos dispositivos tienen características similares a un teléfono celular, además
incluyen las principales funciones de un PDA que son: libreta de direcciones,
organizador de tareas, bloc de notas, calculadora, hoja de cálculo, etc. Al tener
la capacidad de un teléfono celular para realizar comunicaciones es posible
acceder a diferentes tipos de aplicaciones móviles usando tecnologías de
comunicación celular.
Figura 9. Ejemplos de Smartphones
2
802.11: es un estándar internacional que define las características de una red de área local inalámbrica
37
2.1.8.6 Teléfonos celulares
Son los más utilizados en nuestro medio, su función principal es la
comunicación. Actualmente existen teléfonos celulares que incorporan
diferentes funciones como libreta de direcciones, calculadora, organizador de
tareas, etc. Mediante estos dispositivos es posible acceder a diferentes tipos de
aplicaciones móviles, la limitación de estos es la capacidad de procesamiento y
el tipo de pantalla que poseen que limita el acceso a diferentes aplicaciones
móviles.
2.1.9 Sistemas Operativos Móviles
Un Sistema operativo es un programa que actúa como intermediario entre el
usuario y el hardware de un PC. Su propósito es proporcionar un entorno en el
cual el usuario pueda ejecutar programas.
El objetivo principal de un Sistema Operativo es lograr que el sistema de
cálculo se use de manera cómoda y que el hardware del PC se emplee de
manera eficiente. Entre los Sistemas Operativos Móviles más vistos en los
dispositivos están:
2.1.9.1 Windows Mobile
El desarrollo de este proyecto está bajo esta Sistemas Operativos Móviles,
debido a que está basado al PocketPC. Este sistema operativo es el que
cuenta con la mayor difusión en el mercado de PDAs.
38
Windows Mobile, permite una fácil conexión a una gran variedad de redes
inalámbricas, detecta automáticamente las redes Wi-Fi y se conecta de forma
sencilla a ellas y a las redes de área personal a través de Bluetooth.
Los lenguajes de programación que se pueden utilizar mediante Visual Studio
para desarrollar una aplicación son; C#, C++, J#, JScript o ASP .Net.
Figura 10. Vista del Sistema Operativo de Windows Mobile
2.1.9.2 Symbian
Es el Sistemas Operativos instalado en mayor número de dispositivos móviles
en la actualidad, sobre todo en teléfonos móviles. Tiene dos plataformas: S60 y
UIQ
Plataforma S60
Es una plataforma para terminales móviles que utilicen el sistema operativo
Symbian OS. Esta plataforma consiste en un conjunto de bibliotecas y
aplicaciones informáticas estándar, tales como telefonía, herramientas de
gestión de información personal, y reproductores multimedia. Se puede
encontrar en terminales móviles modernos de amplias características, con
39
pantallas en color muy grandes, que son conocidos comúnmente como
terminales Smartphone.
Figura 11. Vista de la Plataforma S60
Plataforma UIQ
UIQ (Interfaz de Usuario Quartz) es una plataforma para terminales móviles
desarrollada por UIQ Technology basada en el sistema operativo Symbian. Se
caracteriza por agregar soporte para pantallas táctiles. Se usa principalmente
en smartphones de Sony Ericsson.
Figura 12. Vista de la Plataforma UIQ
Symbian está basado en un micro kernel, una mínima porción del sistema tiene
privilegios del kernel. Una de las tareas del kernel es manejar las interrupciones
40
y prioridades. El sistema posee componentes que permiten el diseño de
aplicaciones multiplataforma, diferentes tamaños de pantalla, color, resolución,
teclados, etc. La mayoría de estos componentes han sido diseñados en C++.
Las empresas que han intervenido en el desarrollo de aplicaciones de la
plataforma Symbian son: IBM, Lotus, Oracle, SAP, Sybase, Nokia Developer
Community.
Los lenguajes de programación utilizados en la plataforma Symbian son: C++,
Java y Visual Basic sobre un emulador.
2.1.9.3 Palm OS
Palm OS es un sistema operativo para móviles inicialmente desarrollado por
Palm Inc, está diseñado para ser de fácil uso con una interfaz gráfica de
usuario basada en el touch screen, en este vienen incluidas aplicaciones
básicas
para
la
administración
de
información
personal
(calendario,
calculadora, notas, etc.).
Dentro de las versiones más recientes de este sistema operativo fueron
extendidas para soportar smartphones.
Figura 13. Vista del Sistema Operativo de Palm OS
41
2.1.9.4 Android
Android es el sistema operativo de Google, y está basado en el núcleo Linux,
diseñado originalmente para dispositivos móviles, tales como teléfonos
inteligentes, pero que posteriormente se expandió su desarrollo para soportar
otros dispositivos tales como tablet, reproductores MP3, netbook, PC, entre
otros. Es a código abierto y existen de aplicaciones gratis.
Figura 14. Vista del Sistema Operativo de Android
2.1.10 Plataformas de desarrollo de aplicaciones móviles
2.1.10.1 J2ME
J2ME es la versión de Java orientada a los dispositivos móviles con poca
capacidad de memoria, poca capacidad de proceso y pantallas de reducidas
dimensiones, es multiplataforma y se ejecuta bajo una máquina virtual especial.
Dentro de los dispositivos que se pueden utilizar con J2ME esta los siguiente;
Teléfonos Celulares Convencionales
Smart Phones
Palms
Hanhelds
Otros Dispositivos Portátiles
42
La arquitectura J2ME brinda además conectividad a Internet a través de
GPRs3, con lo cual todos los dispositivos telefónicos celulares convencionales
tienen enlace a Internet, evitando así disponibilidad de Wifi u otros servicios.
Figura 15. Esquema de Comunicación de J2ME
2.1.10.2 Microsoft .NET
Microsoft .NET es una plataforma de desarrollo y ejecución de aplicaciones.
Los componentes principales de la plataforma .NET son:
Un entorno de ejecución de aplicaciones, también llamado “Runtime”.
Un conjunto de bibliotecas
Un conjunto de lenguajes de programación de alto nivel, junto con sus
compiladores y linkers, que permitirán el desarrollo de aplicaciones
sobre la plataforma .NET.
Un conjunto de herramientas de desarrollo para simplificar las tareas
más comunes del proceso de desarrollo de aplicaciones
3
GPRs (General Packet Radio Service) oservicio general de paquetes vía radio es una extensión del
Sistema Global para Comunicaciones Móviles.
43
Microsoft .NET Framework
Este es el modelo de programación de Microsoft .NET para desarrollar
aplicaciones de tipo Web, cliente y servicios Web XML.4
Dentro de la plataforma de Microsoft .NET existen algunas herramientas como
son:
Common Language Runtime (CLR) Este es responsable de los servicios
en tiempo de ejecución.
Librerías de clases, proporcionan funcionalidad estándar, manipulación
de strings, gestión de la seguridad, comunicaciones en redes, etc.
Además nos permite tener acceso a bases de datos con ADO.Net y
páginas Web dinámicas y Servicios Web con ASP.Net
Visual Studio.NET
Visual Studio .NET es un conjunto completo de herramientas de desarrollo para
la construcción de aplicaciones; Web ASP, servicios Web XML, aplicaciones
para escritorio y aplicaciones móviles. Visual Basic, Visual C++, Visual C#,
estos lenguajes de programación aprovechan las funciones de .NET
Framework. Visual Studio cuenta con un framework (.Net 3.5) y está diseñado
para mejoras de desempeño, escalabilidad y seguridad.
4
Los servicios Web XML son un conjunto de aplicaciones o de tecnologías con capacidad para
interoperar en la Web.
44
Visual Basic .NET
Es un lenguaje orientado a objetos y eventos que soporta encapsulación,
herencia y polimorfismo. Visual Basic permite a los desarrolladores centrar el
diseño en Windows, el Web y dispositivos móviles. Como con todos los
lenguajes que tienen por objetivo Microsoft .NET Framework, los programas
escritos en Visual Basic se benefician de la seguridad y la interoperabilidad de
lenguajes, ofrece una manera rápida y fácil de crear aplicaciones basadas en
.NET Framework.
Esta plataforma cuenta con un entorno de desarrollo de alto rendimiento, es
posible aprovechar su entorno para construir una amplia gama de aplicaciones
móviles, Web, Windows y basadas en Office. Presenta mejoras en el IDE,
además de que proporciona soporte de depuración remoto, posibilidad de
generar aplicaciones de 64 bits, y acceso completo a los servicios del sistema y
a las bases de datos. Incluye Crystal Reports para la generación de reportes y
proyectos de instalación basados en Windows Installer.
Visual C++ .NET
Visual C++ .NET es un completo conjunto de herramientas para la creación de
aplicaciones basadas en Microsoft Windows y Microsoft .NET, aplicaciones
Web dinámicas y servicios Web XML utilizando el lenguaje de programación
C++. Este sólido entorno de desarrollo incluye las bibliotecas estándar como
son; ATL (Active Template Library) y MFC (Microsoft Foundation Class),
extensiones avanzadas del lenguaje y eficaces características del entorno de
45
desarrollo integrado (IDE) que permiten a los programadores editar y depurar
código fuente de un modo eficaz.
Entre las nuevas características de Visual C++ .NET, se encuentran atributos
de C++, extensiones administradas, servidor ATL y numerosas optimizaciones
y mejoras de las bibliotecas, el IDE y el compilador.
Visual C++ .NET es único entre los lenguajes compatibles con .NET porque
admite tanto el modelo de código administrado que proporciona .NET
Framework como el modelo de código nativo no administrado basado en
Windows. Al ser compatible con ambos modelos de programación, Visual C++
.NET mantiene y mejora el código y los conocimientos existentes, y
proporciona las máximas opciones posibles para los programadores y las
organizaciones.
Visual C# .NET
C# es un lenguaje de programación orientado a objetos desarrollado y
estandarizado por Microsoft como parte de su plataforma .NET, es uno de los
lenguajes de programación diseñados para la infraestructura de lenguaje
común. C# permite la creación de aplicaciones para Windows, servicios web,
herramientas de bases de datos, componentes, controles, etc.
Ventajas de Visual C#
La facilidad del lenguaje permite crear aplicaciones para Windows en
muy poco tiempo. Es decir, permite un desarrollo eficaz y menor
inversión en tiempo que con otros lenguajes.
46
Permite generar librerías dinámicas (DLL) mediante una reconfiguración
de su enlazador en el proceso de compilación.
Figura 16. Componentes de Visual C#
2.1.11 Emuladores para Dispositivos Móviles
Los emuladores nos permiten probar nuestras aplicaciones sin necesidad de
utilizar un dispositivo real. Es importante recalcar el hecho de que los
emuladores con los que vamos a trabajar emulan y no simulan los dispositivos
reales. Esto significa que nuestras aplicaciones se ejecutan tal y como se
ejecutarían sobre el dispositivo real, pues lo que se emula es realmente el
hardware tipo de una PDA.
Existe algunos tipos de emuladores de móvil, entre estos hay tres categorías
principales:
47
Emuladores de dispositivos: Generalmente los ofrecen los fabricantes
de dispositivos y simulan el dispositivo real. Son válidos para las
pruebas de aplicación del sitio web en un dispositivo o conjunto de
dispositivos.
Emuladores de navegadores: Simulan los navegadores de los
entornos móviles. Son útiles para determinan la funcionalidad disponible
en un navegador, pero no valen para la prueba específica del
dispositivo.
Emuladores del sistema operativo: Microsoft proporciona emuladores
para Windows Mobile y Google proporciona un emulador de Android. Se
ejecutan en un entorno simulado de dispositivos móviles y proporcionan
acceso a aplicaciones que se ejecutan en el sistema operativo.
El SDK de Windows consiste en un conjunto de herramientas, ejemplos de
código, documentación, compiladores, encabezados y bibliotecas que pueden
usar los desarrolladores para crear aplicaciones que se ejecuten en los
sistemas operativos con modelos de programación nativos (Win32) o
administrados (.NET Framework).Así tenemos actualmente los siguientes
SDKs disponibles:
Windows Mobile 5.0 Pockets PC SDK: En el SDK de Windows Mobile
5.0 para Pocket PC se puede escribir software administrado y nativo de
aplicaciones dirigidas a Windows Mobile 5.0 dispositivos basados en
Pocket PC. Que contiene un emulador de dispositivo.
48
2.1.12 Centro de dispositivos de Windows Mobile
El Centro de dispositivos de Windows Mobile es un software de sincronización
desarrollado por Microsoft, y el sucesor de ActiveSync 5. Está diseñado para
sincronizar el contenido de diversas aplicaciones como música, vídeo,
contactos, calendario de eventos, favoritos del navegador web, y otros archivos
entre los dispositivos de Windows Mobile y el sistema operativo de Microsoft
Windows. Centro de dispositivos de Windows Mobile tiene la capacidad de
sincronizar lo siguiente:
Fotos con Galería fotográfica de Windows
Videos con Windows Media Player
Música con Windows Media Player
Favoritos de Internet Explorer
Carpetas / archivos generales con el Explorador de Windows
Los programas de Windows Mobile y actualizaciones de la versión
Figura 17. Centro de dispositivos de Windows Mobile
5
ActiveSync es la aplicación que nos permitirá conectar nuestro Pocket PC con la computadora de
escritorio para intercambiar información entre ambos dispositivos.
49
2.1.13 Gestores de Base de Datos
Una base de datos es un sistema formado por un conjunto de datos
almacenados en discos que permite guardar grandes cantidades de
información de forma organizada para luego poder encontrar y utilizar
fácilmente. El presente proyecto está realizado mediante la base de datos SQL
Server CE, pero existen otros tipos de base de datos como son Oracle,
PostgreSQL o MySQL.
2.1.13.1 SQL Server 2005 Compact Edition
Microsoft SQL Server 2005 Compact Edition (anteriormente denominada
Microsoft SQL Server 2005 Mobile Edition) es una base de datos compacta
ideal para ser incrustada en aplicaciones móviles y de escritorio.
SQL Server Compact Edition proporciona a los programadores un modelo de
programación común a otras ediciones de SQL Server para el desarrollo tanto
de aplicaciones nativas como administradas.
Ofrece funcionalidad de base de datos relacional en un espacio reducido: un
sólido almacén de datos, un procesador de consultas de optimización y una
conectividad escalable y de confianza.
2.1.13.2 Oracle
Oracle es un sistema de administración de base de datos, fabricado por Oracle
Corporation. Se considera a Oracle como el sistema de bases de datos más
50
completo que existe, debido al soporte de transacciones, su gran estabilidad,
seguridad, es multiplataforma y soporta PL/SQL.
La arquitectura de un servidor Oracle se compone por tres partes importantes:
1. Procesos de usuarios.
2. Estructuras lógicas de memoria que en conjunto son conocidas como la
instancia Oracle (Oracle instance).
3. Estructuras de archivos físicos que en conjunto son llamados la base de
datos oradle (oradle database).
Oracle es básicamente una herramienta cliente/servidor para la gestión de
Bases de Datos. Es un producto vendido a nivel mundial, aunque la gran
potencia que tiene y su elevado precio hacen que sólo se vea en empresas
muy grandes y multinacionales.
2.1.13.3 MySQL
MySQL es un sistema de administración de bases de datos (Database
Management System, DBMS) para bases de datos relacionales. Así, MySQL
no es más que una aplicación que permite gestionar archivos llamados de
bases de datos. MySQL es la base de datos open source más popular y, su
continuo desarrollo y su creciente popularidad está haciendo de MySQL un
competidor cada vez más directo de gigantes en la materia de las bases de
datos como Oracle
MySQL fue escrito en C y C++ y destaca por su gran adaptación a diferentes
entornos de desarrollo, permitiendo su interactuación con los lenguajes de
51
programación más utilizados como PHP, Perl y Java y su integración en
distintos sistemas operativos.
También es muy destacable, la condición de open source de MySQL, que hace
que su utilización sea gratuita e incluso se pueda modificar con total libertad,
pudiendo descargar su código fuente. Esto ha favorecido muy positivamente en
su desarrollo y continuas actualizaciones, para hacer de MySQL una de las
herramientas más utilizadas por los programadores orientados a Internet.
2.1.13.4 PostgreSQL
PostgreSQL es un gestor de bases de datos orientadas a objetos, muy
conocido y usado en entornos de software libre porque cumple los estándares
SQL92 y SQL99, y también por el conjunto de funcionalidades avanzadas que
soporta, lo que lo sitúa al mismo o a un mejor nivel que muchos SGBD
comerciales.
PostgreSQL es un motor de bases de datos relacionales, que verifica integridad
referencial con gran funcionalidad como base de datos, aunque un poco más
lenta que otros motores. PostgreSQL se distribuye bajo licencia BSD, lo que
permite su uso, redistribución, modificación con la única restricción de
mantener el copyright del software a sus autores, PostgreSQL Global
Development Group y la Universidad de California
PostgreSQL corre en casi todos los principales sistemas operativos como son;
Linux, Unix, Solaris, BSDs, Mac OS, Beos, Windows, etc. Soporta los lenguajes
más populares del medio como es; PHP, C, C++, Java, Perl, Python, Ruby, etc.
52
2.2 Marco Temporal/Espacial
El tiempo estimado para el análisis y realización de este proyecto planteado, es
de dos meses, es decir hasta Noviembre del presente año. La empresa en
donde se va a recopilar la información es en la Distribuidora “Orellana” que está
ubicada Paseo de los Cañarís
53
3. METODOLOGÍA
3.1. Metodología de Investigación
3.1.1 Tipo de Investigación
El tipo de investigación que se empleara en este proyecto es aplicada, debido a
que se utilizara conocimientos existentes para aplicarlos a la solución de un
problema o necesidad en un corto tiempo.
Conjuntamente se empleara una investigación descriptiva, ya que éste describe
las situaciones y eventos, es decir cómo se manifiesta el fenómeno a
investigar. Esta investigación es importante para el proyecto puesto que nos
ayudará a tener en cuenta cuales son las necesidades más prioritarias para la
mejora del sistema actual.
3.1.2 Métodos
Se utilizar el Método Inductivo, debido a que partiremos de la investigación de
las actividades desarrolladas dentro de la Empresa, para luego partir de la
información obtenida, se puedan organizar los datos en forma de procesos
establecidos.
Mediante este método se lograra la recolección de información de manera
independiente de varias fuentes, para luego realizar un estudio e investigación
exhaustiva de los puntos que estén relacionados
54
3.1.3 Técnicas
La técnica que se implementara es la entrevista, con la cual se recaudar
información precisa de las actividades o procesos de que realizan en cuanto al
manejo de datos y las actividades que se desarrollan dentro de la empresa.
Con el fin de conocer más a fondo el funcionamiento del control de entrada y
salida del producto de bodega de la empresa.
Preguntas de la entrevista
1. ¿Cómo se manejan los procedimientos de control de entrada y salida del
producto de la empresa?
2. El tiempo de respuesta acerca de los productos del inventario de bodega
es rápida y eficaz
3. ¿La venta de sus productos lo hace mediante vendedores?
4. ¿Utiliza algún Sistema en red para el ingreso y salida de sus productos?
5. ¿Conoce usted acerca de los Sistemas de control de entrada y salida de
productos con tecnología móvil?
6. ¿Usted se interesaría en adquirir un sistema utilizando la tecnología
móvil?
Conclusiones de la entrevista:
Durante la entrevista se pudo recabar la información necesaria, con respecto al
volumen de actividad que se presenta dentro de la empresa es muy buena, el
manejo de los registro se lleva mediante hojas de Excel, los datos que son
manipulados es el código del producto, el nombre del producto, cantidad en
55
stock y un campo de observación en el que se puede describir información que
suceda con el producto.
En cuanto a la seguridad de la información de la empresa, no tienen mayor
seguridad por cuanto que una parte es llevada en hojas de Excel y otra es
registrada en papel, estos documentos tangibles son archivados en un fichero,
con el riesgo de ser alterados o extraviados.
Existe otro problema que es al momento de realizar una búsqueda de un
producto, ya que se dificulta mucho, porque hay que realizar una búsqueda por
fichero, siendo esto una desventaja para el cliente por el tiempo de espera y
para el usuario por no tener información oportuna para poder tomar decisiones
a beneficio de la empresa.
3.2. Metodología de desarrollo de software
3.2.1 Proceso Unificado de Desarrollo
Un proceso es un conjunto de pasos ordenador parcialmente, para alcanzar un
objetivo. En la ingenieria del software, el objetivo es entregar un producto
software que satisfaga las necesidades del usuario, de foma efeciente.
3.2.1.1 Descripción de RUP (Rational Unified Process)
RUP es un proceso de ingenieria de software para modelado orientado a
objetos, basado en la notación UML (Lenguaje Unificado de Modelado).
Centrandose en los casos de uso y la arquitectura, es interactivo e incremental.
56
UML es bastane independiente del proceso, lo que significa que se puede
utilizar con diferentes proceso de ingenieria de software. El Proceso Unificado
de Rational (RUP), es uno de esos enfoques de ciclo de vida que se adapta
especialmete bien a UML.
Las características de RUP son:
Está basado en UML.
Orientado a sistemas de información de gestión.
Simple, eficaz y pequeño, fácil de aprender y usar.
Centrado en el análisis y diseño.
Permite el desarrollo iterativo e incremental del software.
Está dirigido por casos de uso y permite la administración de
requerimientos.
Control de cambios.
Modelado visual del software
Verificación de la calidad del software
El objetivo del Proceso Unificado de Rational es permitir la produccion de un
software de la mayor calidad que satisfaga las necesidades de los usuarios
finales, dentro de planificaciones y presupuesto predecibles. El El Proceso
Unificado de Rational captura algunas de las mejores practicas de desarrollo de
software, de una forma que es adaptable a un amplio rango de proyectos y
organizaciones. En el aspecto de la gestión, el El Proceso Unificado de
Rational proporciona un enfoque disciplinado sobre como asignar tares y
responsabilidades dentro de una organización de desarrollo de software.
57
3.2.1.2 Fases del RUP
Una fase es el intervalo de tiempo entre dos hitos importantes del proceso
durante la cual se cumple un conjunto bien definido de objetivos, completan
artefactos y se toman las decisiones sobre si pasa a la siguiente fase. El
Proceso Unificado de Rational consta de las cuatrro fases siguientes:
Iniciación: Establece la planificación del proyecto.
Elaboración: Establece un plan para el proyecot y una arquitectura.
Construccion: Desarrollar el sistema
Transición: Proporcinar el sitema a sus usuarios finales.
Figura 18. Fases del RUP
Las fases de iniciación y elaboración incluyen las actividades de diseño de ciclo
de vida del desarrollo; la construcción y la transición constituyen su producción.
Dentro de cada fase hay varias iteraciones. Una iteración representa un ciclo
de desarrollo completo, desde la captura de requisitos en el análisis hasta la
58
implementación y pruebas, que produce como resultado la entrega al cliente o
la salida al mercado de un proyecto ejecutable.
Fase de inicio: Durante la fase de iniciación, se establece la planificación del
proyecto y se delimita su alcance. La planificación del proyecto incluye los
criterios de éxito, la evaluación del riesgo, estimulaciones de recursos que se
necesita y un plan de fases que muestra la planificación de los hitos
principales. Durante la iniciación, es frecuentemente crear un prototipo
ejecutable que sirva para probar los conceptos. Al final de la fase de inicio se
examinan los objetivos del ciclo de vida del proyecto y se decide si proceder
con el desarrollo del sistema.
Fase de Elaboración: Los objetivos de la fase de elaboración son analizar el
dominio del problema, establecer una base arquitectónica sólida, desarrollar el
plan de proyecto y eliminar los elementos de más alto riesgo del proyecto. Esto
implica que se debe describir la mayoría de los requisitos del sistema.
Fase de Construcción: Durante la fase de construcción, se desarrolla de
forma iterativa e incremental un producto completo que está preparado para la
transición hacia la comunidad de usuarios. Esto implica describir los requisitos
restantes y los criterios de aceptación, refinando el diseño y completando la
implementación y las pruebas del software.
Fase de Transición: Durante la fase de transición, el software se despliega en
la comunidad de usuarios. Una vez que el sistema ha sido puesto en manos de
los usuarios finales, a menudo aparecen cuestiones que requieren un
desarrollo adicional para ajustar el sistema, corregir algunos problemas no
59
detectados o finalizar algunas características que habían sido pospuestas. Esta
fase comienza normalmente con una visión beta del sistema, que luego será
reemplazada con el sistema de producción.
Al final de la fase de transición se decide si se han satisfecho los objetivos de
ciclo de vida del proyecto, y se determina si se debería empezar otro ciclo de
desarrollo.
3.3. Tecnología
3.3.1 Sistemas Operativos para dispositivos móviles
Como se mensiono anteriormente que el Sistema Operativo, facilita al usuario
las herramientas e interfaces adecuadas para realizar sus tareas informáticas.
Podemos deducir que el uso de uno u otro Sistema Operativo determinarán las
capacidades multimedia de los dispositivos, y la forma de éstas de interactuar
con el usuario.
Este proyecto estara bajo el sistema operativo de Windows Mobile, pero
existen multitud de opciones en cuanto a los Sistema Operativo, si bien las más
conocido hoy en día son; Symbian, BlackBerry OS y recientemente iPhone OS
y el sistema móvil de Google, Android, además por supuesto de los dispositivos
con sistema operativo Linux.
60
3.3.1.1
Comparacion de los detalles básicos y el funcionamiento de los Sistemas Operativos
Tipo de núcleo
Android
BlackBerry
S60
5th Palm
Windows
Cupcake
OS 4.7
Edition
WebOS
Mobile 6.5
Linux
Propietario
Symbian
Linux
Windows CE
Nada
BlackBerry
Exchange,
Exchange
Exchange,
Domino,
Domino,
BlackBerry
BlackBerry
Soporte para empresas
Tecnologías
inalámbricas
GSM, WiFi
GSM,
CDMA, WiFi
GSM, WiFi
GSM,
GSM, CDMA,
CDMA, WiFi WiFi
Figura 19. Comparacion de los detalles basicos entre los Sistemas Operativos Móviles
61
Android
BlackBerry OS
S60 5th
Cupcake
4.7
Edition
Bandeja
Notificación
Pop-up, fondo
Pop-up
Palm WebOS
Windows
Mobile 6.5
Bandeja
Bandeja, popup
Administración de
Google
BES, BIS
contactos
Exchange,
Synergy
Exchange,
Domino,
Domino,
BlackBerry,
BlackBerry,
iSync
ActiveSync
Multitasking
Sí
Sí
Sí
Sí
Sí
Copiar / pegar
Sí
Sí
Sí
Sí
Sí
Ecosistema / Soporte
Amazon
iTunes sin
Ovi
Amazon
Windows Media
DRM
multimedia
Player
Búsqueda global
No
No
Sí
Sí
No
Actualización de firmware
OTA
Tethered, OTA
Tethered, OTA
Desconocido
Tethered, OTA
Motor del navegador
WebKit
Propietario
WebKit
WebKit
Internet
Explorer
Tethering (módem)
Sí (no oficial)
Sí
Sí
Sí
Sí
Bluetooth estéreo
Sí
Sí
Sí
Sí
Sí
Figura 20. Comparación sobre el Funcionamiento de los Sistemas Operativos Móviles
62
3.3.2 Herramientas para el desarrollo de la aplicación móvil
Para el desarrollo de este proyecto fueron necesario instalar las siguientes
herramientas;
Visual Studio 2008 Professional
Emulador en Windows Mobile
−
Windows Mobile 5.0 Pocket PC SDK
Centro de dispositivos de Windows Mobile
Microsoft SQL Server 2005 Compact Edition
3.3.3 Software de Desarrollo
Las herramientas usadas en este proyecto como Visual Studio .Net facilita la
interfaz para el desarrollo de aplicaciones de varios tipos como son:
aplicaciones distribuidas, aplicaciones para Web y aplicaciones para servicios
móviles.
Esta herramienta presenta facilidades en el momento de programar, como
conexión a la base de datos, creación de componentes, etc.
Para el desarrollo de este proyecto se utilizará específicamente el lenguaje
Visual C# de Visual Studio.Net. De igual manera se usará SQL Server 2005
Compact Edition para el almacenamiento de datos de la aplicación.
63
3.3.3.1 Visual Studio 2008
Visual Studio 2008 proporciona múltiples versiones de. NET Framework desde
el mismo entorno de desarrollo, es decir se puede crear aplicaciones que se
dirigen al. NET Framework 2.0, 3.0 o 3.5, lo que significa que puede soportar
una amplia variedad de proyectos en el mismo entorno.
Visual Studio .Net
Visual Studio .NET proporciona una herramienta que permite generar
aplicaciones para Microsoft Windows y el Web. Visual Studio .NET permite
crear aplicaciones para dispositivos compatibles con Internet que se integren
en cualquier plataforma, también permite optimizar la programación basada en
el Web y brinda facilidad para la creación de aplicaciones basadas en
Windows.
Para el mayor alcance posible de dispositivos compatibles con Internet, Visual
Studio .NET proporciona características de Internet Móvil que permite generar
una interfaz Web móvil compatible con una amplia gama de dispositivos
móviles.
Para el desarrollo de aplicaciones móviles Visual Studio.Net dispone de un
módulo que permite el desarrollo de una manera rápida de este tipo de
aplicaciones.Para el desarrollo de esta aplicación se utilizara el lenguaje Visual
C# de la aplicación Visual Studio.Net
64
Existe una gran ventaja al trabajar con la plataforma .NET ya que se puede
acceder a toda la gama de equipos móviles en el mercado, ya sea con
aplicaciones online o aplicaciones ejecutables.
Figura 21. Dispositivos moviles que se pueden programar con .NET
Este proyecto esta desarrollado bajo la plataforma de Visual Studio 2008 en el
Lenguaje de progamación Visual C# .NET y esta orientado hacia los
dispositivos moviles Pocket PC, en el siguente cuadro comparativo nos
muestra las razones de porque se a utilizado este lenguaje.
3.3.4 Funcionalidad del Emulador en Windows Mobile
Como se menciono anteriormente el emularo nos permitira probar nuestra
aplicacion sin necesidad de utilizar un dispositivo real. Es muy importante
señalar que los emuladores con los que vamos a trabajar emulan y no simulan
los dispositivos reales. Esto significa que nuestra aplicación se ejecutara tal y
como se ejecutarían sobre el dispositivo real, pues lo que se emula es
realmente el hardware de una PDA.
65
Para abrir la ejecución del emulador de Windows Mobile, accedemos a
la barra de herramientas y a continuación abrimos el Administrador de
emuladores de dispositivos. En el proyecto a presentar se utilizara
Windows Mobile 5.0 Pocket PC y se realiza la coneccion.
Figura 22. Administrador de emuladores de dispositivos
Al momento que hacemos click en conectar lanzaremos a ejecución el
emulador correspondiente. La pantalla del emulador nos ofrece tres
menús: Archivo, Flash y Ayuda.
A través del menú Archivo podremos guardar el estado del emulador,
borrar un estado guardado, realizar una reinicialización hardware o
software y configurar el emulador. La diferencia entre una reinicialización
hardware y uno software es que mediante el primero realizamos el
restablecimiento de los ajustes de fábrica de la PDA, mientras que con el
segundo no perdemos los programas instalados ni los datos
almacenados, simplemente vaciamos la RAM del sistema.
66
Figura 23. Emulador del Pocket PC
El emulador del dispositivo contiene exactamente una copia de un dispositivo
real y puede ser utilizado como tal. Además se puede administrar el dispositivo
desde las opciones del menú realizando acciones tales como:
Guardar el estado: Esta acción realiza la emulación de conservación en
memoria de todo lo que se encuentra en el dispositivo, esta opción es
útil ya que cada vez que se lanza el dispositivo es como un nuevo inicio
desde cero.
Borrar el estado guardado: En esta opción nos permite formatear la PC y
volver a instalar el Sistema Operativo.
Restablecer software: En este caso se reinicia el sistema operativo de la
máquina, es un reinicio normal del sistema operativo.
Restablecer hardware: Es una forma de reiniciar el sistema operativo
desde cero, como formatear el dispositivo.
67
Configurar: El emulador del dispositivo se puede configurar para estar
siempre presente, cambiar de modo de visualización y utilizar recursos
del pc como parte del emulador.
3.3.5 Centro de dispositivos de Windows Mobile
El Centro de dispositivos de Windows Mobile ofrece administración de
dispositivos y sincronización de datos entre un dispositivo basado en Windows
Mobile y un equipo. El Centro de dispositivos de Windows Mobile incluye las
siguientes características:
Programa de instalación optimizada: El Centro de dispositivos de
Windows Mobile tiene un asistente de asociación nuevo y simplificado y
ha mejorado la administración de asociación.
Sincronización sólida
Administración de foto: La función de administración de fotos le ayuda
a detectar nuevas fotos en un dispositivo basado en Windows Mobile.
Por lo tanto, esta característica le ayuda etiquetar las fotografías e
importarlas en la Galería fotográfica de Windows Vista.
Sincronización de medios: Puede usar el Reproductor de Windows
Media de Microsoft para sincronizar archivos de música y para
reproducir aleatoriamente estos archivos en un dispositivo basado en
Windows Mobile.
Búsqueda de archivos: Una nueva experiencia de búsqueda de
dispositivo le permite examinar rápidamente archivos y carpetas.
68
Además, puede abrir documentos que se encuentren en un dispositivo
basado en Windows Mobile directamente desde el equipo.
Interfaz de usuario mejorada: El Centro de dispositivos de Windows
Mobile tiene una interfaz de usuario simple que ayuda a obtener acceso
rápido a tareas importantes y a configurar un dispositivo basado en
Windows Mobile.
3.3.6 Gestor de Base de Datos a desarrollo en la aplicación
3.3.6.1 SQL Server 2005 Compact Edition
SQL Server Compact Edition es una tecnología de bases de datos versátil
compatible con todas las plataformas de Windows y tiene una evolución de la
tecnología de bases de datos de Windows Mobile conocida como SQL Server
Mobile Edition (SQL Mobile).
SQL Server Compact Edition cuenta con muchas características nuevas y
actualizadas que mejoran la confiabilidad y el rendimiento de las bases de
datos. Estas mejoras se pueden dividir en categorías generales: motor de
almacenamiento y procesador de consultas.
Las caracteristicas de SQL Server Compact Edition
Un motor de base de datos compacto y un sólido optimizador de
consultas.
Compatibilidad con la réplica de mezcla y el acceso a datos remotos.
Integración con Microsoft SQL Server 2005.
Integración con Microsoft Visual Studio.
69
Acceso a datos remotos y réplica de mezcla para sincronizar datos.
Compatibilidad con Microsoft ADO.NET
Posee un subconjunto de sintaxis SQL.
Se implementa como una base de datos incrustada en equipos de
escritorio, dispositivos móviles y Tablet PC.
Ventajas de SQL Server Compact Edition
Funciones más básicas de BD relacional en un formato compacto
Ideal para aplicaciones de móviles y de escritorio, como ciertas
aplicaciones de conexión esporádica
Se puede inserta dentro de las aplicaciones
La descarga, desarrollo, instalación y redistribución son gratuitas
En conclusion el motor de base de datos para este proyeto sera SQL Server
2005 Compact Edition, por su flexibilidad y por sus caracteristicas antes
mencionad, una de las ventajas de esta base de datos es que el usuario
pueden tener acceso a los resultados mediante un método más completo y
sencillo.
70
3.3.6.2 Comparación de SQL Server con otros gestores de base de datos
SQL
CARACTERÍSTICAS
SERVER ORACLE MYSQL POSTGRESQL
Soporte de transacciones
Si
Si
Si
Si
Escalabilidad, estabilidad
Si
Si
No
No
Si
No
Si
No
Si
No
Si
No
SI
No
No
No
SI
No
SI
No
No
SI
No
No
SI
No
No
No
y seguridad.
Soporta procedimientos
almacenados.
Permite realizar Vistas,
Triggers
Posee un entorno gráfico
de administración, que
permite el uso de
comandos DDL y DML
gráficamente.
Permite trabajar en modo
cliente-servidor
Su soporte
multiplataforma
Posee un entorno gráfico
de administración, que
permite el uso de
comandos DDL y DML
gráficamente.
Figura 24. Matriz comparativa de gestores de base de datos
71
4. DESARROLLO
El sistema de Control de Entradas y Salidas, responde a la necesidad que
tienen, las empresas comerciales de crear un sistema que automatice el control
de inventario de bodega, brindando de esta manera un servicio de calidad e
innovador. Este sistema ha sido diseñado pensando en el usuario, ya que su
acceso y navegación será de fácil comprensión y manejo, el sistema
presentara mensajes de error y de ayuda entendibles cuando fuese necesario,
para resolver problemas.
4.1 Perspectiva del sistema
La idea fundamental de este sistema es proveer facilidades a los encargados
de inventarios de bodega de la empresa, automatizando los procesos de
entrada y salida de los producto, para tener una reducción de tiempo
considerable comparada con la forma manual de llevar inventarios. Nuestro
futuro sistema interactuará con una base de datos que almacenará a todas las
sucursales o almacenes para realizar los respectivos traspasos de productos,
con este proceso se dará de baja a los productos del inventario.
4.2 Restricciones del sistema de entrada y salida
El sistema de entrada y salida de productos tendrá las siguientes restricciones:
No poder operar en un sistema abierto a cualquier plataforma, como por
ejemplo en Linux, ya que fue especialmente ideado para que funcione
en Windows.
72
En cuanto a las limitaciones del hardware debemos tener en cuenta que
cada usuario tiene una velocidad de acceso a la red diferente. Para
poder tener acceso en tiempo real a cualquier tipo de información.
En cuanto a la seguridad del sistema, deberemos protegerlo frente a
cualquier intento de acceso no permitido, por ello todo usuario dispondrá
de una contraseña para poder acceder al sistema.
4.3 Interfaces externas
4.3.1 Interfaces de usuario
Estas interfaces permitirán realizar procesos de registros de productos, ingreso
de artículos, y salida de productos, además nos presentara las consultas
necesarias. El ingreso al sistema requiere un tipo de usuario y contraseña.
Nuestra aplicación funcionará bajo el entorno de Windows y dentro de éste, la
interfaz hacia el usuario se mostrará mediante un emulador de dispositivo, para
introducir datos en los respectivos campos.
4.3.2 Interfaces hardware
El sistema soportará las siguientes actividades:
Navegación entre interfaces
Mouse y Teclado.
Ingresos de datos
Teclado, Administrador del
Emulador del dispositivo.
Salida de datos
Monitor
Figura 25. Matriz de Interfaz con el Hardware
73
4.3.3 Interfaces software
Se usará el siguiente software:
Herramienta UML para el análisis y diseño del
Herramientas Base de Datos
−
SQL Server 2005 Compact Edition
Herramientas de desarrollo
−
Visual Studio .Net 2008. Lenguaje Visual C# .NET
Para Documentar
−
Microsoft Word.
4.4 Flujo de trabajo (Workflow) del sistema
4.4.1 Fase de Inicio
4.4.1.1 Análisis del sistema actual
Los métodos tradicionales que se han utilizado para llevar el control de entrada
y salida de un producto, de cierta forma son inseguros. La problemática que se
vive actualmente dentro de la Distribuidora es que los procesos son llevados de
forma manual, provocando pérdida de tiempo en la actualización de datos y la
falta de información al momento de tomar una decisión.
Hoy en día gracias a los avances de la tecnología permite que las
organizaciones se hagan competitivas en este mundo globalizado en el que las
organizaciones luchan por mantenerse en el mercado. Es favorable para
nuestro país la implementación de tecnología mediante la implementación de
proyectos como este, el mismo que permite mantener la información a toda
hora y en todo lugar. La necesidad de obtener la información de una manera
74
rápida y eficiente no surge de recién, sino desde que existen las empresas que
manejan grandes cantidades de información y el servicio al cliente es parte
esencial de la empresa, es por ello que se plantea el desarrollo de un sistema
de control de entradas y salidas de productos utilizando tecnología PDA.
Con esto nos ayudara a tener una información rápida, segura y que ayude a la
gerencia en la toma de decisiones para lograr ser más productivos.
Figura 26. Diagrama de Flujo de datos
75
4.4.1.2 Descripción de Actores
ACTORES DEL SISTEMA
Administrador Responsable de la gestión y buen funcionamiento del
sistema, y dar mantenimiento de usuarios, bodega,
productos y proveedores.
Bodegueros
Cualquier persona que utilice el sistema para la
entrada y salida del producto.
Figura 27. Matriz de Actores del sistema
4.4.1.3 Identificación de los casos de uso
El sistema de control de entradas y salidas está constituido por los siguientes
casos de uso que son:
ACTOR
CASO DE USO
Mantenimiento de Usuarios
Administrador
Mantenimiento de Productos
Mantenimiento de Bodegas
Mantenimiento de Proveedores
Bodeguero
Control de entrada de productos
Control de salida de productos
Consulta de movimientos
Figura 28. Matriz de identificación de casos de uso
76
4.4.1.4 Catálogo de Requerimientos del sistema
IRQ Nº 1
Mantenimiento de Usuarios
Actor
Administrador
Descripción
El sistema deberá tener la opción de
mantenimiento de usuarios, permitirá crear,
modificar y eliminar un usuario del sistema.
Datos Específicos
Nombre del usuario
Contraseña
Importancia
Alta
Comentario
Es necesario crear los usuarios para acceder
a los diferentes menús del sistema.
IRQ Nº 2
Mantenimiento de Productos
Actor
Administrador
Descripción
El sistema deberá tener la opción de
mantenimiento de productos, permitirá crear,
modificar y eliminar un producto del sistema.
Datos Específicos
Código
Nombre del producto
Stock
Importancia
Alta
Comentario
Es necesario crear los productos ya que
estos nos servirán para realizar el
movimiento de entrada y salida.
77
IRQ Nº 3
Mantenimiento de Bodegas
Actor
Administrador
Descripción
El sistema deberá tener la opción de
mantenimiento de bodegas, permitirá crear,
modificar y eliminar una bodega del sistema.
Datos Específicos
Código
Nombre del bodega
Importancia
Alta
Comentario
El mantenimiento de bodegas nos servirá
para realizar el movimiento de salida del
producto.
IRQ Nº 4
Mantenimiento de Proveedores
Actor
Administrador
Descripción
El sistema deberá tener la opción de
mantenimiento de proveedores, permitirá
crear, modificar y eliminar un proveedor del
sistema.
Datos Específicos
Nombre del Proveedor
Dirección
Teléfono
RUC
Importancia
Alta
Comentario
La lista de los proveedores se utilizara al
momento de realizar el movimiento de
entrada del producto.
78
IRQ Nº 5
Control de Entrada de productos
Actor
Bodeguero
Descripción
El sistema permitirá al usuario bodeguero
realizar el movimiento de entrada de un
producto hacia el inventario de bodega.
Datos Específicos
Fecha
Usuario
Bodega
Proveedor
Producto
Importancia
Alta
Comentario
Con este movimiento se actualizara el
Kardex de productos.
IRQ Nº 5
Control de Salida de productos
Actor
Bodeguero
Descripción
El sistema permitirá al usuario bodeguero
realizar el movimiento de salida del producto
del inventario de bodega.
Datos Específicos
Fecha
Usuario
Bodega
Observación
Producto
Importancia
Alta
Comentario
Con este movimiento se actualizara el
Kardex de productos.
79
4.4.2 Fase de Elaboración
4.4.2.1 Modelado de Caso de Uso
Identificador y nombre
Actores
Control de entrada y salida de productos
Administrador y Bodeguero
Diagrama
detallado
Figura 29. Diagrama de caso de uso
80
4.4.2.1.1 Aplicación de Casos de Uso
4.4.2.1.1.1
Caso de uso Mantenimiento de Usuarios
Caso de uso # 1
Identificador y nombre
Actores
Control de Usuarios
Administrador
Diagrama
Control de Usuarios
detallado
Registra Nuevo
Usuario
Modifica Usuario
Elimina Usuario
Administrador
Figura 30. Caso de uso control de usuarios
81
4.4.2.1.1.2
Caso de uso Mantenimiento de Bodega
Caso de uso # 2
Identificador y nombre
Actores
Control de Bodegas
Administrador
Diagrama
Control de Bodegas
detallado
Registra Nueva
Bodega
Modifica Bodega
Elimina Bodega
Administrador
Figura 31. Caso de uso control de bodegas
82
4.4.2.1.1.3
Caso de uso Mantenimiento de Producto
Caso de uso # 3
Identificador y nombre
Actores
Control de Productos
Administrador
Diagrama
Control de Productos
detallado
Registra Nueva
Producto
Modifica Producto
Elimina Producto
Administrador
Figura 32. Caso de uso control de producto
83
4.4.2.1.1.4
Caso de uso Mantenimiento de Proveedor
Caso de uso # 4
Identificador y nombre
Actores
Control de Proveedor
Administrador
Diagrama
detallado
Figura 33. Caso de uso control de proveedores
84
4.4.2.1.1.5
Caso de uso Movimiento de Entrada
Caso de uso # 5
Identificador y nombre
Actores
Control de Entrada del Producto
Bodeguero
Diagrama
Control de Entrada de Producto
detallado
Ingresa al menu
Ingreso de Productos
Selecciona el
proveedor
Selecciona el
producto
Bodeguero
Selecciona la
cantidad
«extends»
Actualiza el Stock
Figura 34. Caso de uso movimiento entrada
Consultar
85
4.4.2.1.1.6
Caso de uso Movimiento de Salida
Caso de uso # 6
Identificador y nombre
Actores
Control de Salida del Producto
Bodeguero
Diagrama
detallado
Figura 35. Caso de uso movimiento salida
86
4.4.2.1.2 Descripción de casos de uso
El sistema debe gestionar información relacionada con el usuario.
Nombre
Iniciar sesión
Objetivo
Identificar el nivel de acceso de los usuarios al
sistema
Conexión a la base de datos satisfactoria
Precondición
Que el usuario este registrado en el sistema
Que se haya iniciado el programa
Usuario
Sistema
1. Inicia cuando el
2. El sistema despliega
usuario pide
una interfaz de usuario
funcionalidad para
para iniciar sesión, con
iniciar sesión.
dos campos de contraseña
y usuario
Flujo del Sistema
3. El usuario, ingresa el
4. El sistema valida los
usuario y la contraseña.
datos
5. El sistema consulta la
existencia del usuario en
la base de datos
6. El sistema despliega la
interfaz gráfica para dicho
usuario.
87
Caso de uso # 1
Nombre
Registra Nuevo Usuario
Objetivo
Registrar un nuevo usuario
Actor
Administrador
Precondición
Conexión a la base de datos satisfactoria
Haber iniciado sesión un Administrador
Usuario
Sistema
1. El usuario a
2. El sistema valida si el
ingresado como
usuario en sesión tiene
administrador al sistema
nivel de accesibilidad de
administrador
Flujo del Sistema
3. El usuario pide
4. El sistema despliega la
funcionalidad a registrar
interfaz gráfica para
nuevo usuario
registrar un nuevo usuario
5. El usuario llena los
6. El sistema valida los
atributos del nuevo
datos introducidos por el
usuario solicitados por
usuario
la interfaz gráfica dada
por el sistema
7. El sistema guarda en la
base de datos el nuevo
usuario
88
Caso de uso # 1
Nombre
Modificar usuario
Objetivo
Registrar modificaciones en un usuario deseado
Actor
Administrador
Precondición
Conexión a la base de datos satisfactoria
Haber iniciado sesión un Administrador
Usuario
Sistema
1. El usuario a
2. El sistema valida si el
ingresado como
usuario en sesión tiene
administrador al sistema
nivel de accesibilidad de
administrador
Flujo del Sistema
3. El usuario selecciona
4. El sistema despliega
Modificar Usuario
una interfaz gráfica para
modificar
5. El usuario selecciona
6. El sistema valida los
los atributos del usuario
datos entrantes.
que desee modificar.
7. El sistema actualiza en
la base de datos la nueva
modificación
89
Caso de uso # 1
Nombre
Eliminar usuario
Objetivo
Eliminar del sistema un usuario ya sea por causas no
relacionadas con el sistema sino con la empresa
Actores
Precondición
Administrador
Conexión a la base de datos satisfactoria
Haber iniciado sesión un Administrador
Usuario
Sistema
1. El usuario a
2. El sistema valida si el
ingresado como
usuario en sesión tiene
administrador al sistema
nivel de accesibilidad de
administrador
Flujo del Sistema
3. El usuario selecciona
4. El sistema despliega
Eliminar Usuario
una interfaz gráfica para
eliminar
5. El usuario selecciona
6. El sistema valida el dato
el usuario a eliminar
entrante.
7. El sistema actualiza la
base de datos
90
El sistema debe gestionar información relacionada con Bodega.
Caso de uso # 2
Nombre
Crea Nueva Bodega
Objetivo
Registrar un nuevo Bodega
Actor
Administrador
Precondición
Conexión a la base de datos satisfactoria
Haber iniciado sesión un Administrador
Usuario
Sistema
1. El usuario a
2. El sistema valida si el
ingresado como
usuario en sesión tiene
administrador al sistema
nivel de accesibilidad de
administrador
Flujo del Sistema
3. El usuario pide
4. El sistema despliega la
funcionalidad a crear
interfaz gráfica para
nueva bodega
registrar un nueva bodega
5. El usuario llena los
6. El sistema valida los
campos de la nueva
datos introducidos por el
bodega solicitados por
usuario
la interfaz gráfica dada
por el sistema
7. El sistema guarda en la
base de datos la nueva
bodega
91
Caso de uso # 2
Nombre
Modificar Bodega
Objetivo
Registrar modificaciones en una bodega deseada
Actor
Administrador
Precondición
Conexión a la base de datos satisfactoria
Haber iniciado sesión un Administrador
Usuario
Sistema
1. El usuario a
2. El sistema valida si el
ingresado como
usuario en sesión tiene
administrador al sistema
nivel de accesibilidad de
administrador
Flujo del Sistema
3. El usuario selecciona
4. El sistema despliega
Modificar Bodega
una interfaz gráfica para
modificar
5. El usuario selecciona
6. El sistema valida los
los campos de la
datos entrantes.
bodega que desee
modificar.
7. El sistema actualiza en
la base de datos la nueva
modificación
92
El sistema debe gestionar información relacionada con el Producto.
Caso de uso # 3
Nombre
Crea Nueva Producto
Objetivo
Registrar un nuevo producto para poder realizar las
entradas de los productos al inventario de bodega
Actor
Precondición
Administrador
Conexión a la base de datos satisfactoria
Haber iniciado sesión un Administrador
Usuario
Sistema
1. El usuario a
2. El sistema valida si el
ingresado como
usuario en sesión tiene
administrador al sistema
nivel de accesibilidad de
administrador
Flujo del Sistema
3. El usuario pide
4. El sistema despliega la
funcionalidad a crear
interfaz gráfica para
nueva producto
registrar un nueva
producto
5. El usuario llena los
6. El sistema valida los
campos del nuevo
datos introducidos por el
producto solicitados por
usuario
la interfaz gráfica dada
por el sistema
7. El sistema guarda en la
base de datos el nuevo
producto
93
Caso de uso # 3
Nombre
Modificar producto
Objetivo
Registrar modificaciones en un producto deseado
Actor
Administrador
Precondición
Conexión a la base de datos satisfactoria
Haber iniciado sesión un Administrador
Usuario
Sistema
1. El usuario a
2. El sistema valida si el
ingresado como
usuario en sesión tiene
administrador al sistema
nivel de accesibilidad de
administrador
Flujo del Sistema
3. El usuario selecciona
4. El sistema despliega
Modificar producto
una interfaz gráfica para
modificar
5. El usuario selecciona
6. El sistema valida los
los campos del producto
datos entrantes.
que desee modificar.
7. El sistema actualiza en
la base de datos la nueva
modificación
94
Caso de uso # 3
Nombre
Eliminar producto
Objetivo
Eliminar del sistema un producto ya sea por causas
no relacionadas con el sistema sino con la empresa
Actores
Precondición
Administrador
Conexión a la base de datos satisfactoria
Haber iniciado sesión un Administrador
Usuario
Sistema
1. El usuario a
2. El sistema valida si el
ingresado como
usuario en sesión tiene
administrador al sistema
nivel de accesibilidad de
administrador
Flujo del Sistema
3. El usuario selecciona
4. El sistema despliega
Eliminar producto
una interfaz gráfica para
eliminar
5. El usuario selecciona
6. El sistema valida el dato
el producto a eliminar
entrante.
7. El sistema actualiza la
base de datos
95
El sistema debe controlar la entrada del producto de la empresa.
Caso de uso # 4
Nombre
Objetivo
Actor
Precondición
Flujo del Sistema
Registrar la entrada del producto
Controlar las entradas de los productos hacia el área
de Bodega.
Bodeguero
Conexión a la base de datos satisfactoria
Haber iniciado sesión un Bodeguero
Usuario
Sistema
1. El usuario a
2. El sistema valida si el
ingresado como
usuario en sesión tiene
bodeguero al sistema
nivel de accesibilidad de
bodeguero
3. El usuario selecciona 4. El sistema despliega la
entrada de productos
interfaz gráfica para
registrar la entrada de un
producto.
5. El usuario llena los
campos; fecha, nombre
del proveedor, nombre
del usuario, en la
interfaz gráfica dada por
el sistema
6. El usuario graba esta 7. El sistema muestra la
información
lista de los productos
disponible para realiza la
carga al inventario.
8. El usuario selecciona 9. El sistema valida los
el nombre del producto
datos introducidos por el
y la cantidad que desee usuario
ingresar.
10. El sistema guarda en
la base de datos el ingreso
de los productos y
actualiza el stock.
96
El sistema debe controlar la salida del producto de la empresa.
Caso de uso # 5
Nombre
Objetivo
Actor
Precondición
Flujo del Sistema
Registrar la salida del producto
Controlar las salidas del productos
Bodeguero
Conexión a la base de datos satisfactoria
Haber iniciado sesión un Bodeguero
Usuario
Sistema
1. El usuario a
2. El sistema valida si el
ingresado como
usuario en sesión tiene
bodeguero al sistema
nivel de accesibilidad de
bodeguero
3. El usuario selecciona 4. El sistema despliega la
salida de productos
interfaz gráfica para
registrar la salida de un
producto.
5. El usuario llena los
campos; fecha, nombre
del bodega, nombre del
usuario, en la interfaz
gráfica dada por el
sistema
6. El usuario graba esta 7. El sistema muestra la
información
lista de los productos
disponible para realiza la
descarga del inventario.
8. El usuario selecciona 9. El sistema valida los
el nombre del producto
datos introducidos por el
y la cantidad que desee usuario
transferir.
10. El sistema guarda en
la base de datos la salida
de los productos y
actualiza el stock.
97
El sistema debe generar las consultas de entrada y salida del producto
Caso de uso # 4, 5
Nombre
Consulta de las entradas y salidas de los productos
Objetivo
Ver la lista de los productos entrantes y salientes del
sistema. Donde nos muestre el stock actualizado.
Actores
Bodeguero
Precondición
Conexión a la base de datos satisfactoria
Haber iniciado sesión un Bodeguero
Flujo del Sistema
Usuario
Sistema
1. El usuario desea ver
2. El sistema despliega
la lista de los productos
una interfaz gráfica para
de entrada y salida que
consultar las entradas y
se han realizado en el
salidas de los productos,
día
mediante la fecha de
ingreso o egreso del
producto.
3. El usuario ingresa la
4. El sistema consulta en
fecha desde y hasta que base de datos la
desea ver los producto
existencia de dichos
productos
3. El sistema despliega
una interfaz gráfica
mostrando la lista de
productos actualizada.
98
4.4.2.2 Diagrama de Actividad
4.4.2.2.1 Diagrama de Actividad Ingreso al Sistema
Usuario
Ingreso de Usuario y contraseña valido
Validad parámetros de acceso al sistema
No
Usuario no existe
Si
Conectar a la Base de Datos del Sistema
Acceso al Sistema
Figura 36. Diagrama de Actividad Ingreso al sistema
99
4.4.2.2.2 Diagrama de Actividad Movimiento de Entrada
Iniciar seción como bodeguero
Interfaz del menu principal
Ingresar al movimiento de entrada
No
Retorna
Si
Ingresa Datos
Tipo de dato correcto
No
Corregir dato
Si
Graba los datos validados
Muestra datos en la pantalla
Figura 37. Diagrama de Actividad del Movimiento de Entrada
100
4.4.2.2.3 Diagrama de Actividad Movimiento de Salida
Iniciar seción como bodeguero
Interfaz del menu principal
Ingresar al movimiento de salida
No
Retorna
Si
Ingresa Datos
Tipo de dato correcto
No
Corregir dato
Si
Graba los datos validados
Muestra datos en la pantalla
Figura 38. Diagrama de Actividad del Movimiento de Salida
101
4.4.2.2.4 Diagrama de Actividad Consultas de los Movimientos
Iniciar seción como bodeguero
Interfaz del menu principal
Consulta de movimientos
Selecciona el tipo de movimiento (Entrada / Salida)
Valida la fecha
Realiza la consulta en la BD
Muestra Información
Figura 39. Diagrama de Actividad sobre consulta de los movimientos
102
4.4.2.3 Diagrama de Colaboración
4.4.2.3.1 Diagrama de Colaboración Inicio de Sesión
2. Datos del Usuario
1. Ingresar al sistema
Interfaz
Usuario
Sistema
5. Inicio de Secion
4. Verificación
Usuario del Sistema
3. Conexión
Base de Datos
Figura 40. Diagrama de Colaboración de Inicio de Sesión
4.4.2.3.2 Diagrama de Colaboración del Movimiento de Entrada
1. Ingresar al sistema
2. Ingreso de Datos
Interfaz
Sistema Movimiento Entrada
5. Muestra información de la entrada
Bodeguero
4. Guarda
3. Conexión
Base de Datos
Figura 41. Diagrama de Colaboración del Movimiento de Entrada
103
4.4.2.3.3 Diagrama de Colaboración del Movimiento de Salida
1. Ingresar al sistema
2. Ingreso de Datos
Interfaz
Sistema Movimiento Salida
5. Muestra información de la salida
4. Guarda
Bodeguero
3. Conexión
Base de Datos
Figura 42. Diagrama de Colaboración del Movimiento de Salida
4.4.2.4 Diseño del sistema
4.4.2.4.1 Descripción de las clases
Figura 43. Descripción de clases
104
4.4.2.4.2 Diccionario de clases
CLASE
DESCRIPCIÓN
Esta clase representa las sucursales o
Bodega
almacén donde se vende los productos
Es la clase que registra las características
Usuaridat
principales que identifican a usuario
administrador o usuario bodeguero.
Rol
Almacena los tipos de usuarios del sistema
Proveedor
Permite almacenar las características
principales que identifican a un proveedor.
Es la clase que registra las características
Producto
principales que identifican a un producto
Esta clase nos permite sacar los datos por
MovimientoC
rango de fechas
Consulta Filtrada
Esta clase nos permite sacar el movimiento del
kardex del producto
Figura 44. Matriz Diccionario de clases
105
4.4.2.4.3 Diagrama de Clases
Bodega
-codigo
-descripcion
+Eliminar()
+Insertar()
+LlenarBodega()
+Modificar()
+ObtieneBodega()
MovimientoC
Proveedor
-Bodcod
-Fecha
-Observacion
-Tipo
-UsuCod
+Insertar()
+LlenarMoviC()
+ObtieneMovxNum()
+ObtieneUltimo()
-codigo
-direccion
-nombre
-ruc
-telefono
+Eliminar()
+Insertar()
+LlenarProveedor()
+Modificar()
+ObtieneProveedor()
Consulta Filtrada
Usuario
-clave
-codigo
-descripcion
-rol
+Eliminar()
+Insertar()
+LlenarUsuario()
+Modificar()
+ObtieneUsuario()
+ConsultaDetalle()
+ConsultaKardex()
+ConsultaxFechas()
Producto
-descripcion
-stock
+ActualizaStock()
+Eliminar()
+Insertar()
+LlenarProducto()
+Modificar()
+ObtieneProducto()
Rol
-codigo
-descripción
+Eliminar()
+Insertar()
+LlenarRol()
+Modificar()
+ObtieneRol()
Figura 45. Diagrama de clases
106
4.4.2.4.4 Diagrama de Secuencia
4.4.2.4.4.1
Diagrama de Secuencia Ingreso al Sistema
Conexion BD
Interfaz con el sistema
Usuario
1. Ingresar Usuario
2. Solicita contraseña
3. Ingresa Contraseña
4. Set_Usuario
5. Set_contraseña
6. Comparar contraseña
7. Inicia Seción
8. Muestra Inicio de Seción
Figura 46. Diagrama de Secuencia Ingreso al Sistema
107
108
4.4.2.4.4.2
Diagrama de Secuencia Movimiento de Entrada
Interface Usuario
Menu Principal
Movimiento Entrada
Interface Base de Datos
Base de Datos
Bodeguero
1. Inicia secion
2. Ingresa Usuario y Contraseña
3. Validación de los datos
4. Busca si existe el usuario
5. Acepta que existe
6. Despliega el menu principal
7. Selecciona Movimiento de Entrada
8. Registra informacion para la entrada del producto
9. Registra el nombre y cantidad del producto
10. Maneja Evento (Guardar)
11. Execute Create (SQL)
12. Aceptar
13. Salir
Figura 47. Diagrama de Secuencia Movimiento de Entrada
109
4.4.2.4.4.3
Diagrama de Secuencia Movimiento de Salida
Interface Usuario
Menu Principal
Movimiento Salida
Interface Base de Datos
Base de Datos
Bodeguero
1. Inicia secion
2. Ingresa Usuario y Contraseña
3. Validación de los datos
4. Busca si existe el usuario
5. Acepta que existe
6. Despliega el menu principal
7. Selecciona Movimiento de Salida
8. Registra informacion para la salida del producto
9. Registra el nombre del producto
10. Maneja Evento (Guardar)
11. Execute Create (SQL)
12. Aceptar
13. Salir
Figura 48. Diagrama de Secuencia Movimiento de Salida
110
4.4.2.4.5 Diagrama de Estado
4.4.2.4.5.1
Diagrama de Estado Inicio de Sesión
Comparar contraseña
(Contraseña incorrecta)
Volver a entrar
Comparar contraseña
(contraseña incorrecta)
En reposo
Se introduce la
contraseña
Comparando
Comparar contraseña
(contraseña correcta)
Activación
correcta
Seleccionando
Figura 49. Diagrama de Estado de Inicio de Sesión
4.4.2.4.5.2
Diagrama de Estado de Ingreso de Productos
Inicio
Ingreso de nuevos
producto a bodega
Bodeguero
Verifica
Ingresa los productos al
inventario de bodega
Modulo Productos
Actualiza el stock
Sistema
Fin
Figura 50. Diagrama de Estado de Ingreso de Productos
111
4.4.2.4.5.3
Diagrama de Estado de la Salida de Productos
Inicio
Bodeguero
Recibe
Solicitud de salida
Inventario
Descarga de Productos
Sistema
Actualiza el stock
Fin
Figura 51. Diagrama de Estado de la Salida de Productos
112
4.4.2.4.6 Diseño de Interfaces
4.4.2.4.6.1
Pantalla Ingreso al Sistema
Figura 52. Pantalla Ingreso al Sistema
4.4.2.4.6.2
Menú Principal del Administrador
Figura 53. Menú Principal del Administrador
113
4.4.2.4.6.3
Mantenimiento de Proveedores
Figura 54. Mantenimiento de Proveedores
4.4.2.4.6.4
Mantenimiento de Bodega
Figura 55. Mantenimiento de Bodega
114
4.4.2.4.6.5
Mantenimiento de Usuarios
Figura 56. Mantenimiento de Usuarios
4.4.2.4.6.6
Mantenimiento de Productos
Figura 57. Mantenimiento de Productos
115
4.4.2.4.6.7
Menú Principal del Bodeguero
Figura 58. Menú Principal del Bodeguero
4.4.2.4.6.8
Entrada de Mercadería
Figura 59. Entrada de Mercadería
116
4.4.2.4.6.9
Salida de Mercadería
Figura 60. Entrada de Mercadería
4.4.2.4.6.10 Consulta de los Movimiento de Entrada y Salida
Figura 61. Consulta de los Movimiento de Entrada y Salida
117
4.4.2.4.6.11 Kardex del Producto
Figura 62. Kardex de productos
4.4.2.5 Implementación
4.4.2.5.1
Creación de tablas
Tabla Bodega
Figura 63. Tabla Bodega
118
Tabla Productos
Figura 64. Tabla Producto
Tabla Rol
Figura 65. Tabla Proveedor
Tabla Movimiento Cabecera
119
Figura 66. Tabla Movimiento Cabecera
Tabla Movimiento Detalle
Figura 67. Tabla Movimiento Detalle
Tabla Usuario
Figura 68. Tabla Usuario
Tabla Proveedor
Figura 69. Tabla Proveedor
120
4.4.2.5.2
Modelo Entidad Relación
Figura 70. Diagrama de Entidad Relación
4.4.3 Fase de Construcción
4.4.3.1 Plan de Prueba
Mediante el Proceso Unificado de Desarrollo de Software, determina que la
fase de pruebas es la encargada de; Planificar las pruebas en cada iteración,
incluyendo las pruebas de interacción del sistema. Ejecutar las diferentes
pruebas y manejar los resultados de cada prueba sistemáticamente.
121
4.4.3.2 Objetos Evaluados
Para el plan de pruebas identificamos los siguientes artefactos a ser probados.
Entrada de productos
Salida de productos
Consulta de los movimientos
Kardex de Productos
4.4.3.3 Acciones de Prueba
Caso de Prueba
Entrada de productos
Nº
Acción
Resultado
Éxito
1
Verificar si ingreso correcto
Se ingresó de manera correcta
si
Se despliega correctamente
si
Se ejecuta sin problema esta
si
como bodeguero
2
Seleccionar entrada de
productos
3
Validación de los campos
acción.
4
5
Carga de productos
Grabar el movimiento
Se mostró todos los productos
que dispone la empresa
si
Se ejecuta correctamente y
si
actualiza los datos.
Figura 71. Caso de Prueba Entrada de Productos
122
Caso de Prueba
Salida de productos
Nº
Acción
Resultado
Éxito
1
Verificar si ingreso correcto
Se ingresó de manera correcta
si
Se despliega correctamente
si
Se ejecuta sin problema esta
si
como bodeguero
2
Seleccionar la opción salida
de productos
3
Validación de los campos
acción.
4
5
Carga de productos
Grabar el movimiento
Se mostró todos los productos
que dispone la empresa
si
Se ejecutó correctamente y
si
actualiza los datos.
Figura 72. Caso de Prueba Salida de Productos
Caso de Prueba
Consulta de los Movimientos
Nº
Acción
Resultado
Éxito
2
Seleccionar la opción
Se despliega correctamente
si
Selecciona la fecha y el tipo
Se ejecuta esta acción
si
de movimiento
correctamente.
Seleccionar la opción
Se carga los datos en la grilla.
Consulta de movimientos
3
si
Consultar
4
5
Ver detalle
Selecciona Salir
Nos muestra el producto que
ha sido ingresa o egresado
si
Regresa al menú principal del
si
bodeguero.
Figura 73. Caso de Prueba Consulta de los movimientos
123
Caso de Prueba
Kardex de los productos
Nº
Acción
Resultado
Éxito
2
Seleccionar la opción Kardex
Se despliega correctamente
si
Selecciona la fecha y el
Se ejecuta esta acción
si
nombre del producto
correctamente.
Seleccionar la opción
Nos muestra el movimiento
Consultar
que ha tenido un producto.
Selecciona Salir
Regresa al menú principal del
de los productos
3
5
bodeguero.
Figura 74. Caso de Prueba Kardex de los productos
si
si
124
5. CONCLUSIONES Y RECOMENDACIONES
5.1 Conclusiones
La utilización de un sistema automatizado mediante un dispositivo móvil
brindará soluciones efectivas al proceso de entrada y traslado de
productos, logrando así dar un servicio eficiente y de calidad a sus
clientes.
Acortar el tiempo de búsqueda, acceso y abastecimiento de productos
requeridos en almacén.
Información precisa y confiable
Con la utilización de la tecnología móvil se logra optimizar el tiempo en
el proceso de gestión de entrada y traslado, así como también la
reducción en cuanto a gastos de útiles de oficina como la utilización de
papel.
La portabilidad de un dispositivo móvil hace que los usuarios puedan
manejarlos en todo momento y lugar ya que este dispositivo tiene casi el
mismo tamaño que un teléfono celular.
5.2 Recomendaciones
Se recomienda fomentar la utilización de la tecnología de dispositivos
móviles en un mayor porcentaje, dentro del sector industrial y
comercial de nuestra ciudad así como también a nivel nacional.
Se recomienda capacitar a los usuarios en cuanto a las aplicaciones
en tecnología móvil.
125
BIBLIOGRAFÍA
-
[1] Wikipedia (sf) consultado el 06.sep.2011 Copiado de:
-
http://es.wikipedia.org/wiki/Comunicaci%C3%B3n_inal%C3%A1mbric
a
-
[2]
Wikipedia
(sf)
consultado
el
02.sep.2011
Copiado
de:
http://es.wikipedia.org/wiki/Proceso_Unificado_de_Rational
-
[3]
Wikipedia
(sf)
consultado
el
02.sep.2011
Copiado
de:
http://es.wikipedia.org/wiki/Lenguaje_Unificado_de_Modelado
-
[4] Wikipedia (sf) consultado el
26.ago.2011 Copiado de:
http://es.wikipedia.org/wiki/Microsoft_SQL_Server
126
ANEXOS
MANUAL DE USUARIO
INTRODUCCIÓN
El manual del sistema de entrada y salida, permite visualizar de manera
perceptible su entorno gráfico y su operatividad, ya que en él se explica
detalladamente los pasos que deben seguir para el manejo general de las
estructuras de las pantallas, así como las funciones de los iconos básicos.
Por consiguiente, el usuario obtendrá información valiosa para el manejo de las
herramientas que le permitirán aprovechar las bondades que le ofrece el
Sistema.
Entre las bondades que ofrece el Sistema, se pueden citar las siguientes:
Es amigable y de fácil manejo, ya que queda a conveniencia del usuario
utilizar desde el emulador o mediante un dispositivo móvil.
Facilita la gestión de manejo y control de procesos del inventario, a
través de los procesos de entrada y salida.
Contiene mensajes en caso que el usuario ingrese alguna información
mal.
127
Ingreso al sistema
El sistema de Entrada y Salida cuenta con tres tipos de usuarios. Para realizar
los mantenimientos del sistema se ingresara como Administrador. Para
acceder al sistema es necesario tener un nombre del usuario y contraseña.
Menú Principal del Administrador
Dentro del menú principal del administrador, esta los mantenimientos de
Usuarios, Productos, Proveedores, Bodegas
128
Mantenimiento de Proveedores
La aplicación permite crear, modificar y eliminar un proveedor del sistema
Nuevo Proveedores
Al seleccionar Nuevo se abre una pantalla mostrandomos los campos que se
debe llenar (Nombre, Direccion, Telefono, RUC), luego de llenar estos datos,
hacemos clik en Grabar y nos visualiza un mensaje que el producto a sido
creado y si no queremos guardar damos clik en Cerrar y nos regresaremos al
mantenimiento de proveedores.
129
Modificar Proveedores
Al seleccionar Modificar se abre una pantalla mostrandomos los campos que
deseemos cambiar (Nombre, Direccion, Telefono, RUC), luego de modificar los
datos, hacemos clik en Grabar y nos visualiza un mensaje que el producto a
sido modificado, presionamos ok y regresa al mantenimiento del proveedores y
si no queremos guardar los cambios damos clik en Cerrar y nos regresaremos
al mantenimiento de proveedores.
Eliminar Proveedores
Al seleccionar Eliminar se abre una pantalla mostrandomos los campos de lo
que vamos a eliminar (Nombre, Direccion, Telefono, RUC), hacemos clik en
Eliminar y nos visualiza un mensaje “Realmente desea Eliminar”, si damos clik
en Si se eliminara automaticamente y regresa al mantenimiento del
proveedores y si no queremos eliminar damos clik en No y nos regresaremos
al mantenimiento de proveedores.
130
Mantenimiento de Bodega
La aplicación permite crear, modificar y eliminar una bodega del sistema
Nuevo Bodega
Al seleccionar Nuevo se abre una pantalla mostrandomos el campo que se
debe llenar (Descripción), luego de llenar ese dato, hacemos clik en Grabar y
nos visualiza un mensaje que el producto a sido creado y si no queremos
guardar damos clik en Cerrar y nos regresaremos al mantenimiento de bodega.
131
Modificar Bodega
Al seleccionar Modificar se abre una pantalla mostrando el campo a cambiar
cambiar (Descripción), luego de modificar el dato, hacemos clik en Grabar y
nos visualiza un mensaje que el producto a sido modificado, presionamos ok y
regresa al mantenimiento del bodega y si no queremos guardar los cambios
damos clik en Cerrar y nos regresaremos al mantenimiento de bodega.
132
Eliminar Bodega
Al seleccionar Eliminar se abre una pantalla mostrandomos el campo que
vamos a eliminar (Descripción), hacemos clik en Eliminar nos visualiza un
mensaje “Realmente desea Eliminar”, si damos clik en Si se eliminara
automaticamente y regresa al mantenimiento del producto y si no queremos
eliminar damos clik en Cerrar y nos regresaremos al mantenimiento de
bodega.
Mantenimiento de Usuarios
La aplicación permite crear, modificar y eliminar un usuario del sistema
133
Nuevo Usuario
Al seleccionar Nuevo se abre una pantalla mostrandomos los campos que se
debe llenar (Descripción, Rol, Clave), luego de llenar estos datos, hacemos clik
en Grabar si deseamos que se guarde la información y no damos clik en
Cerrar y nos regresaremos al mantenimiento de usuarios.
Modificar Usuario
Al seleccionar Modificar se abre una pantalla mostrandomos los campos que
deseemos cambiar (Descripción, Rol, Clave), luego de modificar los datos,
hacemos clik en Grabar si deseamos que se guarde la información y no damos
clik en Cerrar y nos regresaremos al mantenimiento de usuarios.
134
Eliminar Usuario
Al seleccionar Eliminar se abre una pantalla mostrandomos los campos de lo
que deseemos eliminar (Descripción, Rol, Clave), al dar clik en Eliminar nos
muestra un mensaje, si estamos seguros que deseamos elimar la información
si estamos seguros damos clik en Si y se elimian el dato y si damos clik en No
regresaremos al mantenimiento de usuarios.
135
Mantenimiento de Productos
La aplicación permite crear, modificar y eliminar un producto del sistema
Nuevo Productos
Al seleccionar Nuevo se abre una pantalla mostrandomos los campos que se
debe llenar (Descripción, Stock), luego de llenar estos datos, hacemos clik en
Grabar y nos visualiza un mensaje que el producto a sido creado y si no
queremos guardar damos clik en Cerrar y nos regresaremos al mantenimiento
de productos.
136
Modificar Productos
Al seleccionar Modificar se abre una pantalla mostrandomos los campos que
deseemos cambiar (Descripción, Rol, Clave), luego de modificar los datos,
hacemos clik en Grabar y nos visualiza un mensaje que el producto a sido
modificado, presionamos ok y regresa al mantenimiento del producto y si no
queremos guardar los cambios damos clik en Cerrar y nos regresaremos al
mantenimiento de productos.
Eliminar Productos
Al seleccionar Eliminar se abre una pantalla mostrandomos los campos de lo
que vamos a eliminar (Descripción, Rol, Clave), hacemos clik en Eliminar y
nos visualiza un mensaje “Realmente desea Eliminar”, si damos clik en Si se
eliminara automaticamente y regresa al mantenimiento del producto y si no
queremos eliminar damos clik en Cerrar y nos regresaremos al mantenimiento
de productos.
137
Menú Principal del Bodeguero
Dentro del menú principal del bodeguero, esta los movimientos de entrada y
salida, consultas de los movimientos y kardex del producto.
138
Entrada de Mercadería
Luego de haber ingresado como usuario Bodeguero, tiene la opción de realizar
este movimiento de entrada, para esta acción se debe registrar los campos
solicitados (Fecha, Usuario, Proveedor, Bodega, Observación), luego de llenar
esta información, hacemos clik en Grabar, no aparece un mensaje “movimiento
registrado se procede a solicitar la mercadería”, damos clik en ok y se carga la
lista de los productos en el cual nos aparece le stock actual de los mismos, el
usuario debe colocar la cantidad que va a ingresar al sistema, luego de esto
damos clik en Grabar y nos muestra un mensaje “Producto Grabado” y damos
clik en ok y seguimos cargando los productos, si ya no se quiere damos clik en
Salir.
Salida de Mercadería
Esta opción realizar este movimiento de salida del producto, para registrar la
salida se debe registrar los campos solicitados (Fecha, Usuario, Proveedor,
Bodega, Observación), luego de llenar esta información, hacemos clik en
139
Grabar, no aparece un mensaje “movimiento registrado se procede a solicitar la
mercadería”, damos clik en ok y se carga la lista de los productos en el cual
nos aparece le stock actual de los mismos, el usuario debe colocar la cantidad
que va a ingresar al sistema, luego de esto damos clik en Grabar y nos
muestra un mensaje “Producto Grabado” y damos clik en ok y seguimos
cargando los productos, si ya no se quiere damos clik en Salir.
Salida de Mercadería
Esta opción realizar este movimiento de salida del producto, para registrar la
salida se debe registrar los campos solicitados (Fecha, Usuario, Bodega,
Observación), luego de llenar esta información, hacemos clik en Grabar, no
aparece un mensaje “movimiento registrado se procede a solicitar la
mercadería”, damos clik en ok y se carga la lista de los productos en el cual
nos aparece le stock actual de los mismos, el usuario debe colocar la cantidad
que va a ingresar al sistema, luego de esto damos clik en Grabar y nos
muestra un mensaje “Producto Grabado” y damos clik en ok y seguimos
cargando los productos, si ya no se quiere damos clik en Salir.
140
Consulta de Entrada y Salida
El sistema permite realizar consultas sobre los movimientos de entrada y salida
de los productos, para ello el usuario deberá colocar la fecha desde y hasta,
luego seleccionar el tipo de movimiento (Entrada o Salida), y dar clik en
Consultar. A continuación nos muestra en la grilla la información solicitada y
para ver con más detalle de que producto se trata damos clik en Ver Detalle y
nos muestra el producto que ha tenido la acción.
Kardex de Producto
El usuario podrá consultar el historial de cada uno de los productos, para ello
debe ingresar la fecha desde y hasta, el nombre del producto y dar clik en
Consulta, y en seguida nos muestra los movimientos que ha tenido el
producto. Si se desea salir damos clik en Salir y regresamos al menú principal
del bodeguero.
141
Menú del Programador
Esta opción es para el programador del sistema en casa que se desee crear
más roles dentro del sistema
142
Mantenimiento de Roles
La aplicación permite crear, modificar y eliminar los roles del sistema
Nuevo Rol
Al seleccionar Nuevo se abre una pantalla mostrandomos el campo que se
debe llenar (Descripción), luego de llenar ese dato, hacemos clik en Grabar y
nos visualiza un mensaje “Rol Creado”, damos clik en ok y regresamos al
mantenimiento de roles y si no queremos guardar damos clik en Cerrar y nos
regresaremos al mantenimiento de roles.
Modificar Rol
Al seleccionar Modificar se abre una pantalla mostrando el campo a cambiar
cambiar (Descripción), luego de modificar el dato, hacemos clik en Grabar y
143
nos visualiza un mensaje “Rol Modificado”, damos clik ok y regresa al
mantenimiento del roles y si no queremos guardar los cambios damos clik en
Cerrar y nos regresaremos al mantenimiento de roles.
Eliminar Rol
Al seleccionar Eliminar se abre una pantalla mostrandomos el campo que
vamos a eliminar (Descripción), hacemos clik en Eliminar nos visualiza un
mensaje “Realmente desea Eliminar”, si damos clik en Si se eliminara
automaticamente y regresa al mantenimiento del roles y si no queremos
eliminar damos clik en Cerrar y nos regresaremos al mantenimiento de roles.
144
UNIVERSIDAD TECNOLÓGICA ISRAEL
DIRECCIÓN DE POSGRADOS
AUTORIZACIÓN DE EMPASTADO
DE: Ing. Miriam Almache
PARA: Msc. Luis Andrés Chávez Ing.
DIRECTOR DEL SINED DE LA UNIVERSIDAD ISRAEL
ASUNTO: Autorización de Empastado
FECHA Cuenca, Diciembre 1 de 2011
Por medio de la presente certifico que la pregradista María Eulalia Gutiérrez
Tuapante con CI No.0104952437 han realizado las modificaciones solicitadas
de acuerdo a la última revisión realizada en mi tutoría, al documento de tesis
titulada Desarrollo de un sistema para el control de entradas y salidas de
un producto mediante tecnología móvil en empresas comerciales, del
título de ingenieros en sistemas informáticos
Atentamente
_______________________________
Ing. Miriam Almache
145
UNIVERSIDAD TECNOLÓGICA ISRAEL
DIRECCIÓN DE POSGRADOS
AUTORIZACIÓN DE EMPASTADO
DE: Ing. Henry Córdova
PARA: Msc. Luis Andrés Chávez Ing.
DIRECTOR DEL SINED DE LA UNIVERSIDAD ISRAEL
ASUNTO: Autorización de Empastado
FECHA Cuenca, Diciembre 1 de 2011
Por medio de la presente certifico que la pregradista María Eulalia Gutiérrez
Tuapante con CI No.0104952437 han realizado las modificaciones solicitadas
de acuerdo a la última revisión realizada en mi tutoría, al documento de tesis
titulada Desarrollo de un sistema para el control de entradas y salidas de
un producto mediante tecnología móvil en empresas comerciales, del
título de ingenieros en sistemas informáticos
Atentamente
_______________________________
Ing. Henry Córdova
146
UNIVERSIDAD TECNOLÓGICA ISRAEL
DIRECCIÓN DE POSGRADOS
AUTORIZACIÓN DE EMPASTADO
DE: Ing. Max Zúñiga
PARA: Msc. Luis Andrés Chávez Ing.
DIRECTOR DEL SINED DE LA UNIVERSIDAD ISRAEL
ASUNTO: Autorización de Empastado
FECHA Cuenca, Diciembre 1 de 2011
Por medio de la presente certifico que la pregradista María Eulalia Gutiérrez
Tuapante con CI No.0104952437 han realizado las modificaciones solicitadas
de acuerdo a la última revisión realizada en mi tutoría, al documento de tesis
titulada Desarrollo de un sistema para el control de entradas y salidas de
un producto mediante tecnología móvil en empresas comerciales, del
título de ingenieros en sistemas informáticos
Atentamente
_______________________________
Ing. Max Zúñiga
147
Manual de Programación
Podremos revisar en nuestro trabajo que está desarrollado con la técnica de
programación orientada a objetos, para eso hemos creado una para cada tipo
de movimiento, es decir, tenemos clases como: Bodega, Consulta Filtrada,
MovimientoC, producto, etc.
A continuación revisaremos las mismas donde detallamos el código fuente:
CLASE BODEGA.using System;
using System.Linq;
using System.Collections.Generic;
using System.Text;
using System.Data.SqlServerCe;
using System.Data;
namespace Tesis_ES_Movil.Bodegas
{
classBodega
{
publicstaticTesisBD_ESDataSet.BodegaDataTable llenarBodega()
{
TesisBD_ESDataSet.BodegaDataTable dat =
newTesisBD_ESDataSet.BodegaDataTable();
System.Data.SqlServerCe.SqlCeConnection conn = new
System.Data.SqlServerCe.SqlCeConnection(
("Data Source=" +
(System.IO.Path.Combine(System.IO.Path.GetDirectoryName(System.Reflectio
n.Assembly.GetExecutingAssembly().GetName().CodeBase),
"TesisBD_ES.sdf") + ";Max Database Size=2047")));
148
{
conn.Open();
string sql = @"select * FROM Bodega";
System.Data.SqlServerCe.SqlCeCommand cmd =
conn.CreateCommand();
cmd.CommandText = sql;
SqlCeDataAdapter da = newSqlCeDataAdapter(cmd);
da.Fill(dat);
conn.Close();
}
return dat;
}
publicstaticstring Insertar(string Descripcion)
{
TesisBD_ESDataSet.BodegaDataTable dat =
newTesisBD_ESDataSet.BodegaDataTable();
System.Data.SqlServerCe.SqlCeConnection conn = new
System.Data.SqlServerCe.SqlCeConnection(
("Data Source=" +
(System.IO.Path.Combine(System.IO.Path.GetDirectoryName(System.Reflectio
n.Assembly.GetExecutingAssembly().GetName().CodeBase),
"TesisBD_ES.sdf") + ";Max Database Size=2047")));
{
string sql = @"Insert into Bodega(Descripcion)values('" + Descripcion + "')";
conn.Open();
System.Data.SqlServerCe.SqlCeCommand cmd =
conn.CreateCommand();
cmd.CommandText = sql;
SqlCeDataAdapter da = newSqlCeDataAdapter(cmd);
da.Fill(dat);
conn.Close();
}
return"OK";
}
publicstaticstring Modificar(int Codigo, string Descripcion)
{
TesisBD_ESDataSet.BodegaDataTable dat =
newTesisBD_ESDataSet.BodegaDataTable();
System.Data.SqlServerCe.SqlCeConnection conn = new
System.Data.SqlServerCe.SqlCeConnection(
("Data Source=" +
(System.IO.Path.Combine(System.IO.Path.GetDirectoryName(System.Reflectio
n.Assembly.GetExecutingAssembly().GetName().CodeBase),
"TesisBD_ES.sdf") + ";Max Database Size=2047")));
{
149
string sql = @"Update Bodega Set Descripcion ='" + Descripcion + "' Where
Codigo=" + Codigo;
conn.Open();
System.Data.SqlServerCe.SqlCeCommand cmd =
conn.CreateCommand();
cmd.CommandText = sql;
cmd.ExecuteNonQuery();
conn.Close();
}
return"OK";
}
publicstaticstring Eliminar(int Codigo)
{
TesisBD_ESDataSet.BodegaDataTable dat =
newTesisBD_ESDataSet.BodegaDataTable();
System.Data.SqlServerCe.SqlCeConnection conn = new
System.Data.SqlServerCe.SqlCeConnection(
("Data Source=" +
(System.IO.Path.Combine(System.IO.Path.GetDirectoryName(System.Reflectio
n.Assembly.GetExecutingAssembly().GetName().CodeBase),
"TesisBD_ES.sdf") + ";Max Database Size=2047")));
{
string sql = @"Delete from Bodega Where Codigo=" + Codigo;
conn.Open();
System.Data.SqlServerCe.SqlCeCommand cmd =
conn.CreateCommand();
cmd.CommandText = sql;
cmd.ExecuteNonQuery();
conn.Close();
}
return"OK";
}
publicstaticstring ObtieneBodega(int Codigo)
{
string Descripcion;
System.Data.SqlServerCe.SqlCeConnection cn = new
System.Data.SqlServerCe.SqlCeConnection(
("Data Source=" +
(System.IO.Path.Combine(System.IO.Path.GetDirectoryName(System.Reflectio
n.Assembly.GetExecutingAssembly().GetName().CodeBase),
"TesisBD_ES.sdf") + ";Max Database Size=2047")));
TesisBD_ESDataSet.BodegaDataTable dat =
newTesisBD_ESDataSet.BodegaDataTable();
SqlCeCommand cmd = newSqlCeCommand();
cmd.Connection = cn;
150
string sql = @"Select * from Bodega where Codigo = " + Codigo;
cmd.CommandText = sql;
SqlCeDataAdapter da = newSqlCeDataAdapter(cmd);
da.Fill(dat);
cn.Open();
SqlCeDataReader reader = cmd.ExecuteReader();
do
{
reader.Read();
Descripcion = reader.GetString(1).Trim();
} while (reader.NextResult());
reader.Close();
cn.Close();
return Descripcion;
}
}
}
Clase MOVIMIENTOC
using System;
using System.Linq;
using System.Collections.Generic;
using System.Text;
using System.Data.SqlServerCe;
using System.Data;
namespace Tesis_ES_Movil
{
classMovimientoC
{
publicstring Tipo;
publicDateTime Fecha;
publicint UsuCod;
publicint Bodcod;
publicstring Observacion;
publicint PrvCod;
publicstaticTesisBD_ESDataSet.MoviCDataTable llenarMoviC()
{
TesisBD_ESDataSet.MoviCDataTable dat =
newTesisBD_ESDataSet.MoviCDataTable();
System.Data.SqlServerCe.SqlCeConnection conn = new
System.Data.SqlServerCe.SqlCeConnection(
151
("Data Source=" +
(System.IO.Path.Combine(System.IO.Path.GetDirectoryName(System.Reflectio
n.Assembly.GetExecutingAssembly().GetName().CodeBase),
"TesisBD_ES.sdf") + ";Max Database Size=2047")));
{
conn.Open();
string sql = @"select * FROM MoviC";
System.Data.SqlServerCe.SqlCeCommand cmd =
conn.CreateCommand();
cmd.CommandText = sql;
SqlCeDataAdapter da = newSqlCeDataAdapter(cmd);
da.Fill(dat);
conn.Close();
}
return dat;
}
publicstaticstring Insertar(string Tipo, DateTime Fecha, int UsuCod, int BodCod,
string Observacion, int Estado, int Proveedor)
{
TesisBD_ESDataSet.ProductoDataTable dat =
newTesisBD_ESDataSet.ProductoDataTable();
System.Data.SqlServerCe.SqlCeConnection conn = new
System.Data.SqlServerCe.SqlCeConnection(
("Data Source=" +
(System.IO.Path.Combine(System.IO.Path.GetDirectoryName(System.Reflectio
n.Assembly.GetExecutingAssembly().GetName().CodeBase),
"TesisBD_ES.sdf") + ";Max Database Size=2047")));
{
string LaFecha;
LaFecha = Fecha.ToString("MM/dd/yyyy hh:mm");
string sql = @"Insert into MoviC(Tipo, Fecha, UsuCod, BodCod, Observacion,
Estado, PrvCod)values('" + Tipo + "','" + LaFecha + "', " + UsuCod + ", " +
BodCod + ", '" + Observacion + "', 1, " + Proveedor + ")";
conn.Open();
System.Data.SqlServerCe.SqlCeCommand cmd =
conn.CreateCommand();
cmd.CommandText = sql;
SqlCeDataAdapter da = newSqlCeDataAdapter(cmd);
da.Fill(dat);
conn.Close();
}
return"OK";
}
publicstaticstring Insertar(string Tipo, DateTime Fecha, int UsuCod, int BodCod,
string Observacion, int Estado)
{
152
TesisBD_ESDataSet.ProductoDataTable dat =
newTesisBD_ESDataSet.ProductoDataTable();
System.Data.SqlServerCe.SqlCeConnection conn = new
System.Data.SqlServerCe.SqlCeConnection(
("Data Source=" +
(System.IO.Path.Combine(System.IO.Path.GetDirectoryName(System.Reflectio
n.Assembly.GetExecutingAssembly().GetName().CodeBase),
"TesisBD_ES.sdf") + ";Max Database Size=2047")));
{
string LaFecha;
LaFecha = Fecha.ToString("MM/dd/yyyy hh:mm");
string sql = @"Insert into MoviC(Tipo, Fecha, UsuCod, BodCod, Observacion,
Estado, PrvCod)values('" + Tipo + "','" + LaFecha + "', " + UsuCod + ", " +
BodCod + ", '" + Observacion + "', 1, 0)";
conn.Open();
System.Data.SqlServerCe.SqlCeCommand cmd =
conn.CreateCommand();
cmd.CommandText = sql;
SqlCeDataAdapter da = newSqlCeDataAdapter(cmd);
da.Fill(dat);
conn.Close();
}
return"OK";
}
publicstaticMovimientoC ObtieneMovxNum(int NumMov)
{
MovimientoC MC = newMovimientoC();
System.Data.SqlServerCe.SqlCeConnection cn = new
System.Data.SqlServerCe.SqlCeConnection(
("Data Source=" +
(System.IO.Path.Combine(System.IO.Path.GetDirectoryName(System.Reflectio
n.Assembly.GetExecutingAssembly().GetName().CodeBase),
"TesisBD_ES.sdf") + ";Max Database Size=2047")));
TesisBD_ESDataSet.MoviCDataTable dat =
newTesisBD_ESDataSet.MoviCDataTable();
SqlCeCommand cmd = newSqlCeCommand();
cmd.Connection = cn;
string sql = @"Select * from MoviC where Numero = " + NumMov;
cmd.CommandText = sql;
SqlCeDataAdapter da = newSqlCeDataAdapter(cmd);
da.Fill(dat);
cn.Open();
SqlCeDataReader reader = cmd.ExecuteReader();
do
{
reader.Read();
153
MC.Tipo = reader.GetString(1).Trim();
MC.Fecha = reader.GetDateTime(2);
MC.UsuCod = reader.GetInt32(3);
MC.Bodcod = reader.GetInt32(4);
MC.Observacion = reader.GetString(5);
MC.PrvCod = reader.GetInt32(6);
} while (reader.NextResult());
reader.Close();
cn.Close();
return MC;
}
publicstaticint ObtieneUltimo()
{
int Numero;
System.Data.SqlServerCe.SqlCeConnection cn = new
System.Data.SqlServerCe.SqlCeConnection(
("Data Source=" +
(System.IO.Path.Combine(System.IO.Path.GetDirectoryName(System.Reflectio
n.Assembly.GetExecutingAssembly().GetName().CodeBase),
"TesisBD_ES.sdf") + ";Max Database Size=2047")));
TesisBD_ESDataSet.MoviCDataTable dat =
newTesisBD_ESDataSet.MoviCDataTable();
SqlCeCommand cmd = newSqlCeCommand();
cmd.Connection = cn;
string sql = @"Select * from MoviC order by Numero Desc";
cmd.CommandText = sql;
SqlCeDataAdapter da = newSqlCeDataAdapter(cmd);
da.Fill(dat);
cn.Open();
SqlCeDataReader reader = cmd.ExecuteReader();
reader.Read();
Numero = reader.GetInt32(0);
return Numero;
}
}
}
CLASE CONSULTAFILTRADA
using System;
using System.Linq;
154
using System.Collections.Generic;
using System.Text;
using System.Data.SqlServerCe;
namespace Tesis_ES_Movil
{
classConsultaFiltrada
{
publicstaticTesisBD_ESDataSet.MoviCDataTable ConsultaxFechas(DateTime
desde, DateTime hasta, string Consultar)
{
string tipo;
if (Consultar == "Entrada")
tipo = "E";
else
tipo = "S";
TesisBD_ESDataSet.MoviCDataTable dt =
newTesisBD_ESDataSet.MoviCDataTable();
System.Data.SqlServerCe.SqlCeConnection conn = new
System.Data.SqlServerCe.SqlCeConnection(
("Data Source=" +
(System.IO.Path.Combine(System.IO.Path.GetDirectoryName(System.Reflectio
n.Assembly.GetExecutingAssembly().GetName().CodeBase),
"TesisBD_ES.sdf") + ";Max Database Size=2047")));
{
string sql = @"select * FROM MoviC where fecha >= '"+
desde.ToString("MM/dd/yyyy")+ " 00:00:01' and fecha <= '"+
hasta.ToString("MM/dd/yyyy")+ " 23:59:59' and tipo = @tipo";
System.Data.SqlServerCe.SqlCeCommand cmd =
conn.CreateCommand();
cmd.CommandText = sql;
cmd.Parameters.AddWithValue("@tipo", tipo);
SqlCeDataAdapter da = newSqlCeDataAdapter(cmd);
da.Fill(dt);
}
return dt;
}
publicstaticTesisBD_ESDataSet.MoviDDataTable ConsultaDetalle(int NumMov)
{
TesisBD_ESDataSet.MoviDDataTable dat =
newTesisBD_ESDataSet.MoviDDataTable();
System.Data.SqlServerCe.SqlCeConnection conn = new
System.Data.SqlServerCe.SqlCeConnection(
("Data Source=" +
(System.IO.Path.Combine(System.IO.Path.GetDirectoryName(System.Reflectio
155
n.Assembly.GetExecutingAssembly().GetName().CodeBase),
"TesisBD_ES.sdf") + ";Max Database Size=2047")));
{
string sql = @"select MoviD.Secuencia, MoviD.MoDCantidad, MoviD.ProCod,
Producto.Descripcion FROM MoviD
inner join Producto
on MoviD.ProCod = Producto.codigo and Numero = @NumMov ";
System.Data.SqlServerCe.SqlCeCommand cmd =
conn.CreateCommand();
cmd.CommandText = sql;
cmd.Parameters.AddWithValue("@NumMov", NumMov);
SqlCeDataAdapter da = newSqlCeDataAdapter(cmd);
da.Fill(dat);
}
return dat;
}
publicstaticTesisBD_ESDataSet.MoviDDataTable ConsultaKardex(DateTime
desde, DateTime hasta, int CodPro)
{
TesisBD_ESDataSet.MoviDDataTable dt =
newTesisBD_ESDataSet.MoviDDataTable();
System.Data.SqlServerCe.SqlCeConnection conn = new
System.Data.SqlServerCe.SqlCeConnection(
("Data Source=" +
(System.IO.Path.Combine(System.IO.Path.GetDirectoryName(System.Reflectio
n.Assembly.GetExecutingAssembly().GetName().CodeBase),
"TesisBD_ES.sdf") + ";Max Database Size=2047")));
{
string sql = @"select * FROM MoviD
where MoDfecha >= '"+desde.ToString("MM/dd/yyyy")+ " 00:00:01'
and MoDfecha <= '"+ hasta.ToString("MM/dd/yyyy")+ " 23:59:59' and ProCod =
@CodPro Order By Orden";
System.Data.SqlServerCe.SqlCeCommand cmd =
conn.CreateCommand();
cmd.CommandText = sql;
cmd.Parameters.AddWithValue("@CodPro", CodPro);
SqlCeDataAdapter da = newSqlCeDataAdapter(cmd);
da.Fill(dt);
}
return dt;
}
}
156
}
CLASE PRODUCTO
using System;
using System.Linq;
using System.Collections.Generic;
using System.Text;
using System.Data.SqlServerCe;
using System.Data;
namespace Tesis_ES_Movil.Productos
{
classProducto
{
publicstring Descripcion;
publicint Stock;
publicstaticTesisBD_ESDataSet.ProductoDataTable llenarProducto()
{
TesisBD_ESDataSet.ProductoDataTable dat =
newTesisBD_ESDataSet.ProductoDataTable();
System.Data.SqlServerCe.SqlCeConnection conn = new
System.Data.SqlServerCe.SqlCeConnection(
("Data Source=" +
(System.IO.Path.Combine(System.IO.Path.GetDirectoryName(System.Reflectio
n.Assembly.GetExecutingAssembly().GetName().CodeBase),
"TesisBD_ES.sdf") + ";Max Database Size=2047")));
{
conn.Open();
string sql = @"select * FROM Producto";
System.Data.SqlServerCe.SqlCeCommand cmd =
conn.CreateCommand();
cmd.CommandText = sql;
SqlCeDataAdapter da = newSqlCeDataAdapter(cmd);
da.Fill(dat);
conn.Close();
}
return dat;
}
publicstaticstring Insertar(string Descripcion)
{
TesisBD_ESDataSet.ProductoDataTable dat =
newTesisBD_ESDataSet.ProductoDataTable();
System.Data.SqlServerCe.SqlCeConnection conn = new
System.Data.SqlServerCe.SqlCeConnection(
157
("Data Source=" +
(System.IO.Path.Combine(System.IO.Path.GetDirectoryName(System.Reflectio
n.Assembly.GetExecutingAssembly().GetName().CodeBase),
"TesisBD_ES.sdf") + ";Max Database Size=2047")));
{
string sql = @"Insert into Producto(Descripcion, Stock)values('" + Descripcion +
"', 0)";
conn.Open();
System.Data.SqlServerCe.SqlCeCommand cmd =
conn.CreateCommand();
cmd.CommandText = sql;
SqlCeDataAdapter da = newSqlCeDataAdapter(cmd);
da.Fill(dat);
conn.Close();
}
return"OK";
}
publicstaticstring Modificar(int Codigo, string Descripcion)
{
TesisBD_ESDataSet.ProductoDataTable dat =
newTesisBD_ESDataSet.ProductoDataTable();
System.Data.SqlServerCe.SqlCeConnection conn = new
System.Data.SqlServerCe.SqlCeConnection(
("Data Source=" +
(System.IO.Path.Combine(System.IO.Path.GetDirectoryName(System.Reflectio
n.Assembly.GetExecutingAssembly().GetName().CodeBase),
"TesisBD_ES.sdf") + ";Max Database Size=2047")));
{
string sql = @"Update Producto Set Descripcion ='" + Descripcion + "' Where
Codigo=" + Codigo;
conn.Open();
System.Data.SqlServerCe.SqlCeCommand cmd =
conn.CreateCommand();
cmd.CommandText = sql;
cmd.ExecuteNonQuery();
conn.Close();
}
return"OK";
}
publicstaticstring Eliminar(int Codigo)
{
TesisBD_ESDataSet.ProductoDataTable dat =
newTesisBD_ESDataSet.ProductoDataTable();
System.Data.SqlServerCe.SqlCeConnection conn = new
System.Data.SqlServerCe.SqlCeConnection(
158
("Data Source=" +
(System.IO.Path.Combine(System.IO.Path.GetDirectoryName(System.Reflectio
n.Assembly.GetExecutingAssembly().GetName().CodeBase),
"TesisBD_ES.sdf") + ";Max Database Size=2047")));
{
string sql = @"Delete from Producto Where Codigo=" + Codigo;
conn.Open();
System.Data.SqlServerCe.SqlCeCommand cmd =
conn.CreateCommand();
cmd.CommandText = sql;
cmd.ExecuteNonQuery();
conn.Close();
}
return"OK";
}
publicstaticProducto ObtieneProducto(int Codigo)
{
Producto MiProducto = newProducto();
System.Data.SqlServerCe.SqlCeConnection cn = new
System.Data.SqlServerCe.SqlCeConnection(
("Data Source=" +
(System.IO.Path.Combine(System.IO.Path.GetDirectoryName(System.Reflectio
n.Assembly.GetExecutingAssembly().GetName().CodeBase),
"TesisBD_ES.sdf") + ";Max Database Size=2047")));
TesisBD_ESDataSet.ProductoDataTable dat =
newTesisBD_ESDataSet.ProductoDataTable();
SqlCeCommand cmd = newSqlCeCommand();
cmd.Connection = cn;
string sql = @"Select * from Producto where Codigo = " + Codigo;
cmd.CommandText = sql;
SqlCeDataAdapter da = newSqlCeDataAdapter(cmd);
da.Fill(dat);
cn.Open();
SqlCeDataReader reader = cmd.ExecuteReader();
do
{
reader.Read();
MiProducto.Descripcion = reader.GetString(1).Trim();
MiProducto.Stock = reader.GetInt32(2);
} while (reader.NextResult());
reader.Close();
cn.Close();
return MiProducto;
}
159
publicstaticint ActualizaStock(int Codigo, string Operacion, int Cantidad)
{
Producto MiProducto = newProducto();
int Cant2;
TesisBD_ESDataSet.ProductoDataTable dat =
newTesisBD_ESDataSet.ProductoDataTable();
System.Data.SqlServerCe.SqlCeConnection conn = new
System.Data.SqlServerCe.SqlCeConnection(
("Data Source=" +
(System.IO.Path.Combine(System.IO.Path.GetDirectoryName(System.Reflectio
n.Assembly.GetExecutingAssembly().GetName().CodeBase),
"TesisBD_ES.sdf") + ";Max Database Size=2047")));
{
string sql = @"Update Producto Set Stock = Stock " + Operacion +
Cantidad.ToString() +" Where Codigo=" + Codigo;
conn.Open();
System.Data.SqlServerCe.SqlCeCommand cmd =
conn.CreateCommand();
cmd.CommandText = sql;
cmd.ExecuteNonQuery();
conn.Close();
TesisBD_ESDataSet.ProductoDataTable dat2 =
newTesisBD_ESDataSet.ProductoDataTable();
SqlCeCommand cmd2 = newSqlCeCommand();
cmd2.Connection = conn;
sql = @"Select Stock from Producto where Codigo = " + Codigo;
cmd.CommandText = sql;
SqlCeDataAdapter da = newSqlCeDataAdapter(cmd);
da.Fill(dat2);
conn.Open();
SqlCeDataReader reader = cmd.ExecuteReader();
do
{
reader.Read();
MiProducto.Stock = reader.GetInt32(0);
} while (reader.NextResult());
reader.Close();
conn.Close();
Cant2 = MiProducto.Stock;
}
return Cant2;
}
}
160
}
CLASE PROVEEDOR
using System;
using System.Linq;
using System.Collections.Generic;
using System.Text;
using System.Data.SqlServerCe;
using System.Data;
namespace Tesis_ES_Movil.Proveedores
{
publicclassProveedor
{
publicint Codigo;
publicstring Nombre;
publicstring Direccion;
publicstring Telefono;
publicstring Ruc;
publicstaticTesisBD_ESDataSet.ProveedorDataTable llenarProveedor()
{
TesisBD_ESDataSet.ProveedorDataTable dat =
newTesisBD_ESDataSet.ProveedorDataTable();
System.Data.SqlServerCe.SqlCeConnection conn = new
System.Data.SqlServerCe.SqlCeConnection(
("Data Source=" +
(System.IO.Path.Combine(System.IO.Path.GetDirectoryName(System.Reflectio
n.Assembly.GetExecutingAssembly().GetName().CodeBase),
"TesisBD_ES.sdf") + ";Max Database Size=2047")));
{
conn.Open();
string sql = @"select * FROM Proveedor";
System.Data.SqlServerCe.SqlCeCommand cmd =
conn.CreateCommand();
cmd.CommandText = sql;
SqlCeDataAdapter da = newSqlCeDataAdapter(cmd);
da.Fill(dat);
conn.Close();
}
return dat;
}
publicstaticstring Insertar(string Nombre, string Direccion, string Telefono, string
Ruc)
{
161
TesisBD_ESDataSet.ProveedorDataTable dat =
newTesisBD_ESDataSet.ProveedorDataTable();
System.Data.SqlServerCe.SqlCeConnection conn = new
System.Data.SqlServerCe.SqlCeConnection(
("Data Source=" +
(System.IO.Path.Combine(System.IO.Path.GetDirectoryName(System.Reflectio
n.Assembly.GetExecutingAssembly().GetName().CodeBase),
"TesisBD_ES.sdf") + ";Max Database Size=2047")));
{
string sql = @"Insert into Proveedor(Nombre, Direccion, Telefono, Ruc)values('"
+ Nombre + "','" + Direccion + "','" + Telefono + "','" + Ruc + "' )";
conn.Open();
System.Data.SqlServerCe.SqlCeCommand cmd =
conn.CreateCommand();
cmd.CommandText = sql;
SqlCeDataAdapter da = newSqlCeDataAdapter(cmd);
da.Fill(dat);
conn.Close();
}
return"OK";
}
publicstaticstring Modificar(int Codigo, string Nombre, string Direccion, string
Telefono, string Ruc)
{
TesisBD_ESDataSet.ProveedorDataTable dat =
newTesisBD_ESDataSet.ProveedorDataTable();
System.Data.SqlServerCe.SqlCeConnection conn = new
System.Data.SqlServerCe.SqlCeConnection(
("Data Source=" +
(System.IO.Path.Combine(System.IO.Path.GetDirectoryName(System.Reflectio
n.Assembly.GetExecutingAssembly().GetName().CodeBase),
"TesisBD_ES.sdf") + ";Max Database Size=2047")));
{
string sql = @"Update Proveedor Set Nombre ='" + Nombre + "', Direccion='" +
Direccion + "', Telefono='"+Telefono + "', Ruc='"+Ruc+"' Where Codigo=" +
Codigo;
conn.Open();
System.Data.SqlServerCe.SqlCeCommand cmd =
conn.CreateCommand();
cmd.CommandText = sql;
cmd.ExecuteNonQuery();
conn.Close();
}
return"OK";
}
publicstaticstring Eliminar(int Codigo)
162
{
TesisBD_ESDataSet.ProveedorDataTable dat =
newTesisBD_ESDataSet.ProveedorDataTable();
System.Data.SqlServerCe.SqlCeConnection conn = new
System.Data.SqlServerCe.SqlCeConnection(
("Data Source=" +
(System.IO.Path.Combine(System.IO.Path.GetDirectoryName(System.Reflectio
n.Assembly.GetExecutingAssembly().GetName().CodeBase),
"TesisBD_ES.sdf") + ";Max Database Size=2047")));
{
string sql = @"Delete from Proveedor Where Codigo=" + Codigo;
conn.Open();
System.Data.SqlServerCe.SqlCeCommand cmd =
conn.CreateCommand();
cmd.CommandText = sql;
cmd.ExecuteNonQuery();
conn.Close();
}
return"OK";
}
publicstaticProveedor ObtieneProveedor(int Codigo)
{
Proveedor MiProveedor = newProveedor();
System.Data.SqlServerCe.SqlCeConnection cn = new
System.Data.SqlServerCe.SqlCeConnection(
("Data Source=" +
(System.IO.Path.Combine(System.IO.Path.GetDirectoryName(System.Reflectio
n.Assembly.GetExecutingAssembly().GetName().CodeBase),
"TesisBD_ES.sdf") + ";Max Database Size=2047")));
TesisBD_ESDataSet.ProveedorDataTable dat =
newTesisBD_ESDataSet.ProveedorDataTable();
SqlCeCommand cmd = newSqlCeCommand();
cmd.Connection = cn;
string sql = @"Select * from Proveedor where Codigo = " + Codigo;
cmd.CommandText = sql;
SqlCeDataAdapter da = newSqlCeDataAdapter(cmd);
da.Fill(dat);
cn.Open();
SqlCeDataReader reader = cmd.ExecuteReader();
do
{
reader.Read();
MiProveedor.Nombre = reader.GetString(1).Trim();
MiProveedor.Direccion = reader.GetString(2).Trim();
MiProveedor.Telefono = reader.GetString(3).Trim();
MiProveedor.Ruc
= reader.GetString(4).Trim();
} while (reader.NextResult());
163
reader.Close();
cn.Close();
return MiProveedor;
}
//
}
}
CLASE ROL
using System;
using System.Linq;
using System.Collections.Generic;
using System.Text;
using System.Data.SqlServerCe;
using System.Data;
namespace Tesis_ES_Movil
{
publicclassRol
{
publicstaticTesisBD_ESDataSet.RolDataTable llenarRol()
{
TesisBD_ESDataSet.RolDataTable dat =
newTesisBD_ESDataSet.RolDataTable();
System.Data.SqlServerCe.SqlCeConnection conn = new
System.Data.SqlServerCe.SqlCeConnection(
("Data Source=" +
(System.IO.Path.Combine(System.IO.Path.GetDirectoryName(System.Reflectio
n.Assembly.GetExecutingAssembly().GetName().CodeBase),
"TesisBD_ES.sdf") + ";Max Database Size=2047")));
{
conn.Open();
string sql = @"select * FROM Rol";
System.Data.SqlServerCe.SqlCeCommand cmd =
conn.CreateCommand();
cmd.CommandText = sql;
SqlCeDataAdapter da = newSqlCeDataAdapter(cmd);
da.Fill(dat);
conn.Close();
}
164
return dat;
}
publicstaticstring Insertar(string Descripcion)
{
TesisBD_ESDataSet.RolDataTable dat =
newTesisBD_ESDataSet.RolDataTable();
System.Data.SqlServerCe.SqlCeConnection conn = new
System.Data.SqlServerCe.SqlCeConnection(
("Data Source=" +
(System.IO.Path.Combine(System.IO.Path.GetDirectoryName(System.Reflectio
n.Assembly.GetExecutingAssembly().GetName().CodeBase),
"TesisBD_ES.sdf") + ";Max Database Size=2047")));
{
string sql = @"Insert into Rol(Descripcion)values('"+Descripcion+"')";
conn.Open();
System.Data.SqlServerCe.SqlCeCommand cmd =
conn.CreateCommand();
cmd.CommandText = sql;
SqlCeDataAdapter da = newSqlCeDataAdapter(cmd);
da.Fill(dat);
conn.Close();
}
return"OK";
}
publicstaticstring Modificar(int Codigo, string Descripcion)
{
TesisBD_ESDataSet.RolDataTable dat =
newTesisBD_ESDataSet.RolDataTable();
System.Data.SqlServerCe.SqlCeConnection conn = new
System.Data.SqlServerCe.SqlCeConnection(
("Data Source=" +
(System.IO.Path.Combine(System.IO.Path.GetDirectoryName(System.Reflectio
n.Assembly.GetExecutingAssembly().GetName().CodeBase),
"TesisBD_ES.sdf") + ";Max Database Size=2047")));
{
string sql = @"Update Rol Set Descripcion ='" + Descripcion + "' Where
Codigo=" + Codigo;
conn.Open();
System.Data.SqlServerCe.SqlCeCommand cmd =
conn.CreateCommand();
cmd.CommandText = sql;
cmd.ExecuteNonQuery();
conn.Close();
}
return"OK";
}
165
publicstaticstring Eliminar(int Codigo)
{
TesisBD_ESDataSet.RolDataTable dat =
newTesisBD_ESDataSet.RolDataTable();
System.Data.SqlServerCe.SqlCeConnection conn = new
System.Data.SqlServerCe.SqlCeConnection(
("Data Source=" +
(System.IO.Path.Combine(System.IO.Path.GetDirectoryName(System.Reflectio
n.Assembly.GetExecutingAssembly().GetName().CodeBase),
"TesisBD_ES.sdf") + ";Max Database Size=2047")));
{
string sql = @"Delete from Rol Where Codigo=" + Codigo;
conn.Open();
System.Data.SqlServerCe.SqlCeCommand cmd =
conn.CreateCommand();
cmd.CommandText = sql;
cmd.ExecuteNonQuery();
conn.Close();
}
return"OK";
}
publicstaticstring ObtieneRol(int Codigo)
{
string Descripcion;
System.Data.SqlServerCe.SqlCeConnection cn = new
System.Data.SqlServerCe.SqlCeConnection(
("Data Source=" +
(System.IO.Path.Combine(System.IO.Path.GetDirectoryName(System.Reflectio
n.Assembly.GetExecutingAssembly().GetName().CodeBase),
"TesisBD_ES.sdf") + ";Max Database Size=2047")));
TesisBD_ESDataSet.RolDataTable dat =
newTesisBD_ESDataSet.RolDataTable();
SqlCeCommand cmd = newSqlCeCommand();
cmd.Connection = cn;
string sql = @"Select * from Rol where Codigo = " + Codigo;
cmd.CommandText = sql;
SqlCeDataAdapter da = newSqlCeDataAdapter(cmd);
da.Fill(dat);
cn.Open();
SqlCeDataReader reader = cmd.ExecuteReader();
do
{
reader.Read();
Descripcion = reader.GetString(1).Trim();
} while (reader.NextResult());
166
reader.Close();
cn.Close();
return Descripcion;
}
}
}
CLASE USUARIO
using System;
using System.Linq;
using System.Collections.Generic;
using System.Text;
using System.Data.SqlServerCe;
using System.Data;
namespace Tesis_ES_Movil.Usuarios
{
publicclassUsuario
{
publicint Codigo;
publicstring Descripcion;
publicint Rol;
publicstring Clave;
publicstaticTesisBD_ESDataSet.UsuarioDataTable llenarUsuario()
{
TesisBD_ESDataSet.UsuarioDataTable dat =
newTesisBD_ESDataSet.UsuarioDataTable();
System.Data.SqlServerCe.SqlCeConnection conn = new
System.Data.SqlServerCe.SqlCeConnection(
("Data Source=" +
(System.IO.Path.Combine(System.IO.Path.GetDirectoryName(System.Reflectio
n.Assembly.GetExecutingAssembly().GetName().CodeBase),
"TesisBD_ES.sdf") + ";Max Database Size=2047")));
{
conn.Open();
string sql = @"select * FROM Usuario";
System.Data.SqlServerCe.SqlCeCommand cmd =
conn.CreateCommand();
cmd.CommandText = sql;
SqlCeDataAdapter da = newSqlCeDataAdapter(cmd);
da.Fill(dat);
conn.Close();
}
return dat;
167
}
publicstaticstring Insertar(string Descripcion, int CodRol, string Clave)
{
TesisBD_ESDataSet.UsuarioDataTable dat =
newTesisBD_ESDataSet.UsuarioDataTable();
System.Data.SqlServerCe.SqlCeConnection conn = new
System.Data.SqlServerCe.SqlCeConnection(
("Data Source=" +
(System.IO.Path.Combine(System.IO.Path.GetDirectoryName(System.Reflectio
n.Assembly.GetExecutingAssembly().GetName().CodeBase),
"TesisBD_ES.sdf") + ";Max Database Size=2047")));
{
string sql = @"Insert into Usuario(Nombre, Rol, Clave)values('" + Descripcion +
"',"+CodRol+",'" + Clave + "' )";
conn.Open();
System.Data.SqlServerCe.SqlCeCommand cmd =
conn.CreateCommand();
cmd.CommandText = sql;
SqlCeDataAdapter da = newSqlCeDataAdapter(cmd);
da.Fill(dat);
conn.Close();
}
return"OK";
}
publicstaticstring Modificar(int Codigo, string Descripcion, int CodRol, string
Clave)
{
TesisBD_ESDataSet.UsuarioDataTable dat =
newTesisBD_ESDataSet.UsuarioDataTable();
System.Data.SqlServerCe.SqlCeConnection conn = new
System.Data.SqlServerCe.SqlCeConnection(
("Data Source=" +
(System.IO.Path.Combine(System.IO.Path.GetDirectoryName(System.Reflectio
n.Assembly.GetExecutingAssembly().GetName().CodeBase),
"TesisBD_ES.sdf") + ";Max Database Size=2047")));
{
string sql = @"Update Usuario Set Nombre ='" + Descripcion + "', Rol="+
CodRol +", Clave = '"+ Clave +"' Where Codigo=" + Codigo;
conn.Open();
System.Data.SqlServerCe.SqlCeCommand cmd =
conn.CreateCommand();
cmd.CommandText = sql;
cmd.ExecuteNonQuery();
conn.Close();
}
return"OK";
168
}
publicstaticstring Eliminar(int Codigo)
{
TesisBD_ESDataSet.UsuarioDataTable dat =
newTesisBD_ESDataSet.UsuarioDataTable();
System.Data.SqlServerCe.SqlCeConnection conn = new
System.Data.SqlServerCe.SqlCeConnection(
("Data Source=" +
(System.IO.Path.Combine(System.IO.Path.GetDirectoryName(System.Reflectio
n.Assembly.GetExecutingAssembly().GetName().CodeBase),
"TesisBD_ES.sdf") + ";Max Database Size=2047")));
{
string sql = @"Delete from Usuario Where Codigo=" + Codigo;
conn.Open();
System.Data.SqlServerCe.SqlCeCommand cmd =
conn.CreateCommand();
cmd.CommandText = sql;
cmd.ExecuteNonQuery();
conn.Close();
}
return"OK";
}
publicstaticUsuario ObtieneUsuario(int Codigo)
{
Usuario MiUsuario = newUsuario();
System.Data.SqlServerCe.SqlCeConnection cn = new
System.Data.SqlServerCe.SqlCeConnection(
("Data Source=" +
(System.IO.Path.Combine(System.IO.Path.GetDirectoryName(System.Reflectio
n.Assembly.GetExecutingAssembly().GetName().CodeBase),
"TesisBD_ES.sdf") + ";Max Database Size=2047")));
TesisBD_ESDataSet.UsuarioDataTable dat =
newTesisBD_ESDataSet.UsuarioDataTable();
SqlCeCommand cmd = newSqlCeCommand();
cmd.Connection = cn;
string sql = @"Select * from Usuario where Codigo = " + Codigo;
cmd.CommandText = sql;
SqlCeDataAdapter da = newSqlCeDataAdapter(cmd);
da.Fill(dat);
cn.Open();
SqlCeDataReader reader = cmd.ExecuteReader();
do
{
reader.Read();
MiUsuario.Descripcion = reader.GetString(1).Trim();
MiUsuario.Rol = reader.GetInt32(2);
169
MiUsuario.Clave = reader.GetString(3);
} while (reader.NextResult());
reader.Close();
cn.Close();
return MiUsuario;
}
}
}
ORGANIZACIÓN
Debemos ser organizados en nuestra programación para poder realizar
modificaciones al mismo sin tener que perderse entre tantos objetos, para esto
usamos carpetas que nos sirven para agrupar determinados temas de nuestro
proyecto, de esta forma:
Como vemos en el ejemplo de los Productos los agrupamos dentro la pantalla
de lista de productos, la clase que realiza las actividades, y la pantalla de
digitación de los datos del producto. De esta forma esta cada uno de los temas
o tópicos de nuestro proyecto.
CONEXIÓN
Para las conexiones que haremos a nuestra Base de Datos se utilizará la
siguiente cadena, se la pone en este manual pues es un poco complicado
armarla ya que los directorios de instalación de la aplicación dentro del
dispositivo móvil (EMULADOR) son diferentes al de una Pc común.
170
System.Data.SqlServerCe.SqlCeConnection conn = new
System.Data.SqlServerCe.SqlCeConnection(
("Data Source=" +
(System.IO.Path.Combine(System.IO.Path.GetDirectoryName(System.Reflectio
n.Assembly.GetExecutingAssembly().GetName().CodeBase),
"TesisBD_ES.sdf") + ";Max Database Size=2047")));
Donde TesisBD_ES.sdf es nuestra BD local que se migra al emulador.
VISION DE PROGRAMACION SOBRE EL USO DE LOS OBJETOS
Según nuestro criterio el usuario se facilitaría si todo está claro para él, por ello,
pensamos en listar la información que estamos utilizando, es decir, si deseo
utilizar los productos, entonces lo primero que debemos hacer es mostrar un
listado de productos el cual el usuario puede utilizar para realizar cualquier
acción:
Como vemos tenemos una grilla donde se cargará los productos, y a su vez
tenemos 3 acciones más, como es crear un productos con el botón NUEVO,
modificar los datos de algún producto que seleccionemos en la grilla o también
eliminarlo si se necesita. Para Modificar o Eliminar debemos seleccionar la fila
en la grilla y de ahí dar clic en el botón respectivo.
Una vez q presiones una acción el sistema me enviará a una pantalla donde se
realizará dicha acción, en este caso la pantalla Producto:
171
Aquí digitaremos los nuevos datos, cambiaremos los datos o confirmaremos la
eliminación según sea la acción que se eligió en la pantalla anterior. Una vez
grabado se retorna a la pantalla de listado con una grilla llena de información
actualizada.
OBJETOS UTILIZADOS.
A continuación listaremos los objetos utilizados para la elaboración del
programa.
Formulario
Botones de comando
Labels y TextBox
DateTimePicker
ComboBox
172
MenuForm
DataGrid
DataSet’s
Enlaces a la BD
Adaptadores
Base de Datos