Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Abwesenheiten bei Player wird nicht gespeichert #1661

Open
waiter1987 opened this issue Jan 10, 2024 · 21 comments
Open

Abwesenheiten bei Player wird nicht gespeichert #1661

waiter1987 opened this issue Jan 10, 2024 · 21 comments
Labels

Comments

@waiter1987
Copy link

Wenn man Abwesenheiten im einer Mannschaft zugeordneten Player pflegt, wird dies nicht gespeichert!

image

@ortwin20000
Copy link
Contributor

Hier muss in der Datei administrator\components\com_sportsmanagement\models\teamplayer.php folgender Code ab Zeile 550 hinzugefügt werden:

if ($data['injury_date_start'] == '')
{
	$data['injury_date_start'] = '0000-00-00';
}

if ($data['injury_date_end'] == '')
{
	$data['injury_date_end'] = '0000-00-00';
}

if ($data['susp_date_start'] == '')
{
	$data['susp_date_start'] = '0000-00-00';
}

if ($data['susp_date_end'] == '')
{
	$data['susp_date_end'] = '0000-00-00';
}

if ($data['away_date_start'] == '')
{
	$data['away_date_start'] = '0000-00-00';
}

if ($data['away_date_end'] == '')
{
	$data['away_date_end'] = '0000-00-00';
}

if ($data['injury_date_start'] != '0000-00-00' && $data['injury_date_start'] != '')
{
	$data['injury_date_start'] = sportsmanagementHelper::convertDate($data['injury_date_start'], 0);
}

if ($data['injury_date_end'] != '0000-00-00' && $data['injury_date_end'] != '')
{
	$data['injury_date_end'] = sportsmanagementHelper::convertDate($data['injury_date_end'], 0);
}

if ($data['susp_date_start'] != '0000-00-00' && $data['susp_date_start'] != '')
{
	$data['susp_date_start'] = sportsmanagementHelper::convertDate($data['susp_date_start'], 0);
}

if ($data['susp_date_end'] != '0000-00-00' && $data['susp_date_end'] != '')
{
	$data['susp_date_end'] = sportsmanagementHelper::convertDate($data['susp_date_end'], 0);
}

if ($data['away_date_start'] != '0000-00-00' && $data['away_date_start'] != '')
{
	$data['away_date_start'] = sportsmanagementHelper::convertDate($data['away_date_start'], 0);
}

if ($data['away_date_end'] != '0000-00-00' && $data['away_date_end'] != '')
{
	$data['away_date_end'] = sportsmanagementHelper::convertDate($data['away_date_end'], 0);
}

grafik

@ortwin20000
Copy link
Contributor

Zwischen Joomla 3 und Joomla 4 hat sich der MySQL-Modus geändert und akzeptiert manches nicht mehr. In diesem Fall werden auch noch für manche Int-Felder im UPDATE Werte mit '' übergeben. Das führt ab Joomla 4 zu Problemen. Mit diesem zusätzlichen Code ab Zeile 550 setze ich zumindest die Werte auf 0. Keine Ahnung ob die Felder im System überhaupt benötigt werden.

if ($data['injury_date'] == '')
{
	$data['injury_date'] = '0';
}

if ($data['injury_end'] == '')
{
	$data['injury_end'] = '0';
}

if ($data['suspension_date'] == '')
{
	$data['suspension_date'] = '0';
}

if ($data['suspension_end'] == '')
{
	$data['suspension_end'] = '0';
}

if ($data['away_date'] == '')
{
	$data['away_date'] = '0';
}

if ($data['away_end'] == '')
{
	$data['away_end'] = '0';
}

@ortwin20000
Copy link
Contributor

ortwin20000 commented Jan 15, 2024

Also in J3 und J4 funktioniert es damit. J5 kann ich mir erst zuhause anschauen. Ist aber auch komisch das bei dir das Datum in den Feldern immer mit 30-11-2001 eingetragen ist obwohl in der Datenbank nichts drin steht.

grafik

@waiter1987
Copy link
Author

so. Dank der Änderung im Code konnte ich jetzt die Abwesenheit speichern. ABER nur, wenn ich die vorgegebenen Werte im Datumsbereich lösche und die Felder leer lasse. Wo kommen die Daten "30-11-2001" her?

Im Backend bei den Mitarbeitern ist jetzt eine gelb-rote Karte. Im Frontend nicht. Hier am Beispiel 1. FC Köln (Steffen Baumgart ist hier zum 31.12.2023 beurlaubt)

image

Und dann sehe ich in der Aufstellung auch keine Auswirkung. Hier müsste die Funktion greifen, dass abwesende Mitarbeiter und Spieler nicht mehr angezeigt werden können.
image

@diddipoeler
Copy link
Owner

