public RespuestaBusquedaSolicitudPagoServVob BuscarSolicitudesPagoSericio(SolicitudBusquedaSolicitudPagoServVob filtroBusq)
        {
            List<SolicitudPagoServicioVob> lista = new List<SolicitudPagoServicioVob>();
            var pagoServRepo = new TFPagoServicioRepositorio();

            lista = pagoServRepo.BuscarSolicitudesPago();

            if (filtroBusq.SolicitudPagoServFilter != null)
            {
                if (filtroBusq.SolicitudPagoServFilter.NumSolicitudPago > 0)
                {
                    lista = lista.Where(x => x.NumSolicitudPago == filtroBusq.SolicitudPagoServFilter.NumSolicitudPago).ToList();
                }
                if (filtroBusq.SolicitudPagoServFilter.FechaInicio != null)
                {
                    System.DateTime dateIni = (System.DateTime)filtroBusq.SolicitudPagoServFilter.FechaInicio;
                    System.DateTime dateIniNew = new System.DateTime(dateIni.Year, dateIni.Month, dateIni.Day, 0, 0, 0);


                    lista = lista.Where(x => x.FechaSolicitud >= dateIniNew).ToList();
                }
                if (filtroBusq.SolicitudPagoServFilter.FechaFin != null)
                {
                    System.DateTime dateFin = (System.DateTime)filtroBusq.SolicitudPagoServFilter.FechaFin;
                    System.DateTime dateFinNew = new System.DateTime(dateFin.Year, dateFin.Month, dateFin.Day, 23, 59, 59);
                    lista = lista.Where(x => x.FechaSolicitud <= dateFinNew).ToList();
                }
                if (filtroBusq.SolicitudPagoServFilter.CodEstadoSolicitud != null && !filtroBusq.SolicitudPagoServFilter.CodEstadoSolicitud.Equals("-1"))
                {
                    lista = lista.Where(x => x.CodEstadoSolicitud == filtroBusq.SolicitudPagoServFilter.CodEstadoSolicitud).ToList();
                }
                if (filtroBusq.SolicitudPagoServFilter.DNI != null && !filtroBusq.SolicitudPagoServFilter.DNI.Equals(""))
                {
                    lista = lista.Where(x => x.DNI == filtroBusq.SolicitudPagoServFilter.DNI).ToList();
                }
          
            }

            int total = lista.Count();

            return new RespuestaBusquedaSolicitudPagoServVob{
                listaSolicitudPagoServicio = lista.ToList(),
                    totalElementos = total 
              };

        }
        public PartialViewResult Buscar(GestionPagoViewModel view = null, String init = null)
        {

            var listaPagos = new TFPagoServicioNegocio();
            var multitablaNegocio = new MultitablaNegocio();

            if (view == null)
            {
                view = new GestionPagoViewModel();
            }

            if (view.ListaEstados == null || view.ListaEstados.Count <= 0)
            {
                List<ElementoVob> listadoEstados = multitablaNegocio.BuscarElementos(GrupoTabla.EstadoSolicitudPagoServicio);
                List<ElementoVob> listadoEstadosNew = new List<ElementoVob>();
                ElementoVob inicial = new ElementoVob();
                inicial.Valor = "-1";
                inicial.Texto = "Seleccionar";
                listadoEstadosNew.Add(inicial);

                foreach (ElementoVob obj in listadoEstados)
                {
                    listadoEstadosNew.Add(obj);
                }


                view.ListaEstados = listadoEstadosNew.LlenarTT();
            }

            SolicitudBusquedaSolicitudPagoServVob request = new SolicitudBusquedaSolicitudPagoServVob();
            request.SolicitudPagoServFilter = view.FiltroBusqueda;
            if (init != null && init.Equals("true"))
            {
                request.SolicitudPagoServFilter.CodEstadoSolicitud = "0010001";
            }

            RespuestaBusquedaSolicitudPagoServVob respuesta = listaPagos.BuscarSolicitudesPagoSericio(request);

            //var GestionPagoVM = new GestionPagoViewModel();
            view.ListaSolicitudes = respuesta.listaSolicitudPagoServicio;

            return PartialView("_Index", view);
        }
        //public ActionResult Calificar(string submit1, string submit2, ReciboProvisionalVob reciboProvisional, int id = 0)
        public ActionResult Pagar(string submit1, string submit2, string submit3, SolicitudPagoServicioVob SolicitudPagoServicio, string SolicitudPagoServicio_Monto, int id = 0, String tipoTran=null)
        {
            try
            {

                if (submit1 == "Pagar")
                {

                    //if (SolicitudPagoServicio.c == "0006001")
                    //{
                    //    SolicitudPagoServicio. = null;
                    //}

                    //var areaNegocio = new TFReciboProvisionalNegocio();

                    //areaNegocio.ModificarReciboProvisional(reciboProvisional);

                    var PagoServicios = new TFPagoServicioNegocio();
                    PagoServicioVob _PagoServicioVob = new PagoServicioVob();
                    _PagoServicioVob.FechaPago = DateTime.Now;
                    _PagoServicioVob.DescMonedaPago = SolicitudPagoServicio.DesMoneda;
                    _PagoServicioVob.DescFormaPago = SolicitudPagoServicio.DesForPago;
                    _PagoServicioVob.MontoPago = SolicitudPagoServicio.Monto;
                    _PagoServicioVob.CodEstadoPago = "0011001";
                    _PagoServicioVob.CodFormaPago = SolicitudPagoServicio.CodForPago;
                    _PagoServicioVob.CodMonedaPago = SolicitudPagoServicio.CodMoneda;
                    _PagoServicioVob.CodTipoCambio = SolicitudPagoServicio.CodTipoCambio;
                    _PagoServicioVob.SolicitudPagoServicio = SolicitudPagoServicio;
                    _PagoServicioVob.SolicitudPagoServicio.CodEstadoSolicitud = "0010002";

                    PagoServicios.AgregarPagoServicio(_PagoServicioVob);
                    //"Pagar", new { id = item.NumSolicitudPago })

                   // return RedirectToAction("Buscar", "GestionPagoBandeja", new { init = "true" });
                    return RedirectToAction("Pagar", "GestionPagoBandeja", new { tipoTran="1" });
                }
                else if (submit2 == "Anular")
                {
                    var pagoServiciosNego = new TFPagoServicioNegocio();
                    SolicitudPagoServicio.CodEstadoSolicitud = "0010003";
                    pagoServiciosNego.ModificarEstadoSolicitudPagoServicio(SolicitudPagoServicio);

                    //return RedirectToAction("Buscar", "GestionPagoBandeja", new { init = "true" });
                    return RedirectToAction("Pagar", "GestionPagoBandeja", new { tipoTran = "2" });
                }
                else if (submit3 == "Cancelar")
                {
                    return RedirectToAction("Buscar", "GestionPagoBandeja", new { init = "true" });
                }
                else
                {

                    var multitablaNegocio = new MultitablaNegocio();
                    var listaPagos = new TFPagoServicioNegocio();
                    var view = new GestionPagoViewModel();
                    view.tipoTransaccion = tipoTran;
                    if (view.ListaEstados == null || view.ListaEstados.Count <= 0)
                    {
                        List<ElementoVob> listadoEstados = multitablaNegocio.BuscarElementos(GrupoTabla.EstadoReciboProvisional);
                        List<ElementoVob> listadoEstadosNew = new List<ElementoVob>();
                        ElementoVob inicial = new ElementoVob();
                        inicial.Valor = "-1";
                        inicial.Texto = "Seleccionar";
                        listadoEstadosNew.Add(inicial);

                        foreach (ElementoVob obj in listadoEstados)
                        {
                            if (!"Pendiente".Equals(obj.Texto))
                            {
                                listadoEstadosNew.Add(obj);
                            }
                        }


                        view.ListaEstados = listadoEstadosNew.LlenarTT();
                    }

                    if (view.ListaMonedas == null || view.ListaMonedas.Count <= 0)
                    {
                        List<ElementoVob> listaMonedas = multitablaNegocio.BuscarElementos(GrupoTabla.TipoMoneda);
                        List<ElementoVob> listaMonedasNew = new List<ElementoVob>();
                        ElementoVob inicial = new ElementoVob();
                        inicial.Valor = "-1";
                        inicial.Texto = "Seleccionar";
                        listaMonedasNew.Add(inicial);

                        foreach (ElementoVob obj in listaMonedas)
                        {
                            if (!"Pendiente".Equals(obj.Texto))
                            {
                                listaMonedasNew.Add(obj);
                            }
                        }


                        view.ListaMonedas = listaMonedasNew.LlenarTT();
                    }

                    if (view.ListaFormaPago == null || view.ListaFormaPago.Count <= 0)
                    {
                        List<FormaPagoVob> listaFormaPago = listaPagos.listaFormaPago();
                        List<ElementoVob> listaFormaPagoNew = new List<ElementoVob>();
                        ElementoVob inicial = new ElementoVob();
                        inicial.Valor = "-1";
                        inicial.Texto = "Seleccionar";
                        listaFormaPagoNew.Add(inicial);

                        foreach (FormaPagoVob obj in listaFormaPago)
                        {
                            ElementoVob elemento = new ElementoVob();
                            elemento.Valor = obj.Codigo.ToString();
                            elemento.Texto = obj.Descripcion;
                            listaFormaPagoNew.Add(elemento);
                        }


                        view.ListaFormaPago = listaFormaPagoNew.LlenarTT();
                    }

                    SolicitudBusquedaSolicitudPagoServVob request = new SolicitudBusquedaSolicitudPagoServVob();
                    request.SolicitudPagoServFilter = new SolicitudPagoServicioVob();
                    request.SolicitudPagoServFilter.NumSolicitudPago = id;
                    RespuestaBusquedaSolicitudPagoServVob respuesta = listaPagos.BuscarSolicitudesPagoSericio(request);

                    view.SolicitudPagoServicio = respuesta.listaSolicitudPagoServicio[0];
                    view.SolicitudPagoServicio.FechaCorta = DateTime.Now.ToString("dd/MM/yyyy");
                    view.SolicitudPagoServicio.Hora = DateTime.Now.ToString("hh:mm:ss");
                    


                    return PartialView("FrmPago", view);
                }

            }
            catch (Exception ex)
            {
                return RedirectToAction("ErrorSistema", "Error", new { mensaje = ex.Message });
            }
        }