instalacion2.equiposysistemas.netinstalacion2.equiposysistemas.net/eyscommercia2011/CNEXT... · Web...

Post on 18-Mar-2020

6 views 0 download

Transcript of instalacion2.equiposysistemas.netinstalacion2.equiposysistemas.net/eyscommercia2011/CNEXT... · Web...

Documentación del Proyecto CommerciaMobileNEXT

Se crea proyecto base Eys.CommerciaMobileNext en TFS para Inicio de desarrollo del Proyecto.

Se crean Proyecto Cross-Platform Xamarin.Forms (Portable)

Se eliminan proyectos No necesarios (ios, etc.)

Se crean los Directorios (Capas para el desarrollo del Proyecto)

Se agregan Referencias Nugget al Proyecto para el Uso de SQLite

- SQLite-Net-PCL- SQLiteNetExtensions

Se agrega Patrón de Diseño ServiceLocator a la Capa BLLX

Se agrega Clase DBManager para la creación de la Base de Datos local

Código fuente

Se crean los directorios de proyecto inicial

Se agrega Clase para el login

Se realiza el diseño del login

Se realiza el diseño del login para nip

Para agregar el menú Hamburger se necesitan las siguientes clases:

- RootPage.cs

Es la clase root que contiene el MenuPage, en esta clase se extraen los datos de la tabla MenuUsuario para formar el menú utilizando el método ServiceLocator, filtrado por la categoría MOB que significa Mobile.

- MainMenu.cs

Es la clase que contiene el contenido del menú principal tipo Tiles.

Evento Tapped(Click) que detecta el click en el Tile para decidir que acción se va a realizar tomando en cuenta el campo Elemento de la tabla MenuElemento

- MenuCell.cs

Es la clase que contiene el contenido de la celda del menú.

- MenuItem.cs

Es la clase que contiene los elementos del menú.

- MenuListData.cs

Clase donde se obtiene el listado de elementos para el menú.

Revisar si tiene misma compatibilidad de campos 100% vs Menu/MenuElemento C.NET

Se revisó y no existe compatibilidad 100%

SUBIR A SHAREPOINT

- MenuListView.cs

Es la clase que le da el diseño al contenido del menú.

- MenuPage.cs

Es la clase que contiene el menú.

Diseño del menú principal

Diseño del menú Hamburger

Buscadores

1. Poner titulo de componente en titulo ventanaNo aplica ya que es un “control de usuario”, pero si es posible.

2. Investigar como poner pivot grid para búsqueda acelerada de elementos -> Ver con Arturo funcionalidad similar

3. Determinar presupuesto de hrs para decidir – 2 díasNo es posible, Xamarin.Forms no lo soporta.

Los buscadores se componen de cuatro elementos:

- Un Label con el titulo

- Un Picker con los filtros

- Una SearchBar

- Un ListView con los resultados de la búsqueda

El método searchBar_TextChanged() es llamado por el evento TextChanged del Search bar, aquí es donde se realiza la búsqueda

Una vez realizada la búsqueda, ejecuta el método cargarClientesEncontrados que muestra la lista de coincidencias.

MultilenguajeAgregamos una carpeta que contendrá los Resources para los diferentes lenguajes.

Agregamos tres ítems de tipo Resource que serán los lenguajes (español, inglés y el default)

Agregamos una interfaz ILocalize.cs a nuestra carpeta Util para obtener la Cultura

En la carpeta Util de nuestro proyecto Droid es necesario agregar una clase Localize para obtener la cultura (no es necesario para UWP)

Por ultimo, inicializamos la cultura en la clase App.cs de nuestro proyecto compartido(Portable)

Para utilizarlo se utiliza la siguiente sintaxis

En donde lbl_usuario es el identificador del valor.

ConfiguraciónPara la configuración creamos dos clases, una clase Config.cs y otra Configuracion.cs

Dentro de la clase Config.cs se encuentran los métodos para agregar u obtener el valor a una key

En la clase Configuracion.cs está el método btnGuardar, en donde se asigna una key a los distintos valores que se guardaran en la configuracion.

Crear categorías:

1. Configuración a. Global

i. Generalii. Comprasiii. Inventariosiv. Ventasv. CXC/CXPvi. Perifericosvii. Interoperabilidad

b. Locali. Generalii. Comprasiii. Inventariosiv. Ventasv. Perifericos

IMPORTANTE:

1. Cada que se agregue una llave a la configuración SE DEBE DOCUMENTAR:

Llave Uso Default Notas Fecha ResponsableLocal.General.ClienteBuscaDefault Permite fijar un

