From d81ad02235b21d4b88b29157ff4fbcbc426214b7 Mon Sep 17 00:00:00 2001 From: Yohann Date: Wed, 1 Jan 2020 21:53:46 +0100 Subject: [PATCH] Page de paiement (en cours) --- .idea/dataSources.xml | 10 ++------ .idea/deployment.xml | 14 +++++------ server_files/classes/PaymentMethod.php | 25 ++++++++++++-------- server_files/classes/Team.php | 8 +++++++ server_files/classes/User.php | 16 +++++++++++++ server_files/controllers/paiement.php | 14 +++++++++++ server_files/views/paiement.php | 32 ++++++++++++++++++++++++++ 7 files changed, 95 insertions(+), 24 deletions(-) diff --git a/.idea/dataSources.xml b/.idea/dataSources.xml index 9653190..c28cc86 100644 --- a/.idea/dataSources.xml +++ b/.idea/dataSources.xml @@ -1,18 +1,12 @@ - + mysql.8 true com.mysql.cj.jdbc.Driver - jdbc:mysql://galaxyoyo.com:3306/tfjm + jdbc:mysql://ynerant.fr:3306/tfjm - - - - - - GMT+1 diff --git a/.idea/deployment.xml b/.idea/deployment.xml index 8cf3f3b..f213652 100644 --- a/.idea/deployment.xml +++ b/.idea/deployment.xml @@ -2,13 +2,6 @@ - - - - - - - @@ -16,6 +9,13 @@ + + + + + + + diff --git a/server_files/classes/PaymentMethod.php b/server_files/classes/PaymentMethod.php index 57885fe..f0d5420 100644 --- a/server_files/classes/PaymentMethod.php +++ b/server_files/classes/PaymentMethod.php @@ -2,14 +2,17 @@ class PaymentMethod { - const CREDIT_CARD = 0; - const BANK_CHECK = 1; - const BANK_TRANSFER = 2; - const CASH = 3; - const SCHOLARSHIP = 4; + const CREDIT_CARD = 1; + const BANK_CHECK = 2; + const BANK_TRANSFER = 3; + const CASH = 4; + const SCHOLARSHIP = 5; + const NOT_PAID = 0; public static function getTranslatedName($status) { switch ($status) { + case self::CREDIT_CARD: + return "Carte bancaire"; case self::BANK_CHECK: return "Chèque"; case self::BANK_TRANSFER: @@ -18,13 +21,15 @@ class PaymentMethod return "Espèce"; case self::SCHOLARSHIP: return "Je suis boursier"; - default: - return "Carte bancaire"; + default: + return "Pas encore payé"; } } public static function getName($status) { switch ($status) { + case self::CREDIT_CARD: + return "CREDIT_CARD"; case self::BANK_CHECK: return "BANK_CHECK"; case self::BANK_TRANSFER: @@ -34,12 +39,14 @@ class PaymentMethod case self::SCHOLARSHIP: return "SCHOLARSHIP"; default: - return "CREDIT_CARD"; + return "NOT_PAID"; } } public static function fromName($name) { switch ($name) { + case "CREDIT_CARD": + return self::CREDIT_CARD; case "BANK_CHECK": return self::BANK_CHECK; case "BANK_TRANSFER": @@ -49,7 +56,7 @@ class PaymentMethod case "SCHOLARSHIP": return self::SCHOLARSHIP; default: - return self::CREDIT_CARD; + return self::NOT_PAID; } } } \ No newline at end of file diff --git a/server_files/classes/Team.php b/server_files/classes/Team.php index 4e0de30..b916121 100644 --- a/server_files/classes/Team.php +++ b/server_files/classes/Team.php @@ -110,6 +110,14 @@ class Team return $this->tournament; } + /** + * @return Tournament + */ + public function getEffectiveTournament() + { + return $this->isSelectedForFinal() ? Tournament::getFinalTournament() : Tournament::fromId($this->getTournamentId()); + } + public function setTournamentId($tournament) { global $DB; diff --git a/server_files/classes/User.php b/server_files/classes/User.php index 15a6f62..d923409 100644 --- a/server_files/classes/User.php +++ b/server_files/classes/User.php @@ -422,6 +422,22 @@ class User return $docs; } + public function getPayment() { + global $DB; + + $team = Team::fromId($this->team_id); + $tournament = $team->getEffectiveTournament(); + + $req = $DB->prepare("SELECT `id` FROM `payments` WHERE `user` = ? AND `tournament` = ?;"); + $req->execute([$this->id, $tournament->getId()]); + + if (($data = $req->fetch()) !== false) + return Payment::fromId($data["id"]); + + $req = $DB->prepare("INSERT INTO `payments`(`user`, `tournament`, `amount`, `method`, `transaction_infos`, `validation_status`) VALUES (?, ?, ?, ?, ?, ?);"); + $req->execute([$this->id, $tournament->getId(), 0, PaymentMethod::getName(PaymentMethod::NOT_PAID), "L'inscription n'est pas encore payée.", ValidationStatus::getName(ValidationStatus::NOT_READY)]); + } + public function getOrganizedTournaments() { global $DB; diff --git a/server_files/controllers/paiement.php b/server_files/controllers/paiement.php index 8ee5dd9..ae996db 100644 --- a/server_files/controllers/paiement.php +++ b/server_files/controllers/paiement.php @@ -1,2 +1,16 @@ getEffectiveTournament(); +$payment = $user->getPayment(); + require_once "server_files/views/paiement.php"; \ No newline at end of file diff --git a/server_files/views/paiement.php b/server_files/views/paiement.php index e17f172..162d9e9 100644 --- a/server_files/views/paiement.php +++ b/server_files/views/paiement.php @@ -7,4 +7,36 @@ require_once "header.php" getValidationStatus() == ValidationStatus::NOT_READY) { ?> +
+ Il faut payer maintenant. +
+ +
+
+ + + + + + + +
+
+getValidationStatus() == ValidationStatus::WAITING) { ?> +
+ Votre paiement est en attente de validation. +
+ +
+ Votre paiement de getAmount() ?> a bien été validé. +
+