Exemple #1
0
        public async void OnDelete(object sender, EventArgs e)
        {
            var      mi  = ((Xamarin.Forms.MenuItem)sender);
            TipoPago del = (mi.CommandParameter as TipoPago);

            if (del.idtipo == 2)
            {
                bool ret = await DisplayAlert("Confirme", "¿Desea eliminar esta tarjeta?", "Si", "No");

                if (ret)
                {
                    tvm.TarjetaBaja += async(s, ea) =>
                    {
                        //Device.BeginInvokeOnMainThread(async () =>
                        //{
                        UserDialogs.Instance.HideLoading();
                        if (ea.Error != null || ea.Cancelled)
                        {
                            await DisplayAlert("Error", "Ocurrio un error, vuelva a intentar", "OK");
                        }
                        //});
                    };
                    UserDialogs.Instance.ShowLoading("Eliminando...");
                    tvm.Baja(del.extra);
                }
            }
        }
        private void MuestraOpcionesPago(bool showinfo)
        {
            MuestraLV(Listas.pagos);
            if (showinfo)
            {
#if __IOS__
                Version ver = new Version(UIKit.UIDevice.CurrentDevice.SystemVersion);
                if (ver.Major <= 8)
                {
                    notif.Notify(ToastNotificationType.Info, "4- Forma de pago", "Selecciona el tipo de pago que quieras usar, puedes usar el saldo de tu monedero o alguna tarjeta. Tambien puedes dar de alta nuevas tarjetas", TimeSpan.FromSeconds(5));
                }
                else
                {
                    var page = new InfoRecargar("4- Forma de pago", "Selecciona el tipo de pago que quieras usar, puedes usar el saldo de tu monedero o alguna tarjeta. Tambien puedes dar de alta nuevas tarjetas");
                    Navigation.PushPopupAsync(page);
                }
#else
                var page = new InfoRecargar("4- Forma de pago", "Selecciona el tipo de pago que quieras usar, puedes usar el saldo de tu monedero o alguna tarjeta. Tambien puedes dar de alta nuevas tarjetas");
                Navigation.PushPopupAsync(page);
#endif
            }
            grptipos  = new ObservableCollection <Grupo>();
            gMonedero = new Grupo("Tu monedero", 1, lm);
            gTarjetas = new Grupo("Tus tarjetas", 2, lt);
            grptipos.Add(gMonedero);
            grptipos.Add(gTarjetas);
            lvRegPagos.BeginRefresh();
            lvRegPagos.ItemsSource = null;
            lvRegPagos.ItemsSource = grptipos;
            lvRegPagos.EndRefresh();
            lvRegPagos.ItemSelected += (sender, e) =>
            {
                if (e.SelectedItem == null)
                {
                    return;
                }
                notif.HideAll();
                TipoPago tp = (e.SelectedItem as TipoPago);
                //btnPago.Text = (tp.idtipo == 1 ? "Monedero" : "Tarjeta") + " - ";
                btnPago.Text   = (tp.idtipo == 1 ? "Saldo: " + tp.saldo.ToString("c") : tp.tipo);
                btnPago.Source = (tp.idtipo == 1 ? "wallet.png" : tp.imgtipo);
                paso           = (PasosRecarga)(((int)paso) + 1);
                if (paso == PasosRecarga.Recarga)
                {
                    MuestraLV(Listas.listo);
                }
                ((ListView)sender).SelectedItem = null;
            };
        }