criterio de búsqueda predeterminado para el comboBox de BuscaCliente

Todos Revisar búsqueda inteligente

Para cargar la configuración guardada se comprueba si existe algún key para los campos que se necesiten.

Se agregó clase Logger.cs para la administración del guardado de archivos Log.txt

El archivo solo contendrá los últimos 50,000 caracteres de registro de errores para controlar la memoria del teléfono teniendo solamente los últimos errores de la aplicación.

(La forma en que Xamarin controla los archivos no permite agregar más líneas al documento, siempre sobrescribe el texto, por lo que se empleó una forma de mantener siempre guardado los últimos 50,000 caracteres).

Alta de clientesSe agregó clase abcClienteFormulario para dar de alta a clientes

Método de carga del formulario

Se revisa la configuración del usuario para determinar que controles se mostraran y en qué orden.

Por default se muestra el formulario completo en el orden especificado.

Método para guardar un nuevo cliente

Método para actualizar un cliente existente

Se agregó clase abcClienteFoto para la administración de la foto del cliente

En esta clase se encuentran los métodos para tomar una foto nueva o seleccionar una existente de la galería.

Se agrego clase Localization para obtener la localización

Se necesita intalar el nuget package Xam.Plugin.Geolocator.

Se crea el método que obtendrá la Ubicación.

Actualizar Cliente.Para actualizar un cliente primero hay que seleccionarlo en el buscador.

Una vez seleccionado se ejecuta el evento ItemTapped.

Una vez seleccionado el cliente, se ejecuta el método para cargar al cliente seleccionado en el formulario

Este método busca la información de cliente y contacto para llenar los campos del formulario.

Se agrego clase Expression para evaluar expresiones regulares para la validación del formato de entrada de diferentes textos (e-mail, RFC).

Se agrego un método en la alta de cliente para validar los campos obligatorios, asi como el formato de los campos que lo necesiten

SincronizaciónSe agregó clase SyncSplash para controlar la sincronización y probar la conexión a internet.

Se agregó clase CatalogosSync a la capa BLLX, que administra la sincronización de los diferentes catálogos del sistema.

Se separo la sincronización en dos etapas.

Etapa 1

Catálogos que se sincronizan siempre.

Etapa 2

Catálogos que solo se sincronizan si es necesario.

Método Syncronizar.

En este método se realiza la administración de la sincronización por catálogo.

Primero se revisa si es necesario preparar la tabla, o sea que se eliminaran todos los registros y se actualizarán conforme a la tabla maestra.

Segundo

Se revisa la condición del catálogo.

Condiciones(no sincronizado, sincronizado y pendiente de actualizar, ya sea agregar más, eliminar o actualizar registro según sea el caso).

La acción NO_SYNC significa que la tabla se encuentra vacia y hay que sincronizar toda la información.

La accion UPDATE_SYNC significa que se requiere actualizacion o en su caso sincronizacion, o sea, actualizar tanto al maestro como al hijo.

La acción SYNC significa que los catálogos están totalmente sincronizados.

Método isSynchronized.

Este determina las acciones por catálogo a como se explicó anteriormente.

VENTA

Se crearon clases que se encargan de controlar la pantalla de venta en los diferentes dispositivos tanto móviles como escritorio, asi como los popups que este proceso incluye.

ContentVenta.cs y ContentVentaPhone.cs son las clases que contienen los elementos de la venta (los buscadores y la venta)

ItemVenta.cs es la clase que contiene las propiedades de los artículos que se agregan a la lista en la venta.

Venta.cs es la clase encargada de la administración de la venta, en ella se encuentran los diferentes métodos de los procesos que se realizan.

El método cargarTitulos() se encarga de traer las columnas de la tabla operación columna para visualizarlos en la pantalla de venta

El método Elementos_ItemTapped es un evento que se ejecuta al seleccionar un elemento de la venta, este método carga un popup con la información del articulo para modificarlo o eliminarlo

El método setObservacionMovimiento() guarda en el diccionario de llaves el id de los artículos que modificaron su descripcion

El método setElemento() agrega el articulo seleccionado al desglose de venta

Seleccionar ClienteAntes de comenzar con la venta, se debe seleccionar un cliente en la búsqueda de clientes

Y se reemplaza el buscador de clientes por el de artículos

Agregar ArtículoEsta clase es un popup que se crea al seleccionar un artículo del buscador.

En este método se actualiza la descripción del articulo si es que fue cambiada.

Modificar ArtículoEste popup tiene la misma funcionalidad que Agregar articulo, con la diferencia de que en este además se puede eliminar el articulo de la lista.