Open mbschenkel opened 4 years ago
Wird im Moment manuell über SQL Abfragen direkt auf der Datenbank erstellt, nach Anfrage aus der BG
Wunsch BG: Kann bei der Rüeblistatisitk noch folgende Infos angezeigt werden: wann das Abo aktiv wurde (für Neueintritte unter dem Jahr, damit Joelle diese nicht mahnt). Evtl. sogar zusätzliche Ämtli anzeigen (BG, IT, Medien, Depotbetreuung…) diese zusätzlichen Infos haben eine niedere Priorität, da wir dies auch mit der Vergabe von Rüebli für die Jobs erledigen können.
Markus:
Zeitschätzung: 1<MT
Aktuelle Probleme:
@mbschenkel Wo kann ich die Ämtlich nachsehen? Der Taetigkeitsbereich scheint nicht gesetzt zu sein. Oder ist das irgenwo anders?
Ist das Eintrittsdatum irgendwo gesetzt?
SELECT
l.id,
l.first_name,
l.last_name,
sum(j.multiplier) AS ruebli,
t.name
FROM
my_ortoloco_loco AS l
LEFT JOIN my_ortoloco_boehnli b ON (b.loco_id = l.id)
LEFT JOIN my_ortoloco_job j ON (b.job_id = j.id
AND extract(year FROM j.time) = EXTRACT(YEAR FROM CURRENT_DATE))
LEFT JOIN my_ortoloco_abo a ON (a.id = l.abo_id)
LEFT JOIN my_ortoloco_taetigkeitsbereich_locos tl ON (tl.loco_id = l.id)
LEFT JOIN my_ortoloco_taetigkeitsbereich t ON (t.id = tl.id)
WHERE
a.active IS TRUE
GROUP BY
l.id,
t.name
ORDER BY
ruebli DESC;
Doch, die Tätigkeitsbeteiche sind schon in Benutzung, die siehst du zum Beispiel in der Mitgliederliste http://intranet.bioco.ch/my/filters
my_ortoloco_taetigkeitsbereich_locos ist die many-to-many Verknüpfung dazu
Wenn wir dir Ämtli in der Rüebli Übersicht tatsächlich anzeigen möchten, würde ich mir aber schon überlegen, dass in Django umzusetzen, statt eines komplizierten Queries, da sollte das recht einfach sein
Simon Kistler notifications@github.com schrieb am Mo., 17. Aug. 2020, 23:36:
@mbschenkel https://github.com/mbschenkel Wo kann ich die Ämtlich nachsehen? Der Taetigkeitsbereich scheint nicht gesetzt zu sein. Oder ist das irgenwo anders?
Ist das Eintrittsdatum irgendwo gesetzt?
SELECT
l.id,
l.first_name,
l.last_name,
sum(j.multiplier) AS ruebli,
t.name
FROM
my_ortoloco_loco AS l
LEFT JOIN my_ortoloco_boehnli b ON (b.loco_id = l.id)
LEFT JOIN my_ortoloco_job j ON (b.job_id = j.id
AND extract(year FROM j.time) = EXTRACT(YEAR FROM CURRENT_DATE))
LEFT JOIN my_ortoloco_abo a ON (a.id = l.abo_id)
LEFT JOIN my_ortoloco_taetigkeitsbereich_locos tl ON (tl.loco_id = l.id)
LEFT JOIN my_ortoloco_taetigkeitsbereich t ON (t.id = tl.id)
WHERE
a.active IS TRUE
GROUP BY
l.id,
t.name
ORDER BY
ruebli DESC;
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/mbschenkel/bioco-intranet/issues/81#issuecomment-675127977, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABQGSKVITJTLRDZWEMDFPE3SBGPGLANCNFSM4PULGSSA .
Ah ja min Fehler, es ist die taetigkeitsbereich ID.
Das wäre das Query. Es zeigt alle Mitglieder mit einem aktiven Abo.
Verglichen zu anderen Queries die ich gemacht habe ist das noch Übersichtlich :-D
Soll ich es in Heroku einfügen?
SELECT
l.id,
l.first_name,
l.last_name,
sum(j.multiplier) AS ruebli,
l.abo_id,
(
SELECT
string_agg(xt.name, ', ')
FROM
my_ortoloco_taetigkeitsbereich_locos xtl
LEFT JOIN my_ortoloco_taetigkeitsbereich_locos tl ON (tl.loco_id = l.id)
LEFT JOIN my_ortoloco_taetigkeitsbereich xt ON (xt.id = xtl.taetigkeitsbereich_id)
WHERE
xtl.loco_id = l.id) AS Taetigkeitsbereiche
FROM
my_ortoloco_loco AS l
LEFT JOIN my_ortoloco_boehnli b ON (b.loco_id = l.id)
LEFT JOIN my_ortoloco_job j ON (b.job_id = j.id
AND extract(year FROM j.time) = EXTRACT(YEAR FROM CURRENT_DATE))
LEFT JOIN my_ortoloco_abo a ON (a.id = l.abo_id)
WHERE
a.active IS TRUE
GROUP BY
l.id
ORDER BY
ruebli DESC;
Was ist eigentlich mit dem Abo query? Wird das auch genutzt? Das oben stehende ist ja pro Mitglied.
Ich glaube für die BG ist es viel spannender die Rueblis pro Abo zu sehen. Grundsätzlich ist es ja nicht so wichtig ob jedes Mitglied seine Einsätze macht, sondern eher ob die Abos genügend leisten. Die können sich ja untereinander unterstützen.
Gruss Marty
Lieber Marty
Dem kann ich nur zustimmen.
Mit herzlichen Grüssen Marion Steiger
biocò | Gemüsegenossenschaft Region Baden-Brugg www.bioco.ch | info@bioco.ch | intranet.bioco.ch
Am 18.08.2020 um 09:57 schrieb MartinGruchow notifications@github.com:
Ich glaube für die BG ist es viel spannender die Rueblis pro Abo zu sehen. Grundsätzlich ist es ja nicht so wichtig ob jedes Mitglied seine Einsätze macht, sondern eher ob die Abos genügend leisten. Die können sich ja untereinander unterstützen.
Gruss Marty
— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/mbschenkel/bioco-intranet/issues/81#issuecomment-675322183, or unsubscribe https://github.com/notifications/unsubscribe-auth/AQQI2HVXUZJL6KFFPVDGMO3SBIX5DANCNFSM4PULGSSA.
@mbschenkel Irgend etwas verstehe ich noch nicht in der Datenbank Struktur. Das Query mit den Abos sollte eigentlich simpel sein. Mir ist aber aufgefallen dass mein Abo viel zu viele Einsätze hat. Als ich dann nur unsere Einsätze prüfen wollte bin ich auf folgendes gestossen:
SELECT
*
FROM
my_ortoloco_loco AS xl
LEFT JOIN my_ortoloco_boehnli xb ON (xb.loco_id = xl.user_id)
LEFT JOIN my_ortoloco_job xj ON (xb.job_id = xj.id)
WHERE
xl.abo_id = 1130;
(Bei roten jobs bin ich in der Job-Übersicht gar nicht eingetragen)
Als ich mir dann den Job vom 8. Dezember angeschaut habe war die Verwirrung komplett.
Ich weiss nun wo das Problem herkommt. Was ist die user_id und was ist die id (eigentlich ja auch eine ID)? In welchem Fall wird welche verwendet? In diesem Fall haben alle User eine ähnliche ID, was dann zu diesem Problem führt.
SELECT
a.id AS abo_id,
(
SELECT
CONCAT(xl.last_name, ' ', xl.first_name) AS primary_contact
FROM
my_ortoloco_loco xl
WHERE
xl.id = a.primary_loco_id) AS primary_loco, a.groesse, a.paid, a.groesse * 10 AS minimum_ruebli, (
SELECT
CASE WHEN sum(xj.multiplier) > 0 THEN
sum(xj.multiplier)
ELSE
0
END AS ruebli
FROM
my_ortoloco_loco AS xl
LEFT JOIN my_ortoloco_boehnli xb ON (xb.loco_id = xl.id)
LEFT JOIN my_ortoloco_job xj ON (xb.job_id = xj.id
AND extract(year FROM xj.time) = EXTRACT(YEAR FROM CURRENT_DATE))
WHERE
xl.abo_id = a.id) AS anzahl_ruebli
FROM
my_ortoloco_abo a
LEFT JOIN my_ortoloco_loco AS l ON a.primary_loco_id = l.user_id
LEFT JOIN my_ortoloco_boehnli b ON (b.loco_id = l.user_id)
WHERE
a.active = TRUE
GROUP BY
a.id
ORDER BY
anzahl_ruebli ASC;
Und so sähe das Resultat aus.
@MartinGruchow @marionsteiger könnt ihr damit arbeiten? Dann erstelle ich einen automatischen Export mit diesen Daten.
Wegen dem anstehenden Umzug bei uns kann ich grad nicht im Detail reinschauen.
Aber aus dem Kopf würde ich sagen, dass django eine eigene user Verwaltung hat (user table und user_id foreign key), die wir nur so teilweise nutzen (insb für den Login) und auf der die Mitglieder (loco table, ID foreign key) aufbaut.
User und loco sind dann 1:1 verknüpft aber nicht identisch. Kann zb sein, dass der Admin user keinen loco hat.
Simon Kistler notifications@github.com schrieb am Fr., 4. Sept. 2020, 08:42:
SELECT
a.id AS abo_id,
(
SELECT CONCAT(xl.last_name, ' ', xl.first_name) AS primary_contact FROM my_ortoloco_loco xl WHERE xl.id = a.primary_loco_id) AS primary_loco, a.groesse, a.paid, a.groesse * 10 AS minimum_ruebli, ( SELECT CASE WHEN sum(xj.multiplier) > 0 THEN sum(xj.multiplier) ELSE 0 END AS ruebli FROM my_ortoloco_loco AS xl LEFT JOIN my_ortoloco_boehnli xb ON (xb.loco_id = xl.id) LEFT JOIN my_ortoloco_job xj ON (xb.job_id = xj.id AND extract(year FROM xj.time) = EXTRACT(YEAR FROM CURRENT_DATE)) WHERE xl.abo_id = a.id) AS anzahl_ruebli
FROM
my_ortoloco_abo a
LEFT JOIN my_ortoloco_loco AS l ON a.primary_loco_id = l.user_id
LEFT JOIN my_ortoloco_boehnli b ON (b.loco_id = l.user_id)
WHERE
a.active = TRUE
GROUP BY
a.id
ORDER BY
anzahl_ruebli ASC;
Und so sähe das Resultat aus.
@MartinGruchow https://github.com/MartinGruchow @marionsteiger https://github.com/marionsteiger könnt ihr damit arbeiten? Dann erstelle ich einen automatischen Export mit diesen Daten. [image: Bioco__duaq6dkq7s6eh-_PostgreSQL_9_6_19] https://user-images.githubusercontent.com/4519899/92207940-70960980-ee8a-11ea-9dfd-25bf90241517.jpg
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/mbschenkel/bioco-intranet/issues/81#issuecomment-686947511, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABQGSKWCLK324XLRMDVLMULSECD3JANCNFSM4PULGSSA .
Die Rüeblistatiskik sieht schon mal gut aus! Die Ämtli müssen nicht angezeigt werden, wir werden die Arbeiten jeweils einfach mit den entsprechenden Rüebli abgleichen. Das EIntrittsdatum wäre hilfreich, aber ich kann die Liste auch separat führen und Joëlle jeweils zusammen mit der Statistik übermitteln.
@marionsteiger ich habe den Export erstellt. Die Daten müssten jetzt im Google Sheet sein. Ich habe noch eine Spalte mit fehlenden Rüeblis hinzugefügt. Das Eintrittsdatum existiert momentan noch nicht in der Datenbank. Ich erstelle einen neuen Task und schliesse diesen, sofern der aktuelle Export für dich in Ordnung ist.
Verstehe ich das richtig, dass du hier den extistierenden Tab "Per Abo" im Google Doc mit der neuen Implementation ersetzt hast? Ist Joelle darüber informiert? (Habe ihn nochmals darauf hingewiesen)
Ich habe das per Abo query angepasst... Wo ist das Sheet abgelegt? Warum wird die abo_id und der primäre_loco nicht angezeigt?
Die BG und Michael brauchen regelmässig eine Übersicht welches Abo bereits wie viele Einsätze (Ruebli) geleistet hat. So können dediziert Erinnerungen verschickt werden an die Abos, welche hinter dem Plan hinterher hinken und es können Massnahmen ergriffen werden, wie man dieses ausgleichen kann.
(Initiatoren: Fien / Martin)