Ejemplo n.º 1
0
        private async void ObtenerProductos()
        {
            try
            {
                var databasepath = System.IO.Path.Combine(System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal), "kigest_sltosAriel.db");
                var db           = new SQLiteConnection(databasepath);
                RespuestaServerProductos respuestaServerProductos = await interfazProductos.GetServerProductos();

                Productos = respuestaServerProductos.ProductosLista;

                var mensaje     = FindViewById <TextView>(Resource.Id.txtProductosServerMensaje);
                int contadoradd = 0;
                int contadormod = 0;
                int contadortot = 0;
                int CantProd    = Productos.Count;
                dbUser.VaciarTablaProductos();

                foreach (ProductosServer producto in Productos)
                {
                    IEnumerable <ConsultasTablas> resultado = BuscarProductos(db, producto.id);
                    if (resultado.Count() == 0)
                    {
                        Productos ProductoLocal = new Productos()
                        {
                            codProdMain     = producto.id,
                            descripcion     = producto.descripcion,
                            precio          = producto.precio,
                            ganancia        = producto.ganancia,
                            iva             = producto.iva,
                            cod_bar         = producto.cod_bar,
                            utilidad1       = producto.utilidad1,
                            utilidad2       = producto.utilidad2,
                            codigo          = producto.codigo,
                            calcular_precio = producto.calcular_precio,
                            categoria       = producto.categoria,
                            presentacion    = producto.presentacion,
                            bonif           = producto.bonif,
                            utilidad3       = producto.utilidad3,
                            utilidad4       = producto.utilidad4,
                            utilidad5       = producto.utilidad5
                        };
                        contadoradd++;
                        contadortot++;
                        dbUser.InsertarProducto(ProductoLocal);
                    }
                    else
                    {
                        Productos ProductoLocal = new Productos()
                        {
                            codProdMain = producto.id,
                            precio      = producto.precio,
                            ganancia    = producto.ganancia,
                            iva         = producto.iva,
                            //bonif = producto.bonif,
                            utilidad1       = producto.utilidad1,
                            utilidad2       = producto.utilidad2,
                            utilidad3       = producto.utilidad3,
                            utilidad4       = producto.utilidad4,
                            utilidad5       = producto.utilidad5,
                            calcular_precio = producto.calcular_precio,
                            bonif           = producto.bonif
                        };
                        contadormod++;
                        contadortot++;
                        dbUser.ActualizarProducto(ProductoLocal);
                    }
                }
                //progreso.SetProgress((contadortot / CantProd) * 100, true);
                mensaje.Text = "Se han agregado " + contadoradd + " y se han modificado " + contadormod + " productos obtenidos del servidor";
                var btnSincronizar = FindViewById <Button>(Resource.Id.btnProductosServerSincronizar);
                btnSincronizar.Text    = "Sincronizar productos";
                btnSincronizar.Enabled = true;
            }
            catch (Exception ex)
            {
                Toast.MakeText(this, ex.Message + "---" + ex.StackTrace, ToastLength.Long).Show();
                var btnSincronizar = FindViewById <Button>(Resource.Id.btnProductosServerSincronizar);
                btnSincronizar.Text    = "Sincronizar productos";
                btnSincronizar.Enabled = true;
            }
        }