Professional Documents
Culture Documents
SISTEMA WEB PARA LA COMERCIALIZACIN DE ARTESANA DE HUAMANGA SHOSAKO NAGASECON TECNOLOGIA CRM GRUPO 03 DOCENTE CURSO INTEGRANTES : MSc. Ing. EFRAN ELAS PORRAS FLORES : SISTEMAS DE INFORMACION II : AGUILAR HUAMAN, Vctor HUAMANRIMACHI HUAMAN, Basilio HUAMAN SULCA, Richard Yony MENDOZA REVOLLAR, Frank HUAYCHA ALLCCA, Rubn RIMACHI HUARIPAUCAR, Gloria AYACUCHO PERU 2011
CONTENIDO
CAPITULO I Pag. ANLISIS DE REQUISITOS I.TABLA DE REQUISITOS FUNCIONALES Y NO FUNCIONALES GLOSARIO DE TERMINOS 03
04 05, 06 07
PAQUETE DE REQUISITOS FUNCIONALES Y NO FUNCIONALES. Modelo de dominio inicial CAPITULO II MODELADO DE CASOS DE USO REVISION DEL MODELO DE DOMINIO . . ..
08 14 23
PRIMER BORRADOR DE CASOS DE USO CAPITULO III REVISION DE LOS REQUISITOS (primer intento) Prototipos de interfaz grfica (primer intento) DISEO PRELIMINAR ..
29 34 38 40
MODELO DE DOMINIO ACTUALIZADO (segundo intento) 47 REVISION DEL DISEO PRELIMINAR CAPTULO IV REVISIN DE REQUISITOS (segundo intento) REVISION DE MODELO DE DOMINIO REVISION DE INTERFAZ GRAFICA 2 .. .. .. 49 50 51 48
..
57
REVISION DE DIAGRAMA DE ROBUSTEZ CAPITULO VI ARQUITECTURA TECNICA CAPITULO VII DISEO EN LA PRCTICA DIAGRAMA SECUENCIA .. .
84
86 89 94
REVISION DE INTERFAZ GRAFICA CODIGO WEB MENU PRINCIPAL BEAN DE CLIENTE DAOCliente SERVLET CLIENTE
.. .. ..
CODIGO PARA CARGAR CESTA O CARRITO DE COMPRAS.. LISTAR PEDIDO COMPRA FINALIZADA DESCRIPCION DE PRODUCTO DATOS DEL USUARIO ANEXO RESUMEN .. .. . .
139 138
CAPITULO I
ANLISIS DE REQUISITOS I. TABLA DE REQUISITOS FUNCIONALES Y NO FUNCIONALES: REQUISITOS FUNCIONALES:
Nro. REQ
01
El sistema ser capaz de mostrar el men principal de nuestra artesana al cliente (actor directo).
02 03 04 05 06 07
El administrador debe ser capaz de crear una cuenta para el usuario El sistema nos muestra la barra de opciones (quienes somos, productos) El sistema debe mostrar el cdigo de cuenta a pagar en el tipo de banco El sistema nos muestra la opcin de registro de usuario. El sistema ser capaz de mostrar la imagen de los productos clasificados El sistema ser capaz de mostrar los tipos de producto con detalles (artesana, hojalatera, textilera, etc.)
08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 4
El sistema ser capaz de mostrar la descripcin del producto. El sistema ser capaz de mostrar el precio del producto. El sistema ser capaz de mostrar el tipo de moneda. El sistema ser capaz de mostrar el tipo y la cantidad que solicita. El cliente debe ser capaz de crear una cuenta cliente. El administrador debe tener una cuenta en el sistema. El sistema tiene que ser capaz de registrar y almacenar los datos del cliente El administrador debe ser capaz de actualizar el producto artesanal. El administrador ser capaz de generar reporte de venta, reporte de clientes y otros. El administrador definir la forma de entrega del producto al cliente. El administrador ser capaz de dar plazo de entrega de productos al cliente El sistema ser capaz de mostrar la proforma de la compra realizada. El administrador ser capaz de verificar la transaccin. El sistema debe mostrar el tipo de tarjeta de la transaccin. El sistema ser capaz de mostrar los clientes potenciales. El sistema ser capaz de mostrar el cdigo de oferta por puntos acumulados.
24 25 26 27 28
El sistema debe mostrar la informacin de la empresa. El sistema debe ser capaz de gestionar productos y ofertas lanzadas. El sistema debe ser capaz de gestionar clientes. El administrador debe ser capaz de realizar la proforma ante la venta a un cliente. El sistema permitir al vendedor y cliente realizar la modificacin de su perfil as como tambin la eliminacin de cuenta.
29
El Sistema ser capaz de permitir a los clientes realizar consultas y pedidos al vendedor.
30
El Sistema ser capaz de permitir al vendedor realizar consultas al almacn para y luego hacer pedidos al proveedor (actor indirecto).
31
El Sistema debe ser capaz de registrar nuevos productos en la lista de productos existente.
32
El administrador puede registrar una boleta, factura por la venta de la artesana. REQUISITOS NO FUNCIONALES:
33 34
El sistema dar las ventajas y beneficios de comprar a travs del sitio web. El sistema debe presentar interfaces que hagan posible que el cliente pueda elegir y comprar con comodidad.
35
Brindar todas las posibilidades de pago (on-line con tarjeta de crdito o mediante depsitos bancarios).
36 37
El sistema deber mantener un interfaz amigable y segura. El sistema deber ser gil y ligero.
GLOSARIO DE TERMINOS: Cliente registrado Men principal barra de opciones Cliente nuevo Usuario Administrador Vendedor Proveedor Producto Consulta 5 Cantidad Cuenta Banco Comprobante de pago Documento Oferta Perfil Empresa Almacenar Boleta
Factura Precio Moneda Actor directo Actor indirecto Prod. Clasificados Descripcin
CAPTULO II
MODELADO DE CASOS DE USO
LISTA DE CASOS DE USO: NRO. C.U 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 CASOS DE USO Iniciar sesin Crear cuenta usuario Solicitar cuenta usuario Restablecer cuenta usuario Realizar bsqueda producto artesanal Mostrar precio producto Realizar pedido producto artesanal Cancelar cuenta usuario Realizar mantenimiento producto Registrar venta productos Modificar perfil cliente Eliminar cuenta cliente Establecer reglamentos promocin Modificar producto Eliminar producto Entregar producto Modificar descuento Emitir documento de venta Mantener clientes Mantener ventas Acceder sistema Generar reporte productos
23 24 25 26 27 28 29 30 31 32 33
Gestionar cuenta usuario Emitir proforma Mantener proforma Registrar comprobante pago Mantener comprobante pago. Registrar almacn Actualizar producto Realizar consulta Realizar pedido Emitir reporte venta Emitir reporte cliente
CASOS DE USO
CU 1. Iniciar sesin
artesana al cliente. El sistema debe mostrar la informacin de la empresa( men principal) El administrador debe ser capaz de crear una cuenta para el
usuario El sistema debe mostrar una cuenta para el usuario. El cliente debe ser capaz de crear una cuenta cliente. El sistema nos muestra la barra de opciones (quienes somos,
10
El sistema ser capaz de mostrar la descripcin del producto. El sistema ser capaz de mostrar los tipos de (artesana, hojalatera, textilera, etc.) producto
El sistema ser capaz de mostrar el precio del producto. El sistema ser capaz de mostrar el tipo y la cantidad que solicita. El sistema ser capaz de mostrar el tipo de moneda.
El sistema tiene que ser capaz de registrar y almacenar los datos del cliente.
El sistema debe ser capaz de gestionar clientes. El sistema permitir al cliente realizar la modificacin de su perfil as como tambin la eliminacin de su cuenta.
11
CU 13. Establecer reglamentos promocin CU 14. Modificar producto CU 15. Eliminar producto CU 16. Entregar producto CU 17. Modificar descuento CU 18. Emitir documento de venta CU 19. Mantener clientes CU 20. Mantener ventas
El administrador definir la forma de entrega del producto al cliente. El administrador ser capaz de dar plazo de entrega de productos al cliente El sistema ser capaz de mostrar la proforma de la compra realizada. El administrador ser capaz de verificar la transaccin.
12
CU 24. Emitir proforma CU 25. Mantener proforma El administrador debe ser capaz de realizar la proforma ante la venta a un cliente
CU 26. Registrar comprobante pago CU 27. Mantener comprobante pago El administrador puede registrar comprobante de pago por producto.
El Sistema ser capaz de permitir al vendedor realizar consultas al almacn para hacer pedidos al proveedor. El Sistema debe ser capaz de registrar nuevos productos en la lista de productos existente.
CU 30. Realizar consulta CU 31. Realizar pedido CU32. Emitir reporte venta CU 33. Emitir reporte cliente
El Sistema ser capaz de permitir a los clientes realizar consultas y pedidos al vendedor.
13
14
IDENTIFICACION DE ACTORES A PARTIR DE LOS REQUERIMIENTOS FUNCIONALES: 1. Administrador 2. Usuario 3. Cliente 3.1 Cliente nuevo 3.2 Cliente registrado 4. Proveedor
cliente nuev o
cliente registrado
Prov eedor
Cliente
Administrador
Usuario
15
Gestion de Cuentas
gestion de producto
gestion de categorias
v alidar producto
16
17
uc
crear cuenta
Realiza consulta
18
uc Comprobante
Emite Comprobante
Emite proforma
Crear cuenta
Cancelar cuenta administrador (from Actores) Restablecer contrasea Cliente (from Actores) Cambiar contrasea
19
uc CATEGORIA
agregar categoria
buscar categoria
modificar categoria
eliminar categoria
20
uc Actores
Modificar descuento
uc COMP...
consultar producto
21
22
PRIMER BORRADOR DE CASOS DE USO: CASOS DE USO CURSO BASICO CU 1. Iniciar sesin El usuario (Cliente) ingresa el URL del sistema. El sistema muestra la Pgina de Bienvenida principal. El usuario ingresa sus datos en dicha cuenta y muestra la Pgina de cuenta del usuario. CURSO ALTERNO Nombre de usuario no existe: El sistema muestra un mensaje que dice "Nombre de usuario no existe". El sistema muestra un mensaje "Contrasea incorrecta". DESCRIPCION
CURSO BASICO CU 2. Crear cuenta usuario 1) El actor (cliente) accede al men Principal y hace un click en registrarse, el sistema le muestra el interfaz registrar cliente con los datos a llenar del cliente 2) El actor ingresa los datos cliente (Nombre, apellidos, telfono, pas, ciudad, correo y password) en el interfaz registro cliente, el sistema valida la informacin haciendo click en siguiente
CUESO ALTERNO
1) el sistema le muestra un mensaje de llenar todos los campos en datos del cliente
CURSO BASICO CU 3. Solicitar cuenta usuario El sistema muestra la Pagina Trminos y condiciones. El sistema muestra al usuario selecciona la eleccin de cuenta para Crear Cuenta. El sistema muestra la Pgina de Creacin de Nueva Cuenta. El usuario ingresa todos los datos solicitados.
23
CURSO ALTERNO La cuenta ya existe: El sistema muestra un mensaje "El nombre de usuario ya existe " en la Pgina de Creacin de Nueva Cuenta. Datos incorrectos: El sistema muestra un mensaje "Datos incorrectos" en la Pgina de Creacin de Nueva Cuenta, sealando los campos incorrectos.
CURSO BASICO En la pgina acceso de cuenta el usuario se realiza acciones en olvide contrasea. El sistema le muestra la Pagina Restaurar Contrasea. El usuario ingresa los datos requeridos y hace clic en el botn enviar. El sistema verifica en usuario si existe el E-mail correspondiente a dicha cuenta, recupera el nombre de la cuenta y contrasea; y enva un mensaje a dicho E-mail con su nombre y contrasea de su cuenta. El sistema muestra la Pgina de confirmacin de restauracin.
CURSO ALTERNO E-mail no corresponde al usuario: El sistema muestra un mensaje "Email no encontrado" en la Pagina Restaurar Contrasea.
CURSO BSICO: CU 5. Realizar bsqueda producto artesanal Desde la Pagina de Productos el administrador hace clic en el botn Buscar, el Sistema muestra la Pgina Buscar productos, El administrador ingresa el nombre del producto a buscar. El sistema recupera la informacin del producto buscado desde Detalle producto y le muestra el resultado en la misma pgina. CURSO ALTERNO: Producto no encontrado: El sistema muestra un mensaje El
24
CURSO BASICO:
1) El administrador ingresa a la interfaz de acceso al sistema. 2) El administrador ingresa el nombre de usuario y su contrasea. 3) El sistema valida al usuario y su contrasea en Cuenta 4) El sistema muestra un mensaje de confirmacin. 5) A continuacin muestra el men de la interfaz con un mensaje de bienvenida.
CURSO ALTERNO:
El sistema muestra un mensaje de error indicando que la cuenta y usuario no existe. CURSO BASICO: El Usuario hace clic en el botn Productos en la Pgina de Administrar ventas, el sistema recupera la informacin de Productos vendidos y le muestra en la Pgina de Productos, El Usuario ingresa los datos solicitados por el Sistema del Producto y luego Agregar, El Sistema verifica si los datos son correctos y no se duplican en la Base de Datos e inmediatamente actualiza. CU 10. Registrar venta productos CURSO ALTERNO. Datos Incorrectos: El Usuario ha ingresado datos incorrectos, El sistema muestra un mensaje Datos Incorrectos y luego direcciona a la Pgina Modificar Productos. Ya existe Producto: El Administrador ha ingresado datos duplicados, El sistema muestra un mensaje El Producto ya existe y luego direcciona a la Pgina de Productos.
CURSO BASICO:
1) El usuario (cliente) accede al interfaz de men principal y hace click en nuevo registro y el sistema le muestra el 25
interfaz de registro cliente 2) El usuario se registra sus datos(nombre ,apellido, pas , ciudad, correo , password) en el interfaz registro de clientes CURSO ALTERNO: 1) El sistema le manda un mensaje de error si no registra los campos de datos del cliente 2) El sistema le manda un mensaje de la confirmacin de registro de datos con xito CU 14. Modificar producto CURSO BASICO 1) El usuario cliquea sobre botn modificar productos en la Pgina de men el sistema le muestra la Pgina de administrar productos con todos los detalles de esa oferta en donde el usuario podr consultar e ingresar todas las modificaciones necesarias, el sistema validar los datos ingresados y se actualizar productos con sus respectivas detalles. CURSO ALTERNO 2) Datos incorrectos: El Sistema muestra un mensaje de Datos incorrectos. 3) Usuario no existe: El sistema muestra un mensaje de Usuario no existe.
CURSO BASICO: 1) el usuario (cliente) realiza la gestin de proceso de compra (visualiza el producto, escoge el producto y decide comprar producto artesana) en el interfaz producto dependiendo de la verificacin del stock del producto en producto 2) El usuario dentro del interfaz producto hace click en continuar y el sistema le muestra el interfaz lista de productos seleccionado donde se visualiza los productos
seleccionados(nombre del producto, cantidad precio y total) 3) el usuario busca la oferta y escoge la oferta dentro del interfaz
26
lista de productos seleccionados 4) El usuario dentro del interfaz de lista de productos seleccionados hace click en continuar y el sistema le muestra el interfaz registro de clientes 5) dentro del interfaz registro de cliente existe la obsion de nuevo cliente y cliente registrado, el usuario se registra como cliente nuevo 6) El usuario dentro del interfaz registro de cliente hace click en continuar y el sistema le muestra el interfaz ubicacin y datos del cliente donde registra datos segundario 7) El usuario dentro del interfaz de ubicacin y datos del cliente hace click en continuar y el sistema le muestra el interfaz documentos (emitir factura y manteniendo de proforma) 8) El usuario dentro del interfaz de documento hace click en continuar y el sistema le muestra el interfaz de transaccin donde ingresa los datos de la tarjeta CURSO ALTERNO:
1) El sistema le manda un mensaje si el stock del producto sobre pasa 2) El sistema muestra un mensaje de error indicando que la cuenta y usuario no existe. 3) El sistema le enviara un mensaje con la observacin que debe llenar todos los campos de datos del cliente nuevo 4) El sistema manda un mensaje de error al ingresar incorrectamente los datos de la tarjeta
CURSO BASICO:
El usuario (cliente) accede en el men principal artesana y el sistema le muestra el interfaz nuestros producto donde se en cuenta las categoras productos El usuario (cliente) escoge categora productos y el sistema le muestra interfaz producto segn la categora. 27
El usuario escoge producto, busca producto en el interfaz productos El usuario dentro del interfaz producto hace un click en la descripcin del producto y el sistema le muestra el interfaz de descripcin del producto CURSO ALTERNO: El sistema muestra error al descripcin de producto al no existir CU 31. Realizar pedido CURSO BASICO Desde la Interfaz de Productos el usuario realiza la accin de
pedidos, el sistema muestra la pgina de pedidos con todos sus campos necesarios, para luego ser llenados por el usuario donde el sistema muestra el lugar de ubicacin del producto con su respectivo destino a donde sern enviados.
CURSO ALTERNO No hay productos en stock: el sistema muestra un producto pedido no disponible mensaje
28
CAPTULO III
REVISION DE REQUISITOS (primer intento)
Nro. REQ.
REQUISITOS FUNCIONALES
clientes(potenciales, asiduos) 02 El sistema deber de realizar ofertas de productos de preferencia al cliente 03 El sistema permitir abonar puntos al cliente para realizar sorteos
04 05
El sistema debe ser capaz de reconocer las preferencias del cliente El sistema deber permitir al usuario (administrador, cliente, vendedor) el registro en lnea.
06
07
08
El sistema segn sea el tipo de usuario permitir el restringir las opciones por cuestin de seguridad
09
El cliente podr calificar al comercializador segn sea la atencin que a tenido del mismo.
10
El
cliente
ser
capaz
de
visualizar
la
calificacin
del
El Sistema ser capaz de permitir a los clientes realizar consultas y pedidos al comercializador.
13
El Sistema debe ser capaz de agregar nuevos productos en la lista de productos existente.
14
El comercializador podr tener las opciones para mantener sus productos y sus ofertas lanzadas.
15
El sistema ser capaz mostrar a los clientes, los productos con sus respectivos detalles del producto.
16
El sistema ser capaz de mostrar la informacin de los productos comercializados, clientes y otros al comercializador.
17
El sistema permitir al usuario (administrador, comercializador y cliente) realizar la gestin de sus cuentas.
18
El sistema ser capaz de mostrar las opciones para realizar consultas diversas a los usuarios.
19
20
El cliente ser capaz de realizar la compra de manera entretenida mediante el uso de un lista de productos.
ms
21
22
El sistema ser capaz de mostrar el tipo y la cantidad del producto que solicita.
23
30
24
El sistema tiene que ser capaz de registrar y almacenar los datos del cliente.
25 El sistema deber ser capaz de gestionar la informacin del producto artesanal. 26 El Comercializador ser capaz definir la forma de entrega del producto al cliente. 27 El Comercializador ser capaz asignar un plazo de entrega de productos al cliente 28 El Comercializador deber ser capaz de emitir la proforma ante la cotizacin del cliente para la venta de producto. 29 El Comerciante ser capaz de verificar la transaccin financiera con el cliente. 30 El sistema permitir realizar la transaccin financiera mediante diferentes formas (depsitos, tarjetas de crdito, dbito). 31 El sistema ser capaz de ofrecer la oferta adecuada de productos al cliente por puntos acumulados. 32 El sistema mostrara la informacin estadstica de cada cliente al comercializador 33 El sistema debe ser capaz de gestionar la informacin del clientes 34 El usuario podr contar con las ayudas necesarias para el correcto uso del sistema
31
35 El cliente ser capaz de realizar una cotizacin de productos que estn en la oferta del comercializador 36 El usuario podr realizar las recomendaciones, reclamos respecto al producto.
37
Lista de casos de uso revisado (primer intento) 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27.
32
Iniciar sesin Crear cuenta usuario Restablecer cuenta usuario Consultar producto Comprar producto Agregar carrito Modificar carrito Quitar carrito Hacer pedido. Verificar pedido Emitir proforma Registrar comprobante de pago Emitir cotizacin Emitir factura Emitir boleta Confirmar orden Controlar acceso administrador Gestionar cuentas administrador Gestionar cuentas cliente Gestionar categoras producto Agregar categoras producto Modificar categoras producto Quitar categoras producto Gestionar producto Ingresar producto Modificar producto Eliminar producto
Validar pedidos Gestionar venta Mantener comprobante de pago Publicar oferta Mantener oferta Gestionar imagen producto Ingresar imagen producto Modificar imagen producto Eliminar imagen producto
33
34
35
36
37
DISEO PRELIMINAR TAREA Rescribir y el primer borrador de la descripcin de los casos de uso. ARTEFACTO TCNICA Observacin de Primer borrador de casos de uso refinado. operaciones del negocio. Realizacin evento/respuesta Diagramacin de la descripcin del caso de uso lnea por lnea. Identificacin de los objetos: Diagrama de robustez parcialmente completo. interfaz, control y entidad. Dibujar con los objetos (interfaz, control o entidad) los cursos alternos. Diferenciacin de diseo conceptual con diseo real. Compruebe el diagrama de robustez con el caso de uso y el Diagrama de robustez, modelo de dominio y descripcin de Inspeccin gramatical. Aplicacin de semntica y sintaxis gramatical y conceptual
Analista RESPONSABLES
38
Comprobacin de los objetos de dominio y la terminologa de casos de uso con los objetos del diagrama de robustez.
CURSO BASICO: El usuario (cliente) accede en el menu principal artesania y el sistema le muestra el interfaz nuestros producto donde se encuenta las categorias productos 2) El usuario (cliente) escoge categoria productos y el sistema le muestra interfaz producto segun la categoria. 3) El usuario escoge producto, busca producto en el interfaz productos 4) El usuario dentro del interfaz productohace un click en la descripcion del producto y el sistema le muestra el interfaz de descripcion del producto CURSO ALTERNO: 1) El sistema muestra error al descripcion de producto al no existir Descripcion de producto visualiso la descripcion del producto 1)
categoria
accede
descripcion no existe
39
CURSO BASICO: 1) El usuario (cliente) accede al interfaz de menu pincipal y hace click en nuevo registro y el sistema le muestra el interfaz de registro cliente Eusuario se registra sus datos(nombre ,apellido, pais , ciudad, correo , password) en el interfaz registro de clientes Usuario (from ACTORES) CURSO ALTERNO: 1) El sistema le manda un mensaje de error si no registra los campos de datos del cliente El sistema le manda un mensaje de la confirmacion de registro de datos con existo interfaz registro de cliente
click interfaz menu Principal accede nuevo registro registro datos exitoso
2)
cuenta_usuario
2)
40
producto
2)
oferta
3)
El usuari o dentro del i nterfaz de l i sta de productos sel eci onados hace cl i ck en conti nuar y el si stem a l e m uestra el i nterfaz regi stro de cl i entes 5) dentro del i nterfaz regi stro de cl i ente exi ste l a obsi on de nuevo cl i ente y cl i ente regi strado, el usuari o se regi stra com o cl i ente nuevo 6) El usuari o dentro del i nterfaz regi stro de cl i ente hace cl i ck en conti nuar y el si stem a l e m uestra el i nterfaz ubi caci on y datos del cl i ente donde regi stra datos segundari o 7) El usuari o dentro del i nterfaz de ubi caci on y datos del cl i ente hace cl i ck en conti nuar y el si stem a l e m uestra el i nterfaz ducum entos (em i ti r factura y m anteni ento de proform a) 8) El usuari o dentro del i nterfaz de docum ento hace cl i ck en conti nuar y el si stem a l e m uestra el i nterfaz de transacci on donde i ngresa l os datos de l a tarj eta CURSO ALTERNO: 1) El si stem a l e m anda un m ensaj e si el stock del producto sobre pasa El si stem a m uestra un m ensaj e de error i ndi cando que l a cuenta y usuari o no exi ste. El si stem a l e m adara un m esaj e con l a observaci on que debe l l enar todos l os cam pos de datos del cl i ente nuevo El si stem a m anda un m ensaj e de error al i ngresar i ncorrectam ente l os datos de l a tarj eta
4)
cuenta deci de com prar i nterfas regi stro de cl i ente l l enar todos l os cam pos deci de com prar cuenta_usuari o datos com o cl i ente nuevo
2)
3)
4)
41
CURSO BASICO: El usuario (cliente) hace click en el menu principal artesania y el sistema le muestra el interfaz nuestros producto donde se encuenta las categorias productos 2) El usuario (cliente) escoge categoria productos y el sistema le muestra interfaz producto segun la categoria. 3) El usuario escoge producto, busca producto y visualiza si hay productos en stock CURSO ALTERNO: 1) El sistema muestra error producto al no existir el producto en buscar producto el sistema muestra mensaje si sobre pasa el stock del producto 1)
categoria
busca producto
2)
escoge producto
CURSO BASICO: 1) El administrador ingresa a la interfaz de acceso al sistema . El administrador ingresa el nombre de usuario y su contrasea. El sistema valida al usuario y su contrasea en Cuenta El sistema muestra un mensaje de confirmacion. A continuacion muestra el menu de la interfaz con un mensaje de bienvenida.
2)
3)
4)
5)
ok
CURSO ALTERNO: 1) El sistema muestra un mensaje de error indicando que la cuenta y usuario no existe. Administrador (from ACTORES)
42
CURSO BASICO 1) El actor (cliente) accede al menu Principal y hace un click en registrarse, el sistema le muestra el interfas registrar cliente con los datos a llenar del cliente El actor ingresa los datos cliente (Nombre, apellidos,telefono,pais, ciudad,correo y password) en el interfas registro cliente, el sistema valida la informacion haciendo click en siguiente Usuario (from ACTORES) 1) el sistema le muestra un mensaje de llenar todos los campos en datos del cliente
cliente
2)
mensaje llenar todos los campos menu principal interfas registrarse cliente
CUESO ALTERNO
CURSO BASICO: El usuario (administrador) hace click en menu administrsr productos para selecionar producto 2) Selecciona categoria de productos para encontrar el producto deseado. 3) El usuario (administrador) hace click sobre eliminar producto 4) El sistema muestra un mensaje de confirmacion de eliminacion de producto CURSO ALTERNO: 1) El sistema muestra el mensaje de advertencia para confirmar la accion de eliminacion 1)
Seleccionar categoria
Seleccionar datos
mensaje de advertencia
Producto
43
CURSO BASICO El usuario( administrador) hace click en munu "Gestion producto", el sistema muestra la interfaz "ingreso de nuevos productos. 2) El usuario (Administrador) escoge categoria de productos. 3) Ingresa la descripcion , precio y stock del producto 4) Escoge un imagen adecuado. 5) Hace click en agregar, entonces el sistema muestra el producto agragado recientemente. CURSO ALTERNO 1) El sistema muestra un mensaje de la existencia de imagen 1) Producto
agregar producto
hace click
Buscar imagen
Imagen
44
CURSO BASICO 1) El usuario cliquea sobre botn modificar productos en la Pgina de men Gestion producto el sistema le muestra la Pgina de modificar productos con todos los detalles de esa oferta en donde el usuario podr consultar e ingresar todas las modificaciones necesarias. El sistema validar los datos ingresados y se actualizar productos con sus respectivas detalles. Producto
No existe producto
Selecciona categoria
2)
CURSO ALTERNO 1) El Sistema muestra un mensaje de "Datos incorrectos". El sistema muestra un mensaje de "Producto no existe".
2)
Escoger Imagen
Imagen
45
46
TAREA
ARTEFACTO
RESPONSABLES
caso de uso debe coincidir con el diagrama de robustez. Hacer coincidir el diagrama de robustez con la descripcin del caso de uso Comprobar que
el diagrama de robustez cumple las reglas. Verificar que el diagrama de robustez tiene todos los cursos alternos. Los objetos
entidad del diagrama de robustez debe coincidir con el modelo de dominio actualizado.
47
48
4.1
49
5. QUIENES SOMOS
50
6. MUESTRO PRODUCTOS
7. CATALAGO CERAMICA
51
8. DETALLE CERAMICA
9. REGISTRAR CLIENTE
52
53
54
15. Recomendaciones
55
1. Realizar pedido producto artesanal 2. Aadir producto al carrito 3. Borrar producto del carrito 4. Emitir comprobante de pago 5. Registrar cliente 6. Elegir forma de pago 7. Mostrar detalle producto 8. Modificar contrasea usuario 9. Mostrar detalle cliente 10. 11. 12. 13. Registrar sugerencia y reclamos cliente Aadir producto artesana al catalogo Modificar producto artesana al catalogo Borrar producto artesana del catalogo
56
14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30.
Registrar envo de producto Publicar ofertas de productos Modificar ofertas publicadas Enviar mensajes de ofertas y agradecimiento a los clientes Generar reporte Emitir gua de remisin Emitir proforma Consultar pedido cliente Consultar catalogo Consultar sugerencia Aadir proveedor Modificar proveedor Borrar proveedor Realizar pedido a proveedor Modificar pedidos proveedor Cancelar pedidos a proveedor Consultar pedido a proveedor Descripcin Curso bsico:
01. El actor cliente solicita al sistema comenzar el proceso de registro de una nueva compra de producto artesanal. 02. El sistema solicita al cliente que seleccione un producto en catlogo de la lista que ste le facilita. 03. El actor cliente selecciona un producto de la lista. 04. El sistema solicita al cliente que introduzca sus dados necesarios, si es registrado, de lo contrario registraEl actor Administrador introduce los datos solicitados y confirma la compra. 05. El sistema almacena la compra con la fecha del da e informa al administrador que la operacin ha finalizado con xito.
Caso de uso
Descripcin
57
Curso bsico:
01. El actor Cliente en la pantalla de productos por catlogo elige el producto que desea compra y hace clic en botn agregar carrito. 02. El sistema busca el producto en catlogo, activa el carrito luego el producto encontrado muestra en el carrito. 03. El sistema el sistema saca el producto seleccionado y guarda en carrito y luego actualiza e stock de producto.
Curso alterno:
01. Si el producto no existe en stock, el sistema activa una excepcin con un mensaje el producto no existe en stock.
Curso alterno:
Descripcin
Curso bsico: 01. El usuario (cliente) hace clic en el botn Emitir comprobante de de pago en el interfaz en li interfaz carrito de compras. 02. El sistema verifica el tipo de usuario y la modalidad de compra si es el correcto muestra la pgina de registrar compra, el usuario ingreso los datos de la compra en el momento de agregar el producto al carrito de la compra que realiz, en donde el usuario ingresa varios productos haciendo clic en el botn Ingresar producto al carrito, despus del cual el sistema le muestra una relacin con los productos seleccionados en una pgina de productos comprados, haciendo clic en botn registrar pasara a grabar pgina de registrar compra en la base de datos. 03. Si el usuario se confunde en eligir producto lo puede eliminar haciendo clic en eliminar producto,, el sistema valida los datos y almacena compra y DetalleCompra. 04. El sistema muestra un mensaje de confirmacin de la transaccin correcta. Curso alterno: Si la transaccin es incorrecto: El sistema muestra el mensaje Usted no puede realizar esta operacin.
58
59
Caso de uso
Descripcin
Curso alterno:
Si el usuario no elogi una de las opciones el sistema muestra una excepcin no elogi forma de pago
Caso de uso
Descripcin
Curso alterno:
04. El cliente usuario hace clic en detalle de producto, si el producto no hay en stock muestra un mensaje producto no existe en stock
60
Curso alterno:
01. Si la contrasea actual es incorrecta, el sistema salta al paso 2, a continuacin este caso de uso contina. 02. Si la contrasea nueva y su verificacin son distintas, el sistema salta al paso 2, a continuacin este caso de uso contina
Caso de uso
Descripcin
desconectar, el usuario hace clic en el link su cuenta. 02. El sistema muestra dos links uno de datos y de pedidos.
Curso alterno:
01. El cliente usuario no ha hecho pedidos: el sistema muestra un error el sistema no registro pedidos. Por favor hacer pedidos para realizar esta accin.
61
quisieran a hacer con respecto a nuestro servicio. 03. El usuario escribe su punto de vista para sugerirnos al proveedor que somos nosotros. 04. El usuario confirma la sugerencia plasmada haciendo clic en el botn enviar. 05. El sistema registrara automticamente el texto escrito (mensaje) en el campo de texto.
Curso alterno:
01. El usuario se olvid llenar uno de los campos de texto: el sistema muestra un mensaje rellene por favor todos campos de texto
62
63
64
Caso de uso
Cu16: Efectuar l envi de producto artesana pedida por cliente
65
Descripcin
Curso bsico:
01. 02. 03. 04. 05. El usuario solicitara generar un reporte. El sistema verifica los permisos de acceso del usuario. El sistema mostrara los reportes que se pueden generar. El usuario seleccionara uno o ms reportes. El sistema generara el reporte.
Curso alterno:
01. Si el usuario no tiene los permisos requeridos, se le notificara al usuario del problema y se cancelara el caso uso.
Curso alterno:
66
01. Usuario incorrecto: El sistema muestra el mensaje Usted no puede realizar esta operacin, La informacin no existe. 02. El sistema le muestra el mensaje La informacin no existe
Curso alterno:
05. El sistema muestra un mensaje de error ".
Curso alterno:
01. Si comprueba que el proveedor ya ha sido introducido, el sistema salta al paso 2, a continuacin este caso de uso contina
Descripcin
67
cliente
modificacin de los datos personales de su perfil. 02. El sistema muestra todos los datos personales de su perfil: nombre, apellidos, direccin, correo electrnico, telfono y fecha de nacimiento. 03. El actor Cliente modifica los valores oportunos cambiando los actuales por los nuevos. 04. El sistema modifica los datos personales del cliente en la base de datos con los nuevos valores y le indica al cliente que la operacin ha finalizado con xito.
Curso alterno:
El sistema busca el usuario, si el usuario no existe retorna con un mensaje de error el usuario no existe favor de registrarse previamente
Descripcin
Curso bsico: 01. El actor Administrador solicita al sistema comenzar el proceso aadir una nueva categora en la base de datos. 02. El sistema solicita los siguientes datos al administrador: nombre de la categora y descripcin de esta. 03. El actor Administrador proporciona los datos requeridos. 04. El sistema almacena los datos, introduce un identificador nico para la categora de forma automtica y le indica al administrador que la accin ha finalizado con xito.
Curso alterno:
01. Si comprueba que la categora ya ha sido introducida, el sistema vuelve al paso 2, a continuacin este caso de uso contina
Descripcin
Curso bsico: 01. El actor Administrador solicita al sistema comenzar el proceso de modificar una categora existente en la base de datos. 02. El sistema le pide al administrador que seleccione la categora a modificar. 03. El actor Administrador selecciona la categora entre la lista que le muestra el sistema. 04. El sistema muestra todas las caractersticas de la categora: nombre y descripcin de esta. 05. El actor Administrador modifica los valores oportunos cambiando los valores actuales por los nuevos. 06. El sistema modifica la categora en la base de datos con los nuevos valores y le indica al administrador que la operacin ha finalizado
68
con xito.
Curso alterno:
01. Si la categora no es la deseada, el actor Administrador buscar una nueva categora de la lista que proporciona el sistema, salta al paso 3, a continuacin este caso de uso contina
Descripcin
Curso bsico: 01. El actor Administrador solicita al sistema comenzar el proceso de borrado de una categora de la base de datos. 02. El sistema solicita al administrador que seleccione la categora a eliminar de la base de datos. 03. El actor Administrador selecciona la categora que quiere borrar de la lista de categoras actualmente introducidas en la base de datos. 04. El sistema muestra una descripcin detallada de la categora a borrar: nombre y descripcin de la categora. 05. El actor Administrador verifica la eliminacin de la categora. 06. El sistema elimina la categora seleccionada de la base de datos y le indica al administrador que la operacin ha finalizado con xito.
Curso alterno:
01. Si la categora no es la que quiere borrar el administrador, el actor Administrador selecciona otra categora diferente de la lista, salta al paso 3, a continuacin este caso de uso contina
Caso de uso
69
Descripcin
Cu27:Modificar proveedor
Curso bsico:
El actor Administrador solicita al sistema comenzar el proceso de modificacin de los datos de un proveedor en la base de datos. El sistema le pide al administrador que seleccione el proveedor a modificar. El actor Administrador selecciona el proveedor entre la lista que le muestra el sistema. El sistema muestra todas las caractersticas del proveedor: nombre, CIF, domicilio, pgina Web, correo electrnico y telfono. El actor Administrador modifica los valores oportunos cambiando los valores actuales por los nuevos. El sistema modifica el proveedor en la base de datos con los nuevos valores y le indica al administrador que la operacin ha finalizado con xito.
Curso alterno: Si el proveedor no es el deseado, el actor Administrador buscar un nuevo proveedor de la lista que proporciona el sistema, salta al paso 3, a continuacin este caso de uso contina
Curso alterno:
01. Si el proveedor no es el que desea eliminar el administrador, el actor Administrador selecciona otro proveedor diferente de la lista, salta al paso 3, a continuacin este caso de uso contina
Caso de uso
70
Descripcin
Curso bsico:
06. El actor Administrador solicita al sistema comenzar el proceso de registro de una nueva compra a un proveedor. 07. El sistema solicita al vendedor que seleccione un proveedor de la lista que ste le facilita. 08. El actor Administrador selecciona un proveedor de la lista. 09. El sistema solicita al administrador que introduzca, por cada producto comprado al proveedor, su nombre, descripcin, cantidad, precio unitario e IVA. 10. El actor Administrador introduce los datos solicitados y confirma la compra. 11. El sistema almacena la compra con la fecha del da e informa al administrador que la operacin ha finalizado con xito.
Curso alterno:
71
mensaje "No existe oferta de productos publicadas" en la "Pagina ofertas productos. NO existe oferta seleccionada para eliminar: El Sistema muestra un mensaje "debe seleccionar al menos una oferta para eliminar" en la "Pagina ofertas productos. No existe bienes en la oferta. 02. El Sistema muestra un mensaje "Debe registrar al menos un producto" en la "Pagina modificar oferta de productos. No existe producto. 03. El sistema muestra un mensaje "No existe bien buscado" en la "Pagina modificar oferta de productos. 04.El proveedor ha cancelado la modificacin de la oferta haciendo clic en "Cancelar" y el Sistema vuelve a mostrar la pgina ofertas de productos
Curso alterno:
14. Si el cliente no es el que quiere eliminar el administrador , el actor Administrador selecciona otro nombre de usuario diferente de la lista, salta al paso 3, a continuacin este caso de uso contina
72
03. El usuario rellena los datos necesarios para enviar la cotizacin. El usuario hace clic en el botn enviar. 04. El sistema verifica los datos, procede a enviar la cotizacin y muestra un mensaje de confirmacin "datos envi satisfactoriamente la cotizacin".
Curso alterno:
01. Datos incorrectos: al verificar los datos de la cotizacin el sistema le muestra los campos rellenados con datos incorrectos en la pgina enviar cotizacin. Datos incompletos: al verificar los datos de la cotizacin el sistema le muestra un mensaje en los campos que faltan datos en la pgina enviar cotizacin.
Curso alterno:
Si el nombre de usuario o la contrasea no son vlidos, el sistema salta al paso 2., a continuacin este caso de uso contina
73
CAPITULO V
DISEO PRELIMINAR
El concepto de anlisis de robustez fue introducido por Jacobson para el mundo de la orientacin a objetos (Booch et al., 2000; pud Jacobson, 1991). El anlisis de robustez es, analizar los casos de uso e identificar un primer conjunto de objetos para cada caso de uso (Rosenberg y Scott, 1999), los objetos son clasificados en tres estereotipos:
a. Objeto interfaz.- Capa de presentacin que los actores usan para interactuar con el sistema (pantallas o pginas Web), objeto en el caso de uso que debe ser un nombre (sustantivo); b. Objeto entidad.- Son objetos del modelo de dominio, objeto en el caso de uso que debe ser un nombre (sustantivo);
74
c. Objeto control (controlador).- Estn entre los objetos interfaz y los objetos entidad, en el caso de uso debe ser un verbo. Un controlador en un diagrama de robustez no siempre es una clase control real, puede ser contenedor de una funcin de software.
75
analysis Iconix-Robustness co01:Realizar pedido producto a... Curso bsico: 1) El actor cliente solicita al sistema comenzar el proceso de elecion de una nueva compra de producto artesanal. 2) El sistema muestra al cliente una lista de catalogos enlos que estan los productos por catalogos (ceramica, tallados,cornoplastia, textil, etc) 3) El actor cliente selecciona un un catalogo de la lista de la lista de catalogos. 4) El sistema solicita al cliente la autenticacion de nombre usuario y password del cliente. 5) El actor cliente introduce los datos solicitados , si el cliente ya registrado el sistema accede a la gama de productos a eligir. Curso alterno: 1) si el producto no existe en el catlogo, el sistema muestra una excepcin " no existe productos en el catalogo"
GUI catalogo
Producto
carrito
76
Curso bsico: 1) El actor Cliente en la pantalla de carrito decompras elige el producto que desea sacar GUI carrito de compras del carrito y hace clic en botn sacar producto del carrito. clic sacar producto 2) El sistema busca el producto en catlogo, activa el carrito luego saca el producto del carrito. 3) El sistema guarda el producto en catalogo y Cliente actualiza el stock de producto. (from Actores) 4) el sistema finalmente actualiza el carrito de la compra GUI catalogo Curso alterno: 1) Si el producto no existe en carrito, el sistema activa una excepcin con un mensaje "el producto no existe en carritto de compras".
carrito
catalogo
analysis Emitir comprobante de pago Robustness Curso bsico: 1) El usuario (cliente) hace clic en el botn Emitir comprobante de pago en el interfaz carrito de compras. 2) El sistema verifica el tipo de usuario y la modalidad de compra si es el correcto muestra la pgina de registrar compra, el usuario ingreso los datos de la compra en el momento de agregar el producto al carrito de la compra que realiz, en donde el usuario ingresa varios productos haciendo clic en el botn Ingresar producto al carrito, despus del cual el sistema le muestra una relacin con los productos seleccionados en una pgina de productos comprados, haciendo clic en botn registrar pasara a grabar pgina de registrar compra en la base de datos. 3) Si el usuario se confunde en eligir producto lo puede eliminar haciendo clic en eliminar producto,, el sistema valida los datos y almacena compra y DetalleCompra. 4) El sistema muestra un mensaje de confirmacin de la transaccin correcta. Curso alterno: Si la transaccin es incorrecto: El sistema muestra el mensaje "Usted no puede realizar esta operacin".
eliminar producto
compra
analysis Iconix-Robustness Note Curso bsico: 1) El usuario cliente estando en la interfaz carrito de la compra hace clic en el botn finalizar. 2) El sistema muestra un interfaz'' formas de pago'' con las opciones a elegir conjuntamente con los detalles de los productos elegidos. 3) El usuario elige una de las opciones a elegir para activar el radio botn (contra reembolso o transferencia/ingreso bancario). 4) El usuario finalmente hace clic en el botn siguiente para ir a la siguiente secuencia de compra. Curso alterno: Si el usuario no elogi una de las opciones el sistema muestra una excepcin ''no elogi forma de pago''
seleccioanr productos
accede
compra
Cuenta
Validar datos
Tabla cuenta
Mostrar pagina
78
Note caso de uso : aadir producto artesania de catalago Curso bsico: 1) Se presenta el administrador en la pantalla para actualizar nuevo producto o item la opcin de ingresar artculo llenando los campos de catalogo.al gestor de producto. 2) Lo cual se tiene que seleccionar los datos a ingresar una o ya existente, nombre del producto, descripcin, precio, cantidad en stock y una imagen para identificar al pro- ducto. 3) lo cual sera almacenado los datos del producto en la entidad producto Curso alterno: Si comprueba que el producto ya ha sido introducido, el sistema le enva un mensaje de xito por que ingreso a la base de datos..
gestor de producto
detalle producto
79
analysis Iconix-Robustness Note caso de uso: Modificar producto artesania en catalogo Curso bsico: 1) Se presenta al administrador la pantalla administrador de producto la cual aparecen los productos se selecciona el producto a modificar en el cual se puede cambiar de categora de las existentes, nombre del pro- ducto, descripcin, precio, cantidad en stock y la imagen a mostrar ya sea borrndola o cambindola. 2) El sistema solicita al administrador que seleccione el producto a modificar. 3) El actor Administrador selecciona el producto entre lgestor de producto 4) que le muestra el sistema. 5) El actor Administrador modifica los valores oportunos cambiando los valores actuales por los nuevos. 6) El sistema modifica el producto en la base de datos con los nuevos valores y le indica al administrador que la operacin ha finalizado con xito. Curso alterno: Si el producto no es el deseado, el actor Administrador buscar un nuevo producto de la lista que proporciona el sistema, salta al paso 3, a continuacin este caso de uso contina
admistrador de producto
acceso al interfaz
gestor producto
detalle producto
80
caso de uso: Borrar producto artesania del catalogo Curso bsico: 1) Se presenta al administrador la pantalla administrador de producto con las categoras existentes y se da borrar la categora y sale una leyenda diciendo "Borrando esta categora, borrara tambin sus productos. Des- ea continuar?" y se da aceptar El sistema solicita al administrador que seleccione el producto que quiere borrar de la base de datos. El actor Administrador selecciona el producto que quiere borrar de la lista de gestor de productos actualmente introducidos en el detalle producto El actor Administrador verifica la eliminacin del producto. El sistema elimina el producto seleccionado de la base de datos y le indica al administrador que la operacin ha finalizado con xito.
captura datos a borrar gestor de producto detalle producto Administrador de acceso al interfaz producto
2)
3)
4)
producto
Curso alterno:
1)
2)
Si el producto no es el que quiere borrar el administrador, el actor Administrador selecciona otro producto diferente de la lista, salta al paso 3, a continuacin este caso de uso contina mensaje de confirmacion o error
cu: Registrar envio de producto Curso bsico: 1) El usuario administrador en la GUI principal administrar productos hace clic en link ENVIO DE PRODUCT OS. El sistema muestra la interfaz de envio de productos. El administrador Selecciona el usuario de la lista desligarle de usuarios registrados que se le ha enviado el producto. El administrador activa el check de enviado luego se selecciona la fecha actual. El administrador escribe el detalle del producto que se ha enviado. El sistema se conecta a la base de datos, lo valida los datos para almacenar. El sistema actualiza los datos y lo almacena. alterno: Mensaje: "el usuario no existe". Mensaje: "formato no valido" no se encuentra el producto producto seleccionar producto GUI principal administrar productos mostrar registro no existe producto en stock
2) 3)
4)
buscarDetalleProducto
DetalleProducto
5)
6)
no se encuentra el producto administrador (from Actores) Registro de envio de productos cliente buscar usuario
7) Curso 1) 2)
81
no existe promocion
mostrar promocion
actualizar promocion
detallePromocion
actualizar detalle
cliente
82
CAPITULO VI
ARQUITECTURA TECNICA
6.1
PORQUE PATRON MVC PARA EL DESARROLLO DE LA APLICACIN WEB Porque los diferentes frameworks (spring, jsf, struts y otros) de java tienen como base el patron MVC, el aprendizaje de este modelo nos facilitara en el aprendizaje de los frameworks de java.
El patrn MVC facilita la implementacin de la aplicacin web de la biblioteca. Por su sencillez y orden en la codificacin. En el patrn MVC se diferencian bien las tres capas (modelo-vista-controlador), un controlador administra el sistema de navegacin, un modelo almacena un conjunto de datos y un visor(o multiples) presenta los datos que se encuentra en el modelo.
6.2.
DIAGRAMA DE COMPONENTES
cmp Diagrama de Componentes
VISTA
Artesana
JSP's de la Biblioteca
CONTROLADORES
Serv let
Validadores de Entrada
Patron DAO
Modelo de Dominio
MODELO
83
CAPA DE PRESENTACION
WEB BROWSER
SERVLET (controlador)
BASE DE DATOS
POSTGRESQL
Figura 6.3 Arquitectura de despliegue para el sistema web de la artesania usando un diagrama de despliegue UML.
84
artesanal
85
86
87
DIAGRAMA catalogo
SECUENCIA:
Cu11
Aadir
producto
artesana
al
88
89
DIAGRAMA catalogo
SECUENCIA:
Cu13
Borrar
producto
artesana
en
90
91
92
93
CAPITULO VIII
IMPLEMENTACION
94
QUIENES SOMOS
MUESTRO PRODUCTOS
95
CATALAGO CERAMICA
DETALLE CERAMICA
96
REGISTRAR CLIENTE
INTERFAZ DE MENSAJE
97
INTERFAZ CARRITO
Aadiendo al carrito
98
FACTURA DE COMPRA
99
Recomendaciones
100
101
102
103
BEAN DE CLIENTE
104
105
106
107
SERVLET CLIENTE
108
109
private TableRow row=null; private HashMap<String, TableRow> cantidadCesta= new HashMap<String, TableRow>(); private double total = 0.0; //botones private ImageView ivInicio = null; private ImageView ivActualizaCesta=null; private ImageView ivLimpiaCesta = null; private ImageView ivRegresar = null; private ImageView ivConfirmarPedido = null; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.cesta); //objetos obtenidos del xml ivInicio = (ImageView)findViewById(R.id.ivInicioCesta); tlCesta = (TableLayout)findViewById(R.id.tlCesta); ivActualizaCesta = (ImageView) findViewById(R.id.ivActualizaCesta); ivLimpiaCesta = (ImageView)findViewById(R.id.ivLimpiaCesta); ivRegresar = (ImageView)findViewById(R.id.ivRegresarCesta); ivConfirmarPedido = (ImageView) findViewById(R.id.ivConfirmaPedido); //click ivInicio.setOnClickListener(ivInicioPres); ivActualizaCesta.setOnClickListener(ivActualizaCestaPres); ivLimpiaCesta.setOnClickListener(ivLimpiaCestaPres); ivRegresar.setOnClickListener(ivRegresarPres); ivConfirmarPedido.setOnClickListener(ivConfirmarPedidoPres); llenaCesta(); } public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK) { return false; } return super.onKeyDown(keyCode, event);
110
} public void llenaCesta(){ double precioCant = 0.0; double subTotalProd = 0.0; total = 0.0; TextView tvTotal = (TextView) findViewById(R.id.tvPrecioTotalCesta); if (!ListaCesta.arregloCesta.isEmpty()){ bundle = getIntent().getExtras(); if (bundle != null){ String id = bundle.getString("idProducto"); Log.i("bundle", id+" "+bundle.getString("cantidad")); DatosCesta datos = ListaCesta.arregloCesta.get(id); Log.i("id",datos.getIdProducto()); /* DatosCesta sumaUno = ListaCesta.arregloCesta.get(id); int cantidad = sumaUno.getCantidadProd(); sumaUno.setCantidadProd(cantidad+1); ListaCesta.arregloCesta.put(id, sumaUno); */ } try{ int cont=0; Set set = ListaCesta.arregloCesta.entrySet(); Iterator i = set.iterator(); while(i.hasNext()){ Map.Entry<String,DatosCesta> me = (Map.Entry<String, DatosCesta>)i.next(); //Log.i("Datos map: ",me.getKey() + " : " + ((DatosCesta) me.getValue()).getNombreProducto()); row = new TableRow(this); row.setLayoutParams(new LayoutParams( LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT)); String rutaUrl = ruta + ((DatosCesta) me.getValue()).getImagenProducto();
111
/* String rutaUrl = ruta + ((DatosCesta) me.getValue()).getImagenProducto(); URL aURL = new URL(rutaUrl); HttpURLConnection conn= (HttpURLConnection)aURL.openConnection(); conn.setDoInput(true); conn.connect(); int length = conn.getContentLength(); int[] bitmapData =new int[length]; byte[] bitmapData2 =new byte[length]; InputStream is = conn.getInputStream(); Bitmap bmImg = BitmapFactory.decodeStream(is); */ //cambio HttpGet httpRequest = null; try { httpRequest = new HttpGet(rutaUrl); } catch (Exception e) { e.printStackTrace(); } HttpClient httpclient = new DefaultHttpClient(); HttpResponse response = (HttpResponse) httpclient.execute(httpRequest); HttpEntity entity = response.getEntity(); BufferedHttpEntity bufHttpEntity = new BufferedHttpEntity(entity); InputStream instream = bufHttpEntity.getContent(); Bitmap bmImg = BitmapFactory.decodeStream(instream); //fin Bitmap bMapScala = Bitmap.createScaledBitmap(bmImg, 80, 80, true); borrar = new CheckBox(this); borrar.setLayoutParams(new LayoutParams(30, LayoutParams.FILL_PARENT)); imagenProd = new ImageView(this); imagenProd.setLayoutParams(new LayoutParams( LayoutParams.FILL_PARENT,
112
LayoutParams.FILL_PARENT)); imagenProd.setImageBitmap(bMapScala); nombreProd = new TextView(this); nombreProd.setText(((DatosCesta) me.getValue()).getNombreProducto()); nombreProd.setTextColor(Color.BLACK); nombreProd.setLayoutParams(new LayoutParams( LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT)); nombreProd.setGravity(Gravity.CENTER_VERTICAL); nombreProd.setWidth(50); cantidadProd = new EditText(this);
cantidadProd.setText( Integer.toString(((DatosCesta) me.getValue()).getCantidadProd())); cantidadProd.setTextColor(Color.BLACK); cantidadProd.setLayoutParams(new LayoutParams( LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT)); cantidadProd.setGravity(Gravity.CENTER_VERTICAL); cantidadProd.setWidth(30); cantidadProd.setHeight(5); cantidadProd.setLines(1); cantidadProd.setId(100+cont); precioCant = ((DatosCesta) me.getValue()).getPrecioProd(); subTotalProd = precioCant * Double.parseDouble(cantidadProd.getText().toString()); precioProd = new TextView(this); precioProd.setText(Double.toString(subTotalProd)); precioProd.setTextColor(Color.BLACK); precioProd.setLayoutParams(new LayoutParams( LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT)); precioProd.setGravity(Gravity.CENTER_VERTICAL); precioProd.setWidth(20);
113
row.addView(borrar); row.addView(imagenProd); row.addView(nombreProd); row.addView(cantidadProd); row.addView(precioProd); row.setBackgroundColor(Color.WHITE); tlCesta.addView(row); //arr.add(row); cantidadCesta.put(((DatosCesta) me.getValue()).getIdProducto(), row); total += Double.parseDouble(((TextView)(row.getChildAt(4))).getText().toString()); //Log.i("total", Double.toString(total)); tvTotal.setText(Double.toString(total)); cont++; } } catch(Exception err){ Log.e("error", err.toString()); } } else{ ImageView ivSinProductos = new ImageView(this); ivSinProductos = (ImageView)findViewById(R.id.ivSinProductosCesta); Bitmap bitmapOrg = BitmapFactory.decodeResource(getResources(),R.drawable.cestavacia); Bitmap bMapScala = Bitmap.createScaledBitmap(bitmapOrg, 192, 100, true); BitmapDrawable bmd = new BitmapDrawable(bMapScala); ivSinProductos.setImageDrawable(bmd); ivRegresar.setOnClickListener(ivRegresarPresIni); } } private void actualizaCesta(){ Set set = cantidadCesta.entrySet(); Iterator i = set.iterator();
114
if (validaCesta() == false){ while(i.hasNext()){ Map.Entry<String, TableRow> me = (Map.Entry<String, TableRow>)i.next(); /* if (validaCantidad(Integer.parseInt(me.getKey()), Integer.parseInt(((EditText) me.getValue().getChildAt(3)).getText().toString())) == false){ mensajeError("Error", "La cantidad capturada es mayor que la existente en inventario del producto "+ ((TextView) me.getValue().getChildAt(2)).getText().toString()); break; } */ if (((EditText) me.getValue().getChildAt(3)).getText().toString().length() me.getValue().getChildAt(3)).getText().toString()) ){ == 0 || !Validaciones.esNumero(((EditText)
mensajeError("Error", "Verifique la cantidad del producto "+ ((TextView) me.getValue().getChildAt(2)).getText().toString()); break;} else{ String cantProd = ((EditText) me.getValue().getChildAt(3)).getText().toString(); Log.i("Cajas texto: ",me.getKey() + " : " + cantProd); if (Integer.parseInt(cantProd) == 0 || ((CheckBox) me.getValue().getChildAt(0)).isChecked()){ Log.i("Borrado","La clave "+me.getKey()+" Ah sido borrado"); ListaCesta.arregloCesta.remove(me.getKey()); Intent intent = new Intent(); intent.setClass(Cesta.this, Cesta.class); startActivity(intent); finish();} else{ int nuevaCant = Integer.parseInt(((EditText) me.getValue().getChildAt(3)).getText().toString()); DatosCesta cantidadCambiada = ListaCesta.arregloCesta.get(me.getKey()); cantidadCambiada.setCantidadProd(nuevaCant); ListaCesta.arregloCesta.put(me.getKey(), cantidadCambiada); Intent intent = new Intent(); intent.setClass(Cesta.this, Cesta.class); startActivity(intent); finish(); }
115
//sumaCant.setCantidadProd(cantidadDatos+Integer.parseInt(cantidad.getText().toString())); }}}} else{ mensajeError("Error", "Revise cantidad");}} private void limpiaCesta(){ ListaCesta.arregloCesta.clear(); Intent intent = new Intent(); intent.setClass(Cesta.this, Cesta.class); startActivity(intent); finish(); }
private boolean validaCesta(){ boolean encontrado = false; if (ListaCesta.arregloCesta.isEmpty() == true){ return true;} if (!cantidadCesta.isEmpty()){ Set set = cantidadCesta.entrySet(); Iterator i = set.iterator(); while(i.hasNext()){ Map.Entry<String,TableRow> me = (Map.Entry<String, TableRow>)i.next(); Log.i("Cesta confirmada: ",me.getKey() + " Producto: "+((TextView) me.getValue().getChildAt(2)).getText().toString() +" Cantidad:"+((EditText) me.getValue().getChildAt(3)).getText().toString() ); if (((EditText) me.getValue().getChildAt(3)).getText().toString().length()>0 && Validaciones.esNumero(((EditText) me.getValue().getChildAt(3)).getText().toString())){ int num = Integer.parseInt(((EditText) me.getValue().getChildAt(3)).getText().toString()); if (num < 0){ encontrado = true; break;}} if (!Validaciones.esNumero(((EditText) me.getValue().getChildAt(3)).getText().toString()) ){ //mensajeError("Error", "Verifique me.getValue().getChildAt(2)).getText().toString()); encontrado = true; break; la cantidad del producto "+ ((TextView)
116
} else{ encontrado = false;}}} return encontrado;} private boolean validaCantidad(int idProd, int cantidad){ //Definicin para servicio Web String SOAP_ACTIONV = "capeconnect:servicios:serviciosPortType#validaCantidad"; String METHOD_NAMEV = "validaCantidad"; String NAMESPACEV = "http://www.your-company.com/servicios.wsdl"; String URLV = "http://"+HOST+"/servicios/servicios.php"; SoapSerializationEnvelope envelopeValida; HttpTransportSE httptValida; SoapObject resultValida; SoapObject requestValida = new SoapObject(NAMESPACEV, METHOD_NAMEV); try{ httptValida = new HttpTransportSE(URLV); envelopeValida = new SoapSerializationEnvelope( SoapEnvelope.VER11 ); envelopeValida.dotNet = false; requestValida.addProperty ("idProd", idProd ); requestValida.addProperty ("cantidad", cantidad); envelopeValida.setOutputSoapObject(requestValida); httptValida.call(SOAP_ACTIONV, envelopeValida); resultValida = (SoapObject)envelopeValida.bodyIn; SoapPrimitive result = (SoapPrimitive) resultValida.getProperty("result"); //Log.e("resultado valida cant", result.toString()); if (Integer.parseInt(result.toString()) == 1){ return true; } else{ return false; } }catch (Exception e) {
117
return false; }} private OnClickListener ivInicioPres = new OnClickListener() { public void onClick(View arg0) { Intent intent = new Intent(); intent.setClass(Cesta.this, Principal.class); startActivity(intent); finish();}}; private OnClickListener ivActualizaCestaPres = new OnClickListener() { public void onClick(View arg0) { actualizaCesta();}}; private OnClickListener ivLimpiaCestaPres = new OnClickListener() { public void onClick(View arg0) { limpiaCesta();}}; private OnClickListener ivRegresarPres = new OnClickListener() { public void onClick(View arg0) { Intent intent = new Intent(); intent.setClass(Cesta.this, MuestraCategorias.class); startActivity(intent); finish();}}; private OnClickListener ivRegresarPresIni = new OnClickListener() { public void onClick(View arg0) { Intent intent = new Intent(); intent.setClass(Cesta.this, Principal.class); startActivity(intent); finish();}}; private OnClickListener ivConfirmarPedidoPres = new OnClickListener() { public void onClick(View arg0) { if (validaCesta() == false){ Intent intent = new Intent(); intent.setClass(Cesta.this, VerificaCliente.class); startActivity(intent);
118
finish(); } else{ mensajeError("Error", "Verifique cantidad");}}}; private void mensajeError(String titulo, String msj){ new AlertDialog.Builder(Cesta.this) .setTitle(titulo) .setMessage(msj) .setPositiveButton("Ok", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int whichButton) { setResult(RESULT_OK);}}) .show();}}
LISTAR PEDIDO
public class ListadoPedidos { private int idPedido; private String fecha; private int cantProd; private double precioTot; private String estado;
public String getEstado() { return estado; } public void setEstado(String estado) { this.estado = estado; } public int getIdPedido() { return idPedido; } public void setIdPedido(int idPedido) { this.idPedido = idPedido; } public String getFecha() { return fecha;
119
} public void setFecha(String fecha) { this.fecha = fecha; } public int getCantProd() { return cantProd; } public void setCantProd(int cantProd) { this.cantProd = cantProd; } public double getPrecioTot() { return precioTot; } public void setPrecioTot(double precioTot) { this.precioTot = precioTot; }}
COMPRA FINALIZADA
package pe.com.art; import org.ksoap2.SoapEnvelope; import org.ksoap2.serialization.SoapObject; import org.ksoap2.serialization.SoapPrimitive; import org.ksoap2.serialization.SoapSerializationEnvelope; import org.ksoap2.transport.HttpTransportSE;
import utils.Valores; public class CompraFinalizada extends Activity{ private ImageView ivInicio; private ImageView ivLlamar; private ImageView ivSms; private String HOST = Valores.HOST;
120
private Bundle bundle; protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.comprafinalizada); bundle = getIntent().getExtras(); enviaCorreo(bundle.getString("idPedido"));
if (obtenerCelular() != null){ ivSms = (ImageView) findViewById(R.id.ivSms); ivSms.setOnClickListener(ivSmsPres); } ivInicio = (ImageView) findViewById(R.id.ivInicioCompraFin); ivInicio.setOnClickListener(ivInicioPres); ivLlamar = (ImageView) findViewById(R.id.ivLlamar); ivLlamar.setOnClickListener(ivLlamarPres); ivSms = (ImageView) findViewById(R.id.ivSms); ivSms.setOnClickListener(ivSmsPres); } private void enviaCorreo(String idPedido){ //Definicin para servicio Web String SOAP_ACTION = "capeconnect:servicios:serviciosPortType#correoOrden"; String METHOD_NAME = "correoOrden"; String NAMESPACE = "http://www.your-company.com/servicios.wsdl"; String URL = "http://"+HOST+"/servicios/servicios.php"; SoapSerializationEnvelope envelope; HttpTransportSE httpt; SoapObject result=null; //Fin definicin try{ SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);
121
httpt = new HttpTransportSE(URL); envelope = new SoapSerializationEnvelope( SoapEnvelope.VER11 ); envelope.dotNet = false; request.addProperty ("idPedido", idPedido); envelope.setOutputSoapObject(request); httpt.call(SOAP_ACTION, envelope); //result = (SoapObject) envelope.bodyIn; //SoapObject resultSoap = (SoapObject) envelope.getResponse(); }catch (Exception e) { Log.e("error enviaCorreo", e.toString()); } } private String obtenerTelefono(){ //Definicin para servicio Web String SOAP_ACTION = "capeconnect:servicios:serviciosPortType#obtenerTelefono"; String METHOD_NAME = "obtenerTelefono"; String NAMESPACE = "http://www.your-company.com/servicios.wsdl"; String URL = "http://"+HOST+"/servicios/servicios.php"; SoapSerializationEnvelope envelope; HttpTransportSE httpt; SoapObject result=null; //Fin definicin try{ SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME); httpt = new HttpTransportSE(URL); envelope = new SoapSerializationEnvelope( SoapEnvelope.VER11 ); envelope.dotNet = false; envelope.setOutputSoapObject(request); httpt.call(SOAP_ACTION, envelope); result = (SoapObject) envelope.bodyIn;
122
SoapPrimitive spTelefono = (SoapPrimitive) result.getProperty("result"); //SoapObject resultSoap = (SoapObject) envelope.getResponse(); Log.i("Telefono", spTelefono.toString()); return spTelefono.toString(); }catch (Exception e) { Log.e("error obtener telfono", e.toString()); return ""; } } private String obtenerCelular(){ //Definicin para servicio Web String SOAP_ACTION = "capeconnect:servicios:serviciosPortType#obtenerCelular"; String METHOD_NAME = "obtenerCelular"; String NAMESPACE = "http://www.your-company.com/servicios.wsdl"; String URL = "http://"+HOST+"/servicios/servicios.php"; SoapSerializationEnvelope envelope; HttpTransportSE httpt; SoapObject result=null; //Fin definicin try{ SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME); httpt = new HttpTransportSE(URL); envelope = new SoapSerializationEnvelope( SoapEnvelope.VER11 ); envelope.dotNet = false; envelope.setOutputSoapObject(request); httpt.call(SOAP_ACTION, envelope); result = (SoapObject) envelope.bodyIn; SoapPrimitive spCelular = (SoapPrimitive) result.getProperty("cel"); //SoapObject resultSoap = (SoapObject) envelope.getResponse(); Log.i("Celular", spCelular.toString());
123
return spCelular.toString(); }catch (Exception e) { Log.e("error obtener telfono", e.toString()); return null; } } public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK) { return false; } return super.onKeyDown(keyCode, event); } private OnClickListener ivInicioPres = new OnClickListener() { public void onClick(View arg0) { Intent intent = new Intent(); intent.setClass(CompraFinalizada.this, Principal.class); startActivity(intent); finish(); } }; private OnClickListener ivLlamarPres = new OnClickListener() {
public void onClick(View arg0) { try { Intent intentLlamada = new Intent(Intent.ACTION_CALL); intentLlamada.setData(Uri.parse("tel:"+obtenerTelefono())); startActivity(intentLlamada); } catch (ActivityNotFoundException err) { Log.e("error llamar", err.toString());
124
Toast.makeText(CompraFinalizada.this, Toast.LENGTH_LONG).show(); } } }; private OnClickListener ivSmsPres = new OnClickListener() { public void onClick(View arg0) {
"No
se
puede
establecer
la
llamada",
final AlertDialog.Builder alerta = new AlertDialog.Builder(CompraFinalizada.this); final EditText entrada = new EditText(CompraFinalizada.this); entrada.setHeight(150); entrada.setText("El "+bundle.getString("idPedido")); cliente "+bundle.getString("nombreC")+" ha realizado el pedido
alerta.setView(entrada); alerta.setPositiveButton("Enviar", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int whichButton) { SmsManager sms = SmsManager.getDefault(); sms.sendTextMessage(obtenerCelular(), null, entrada.getText().toString(), null, null); Toast.makeText(CompraFinalizada.this, "Enviando mensaje", Toast.LENGTH_LONG).show(); Log.i("sms", entrada.getText().toString()); } }); alerta.setNegativeButton("Cancelar", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int whichButton) { dialog.cancel(); } }); alerta.setTitle("Mensaje"); alerta.show();}};}
125
DESCRIPCION DE PRODUCTO
package pe.com.art; import java.io.InputStream; import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org.apache.http.client.HttpClient; import org.apache.http.client.methods.HttpGet; import org.apache.http.entity.BufferedHttpEntity; import org.apache.http.impl.client.DefaultHttpClient; import org.ksoap2.SoapEnvelope; import org.ksoap2.serialization.SoapObject; import org.ksoap2.serialization.SoapPrimitive; import org.ksoap2.serialization.SoapSerializationEnvelope; import org.ksoap2.transport.HttpTransportSE; import utils.DatosCesta; import utils.ListaCesta; import utils.Producto; import utils.Validaciones; import utils.Valores; public class DescripcionProdSelec extends Activity{ private static final String HOST = Valores.HOST; //esto es para el equipo local private static final String SOAP_ACTION = "capeconnect:servicios:serviciosPortType#obtenerProducto"; private static final String METHOD_NAME = "obtenerProducto"; private static final String NAMESPACE = "http://www.your-company.com/servicios.wsdl"; private static final String URL = "http://"+HOST+"/servicios/servicios.php"; private SoapSerializationEnvelope envelope; private HttpTransportSE httpt; private Producto producto;
126
Bundle bundle = null; //botones private ImageView ivCesta = null; private ImageView ivRegresa = null; private ImageView ivInicio = null; private SoapObject result; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.descripcionprodselec); //acciones ivRegresa = (ImageView)findViewById(R.id.ivRegresarDescripProd); ivRegresa.setOnClickListener(ivRegresaPres); ivCesta = (ImageView) findViewById(R.id.ivAgregaCestaDescripProd); ivCesta.setOnClickListener(ivCestaPress); ivInicio = (ImageView) findViewById(R.id.ivInicioDescripProdSelec); ivInicio.setOnClickListener(ivInicioPres); SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME); httpt = new HttpTransportSE(URL); envelope = new SoapSerializationEnvelope( SoapEnvelope.VER11 ); envelope.dotNet = false; bundle = getIntent().getExtras(); request.addProperty ("idProd", bundle.getString("idProducto")); envelope.setOutputSoapObject(request); producto = new Producto(); inicializaCat(); } public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK) {
127
return false; } return super.onKeyDown(keyCode, event); } private void inicializaCat(){ //ObtenerValoresJSon obtenerValores = new ObtenerValoresJSon(); //Bundle prodObtenidos = new Bundle(); final String url = "http://"+HOST+"/catalog/images/"; TextView tvNombreProd = (TextView) findViewById(R.id.tvNombProdDescripProd); TextView tvModeloProd = (TextView) findViewById(R.id.tvModeloProdDescripProd); TextView tvDescripProd = (TextView) findViewById(R.id.tvDescripProdDescripProd); TextView tvPrecioProd = (TextView) findViewById(R.id.tvPrecioProdDescripProd); TextView tvFabricanteProd = (TextView) findViewById(R.id.tvFabricanteDescripProd); ImageView ivImagenProd = (ImageView) findViewById(R.id.ivImgProdDescripProd); try{ httpt.call(SOAP_ACTION, envelope); result = (SoapObject)envelope.bodyIn; SoapObject resultSoap = (SoapObject) envelope.getResponse(); //obtenemos las primitivas SoapPrimitive id = (SoapPrimitive) resultSoap.getProperty("idProd"); SoapPrimitive nombre = (SoapPrimitive) resultSoap.getProperty("nombreProd"); SoapPrimitive descripcion = (SoapPrimitive) resultSoap.getProperty("descripProd"); SoapPrimitive modelo = (SoapPrimitive) resultSoap.getProperty("modeloProd"); SoapPrimitive cantidad = (SoapPrimitive) resultSoap.getProperty("cantidadProd"); SoapPrimitive imagen = (SoapPrimitive) resultSoap.getProperty("imagenProd"); SoapPrimitive precio = (SoapPrimitive) resultSoap.getProperty("precioProd"); SoapPrimitive fabricante = (SoapPrimitive) resultSoap.getProperty("fabricanteProd");
128
double precioProd = Double.parseDouble(precio.toString()); producto.setIdProd(id.toString()); producto.setNombreProd(nombre.toString()); producto.setDescripProd(descripcion.toString()); producto.setModeloProd(modelo.toString()); producto.setCantidadProd(cantidad.toString()); producto.setImagenProd(imagen.toString()); producto.setPrecioProd(Double.toString(precioProd)); producto.setFabricanteProd(fabricante.toString()); tvNombreProd.setText(producto.getNombreProd()); tvModeloProd.setText("Modelo: ["+producto.getModeloProd()+"]"); tvDescripProd.setText(producto.getDescripProd()); tvPrecioProd.setText("$"+producto.getPrecioProd()); tvFabricanteProd.setText(producto.getFabricanteProd()); ImageView i = new ImageView(DescripcionProdSelec.this); /* URL aURL = new URL(url+producto.getImagenProd()); URLConnection conn = aURL.openConnection(); conn.connect(); InputStream is = conn.getInputStream(); BufferedInputStream bis = new BufferedInputStream(is); Bitmap bm = BitmapFactory.decodeStream(bis); bis.close(); is.close(); */ //cambio String rutaUrl = url+producto.getImagenProd(); HttpGet httpRequest = null;
129
try { httpRequest = new HttpGet(rutaUrl); } catch (Exception e) { e.printStackTrace(); } HttpClient httpclient = new DefaultHttpClient(); HttpResponse response = (HttpResponse) httpclient.execute(httpRequest); HttpEntity entity = response.getEntity(); BufferedHttpEntity bufHttpEntity = new BufferedHttpEntity(entity); InputStream instream = bufHttpEntity.getContent(); Bitmap bm = BitmapFactory.decodeStream(instream); //fin i.setImageBitmap(bm); ivImagenProd.setImageBitmap(bm); } catch(Exception err){ new AlertDialog.Builder(DescripcionProdSelec.this) .setTitle("error en inicializaCat()") .setMessage(err.toString()) .setPositiveButton("Ok", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int whichButton) { setResult(RESULT_OK); } }) .show(); Log.e("Error", err.toString()); } }
130
private boolean validaCantidad(int idProd, int cantidad){ //Definicin para servicio Web String SOAP_ACTIONV = "capeconnect:servicios:serviciosPortType#validaCantidad"; String METHOD_NAMEV = "validaCantidad"; String NAMESPACEV = "http://www.your-company.com/servicios.wsdl"; String URLV = "http://"+HOST+"/servicios/servicios.php"; SoapSerializationEnvelope envelopeValida; HttpTransportSE httptValida; SoapObject resultValida; SoapObject requestValida = new SoapObject(NAMESPACEV, METHOD_NAMEV); try{ httptValida = new HttpTransportSE(URLV); envelopeValida = new SoapSerializationEnvelope( SoapEnvelope.VER11 ); envelopeValida.dotNet = false; requestValida.addProperty ("idProd", idProd ); requestValida.addProperty ("cantidad", cantidad); envelopeValida.setOutputSoapObject(requestValida); httptValida.call(SOAP_ACTIONV, envelopeValida); resultValida = (SoapObject)envelopeValida.bodyIn; SoapPrimitive result = (SoapPrimitive) resultValida.getProperty("result"); //Log.e("resultado valida cant", result.toString()); if (Integer.parseInt(result.toString()) == 1){ return true; } else{ return false; } }catch (Exception e) {
131
return false; } } private OnClickListener ivCestaPress = new OnClickListener() { public void onClick(View arg0) { EditText cantidad = (EditText) findViewById(R.id.etxtCantidadDescripProd); if (!Validaciones.esNumero(cantidad.getText().toString())){ mensajeError("Error", "Capture la cantidad"); /* if (Validaciones.esNumero(cantidad.getText().toString())){ if (Integer.parseInt(cantidad.getText().toString()) <= 0 ) mensajeError("Error", "La cantidad debe ser mayor o igual a 1"); } */ } else{ if (Integer.parseInt(cantidad.getText().toString())!= 0 ){ if Integer.parseInt(cantidad.getText().toString())) == true){ (validaCantidad(Integer.parseInt(producto.getIdProd()),
dc.setCantidadProd(Integer.parseInt(cantidad.getText().toString()));
132
sumaCant.setCantidadProd(cantidadDatos+Integer.parseInt(cantidad.getText().toString())); ListaCesta.arregloCesta.put(producto.getIdProd(), sumaCant); } else{ ListaCesta.arregloCesta.put(dc.getIdProducto(), dc); } Intent intent = new Intent(); intent.putExtra("idProducto", producto.getIdProd()); intent.putExtra("cantidad", cantidad.getText().toString()); intent.setClass(DescripcionProdSelec.this, Cesta.class); startActivity(intent); finish(); } else{ mensajeError("Error", "La cantidad capturada es mayor que la existente en inventario"); } } else{ mensajeError("Error", "Capture cantidad"); } } } };
private OnClickListener ivRegresaPres = new OnClickListener() { public void onClick(View v) { Intent intent = new Intent();
133
if (bundle.getInt("busca") != 0){ intent.putExtra("palabra", bundle.getString("palabra")); intent.setClass(DescripcionProdSelec.this, ProductosListCatLVBuscar.class); startActivity(intent); finish(); } else{ intent.putExtra("idCategoria", bundle.getString("idCategoria")); intent.setClass(DescripcionProdSelec.this, ProductosListCatLV.class); startActivity(intent); finish(); } } }; private OnClickListener ivInicioPres = new OnClickListener() { public void onClick(View arg0) { Intent intent = new Intent(); intent.setClass(DescripcionProdSelec.this, Principal.class); startActivity(intent); finish(); } }; private void mensajeError(String titulo, String msj){ new AlertDialog.Builder(DescripcionProdSelec.this) .setTitle(titulo) .setMessage(msj) .setPositiveButton("Ok", new DialogInterface.OnClickListener() {
134
135
ivCancelaPedidos.setOnClickListener(ivCancelaPedidosPres); bundle = getIntent().getExtras(); } public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK) { return false; } return super.onKeyDown(keyCode, event); } private OnClickListener ivInicioPres = new OnClickListener() { public void onClick(View arg0) { Intent intent = new Intent(); intent.setClass(DatosCuenta.this, Principal.class); startActivity(intent); finish(); } }; private OnClickListener ivVerPedidosPres = new OnClickListener() { public void onClick(View arg0) { Intent intent = new Intent(); intent.putExtra("emailCliente", bundle.getString("emailCliente")); intent.putExtra("contra", bundle.getString("contra")); intent.setClass(DatosCuenta.this, RevisaPedidosCliente.class); startActivity(intent); finish(); } };
136
private OnClickListener ivModificaDatosPres = new OnClickListener() { public void onClick(View arg0) { Intent intent = new Intent(); intent.putExtra("emailCliente", bundle.getString("emailCliente")); intent.putExtra("contra", bundle.getString("contra")); intent.setClass(DatosCuenta.this, ModificaDatosCliente.class); startActivity(intent); finish(); } }; private OnClickListener ivCambiaContraPres = new OnClickListener() { public void onClick(View arg0) { Intent intent = new Intent(); intent.putExtra("emailCliente", bundle.getString("emailCliente")); intent.putExtra("contra", bundle.getString("contra")); intent.setClass(DatosCuenta.this, ActualizaContra.class); startActivity(intent); finish();}}; private OnClickListener ivCancelaPedidosPres = new OnClickListener() { public void onClick(View arg0) { Intent intent = new Intent(); intent.putExtra("emailCliente", bundle.getString("emailCliente")); intent.putExtra("contra", bundle.getString("contra")); intent.setClass(DatosCuenta.this, CancelaPedidos.class); startActivity(intent); finish(); }};}
137
ANEXO RESUMEN En este trabajo se describe las etapas del proceso de ICONIX. Como primer punto tenemos el anlisis de requisitos, donde se identifican los requerimientos de los usuarios, para identificar los objetos y realizar el modelo de dominio. El modelo de dominio constituye la base de toda la actividad del Modelado de objetos. Como segundo punto se tiene el anlisis de casos de uso que estn descritos en el contexto del modelo de dominio, se identifican las tareas del negocio. En el captulo de la revisin de requisitos nos permite garantizar la coincidencia del sistema con los requisitos y las abstracciones del modelo de dominio. En el cuarto captulo se detalla el anlisis de robustez tomando como base todos los captulos anteriores. El artefacto este captulo es el diagrama de robustez que se obtiene para cada caso de uso. El anlisis de robustez es el intermedio entre el anlisis y diseo.
SISTEMA WEB PARA LA COMERCIALIZACIN DE ARTESANA DE HUAMANGA SHOSAKO NAGASE CON TECNOLOGIA CRM La artesana se impone en Huamanga con fines de suntuosidad y necesidad cotidiana. El artesano ayacuchano como heredero de una larga tradicin, expresa con autenticidad personal y calidad profesional su obra, que es testigo de su sentir, su sociedad y su cultura, consagrndose por generaciones y lograr al natural paso del tiempo una increble maestra y una muestra de talento creador, pocas veces superado. En Ayacucho se desarrollaron ms de 40 lneas artesanales, mantenindose en cada de ellas la expresin artstica (pese a su deformacin y gradual extincin de algunos). Se llama artesana a la produccin de bienes elaborados a mano, o con la ayuda de una
138
herramientas o medios mecnicos siempre y cuando la participacin del trabajo manual siga siendo el componente ms importante del producto final.
TECNOLOGIA: CRM (CUSTOMER RELATIONSHIP MANAGEMENT). En su traduccin literal, se entiende como la Gestin sobre la Relacin con los Consumidores, bsicamente se refiere a una estrategia de negocios centrada en el cliente. Los beneficios del CRM no slo se concretan en la retencin y la lealtad de los clientes, sino tambin en tener un marketing ms efectivo, crear inteligentes oportunidades y abrir la posibilidad a una rpida introduccin de nuevos productos artesanales.
139