Exemplo n.º 1
0
        public JsonResult GuardarDatosPrincipales(String NombreEvento, String LugarEvento, int Monto, DateTime FechaInicio, DateTime FechaTermino, int IdResponsable, String TipoEvento)
        {
            try
            {
                Solicitud solicitud = new Solicitud()
                {
                    NombreEvento       = NombreEvento,
                    LugarEvento        = LugarEvento,
                    Monto              = Monto,
                    FechaInicioEvento  = FechaInicio,
                    FechaTerminoEvento = FechaTermino,
                    TipoEvento         = TipoEvento,
                    FechaCreacion      = DateTime.Now,
                    FechaFinPdf        = DateTime.Now,
                    FechaModificacion  = DateTime.Now
                };

                Proceso proceso = HttpContext.Session.GetComplexData <Proceso>("Proceso");

                Solicitud solExistente = null;

                if (proceso != null)
                {
                    solExistente = proceso.Solicitud;
                }


                if (solExistente == null)
                {
                    //Usuario usuario = HttpContext.Session.GetComplexData<Usuario>("DatosUsuario");
                    String tipoUsuario = HttpContext.Session.GetString("TipoUsuario");

                    /*Se asume que el usuario es un representante*/
                    Usuario             usuario        = HttpContext.Session.GetComplexData <Usuario>("DatosUsuario");
                    List <Organizacion> organizaciones = ConsultaUsuario.LeerOrganizacion(usuario.Id, tipoUsuario);
                    Organizacion        organizacion   = organizaciones[0];

                    solicitud.Id = ConsultaSolicitud.CrearSolicitud(solicitud); //Creacion de la solicitud

                    int idOrganizacion = organizacion.Id;
                    int estado         = 1;                                                                                          /*Representa que la solicitud esta en estado de edicion*/
                    solicitud.RefProceso = ConsultaSolicitud.CrearProcesoFondo(idOrganizacion, solicitud.Id, estado, IdResponsable); //Agrega el estado en que se encuentra la solicitud
                    ConsultasGenerales.ActualizarEstadoUsuarioRepresentate(IdResponsable, "Deshabilitado");

                    proceso = new Proceso()
                    {
                        Responsable = ConsultaUsuario.LeerRepresentante(IdResponsable),
                        Solicitud   = solicitud
                    };

                    HttpContext.Session.SetComplexData("Proceso", proceso);

                    return(Json(new
                    {
                        validacion = true,
                        mensaje = "Se han guardado los datos satisfactoriamente.",
                        solicitud = proceso.Solicitud
                    }));
                }
                else
                {
                    Boolean DatosModificados = VerificarCambiosSolicitud(solExistente, solicitud);
                    if (DatosModificados)
                    {
                        solicitud.Id = solExistente.Id;
                        ConsultaSolicitud.ModificarSolicitud(solicitud);
                        ConsultaSolicitud.ModificarResponsableFondo(solicitud.Id, IdResponsable);

                        if (proceso.Responsable.Id != IdResponsable)
                        {
                            ConsultasGenerales.ActualizarEstadoUsuarioRepresentate(proceso.Responsable.Id, "Habilitado");
                            ConsultasGenerales.ActualizarEstadoUsuarioRepresentate(IdResponsable, "Desabilitado");
                            proceso.Responsable = ConsultaUsuario.LeerRepresentante(IdResponsable);
                        }

                        proceso.Solicitud = solicitud;

                        HttpContext.Session.SetComplexData("Proceso", proceso);
                        return(Json(new
                        {
                            validacion = true,
                            mensaje = "Se han guardado los datos satisfactoriamente.",
                            solicitud = proceso.Solicitud
                        }));
                    }
                    else if (!DatosModificados)
                    {
                        return(Json(new
                        {
                            validacion = true,
                            mensaje = "No existen cambios en la solicitud.",
                            solicitud = proceso.Solicitud
                        }));
                    }
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.ToString());
            }
            return(Json(new
            {
                validacion = false,
                mensaje = "No se han guardado los datos. Verifique los campos y vuelva a intentarlo nuevamente."
            }));
        }