Ejemplo n.º 1
0
 private void CargaLabels()
 {
     if (rvm.Tiporecarga == TipoRecarga.RecargaTA)
     {
         grdRecarga.IsVisible  = true;
         grdMonedero.IsVisible = false;
         lblPais.Text          = rvm.lsPais().Where(x => x.idpais == rvm.idpais).FirstOrDefault().pais;
         lblOperadora.Text     = rvm.LsOperadoras(rvm.idpais).Where(x => x.idoperadora == rvm.idoperadora).FirstOrDefault().operadora;
         string formatted = new StringBuilder(12).Append(rvm.NumeroRecarga, 0, 2).Append(" ").Append(rvm.NumeroRecarga, 2, 4).Append(' ').Append(rvm.NumeroRecarga, 6, 4).ToString();
         lblNumero.Text    = formatted + (!String.IsNullOrEmpty(rvm.ContactoRecarga) ? " (" + rvm.ContactoRecarga + ")" : "");
         lblMonto.Text     = rvm.LsPaquetes(rvm.idoperadora).Where(x => x.idpaquete == rvm.idpaquete).FirstOrDefault().monto.ToString("c", new System.Globalization.CultureInfo("es-MX"));
         lblFormapago.Text = (rvm.idFormaPago == 1 ? "Monedero" : "Tarjeta");
     }
     if (rvm.Tiporecarga == TipoRecarga.Monedero)
     {
         grdRecarga.IsVisible  = false;
         grdMonedero.IsVisible = true;
         lblMontoMon.Text      = rvm.MontoRecargaMonedero.ToString("c", new System.Globalization.CultureInfo("es-MX"));
         lblRecargaMon.Text    = "Recarga de monedero";
         lblFormapagoMon.Text  = (rvm.idFormaPago == 1 ? "Monedero" : "Tarjeta");
     }
     if (rvm.idFormaPago == 2)
     {
         string tipo = "";
         if (rvm.TipoTrans == TipoTransaccion.PrimeraVez)
         {
             catEmisorTC em = rvm.LsEmisores().Where(x => x.idemisor == tvm.idemisor).FirstOrDefault();
             tipo = (em != null ? em.emisor + " " : "") + tvm.NumeroTarjeta.Substring(tvm.NumeroTarjeta.Length - 4, 4);
         }
         else
         {
             Tarjeta     t  = App.db.SelTarjetas().Where(x => x.idtarjeta == rvm.IdTarjeta).FirstOrDefault();
             catEmisorTC em = rvm.LsEmisores().Where(x => x.idemisor == t.idemisor).FirstOrDefault();
             tipo = (em != null ? em.emisor + " " : "") + t.Last4;
         }
         if (rvm.Tiporecarga == TipoRecarga.RecargaTA)
         {
             lblEmisor.Text      = tipo;
             lblEmisor.IsVisible = true;
         }
         if (rvm.Tiporecarga == TipoRecarga.Monedero)
         {
             lblEmisorMon.Text      = tipo;
             lblEmisorMon.IsVisible = true;
         }
     }
     else
     {
         lblEmisor.IsVisible = false;
     }
 }
Ejemplo n.º 2
0
        public Ticket(RecargasViewModel r)
        {
            InitializeComponent();
            rvm   = r;
            Title = "Ticket";

            if (rvm.Tiporecarga == TipoRecarga.RecargaTA)
            {
                lblTrans.Text        = "TRANSACCION " + rvm.Err.tresp.transaction_id;
                lblFecha.Text        = "FECHA " + DateTime.Now.ToString("dd/MMM/yyyy");
                lblCarrier.Text      = rvm.LsOperadoras(rvm.idpais).Where(x => x.idoperadora == rvm.idoperadora).FirstOrDefault().operadora;
                lblMonto.Text        = "MONTO: " + rvm.LsPaquetes().Where(x => x.idpaquete == rvm.idpaquete).FirstOrDefault().monto.ToString("c", new System.Globalization.CultureInfo("es-MX"));
                lblCel.Text          = "celular: " + rvm.NumeroRecarga;
                lblAutorizacion.Text = "AUTORIZACION: " + rvm.Err.tresp.op_authorization;
                lblPrintdata.Text    = rvm.Err.tresp.printDatam_data;

                lblCarrier.IsVisible   = true;
                lblCel.IsVisible       = true;
                lblTrans.IsVisible     = true;
                lblCarrier.IsVisible   = true;
                lblPrintdata.IsVisible = true;
            }
            if (rvm.Tiporecarga == TipoRecarga.Monedero)
            {
                lblFecha.Text        = DateTime.Now.ToString("dd/MMM/yyyy");
                lblMonto.Text        = rvm.MontoRecargaMonedero.ToString("c", new System.Globalization.CultureInfo("es-MX"));
                lblAutorizacion.Text = rvm.Err.PaymentID;

                lblCarrier.IsVisible   = false;
                lblCel.IsVisible       = false;
                lblTrans.IsVisible     = false;
                lblCarrier.IsVisible   = false;
                lblPrintdata.IsVisible = false;
            }
            btnCerrar.Clicked += async(sender, ea) =>
            {
                await App.Nav.PopToRootAsync(Constantes.animated);
            };
        }
