mirror of
				https://gitlab.com/animath/si/plateforme.git
				synced 2025-11-04 13:52:17 +01:00 
			
		
		
		
	Validation paiements
This commit is contained in:
		@@ -16,6 +16,12 @@ if ($user === null)
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
$team = Team::fromId($user->getTeamId());
 | 
					$team = Team::fromId($user->getTeamId());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if ($team != null) {
 | 
				
			||||||
 | 
						$documents = $user->getAllDocuments($team->getTournamentId());
 | 
				
			||||||
 | 
						$payment = $user->getPayment();
 | 
				
			||||||
 | 
						$tournament = Tournament::fromId($team->getTournamentId());
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
$has_error = false;
 | 
					$has_error = false;
 | 
				
			||||||
$error_message = null;
 | 
					$error_message = null;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -41,6 +47,17 @@ if (isset($_POST["attribute_team"])) {
 | 
				
			|||||||
	}
 | 
						}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if (isset($_POST["validate_payment"])) {
 | 
				
			||||||
 | 
						$validate_payment = new ValidatePayment($_POST);
 | 
				
			||||||
 | 
						try {
 | 
				
			||||||
 | 
							$validate_payment->makeVerifications();
 | 
				
			||||||
 | 
							$validate_payment->validate();
 | 
				
			||||||
 | 
						} catch (AssertionError $e) {
 | 
				
			||||||
 | 
							$has_error = true;
 | 
				
			||||||
 | 
							$error_message = $e->getMessage();
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if (isset($_POST["view_as"]) && $_SESSION["role"] == Role::ADMIN) {
 | 
					if (isset($_POST["view_as"]) && $_SESSION["role"] == Role::ADMIN) {
 | 
				
			||||||
    if (!isset($_SESSION["admin"]))
 | 
					    if (!isset($_SESSION["admin"]))
 | 
				
			||||||
        $_SESSION["admin"] = $_SESSION["user_id"];
 | 
					        $_SESSION["admin"] = $_SESSION["user_id"];
 | 
				
			||||||
@@ -109,7 +126,39 @@ class AttributeTeam
 | 
				
			|||||||
	}
 | 
						}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if ($team != null)
 | 
					class ValidatePayment
 | 
				
			||||||
	$documents = $user->getAllDocuments($team->getTournamentId());
 | 
					{
 | 
				
			||||||
 | 
						private $accept, $reject;
 | 
				
			||||||
 | 
						private $message;
 | 
				
			||||||
 | 
						private $payment;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						public function __construct($data)
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							global $user;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							foreach ($data as $key => $value)
 | 
				
			||||||
 | 
								$this->$key = $value;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							$this->payment = $user->getPayment();
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						public function makeVerifications()
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							ensure($this->payment->getValidationStatus() == ValidationStatus::WAITING, "Le paiement n'était pas en attente.");
 | 
				
			||||||
 | 
							ensure(isset($this->accept) ^ isset($this->reject), "La sélection de validation est invalide.");
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						public function validate()
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							global $user, $team, $tournament;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							if ($this->accept)
 | 
				
			||||||
 | 
								$this->payment->setValidationStatus(ValidationStatus::VALIDATED);
 | 
				
			||||||
 | 
							else
 | 
				
			||||||
 | 
								$this->payment->setValidationStatus(ValidationStatus::NOT_READY);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							Mailer::sendValidatePayment($user, $team, $tournament, $this->payment, $this->message);
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
require_once "server_files/views/informations.php";
 | 
					require_once "server_files/views/informations.php";
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -11,7 +11,8 @@ if (!isset($_SESSION["user_id"]))
 | 
				
			|||||||
$user = $_SESSION["user"];
 | 
					$user = $_SESSION["user"];
 | 
				
			||||||
$team = $_SESSION["team"];
 | 
					$team = $_SESSION["team"];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
$tournament = Tournament::fromId($team->getTournamentId());
 | 
					if ($team != null)
 | 
				
			||||||
 | 
						$tournament = Tournament::fromId($team->getTournamentId());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
$has_error = false;
 | 
					$has_error = false;
 | 
				
			||||||
$error_message = null;
 | 
					$error_message = null;
 | 
				
			||||||
@@ -208,8 +209,10 @@ class SendDocument
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
$documents = $user->getAllDocuments($team->getTournamentId());
 | 
					if ($team != null) {
 | 
				
			||||||
if ($team->isSelectedForFinal())
 | 
						$documents = $user->getAllDocuments($team->getTournamentId());
 | 
				
			||||||
    $documents_final = $user->getAllDocuments($FINAL->getId());
 | 
						if ($team->isSelectedForFinal())
 | 
				
			||||||
 | 
							$documents_final = $user->getAllDocuments($FINAL->getId());
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
require_once "server_files/views/mon_compte.php";
 | 
					require_once "server_files/views/mon_compte.php";
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -127,4 +127,47 @@ class Mailer
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
		self::sendMail($organizer->getEmail(), "Ajout d'un organisateur pour le tournoi " . $tournament->getName() . " – TFJM² $YEAR", $content);
 | 
							self::sendMail($organizer->getEmail(), "Ajout d'un organisateur pour le tournoi " . $tournament->getName() . " – TFJM² $YEAR", $content);
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						public static function requestPaymentValidation(User $user, Team $team, Tournament $tournament, Payment $payment)
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							global $YEAR, $URL_BASE;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							$content = self::getTemplate("request_payment_validation");
 | 
				
			||||||
 | 
							$content = preg_replace("#{USER_FIRST_NAME}#", $user->getFirstName(), $content);
 | 
				
			||||||
 | 
							$content = preg_replace("#{USER_SURNAME}#", $user->getSurname(), $content);
 | 
				
			||||||
 | 
							$content = preg_replace("#{TEAM_NAME}#", $team->getName(), $content);
 | 
				
			||||||
 | 
							$content = preg_replace("#{TRIGRAM}#", $team->getTrigram(), $content);
 | 
				
			||||||
 | 
							$content = preg_replace("#{TOURNAMENT_NAME}#", $tournament->getName(), $content);
 | 
				
			||||||
 | 
							$content = preg_replace("#{AMOUNT}#", $payment->getAmount(), $content);
 | 
				
			||||||
 | 
							$content = preg_replace("#{PAYMENT_METHOD}#", PaymentMethod::getTranslatedName($payment->getMethod()), $content);
 | 
				
			||||||
 | 
							if ($payment->getMethod() == PaymentMethod::SCHOLARSHIP)
 | 
				
			||||||
 | 
								$content = preg_replace("#{PAYMENT_INFOS}#", "<a href=\"$URL_BASE/file/" . $payment->getTransactionInfos() . "\">Voir la notification de bourse</a>", $content);
 | 
				
			||||||
 | 
							else
 | 
				
			||||||
 | 
								$content = preg_replace("#{PAYMENT_INFOS}#", $payment->getTransactionInfos(), $content);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							self::sendMail($user->getEmail(), "Demande de validation de paiement pour le tournoi " . $tournament->getName() . " – TFJM² $YEAR", $content);
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						public static function sendValidatePayment(User $user, Team $team, Tournament $tournament, Payment $payment, $message)
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							global $YEAR, $URL_BASE;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							$content = self::getTemplate($payment->getValidationStatus() == ValidationStatus::VALIDATED ? "validate_payment" : "unvalidate_payment");
 | 
				
			||||||
 | 
							$content = preg_replace("#{FIRST_NAME}#", $user->getFirstName(), $content);
 | 
				
			||||||
 | 
							$content = preg_replace("#{SURNAME}#", $user->getSurname(), $content);
 | 
				
			||||||
 | 
							$content = preg_replace("#{TEAM_NAME}#", $team->getName(), $content);
 | 
				
			||||||
 | 
							$content = preg_replace("#{TRIGRAM}#", $team->getTrigram(), $content);
 | 
				
			||||||
 | 
							$content = preg_replace("#{TOURNAMENT_NAME}#", $tournament->getName(), $content);
 | 
				
			||||||
 | 
							$content = preg_replace("#{AMOUNT}#", $payment->getAmount(), $content);
 | 
				
			||||||
 | 
							$content = preg_replace("#{PAYMENT_METHOD}#", PaymentMethod::getTranslatedName($payment->getMethod()), $content);
 | 
				
			||||||
 | 
							if ($payment->getMethod() == PaymentMethod::SCHOLARSHIP)
 | 
				
			||||||
 | 
								$content = preg_replace("#{PAYMENT_INFOS}#", "<a href=\"$URL_BASE/file/" . $payment->getTransactionInfos() . "\">Voir la notification de bourse</a>", $content);
 | 
				
			||||||
 | 
							else
 | 
				
			||||||
 | 
								$content = preg_replace("#{PAYMENT_INFOS}#", $payment->getTransactionInfos(), $content);
 | 
				
			||||||
 | 
							if (isset($message) && strlen($message) > 0) {
 | 
				
			||||||
 | 
								$content = preg_replace("#{MESSAGE}#", "L'équipe d'organisation vous transmet les informations suivantes :<br /><br />" . $message . "<br />", $content);
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							self::sendMail($user->getEmail(), "Paiement pour le tournoi " . $tournament->getName() . " – TFJM² $YEAR", $content);
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										24
									
								
								server_files/services/mail_templates/unvalidate_payment.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								server_files/services/mail_templates/unvalidate_payment.html
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,24 @@
 | 
				
			|||||||
 | 
					<!DOCTYPE html>
 | 
				
			||||||
 | 
					<!--suppress HtmlUnknownTarget -->
 | 
				
			||||||
 | 
					<html lang="fr">
 | 
				
			||||||
 | 
					<head>
 | 
				
			||||||
 | 
					    <meta charset="UTF-8">
 | 
				
			||||||
 | 
					    <title>Non-validation du paiement pour le TFJM² {YEAR}</title>
 | 
				
			||||||
 | 
					</head>
 | 
				
			||||||
 | 
					<body>
 | 
				
			||||||
 | 
					Bonjour {FIRST_NAME} {SURNAME},<br />
 | 
				
			||||||
 | 
					<br />
 | 
				
			||||||
 | 
					Votre paiement pour le TFJM² {YEAR} a malheureusement été rejeté. Pour rappel, vous aviez fourni ces informations :<br /><br />
 | 
				
			||||||
 | 
					<strong>Équipe :</strong> {TEAM_NAME} ({TRIGRAM})<br />
 | 
				
			||||||
 | 
					<strong>Tournoi :</strong> {TOURNAMENT_NAME}<br />
 | 
				
			||||||
 | 
					<strong>Moyen de paiement :</strong> {PAYMENT_METHOD}<br />
 | 
				
			||||||
 | 
					<strong>Montant :</strong> {AMOUNT} €<br />
 | 
				
			||||||
 | 
					<strong>Informations sur le paiement :</strong> {PAYMENT_INFOS}<br />
 | 
				
			||||||
 | 
					<br />
 | 
				
			||||||
 | 
					{MESSAGE}
 | 
				
			||||||
 | 
					<br />
 | 
				
			||||||
 | 
					Cordialement,
 | 
				
			||||||
 | 
					<br />
 | 
				
			||||||
 | 
					Le comité national d'organisation du TFJM<sup>2</sup>
 | 
				
			||||||
 | 
					</body>
 | 
				
			||||||
 | 
					</html>
 | 
				
			||||||
							
								
								
									
										24
									
								
								server_files/services/mail_templates/validate_payment.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								server_files/services/mail_templates/validate_payment.html
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,24 @@
 | 
				
			|||||||
 | 
					<!DOCTYPE html>
 | 
				
			||||||
 | 
					<!--suppress HtmlUnknownTarget -->
 | 
				
			||||||
 | 
					<html lang="fr">
 | 
				
			||||||
 | 
					<head>
 | 
				
			||||||
 | 
					    <meta charset="UTF-8">
 | 
				
			||||||
 | 
					    <title>Validation du paiement pour le TFJM² {YEAR}</title>
 | 
				
			||||||
 | 
					</head>
 | 
				
			||||||
 | 
					<body>
 | 
				
			||||||
 | 
					Bonjour {FIRST_NAME} {SURNAME},<br />
 | 
				
			||||||
 | 
					<br />
 | 
				
			||||||
 | 
					Votre paiement pour le TFJM² {YEAR} a bien été validé. Pour rappel, vous aviez fourni ces informations :<br /><br />
 | 
				
			||||||
 | 
					<strong>Équipe :</strong> {TEAM_NAME} ({TRIGRAM})<br />
 | 
				
			||||||
 | 
					<strong>Tournoi :</strong> {TOURNAMENT_NAME}<br />
 | 
				
			||||||
 | 
					<strong>Moyen de paiement :</strong> {PAYMENT_METHOD}<br />
 | 
				
			||||||
 | 
					<strong>Montant :</strong> {AMOUNT} €<br />
 | 
				
			||||||
 | 
					<strong>Informations sur le paiement :</strong> {PAYMENT_INFOS}<br />
 | 
				
			||||||
 | 
					<br />
 | 
				
			||||||
 | 
					{MESSAGE}
 | 
				
			||||||
 | 
					<br />
 | 
				
			||||||
 | 
					Cordialement,
 | 
				
			||||||
 | 
					<br />
 | 
				
			||||||
 | 
					Le comité national d'organisation du TFJM<sup>2</sup>
 | 
				
			||||||
 | 
					</body>
 | 
				
			||||||
 | 
					</html>
 | 
				
			||||||
@@ -14,9 +14,12 @@ if (!$has_error) {
 | 
				
			|||||||
        <div class="alert alert-success">
 | 
					        <div class="alert alert-success">
 | 
				
			||||||
            La personne a bien rejoint l'équipe !
 | 
					            La personne a bien rejoint l'équipe !
 | 
				
			||||||
        </div>
 | 
					        </div>
 | 
				
			||||||
    <?php }
 | 
					    <?php } elseif (isset($validate_payment)) { ?>
 | 
				
			||||||
}
 | 
					        <div class="alert alert-success">
 | 
				
			||||||
?>
 | 
					            La paiement a bien été validé / rejeté ! Un mail a été transmis au participant.
 | 
				
			||||||
 | 
					        </div>
 | 
				
			||||||
 | 
					    <?php } ?>
 | 
				
			||||||
 | 
					<?php } ?>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    <div class="alert alert-info">
 | 
					    <div class="alert alert-info">
 | 
				
			||||||
        <strong>Rôle :</strong> <?= Role::getTranslatedName($user->getRole()) ?>
 | 
					        <strong>Rôle :</strong> <?= Role::getTranslatedName($user->getRole()) ?>
 | 
				
			||||||
@@ -101,6 +104,49 @@ if (!$has_error) {
 | 
				
			|||||||
	    Adresse e-mail du responsable légal : <a href="mailto:<?= $user->getResponsibleEmail() ?>"><?= $user->getResponsibleEmail() ?></a>
 | 
						    Adresse e-mail du responsable légal : <a href="mailto:<?= $user->getResponsibleEmail() ?>"><?= $user->getResponsibleEmail() ?></a>
 | 
				
			||||||
    </div>
 | 
					    </div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <div class="alert alert-info">
 | 
				
			||||||
 | 
					        <strong>Récapitulatif du paiement :</strong><br /><br />
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        <?php if ($payment->getValidationStatus() == ValidationStatus::NOT_READY) { ?>
 | 
				
			||||||
 | 
					            <div class="alert alert-danger">
 | 
				
			||||||
 | 
					                Cette personne n'a pas encore payé sa participation.
 | 
				
			||||||
 | 
					            </div>
 | 
				
			||||||
 | 
					        <?php } else { ?>
 | 
				
			||||||
 | 
					            <strong>Tournoi :</strong> <?= $tournament->getName() ?><br />
 | 
				
			||||||
 | 
					            <strong>Montant :</strong> <?= $payment->getAmount() ?> €<br />
 | 
				
			||||||
 | 
					            <strong>Moyen de paiement :</strong> <?= PaymentMethod::getTranslatedName($payment->getMethod()) ?><br />
 | 
				
			||||||
 | 
					            <?php if ($payment->getMethod() == PaymentMethod::SCHOLARSHIP) { ?>
 | 
				
			||||||
 | 
					                <strong>Notification de bourse :</strong> <a href="/file/<?= $payment->getTransactionInfos() ?>">Télécharger</a><br /><br />
 | 
				
			||||||
 | 
					            <?php } else { ?>
 | 
				
			||||||
 | 
					                <strong>Informations sur le paiement :</strong> <?= $payment->getTransactionInfos() ?><br /><br />
 | 
				
			||||||
 | 
					            <?php }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            if ($payment->getValidationStatus() == ValidationStatus::WAITING) { ?>
 | 
				
			||||||
 | 
					                <div class="alert alert-warning">
 | 
				
			||||||
 | 
					                    Le paiement n'a pas encore été validé.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    <form method="POST">
 | 
				
			||||||
 | 
					                        <input type="hidden" name="validate_payment" value=""/>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                        <div class="form-group row">
 | 
				
			||||||
 | 
					                            <label for="message">Message à adresser au participant :</label>
 | 
				
			||||||
 | 
					                            <textarea class="form-control" id="message" name="message"></textarea>
 | 
				
			||||||
 | 
					                        </div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                        <input class="btn btn-primary btn-lg" style="width: 49%;"
 | 
				
			||||||
 | 
					                               type="submit" name="accept" value="Valider le paiement"/>
 | 
				
			||||||
 | 
					                        <input class="btn btn-light btn-lg" style="width: 49%;" type="submit" name="reject"
 | 
				
			||||||
 | 
					                               value="Rejeter le paiement"/>
 | 
				
			||||||
 | 
					                    </form>
 | 
				
			||||||
 | 
					                </div>
 | 
				
			||||||
 | 
					            <?php } else { ?>
 | 
				
			||||||
 | 
					                <div class="alert alert-success">
 | 
				
			||||||
 | 
					                    Le paiement a été validé.
 | 
				
			||||||
 | 
					                </div>
 | 
				
			||||||
 | 
					            <?php } ?>
 | 
				
			||||||
 | 
					        <?php } ?>
 | 
				
			||||||
 | 
					    </div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<?php } elseif ($user->getDescription() != "") { ?>
 | 
					<?php } elseif ($user->getDescription() != "") { ?>
 | 
				
			||||||
    <div class="alert alert-info">
 | 
					    <div class="alert alert-info">
 | 
				
			||||||
	    Description : <?= $user->getDescription() ?>
 | 
						    Description : <?= $user->getDescription() ?>
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user