Exemplo n.º 1
0
        private async void ActualizarEstadoPedidoHCG(string estado)
        {
            _mensaje = "Ha ocurrido un error mientras se actualizaba el estado.";
            try
            {
                var estadoPrimeraMayus = char.ToUpper(estado[0]) + estado.Substring(1);
                foreach (CellEntry celda in _celdas.Entries)
                {
                    if (celda.Row != _pedido.FilaPlanillaCalculo)
                    {
                        continue;
                    }

                    if (celda.Column == 7 || celda.Column == 8)
                    {
                        celda.InputValue = celda.Column == 7 ? estadoPrimeraMayus : CuentaUsuario.ObtenerNombreUsuarioGoogle() ?? "-";
                        celda.Update();
                    }
                }
            }
            catch (Exception)
            {
                // Si se quedó la pantalla abierta un largo tiempo y se venció el token, se cierra y refresca el token
                var paginaAuntenticacion = new PaginaAuntenticacion(true);
                Navigation.InsertPageBefore(paginaAuntenticacion, this);
                await Navigation.PopAsync();
            }
        }
        private async void ObtenerDatosClientesDesdeHCG()
        {
            try
            {
                IsBusy = true;

                await Task.Run(async() =>
                {
                    if (CuentaUsuario.ValidarTokenDeGoogle())
                    {
                        var linkHojaClientes  = CuentaUsuario.ObtenerLinkHojaClientes();
                        _clientes             = ObtenerListado(linkHojaClientes);
                        var linkHojaProductos = CuentaUsuario.ObtenerLinkHojaPorNombre("Productos App");
                        _productos            = ObtenerListado(linkHojaProductos);
                        ConstruirVista();
                    }
                    else
                    {
                        // Si se quedó la pantalla abierta un largo tiempo y se venció el token, se cierra y refresca el token.
                        var paginaAuntenticacion = new PaginaAuntenticacion(true);
                        Navigation.InsertPageBefore(paginaAuntenticacion, this);
                        await Navigation.PopAsync();
                    }
                });
            }
            finally
            {
                // Remueve el Indicador de Actividad.
                IsBusy = false;
            }
        }
        private async Task TareaGuardarPedido(Picker comboCliente)
        {
            try
            {
                IsBusy = true;

                await Task.Run(async() =>
                {
                    if (CuentaUsuario.ValidarTokenDeGoogle())
                    {
                        GuardarPedidoHojaDeCalculoGoogle(comboCliente);
                    }
                    else
                    {
                        //Si se quedó la pantalla abierta un largo tiempo y se venció el token, se cierra y refresca el token
                        var paginaAuntenticacion = new PaginaAuntenticacion(true);
                        Navigation.InsertPageBefore(paginaAuntenticacion, this);
                        await Navigation.PopAsync();
                    }
                });
            }
            finally
            {
                IsBusy = false;                 //Remueve el Indicador de Actividad.
            }
        }
        private async Task ObtenerYConfigurarHojas(string linkLibro)
        {
            try
            {
                IsBusy = true;

                await Task.Run(async() =>
                {
                    if (CuentaUsuario.ValidarTokenDeGoogle())
                    {
                        _listaHojas = new ServiciosGoogle().ObtenerListaHojas(linkLibro, _servicio);
                        ConfigurarHojas();
                    }
                    else
                    {
                        //Si se quedó la pantalla abierta un largo tiempo y se venció el token, se cierra y refresca el token
                        var paginaAuntenticacion = new PaginaAuntenticacion(true);
                        Navigation.InsertPageBefore(paginaAuntenticacion, this);
                        await Navigation.PopAsync();
                    }
                });
            }
            finally
            {
                IsBusy = false;                 //Remueve el Indicador de Actividad.
            }
        }
