Rollen-Jubiläum

Hast du Vorschläge, was wir an Admidio noch verbessern könnten ? Hier kannst du uns deine Vorstellung an neuen Funktionen mitteilen.
Antworten
oliver
Beiträge: 238
Registriert: 25. Nov 2014, 19:47

Rollen-Jubiläum

Beitrag von oliver »

Hallo zusammen,

um Ehrungen (150 Jahre Vereinsmitglied, 70 Jahre in der Vorstandschaft etc) herauszusuchen, wäre ein Modul "Rollenjubiläum" interessant. Der passende SQL dazu (Kann man zur Not natürlich auch ohne Oberfläche nutzen):

Code: Alles auswählen

select 
	adm_members.mem_usr_id AS mem_User_ID,
	EXTRACT(YEAR FROM mem_begin) AS Beginn,
	EXTRACT(YEAR FROM CURDATE()) AS Aktuelles_Jahr,
	EXTRACT(YEAR FROM CURDATE()) - EXTRACT(YEAR FROM mem_begin) AS Jahre_Mitgliedschaft,
	adm_roles.rol_name AS Rolle,
	tbl_nachname.Nachname AS Nachname,
	tbl_vorname.Vorname AS Vorname

from
	adm_members
	INNER JOIN adm_roles ON adm_members.mem_rol_id = adm_roles.rol_id
	INNER JOIN 
		(select  adm_user_data.usd_usr_id AS User_ID, usd_value AS Nachname
			from adm_user_data inner Join adm_user_fields on adm_user_data.usd_usf_id=adm_user_fields.usf_id
			where adm_user_fields.usf_name_intern = 'LAST_NAME') AS tbl_nachname
		ON adm_members.mem_usr_id = tbl_nachname.User_ID
	INNER JOIN 
		(select  adm_user_data.usd_usr_id AS User_ID, usd_value AS Vorname
			from adm_user_data inner Join adm_user_fields on adm_user_data.usd_usf_id=adm_user_fields.usf_id
			where adm_user_fields.usf_name_intern = 'FIRST_NAME') AS tbl_vorname
		ON adm_members.mem_usr_id = tbl_vorname.User_ID
where
	/* Mitgliedschaft nicht beendet */
	adm_members.mem_end > CURDATE()

Having 
	/* Jahre Mitgliedschaft eine 'Runde' Zahl */
	Jahre_Mitgliedschaft='10'
	OR Jahre_Mitgliedschaft='15'
	OR Jahre_Mitgliedschaft='20'
	OR Jahre_Mitgliedschaft='25'
	OR Jahre_Mitgliedschaft='30'
	OR Jahre_Mitgliedschaft='40'
	OR Jahre_Mitgliedschaft='50'
	OR Jahre_Mitgliedschaft='60'
	OR Jahre_Mitgliedschaft='65'
	OR Jahre_Mitgliedschaft='70'
	OR Jahre_Mitgliedschaft='75'
	OR Jahre_Mitgliedschaft='80'
	OR Jahre_Mitgliedschaft='85'
	OR Jahre_Mitgliedschaft='90'

Order by mem_User_ID
Hier nun noch eine Auswahl anbieten, welche Jahre berücksichtigt werden sollen und ob vom aktuellen Jahr gerechnet werden soll ( also EXTRACT(YEAR FROM CURDATE()) ) oder ob ein bestimmtes Jahr als Basis genommen werden soll. Dann noch die auszuwertenden Rollen filtern und fertig. Wer hat Lust und Zeit?

Guten Rutsch!!!
Antworten