Ejemplo n.º 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)
            {
            }
        }
Ejemplo n.º 4
0
        public void CargarInicia(Recarga rec)
        {
            InitializeComponent();
            Title = "Cargar Saldo";

            rvm = new RecargasViewModel();
            this.BindingContext = rvm;
            rvm.Tiporecarga     = TipoRecarga.RecargaTA;
            NavigationPage.SetBackButtonTitle(this, "");

            if (rec != null)
            {
                if (rec is RecargaProg)
                {
                    rvm.EdicionOnly = true;
                }

                if (App.usr.idpais != 0)
                {
                    rvm.idpais = App.usr.idpais;
                }
                else
                {
                    rvm.idpais = 1;                     //default Mexico
                }
                rvm.IdUsuario = App.usr.idusuario;

                mirec = new Recarga();
                mirec = rec;
            }
            else
            {
                Refresh();
                if (App.usr.idpais != 0)
                {
                    rvm.idpais = App.usr.idpais;
                }
                else
                {
                    rvm.idpais = 1;                     //default Mexico
                }
            }

            ToolbarItems.Add(new ToolbarItem("Ayuda", "ayuda2.png", () =>
            {
                var page = new InfoAyuda("cargarsaldo.html");
                Navigation.PushPopupAsync(page);
            }));

            lsC.Clear();

            rvm.RecargaIncompleta += (s, e) =>
            {
                if (e.estaincompleta)
                {
                    if (rvm.idoperadora == 0 || rvm.idpaquete == 0)
                    {
                        lblvalOpePaq.IsVisible = true;
                    }
                    else
                    {
                        lblvalOpePaq.IsVisible = false;
                    }
                    btnAplicar.IsEnabled = false;
                }
                else
                {
                    btnAplicar.IsEnabled = true;
                }
            };
            if (mirec != null)
            {
                rvm.idpais          = mirec.idpais;
                rvm.idoperadora     = mirec.idoperadora;
                rvm.idpaquete       = mirec.idpaquete;
                rvm.NumeroRecarga   = mirec.numerorecarga;
                rvm.ContactoRecarga = (!String.IsNullOrEmpty(mirec.contactorecarga) ? CleanString.UseRegex(mirec.contactorecarga) : "");
                rvm.idFormaPago     = mirec.idformapago;
                rvm.IdTarjeta       = mirec.idtarjeta;
                if (rvm.idFormaPago == 2 && rvm.IdTarjeta > 0)
                {
                    rvm.TipoTrans = TipoTransaccion.SegundaVez;
                }
            }
            if (rvm.EdicionOnly)
            {
                btnAplicar.Text = "Comprar";
            }
            else
            {
                if (rvm.idFormaPago == 2 && rvm.IdTarjeta > 0 && App.db.SelTarjetas(rvm.IdTarjeta) != null)
                {
                    btnAplicar.Text = "Confirmar";
                }
                else
                {
                    btnAplicar.Text = "Comprar";
                }
            }

            string title = ""; ListaOpciones lo;
            TapGestureRecognizer tapgrdPais = new TapGestureRecognizer();

            tapgrdPais.Tapped += async(s, e) =>
                                                                    //vclPais.Tapped += async (object sender, EventArgs e) =>
            {
                grdPais.BackgroundColor = Color.FromHex("#e5e5e5"); //Color.FromHex((App.Current.Resources["ButtonRojo"] as Style).Setters.Where(x => x.Property == BackgroundColorProperty).FirstOrDefault().Value.ToString()); //.Opacity = .5;
                await Task.Delay(100);

                grdPais.BackgroundColor = Color.Transparent;                 //grdEstado.Opacity = 1;
                ls.Clear();
                title = "Selecciona un pais";
                ls    = rvm.lsPais().Select(x => new Opcion {
                    idopc = x.idpais, opc = x.pais, imgopc = x.img
                }).ToObservableCollection();
                lo       = new ListaOpciones(ls, title, 1);
                lo.IdOpc = 1;
                await App.Nav.PushAsync(lo, Constantes.animated);
            };
            grdPais.GestureRecognizers.Add(tapgrdPais);

            TapGestureRecognizer tapgrdOperadora = new TapGestureRecognizer();

            tapgrdOperadora.Tapped += async(s, e) =>
                                                                         //vclOperadora.Tapped += async (object sender, EventArgs e) =>
            {
                grdOperadora.BackgroundColor = Color.FromHex("#e5e5e5"); //Color.FromHex((App.Current.Resources["ButtonRojo"] as Style).Setters.Where(x => x.Property == BackgroundColorProperty).FirstOrDefault().Value.ToString()); //.Opacity = .5;
                await Task.Delay(100);

                grdOperadora.BackgroundColor = Color.Transparent;                 //grdEstado.Opacity = 1;
                ls.Clear();
                title = "Selecciona una compañía";
                ls    = rvm.LsOperadoras(rvm.idpais).Select(x => new Opcion {
                    idopc = x.idoperadora, opc = x.operadora, imgopc = x.img
                }).ToObservableCollection();
                lo       = new ListaOpciones(ls, title, 1);
                lo.IdOpc = 2;
                await App.Nav.PushAsync(lo, Constantes.animated);
            };
            grdOperadora.GestureRecognizers.Add(tapgrdOperadora);

            if (mirec != null)
            {
                txtNum.Text      = mirec.numerorecarga;
                lblContacto.Text = (!String.IsNullOrEmpty(mirec.contactorecarga) ? CleanString.UseRegex(mirec.contactorecarga) : "");
            }
            TapGestureRecognizer tapgrdSaldo = new TapGestureRecognizer();

            tapgrdSaldo.Tapped += async(s, e) =>
                                                                     //vclSaldo.Tapped += async (object sender, EventArgs e) =>
            {
                grdSaldo.BackgroundColor = Color.FromHex("#e5e5e5"); //Color.FromHex((App.Current.Resources["ButtonRojo"] as Style).Setters.Where(x => x.Property == BackgroundColorProperty).FirstOrDefault().Value.ToString()); //.Opacity = .5;
                await Task.Delay(100);

                grdSaldo.BackgroundColor = Color.Transparent;                 //grdEstado.Opacity = 1;
                ls.Clear();
                title = "Selecciona monto";
                ObservableCollection <catPaquete> lpq = rvm.LsPaquetes(rvm.idoperadora);
                ls = lpq.OrderBy(x => x.tipo).Select(x => new Opcion {
                    idopc = x.idpaquete, opc = x.monto.ToString("c", new System.Globalization.CultureInfo("es-MX")) + " " + x.paquete, idagrupador = x.tipo, agrupador = (x.tipo == 0 ? "Tiempo aire" : "Paquetes de datos")
                }).ToObservableCollection();
                if (ls.Select(x => x.idagrupador).Distinct().Count() > 1)
                {
                    lo = new ListaOpciones(ls, title, 1, true);                     //hay TA y datos
                }
                else
                {
                    lo = new ListaOpciones(ls, title, 1);                     //solo TA
                }
                lo.IdOpc = 4;
                await App.Nav.PushAsync(lo, Constantes.animated);
            };
            grdSaldo.GestureRecognizers.Add(tapgrdSaldo);

            TapGestureRecognizer tapgrdLimpiar = new TapGestureRecognizer();

            tapgrdLimpiar.Tapped += async(s, e) =>
            {
                grdLimpiar.BackgroundColor = Color.FromHex("#e5e5e5");
                await Task.Delay(100);

                grdLimpiar.BackgroundColor = Color.Transparent;
                rvm.Refresh();
                txtNum.Text      = "";
                lblContacto.Text = "";
            };
            grdLimpiar.GestureRecognizers.Add(tapgrdLimpiar);

            btnAplicar.Clicked += async(sender, ea) =>
            {
                if (rvm.EsIncompleta())
                {
                    await DisplayAlert("Error", "Faltan capturar o seleccionar algunos campos", "OK");
                }
                else
                {
                    btnAplicar.IsEnabled = false;
                    rvm.NumeroRecarga    = check.SafeSqlLiteral(txtNum.Text.Trim());
                    if (rvm.EdicionOnly)
                    {
                        await App.Nav.PushAsync(new RegPago(rvm), Constantes.animated);
                    }
                    else
                    {
                        if (rvm.idFormaPago == 2 && rvm.IdTarjeta > 0 && App.db.SelTarjetas(rvm.IdTarjeta) != null)
                        {
                            //vamos a cargar el tvm desde una tarjeta (no se como?)
                            TarjetasViewModel tvm = new TarjetasViewModel();
                            await App.Nav.PushAsync(new Procesar(rvm, tvm, TipoTransaccion.SegundaVez), Constantes.animated);
                        }
                        else
                        {
                            await App.Nav.PushAsync(new RegPago(rvm), Constantes.animated);
                        }
                    }
                }
            };
            phvalNum.PropertyChanged += (object sender, PropertyChangedEventArgs e) =>
            {
                if (phvalNum.IsValid)
                {
                    rvm.NumeroRecarga = check.SafeSqlLiteral(txtNum.Text);
                }
                else
                {
                    rvm.NumeroRecarga = "";
                }
            };
            btnContactos.Clicked += async(sender, e) =>
            {
                vwContactos = new Contactos();
                await App.Nav.PushAsync(vwContactos);

                lsC = vwContactos.GetLista();
            };
            txtNum.TextChanged += (s, e) =>
            {
                if (lsC.Count > 0)
                {
                    IEnumerable <Contacto> tmp = lsC.Where(x => Regex.Replace(x.Number, @"\s+", "").Contains(e.NewTextValue));
                    if (tmp.Count() > 0)
                    {
                        lblContacto.Text    = CleanString.UseRegex(tmp.FirstOrDefault().Name);
                        rvm.ContactoRecarga = lblContacto.Text;
                    }
                    else
                    {
                        lblContacto.Text    = "";
                        rvm.ContactoRecarga = "";
                    }
                }
            };
        }