private List <string[]> ObtenerListado(ServiciosGoogle servicioGoogle, string linkHoja)
        {
            var celdas = servicioGoogle.ObtenerCeldasDeUnaHoja(linkHoja, _servicio);

            var listado = new List <string[]>();
            var item    = new string[celdas.ColCount.Count];

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

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

                    if (celda.Column == celdas.ColCount.Count)
                    {
                        listado.Add(item);
                    }
                }
            }
            return(listado);
        }
        public EstadisticasProducto(string[] producto, SpreadsheetsService servicio)
        {
            InitializeComponent();
            _servicio       = servicio;
            _servicioGoogle = new ServiciosGoogle();
            _productoString = producto;

            InicializarValoresGenerales();
            ObtenerDatosConstruirGrafica();
        }
        public ProductoMovimientos(string[] producto, SpreadsheetsService servicio)
        {
            InitializeComponent();
            _servicio       = servicio;
            _servicioGoogle = new ServiciosGoogle();
            _productoString = producto;

            InicializarValoresGenerales();
            ObtenerDatosMovimientosDesdeHCG();
        }
Beispiel #4
0
        // Constructor para Hoja de cálculo de Google
        public PedidosGrilla(SpreadsheetsService servicio)
        {
            InitializeComponent();

            _servicioGoogle = new ServiciosGoogle();
            // El servicio viene nulo cuando se llama directamente desde el lanzador (ya tiene conexión a datos configurada)
            _servicio = servicio ?? _servicioGoogle.ObtenerServicioParaConsultaGoogleSpreadsheets(CuentaUsuario.ObtenerTokenActualDeGoogle());

            InicializarValoresGenerales();
            // La carga de los pedidos se realiza en el OnAppearing
        }
Beispiel #5
0
        static void Main(string[] args)
        {
            //Calendario Calendario = new Calendario();
            //Calendario.ObtenerEventos();
            ServiciosGoogle calendario = new ServiciosGoogle();
            Evento          evento     = new Evento()
            {
                Nombre = "Evento Prueba", Contenido = "EventoContenido", Inicio = DateTime.Parse("03/04/2014 13:00:00"), Fin = DateTime.Parse("03/04/2014 14:00:00")
            };
            List <Evento> Eventos = calendario.GetEvents("*****@*****.**", "lnmagb");
            //bool ret = calendario.NuevoEvento(evento, "*****@*****.**", "lnmagb");

            //bool ret2 = calendario.BorrarEvento(evento.ID, "*****@*****.**", "lnmagb");
        }
Beispiel #6
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.";
        }
        private void GuardarProductoHojaDeCalculoGoogle()
        {
            _mensaje = "Ha ocurrido un error mientras se guardaba el movimiento.";
            var servicioGoogle = new ServiciosGoogle();
            var grabo          = false;

            for (uint columnaCelda = 0; columnaCelda < _productoString.Length; columnaCelda++)
            {
                if (_listaColumnasInventario[columnaCelda] == "1")
                {
                    var multiplicador = _signoPositivo[columnaCelda] ? 1 : -1;
                    var cantidad      = _cantidades[columnaCelda];
                    var precio        = _precios[columnaCelda];
                    var lugar         = _listaLugares != null ? _lugares[columnaCelda] : "No tiene configurado.";

                    if (cantidad != 0)
                    {
                        // 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,
                            columnaCelda,
                            multiplicador * cantidad,
                            precio,
                            lugar,
                            _comentario,
                            _productoString,
                            _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, _productoString);
                        }

                        grabo = true;
                    }
                }
            }
            _mensaje = grabo ? "El movimiento ha sido guardado correctamente." : "No se han registrado movimientos.";
        }
        public ListaLibrosGoogle(string tokenDeAcceso)
        {
            InitializeComponent();
            SombraEncabezado.Source = ImageSource.FromResource(App.RutaImagenSombraEncabezado);

            _servicioGoogle = new ServiciosGoogle();
            _servicio       = _servicioGoogle.ObtenerServicioParaConsultaGoogleSpreadsheets(tokenDeAcceso);

            _indicadorActividad = new ActivityIndicator
            {
                VerticalOptions = LayoutOptions.CenterAndExpand,
                IsEnabled       = true,
                BindingContext  = this
            };
            _indicadorActividad.SetBinding(IsVisibleProperty, "IsBusy");
            _indicadorActividad.SetBinding(ActivityIndicator.IsRunningProperty, "IsBusy");
        }
