public function run()
 {
     global $request;
     $em = \Shared\DoctrineHelper::getEntityManager();
     $loginCompte = $request->request->get("Mot_De_Passe_Oublie_Compte");
     $emailCompte = $request->request->get("Mot_De_Passe_Oublie_Email");
     $passwordNew = \FonctionsUtiles::GenerateString(8);
     $objLogsOublieMotDePasse = new \Site\Entity\LogsOublieMotDePasse();
     $objLogsOublieMotDePasse->setCompteEssaye($loginCompte);
     $objLogsOublieMotDePasse->setEmailEssaye($emailCompte);
     $objLogsOublieMotDePasse->setIp($this->ipAdresse);
     $objLogsOublieMotDePasse->setDateEssai(new \DateTime(date("Y-m-d H:i:s")));
     $objAccount = \Account\AccountHelper::getAccountRepository()->findAccountByEmailAndLogin($emailCompte, $loginCompte);
     if ($objAccount !== null) {
         \Account\AccountHelper::getAccountRepository()->updateAccountPassword($objAccount->getId(), $passwordNew);
         $template = $this->objTwig->loadTemplate("PasswordForgottenEmail.html5.twig");
         $result = $template->render(["newMDP" => $passwordNew]);
         $subject = 'VamosMT2 - Nouveau mot de passe';
         \EmailHelper::sendEmail($emailCompte, $subject, $result);
         $objLogsOublieMotDePasse->setResultatDemande("1");
         echo "1";
     } else {
         $objLogsOublieMotDePasse->setResultatDemande("2");
         echo "2";
     }
     $em->persist($objLogsOublieMotDePasse);
     $em->flush();
 }
 public function run()
 {
     global $request;
     $em = \Shared\DoctrineHelper::getEntityManager();
     $passwordOld = $request->request->get("Ancien_Mot_De_Passe");
     $passwordNew = $request->request->get("Nouveau_Mot_De_Passe");
     $objAccount = \Account\AccountHelper::getAccountRepository()->findAccountByLoginAndPassword($this->objAccount->getLogin(), $passwordOld);
     if ($objAccount !== null) {
         //Suppression des autres demandes
         \Site\SiteHelper::getControleChangementMotDePasseRepository()->deleteByAccountId($objAccount->getId());
         $Nombre_Unique = \FonctionsUtiles::GenerateString(8, "INT");
         $objControleChangementMotDePasse = new \Site\Entity\ControleChangementMotDePasse();
         $objControleChangementMotDePasse->setIdCompte($objAccount->getId());
         $objControleChangementMotDePasse->setCompte($objAccount->getLogin());
         $objControleChangementMotDePasse->setNouveauMotDePasse($passwordNew);
         $objControleChangementMotDePasse->setNumeroVerif($Nombre_Unique);
         $objControleChangementMotDePasse->setIp($this->ipAdresse);
         $em->persist($objControleChangementMotDePasse);
         $em->flush();
         $template = $this->objTwig->loadTemplate("PasswordChangeEmail.html5.twig");
         $result = $template->render(["account" => $objAccount->getLogin(), "key" => $Nombre_Unique]);
         $subject = 'VamosMT2 - Changement de mot de passe';
         \EmailHelper::sendEmail($objAccount->getEmail(), $subject, $result);
         echo '1';
     } else {
         echo '2';
     }
 }
 public function run()
 {
     global $request;
     $em = \Shared\DoctrineHelper::getEntityManager();
     $AccountLogin = $this->objAccount->getLogin();
     $AccountEmailOld = $this->objAccount->getEmail();
     $AccountId = $this->objAccount->getId();
     $AccountEmailNew = $request->request->get("emailapres");
     $IP = $request->server->get("REMOTE_ADDR");
     //Application de la modification
     $this->objAccount->setEmail($AccountEmailNew);
     $em->persist($this->objAccount);
     //Suppression de l'entrée de vérification
     \Site\SiteHelper::getControleChangementMailRepository()->deleteByAccountId($AccountId);
     //On insère dans les logs
     $objLogsChangementMail = new \Site\Entity\LogsChangementMail();
     $objLogsChangementMail->setIdCompte($AccountId);
     $objLogsChangementMail->setOld($AccountEmailOld);
     $objLogsChangementMail->setNew($AccountEmailNew);
     $objLogsChangementMail->setIp($IP);
     $objLogsChangementMail->setDate(new \DateTime(date("Y-m-d H:i:s")));
     $em->persist($objLogsChangementMail);
     $em->flush();
     //Envoi sur l'ancienne adresse
     $templateOld = $this->objTwig->loadTemplate("EmailChangeEmailOld.html5.twig");
     $resultOld = $templateOld->render(["compte" => $AccountLogin]);
     $subject = 'VamosMt2 - Changement de mail de ' . $AccountLogin . '';
     \EmailHelper::sendEmail($AccountEmailOld, $subject, $resultOld);
     //Envoi sur la nouvelle adresse
     $templateNew = $this->objTwig->loadTemplate("EmailChangeEmailNew.html5.twig");
     $resultNew = $templateNew->render(["compte" => $AccountLogin, "new" => $AccountEmailNew, "old" => $AccountEmailOld]);
     $subject = 'VamosMt2 - Changement de mail de ' . $AccountLogin . '';
     \EmailHelper::sendEmail($AccountEmailNew, $subject, $resultNew);
     echo '1';
 }
 public function run()
 {
     global $request;
     $em = \Shared\DoctrineHelper::getEntityManager();
     $numeroVerif = $request->request->get("code");
     $objControleChangementMotDePasse = \Site\SiteHelper::getControleChangementMotDePasseRepository()->findByIdCompteAndNumeroVerif($this->objAccount->getId(), $numeroVerif);
     if ($objControleChangementMotDePasse !== null) {
         //Application du mot de passe
         $this->objAccount->setPassword($objControleChangementMotDePasse->getNouveauMotDePasse());
         $em->persist($this->objAccount);
         //Suppression des demandes
         \Site\SiteHelper::getControleChangementMotDePasseRepository()->deleteByAccountId($objControleChangementMotDePasse->getIdCompte());
         //Ajout dans les logs
         $objLogsChangementPassword = new \Site\Entity\LogsChangementPassword();
         $objLogsChangementPassword->setIdCompte($this->objAccount->getId());
         $objLogsChangementPassword->setEmail($this->objAccount->getEmail());
         $objLogsChangementPassword->setDate(new \DateTime(date("Y-m-d H:i:s")));
         $objLogsChangementPassword->setIp($this->ipAdresse);
         $em->persist($objLogsChangementPassword);
         $em->flush();
         //Envoi de l'email
         $template = $this->objTwig->loadTemplate("PasswordChangeTermEmail.html5.twig");
         $result = $template->render(["account" => $this->objAccount->getLogin()]);
         $subject = 'VamosMT2 - Changement du mot de passe terminé';
         \EmailHelper::sendEmail($this->objAccount->getEmail(), $subject, $result);
         echo "1";
     } else {
         echo "2";
     }
 }
 public function run()
 {
     global $request;
     $em = \Shared\DoctrineHelper::getEntityManager();
     $idCompte = $request->request->get("idCompte");
     $idDiscussion = $request->request->get("idDiscussion");
     $message = $request->request->get("message");
     $objSupportMessage = new \Site\Entity\SupportMessages();
     $objSupportMessage->setIdCompte($idCompte);
     $objSupportMessage->setIdDiscussion($idDiscussion);
     $objSupportMessage->setMessage($message);
     $objSupportMessage->setDate(new \DateTime(date("Y-m-d H:i:s")));
     $objSupportMessage->setEtat(\SupportEtatMessageHelper::NON_LU);
     $objSupportMessage->setDatechangementEtat(new \DateTime(date("Y-m-d H:i:s")));
     $objSupportMessage->setIp($this->ipAdresse);
     try {
         $objSupportDiscussion = \Site\SiteHelper::getSupportDiscussionsRepository()->find($idDiscussion);
         $objSupportDiscussion->setDateDernierMessage(new \DateTime(date("Y-m-d H:i:s")));
         $em->persist($objSupportDiscussion);
         $em->persist($objSupportMessage);
         $em->flush();
         if ($idCompte == $objSupportDiscussion->getIdAdmin()) {
             $objAccountJoueur = \Account\AccountHelper::getAccountRepository()->find($objSupportDiscussion->getIdCompte());
             if ($objAccountJoueur !== null) {
                 $template = $this->objTwig->loadTemplate("MessagerieMessageAdd.html5.twig");
                 $result = $template->render(["compte" => $objAccountJoueur->getLogin(), "objet" => \SupportObjetsHelper::getLibelle($objSupportDiscussion->getIdObjet())]);
                 $subject = 'VamosMT2 - Réponse à votre ticket';
                 \EmailHelper::sendEmail($objAccountJoueur->getEmail(), $subject, $result);
             }
         }
         echo json_encode(["id" => $objSupportMessage->getId(), "date" => \DateTimeHelper::dateTimeToFormatedString($objSupportMessage->getDate(), "H:i"), "message" => nl2br($objSupportMessage->getMessage())]);
     } catch (Exception $ex) {
     }
 }
 public function run()
 {
     global $request;
     $em = \Shared\DoctrineHelper::getEntityManager();
     $idCompte = $this->objAccount->getId();
     $idPersonnage = $request->request->get("id_personnage");
     $objPlayer = \Player\PlayerHelper::getPlayerRepository()->find($idPersonnage);
     if ($objPlayer !== null) {
         //Suppression des autres demandes
         \Site\SiteHelper::getSuppressionPersonnageRepository()->deleteByPlayerId($idPersonnage);
         $objAccount = \Account\AccountHelper::getAccountRepository()->find($idCompte);
         if ($objAccount !== null) {
             $numeroVerif = \FonctionsUtiles::GenerateString(8, "INT");
             //Envoie de l'email de vérification
             $template = $this->objTwig->loadTemplate("PersonnageDeleteEmailVerify.html5.twig");
             $result = $template->render(["account" => $objAccount->getLogin(), "player" => $objPlayer->getName(), "key" => $numeroVerif]);
             $subject = 'VamosMt2 - Suppression du personnage ' . $objPlayer->getName() . '';
             \EmailHelper::sendEmail($objAccount->getEmail(), $subject, $result);
             //Insertion de la demande
             $objSuppressionPersonnage = new \Site\Entity\SuppressionPersonnage();
             $objSuppressionPersonnage->setIdCompte($idCompte);
             $objSuppressionPersonnage->setIdPersonnage($idPersonnage);
             $objSuppressionPersonnage->setEmail($objAccount->getEmail());
             $objSuppressionPersonnage->setNumeroVerif($numeroVerif);
             $objSuppressionPersonnage->setDate(new \DateTime(date("Y-m-d H:i:s")));
             $objSuppressionPersonnage->setIp($this->ipAdresse);
             $em->persist($objSuppressionPersonnage);
             $em->flush();
             $Tableau_Retour_Json = array('result' => true);
         } else {
             $Tableau_Retour_Json = array('result' => false, 'reasons' => "Le compte n'existe pas.");
         }
         echo json_encode($Tableau_Retour_Json);
     }
 }
 /**
  * Override to avoid actually sending emails out through transport.
  * (non-PHPdoc)
  * @see EmailHelper::sendEmail()
  */
 protected function sendEmail(Mailer $mailer, EmailMessage $emailMessage)
 {
     if (!$this->sendEmailThroughTransport) {
         $emailMessage->error = null;
         $emailMessage->folder = EmailFolder::getByBoxAndType($emailMessage->folder->emailBox, EmailFolder::TYPE_SENT);
     } else {
         parent::sendEmail($mailer, $emailMessage);
     }
 }
 public function run()
 {
     $objSafebox = \Player\PlayerHelper::getSafeboxRepository()->findByIdCompte($this->objAccount->getId());
     $template = $this->objTwig->loadTemplate("CodeEntrepotForgottenEmail.html5.twig");
     if ($objSafebox !== null) {
         $result = $template->render(["password" => $objSafebox->getPassword()]);
     } else {
         $result = $template->render(["password" => "000000"]);
     }
     $subject = 'VamosMt2 - Mot de passe entrepot';
     \EmailHelper::sendEmail($this->objAccount->getEmail(), $subject, $result);
     echo json_encode(["result" => true]);
 }
 public function run()
 {
     global $request;
     global $session;
     global $config;
     $em = \Shared\DoctrineHelper::getEntityManager();
     $login = $request->request->get("Utilisateur");
     $password = $request->request->get("Mot_De_Passe");
     $email = $request->request->get("Email");
     $objIpToCountry = \Site\SiteHelper::getIpToCountryRepository()->findCountryBetween(ip2long($this->ipAdresse));
     if ($objIpToCountry !== null) {
         $Langue = $objIpToCountry->getCntry();
     } else {
         $Langue = "Inconnu";
     }
     $passwordEncrypted = \FonctionsUtiles::myPasswordToDoubleSha1($password);
     $objAccount = new \Account\Entity\Account();
     $objAccount->setLogin(trim($login));
     $objAccount->setPassword($passwordEncrypted);
     $objAccount->setEmail($email);
     $objAccount->setCash($config["register"]["initCash"]);
     $objAccount->setMileage($config["register"]["initMileage"]);
     $objAccount->setIpCreation($this->ipAdresse);
     $objAccount->setLangue($Langue);
     $objAccount->setCreateTime(new \DateTime(date("Y-m-d H:i:s")));
     $anneeRestantMysql = 2037 - date("Y");
     $dateActuel = \Carbon\Carbon::now();
     $dateBonusNew = $dateActuel->addYear($anneeRestantMysql);
     $objAccount->setMarriageFastExpire(new \DateTime(date("Y-m-d H:i:s")));
     $objAccount->setMoneyDropRateExpire(new \DateTime(date("Y-m-d H:i:s")));
     $objAccount->setGoldExpire(new \DateTime(date("Y-m-d H:i:s")));
     $objAccount->setSilverExpire(new \DateTime(date("Y-m-d H:i:s")));
     $objAccount->setAutolootExpire($dateBonusNew);
     $objAccount->setFishMindExpire(new \DateTime(date("Y-m-d H:i:s")));
     $objAccount->setSafeboxExpire($dateBonusNew);
     if ($config["register"]["emailActivation"]) {
         $objAccount->setStatus(\StatusHelper::NON_CONFIRME);
     } else {
         $objAccount->setStatus(\StatusHelper::ACTIF);
     }
     $em->persist($objAccount);
     $em->flush();
     if ($config["register"]["emailActivation"]) {
         $template = $this->objTwig->loadTemplate("InscriptionSubmitVerif.html5.twig");
         $result = $template->render(["account" => $objAccount->getLogin(), "accountId" => $objAccount->getId()]);
         $subject = 'VamosMT2 - Activez votre compte ' . $objAccount->getLogin();
         \EmailHelper::sendEmail($objAccount->getEmail(), $subject, $result);
     }
     $session->set("NomTemporaire", trim($login));
     echo "1";
 }