Exemplo n.º 5
0
        private async void IrPaginaAutenticacion()
        {
            //Si se quedó la pantalla abierta un largo tiempo y se venció el token, se cierra y refresca el token
            var paginaAuntenticacion = new PaginaAuntenticacion(true);

            Navigation.InsertPageBefore(paginaAuntenticacion, this);
            await Navigation.PopAsync();
        }
        private async void ObtenerDatosMovimientosDesdeHCG()
        {
            try
            {
                ContenedorMovimientos.Children.Add(_indicadorActividad);
                IsBusy = true;

                await Task.Run(async() => {
                    if (CuentaUsuario.ValidarTokenDeGoogle())
                    {
                        var linkHistoricosCeldas = CuentaUsuario.ObtenerLinkHojaHistoricosCeldas(CuentaUsuario.ObtenerLinkHojaConsulta());
                        _celdas = _servicioGoogle.ObtenerCeldasDeUnaHoja(linkHistoricosCeldas, _servicio);
                    }
                    else
                    {
                        //Si se quedó la pantalla abierta un largo tiempo y se venció el token, se cierra y refresca el token
                        var paginaAuntenticacion = new PaginaAuntenticacion(true);
                        Navigation.InsertPageBefore(paginaAuntenticacion, this);
                        await Navigation.PopAsync();
                    }
                });
            }
            finally
            {
                IsBusy = false;                 //Remueve el Indicador de Actividad.
            }

            _nombresColumnas = new string[_celdas.ColCount.Count];

            var movimientos = new List <string[]>();
            var movimiento  = new string[_celdas.ColCount.Count];

            foreach (CellEntry celda in _celdas.Entries)
            {
                if (celda.Row != 1)
                {
                    if (celda.Column == 1)
                    {
                        movimiento = new string[_celdas.ColCount.Count];
                    }

                    movimiento.SetValue(celda.Value, (int)celda.Column - 1);

                    if (celda.Column == _celdas.ColCount.Count)
                    {
                        movimientos.Add(movimiento);
                    }
                }
                else
                {
                    _nombresColumnas.SetValue(celda.Value, (int)celda.Column - 1);
                }
            }

            LlenarGrillaDeMovimientos(movimientos);
        }
Exemplo n.º 7
0
        private async void ObtenerDatosPedidosDesdeHCG()
        {
            try
            {
                IsBusy = true;

                await Task.Run(async() =>
                {
                    if (CuentaUsuario.ValidarTokenDeGoogle())
                    {
                        var linkHojaPedidos = CuentaUsuario.ObtenerLinkHojaPedidos();;
                        _celdas             = _servicioGoogle.ObtenerCeldasDeUnaHoja(linkHojaPedidos, _servicio);

                        var pedidos = new List <string[]>();
                        var pedido  = new string[_celdas.ColCount.Count];

                        foreach (CellEntry celda in _celdas.Entries)
                        {
                            if (celda.Row != 1)
                            {
                                if (celda.Column == 1)
                                {
                                    pedido = new string[_celdas.ColCount.Count];
                                }

                                pedido.SetValue(celda.Value, (int)celda.Column - 1);

                                if (celda.Column == _celdas.ColCount.Count)
                                {
                                    pedidos.Add(pedido);
                                }
                            }
                        }

                        LlenarGrillaDePedidos(pedidos);
                    }
                    else
                    {
                        // Si se quedó la pantalla abierta un largo tiempo y se venció el token, se cierra y refresca el token.
                        var paginaAuntenticacion = new PaginaAuntenticacion(true);
                        Navigation.InsertPageBefore(paginaAuntenticacion, this);
                        await Navigation.PopAsync();
                    }
                });
            }
            finally
            {
                // Remueve el Indicador de Actividad.
                IsBusy = false;
            }
        }
        private async void EnviarPaginaSeleccionColumnas(string linkHoja)
        {
            if (!CuentaUsuario.ValidarTokenDeGoogle())
            {
                var paginaAuntenticacion = new PaginaAuntenticacion(true);
                Navigation.InsertPageBefore(paginaAuntenticacion, this);
                await Navigation.PopAsync();
            }

            CuentaUsuario.AlmacenarLinkHojaPuntosVentaDeHoja(CuentaUsuario.ObtenerLinkHojaConsulta(), linkHoja);

            ContentPage pagina = new SeleccionColumnasParaVer(_servicio);
            await Navigation.PushAsync(pagina, true);
        }
Exemplo n.º 9
0
 private async void RefrescarLugCompVtas_RelacionInsProd()
 {
     if (CuentaUsuario.ValidarTokenDeGoogle())
     {
         new LugaresCompraVenta().ObtenerActualizarLugares(_linkHojaConsulta, _servicio);
         new RelacionesInsumoProducto().ObtenerActualizarRelaciones(_linkHojaConsulta, _servicio);
     }
     else
     {
         //Si se quedó la pantalla abierta un largo tiempo y se venció el token, se cierra y refresca el token
         var paginaAuntenticacion = new PaginaAuntenticacion(true);
         Navigation.InsertPageBefore(paginaAuntenticacion, this);
         await Navigation.PopAsync();
     }
 }
        private async void ObtenerColumnas()
        {
            try
            {
                IsBusy = true;

                await Task.Run(async() =>
                {
                    if (CuentaUsuario.ValidarTokenDeGoogle())
                    {
                        _linkHojaConsulta = CuentaUsuario.ObtenerLinkHojaConsulta();
                        if (_celdas == null || _celdas.RowCount.Count == 0)
                        {
                            _celdas = new ServiciosGoogle().ObtenerCeldasDeUnaHoja(_linkHojaConsulta, _servicio);
                        }
                    }
                    else
                    {
                        //Si se quedó la pantalla abierta un largo tiempo y se venció el token, se cierra y refresca el token
                        var paginaAuntenticacion = new PaginaAuntenticacion(true);
                        Navigation.InsertPageBefore(paginaAuntenticacion, this);
                        await Navigation.PopAsync();
                    }
                });
            }
            finally
            {
                IsBusy = false;                 //Remueve el Indicador de Actividad.
            }

            _columnas = new List <CellEntry>();            //Columnas para listar en pantalla, si hay una de nombre Usuario - Movimiento se quita.

            foreach (CellEntry celda in _celdas.Entries)
            {
                if (celda.Row == 1)
                {
                    _columnas.Add(celda);
                }
                else
                {
                    break;
                }
            }

            // El arreglo de columnas para ver, todas con valor inicial en 1
            _listaColumnas = Enumerable.Repeat(1, _columnas.Count).ToArray();
            LlenarGrillaColumnasParaVer(_columnas);
        }
Exemplo n.º 11
0
        private async Task GuardarProductoHojaDeCalculoGoogle()
        {
            _mensaje = "Ha ocurrido un error mientras se guardaba el movimiento.";
            var servicioGoogle = new ServiciosGoogle();
            var grabo          = false;

            foreach (var celda in _producto)
            {
                if (_listaColumnasInventario[(int)celda.Column - 1] == "1")
                {
                    var multiplicador = _signoPositivo[(int)celda.Column - 1] ? 1 : -1;
                    var cantidad      = _cantidades[(int)celda.Column - 1];
                    var precio        = _precios[(int)celda.Column - 1];
                    var lugar         = _listaLugares != null ? _lugares[(int)celda.Column - 1] : "No tiene configurado.";

                    if (cantidad != 0)
                    {
                        try
                        {
                            // Si no hay lugares no hay campo de PrecioTotal, entonces el precio lo toma de la cantidad
                            if (_listaLugares == null)
                            {
                                precio = multiplicador * cantidad;
                            }

                            //Ingresa el movimiento de existencia (entrada - salida) en la tabla principal
                            servicioGoogle.EnviarMovimiento(_servicio, celda, multiplicador * cantidad, precio, lugar, _comentario, _producto, _nombresColumnas,
                                                            _listaColumnasInventario, CuentaUsuario.ObtenerLinkHojaHistoricos());
                            //Si es página principal y tiene las relaciones insumos - productos, ingresa los movimientos de insumos
                            if (multiplicador == 1)                             //Si es ingreso positivo
                            {
                                servicioGoogle.InsertarMovimientosRelaciones(_servicio, cantidad, _producto);
                            }

                            grabo = true;
                        }
                        catch (Exception)
                        {
                            // Si se quedó la pantalla abierta un largo tiempo y se venció el token, se cierra y refresca el token
                            var paginaAuntenticacion = new PaginaAuntenticacion(true);
                            Navigation.InsertPageBefore(paginaAuntenticacion, this);
                            await Navigation.PopAsync();
                        }
                    }
                }
            }
            _mensaje = grabo ? "El movimiento ha sido guardado correctamente." : "No se han registrado movimientos.";
        }