Beispiel #9
0
        private void AlmacnarColumnasProducto(string linkHoja)
        {
            var columnasProducto = new List <string>();
            var celdas           = new ServiciosGoogle().ObtenerCeldasDeUnaHoja(linkHoja, _servicio);

            foreach (CellEntry celda in celdas.Entries)
            {
                if (celda.Row == 1)
                {
                    columnasProducto.Add(celda.Value);
                }
                else
                {
                    break;
                }
            }
            CuentaUsuario.AlmacenarColumnasProducto(string.Join(",", columnasProducto));
        }
        public ProductoMovimientos(IReadOnlyCollection <CellEntry> producto, SpreadsheetsService servicio)
        {
            InitializeComponent();
            _servicio       = servicio;
            _servicioGoogle = new ServiciosGoogle();

            //Almacenar el arreglo de strings para cargar el producto en pantalla
            _productoString = new string[producto.Count];
            var i = 0;

            foreach (var celda in producto)
            {
                _productoString.SetValue(celda.InputValue, i);
                i = i + 1;
            }

            InicializarValoresGenerales();
            ObtenerDatosMovimientosDesdeHCG();
        }
        public NuevoPedido(SpreadsheetsService servicio, List <Clases.Pedido> listaPedidos)
        {
            InitializeComponent();
            _servicioGoogle = new ServiciosGoogle();
            _servicio       = servicio;
            ObtenerDatosClientesDesdeHCG();
            _listaProducto = new ObservableCollection <DetallePedido>();
            _listaPedidos  = listaPedidos;

            _indicadorActividad = new ActivityIndicator
            {
                VerticalOptions = LayoutOptions.CenterAndExpand,
                IsEnabled       = true,
                BindingContext  = this
            };
            _indicadorActividad.SetBinding(IsVisibleProperty, "IsBusy");
            _indicadorActividad.SetBinding(ActivityIndicator.IsRunningProperty, "IsBusy");
            ContenedorPedido.Children.Add(_indicadorActividad);
        }
        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.";
        }
        private void AlmacenarColumnasVerEInventario(string linkHoja)
        {
            var columnasProducto = new List <string>();
            var celdas           = new ServiciosGoogle().ObtenerCeldasDeUnaHoja(linkHoja, _servicio);

            foreach (CellEntry celda in celdas.Entries)
            {
                if (celda.Row == 1)
                {
                    columnasProducto.Add(celda.Value);
                }
                else
                {
                    break;
                }
            }

            // Almacena el arreglo de visibilidad de columnas
            var listaColumnas = Enumerable.Repeat(1, columnasProducto.Count).ToArray();

            // La columna Código no se muestra en PaginaGrilla
            listaColumnas.SetValue(0, 0);
            CuentaUsuario.AlmacenarColumnasParaVerDeHoja(linkHoja, string.Join(",", listaColumnas));

            // Almacena el arreglo de columnas de inventario
            listaColumnas = Enumerable.Repeat(0, columnasProducto.Count).ToArray();
            // Solo se indican como columnas de inventario las que comienzan con la palabra Stock, exceptuando "Stock bajo"
            for (var i = 0; i < columnasProducto.Count; i++)
            {
                var nombreColumna = columnasProducto[i].Trim().ToLower();
                if (nombreColumna != "stock bajo" && (nombreColumna.Contains("stock") || nombreColumna == "total"))
                {
                    listaColumnas.SetValue(1, i);
                }
            }
            CuentaUsuario.AlmacenarColumnasInventarioDeHoja(linkHoja, string.Join(",", listaColumnas));
        }
        private void ActualizarInventario()
        {
            var servicioGoogle            = new ServiciosGoogle();
            var columnasProductos         = CuentaUsuario.ObtenerColumnasProductos()?.Split(',');
            var linkHojaProducto          = CuentaUsuario.ObtenerLinkHojaPorNombre("Productos App");
            var linkHojaProductoHistorico = CuentaUsuario.ObtenerLinkHojaHistoricosParaLinkHoja(linkHojaProducto);

            var    productos  = ObtenerListado(servicioGoogle, linkHojaProducto);
            string comentario = "Pedido " + _pedido.Id + " a " + _pedido.Cliente + ". " + _pedido.Comentario;

            foreach (var lineaDetalle in _pedido.Detalle)
            {
                var producto = new string[columnasProductos.Length];
                // Buscar datos producto
                foreach (var prod in productos)
                {
                    if (prod[0] == lineaDetalle.IdProducto)
                    {
                        producto = prod;
                        break;
                    }
                }

                servicioGoogle.EnviarMovimiento(
                    _servicio,
                    lineaDetalle.ColumnaStockElegido,
                    -1 * Convert.ToDouble(lineaDetalle.Cantidad.Replace(',', '.')),
                    Convert.ToDouble(lineaDetalle.Precio.Replace(',', '.')),
                    _pedido.Lugar,
                    comentario,
                    producto,
                    columnasProductos,
                    _listaColumnasInventario,
                    linkHojaProductoHistorico
                    );
            }
        }