Exemple #10
0
 public function actionSendMailQueue()
 {
     $criteria = new CDbCriteria(array('condition' => 'success=:success AND attempts < max_attempts', 'params' => array(':success' => 0)));
     $queueList = MailQueue::model()->findAll($criteria);
     foreach ($queueList as $queueItem) {
         $result = EmailHelper::sendEmail($queueItem->subject, $queueItem->to_email, $queueItem->message, $queueItem->from_email, $queueItem->from_name);
         if ($result) {
             $queueItem->attempts = $queueItem->attempts + 1;
             $queueItem->success = 1;
             $queueItem->last_attempt = time();
             $queueItem->date_sent = time();
             $queueItem->save(FALSE);
         } else {
             $queueItem->attempts = $queueItem->attempts + 1;
             $queueItem->last_attempt = time();
             $queueItem->save(FALSE);
         }
     }
 }
 public function run()
 {
     global $request;
     $em = \Shared\DoctrineHelper::getEntityManager();
     $idAccount = $request->request->get("idAccount");
     if ($idAccount > 0) {
         $objAccount = \Account\AccountHelper::getAccountRepository()->find($idAccount);
         if ($objAccount !== null) {
             $objAccount->setStatus(\StatusHelper::ACTIF);
             $em->persist($objAccount);
             $objBannissementsActif = \Site\SiteHelper::getBannissementsActifsRepository()->findByIdAccount($objAccount->getId());
             if ($objBannissementsActif !== null) {
                 $objHistoriqueBannissement = new \Site\Entity\HistoriqueBanissements();
                 $oldReflection = new \ReflectionObject($objBannissementsActif);
                 $newReflection = new \ReflectionObject($objHistoriqueBannissement);
                 foreach ($oldReflection->getProperties() as $property) {
                     if ($newReflection->hasProperty($property->getName())) {
                         $newProperty = $newReflection->getProperty($property->getName());
                         $newProperty->setAccessible(true);
                         $newProperty->setValue($objHistoriqueBannissement, $property->getValue($objBannissementsActif));
                     }
                 }
                 $objHistoriqueBannissement->setDebannPar($this->objAccount->getId());
                 $em->persist($objHistoriqueBannissement);
                 $em->remove($objBannissementsActif);
             }
             $em->flush();
             $template = $this->objTwig->loadTemplate("Debannissement.html5.twig");
             $result = $template->render(["compte" => $objAccount->getLogin()]);
             $subject = 'VamosMt2 - Levé du bannissement de ' . $objAccount->getLogin() . '';
             \EmailHelper::sendEmail($objAccount->getEmail(), $subject, $result);
             $result = array('result' => true, 'reasons' => "");
         } else {
             $result = array('result' => false, 'reasons' => "Le compte sélectionné n'existe pas.");
         }
     } else {
         $result = array('result' => false, 'reasons' => "Problème de transmission d'identifiant.");
     }
     echo json_encode($result);
 }
 public function run()
 {
     $em = \Shared\DoctrineHelper::getEntityManager();
     $Nombre_Unique = \FonctionsUtiles::GenerateString(8, "INT");
     //Suppression des autres entrées de vérification
     \Site\SiteHelper::getControleChangementMailRepository()->deleteByAccountId($this->objAccount->getId());
     //Insertion de la clés de vérification
     $objControleChangementMail = new \Site\Entity\ControleChangementMail();
     $objControleChangementMail->setIdCompte($this->objAccount->getId());
     $objControleChangementMail->setEmail($this->objAccount->getEmail());
     $objControleChangementMail->setNumeroVerif($Nombre_Unique);
     $objControleChangementMail->setIp($this->ipAdresse);
     $objControleChangementMail->setDate(new \DateTime(date("Y-m-d H:i:s")));
     $em->persist($objControleChangementMail);
     $em->flush();
     //Envoi de l'email avec la clés
     $templateOld = $this->objTwig->loadTemplate("EmailChangeEmailVerify.html5.twig");
     $resultOld = $templateOld->render(["compte" => $this->objAccount->getLogin(), "key" => $Nombre_Unique]);
     $subject = 'VamosMt2 - Changement de mail de ' . $this->objAccount->getLogin() . '';
     \EmailHelper::sendEmail($this->objAccount->getEmail(), $subject, $resultOld);
     echo '1';
 }
 public function run()
 {
     global $request;
     $em = \Shared\DoctrineHelper::getEntityManager();
     $idDiscussion = \Encryption::decrypt($request->request->get("idDiscussion"));
     $objSupportDiscussion = \Site\SiteHelper::getSupportDiscussionsRepository()->find($idDiscussion);
     $objAccount = \Account\AccountHelper::getAccountRepository()->find($objSupportDiscussion->getIdCompte());
     if ($objSupportDiscussion !== null) {
         if ($objSupportDiscussion->getIdCompte() == $this->objAccount->getId() or $objSupportDiscussion->getIdAdmin() == $this->objAccount->getId()) {
             $objSupportDiscussion->setEstArchive(1);
             $em->persist($objSupportDiscussion);
             $em->flush();
             $template = $this->objTwig->loadTemplate("MessagerieDiscussionCloture.html5.twig");
             $result = $template->render(["compte" => $objAccount->getLogin(), "objet" => \SupportObjetsHelper::getLibelle($objSupportDiscussion->getIdObjet())]);
             $subject = 'VamosMT2 - Clôture de votre ticket';
             \EmailHelper::sendEmail($objAccount->getEmail(), $subject, $result);
             echo json_encode(["result" => true]);
         } else {
             echo json_encode(["result" => false, "message" => "Le ticket est introuvable."]);
         }
     }
 }