Exemplo n.º 12
0
        private async Task TareaActualizarEstado(string estado, bool descontarStock)
        {
            ContenedorProducto.Children.Clear();
            ContenedorProducto.Children.Add(_indicadorActividad);

            try
            {
                IsBusy = true;

                await Task.Run(async() =>
                {
                    if (CuentaUsuario.ValidarTokenDeGoogle())
                    {
                        if (CuentaUsuario.ObtenerAccesoDatos() == "G")
                        {
                            ActualizarEstadoPedidoHCG(estado);
                            if (descontarStock)
                            {
                                ActualizarInventario();
                            }
                        }
                        else
                        {
                            ActualizarEstadoPedidoBD();
                        }

                        _mensaje = estado == "finalizado" ? "Los cambios han sido registrados correctamente." : "El pedido ha sido cancelado.";
                    }
                    else
                    {
                        //Si se quedó la pantalla abierta un largo tiempo y se venció el token, se cierra y refresca el token
                        var paginaAuntenticacion = new PaginaAuntenticacion(true);
                        Navigation.InsertPageBefore(paginaAuntenticacion, this);
                        await Navigation.PopAsync();
                    }
                });
            }
            finally
            {
                IsBusy = false;                 //Remueve el Indicador de Actividad.
            }
        }
        private async void ObtenerDatosConstruirGrafica()
        {
            PlotView grafica = null;

            try
            {
                ContenedorMovimientos.Children.Add(_indicadorActividad);
                IsBusy = true;

                await Task.Run(async() => {
                    if (CuentaUsuario.ValidarTokenDeGoogle())
                    {
                        // Recupera el caché desde CuentaUsuario
                        var listaMovimientos = CuentaUsuario.ListaMovimientos ?? ObtenerDatosDesdeHG();
                        // Almacena en caché
                        // Se purga cada vez que insertamos un movimiento (ServiciosGoogle: EnviarMovimiento - InsertarMovimientosRelaciones)
                        CuentaUsuario.ListaMovimientos = listaMovimientos;

                        grafica = ConstruirGrafica(listaMovimientos);
                    }
                    else
                    {
                        //Si se quedó la pantalla abierta un largo tiempo y se venció el token, se cierra y refresca el token
                        var paginaAuntenticacion = new PaginaAuntenticacion(true);
                        Navigation.InsertPageBefore(paginaAuntenticacion, this);
                        await Navigation.PopAsync();
                    }
                });
            }
            finally
            {
                IsBusy = false;                 //Remueve el Indicador de Actividad.
            }

            if (grafica != null)
            {
                ContenedorMovimientos.Children.Clear();
                ContenedorMovimientos.Children.Add(grafica);
            }
        }
        private async void GuardarPedidoHojaDeCalculoGoogle(Picker comboCliente)
        {
            _mensaje = "Ha ocurrido un error mientras se guardaba el pedido.";
            var servicioGoogle = new ServiciosGoogle();
            var grabo          = false;

            var idCliente = _clientes[comboCliente.SelectedIndex][0];
            var cliente   = _clientes[comboCliente.SelectedIndex][1];
            var idPedido  = _listaPedidos.OrderByDescending(p => Convert.ToInt32(p.Id)).First()?.Id ?? "0";

            var pedido = new Clases.Pedido()
            {
                Id           = (Convert.ToInt32(idPedido) + 1).ToString(),
                Fecha        = DateTime.Now.ToString("dd/MM/yyyy"),
                IdCliente    = idCliente,
                Cliente      = cliente,
                Detalle      = _listaProducto.ToList(),
                FechaEntrega = DateTime.Now.ToString("dd/MM/yyyy"),
                Estado       = "Pendiente",
                Usuario      = CuentaUsuario.ObtenerNombreUsuarioGoogle() ?? "-",
                Comentario   = "-",
                Lugar        = "-"
            };

            try
            {
                //Ingresa el pedido en la tabla
                servicioGoogle.InsertarPedido(_servicio, pedido);
                grabo = true;
            }
            catch (Exception)
            {
                // Si se quedó la pantalla abierta un largo tiempo y se venció el token, se cierra y refresca el token
                var paginaAuntenticacion = new PaginaAuntenticacion(true);
                Navigation.InsertPageBefore(paginaAuntenticacion, this);
                await Navigation.PopAsync();
            }
            _mensaje = grabo ? "El pedido ha sido guardado correctamente." : "No se ha registrado el pedido.";
        }
