示例#1
0
void StrategyNotificaciones::notificar(Consulta* consulta)
{
	stringstream notificacion;

	string tipoConsulta = (consulta->tipo() == TipoConsulta::comun) ? "COMUN" : "URGENCIA";

	Usuario* medico   = consulta->medico();
	Usuario* paciente = consulta->paciente();

	notificacion << "Paciente diagnosticado: " << paciente->getNombre() << " " << paciente->getApellido() << endl
	             << "Médico notificado: " << medico->getNombre() << " " << medico->getApellido() << endl
	             << "Tipo de consulta: " << tipoConsulta << endl
	             << "Hora de consulta: " << consulta->fechaConsulta() << endl;

	_notificaciones.push_back(notificacion.str());
}
示例#2
0
void ComandosUsuario::altaReactivacionUsuario()
{
	IControladorUsuario* cUsuario = FabricaControladores::instancia()->controladorUsuario()->instancia();
	bool exito;
	Usuario* newUser;
	
	do
		
	{
		exito = true;
		string ci;
		cout << "Ingrese la Cedula de Identidad del Usuario (o presione q para salir): " << endl;
		cin >> ci;

		if (ci=="q")
			return;

		if (cUsuario->findUsuario(ci) != NULL)
		{
			cout << "El usuario ya existe en el sistema. " << endl;
			Usuario* usuario = cUsuario->findUsuario(ci);
			cout << "Nombre: "   << usuario->getNombre() << endl;
			cout << "Apellido: " << usuario->getApellido() << endl;
			if (usuario->getGenero() == Genero::femenino)
				cout << "Sexo: Femenino" << endl;
			else
			{
				if (usuario->getGenero() == Genero::indeterminado)
					cout << "Sexo: Indeterminado" << endl;
				else
					cout << "Sexo: Masculino" << endl;
			}		

			cout << "Edad: " << usuario->edad() << endl;
			
			vector<Rol> roles;
			for (vector<Rol>::iterator it = usuario->roles().begin(); it != usuario->roles().end(); ++it)
			{
				Rol rol = *it;
			if (rol == Rol::admin)
				cout << "Rol: Admin" << endl;

			if (rol == Rol::medico)
				cout << "Rol: Medico" << endl;

			if (rol == Rol::socio)
				cout << "Rol: Socio" << endl;

			if (rol == Rol::master)
				cout << "Rol: Master" << endl;			
			}
			
			if (usuario->estaActivo())
				cout << "Estado: Activo" << endl;
//				roles.insert(roles.begin(), rol);	
			else
			{
				cout << "Estado: Inactivo" << endl;
				cout << "¿Desea reactivar el usuario? (y/n)?" << endl;
				string reactivar;
				cin >> reactivar;
				if (reactivar=="y")
				{
					usuario->activar();
					cout << "El usuario ha sido reactivado." << endl;
				}
			}	
		}
		else
		{
			string nombre;
			string apellido;
			Fecha fechaNac;
			string gen;
			string r1, r2;
			Genero genero;
			Roles roles {};

			cout << "Ingrese el nombre del Usuario: " << endl;
			cin >> nombre;

			cout << "Ingrese el apellido del Usuario: " << endl;
			cin >> apellido;

			cout << "Ingrese el sexo (M/f): " << endl;
			cin >> gen;

			if (gen=="f")
				genero = Genero::femenino;
			else
				genero = Genero::masculino;

			int dia, mes, anyo;

			cout << "Ingrese el dia del nacimiento: " << endl;
			cin >> dia;
			cout << "Ingrese el mes del nacimiento: " << endl;
			cin >> mes;
			cout << "Ingrese el anyo del nacimiento: " << endl;
			cin >> anyo;

			fechaNac = Fecha(dia, mes, anyo);

			cout << "Ingrese el primer rol [a(dmin), m(edico), s(ocio)]: " << endl;
			cin >> r1;

			cout << "Ingrese el segundo rol (n para omitir): " << endl;
			cin >> r2;
			
			if (r1 == "a")
			{
				roles.push_back(Rol::admin);
			}
			else if (r1 == "m")
			{
				roles.push_back(Rol::medico);
			}
			else // socio por defecto
			{
				roles.push_back(Rol::socio);
			}
			
			if (r2 == "a")
			{
				if (r1 == "m")
				{
					cout << "Error, el usuario no puede ser medico y administrativo a la vez." << endl;
					exito = false;
				}
				else
					roles.push_back(Rol::admin);
			}
			else if (r2 == "m")
			{	if (r1 == "a")
				{
					cout << "Error, el usuario no puede ser medico y administrativo a la vez." << endl;
					exito = false;
				}
				else
					roles.push_back(Rol::medico);
			}
			else if (r2 != "n") // socio por defecto
			{
				roles.push_back(Rol::socio);
			}
			
			if (exito)
			{
				newUser = cUsuario->altaUsuario(ci, nombre, apellido, genero, fechaNac, roles);
				cout << "El usuario fue dado de alta con exito." << endl;
			}
			else
				cout << "Ocurrió un error imprevisto." << endl;
		}
	}