示例#1
0
        public PopupPageDoc(Documento.Datum documentoSeleccionado)
        {
            datum = documentoSeleccionado;
            //DocumentoId.Text = datum.DocumentoId.ToString();
            //https://xamarinlatino.com/como-trabajar-con-ventanas-emergentes-pop-up-avanzados-en-xamarin-forms-7ebe109b0a37
            //https://www.youtube.com/watch?v=dOU0Qei3Qlk&t=438s
            //https://askxammy.com/how-to-work-with-advanced-pop-ups-in-xamarin-forms/



            InitializeComponent();
            datum          = documentoSeleccionado;
            Nemonico.Text += datum.Nemonico.ToString();

            NombreArchivo.Text   += documentoSeleccionado.NombreArchivo.ToString();
            SubTipoServicio.Text += documentoSeleccionado.SubTipoServicio.ToString();
            Fecha.Text            = documentoSeleccionado.FechaRegistroString;
        }
        protected override async void OnAppearing()
        {
            String    IP_LEGAL  = App.Current.Properties["IpPublicado"].ToString();
            Documento documento = new Documento();

            //https://dzone.com/articles/mobile-alerts-in-xamarin
            if (estadoNom.Equals("POR APROBAR"))
            {
                String servicio = "";
                if (rol.Equals("1003") || rol.Equals("1004"))
                {
                    servicio = "DocumentoPorResponsableRevisionListarExternoJson";
                }
                else
                {
                    servicio = "DocumentoPorEspecialistaListarExternoJson";
                }

                //String url = IP_LEGAL + "/legal/RevisionDocumento/ListarDocumentosPorControlStatusApp";
                String url     = IP_LEGAL + "/legal/Documento/" + servicio + "?estadoProcesoId=" + estadoId + "&usuarioId=" + usuarioId;
                var    service = new RestClient <Documento>();
                documento = await service.GetRestServicieDataAsync(url);

                ObservableCollection <Documento.Datum> docDatas = new ObservableCollection <Documento.Datum>(documento.data);
                DocumentosEnTramite_List.ItemsSource = docDatas;
            }
            else if (estadoNom.Equals("APROBADOS"))
            {
                var post = new
                {
                    empleadoId = empleadoId,
                    perfil     = rol
                };
                String url = IP_LEGAL + "/legal/RevisionDocumento/ListarDocumentosAprobadosApp";
                //String url = IP_LEGAL + "/legal/RevisionDocumento/ListarDocumentosPorControlStatusApp";
                var service = new RestClient <Documento>();
                documento = await service.GetRestServicieDataPostAsync(url, post);

                ObservableCollection <Documento.Datum> docDatas = new ObservableCollection <Documento.Datum>(documento.data);
                DocumentosEnTramite_List.ItemsSource = docDatas;
            }
            else if (estadoNom.Equals("RECHAZADOS"))
            {
                var post = new
                {
                    empleadoId = empleadoId,
                    perfil     = rol
                };
                String url = IP_LEGAL + "/legal/RevisionDocumento/ListarDocumentosRechazadosApp";

                //String url = IP_LEGAL + "/legal/RevisionDocumento/ListarDocumentosPorControlStatusApp";
                var service = new RestClient <Documento>();
                documento = await service.GetRestServicieDataPostAsync(url, post);

                ObservableCollection <Documento.Datum> docDatas = new ObservableCollection <Documento.Datum>(documento.data);
                DocumentosEnTramite_List.ItemsSource = docDatas;
            }
            else if (estadoNom.Equals("STATUS TRAMITE"))
            {
                var post = new
                {
                    empleadoId = empleadoId
                };
                String url     = IP_LEGAL + "/legal/RevisionDocumento/ListarDocumentosPorControlStatusApp";
                var    service = new RestClient <Documento>();
                documento = await service.GetRestServicieDataPostAsync(url, post);

                docDatas = new ObservableCollection <Documento.Datum>(documento.data);
                DocumentosEnTramite_List.ItemsSource = docDatas;
            }

            else
            {
                String servicio = "";
                if (rol.Equals("1003") || rol.Equals("1004"))
                {
                    servicio = "DocumentoPorResponsableRevisionListarExternoJson";
                }
                else
                {
                    servicio = "DocumentoPorEspecialistaListarExternoJson";
                }

                //String url = IP_LEGAL + "/legal/RevisionDocumento/ListarDocumentosPorControlStatusApp";
                String url     = IP_LEGAL + "/legal/Documento/" + servicio + "?estadoProcesoId=" + estadoId + "&usuarioId=" + usuarioId;
                var    service = new RestClient <Documento>();

                documento = await service.GetRestServicieDataAsync(url);

                ObservableCollection <Documento.Datum> docDatas = new ObservableCollection <Documento.Datum>(documento.data);
                DocumentosEnTramite_List.ItemsSource = docDatas;
            }
            #region Listener click a un item de la lista
            if (counter == 0)
            {
                DocumentosEnTramite_List.ItemSelected += async(sender, e) =>
                {
                    if (e.SelectedItem != null)
                    {
                        //popupListView.IsVisible = true;
                        documentoSeleccionado = (Documento.Datum)e.SelectedItem;

                        //todo poup nuevo xmal
                        //var animationPopup = new PopupPageDoc(e.SelectedItem as Documento.Datum);
                        //fin todo poup nuevo xmal

                        Rg.Plugins.Popup.Pages.PopupPage animationPopup = new Rg.Plugins.Popup.Pages.PopupPage();

                        var scaleAnimation = new ScaleAnimation
                        {
                            PositionIn  = MoveAnimationOptions.Bottom,
                            PositionOut = MoveAnimationOptions.Bottom,
                            ScaleIn     = 1,
                            ScaleOut    = 1,
                            //DurationIn = 400,
                            //DurationOut = 800,
                            EasingIn = Easing.Linear,
                            //EasingOut = Easing.CubicOut,
                            HasBackgroundAnimation = true,
                        };

                        Label Status = new Label
                        {
                            Text              = "Status: " + documentoSeleccionado.Status,
                            FontSize          = 13,
                            HorizontalOptions = LayoutOptions.Center,
                            Margin            = 2,
                            FontAttributes    = FontAttributes.Bold
                        };
                        Label NombreArchivo = new Label
                        {
                            Text              = "Nemonico: " + documentoSeleccionado.NombreArchivo,
                            FontSize          = 14,
                            HorizontalOptions = LayoutOptions.Center,
                            Margin            = 2
                        };
                        Label Nemonico = new Label
                        {
                            Text              = documentoSeleccionado.Nemonico,
                            FontSize          = 14,
                            HorizontalOptions = LayoutOptions.Center,
                            Margin            = 2
                        };
                        Label SubTipoServicio = new Label
                        {
                            Text              = "Tipo Contrato: " + documentoSeleccionado.SubTipoServicio,
                            FontSize          = 14,
                            HorizontalOptions = LayoutOptions.Center,
                            Margin            = 2
                        };
                        Label Fecha = new Label
                        {
                            Text              = documentoSeleccionado.FechaRegistroString,
                            TextColor         = Color.Brown,
                            FontSize          = 13,
                            HorizontalOptions = LayoutOptions.Center,
                            Margin            = 2
                        };
                        Button btnAprobarDocumento = new Button
                        {
                            Text            = "APROBAR DOCUMENTO",
                            BackgroundColor = Color.DarkGoldenrod,
                            HeightRequest   = 35,
                            VerticalOptions = LayoutOptions.CenterAndExpand,
                            TextColor       = Color.White
                        };
                        btnAprobarDocumento.Clicked += BtnAprobarDocumento_ClickedAsync;
                        Button btnCancelarDocumento = new Button
                        {
                            Text            = "RECHAZAR DOCUMENTO",
                            BackgroundColor = Color.OrangeRed,
                            HeightRequest   = 35,
                            VerticalOptions = LayoutOptions.CenterAndExpand,
                            TextColor       = Color.White
                        };
                        btnCancelarDocumento.Clicked += BtnCancelarDocumento_Clicked;
                        if (!estadoNom.Equals("POR APROBAR"))
                        {
                            btnAprobarDocumento.IsVisible  = false;
                            btnCancelarDocumento.IsVisible = false;
                        }
                        animationPopup.Content = new StackLayout
                        {
                            VerticalOptions   = LayoutOptions.Center,
                            HorizontalOptions = LayoutOptions.Center,
                            Padding           = 0,
                            Margin            = 0,
                            Children          =
                            {
                                new Frame
                                {
                                    Padding       = 15,
                                    HeightRequest = 300,
                                    WidthRequest  = 270,
                                    Content       = new StackLayout
                                    {
                                        Children =
                                        {
                                            Status,              NombreArchivo, Nemonico, SubTipoServicio, Fecha,
                                            btnAprobarDocumento, btnCancelarDocumento
                                        }
                                    }
                                }
                            }
                        };
                        animationPopup.Animation = scaleAnimation;
                        //PopupNavigation.PushAsync(animationPopup);
                        await PopupNavigation.Instance.PushAsync(animationPopup);

                        DocumentosEnTramite_List.SelectedItem = null;
                    }
                };
                counter++;
            }
            #endregion fin Listener

            base.OnAppearing();
        }