public RespuestaBusquedaRecibosProvVob BuscarRecibosProvisionales(SolicitudBusquedaRecibosProvVob filtroBusq)
        {
            List<ReciboProvisionalVob> lista = new List<ReciboProvisionalVob>();
            var expedienterepositorio = new TFReciboProvisionalRepositorio();

            lista = expedienterepositorio.BuscarRecibosProvisionales();

            lista = lista.Where(x => x.NumeroRecibo > 0).ToList();

            if (filtroBusq.ReciboProvisionalFilter != null) {
                if (filtroBusq.ReciboProvisionalFilter.NumeroRecibo != null)
                {

                    if (filtroBusq.ReciboProvisionalFilter.NumeroRecibo > 0)
                    {
                        lista = lista.Where(x => x.NumeroRecibo == filtroBusq.ReciboProvisionalFilter.NumeroRecibo).ToList();
                    }

                    /*else if(solicitud.ReciboProvisionalFilter.CodEstado!=null){
                        lista = lista.Where(x => x.CodEstado == solicitud.ReciboProvisionalFilter.CodEstado).ToList();
                    }*/
                }

                if (filtroBusq.ReciboProvisionalFilter.CodEstado != null && !filtroBusq.ReciboProvisionalFilter.CodEstado.Equals("-1") )
                {
                    lista = lista.Where(x => x.CodEstado  == filtroBusq.ReciboProvisionalFilter.CodEstado).ToList();
                }

                if (filtroBusq.ReciboProvisionalFilter.FechaInicio != null)
                {
                    System.DateTime dateIni = (System.DateTime)filtroBusq.ReciboProvisionalFilter.FechaInicio;
                    System.DateTime dateIniNew = new System.DateTime(dateIni.Year, dateIni.Month, dateIni.Day, 0, 0, 0);
                    

                    lista = lista.Where(x => x.FechaRecibo >= dateIniNew).ToList();
                }
                if (filtroBusq.ReciboProvisionalFilter.FechaFin != null)
                {
                    System.DateTime dateFin = (System.DateTime)filtroBusq.ReciboProvisionalFilter.FechaFin;
                    System.DateTime dateFinNew = new System.DateTime(dateFin.Year, dateFin.Month, dateFin.Day, 23, 59, 59);
                    lista = lista.Where(x => x.FechaRecibo <= dateFinNew).ToList();
                }
                if (filtroBusq.ReciboProvisionalFilter.CodEmpleado > 0) {
                    lista = lista.Where(x => x.CodEmpleado == filtroBusq.ReciboProvisionalFilter.CodEmpleado).ToList();

                }
            }
            

            int total = lista.Count();

            return new RespuestaBusquedaRecibosProvVob{
                listRecibosProvisional = lista.ToList(),
                    totalelementos = total 
              };

        }
        public ActionResult Calificar(string submit1, string submit2, ReciboProvisionalVob reciboProvisional, int id = 0)
        {
            try
            {

                if (submit1 == "Grabar")
                {

                    if (reciboProvisional.Estado == "0006001")
                    {
                        reciboProvisional.MotivoRechazo = null;
                    }

                    var areaNegocio = new TFReciboProvisionalNegocio();

                     areaNegocio.ModificarReciboProvisional(reciboProvisional);

                     return RedirectToAction("Buscar", "GestionReciboBandeja", new { init = "true" });
                }
                else if (submit2 == "Cancelar")
                {
                    return RedirectToAction("Buscar", "GestionReciboBandeja", new { init = "true" });
                }
                else
                {
                    var multitablaNegocio = new MultitablaNegocio();
                    var reciboNegocio = new TFReciboProvisionalNegocio();
                    var view = new GestionReciboViewModel();

                    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();
                    }


                    SolicitudBusquedaRecibosProvVob request = new SolicitudBusquedaRecibosProvVob();
                    request.ReciboProvisionalFilter = new ReciboProvisionalVob();
                    request.ReciboProvisionalFilter.NumeroRecibo = id;
                    RespuestaBusquedaRecibosProvVob respuesta = reciboNegocio.BuscarRecibosProvisionales(request);

                    view.reciboProvisional = respuesta.listRecibosProvisional[0];


                    return PartialView("FrmReciboProvisional", view);
                }
                
            }
            catch (Exception ex)
            {
                return RedirectToAction("ErrorSistema", "Error", new { mensaje = ex.Message });
            }
        }
        public PartialViewResult Buscar(GestionReciboViewModel view = null, String init=null)
        {
            var reciboNegocio = new TFReciboProvisionalNegocio();
            var multitablaNegocio = new MultitablaNegocio();
            var usuarioNegocio = new GCPUsuarioTrabajadorNegocio();
            if (view == null) {
                view = new GestionReciboViewModel();
            }

            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)
                {
                    listadoEstadosNew.Add(obj);
                }


                view.ListaEstados = listadoEstadosNew.LlenarTT();
            }

            if (view.ListaTrabajadores == null || view.ListaTrabajadores.Count <= 0) {
                view.ListaTrabajadores=usuarioNegocio.Select(4);
            }
            

            SolicitudBusquedaRecibosProvVob request= new SolicitudBusquedaRecibosProvVob();
            
            request.ReciboProvisionalFilter = view.FiltroBusqueda;
            if(init!=null && init.Equals("true")){
                request.ReciboProvisionalFilter.CodEstado = "0006003";
            }
            RespuestaBusquedaRecibosProvVob respuesta = reciboNegocio.BuscarRecibosProvisionales(request);
            view.ListaSolicitudes = respuesta.listRecibosProvisional;

            return PartialView("_Index", view);
        }