public function save(Operation $operation) { $operation->setCompte($this->_em->getRepository("MITFinanceBundle:Compte")->find($operation->getCompte()->getId())); $compte = $operation->getCompte(); if ($operation->getType() == "debit") { if ($compte->getSolde() - $operation->getMontant() >= 0) { $compte->setSolde($compte->getSolde() - $operation->getMontant()); $operation->setCompte($compte); $this->_em->persist($operation); $this->_em->getRepository("MITFinanceBundle:Compte")->_em->merge($compte); $this->_em->flush(); return 1; } return -1; } else { $compte = $operation->getCompte(); $compte->setSolde($compte->getSolde() + $operation->getMontant()); $operation->setCompte($compte); $this->_em->persist($operation); $this->_em->getRepository("MITFinanceBundle:Compte")->_em->merge($compte); $this->_em->flush(); return 2; } }