Sorry, dass ich mich erst jetzt melde.
Werde das heute Nachmittag mal einbauen.

@ortwin20000
Copy link
Contributor

Das mit dem Datum hab ich jetzt herausbekommen. Da ich bei leerem Datum beim Speichern den Wert auf 0000-00-00 setze wird beim Laden für die Anzeige dieser Wert in das Kalenderfeld übernommen und das kann er anscheinend nicht anzeigen und setzt es deswegen auf 30-11-2001.

Codeänderung an der View-Datei administrator\components\com_sportsmanagement\views\teamplayer\view.html.php den Code ab Zeile 89

/** personendaten setzen */
$this->form->setValue('position_id', null, $this->project_person->position_id);
$this->form->setValue('projectteam_id', null, $this->project_team_id);
$this->form->setValue('injury', null, $this->project_person->injury);
$this->form->setValue('injury_date', null, $this->project_person->injury_date);
$this->form->setValue('injury_end', null, $this->project_person->injury_end);
$this->form->setValue('injury_detail', null, $this->project_person->injury_detail);
$this->form->setValue('injury_date_start', null, $this->project_person->injury_date_start);
$this->form->setValue('injury_date_end', null, $this->project_person->injury_date_end);

$this->form->setValue('suspension', null, $this->project_person->suspension);
$this->form->setValue('suspension_date', null, $this->project_person->suspension_date);
$this->form->setValue('suspension_end', null, $this->project_person->suspension_end);
$this->form->setValue('suspension_detail', null, $this->project_person->suspension_detail);
$this->form->setValue('susp_date_start', null, $this->project_person->susp_date_start);
$this->form->setValue('susp_date_end', null, $this->project_person->susp_date_end);

$this->form->setValue('away', null, $this->project_person->away);
$this->form->setValue('away_date', null, $this->project_person->away_date);
$this->form->setValue('away_end', null, $this->project_person->away_end);
$this->form->setValue('away_detail', null, $this->project_person->away_detail);
$this->form->setValue('away_date_start', null, $this->project_person->away_date_start);
$this->form->setValue('away_date_end', null, $this->project_person->away_date_end);
$this->form->setValue('persontype', null, $this->app->getUserState("$this->option.persontype", '0'));

mit diesem Code ersetzen

/** personendaten setzen */
$this->form->setValue('position_id', null, $this->project_person->position_id);
$this->form->setValue('projectteam_id', null, $this->project_team_id);
$this->form->setValue('injury', null, $this->project_person->injury);
$this->form->setValue('injury_date', null, $this->project_person->injury_date);
$this->form->setValue('injury_end', null, $this->project_person->injury_end);
$this->form->setValue('injury_detail', null, $this->project_person->injury_detail);
$this->form->setValue('injury_date_start', null, $this->project_person->injury_date_start == "0000-00-00" ? null : $this->project_person->injury_date_start);
$this->form->setValue('injury_date_end', null, $this->project_person->injury_date_end == "0000-00-00" ? null : $this->project_person->injury_date_end);

$this->form->setValue('suspension', null, $this->project_person->suspension);
$this->form->setValue('suspension_date', null, $this->project_person->suspension_date);
$this->form->setValue('suspension_end', null, $this->project_person->suspension_end);
$this->form->setValue('suspension_detail', null, $this->project_person->suspension_detail);
$this->form->setValue('susp_date_start', null, $this->project_person->susp_date_start == "0000-00-00" ? null : $this->project_person->susp_date_start);
$this->form->setValue('susp_date_end', null, $this->project_person->susp_date_end == "0000-00-00" ? null : $this->project_person->susp_date_end);

$this->form->setValue('away', null, $this->project_person->away);
$this->form->setValue('away_date', null, $this->project_person->away_date);
$this->form->setValue('away_end', null, $this->project_person->away_end);
$this->form->setValue('away_detail', null, $this->project_person->away_detail);
$this->form->setValue('away_date_start', null, $this->project_person->away_date_start == "0000-00-00" ? null : $this->project_person->away_date_start);
$this->form->setValue('away_date_end', null, $this->project_person->away_date_end == "0000-00-00" ? null : $this->project_person->away_date_end);
$this->form->setValue('persontype', null, $this->app->getUserState("$this->option.persontype", '0'));

@waiter1987
Copy link
Author

Super...

image

Fehlt nur noch die Funktion bzgl. des Nicht-Anzeigens in der Aufstellung, damit das ganze auch da eine Wirkung hat

@diddipoeler
Copy link
Owner

Gibt es noch einen Request?

@waiter1987
Copy link
Author

Es fehlt die Funktion hinter ein Abwesenheit in der Aufstellung.

Ohne die Programmierung dahinter zu kennen.

