protected async override void OnAppearing()
        {
            base.OnAppearing();
            if (Cargado)
            {
                return;
            }
            Cargado = true;
            IndicadorDeCarga.IsVisible = false;
            var flag = TSSalesApp.vParemetros.flg_pideplacatb ?? false;

            if (TSCustomerApp.TipoComprobante.Nombre == TSSalesInput.Factura().Nombre || flag)
            {
                if (string.IsNullOrEmpty(TSSalesApp.vCabecera.nroplaca))
                {
                    await RegexExpresion.SolicitarPlaca(this.Navigation);

                    if (string.IsNullOrEmpty(TSSalesApp.vCabecera.nroplaca) || string.IsNullOrEmpty(TSSalesApp.vCabecera.odometro))
                    {
                        await Navigation.PopAsync();

                        return;
                    }
                }
            }

            List <TS_BEPagoInput> cPago = ObtenerPago();

            TSSalesApp.cPagoInput      = new TS_BEPagoInput[] { };
            TSSalesApp.cPagoInput      = cPago.ToArray();
            TSSalesApp.TipoVenta       = "";
            IndicadorDeCarga.IsVisible = true;
            SalesEstado resultado = SalesEstado.ErrorSistema;
            await Task.Run(delegate
            {
                TSSalesApp.SalesGrabarVenta += _SalesGrabarVenta;;
                resultado = TSSalesApp.GrabarVenta(false, false, false).Result;
            });

            if (resultado != SalesEstado.EsperandoRespuesta)
            {
                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 BtnSaveEfectivo_Clicked(object sender, EventArgs e)
        {
            if (IsEvent)
            {
                List <TS_BEPagoInput> cPagos = ObtenerPago();
                if (cPagos.Count == 0)
                {
                    await DisplayAlert("Aviso", "Debe seleccionar al menos un pago", "Aceptar");

                    return;
                }
                List <TerminalSIGES.Models.Pago> pagos = new List <TerminalSIGES.Models.Pago>();

                foreach (TS_BEPagoInput item in cPagos)
                {
                    pagos.Add(new TerminalSIGES.Models.Pago()
                    {
                        Codigo     = item.cdtppago,
                        Tipo       = item.cdtppago,
                        Referencia = item.nrotarjeta,
                        Soles      = Convert.ToDecimal(item.mtopagosol),
                        Dolares    = Convert.ToDecimal(item.mtopagodol)
                    });
                }

                OnReponse(pagos);
                await Navigation.PopAsync();

                return;
            }

            CalcularTotales();
            var flag = TSSalesApp.vParemetros.flg_pideplacatb ?? false;

            if (TSCustomerApp.TipoComprobante.Nombre == TSSalesInput.Factura().Nombre || flag)
            {
                flagPlaca = true;
                string result = await RegexExpresion.SolicitarPlaca(this.Navigation);

                if (string.IsNullOrEmpty(TSSalesApp.vCabecera.nroplaca) || string.IsNullOrEmpty(TSSalesApp.vCabecera.odometro))
                {
                    await DisplayAlert("Aviso", "Ingrese placa y odómetro", "ok");

                    return;
                }
            }

            List <TS_BEPagoInput> cPago = ObtenerPago();

            TSSalesApp.cPagoInput = new TS_BEPagoInput[] { };

            if (cPago == null)
            {
                //await DisplayAlert("Aviso", "Por favor, ingresar el monto pagado", "Aceptar");
                return;
            }
            TSSalesApp.cPagoInput = cPago.ToArray();
            if (cPago.Count <= 0)
            {
                await DisplayAlert("Aviso", "Por favor, ingresar el monto pagado", "Aceptar");

                return;
            }
            if (TSSalesApp.vCabecera.mtototal > TSSalesApp.vCabecera.mtorecaudo)
            {
                await DisplayAlert("Aviso", "Por favor, falta completar el monto a pagar", "Aceptar");

                return;
            }

            TSSalesApp.TipoVenta    = "";
            busyindicator.IsVisible = true;
            ToolBarItems(false);
            SalesEstado resultado = SalesEstado.ErrorSistema;
            await Task.Run(() =>
            {
                TSSalesApp.SalesGrabarVenta += _SalesGrabarVenta;;
                resultado = TSSalesApp.GrabarVenta(Convert.ToBoolean(this.ConIgv.IsChecked ?? false), false, false).Result;
            });

            if (resultado != SalesEstado.EsperandoRespuesta)
            {
                busyindicator.IsVisible = false;
                ToolBarItems(true);
                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;
                }
            }
        }