Exemplo n.º 15
0
        private async void CargarListaLibros()
        {
            var listaLibros = new List <ClaseLibro>();

            try
            {
                IsBusy = true;

                await Task.Run(async() =>
                {
                    if (CuentaUsuario.ValidarTokenDeGoogle())
                    {
                        if (_listaLibros == null || _listaLibros.Count == 0)
                        {
                            _listaLibros = _servicioGoogle.ObtenerListaLibros(_servicio);
                        }
                        foreach (var datosLibro in _listaLibros)
                        {
                            var libro = new ClaseLibro(datosLibro.Links.FindService(GDataSpreadsheetsNameTable.WorksheetRel, null).HRef.ToString(), datosLibro.Title.Text);
                            listaLibros.Add(libro);
                        }
                    }
                    else
                    {
                        //Si se quedó la pantalla abierta un largo tiempo y se venció el token, se cierra y refresca el token
                        var paginaAuntenticacion = new PaginaAuntenticacion(true);
                        Navigation.InsertPageBefore(paginaAuntenticacion, this);
                        await Navigation.PopAsync();
                    }
                });
            }
            finally
            {
                IsBusy = false;                 //Remueve el Indicador de Actividad.
            }

            var vista = new ListView
            {
                RowHeight         = 60,
                VerticalOptions   = LayoutOptions.StartAndExpand,
                HorizontalOptions = LayoutOptions.Fill,
                ItemsSource       = listaLibros,
                ItemTemplate      = new DataTemplate(() =>
                {
                    var nombreLibro = new Label
                    {
                        FontSize          = 18,
                        TextColor         = Color.FromHex("#1D1D1B"),
                        VerticalOptions   = LayoutOptions.CenterAndExpand,
                        HorizontalOptions = LayoutOptions.CenterAndExpand
                    };
                    nombreLibro.SetBinding(Label.TextProperty, "Nombre");

                    var celda = new ViewCell
                    {
                        View = new StackLayout
                        {
                            Orientation = StackOrientation.Horizontal,
                            Children    = { nombreLibro }
                        }
                    };

                    celda.Tapped += (sender, args) =>
                    {
                        EnviarListaHojas(((ClaseLibro)((ViewCell)sender).BindingContext).Link);
                        celda.View.BackgroundColor = Color.Silver;
                    };

                    celda.Appearing += (sender, args) =>
                    {
                        var viewCell = (ViewCell)sender;
                        if (viewCell.View != null)
                        {
                            viewCell.View.BackgroundColor = _esTeclaPar ? Color.FromHex("#EDEDED") : Color.FromHex("#E2E2E1");
                        }
                        _esTeclaPar = !_esTeclaPar;
                    };

                    return(celda);
                })
            };

            ContenedorLibros.Children.Clear();
            ContenedorLibros.Children.Add(vista);
        }
Exemplo n.º 16
0
        private async void ObtenerDatosProductosDesdeHCG(bool refrescarLugaresRelaciones)
        {
            try
            {
                IsBusy = true;

                await Task.Run(async() =>
                {
                    if (CuentaUsuario.ValidarTokenDeGoogle())
                    {
                        _celdas = _servicioGoogle.ObtenerCeldasDeUnaHoja(_linkHojaConsulta, _servicio);

                        //Refresca los lugares (compra o venta) y relaciones (insumos - productos) sólo cuando presionamos el botón de refrescar y durante la carga inicial
                        if (refrescarLugaresRelaciones)
                        {
                            RefrescarLugCompVtas_RelacionInsProd();
                        }
                    }
                    else
                    {
                        //Si se quedó la pantalla abierta un largo tiempo y se venció el token, se cierra y refresca el token
                        var paginaAuntenticacion = new PaginaAuntenticacion(true);
                        Navigation.InsertPageBefore(paginaAuntenticacion, this);
                        await Navigation.PopAsync();
                    }
                });
            }
            finally
            {
                IsBusy = false;                 //Remueve el Indicador de Actividad.
            }

            _nombresColumnas = new string[_celdas.ColCount.Count];

            var productos = new List <string[]>();
            var producto  = new string[_celdas.ColCount.Count];

            foreach (CellEntry celda in _celdas.Entries)
            {
                if (celda.Row != 1)
                {
                    if (celda.Column == 1)
                    {
                        producto = new string[_celdas.ColCount.Count];
                    }

                    producto.SetValue(celda.Value, (int)celda.Column - 1);

                    if (celda.Column == _celdas.ColCount.Count)
                    {
                        productos.Add(producto);
                    }
                }
                else
                {
                    _nombresColumnas.SetValue(celda.Value, (int)celda.Column - 1);
                }
            }

            LlenarGrillaDeProductos(productos);
        }