Exemple #14
0
 public function run()
 {
     global $request;
     global $config;
     global $session;
     $em = \Shared\DoctrineHelper::getEntityManager();
     $paymentResult = false;
     // Script to create a signature
     define('API_BASE_URL', $config["item_shop"]["rechargement"]["hipay"]["apiBaseUrl"]);
     define('API_KEY', $config["item_shop"]["rechargement"]["hipay"]["apiKey"]);
     define('API_SECRET_KEY', $config["item_shop"]["rechargement"]["hipay"]["apiSecretKey"]);
     define('API_HASH_FUNCTION', 'sha1');
     date_default_timezone_set('UTC');
     // STEPS 1 and 2: Construction of query parameters
     $queryParameters = array('site_id' => $config["item_shop"]["rechargement"]["hipay"]["siteId"], 'product_id' => $config["item_shop"]["rechargement"]["hipay"]["productId"], 'api_key' => API_KEY, 'api_hash' => API_HASH_FUNCTION, 'api_ts' => time(), 'format' => "json");
     // STEP 3 : Sort parameters by ascending alphabetical order by name ofparameter
     ksort($queryParameters);
     /* STEP 4
      * Prepare a string to hash with the hash function "API_HASH_FUNCTION"
      */
     $stringToHash = '';
     foreach ($queryParameters as $parameter => $value) {
         $stringToHash .= $parameter . (is_array($value) ? implode('', $value) : $value);
     }
     $stringToHash .= API_SECRET_KEY;
     // STEP 5: Creation of signature
     $signature = hash(API_HASH_FUNCTION, $stringToHash);
     // STEP 6 : Generating URL
     $queryParameters['api_sig'] = $signature;
     $url = API_BASE_URL . '/onetime/pricing?' . http_build_query($queryParameters);
     \Debug::log(time());
     $data = file_get_contents($url);
     $dataDecode = json_decode($data);
     foreach ($dataDecode->response as $response) {
         if ($response->code == 0 and $response->message == "OK") {
             $paymentResult = true;
             $codeResult = "Réussi";
         }
     }
     $objAccount = \Account\AccountHelper::getAccountRepository()->find($request->query->get("data"));
     if ($paymentResult) {
         $codeResult = "Réussi";
         if ($config["item_shop"]["rechargement"]["hipay"]["devise"] == \DeviseHelper::CASH) {
             $objAccount->setCash($objAccount->getCash() + $config["item_shop"]["rechargement"]["hipay"]["cash"]);
         } else {
             if ($config["item_shop"]["rechargement"]["hipay"]["devise"] == \DeviseHelper::MILEAGE) {
                 $objAccount->setMileage($objAccount->getMileage() + $config["item_shop"]["rechargement"]["hipay"]["cash"]);
             }
         }
         $em->persist($objAccount);
         $session->set("Cash", $objAccount->getCash());
         $session->set("Mileage", $objAccount->getMileage());
         $objLogsRechargement = new \Site\Entity\LogsRechargements();
         $objLogsRechargement->setIdCompte($objAccount->getId());
         $objLogsRechargement->setCompte($objAccount->getLogin());
         $objLogsRechargement->setEmailCompte($objAccount->getEmail());
         $objLogsRechargement->setCode($request->query->get("RECALL"));
         $objLogsRechargement->setNombreVamonaies($config["item_shop"]["rechargement"]["hipay"]["cash"]);
         $objLogsRechargement->setResultat($codeResult);
         $objLogsRechargement->setDate(new \DateTime(date("Y-m-d H:i:s")));
         $objLogsRechargement->setIp($this->ipAdresse);
         $em->persist($objLogsRechargement);
         $em->flush();
         $template = $this->objTwig->loadTemplate("emailItemShopRechargement.html5.twig");
         $result = $template->render(["compte" => $objAccount->getLogin(), "system" => "Hipay", "nombre" => $config["item_shop"]["rechargement"]["hipay"]["cash"], "devise" => $config["item_shop"]["rechargement"]["hipay"]["devise"], "identifiantRechargement" => $objLogsRechargement->getId()]);
         $subject = 'VamosMT2 - Rechargement de compte';
         \EmailHelper::sendEmail($objAccount->getEmail(), $subject, $result);
         if ($this->isConnected) {
             header('Location: ../../ItemShopRechargementTerm.php?result=1&id=' . $objLogsRechargement->getId() . '&isConnected=1');
             exit;
         } else {
             header('Location: ../../ItemShopRechargementTerm.php?result=1&id=' . $objLogsRechargement->getId() . '&isConnected=0');
             exit;
         }
     } else {
         $codeResult = "Mauvaise clès";
         $objLogsRechargement = new \Site\Entity\LogsRechargements();
         $objLogsRechargement->setIdCompte($objAccount->getId());
         $objLogsRechargement->setCompte($objAccount->getLogin());
         $objLogsRechargement->setEmailCompte($objAccount->getEmail());
         $objLogsRechargement->setCode($request->query->get("RECALL"));
         $objLogsRechargement->setResultat($codeResult);
         $objLogsRechargement->setDate(new \DateTime(date("Y-m-d H:i:s")));
         $objLogsRechargement->setIp($this->ipAdresse);
         $em->persist($objLogsRechargement);
         $em->flush();
         header('Location: ../../ItemShopRechargementTerm.php?result=0&Raison=ClesMauvaise&id=' . $objLogsRechargement->getId() . '');
         exit;
     }
 }
 public function run()
 {
     global $session;
     global $request;
     $em = \Shared\DoctrineHelper::getEntityManager();
     $idMarchePersonnage = $request->request->get("idMarchePersonnage");
     $objMarchePersonnage = \Site\SiteHelper::getMarchePersonnagesRepository()->find($idMarchePersonnage);
     if ($objMarchePersonnage !== null) {
         $idVendeur = $objMarchePersonnage->getIdProprietaire();
         $idPlayer = $objMarchePersonnage->getIdPersonnage();
         $pidVendeur = $objMarchePersonnage->getPid();
         $objMarcheArticle = \Site\SiteHelper::getMarcheArticlesRepository()->findByIdentifiantArticle($idMarchePersonnage);
         if ($objMarcheArticle !== null) {
             $prixMarcheArticle = $objMarcheArticle->getPrix();
             $deviseMarcheArticle = $objMarcheArticle->getDevise();
             $asserDeMonnaies = false;
             if ($deviseMarcheArticle == 1) {
                 if ($this->objAccount->getCash() >= $prixMarcheArticle) {
                     $asserDeMonnaies = true;
                 }
             } else {
                 if ($deviseMarcheArticle == 2) {
                     if ($this->objAccount->getMileage() >= $prixMarcheArticle) {
                         $asserDeMonnaies = true;
                     }
                 }
             }
             if ($asserDeMonnaies) {
                 $objPlayerIndex = \Player\PlayerHelper::getPlayerIndexRepository()->find($this->objAccount->getId());
                 if ($objPlayerIndex !== null) {
                     $pidDisponible = false;
                     if ($objPlayerIndex->getPid1() == "0") {
                         $pidDisponible = "1";
                     } else {
                         if ($objPlayerIndex->getPid2() == "0") {
                             $pidDisponible = "2";
                         } else {
                             if ($objPlayerIndex->getPid3() == "0") {
                                 $pidDisponible = "3";
                             } else {
                                 if ($objPlayerIndex->getPid4() == "0") {
                                     $pidDisponible = "4";
                                 }
                             }
                         }
                     }
                     if ($pidDisponible != false) {
                         $objAccountProprietaire = \Account\AccountHelper::getAccountRepository()->find($idVendeur);
                         if ($objAccountProprietaire !== null) {
                             if ($deviseMarcheArticle == 1) {
                                 $objAccountProprietaire->setCash($objAccountProprietaire->getCash() + $prixMarcheArticle);
                                 $this->objAccount->setCash($this->objAccount->getCash() - $prixMarcheArticle);
                             } else {
                                 if ($deviseMarcheArticle == 2) {
                                     $objAccountProprietaire->setMileage($objAccountProprietaire->getMileage() + $prixMarcheArticle);
                                     $this->objAccount->setMileage($this->objAccount->getMileage() - $prixMarcheArticle);
                                 }
                             }
                             $em->persist($objAccountProprietaire);
                             $em->persist($this->objAccount);
                             $session->set("Cash", $this->objAccount->getCash());
                             $session->set("Mileage", $this->objAccount->getMileage());
                             $objLogsMarcheAchats = new \Site\Entity\LogsMarcheAchats();
                             $objLogsMarcheAchats->setIdVendeur($idVendeur);
                             $objLogsMarcheAchats->setIdAcheteur($this->objAccount->getId());
                             $objLogsMarcheAchats->setIdPersonnage($idPlayer);
                             $objLogsMarcheAchats->setPrix($prixMarcheArticle);
                             $objLogsMarcheAchats->setDate(\Carbon\Carbon::now());
                             $objLogsMarcheAchats->setDevise($deviseMarcheArticle);
                             $objLogsMarcheAchats->setIp($this->ipAdresse);
                             $em->persist($objLogsMarcheAchats);
                             //Ajout du personnage sur le compte acheteur
                             $funcAcheteur = "setPid" . $pidDisponible;
                             $objPlayerIndex->{$funcAcheteur}($idPlayer);
                             $em->persist($objPlayerIndex);
                             //Rajout du compte acheteur sur le personnage
                             $objPlayer = \Player\PlayerHelper::getPlayerRepository()->find($idPlayer);
                             $objPlayer->setIdAccount($this->objAccount->getId());
                             $objPlayer->setIp("");
                             $em->persist($objPlayer);
                             //Suppression du personnage fictif du compte vendeur
                             $objPlayerIndexVendeur = \Player\PlayerHelper::getPlayerIndexRepository()->find($idVendeur);
                             $funcVendeur = "setPid" . $pidVendeur;
                             $objPlayerIndexVendeur->{$funcVendeur}(0);
                             $em->persist($objPlayerIndexVendeur);
                             //Suppression de l'article de la vente
                             $em->remove($objMarcheArticle);
                             //Suppression du personnage de la vente
                             $em->remove($objMarchePersonnage);
                             $em->flush();
                             //Email vendeur
                             $template = $this->objTwig->loadTemplate("ajaxBuyPlayerVendeur.html5.twig");
                             $result = $template->render(["compte" => $objAccountProprietaire->getLogin(), "player" => $objPlayer->getName(), "prix" => $prixMarcheArticle, "devise" => $deviseMarcheArticle]);
                             $subject = 'VamosMT2 - Vente du joueur ' . $objPlayer->getName();
                             \EmailHelper::sendEmail($objAccountProprietaire->getEmail(), $subject, $result);
                             //Email acheteur
                             $templateAcheteur = $this->objTwig->loadTemplate("ajaxBuyPlayerAcheteur.html5.twig");
                             $resultAcheteur = $templateAcheteur->render(["compte" => $this->objAccount->getLogin(), "player" => $objPlayer->getName(), "prix" => $prixMarcheArticle, "devise" => $deviseMarcheArticle]);
                             $subjectAcheteur = 'VamosMT2 - Achat du joueur ' . $objPlayer->getName();
                             \EmailHelper::sendEmail($this->objAccount->getEmail(), $subjectAcheteur, $resultAcheteur);
                             $Tableau_Retour_Json = array('result' => true, 'cash' => $this->objAccount->getCash(), 'mileage' => $this->objAccount->getMileage(), 'idPlayer' => \Encryption::encryptForUrl($idPlayer));
                         } else {
                             $Tableau_Retour_Json = array('result' => false, 'reasons' => "Le proprietaire n'existe pas.");
                         }
                     } else {
                         $Tableau_Retour_Json = array('result' => false, 'reasons' => "Vous n'avez pas d'emplacement pour mettre ce joueur.");
                     }
                 } else {
                     $Tableau_Retour_Json = array('result' => false, 'reasons' => "Votre compte n'existe pas.");
                 }
             } else {
                 $Tableau_Retour_Json = array('result' => false, 'reasons' => "Vous n'avez pas assez de monnaies.");
             }
         } else {
             $Tableau_Retour_Json = array('result' => false, 'reasons' => "L'article n'existe plus.");
         }
     } else {
         $Tableau_Retour_Json = array('result' => false, 'reasons' => "Ce personnage n'est plus en vente.");
     }
     echo json_encode($Tableau_Retour_Json);
 }
 public function run()
 {
     global $session;
     global $request;
     $em = \Shared\DoctrineHelper::getEntityManager();
     $arrResult["result"] = 1;
     $arrResult["isBonusCompte"] = 0;
     $idItem = $request->request->get("id_item");
     $nombreItem = $request->request->get("nombre_item");
     $nombreItemBuy = 0;
     $objItemshop = \Site\SiteHelper::getItemshopRepository()->findItem($idItem, true);
     if (!$this->checkEntrepotIS()) {
         $arrResult["result"] = 0;
         $arrResult["code"] = 8;
         echo json_encode($arrResult);
         die;
     }
     if ($objItemshop !== null) {
         /* ------- Si l'item est de type Simple 1 -------- */
         if ($objItemshop->getType() == 1) {
             //Si le Membre a assez de Cash
             if ($session->get("Cash") >= $objItemshop->getPrix() * $nombreItem) {
                 $flagItem = \Player\PlayerHelper::getItemProtoRepository()->findFlagByVnum($objItemshop->getIdItem());
                 $socketPct = \Player\PlayerHelper::getItemProtoRepository()->findSocketPctByVnum($objItemshop->getIdItem());
                 //Si empilable
                 if ($flagItem == 4 || $flagItem == 20 || $flagItem == 132 || $flagItem == 2052 || $flagItem == 8212) {
                     $nombreItemTotal = $nombreItem * $objItemshop->getNbItem();
                     $nombreItemPendingTotal = $nombreItemTotal;
                     $nombreItemOkTotal = 0;
                     $nombreCase = round($nombreItemTotal / 200);
                     for ($iModulo = 0; $iModulo <= $nombreCase; $iModulo++) {
                         if ($nombreItemTotal > 0) {
                             if ($this->checkFieldEntrepotIS() !== false) {
                                 $nextFreePosition = $this->checkFieldEntrepotIS();
                                 $objItem = new \Player\Entity\Item();
                                 $objItem->setOwnerId($this->objAccount->getId());
                                 $objItem->setWindow("MALL");
                                 $objItem->setPos($nextFreePosition);
                                 if ($nombreItemTotal > 200) {
                                     $objItem->setCount(200);
                                     $nombreItemTotal = $nombreItemTotal - 200;
                                     $nombreItemOkTotal = $nombreItemOkTotal + 200;
                                 } else {
                                     $objItem->setCount($nombreItemTotal);
                                     $nombreItemTotal = $nombreItemTotal - $nombreItemTotal;
                                     $nombreItemOkTotal = $nombreItemOkTotal + $nombreItemTotal;
                                 }
                                 $objItem->setVnum($objItemshop->getIdItem());
                                 $em->persist($objItem);
                                 $em->flush();
                                 $em->detach($objItem);
                                 $nombreItemBuy++;
                             } else {
                                 $arrResult = ["result" => 0, "code" => 5];
                                 break;
                             }
                         }
                     }
                     if ($arrResult["result"] == 0) {
                         if ($nombreItemOkTotal > 0) {
                             $prixTotal = $objItemshop->getPrix() * $nombreItem;
                             $proportionItemOk = $nombreItemOkTotal / $nombreItemPendingTotal * 100;
                             $soustraction = round($objItemshop->getPrix() * $nombreItem * $proportionItemOk / 100);
                             $prixTotal = $soustraction;
                             $arrResult["result"] = 1;
                         } else {
                             $prixTotal = 0;
                         }
                     } elseif ($arrResult["result"] == 1) {
                         $prixTotal = $objItemshop->getPrix() * $nombreItem;
                         $nombreItemBuy = $nombreItem;
                     }
                     $this->objAccount->setCash($this->objAccount->getCash() - $prixTotal);
                     $this->objAccount->setMileage($this->objAccount->getMileage() + $prixTotal);
                     $em->persist($this->objAccount);
                     $em->flush();
                     $session->set("Cash", $this->objAccount->getCash());
                     $session->set("Mileage", $this->objAccount->getMileage());
                 } else {
                     $nombreItemTotal = $nombreItem * $objItemshop->getNbItem();
                     $nombreItemPendingTotal = $nombreItemTotal;
                     $nombreItemOkTotal = 0;
                     for ($i = 0; $i < $nombreItemTotal; $i++) {
                         $nextFreePosition = $this->checkFieldEntrepotIS();
                         if ($nextFreePosition !== false) {
                             $objItem = new \Player\Entity\Item();
                             $objItem->setOwnerId($this->objAccount->getId());
                             $objItem->setWindow("MALL");
                             $objItem->setPos($nextFreePosition);
                             $objItem->setCount(1);
                             $objItem->setVnum($objItemshop->getIdItem());
                             if ($socketPct > 0) {
                                 for ($iSocket = 0; $iSocket < $socketPct; $iSocket++) {
                                     $func = "setSocket" . $iSocket;
                                     $objItem->{$func}("1");
                                 }
                             }
                             $em->persist($objItem);
                             $em->flush();
                             $em->detach($objItem);
                             $nombreItemBuy++;
                             $nombreItemOkTotal++;
                         } else {
                             $arrResult = ["result" => 0, "code" => 5];
                             break;
                         }
                     }
                     if ($arrResult["result"] == 0) {
                         if ($nombreItemOkTotal > 0) {
                             $prixTotal = $objItemshop->getPrix() * $nombreItem;
                             $proportionItemOk = $nombreItemOkTotal / $nombreItemPendingTotal * 100;
                             $soustraction = round($objItemshop->getPrix() * $nombreItem * $proportionItemOk / 100);
                             $prixTotal = $soustraction;
                             $arrResult["result"] = 1;
                         } else {
                             $prixTotal = 0;
                         }
                         if ($nombreItemBuy > 1) {
                             $nombreItemBuy = round($nombreItemBuy / $objItemshop->getNbItem());
                         }
                     } elseif ($arrResult["result"] == 1) {
                         $prixTotal = $objItemshop->getPrix() * $nombreItem;
                         $nombreItemBuy = $nombreItem;
                     }
                     $this->objAccount->setCash($this->objAccount->getCash() - $prixTotal);
                     $this->objAccount->setMileage($this->objAccount->getMileage() + $prixTotal);
                     $em->persist($this->objAccount);
                     $em->flush();
                     $session->set("Cash", $this->objAccount->getCash());
                     $session->set("Mileage", $this->objAccount->getMileage());
                 }
             } else {
                 $arrResult = ["result" => 0, "code" => 3];
             }
             /* ----------- Si l'item est de type durée ------------ */
         } elseif ($objItemshop->getType() == 2) {
             //Si le membre a assez de cash
             if ($session->get("Cash") >= $objItemshop->getPrix()) {
                 $anneeRestantMysql = 2037 - date("Y");
                 $dateActuel = \Carbon\Carbon::now();
                 switch ($objItemshop->getIdItem()) {
                     case 1:
                         $dateBonusActuel = \Carbon\Carbon::createFromTimestamp($this->objAccount->getGoldExpire()->getTimestamp());
                         break;
                     case 2:
                         $dateBonusActuel = \Carbon\Carbon::createFromTimestamp($this->objAccount->getSilverExpire()->getTimestamp());
                         break;
                     case 3:
                         $dateBonusActuel = \Carbon\Carbon::createFromTimestamp($this->objAccount->getSafeboxExpire()->getTimestamp());
                         break;
                     case 4:
                         $dateBonusActuel = \Carbon\Carbon::createFromTimestamp($this->objAccount->getAutolootExpire()->getTimestamp());
                         break;
                     case 5:
                         $dateBonusActuel = \Carbon\Carbon::createFromTimestamp($this->objAccount->getFishMindExpire()->getTimestamp());
                         break;
                     case 6:
                         $dateBonusActuel = \Carbon\Carbon::createFromTimestamp($this->objAccount->getMarriageFastExpire()->getTimestamp());
                         break;
                     case 7:
                         $dateBonusActuel = \Carbon\Carbon::createFromTimestamp($this->objAccount->getMoneyDropRateExpire()->getTimestamp());
                         break;
                 }
                 if ($objItemshop->getNbItem() == 9999) {
                     $dateBonusNew = $dateActuel->addYear($anneeRestantMysql);
                 } else {
                     if ($dateBonusActuel->gt($dateActuel)) {
                         $dateBonusNew = $dateBonusActuel->addDay($objItemshop->getNbItem());
                     } else {
                         $dateBonusNew = $dateActuel->addDay($objItemshop->getNbItem());
                     }
                 }
                 switch ($objItemshop->getIdItem()) {
                     case 1:
                         $this->objAccount->setGoldExpire($dateBonusNew);
                         break;
                     case 2:
                         $this->objAccount->setSilverExpire($dateBonusNew);
                         break;
                     case 3:
                         $this->objAccount->setSafeboxExpire($dateBonusNew);
                         break;
                     case 4:
                         $this->objAccount->setAutolootExpire($dateBonusNew);
                         break;
                     case 5:
                         $this->objAccount->setFishMindExpire($dateBonusNew);
                         break;
                     case 6:
                         $this->objAccount->setMarriageFastExpire($dateBonusNew);
                         break;
                     case 7:
                         $this->objAccount->setMoneyDropRateExpire($dateBonusNew);
                         break;
                 }
                 $prixTotal = $objItemshop->getPrix() * $nombreItem;
                 $this->objAccount->setCash($this->objAccount->getCash() - $prixTotal);
                 $this->objAccount->setMileage($this->objAccount->getMileage() + $prixTotal);
                 $em->persist($this->objAccount);
                 $em->flush();
                 $session->set("Cash", $this->objAccount->getCash());
                 $session->set("Mileage", $this->objAccount->getMileage());
                 $arrResult["isBonusCompte"] = 1;
             } else {
                 $arrResult = ["result" => 0, "code" => 3];
             }
             /* -------------- Si l'item est de type Mileage -------------- */
         } elseif ($objItemshop->getType() == 3) {
             //Si le membre a assez de marques
             if ($session->get("Mileage") >= $objItemshop->getPrix() * $nombreItem) {
                 $flagItem = \Player\PlayerHelper::getItemProtoRepository()->findFlagByVnum($objItemshop->getIdItem());
                 $socketPct = \Player\PlayerHelper::getItemProtoRepository()->findSocketPctByVnum($objItemshop->getIdItem());
                 //Si empilable
                 if ($flagItem == 4 || $flagItem == 20 || $flagItem == 132 || $flagItem == 2052 || $flagItem == 8212) {
                     $nombreItemTotal = $nombreItem * $objItemshop->getNbItem();
                     $nombreItemPendingTotal = $nombreItemTotal;
                     $nombreItemOkTotal = 0;
                     $nombreCase = round($nombreItemTotal / 200);
                     for ($iModulo = 0; $iModulo <= $nombreCase; $iModulo++) {
                         if ($nombreItemTotal > 0) {
                             if ($this->checkFieldEntrepotIS() !== false) {
                                 $nextFreePosition = $this->checkFieldEntrepotIS();
                                 $objItem = new \Player\Entity\Item();
                                 $objItem->setOwnerId($this->objAccount->getId());
                                 $objItem->setWindow("MALL");
                                 $objItem->setPos($nextFreePosition);
                                 if ($nombreItemTotal > 200) {
                                     $objItem->setCount(200);
                                     $nombreItemTotal = $nombreItemTotal - 200;
                                     $nombreItemOkTotal = $nombreItemOkTotal + 200;
                                 } else {
                                     $objItem->setCount($nombreItemTotal);
                                     $nombreItemTotal = $nombreItemTotal - $nombreItemTotal;
                                     $nombreItemOkTotal = $nombreItemOkTotal + $nombreItemTotal;
                                 }
                                 $objItem->setVnum($objItemshop->getIdItem());
                                 $em->persist($objItem);
                                 $em->flush();
                                 $em->detach($objItem);
                                 $nombreItemBuy++;
                             } else {
                                 $arrResult = ["result" => 0, "code" => 5];
                                 break;
                             }
                         }
                     }
                     if ($arrResult["result"] == 0) {
                         if ($nombreItemOkTotal > 0) {
                             $prixTotal = $objItemshop->getPrix() * $nombreItem;
                             $proportionItemOk = $nombreItemOkTotal / $nombreItemPendingTotal * 100;
                             $soustraction = round($objItemshop->getPrix() * $nombreItem * $proportionItemOk / 100);
                             $prixTotal = $soustraction;
                             $arrResult["result"] = 1;
                         } else {
                             $prixTotal = 0;
                         }
                     } elseif ($arrResult["result"] == 1) {
                         $prixTotal = $objItemshop->getPrix() * $nombreItem;
                         $nombreItemBuy = $nombreItem;
                     }
                     $this->objAccount->setMileage($this->objAccount->getMileage() - $prixTotal);
                     $em->persist($this->objAccount);
                     $em->flush();
                     $session->set("Mileage", $this->objAccount->getMileage());
                 } else {
                     $nombreItemTotal = $nombreItem * $objItemshop->getNbItem();
                     $nombreItemPendingTotal = $nombreItemTotal;
                     $nombreItemOkTotal = 0;
                     for ($i = 0; $i < $nombreItemTotal; $i++) {
                         $nextFreePosition = $this->checkFieldEntrepotIS();
                         if ($nextFreePosition !== false) {
                             $nextFreePosition = $this->checkFieldEntrepotIS();
                             $objItem = new \Player\Entity\Item();
                             $objItem->setOwnerId($this->objAccount->getId());
                             $objItem->setWindow("MALL");
                             $objItem->setPos($nextFreePosition);
                             $objItem->setCount(1);
                             $objItem->setVnum($objItemshop->getIdItem());
                             if ($socketPct > 0) {
                                 for ($iSocket = 0; $iSocket < $socketPct; $iSocket++) {
                                     $func = "setSocket" . $iSocket;
                                     $objItem->{$func}("1");
                                 }
                             }
                             $em->persist($objItem);
                             $em->flush();
                             $em->detach($objItem);
                             $nombreItemBuy++;
                             $nombreItemOkTotal++;
                         } else {
                             $arrResult = ["result" => 0, "code" => 5];
                             break;
                         }
                     }
                     if ($arrResult["result"] == 0) {
                         if ($nombreItemOkTotal > 0) {
                             $prixTotal = $objItemshop->getPrix() * $nombreItem;
                             $proportionItemOk = $nombreItemOkTotal / $nombreItemPendingTotal * 100;
                             $soustraction = round($objItemshop->getPrix() * $nombreItem * $proportionItemOk / 100);
                             $prixTotal = $soustraction;
                             $arrResult["result"] = 1;
                         } else {
                             $prixTotal = 0;
                         }
                         if ($nombreItemBuy > 1) {
                             $nombreItemBuy = round($nombreItemBuy / $objItemshop->getNbItem());
                         }
                     } elseif ($arrResult["result"] == 1) {
                         $prixTotal = $objItemshop->getPrix() * $nombreItem;
                         $nombreItemBuy = $nombreItem;
                     }
                     $this->objAccount->setMileage($this->objAccount->getMileage() - $prixTotal);
                     $em->persist($this->objAccount);
                     $em->flush();
                     $session->set("Mileage", $this->objAccount->getMileage());
                 }
             } else {
                 $arrResult = ["result" => 0, "code" => 6];
             }
         } else {
             $arrResult = ["result" => 0, "code" => 4];
         }
     }
     if ($objItemshop->getType() == 1) {
         $idDevise = "1";
     } else {
         if ($objItemshop->getType() == 3) {
             $idDevise = "2";
         } else {
             if ($objItemshop->getType() == 2) {
                 $idDevise = "1";
             }
         }
     }
     if ($arrResult["result"] == 1) {
         $Resultat_Achat = "Réussi";
     } else {
         if ($arrResult["code"] == 4) {
             $Resultat_Achat = "Type d'item inconnu";
         } elseif ($arrResult["code"] == 5) {
             if ($nombreItemOkTotal > 0) {
                 $Resultat_Achat = "Livraison partiel";
             } else {
                 $Resultat_Achat = "Manque de place";
             }
         } elseif ($arrResult["code"] == 6) {
             $Resultat_Achat = "Pas assez de " . \DeviseHelper::getLibelle(2);
         } elseif ($arrResult["code"] == 3) {
             $Resultat_Achat = "Pas assez de " . \DeviseHelper::getLibelle(1);
         } else {
             $Resultat_Achat = "Erreur";
         }
     }
     $objLogsItemshopAchats = new \Site\Entity\LogsItemshopAchats();
     $objLogsItemshopAchats->setIdCompte($this->objAccount->getId());
     $objLogsItemshopAchats->setVnum($objItemshop->getIdItem());
     if ($objItemshop->getNbItem() > 1) {
         $objLogsItemshopAchats->setItem($objItemshop->getNameItem() . " (x" . $nombreItemBuy . ")");
     } else {
         $objLogsItemshopAchats->setItem($objItemshop->getNameItem());
     }
     $objLogsItemshopAchats->setQuantite($nombreItemBuy);
     $objLogsItemshopAchats->setPrix($prixTotal);
     $objLogsItemshopAchats->setDevise($idDevise);
     $objLogsItemshopAchats->setIp($this->ipAdresse);
     $objLogsItemshopAchats->setDate(\Carbon\Carbon::now());
     $objLogsItemshopAchats->setResultat($Resultat_Achat);
     $em->persist($objLogsItemshopAchats);
     $em->flush();
     if ($arrResult["result"] == 1) {
         $template = $this->objTwig->loadTemplate("ItemShopArticleBuy.html5.twig");
         $result = $template->render(["compte" => $this->objAccount->getLogin(), "article" => $objItemshop->getNameItem(), "nombre" => $nombreItemBuy, "prix" => $prixTotal, "devise" => $idDevise, "identifiantAchat" => $objLogsItemshopAchats->getId()]);
         $subject = 'VamosMT2 - Achat de ' . $objItemshop->getNameItem();
         \EmailHelper::sendEmail($this->objAccount->getEmail(), $subject, $result);
     }
     $arrResult["nombreBuy"] = $nombreItemBuy;
     $arrResult["idTransaction"] = $objLogsItemshopAchats->getId();
     echo json_encode($arrResult);
 }
 public function run()
 {
     global $request;
     $em = \Shared\DoctrineHelper::getEntityManager();
     $idAccount = $request->request->get("accountId");
     $banRaison = $request->request->get("banRaison");
     $banDuree = $request->request->get("banDuree");
     $banCommentaire = $request->request->get("banCommentaire");
     $withBanEmail = $request->request->get("withBanEmail");
     $withBanIp = $request->request->get("withBanIp");
     $arrObjAccount = [];
     $objAccount = \Account\AccountHelper::getAccountRepository()->find($idAccount);
     if ($objAccount !== null) {
         array_push($arrObjAccount, $objAccount);
     }
     if ($this->HaveTheRight(\DroitsHelper::BANNISSEMENT_EMAIL)) {
         if ($withBanEmail !== null && $withBanEmail == "true") {
             $arrBanEmail = \Account\AccountHelper::getAccountRepository()->findAccountByEmail($objAccount->getEmail());
             if (count($arrBanEmail) > 0) {
                 foreach ($arrBanEmail as $banEmail) {
                     array_push($arrObjAccount, $banEmail);
                 }
             }
         }
     }
     if ($this->HaveTheRight(\DroitsHelper::BANNISSEMENT_IP)) {
         if ($withBanIp !== null && $withBanIp == "true") {
             $arrBanIp = \Account\AccountHelper::getAccountRepository()->findByIpCreation($objAccount->getIpCreation());
             if (count($arrBanIp) > 0) {
                 foreach ($arrBanIp as $banIp) {
                     array_push($arrObjAccount, $banIp);
                 }
             }
         }
     }
     $arrObjAccount = array_unique($arrObjAccount, SORT_REGULAR);
     foreach ($arrObjAccount as $objAccount) {
         $libelleRaison = \BanRaisonHelper::getLibelle($banRaison);
         $estDefinitif = false;
         if ($banDuree == 0) {
             $estDefinitif = true;
         }
         $objAccount->setStatus(\StatusHelper::BANNI);
         $em->persist($objAccount);
         $dateDebutBanissement = \Carbon\Carbon::now();
         $dateFinBanissement = \Carbon\Carbon::now()->addDay($banDuree);
         $objBanissementActifs = new \Site\Entity\BannissementsActifs();
         $objBanissementActifs->setIdCompte($objAccount->getId());
         $objBanissementActifs->setRaisonBannissement($banRaison);
         $objBanissementActifs->setCommentaireBannissement($banCommentaire);
         $objBanissementActifs->setIdCompteGm($this->objAccount->getId());
         $objBanissementActifs->setIpGm($this->ipAdresse);
         $objBanissementActifs->setDuree($banDuree);
         $objBanissementActifs->setDateDebutBannissement($dateDebutBanissement);
         $objBanissementActifs->setDateFinBannissement($dateFinBanissement);
         $objBanissementActifs->setDefinitif($estDefinitif);
         $em->persist($objBanissementActifs);
         $em->flush();
         $template = $this->objTwig->loadTemplate("BanissementCompte.html5.twig");
         $resultTemplate = $template->render(["compte" => $objAccount->getLogin(), "definitif" => $estDefinitif, "raison" => $libelleRaison]);
         $subject = 'VamosMt2 - Bannissement de ' . $objAccount->getLogin() . '';
         \EmailHelper::sendEmail($objAccount->getEmail(), $subject, $resultTemplate);
     }
     $result = array('result' => true, 'reasons' => "");
     echo json_encode($result);
 }
Exemple #18
0
 public function run()
 {
     global $request;
     global $config;
     global $session;
     $em = \Shared\DoctrineHelper::getEntityManager();
     $paymentResult = false;
     $ident = $idp = $ids = $idd = $codes = $code1 = $code2 = $code3 = $code4 = $code5 = $datas = '';
     $idp = 196161;
     $idd = 337955;
     $ident = $idp . ";" . $ids . ";" . $idd;
     if (isset($_POST['code1'])) {
         $code1 = $_POST['code1'];
     }
     if (isset($_POST['code2'])) {
         $code2 = ";" . $_POST['code2'];
     }
     if (isset($_POST['code3'])) {
         $code3 = ";" . $_POST['code3'];
     }
     if (isset($_POST['code4'])) {
         $code4 = ";" . $_POST['code4'];
     }
     if (isset($_POST['code5'])) {
         $code5 = ";" . $_POST['code5'];
     }
     $codes = $code1 . $code2 . $code3 . $code4 . $code5;
     if (isset($_POST['DATAS'])) {
         $datas = $_POST['DATAS'];
     }
     $ident = urlencode($ident);
     $codes = urlencode($codes);
     $datas = urlencode($datas);
     /* Envoi de la requête vers le serveur StarPass
        Dans la variable tab[0] on récupère la réponse du serveur
        Dans la variable tab[1] on récupère l'URL d'accès ou d'erreur suivant la réponse du serveur */
     $get_f = @file("http://script.starpass.fr/check_php.php?ident={$ident}&codes={$codes}&DATAS={$datas}");
     if (!$get_f) {
         exit("Votre serveur n'a pas accès au serveur de StarPass, merci de contacter votre hébergeur. ");
     }
     $tab = explode("|", $get_f[0]);
     if (!$tab[1]) {
         $url = "http://script.starpass.fr/error.php";
     } else {
         $url = $tab[1];
     }
     $pays = $tab[2];
     $palier = urldecode($tab[3]);
     $id_palier = urldecode($tab[4]);
     $type = urldecode($tab[5]);
     if (substr($tab[0], 0, 3) != "OUI") {
         $paymentResult = false;
     } else {
         $paymentResult = true;
     }
     $objAccount = \Account\AccountHelper::getAccountRepository()->find($datas);
     if ($paymentResult) {
         $codeResult = "Réussi";
         if ($config["item_shop"]["rechargement"]["starpass"]["devise"] == \DeviseHelper::CASH) {
             $objAccount->setCash($objAccount->getCash() + $config["item_shop"]["rechargement"]["starpass"]["cash"]);
         } else {
             if ($config["item_shop"]["rechargement"]["starpass"]["devise"] == \DeviseHelper::MILEAGE) {
                 $objAccount->setMileage($objAccount->getMileage() + $config["item_shop"]["rechargement"]["starpass"]["cash"]);
             }
         }
         $em->persist($objAccount);
         $session->set("Cash", $objAccount->getCash());
         $session->set("Mileage", $objAccount->getMileage());
         $objLogsRechargement = new \Site\Entity\LogsRechargements();
         $objLogsRechargement->setIdCompte($objAccount->getId());
         $objLogsRechargement->setCompte($objAccount->getLogin());
         $objLogsRechargement->setEmailCompte($objAccount->getEmail());
         $objLogsRechargement->setCode($request->query->get("RECALL"));
         $objLogsRechargement->setNombreVamonaies($config["item_shop"]["rechargement"]["starpass"]["cash"]);
         $objLogsRechargement->setResultat($codeResult);
         $objLogsRechargement->setDate(new \DateTime(date("Y-m-d H:i:s")));
         $objLogsRechargement->setIp($this->ipAdresse);
         $em->persist($objLogsRechargement);
         $em->flush();
         $template = $this->objTwig->loadTemplate("emailItemShopRechargement.html5.twig");
         $result = $template->render(["compte" => $objAccount->getLogin(), "system" => "StarPass", "nombre" => $config["item_shop"]["rechargement"]["starpass"]["cash"], "devise" => $config["item_shop"]["rechargement"]["starpass"]["devise"], "identifiantRechargement" => $objLogsRechargement->getId()]);
         $subject = 'VamosMT2 - Rechargement de compte';
         \EmailHelper::sendEmail($objAccount->getEmail(), $subject, $result);
         if ($this->isConnected) {
             header('Location: ../../ItemShopRechargementTerm.php?result=1&id=' . $objLogsRechargement->getId() . '&isConnected=1');
             exit;
         } else {
             header('Location: ../../ItemShopRechargementTerm.php?result=1&id=' . $objLogsRechargement->getId() . '&isConnected=0');
             exit;
         }
     } else {
         $codeResult = "Mauvaise clès";
         $objLogsRechargement = new \Site\Entity\LogsRechargements();
         $objLogsRechargement->setIdCompte($objAccount->getId());
         $objLogsRechargement->setCompte($objAccount->getLogin());
         $objLogsRechargement->setEmailCompte($objAccount->getEmail());
         $objLogsRechargement->setCode($request->query->get("RECALL"));
         $objLogsRechargement->setResultat($codeResult);
         $objLogsRechargement->setDate(new \DateTime(date("Y-m-d H:i:s")));
         $objLogsRechargement->setIp($this->ipAdresse);
         $em->persist($objLogsRechargement);
         $em->flush();
         header('Location: ../../ItemShopRechargementTerm.php?result=0&Raison=ClesMauvaise&id=' . $objLogsRechargement->getId() . '');
         exit;
     }
 }