Exemple #3
0
        public RegPago(RecargasViewModel _r = null)
        {
            try
            {
                InitializeComponent();
                App.db.IniciaMonedero();

                montomax = App.WSc.GetMontoMax();

                Title               = "Medios de pago";
                rvm                 = _r;
                tvm                 = new TarjetasViewModel();
                tvm.idpais          = rvm.idpais;
                this.BindingContext = tvm;
                NavigationPage.SetBackButtonTitle(this, "");
                ToolbarItems.Add(new ToolbarItem("Ayuda", "ayuda2.png", () =>
                {
                    var page = new InfoAyuda("mediosdepago.html");
                    Navigation.PushPopupAsync(page);
                }));

                grptipos  = new ObservableCollection <Grupo>();
                gMonedero = new Grupo("Tu monedero", 1, tvm.lm);
                gTarjetas = new Grupo("Tus tarjetas", 2, tvm.lt);
                if (rvm.Tiporecarga == TipoRecarga.RecargaTA)
                {
                    slMonedero.IsVisible = false;
                    grptipos.Add(gMonedero);
                }
                if (rvm.Tiporecarga == TipoRecarga.Monedero)
                {
                    slMonedero.IsVisible = true;
                    lblSaldo.Text        = "Saldo: " + tvm.lm[0].saldo.ToString("c", new System.Globalization.CultureInfo("es-MX"));
                }
                grptipos.Add(gTarjetas);

                lvRegPagos.ItemSelected += async(sender, e) =>
                {
                    if (e.SelectedItem == null)
                    {
                        return;
                    }
                    if (rvm.EdicionOnly) //no se recarga, son programadas solo se modifica
                    {
                        TipoPago tp = (e.SelectedItem as TipoPago);
                        rvm.idFormaPago = tp.idtipo;
                        rvm.TipoTrans   = TipoTransaccion.SegundaVez;
                        if (tp.idtipo == 1) //monedero
                        {
                            rvm.IdTarjeta = -1;
                        }
                        else
                        {
                            rvm.IdTarjeta = tp.extra;
                        }
                        await App.Nav.PushAsync(new Programar(rvm));
                    }
                    else
                    {
                        if (!rvm.ReadOnly)//mis tarjetas
                        {
                            if (rvm.Tiporecarga == TipoRecarga.Monedero)
                            {
                                if (phvalNum.IsValid && phvalNum.Valor > 0M)
                                {
                                    if (phvalNum.Valor > montomax)
                                    {
                                        await DisplayAlert("Error", "Solamente le es permitido agregar " + montomax.ToString("c", new System.Globalization.CultureInfo("es-MX")) + " por cada evento", "OK");

                                        ((ListView)sender).SelectedItem = null;
                                        return;
                                    }
                                    else
                                    {
                                        rvm.MontoRecargaMonedero = phvalNum.Valor;
                                    }
                                }
                                else
                                {
                                    await DisplayAlert("Error", "Para seleccionar una tarjeta tiene que capturar el monto a comprar", "OK");

                                    ((ListView)sender).SelectedItem = null;
                                    return;
                                    //((ListView)sender).SelectedItem = null;
                                }
                            }
                            TipoPago tp = (e.SelectedItem as TipoPago);
                            rvm.idFormaPago = tp.idtipo;
                            rvm.TipoTrans   = TipoTransaccion.SegundaVez;
                            if (tp.idtipo == 1)                             //monedero
                            {
                                if (rvm.LsPaquetes(rvm.idoperadora).Where(x => x.idpaquete == rvm.idpaquete).FirstOrDefault().monto > App.db.SelSaldo().saldo)
                                {
                                    await DisplayAlert("Error", "No tiene suficiente saldo", "Ok");

                                    ((ListView)sender).SelectedItem = null;
                                    return;
                                }
                                else
                                {
                                    rvm.IdTarjeta = -1;
                                }
                            }
                            else
                            {
                                rvm.IdTarjeta = tp.extra;
                            }
                            Procesar pro = App.Nav.NavigationStack.OfType <Procesar>().FirstOrDefault();
                            if (pro == null)
                            {
                                await App.Nav.PushAsync(new Procesar(rvm, tvm, TipoTransaccion.SegundaVez), Constantes.animated);
                            }
                            else
                            {
                                pro.Refresh(rvm, tvm, TipoTransaccion.SegundaVez);
                                await App.Nav.PopAsync(Constantes.animated);
                            }
                        }
                    }
                    ((ListView)sender).SelectedItem = null;
                };

                tvm.NuevaTarjeta += (s, e) =>
                {
                    if (rvm.Tiporecarga == TipoRecarga.Monedero)
                    {
                        gTarjetas   = grptipos[0];
                        gTarjetas   = new Grupo("Tus tarjetas", 2, e.lista);
                        grptipos[0] = gTarjetas;
                    }
                    if (rvm.Tiporecarga == TipoRecarga.RecargaTA)
                    {
                        gTarjetas   = grptipos[1];
                        gTarjetas   = new Grupo("Tus tarjetas", 2, e.lista);
                        grptipos[1] = gTarjetas;
                    }
                    lvRegPagos.BeginRefresh();
                    lvRegPagos.ItemsSource = null;
                    lvRegPagos.ItemsSource = grptipos;
                    lvRegPagos.EndRefresh();
                    if (rvm.Tiporecarga == TipoRecarga.RecargaTA)
                    {
                        if ((grptipos[0].FirstOrDefault().saldo == 0M) && (grptipos[1].Count() == 0))
                        {
                            slMonedero.IsVisible  = false;
                            lvRegPagos.IsVisible  = false;
                            svMsgNoTarj.IsVisible = true;
                        }
                        else
                        {
                            slMonedero.IsVisible  = false;
                            lvRegPagos.IsVisible  = true;
                            svMsgNoTarj.IsVisible = false;
                        }
                    }
                    if (rvm.Tiporecarga == TipoRecarga.Monedero)
                    {
                        //if (grptipos[0].Count() == 0)
                        //{
                        //	slMonedero.IsVisible = false;
                        //	lvRegPagos.IsVisible = false;
                        //	svMsgNoTarj.IsVisible = true;
                        //}
                        //else
                        //{
                        slMonedero.IsVisible  = true;
                        lvRegPagos.IsVisible  = true;
                        svMsgNoTarj.IsVisible = false;
                        //}
                    }
                };

                btnNuevo.Clicked += async(sender, ea) =>
                {
                    if (rvm.Tiporecarga == TipoRecarga.Monedero)
                    {
                        if (phvalNum.IsValid && phvalNum.Valor > 0M)
                        {
                            if (phvalNum.Valor > montomax)
                            {
                                await DisplayAlert("Error", "Solamente le es permitido agregar " + montomax.ToString("c", new System.Globalization.CultureInfo("es-MX")) + " por cada evento", "OK");
                            }
                            else
                            {
                                rvm.MontoRecargaMonedero = phvalNum.Valor;
                                await App.Nav.PushAsync(new NuevaTarjeta(TipoAnadidor.RegistroPago, tvm, rvm), Constantes.animated);
                            }
                        }
                        else
                        {
                            await DisplayAlert("Error", "Para agregar una nueva tarjeta tiene que capturar el monto a comprar", "OK");
                        }
                    }
                    if (rvm.Tiporecarga == TipoRecarga.RecargaTA)
                    {
                        await App.Nav.PushAsync(new NuevaTarjeta(TipoAnadidor.RegistroPago, tvm, rvm), Constantes.animated);
                    }
                };

                if (rvm.Tiporecarga == TipoRecarga.RecargaTA)
                {
                    if ((grptipos[0].FirstOrDefault().saldo == 0M) && (grptipos[1].Count() == 0))
                    {
                        slMonedero.IsVisible  = false;
                        lvRegPagos.IsVisible  = false;
                        svMsgNoTarj.IsVisible = true;
                    }
                    else
                    {
                        slMonedero.IsVisible  = false;
                        lvRegPagos.IsVisible  = true;
                        svMsgNoTarj.IsVisible = false;
                    }
                }
                if (rvm.Tiporecarga == TipoRecarga.Monedero)
                {
                    //if (grptipos[0].Count() == 0)
                    //{
                    //    slMonedero.IsVisible = false;
                    //    lvRegPagos.IsVisible = false;
                    //    svMsgNoTarj.IsVisible = true;
                    //}
                    //else
                    //{
                    slMonedero.IsVisible  = true;
                    lvRegPagos.IsVisible  = true;
                    svMsgNoTarj.IsVisible = false;
                    //}
                }
            }
            catch (Exception e)
            {
            }
        }