Exemplo n.º 17
0
        private async void CargarListaHojas()
        {
            try
            {
                IsBusy = true;

                await Task.Run(async() =>
                {
                    if (CuentaUsuario.ValidarTokenDeGoogle())
                    {
                        if (_listaHojas == null || _listaHojas.Count == 0)
                        {
                            _listaHojas = new ServiciosGoogle().ObtenerListaHojas(_linkLibro, _servicio);
                        }
                    }
                    else
                    {
                        //Si se quedó la pantalla abierta un largo tiempo y se venció el token, se cierra y refresca el token
                        var paginaAuntenticacion = new PaginaAuntenticacion(true);
                        Navigation.InsertPageBefore(paginaAuntenticacion, this);
                        await Navigation.PopAsync();
                    }
                });
            }
            finally
            {
                IsBusy = false;                 //Remueve el Indicador de Actividad.
            }

            var listaHojas = new List <ClaseHoja>();
            var esTeclaPar = false;

            foreach (var datosHoja in _listaHojas)
            {
                //Sólo lista hojas que contengan la palabra App (es el sufijo que tendrán las hojas para carga de movimientos, las otras son para cálculos y análisis).
                if (!datosHoja.Title.Text.Contains("App"))
                {
                    continue;
                }

                var linkHoja       = datosHoja.Links.FindService(GDataSpreadsheetsNameTable.CellRel, null).HRef.ToString();
                var linkHistoricos = datosHoja.Links.FindService(GDataSpreadsheetsNameTable.ListRel, null).HRef.ToString();
                var estaUsada      = CuentaUsuario.VerificarHojaUsada(linkHoja);            // Tiene que haber sido seleccionada alguna vez.
                var esHistorico    = CuentaUsuario.VerificarHojaHistoricosUsada(linkHistoricos);
                var esPuntosVenta  = CuentaUsuario.VerificarHojaPuntosVentaUsada(linkHoja);
                //Agrega hoja (tecla) para potencial hoja de stock.
                //Si ya está siendo usada le agrega ícono.
                //Si en cambio es hoja de Históricos le pone el ícono correspondiente.
                //Nunca es hoja en uso de stock y de históricos; es una, otra o ninguna.
                var hoja = new ClaseHoja(linkHoja, datosHoja.Title.Text, false, estaUsada, esHistorico, esPuntosVenta, esTeclaPar);
                listaHojas.Add(hoja);
                esTeclaPar = !esTeclaPar;

                if (!estaUsada)
                {
                    continue;
                }
                //Si la hoja está siendo usada, agrega hoja (tecla) para desvincular (con ícono).
                hoja = new ClaseHoja(linkHoja, "Desvincular " + datosHoja.Title.Text, true, false, false, false, esTeclaPar);
                listaHojas.Add(hoja);
                esTeclaPar = !esTeclaPar;
            }

            var vista = new ListView
            {
                RowHeight         = 60,
                VerticalOptions   = LayoutOptions.StartAndExpand,
                HorizontalOptions = LayoutOptions.Fill,
                ItemsSource       = listaHojas,
                ItemTemplate      = new DataTemplate(() =>
                {
                    var nombreHoja = new Label
                    {
                        FontSize          = 18,
                        TextColor         = Color.FromHex("#1D1D1B"),
                        VerticalOptions   = LayoutOptions.CenterAndExpand,
                        HorizontalOptions = LayoutOptions.CenterAndExpand
                    };
                    nombreHoja.SetBinding(Label.TextProperty, "Nombre");

                    var icono = new Image
                    {
                        VerticalOptions   = LayoutOptions.Center,
                        HorizontalOptions = LayoutOptions.End,
                        HeightRequest     = App.AnchoRetratoDePantalla * .09259
                    };
                    icono.SetBinding(Image.SourceProperty, "ArchivoIcono");
                    icono.SetBinding(IsVisibleProperty, "TieneImagen");

                    var tecla = new StackLayout
                    {
                        Padding     = 7,
                        Orientation = StackOrientation.Horizontal,
                        Children    = { nombreHoja, icono }
                    };
                    tecla.SetBinding(BackgroundColorProperty, "ColorFondo");

                    var celda = new ViewCell {
                        View = tecla
                    };

                    celda.Tapped += (sender, args) =>
                    {
                        var hoja = (ClaseHoja)((ViewCell)sender).BindingContext;
                        EnviarPagina(hoja.Link, hoja.Nombre, hoja.Desvincular);
                        celda.View.BackgroundColor = Color.Silver;
                    };

                    return(celda);
                })
            };

            ContenedorHojas.Children.Clear();
            ContenedorHojas.Children.Add(vista);
        }
