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

Platzhalter bei Buchungen hinzufügen #608

Open
michelvaclav opened this issue Aug 3, 2023 · 7 comments
Open

Platzhalter bei Buchungen hinzufügen #608

michelvaclav opened this issue Aug 3, 2023 · 7 comments

Comments

@michelvaclav
Copy link

Hallo,
ich habe zwei Platzhalter angelegt (Gast bzw. Ballmaschine), die bei Buchungen ausgewählt werden können sollten.
In der Benutzerverwaltung sind diese als Benutzer mit Status Platzhalter angelegt. Ausgefüllt ist nur das Feld "Alias".
Für die Reservierung ist eingestellt "Nach den Namen der anderen Spieler fragen (verpflichtend)".

Wenn nun ein registrierter Benutzer eine Reservierung vornehmen will und als Partner "Gast" eingibt, so erhält er die Fehlermeldung:

Die vollständigen Vor- und Nachnamen der anderen Spieler sind erforderlich
...
Exception details
...
Type
...
RuntimeException
...
Mitteilung
...
Die vollständigen Vor- und Nachnamen der anderen Spieler sind erforderlich

Wie macht man es richtig, so dass der Benutzer nur "Gast" oder "Ballmaschine" als Spielpartner eingeben muss?

Danke

@cbits68
Copy link

cbits68 commented Aug 3, 2023

Das Eine hat mit dem anderen nichts zu tun!
Wenn Du Platzhalter anlegst, können auf diese Benutzer direkt Plätze (über die Verwaltung) gebucht werden. Im Kalender erscheint dann als Buchende Person Gast oder Ballmaschine.

Wenn Mitspielende bei der Buchung angegeben werden müssen, dann ist das letztendlich nur ein Textfeld und hat nichts mit den im System angelegten Benutzern zu tun. Du kannst da "Angela Merkel" rein schreiben obwohl es keinen solchen Benutzer im System gibt. Dies ist nur zu Dokumentationszwecken während Corona eingerichtet worden, damit die Spielenden sich nicht in einer Liste vorort eintragen müssen. Aber auch da hätten Sie ja Angele Merkel rein schreiben können ;-)

Das Gast oder Ballmaschine nicht als Mitspielende akzeptiert werden liegt einfach nur daran, das das System Vor- und Nachnamen erwartet und somit eine Prüfung durchführt ob ein Buchstabenkombination mit Leerzeichen dazischen eingegeben wurde., was ja weder bei Gast noch bei Ballmaschine der Fall ist und somit kommt die Fehelrmeldung.

Gruß
Andreas

@michelvaclav
Copy link
Author

Danke für die Erläuterung.
Wenn es eh keine Prüfung auf registrierte Mitglieder gibt, wäre es dann nicht sinnvoller, auch auf die Prüfung der Schreibweise "Vorname Nachname" zu verzichten?
Ich beschäftige mich seit gestern mit dem ansonsten tollen Buchungssystem und versuche eine Möglichkeit zu finden, wie wir später (gerne auch auf der Datenbank selbst) die Anzahl der Gastspieler bzw. die Häufigkeit der Ballmaschinennutzung auswerten können. Oder auch, welcher Nutzer wie oft auf dem Platz war. Das geht natürlich nicht, wenn die Mitspieler als Freitext angegeben werden können, denn da hat man ruckzuck verschiedene Schreibweisen etc.
Macht aber nix, wir probieren es trotzdem. Endlich weg vom Vor-Ort-Buchen.

michel_vaclav

@cbits68
Copy link

cbits68 commented Aug 3, 2023

Gastbuchungen habe ich über ein Zusatzprodukt Gastspieler realisiert.
Wenn ein Mitrglied mit einem Gast speielen möchte kostet das bei uns 10€.
Das Gleiche könnte man natürlich auch mit einer Ballmaschine tun, wobei man leider im System dann noch nicht verhindern kann, dass diese parallel gebucht wird. Könnte man aber sicher irgendwie coden ...

Die Mitglieder können das Produkt Gastspieler bei der Buchung mit buchen und geben dort auch den Namen der Gastspieler an.
Das kann man dann auch recht gut über das Backend auswerten, das diese Buchungen ja einen offenen Rechnungsbetrg >0€ haben.
Gäste können bei uns selbst keine Plätze buchen. Gäste dürfen nur bei uns spielen, wenn ein Mitglied dabei ist und gebucht hat.

Die Prüfung auf Eingabe von Vor- und Nachnamen könntest Du natürlich im Code auch einfach auskommentieren, dann wäre auch die Eingabe eines Wortes möglich. Schreibfehler wie Gats oder Balmachiene werden dann natürlich auch nicht überprüft, was es bei einer Auswertung dann eher aufwändiger macht.

@michelvaclav
Copy link
Author

Habs jetzt für mich erst einmal anders gelöst und in den Code eingegriffen: jetzt wird vor der Prüfung auf "Vorname Nachname" geprüft, ob der Mitspieler "Ballmaschine" oder "Gast" heißt. Falls ja, wird der Eintrag so genommen (mit ein paar Syntaxprüfungen). Nicht universell einsetzbar, aber es funktioniert.

@Sahel2021
Copy link

Die Prüfung auf Eingabe von Vor- und Nachnamen könntest Du natürlich im Code auch einfach auskommentieren, dann wäre auch die Eingabe eines Wortes möglich.

Dies interessiert uns, weil wir die Ballmaschine als Mitspieler im Popup der Buchungsanzeige haben wollen.

Könntest du bitte sagen, wo genau die Prüfung auf Eingabe von Vor- und Nachnamen auskommentiert werden kann?

@cbits68
Copy link

cbits68 commented Aug 16, 2023

schau mal in issue #437
Dort ist auch der Verweis auf
ep3-bs/module/Square/src/Square/Controller/BookingController.php

Line 138 in 139e216

@michelvaclav
Copy link
Author

Dies interessiert uns, weil wir die Ballmaschine als Mitspieler im Popup der Buchungsanzeige haben wollen.

Könntest du bitte sagen, wo genau die Prüfung auf Eingabe von Vor- und Nachnamen auskommentiert werden kann?

/module/Square/src/Square/Controller/BookingController.php Zeilen 138ff ersetzen mit:
foreach ($playerNames as $playerName) {
if ( strtolower($playerName['value']) == 'gast' ) {
}
elseif ( strtolower($playerName['value']) == 'ballmaschine' ) {
}
elseif (strlen(trim($playerName['value'])) < 5 || strpos(trim($playerName['value']), ' ') === false) {
throw new \RuntimeException('Die vollständigen Vor- und Nachnamen der anderen Spieler sind erforderlich');
}
}
} else {
$playerNames = null;
}
Ich hab die alte Prüfung drin gelassen und prüfe primär auf den Platzhalter "gast" in diversen Schreibweisen, gefolgt von "ballmaschine" in diversen Schreibweisen und wenn keine der beiden Bedingungen erfüllt ist, dann die ursprüngliche Prüfung.
Könnte man jederzeit um weitere Platzhalter erweitern.

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

No branches or pull requests

3 participants