Current path: home/webdevt/cryptoimpot.fr/module/Application/src/Controller/
?? Go up: /home/webdevt/cryptoimpot.fr/module/Application/src
<?php
namespace Application\Controller;
use Application\Entity\Exchange;
use Laminas\Mvc\Controller\AbstractActionController;
use Laminas\View\Model\ViewModel;
use Laminas\Mail\Message;
use Laminas\Mime;
use Laminas\Mail\Transport\Sendmail as SendmailTransport;
use Exception;
class DeclarationCompteController extends AbstractActionController
{
const ROUTE_DECLARATION_COMPTE = 'declaration-compte';
const ROUTE_GENERATE = 'declaration-compte/generation-rapport';
/**
* Entity manager.
* @var Doctrine\ORM\EntityManager
*/
private $entityManager;
/**
* Auth manager.
* @var User\Service\AuthManager
*/
private $authManager;
/**
* User manager.
* @var User\Service\UserManager
*/
private $userManager;
/**
* config
* @var array
*/
private $config;
public function getEntityManager()
{
return $this->entityManager;
}
/**
* Constructor.
*/
public function __construct($entityManager, $authManager, $userManager)
{
$this->entityManager = $entityManager;
$this->authManager = $authManager;
$this->userManager = $userManager;
}
public function getConfig()
{
return $this->config;
}
public function update() {
$html = file_get_contents('https://www.cryptolia.fr/plateformes/');
preg_match_all("<a href=\x22plateformes\/(.+?)\x22>", $html, $matches); // save all links \x22 = "
$arrayExchange = [];
foreach ($matches[0] as $href) {
$arrayExchange[$href] = $href;
}
$exchangeMapper = new \Application\Mapper\ExchangeMapper($this->getEntityManager());
foreach (array_values($arrayExchange) as $href) {
$name = str_replace('a href="plateformes/', '', $href);
$name = str_replace('/"', '', $name);
$findExchange = $exchangeMapper->findByName($name);
// echo $name . '<br>';
if ($findExchange) {
// update
//echo 'update';
if (empty($findExchange->getSite())) {
$html = file_get_contents('https://www.cryptolia.fr/plateformes/' . $name . '/');
// preg_match_all("<a href=\x22([^.]*\..*)\x22", $html, $matches); // save all links \x22 = "
preg_match_all('@((https?://)?([-\\w]+\\.[-\\w\\.]+)+\\w(:\\d+)?(/([-\\w/_\\.]*(\\?\\S+)?)?)*)@', $html, $matches2);
$arrayExchange = [];
//
foreach ($matches2[0] as $href) {
//var_dump($href);
if (strpos($href, $name) !== false) {
if (strpos($href, 'http') !== false) {
if (strpos($href, '?') !== false) {
preg_match('/https:\/\/(.*?)\?/', $href, $match);
} else {
preg_match('/https:\/\/(.*?)\//', $href, $match);
}
if ($match && !empty($match[1])) {
$site = $match[1];
} else {
$site = $href;
}
} else {
$site = $href;
}
$explode = explode('.', $site);
if ($explode [0] == $name || $explode [1] == $name) {
$findExchange->setSite($site);
$exchangeMapper->update($findExchange);
continue;
} else {
$href2 = str_replace($name, '', $site);
$href2 = str_replace('www.', '', $href2);
if (strlen($href2) <= 5) {
echo $site;
$findExchange->setSite($site);
$exchangeMapper->update($findExchange);
}
}
} else if (strpos($href, substr($name, 0, 9)) !== false) {
preg_match('/https:\/\/(.*?)\//', $href, $match);
if ($match && !empty($match[1])) {
$site = $match[1];
} else {
$site = $href;
}
$href2 = str_replace($name, '', $site);
$href2 = str_replace('www.', '', $href2);
echo $site;
$findExchange->setSite($site);
$exchangeMapper->update($findExchange);
continue;
// exit;
}
}
} else {
continue;
}
} else {
//insert
$newExchange = new Exchange();
$newExchange->setName($name);
$newExchange->setEnable(0);
$newExchange->setSelectable(1);
$newExchange->setViewDisabled(0);
$newExchange->setOrdre(0);
$newExchange->setApiEnabled(0);
$newExchange->setCsvEnabled(0);
$exchangeMapper->insert($newExchange);
echo $name . 'insert';
}
}
exit;
}
public function updateAdresse() {
$exchangeMapper = new \Application\Mapper\ExchangeMapper($this->getEntityManager());
$collectionExchange = $exchangeMapper->findAllSelectable();
//
// https://maps.googleapis.com/maps/api/place/textsearch/json?query=bittrex.com&key=AIzaSyBFBPN7mMDy5H95hqIKdK2BRe3PzYm3NyY
foreach($collectionExchange as $exchange) {
echo $exchange->getName() . '<br>';
$exchangeName = urlencode('exchange ' .$exchange->getName());
// $exchangeName = urlencode('exchange bittrex');
$url = 'https://maps.googleapis.com/maps/api/place/textsearch/json?query='.$exchangeName.'&key=AIzaSyDBDKPjvNHY9usZrI6KffT-PfLf6mPrw9s';
//$url = 'https://maps.googleapis.com/maps/api/place/findplacefromtext/json?inputtype=textquery&input='.$exchangeName.'&key=AIzaSyDBDKPjvNHY9usZrI6KffT-PfLf6mPrw9s';
echo $url;
$file = file_get_contents($url);
$response = json_decode($file,true);
if (!empty($response) && !empty($response['results']['formatted_address'])){
$exchange->setAdresse($response['results']['formatted_address']);
$exchangeMapper->update($exchange);
echo $response['results']['formatted_address'];
} else {
echo 'pas de result';
}
//var_dump($response['results']['formatted_address']); exit;
}
exit;
}
public function generationRapportAction() {
var_dump($_POST);
echo 'toto';
exit;
$arrayExchanges = [];
foreach($_POST['exchange-nom'] as $index => $exchangeNom) {
$arrayExchanges[] = ['nom' => $exchangeNom];
}
foreach($_POST['exchange-adresse'] as $index => $exchangeAdresse) {
$arrayExchanges[$index]['adresse'] = $exchangeAdresse;
}
foreach($_POST['exchange-site'] as $index => $exchangeSite) {
$arrayExchanges[$index]['site'] = $exchangeSite;
}
//save report in json
$array = [
'user' => [
'nom' => $_POST['nom'],
'prenom'=> $_POST['prenom'],
'date-naissance' => $_POST['dateNaissance']
],
'exchanges' => $arrayExchanges
];
}
public function indexAction()
{
if ($user = $this->currentUser()) {
} else {
return $this->redirect()->toRoute(\Application\Controller\UserController::ROUTE_LOGIN);
}
// Entity Manager Doctrine
$entityManager = $this->getEntityManager();
// Récupération des exchanges séléctionnés par l'utilisateur
$arrayIdExchangesUser = [];
if ($user->getExchanges()) {
foreach ($user->getExchanges() as $exchange) {
$arrayIdExchangesUser[$exchange->getId()] = $exchange->getId();
}
}
// Recupération des exchanges
$exchangeMapper = new \Application\Mapper\ExchangeMapper($entityManager);
$exchangeArray = $exchangeMapper->getArrayForSelect();
// var_dump($exchangeArrayForSelect); exit;
$this->layout('layout/layout-ledgio');
$entityManager = $this->getEntityManager();
// Récupération des exchanges séléctionnés par l'utilisateur
$form = new \Application\Form\DeclarationCompteForm($entityManager);
$form->setHydrator(new \Laminas\Hydrator\ArraySerializable());
// $form->bind(new \Application\Entity\Ledgio());
// Récupération des exchanges séléctionnés par l'utilisateur
// if ($user->getExchanges()) {
// foreach ($user->getExchanges() as $exchange) {
// $arrayIdExchanges[] = $exchange->getId();
// }
// $form->setData(['exchanges' => $arrayIdExchanges]);
// }
if ($this->getRequest()->isPost()) {
// Récupération des données du post
$data = array_merge_recursive(
$this->getRequest()->getPost()->toArray()
);
$form->setData($data);
if ($form->isValid()) {
$data = $form->getData();
//$exchangeMapper = $entityManager->getRepository(\Application\Entity\Exchange::class);
//var_dump($data);
$ledgio = new \Application\Entity\Ledgio($data);
$ledgio->setUser($user);
$deviseMapper = new \Application\Mapper\DeviseMapper($this->getEntityManager());
$tradedDevise = $deviseMapper->findByCode($ledgio->getTradedCurrency());
$receivedDevise = $deviseMapper->findByCode($ledgio->getReceivedCurrency());
if (!empty($data['feesCurrency'])) {
$feesDevise = $deviseMapper->findByCode($data['feesCurrency']);
if (empty($tradedDevise) || empty($receivedDevise)) {
$this->flashMessenger()->addErrorMessage('Devise non reconnue.');
$this->redirect()->toRoute(self::ROUTE_AUTRES_TRANSACTIONS, array());
}
$ledgio->setFeesDevise($feesDevise);
}
//$ledgio->setExchange(new \Application\Entity\Exchange());
if (empty($tradedDevise) || empty($receivedDevise)) {
$this->flashMessenger()->addErrorMessage('Devise non reconnue.');
$this->redirect()->toRoute(self::ROUTE_AUTRES_TRANSACTIONS, array());
}
$ledgio->setTradedDevise($tradedDevise);
$ledgio->setReceivedDevise($receivedDevise);
$this->getEntityManager()->persist($ledgio);
$this->getEntityManager()->flush();
$hasError = '';
if (!empty($hasError)) {
$this->flashMessenger()->addErrorMessage('Une erreur est survenue lors de l\'enregistrement de la catégorie.');
$this->redirect()->toRoute(self::ROUTE_INFORMATION);
}
$this->flashMessenger()->addSuccessMessage('Enregistrement avec succès.');
$this->redirect()->toRoute(self::ROUTE_AUTRES_TRANSACTIONS, array());
} else {
$messages = $form->getMessages();
}
}
$this->layout('layout/layout-ledgio');
return new ViewModel(
array(
'exchangeArray' => $exchangeArray,
'arrayIdExchangesUser' => $arrayIdExchangesUser,
'form' => $form,
));
}
}