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.";
        }
Beispiel #2
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 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
                    );
            }
        }