Abfrage:
Es werden nur die angezeigt, die (Match Datum Spieltag und Abwesenheit nicht gesetzt bzw. wenn gesetzt Abwesenheitsdatum in der Zukunft liegend)! Oder anders herum: Die NICHT anzeigen, die auf abwesend/verletzte/suspendiert gesetzt sind, ggf. Prüfung Datum mit Datum Spiel.

Asonsten ist das an sich nur eine reine Anzeige, ohne Funktion || oder es hat eine Funktion, die ich noch nicht kenne...

diddipoeler added a commit that referenced this issue Jan 19, 2024
@diddipoeler
Copy link
Owner

Habe den Code jetzt übernommen.
Wäre aber sehr hilfreich, wenn von euch ein Pull Request gesendet wird.

@waiter1987
Copy link
Author

Ich stelle das mal zusammen, was wir alles "vorab" geändert haben!
JSM_Codeänderungen.pdf

Zum Teil ist es hier im GitHub auch schon vom Code her drin.

diddipoeler added a commit that referenced this issue Jan 20, 2024
@diddipoeler
Copy link
Owner

So, habe alles nachgepflegt.
@waiter1987 Wenn zukünftig Änderungen vorgenommen werden, kann auch @ortwin20000 einen Pull Request erstellen :-)

@waiter1987
Copy link
Author

So, habe alles nachgepflegt. @waiter1987 Wenn zukünftig Änderungen vorgenommen werden, kann auch @ortwin20000 einen Pull Request erstellen :-)

Machen wir. Wenn wir was feststellen... dann pro Code-Änderung ein Issue?

bei dem Thema bleibt für mich nur noch die Frage, ob hinter der Abwesenheit bei Spieler und Staff eine Funktion zu erwarten ist. Hatte das hier versucht zu umreißen.

#1661 (comment)

Bei JL jedenfalls gab es diese Funktion ;-) Das macht die Aufstellung etwas schlanker...

@waiter1987
Copy link
Author

@diddipoeler
Den Code administrator/components/com_sportsmanagement/models/matches.php ist nicht übernommen. Hatte heute bei den Trainer im Spieltag jeweils eine "0" stehen.

@diddipoeler
Copy link
Owner

Wo steht denn die Codeänderung zu administrator/components/com_sportsmanagement/models/matches.php ?

@waiter1987
Copy link
Author

Wo steht denn die Codeänderung zu administrator/components/com_sportsmanagement/models/matches.php ?

image

Seite 3

diddipoeler added a commit that referenced this issue Jan 24, 2024
@diddipoeler
Copy link
Owner

Müsste auch erledigt sein.

@waiter1987
Copy link
Author

Ich wollte jetzt mal die Kader etwas abspecken und habe Spieler, die in der Saison noch nicht gespielt haben im Kader auf "ausgeblendet" gesetzt. Hat aber kein Ergebnis. Wird sowohl in der Aufstellung als auch im Frontend ganz normal angezeigt! Hier fehlt m.E. die erweiterte Programmierung.

--> Wenn Fehlzeit --> keine Aufstellung möglich. Ggf mit Prüfung des Zeitraums (den kann man ja von/bis angeben!)

image
--> so in der Mannschaft hinterlegt!

image
So sieht es in der Aufstellung aus!

@waiter1987
Copy link
Author

Auch wird eine Abwesenheit für die komplette Saison und nicht fürs Projektteam gesetzt.

Ich hatte bspw. Steffen Baumgart auf Abwesend beim 1.FC Köln gesetzt. Jetzt ist der Trainer beim Hamburger SV geworden und war dort auch ab 31.12.23 abwesend. Das müsste bitte angepasst werden.

@waiter1987
Copy link
Author

Gibt es hier eine Lösung? Habe jetzt bei der EM das Phänomen, dass die EM die gleiche Saison hat wie die Freundschaftsspiele (der Nationalmannschaften). Ergo sind da alle da schon hinterlegten Spieler drin. Zwar ist die Position "rot" unterlegt und wird da erst übernommen, wenn man den Spieler nochmal speichert, aber beim Staff geht genau das nicht.
image
Hier ein Screenshot von den Spielern!

Beim Staff sieht das zwar genauso aus:
image
Da werden aber alle Mitglieder übernommen. Nur dann halt ohne Position
image
Hier am Beispiel Flick!

Könnte mir hier nur helfen, in dem ich die EM als Extra Saison mache. Löst aber nicht das Problem als solches

@waiter1987
Copy link
Author

gibt es hierfür schon etwas neues? Es wäre echt super, wenn
a) zum einen die Abwesenheiten pro Projektmannschaft gehen würde und nicht pro Saison
b) hinter der Abwesenheit auch noch ein Funktion steckt, die z.B. verhindert, dass ich einen abwesenden Spieler oder Trainer überhaupt aufstellen kann

Danke

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants