<?php
namespace App\Controller;
use Symfony\Component\Filesystem\Filesystem;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpKernel\Exception\AccessDeniedHttpException;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Component\HttpFoundation\JsonResponse;
class AppController extends AbstractController
{
/**
* @Route("/mdm/map")
*/
public function map(Request $request, String $ldbUrl, String $nappUrl)
{
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => $ldbUrl.'/api/ci_notecategory',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_SSL_VERIFYPEER => 0,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS =>'{
"data": {
"language": "de"
}
}',
CURLOPT_HTTPHEADER => array(
'Content-Type: application/json',
'X-i42AccountToken: 42'
)
));
$response = curl_exec($curl);
curl_close($curl);
$resp = json_decode($response, true);
$categories = [];
if (is_array($resp) && isset($resp['data']) && isset($resp['data']['notecategory']) && count($resp['data']['notecategory']))
{
foreach ($resp['data']['notecategory'] as $key => $noteCategory)
{
$categories[$noteCategory['id']] = $noteCategory['name'];
}
}
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => $nappUrl.'/extapi/customer.json',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_SSL_VERIFYPEER => 0,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS =>'{"data" : {}}',
CURLOPT_HTTPHEADER => array(
'Content-Type: application/json',
'X-i42AccountToken: 42'
)
));
$response = curl_exec($curl);
curl_close($curl);
$resp = json_decode($response, true);
$customers = [];
$officeids = [];
if (is_array($resp) && isset($resp['results']) && count($resp['results']))
{
$roles = $this->getUser()->getRoles();
foreach ($resp['results'] as $identifier => $customer)
{
if (in_array('ROLE_ADMIN', $roles))
{
$customers[$identifier] = $customer['name'];
$officeids[$identifier] = $customer['officeId'];
}
else
{
if (in_array('ROLE_DEMOVERSION', $roles))
{
if ($identifier == 'asdfasdrwgdrasdasdfawesrsdafawersdvaswerlrujawemvrfcawse')
{
$customers[$identifier] = $customer['name'];
$officeids[$identifier] = $customer['officeId'];
}
}
else
{
if ($identifier == 'dsfasdfasdfsdfasdfasdf709asdfasdf70706asdfasdf09707asdfas0df97sd')
{
$customers[$identifier] = $customer['name'];
$officeids[$identifier] = $customer['officeId'];
}
}
}
}
}
return $this->render('here/nicemap.html.twig', ['notecategories' => $categories, 'customers' => $customers, 'officeids' => $officeids]);
}
/**
* @Route("/adm/expmdmrdblog", name="exp_mdmrdblog")
*/
public function exportMdmrdblog(Request $request): Response
{
$em = $this->getDoctrine()->getManager();
$logs = $em->getRepository('App:Mdmrdblog')->findAll();
if ($logs)
{
$csv = 'ID~PLZ~Entfernung~Fachrichtung~Limit~Nur Ärzte~Nur Ärztinnen~Legal~Privat~Erstellt am'."\r\n";
foreach ($logs as $log)
{
$csv .= $log->getId().'~';
$csv .= $log->getZipcode().'~';
$csv .= $log->getDistance().'~';
$csv .= $log->getSpecialization().'~';
$csv .= $log->getCountlimit().'~';
$csv .= $log->getOnlymaledoctor().'~';
$csv .= $log->getOnlyfemaledoctor().'~';
$csv .= $log->getLegal().'~';
$csv .= $log->getPrivate().'~';
$csv .= $log->getCreatedAt()->format('d.m.Y H:i:s')."\r\n";
}
$fileSys = new Filesystem();
$rootDir = $this->getParameter('kernel.project_dir');
$expDir = $rootDir.DIRECTORY_SEPARATOR.'data'.DIRECTORY_SEPARATOR;
$fileName = 'MdmrdblogExport.csv';
file_put_contents($expDir.$fileName, $csv);
header('Pragma: public');
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Last-Modified: '.gmdate ('D, d M Y H:i:s', filemtime($expDir.$fileName)).' GMT');
header('Cache-Control: private', false);
header('Content-Type: application/pdf');
header('Content-Disposition: attachment; filename="'.basename($expDir.$fileName).'"');
header('Content-Transfer-Encoding: binary');
header('Content-Length: '.filesize($expDir.$fileName));
header('Connection: close');
readfile($expDir.$fileName);
}
exit;
}
public function welcome(Request $request)
{
return $this->render('app/welcome.html.twig');
}
}