?? GreyFile — Mystic File Browser

Current path: home/webdevt/cryptoimpot.fr/module/Application/src/Controller/



?? Go up: /home/webdevt/cryptoimpot.fr/module/Application/src

?? Viewing: DeclarationCompteController.php

<?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,
            ));
    }

}


??

??