Exemplo n.º 18
0
        private async Task TareaGuardarCambios()
        {
            foreach (var stackLayout in ContenedorProducto.Children)
            {
                foreach (var control in ((StackLayout)stackLayout).Children)
                {
                    int    columna;
                    string valor;
                    if (control.StyleId != null && control.StyleId.Contains("movimiento-"))
                    {
                        columna = Convert.ToInt32(control.StyleId.Split('-')[1]);
                        valor   = ((Entry)control).Text;
                        valor   = !string.IsNullOrEmpty(valor)
                                                        ? valor.Replace('.', ',')
                                                        : "0"; //Todos los decimales con coma, evita problema de cultura.
                        _cantidades.SetValue(Convert.ToDouble(valor), columna);
                    }

                    if (control.StyleId != null && control.StyleId.Contains("precio-"))
                    {
                        columna = Convert.ToInt32(control.StyleId.Split('-')[1]);
                        valor   = ((Entry)control).Text;
                        valor   = !string.IsNullOrEmpty(valor)
                                                        ? valor.Replace('.', ',')
                                                        : "0"; //Todos los decimales con coma, evita problema de cultura.
                        _precios.SetValue(Convert.ToDouble(valor), columna);
                    }

                    if (_listaLugares != null && control.StyleId != null && control.StyleId.Contains("punto-"))
                    {
                        columna = Convert.ToInt32(control.StyleId.Split('-')[1]);
                        var combo = (Picker)control;
                        valor = combo.SelectedIndex != -1 ? combo.Items[combo.SelectedIndex] : "-";
                        _lugares.SetValue(valor, columna);
                    }

                    if (control.StyleId != null && control.StyleId.Contains("comentario"))
                    {
                        valor       = ((Editor)control).Text;
                        _comentario = valor;
                    }
                }
            }

            ContenedorProducto.Children.Clear();
            ContenedorProducto.Children.Add(_indicadorActividad);

            try
            {
                IsBusy = true;

                await Task.Run(async() =>
                {
                    if (_esGoogle)
                    {
                        if (CuentaUsuario.ValidarTokenDeGoogle())
                        {
                            await GuardarProductoHojaDeCalculoGoogle();
                        }
                        else
                        {
                            //Si se quedó la pantalla abierta un largo tiempo y se venció el token, se cierra y refresca el token
                            var paginaAuntenticacion = new PaginaAuntenticacion(true);
                            Navigation.InsertPageBefore(paginaAuntenticacion, this);
                            await Navigation.PopAsync();
                        }
                    }
                    else
                    {
                        GuardarProductoBaseDeDatos();
                    }
                });
            }
            finally
            {
                IsBusy = false;                 //Remueve el Indicador de Actividad.
            }
        }
        private void ConectarGoogle(object sender, EventArgs args)
        {
            var paginaAuntenticacion = new PaginaAuntenticacion();

            Navigation.PushAsync(paginaAuntenticacion, true);
        }