private async void btnCajear_Clicked(object sender, EventArgs e)
        {
            if (TSSalesFunctions.IsNoExistVenta())
            {
                await DisplayAlert("Aviso", "Ingrese una venta para continuar...", "Aceptar");

                return;
            }
            if (String.IsNullOrEmpty(TSCustomerApp.ClientOuput.tarjafiliacion))
            {
                await DisplayAlert("Aviso", "Debe buscar una tarjeta de afiliación para continuar...", "Aceptar");

                return;
            }
            if (TSSalesApp.vUsuarioActual.flganular == false)
            {
                var Respuesta = await DisplayAlert("Aviso", "Usted no posee permisos suficientes para realizar canjes.\nDebe iniciar sesión", "Iniciar Sesión", "Salir");

                if (Respuesta)
                {
                    LoginPopUp Vista = new LoginPopUp();
                    Vista.LoginResponseEvent += Vista_LoginResponse;
                    await PopupNavigation.Instance.PushAsync(Vista);
                }
                return;
            }

            ((SfButton)sender).IsEnabled = false;
            await Navigation.PushAsync(new CanjeCompleted());

            ((SfButton)sender).IsEnabled = true;
        }
 private void PrintTotales()
 {
     TSSalesFunctions.PreCalculaTotales();
     listView.ItemsSource  = TSSalesApp.Detalles;
     this.txtSubTotal.Text = TSSalesApp.vCabecera.mtosubtotal.ToString();
     this.txtTotal.Text    = TSSalesApp.vCabecera.mtototal.ToString();
     this.txtIGV.Text      = TSSalesApp.vCabecera.mtoimpuesto.ToString();
 }
 private void Delete()
 {
     if (itemIndex != null)
     {
         TSSalesApp.Detalles.Remove(itemIndex);
         TSSalesApp.DetallesDisplay.Remove(itemIndex);
         PrintTotales();
     }
     if (!TSSalesFunctions.IsExistCombustible())
     {
         btnCaraContext.IsBusy = true;
     }
     ;
     this.listView.ResetSwipe();
 }
        private async void BtnSerafin_OnClicked(object sender, EventArgs e)
        {
            if (TSSalesFunctions.IsNoExistVenta())
            {
                await DisplayAlert("Aviso", "Ingrese una venta para continuar...", "Aceptar");

                return;
            }
            if (TSSalesFunctions.IsCombustible())
            {
                App.Current.MainPage = new NavigationPage(new SerafinCompleted());
            }
            else
            {
                await DisplayAlert("Aviso", "Operación no permitida, elija nuevos articulos", "Aceptar");

                return;
            };
        }
        private async void CboCaras_OnSelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            if (e.Value != null)
            {
                var caras = (TS_BECara)e.Value;
                TSSalesApp.Cara = caras.cara;

                if (TSSalesFunctions.IsExistCombustible())
                {
                    await DisplayAlert("Aviso", "Ud. ya  realizó esta operación, puede continuar con la venta.", "Aceptar");

                    return;
                }
                ;
                this.txtNroCara.Text    = "CARA No " + caras.cara.ToString();
                busyindicator.IsVisible = true;
                SalesEstado resultado = SalesEstado.ErrorSistema;
                await Task.Run(() =>
                {
                    TSSalesApp.SalesDetalle += _SalesDetalle;
                    resultado = TSSalesApp.ObtenerOpTransaccion().Result;
                });

                if (resultado != SalesEstado.EsperandoRespuesta)
                {
                    busyindicator.IsVisible = false;
                    switch (resultado)
                    {
                    case SalesEstado.ErrorInternet:
                        await DisplayAlert("Aviso", "Su dispositivo no cuenta con internet en estos momentos.", "Aceptar");

                        break;

                    case SalesEstado.ErrorSistema:
                        await DisplayAlert("Aviso", "Hubo un problema de comunicación con el servidor, por favor intente después.", "Aceptar");

                        break;
                    }
                }
            }
        }
        private async void BtnPagos_OnClicked(object sender, EventArgs e)
        {
            if (TSSalesFunctions.IsNoExistVenta())
            {
                await DisplayAlert("Aviso", "Ingrese una venta para continuar...", "Aceptar");

                return;
            }
            if (TSSalesApp.Detalles.Count > 0)
            {
                if (TSCustomerApp.ClientOuput.Saldos != null)
                {
                    if (TSCustomerApp.ClientOuput.mtodisponible >= 0)
                    {
                        var action = await DisplayAlert("Aviso", "¿Desea realizar una venta al crédito?", "Si", "No");

                        if (action)
                        {
                            await Navigation.PushAsync(new CreditoCompleted());
                        }
                        else
                        {
                            return;
                        }
                    }
                    else
                    {
                        await Navigation.PushAsync(new PaymentStart());
                    }
                }
                else
                {
                    await Navigation.PushAsync(new PaymentStart());
                }
            }
            else
            {
                await DisplayAlert("Aviso", "No existe ventas, por favor ingrese alguna venta.", "Aceptar");
            }
        }
        private async void BtnEfectivo_OnClicked(object sender, EventArgs e)
        {
            if (TSSalesFunctions.IsNoExistVenta())
            {
                await DisplayAlert("Aviso", "Ingrese una venta para continuar...", "Aceptar");

                return;
            }
            if (TSSalesApp.Detalles.Count > 0)
            {
                if (TSCustomerApp.ClientOuput.Saldos != null)
                {
                    await DisplayAlert("Aviso", "No se pueden procesar ventas de credito en este modulo..", "Aceptar");

                    return;
                }
                if (TSCustomerApp.ClientOuput.Saldos == null)
                {
                    await Navigation.PushAsync(new EfectivoVisaCompleted());
                }
            }
        }
        private async void BtnTarjeta_OnClicked(object sender, EventArgs e)
        {
            if (TSSalesFunctions.IsNoExistVenta())
            {
                await DisplayAlert("Aviso", "Ingrese una venta para continuar...", "Aceptar");

                return;
            }
            if (TSSalesApp.Detalles.Count > 0)
            {
                if (TSCustomerApp.ClientOuput.Saldos != null)
                {
                    await DisplayAlert("Aviso", "No se pueden procesar ventas de credito en este modulo..", "Aceptar");

                    return;
                }
                if (TSCustomerApp.ClientOuput.Saldos == null)
                {
                    VisaPopUpCompleted Vista = new VisaPopUpCompleted();
                    Vista.OnResponse += Vista_OnResponse;
                    await PopupNavigation.Instance.PushAsync(Vista);
                }
            }
        }
        private async void SegControlCara_SelectionChanged(object sender, EventArgs e)
        {
            // segmentedControlCara.IsEnabled = false;
            string cara = "";

            SfButton       sfButton    = (SfButton)sender;
            StackLayout    stackLayout = (StackLayout)sfButton.Content;
            AbsoluteLayout view        = (AbsoluteLayout)stackLayout.Children[0];

            foreach (View i in (view).Children.Where(x => x.GetType() == typeof(Label)))
            {
                cara = ((Label)i).Text;
            }
            TSSalesApp.Cara = cara;


            if (TSSalesFunctions.IsExistCombustible())
            {
                await DisplayAlert("Aviso", "Ud. ya  realizó esta operación, puede continuar con la venta.", "Aceptar");

                return;
            }
            ;


            if (Convert.ToBoolean(TSSalesApp.vParemetros.conexiondispensador ?? false) == false || Convert.ToBoolean(TSSalesApp.vTerminal.conexion_dispensador ?? 0) == false)
            {
                SearchCombustible Vista = new SearchCombustible();
                Vista.Cara       = cara;
                Vista.SaveEvent += OnSaveEvent;
                await Navigation.PushAsync(Vista);

                return;
            }

            btnCaraContext.IsBusy    = false;
            this.txtNroCara.Text     = "CARA No " + cara.ToString();
            this.listaProductos.Text = "Lista de Productos .::CARA " + cara.ToString() + "::.";
            busyindicator.IsVisible  = true;
            SalesEstado resultado = SalesEstado.ErrorSistema;
            await Task.Run(() =>
            {
                TSSalesApp.SalesDetalle += _SalesDetalle;
                resultado = TSSalesApp.ObtenerOpTransaccion().Result;
            });

            if (resultado != SalesEstado.EsperandoRespuesta)
            {
                busyindicator.IsVisible = false;
                switch (resultado)
                {
                case SalesEstado.ErrorInternet:
                    await DisplayAlert("Aviso", "Su dispositivo no cuenta con internet en estos momentos.", "Aceptar");

                    break;

                case SalesEstado.ErrorSistema:
                    await DisplayAlert("Aviso", "Hubo un problema de comunicación con el servidor, por favor intente después.", "Aceptar");

                    break;
                }
            }
            ResetSfSegmentedSelectedCaras();
        }