<?php
namespace App\Controller\FO;
use App\Entity\FO\CompteBancaire;
use App\Entity\FO\Societe;
use App\Entity\GestionComerciale\Commande;
use App\Entity\MarketPlace\CompteMarketPlace;
use App\Entity\Widget\WidgetWidgetColonneUtilisateur;
use App\Security\Voter\EntityVoter;
use App\Service\Fabrication\OqtonService;
use Doctrine\ORM\EntityManagerInterface;
use Knp\Snappy\Pdf;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Component\Validator\Validation;
use Symfony\Component\Validator\Validator\ValidatorInterface;
use Symfony\Contracts\Translation\TranslatorInterface;
class FOController extends AbstractController
{
/**
* @Route("/", name="dtcfo_homepage")
*/
public function homeAction(Request $request, EntityManagerInterface $em,OqtonService $oqtonService)
{
return $this->redirectToRoute('dtc_commande_liste');
//TEST4toto(Oqcam Nests)tututoto(Oqcam Create Orders)tututoto(Oqcam Nest Status)tutu
/*
$partage = "share";
$share = $oqtonService->connectToSmbShare($partage);
$liste = $oqtonService->listerDossier($share,"");
echo $liste;
echo "<hr/>";
*/
/*
$partage = "Oqcam Nest Status";
$share = $oqtonService->connectToSmbShare($partage);
foreach ($share->dir('/') as $file) {
if($file->isDirectory()) echo "<div>DIR::(".$partage.") file_name:".$file->getName()."<div>";
else echo "<div>FILE::(".$partage.") file_name:".$file->getName()."<div>";
if(1!=1 and !$file->isDirectory() && substr($file->getName(), -4, 4) === 'json' && substr($file->getName(), 0, 5) != "order") {
echo $file->getName()."<br/>";
}
}
echo "<hr/>";
$partage = "Oqcam Nests";
$share = $oqtonService->connectToSmbShare($partage);
foreach ($share->dir('/') as $file) {
if($file->isDirectory()) echo "<div>DIR::(".$partage.") file_name:".$file->getName()."<div>";
else echo "<div>FILE::(".$partage.") file_name:".$file->getName()."<div>";
if(1!=1 and !$file->isDirectory() && substr($file->getName(), -4, 4) === 'json' && substr($file->getName(), 0, 5) != "order") {
echo $file->getName()."<br/>";
}
}
echo "<hr/>";
*/
$user = $this->getUser();
$repo_widget_colonne = $em->getRepository(WidgetWidgetColonneUtilisateur::class);
$widgets_colonne_1 = $repo_widget_colonne->getWidgetsColonneUser($user, 1);
$widgets_colonne_2 = $repo_widget_colonne->getWidgetsColonneUser($user, 2);
$widgets_colonne_3 = $repo_widget_colonne->getWidgetsColonneUser($user, 3);
$repo_commande = $em->getRepository(Commande::class);
$fin = new \Datetime();
$debut = new \Datetime();
$debut->modify('-30 days');
//echo "<div><br/>MOIS GLISSANT</div>";
//echo "<div>DEB : ".$debut->format("d/m/Y")."</div>";
//echo "<div>FIN : ".$fin->format("d/m/Y")."</div>";
$caMoisGlissant = $repo_commande->getCa($debut, $fin);
$mode_simplifie = $request->query->get('ms');
$comptesMarketPlace = $em->getRepository(CompteMarketPlace::class)->findBy([
"marketPlace" => 1,
"statut" => true,
'dateSuppression' => null,
]);
$societe = $em->getRepository(Societe::class)->find(1);
if ((is_object($user) && is_object($user->getType()) && $user->getType()->getId() == 3) or $mode_simplifie == 1) {
return $this->render('FO/FO/home-simplifie.html.twig', [
"societe" => $societe,
"widgets_colone_1" => $widgets_colonne_1,
"widgets_colone_2" => $widgets_colonne_2,
"widgets_colone_3" => $widgets_colonne_3,
"caMoisGlissant" => $caMoisGlissant,
'comptesMarketPlace' => $comptesMarketPlace,
]);
}
return $this->render('FO/FO/home.html.twig', [
"societe" => $societe,
"widgets_colone_1" => $widgets_colonne_1,
"widgets_colone_2" => $widgets_colonne_2,
"widgets_colone_3" => $widgets_colonne_3,
"caMoisGlissant" => $caMoisGlissant,
'comptesMarketPlace' => $comptesMarketPlace,
]);
}
/**
* @Route("/test", name="dtcfo_test")
*/
public function testAction(Request $request, EntityManagerInterface $em, Pdf $snappy)
{
$societe = $em->getRepository(Societe::class)->find(1);
$chemin_pdf = 'PDF/Rapport-cloture/Rapport-cloture-toto.pdf';
if (file_exists($chemin_pdf)) {
unlink($chemin_pdf);
}
//$snappy->setOption('header-html',$header);
//$snappy->setOption('footer-html',$footer);
$snappy->setOption('margin-bottom', "0");
$snappy->setOption('margin-top', "0");
$snappy->setOption('margin-left', "0");
$snappy->setOption('margin-right', "0");
$snappy->generateFromHtml(
$this->renderView(
'Transporteurs/RapportCloture/bordereau_depot_delivengo_pdf.html.twig',
[]
),
$chemin_pdf
);
return $this->render('FO/PDF/conteneur_pdf.html.twig', [
'chemin_pdf' => '/'.$chemin_pdf,
'visualiser' => 'visualiser',
]);
}
/**
* @Route("/qz/sign", name="dtc_sign_message_qz")
*/
public function signMessageQzAction(Request $request) {
$req="";
$KEY = __DIR__.'/../../Tools/Qz/private-key.pem';
$get = $request->query->all();
if(isset($get['request'])) $req = $get['request']; //GET method
$privateKey = openssl_get_privatekey(file_get_contents($KEY));
$signature = null;
openssl_sign($req, $signature, $privateKey, "sha512"); // Use "sha1" for QZ Tray 2.0 and older
if ($signature) {
header("Content-type: text/plain");
return new Response(base64_encode($signature));
exit(0);
}
return new Response( '<h1>Error signing message</h1>');
exit(1);
}
}