public GestionReciboViewModel()
 {
     ListaSolicitudes = new List<ReciboProvisionalVob>();
     reciboProvisional = new ReciboProvisionalVob();
     FiltroBusqueda = new ReciboProvisionalVob();
     ListaEstados = new BindingList<SelectListItem>();
     ListaTrabajadores = new List<UsuarioTrabajadorVob>(); 
 }
        public int ModificarReciboProvisional(ReciboProvisionalVob registro)
        {
            var reciboRepo = new TFReciboProvisionalRepositorio();

            int numexpediente = reciboRepo.Modificar(registro);

            return numexpediente;

        }
        public int Modificar(ReciboProvisionalVob reciboProvisional)
        {
            

            DateTime fecha = new DateTime();
            fecha = DateTime.Today;

            using (var context = new UPC_MUNIEntities())
            {



                var expmodif = (from c in context.ReciboProvisional
                                where c.NumeroRecibo == reciboProvisional.NumeroRecibo
                                select c).First();


                expmodif.CodEstado = reciboProvisional.CodEstado;
                expmodif.Motivo = reciboProvisional.MotivoRechazo;
               
                //  context.Expediente.Add(exp);

                context.ReciboProvisional.Attach(expmodif);
                context.Entry(expmodif).State = EntityState.Modified;
                context.SaveChanges();


                if (reciboProvisional.CodEstado == "0006001")
                { 
                context.MovimientoCajaChica.Add(new MovimientoCajaChica
                {
                   

                    FechaCreacion = DateTime.Now,
                    FechaActualizacion = DateTime.Now,
                    MontoMovimiento =expmodif.Monto,
                    CodTipoMovimiento = "0007003",
                    CodOrigenMovimiento = "0008001"

                });
                context.SaveChanges();
                }

                return Convert.ToInt32(reciboProvisional.NumeroRecibo);

            };



        }
 public GestionReciboViewModel(ReciboProvisionalVob _FiltroBusqueda)
 {
     FiltroBusqueda = _FiltroBusqueda;
 }
        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 });
            }
        }