Commit c3cf6ba9 by Damien Moulard

prevent balance < 0 after withdrawal

parent 8cc0d3ab
...@@ -24,7 +24,7 @@ namespace App\Entity; ...@@ -24,7 +24,7 @@ namespace App\Entity;
use Doctrine\ORM\Mapping as ORM; use Doctrine\ORM\Mapping as ORM;
/** /**
* Retrait => (Retrait de monnaie papier en échange de monnaie numérique) * Retrait => (Retrait de monnaie papier en échange de monnaie numérique).
* *
* Types de retraits : * Types de retraits :
* *
...@@ -52,8 +52,11 @@ abstract class Retrait extends Flux ...@@ -52,8 +52,11 @@ abstract class Retrait extends Flux
public function operate($em) public function operate($em)
{ {
$compteExp = $this->getExpediteur()->getCompte() - $this->getMontant(); $compteExp = $this->getExpediteur()->getCompte() - $this->getMontant();
$compteDest = $this->getDestinataire()->getEcompte() - $this->getMontant();
if ($compteExp < 0) { if ($compteExp < 0) {
throw new \Exception("[FLUX] Retrait impossible ! Montant supérieur au solde du comptoir !"); throw new \Exception('[FLUX] Retrait impossible ! Montant supérieur au solde du comptoir !');
} elseif ($compteDest < 0) {
throw new \Exception('[FLUX] Retrait impossible ! Montant supérieur au solde du demandeur !');
} else { } else {
$this->getExpediteur()->removeCompte($this->getMontant()); $this->getExpediteur()->removeCompte($this->getMontant());
$this->getExpediteur()->getGroupe()->getSiege()->addCompteNantie($this->getMontant()); $this->getExpediteur()->getGroupe()->getSiege()->addCompteNantie($this->getMontant());
...@@ -61,6 +64,7 @@ abstract class Retrait extends Flux ...@@ -61,6 +64,7 @@ abstract class Retrait extends Flux
return [$this->getExpediteur(), $this->getDestinataire(), $this->getExpediteur()->getGroupe()->getSiege()]; return [$this->getExpediteur(), $this->getDestinataire(), $this->getExpediteur()->getGroupe()->getSiege()];
} }
return []; return [];
} }
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment